diff --git a/bumper/__init__.py b/bumper/__init__.py index cd21a05..618f1ab 100644 --- a/bumper/__init__.py +++ b/bumper/__init__.py @@ -5,7 +5,6 @@ from .mqttserver import MQTTServer from .mqttserver import MQTTHelperBot from .xmppserver import XMPPServer import asyncio -import contextvars import time from datetime import datetime, timedelta import platform @@ -17,10 +16,6 @@ from tinydb import TinyDB, Query import json from tinydb.storages import MemoryStorage -bumper_users_var = contextvars.ContextVar("bumper_users", default=[]) -bumper_clients_var = contextvars.ContextVar("bumper_clients", default=[]) -bumper_bots_var = contextvars.ContextVar("bumper_bots", default=[]) - ca_cert = "./certs/CA/cacert.pem" server_cert = "./certs/cert.pem" server_key = "./certs/key.pem" @@ -82,15 +77,12 @@ def db_file(): def os_db_path(): - db_path = "" - if platform.system() == "Windows": - - db_path = os.path.join(os.getenv("APPDATA")) + if platform.system() == "Windows": + os.makedirs(os.getenv("APPDATA"), exist_ok=True) #Ensure db_path directory exists or create + return os.path.join(os.getenv("APPDATA"), "bumper.db") else: - db_path = os.path.expanduser("~/.config") - - os.makedirs(db_path, exist_ok=True) #Ensure db_path directory exists or create - return os.path.join(db_path, "bumper.db") + os.makedirs(os.path.expanduser("~/.config"), exist_ok=True) #Ensure db_path directory exists or create + return os.path.expanduser("~/.config/bumper.db") def db_get(): try: diff --git a/bumper/confserver.py b/bumper/confserver.py index 375e931..bd5f42f 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -8,7 +8,6 @@ import bumper import time from datetime import datetime, timedelta import asyncio -import contextvars from aiohttp import web import uuid diff --git a/bumper/mqttserver.py b/bumper/mqttserver.py index 40cf783..2cb775b 100644 --- a/bumper/mqttserver.py +++ b/bumper/mqttserver.py @@ -8,7 +8,6 @@ from hbmqtt.broker import Broker from hbmqtt.client import MQTTClient from hbmqtt.mqtt.constants import QOS_0, QOS_1, QOS_2 import pkg_resources -import contextvars import time from threading import Thread import ssl @@ -40,7 +39,7 @@ class MQTTHelperBot: ): self.address = address self.client_id = "helper1@bumper/helper1" - self.command_responses = contextvars.ContextVar("command_responses", default=[]) + self.command_responses = [] self.helperthread = None def run(self, run_async=False): @@ -99,10 +98,9 @@ class MQTTHelperBot: message = await self.Client.deliver_message() # helperbotlog.debug("HelperBot MQTT Received Message on Topic: {} - Message: {}".format(message.topic, str(message.payload.decode("utf-8")))) - cresp = self.command_responses.get() if str(message.topic).split("/")[6] == "helper1": - cresp.append( + self.command_responses.append( { "time": time.time(), "topic": message.topic, @@ -111,15 +109,14 @@ class MQTTHelperBot: ) # Cleanup "expired messages" > 60 seconds from time - for msg in cresp: + for msg in self.command_responses: expire_time = ( datetime.fromtimestamp(msg["time"]) + timedelta(seconds=10) ).timestamp() if time.time() > expire_time: # helperbotlog.debug("Pruning Message Time: {}, MsgTime: {}, MsgTime+60: {}".format(time.time(), msg['time'], expire_time)) - cresp.remove(msg) + self.command_responses.remove(msg) - self.command_responses.set(cresp) # helperbotlog.debug("MQTT Command Response List Count: %s" %len(cresp)) except Exception as e: @@ -131,10 +128,9 @@ class MQTTHelperBot: t_end = (datetime.now() + timedelta(seconds=10)).timestamp() while time.time() < t_end: - await asyncio.sleep(0.1) - responses = self.command_responses.get() - if len(responses) > 0: - for msg in responses: + await asyncio.sleep(0.1) + if len(self.command_responses) > 0: + for msg in self.command_responses: topic = str(msg["topic"]).split("/") if topic[6] == "helper1" and topic[10] == requestid: # helperbotlog.debug('VacBot MQTT Response: Topic: %s Payload: %s' % (msg['topic'], msg['payload'])) @@ -142,10 +138,8 @@ class MQTTHelperBot: resppayload = json.loads(msg["payload"]) else: resppayload = str(msg["payload"]) - resp = {"id": requestid, "ret": "ok", "resp": resppayload} - cresp = self.command_responses.get() - cresp.remove(msg) - self.command_responses.set(cresp) + resp = {"id": requestid, "ret": "ok", "resp": resppayload} + self.command_responses.remove(msg) return resp return {"id": requestid, "errno": "timeout", "ret": "fail"} diff --git a/bumper/xmppserver.py b/bumper/xmppserver.py index 6d86d09..02471c4 100644 --- a/bumper/xmppserver.py +++ b/bumper/xmppserver.py @@ -4,7 +4,6 @@ from threading import Thread import sys, socket, threading, re, time, logging, uuid, xml.etree.ElementTree as ET import base64 import ssl -import contextvars import bumper import asyncio diff --git a/start_bumper.py b/start_bumper.py index a6796f8..0f777d8 100644 --- a/start_bumper.py +++ b/start_bumper.py @@ -51,14 +51,6 @@ def main(): conf_address_8007, usessl=False, helperbot=mqtt_helperbot ) - # add user - # users = bumper.bumper_users_var.get() - # user1 = bumper.BumperUser('user1') - # user1.add_device('devid') - # user1.add_bot('bot_did') - # users.append(user1) - # bumper.bumper_users_var.set(users) - try: loop = asyncio.get_event_loop() except: