1#!/usr/local/bin/python3.8
2# -*- coding: utf-8 -*-
3
4__author__    = 'Jan Badenhorst <janhendrik.badenhorst()gmail.com>'
5__copyright__ = 'Copyright 2014 Jan Badenhorst'
6__license__   = 'Eclipse Public License - v 1.0 (http://www.eclipse.org/legal/epl-v10.html)'
7
8from builtins import str
9try:
10    import simplejson as json
11except ImportError:
12    import json
13
14import gdata.spreadsheet.service
15
16
17def plugin(srv, item):
18
19    srv.logging.debug("*** MODULE=%s: service=%s, target=%s", __file__, item.service, item.target)
20
21    spreadsheet_key = item.addrs[0]
22    worksheet_id = item.addrs[1]
23    username = item.config['username']
24    password = item.config['password']
25
26    try:
27        srv.logging.debug("Adding row to spreadsheet %s [%s]..." % (spreadsheet_key, worksheet_id))
28
29        client = gdata.spreadsheet.service.SpreadsheetsService()
30        client.debug = True
31        client.email = username
32        client.password = password
33        client.source = 'mqttwarn'
34        client.ProgrammaticLogin()
35
36        # The API Does not like raw numbers as values.
37        row = {}
38        for k, v in list(item.data.items()):
39            row[k] = str(v)
40
41        client.InsertRow(row, spreadsheet_key, worksheet_id)
42        srv.logging.debug("Successfully added row to spreadsheet")
43
44    except Exception as e:
45        srv.logging.warn("Error adding row to spreadsheet %s [%s]: %s" % (spreadsheet_key, worksheet_id, e))
46        return False
47
48    return True
49