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