Fix the things
XMPP is now async and works - Closes #27 Full async - Closes #22 Individual log files - Closes #21
This commit is contained in:
parent
ceb8cf2651
commit
2460182f4f
5 changed files with 220 additions and 402 deletions
|
|
@ -14,6 +14,7 @@ import ssl
|
|||
import bumper
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
import bumper
|
||||
|
||||
helperbotlog = logging.getLogger("helperbot")
|
||||
mqttserverlog = logging.getLogger("mqttserver")
|
||||
|
|
@ -42,33 +43,6 @@ class MQTTHelperBot:
|
|||
self.command_responses = []
|
||||
self.helperthread = None
|
||||
|
||||
def run(self, run_async=False):
|
||||
if run_async:
|
||||
hloop = asyncio.new_event_loop()
|
||||
helperbotlog.debug("Starting MQTT HelperBot Thread: 1")
|
||||
self.helperthread = Thread(
|
||||
name="MQTTHelperBot_Thread", target=self.run_helperbot, args=(hloop,)
|
||||
)
|
||||
self.helperthread.setDaemon(True)
|
||||
self.helperthread.start()
|
||||
|
||||
else:
|
||||
self.run_helperbot(asyncio.get_event_loop())
|
||||
|
||||
def run_helperbot(self, loop):
|
||||
logging.info("Starting MQTT HelperBot")
|
||||
print("Starting MQTT HelperBot")
|
||||
try:
|
||||
asyncio.set_event_loop(loop)
|
||||
self.Client = MQTTClient(
|
||||
client_id=self.client_id, config={"check_hostname": False}
|
||||
)
|
||||
loop.run_until_complete(self.start_helper_bot())
|
||||
loop.run_until_complete(self.get_msg())
|
||||
loop.run_forever()
|
||||
except Exception as e:
|
||||
helperbotlog.exception("{}".format(e))
|
||||
|
||||
async def start_helper_bot(self):
|
||||
|
||||
try:
|
||||
|
|
@ -87,8 +61,7 @@ class MQTTHelperBot:
|
|||
("iot/atr/+", QOS_0),
|
||||
]
|
||||
)
|
||||
|
||||
asyncio.ensure_future(self.get_msg())
|
||||
asyncio.create_task(self.get_msg())
|
||||
|
||||
except Exception as e:
|
||||
helperbotlog.exception("{}".format(e))
|
||||
|
|
@ -126,8 +99,6 @@ class MQTTHelperBot:
|
|||
helperbotlog.debug("Pruning Message Time: {}, MsgTime: {}, MsgTime+60: {}".format(time.time(), msg['time'], expire_time))
|
||||
self.command_responses.remove(msg)
|
||||
|
||||
# helperbotlog.debug("MQTT Command Response List Count: %s" %len(cresp))
|
||||
|
||||
except Exception as e:
|
||||
helperbotlog.exception("{}".format(e))
|
||||
|
||||
|
|
@ -190,6 +161,7 @@ class MQTTServer:
|
|||
|
||||
async def broker_coro(self):
|
||||
try:
|
||||
mqttserverlog.info("Starting MQTT Server at {}:{}".format(self.address[0], self.address[1]))
|
||||
broker = hbmqtt.broker.Broker(config=self.default_config)
|
||||
await broker.start()
|
||||
|
||||
|
|
@ -248,32 +220,6 @@ class MQTTServer:
|
|||
except Exception as e:
|
||||
mqttserverlog.exception("{}".format(e))
|
||||
|
||||
def run(self, run_async=False):
|
||||
if run_async:
|
||||
sloop = asyncio.new_event_loop()
|
||||
mqttserverlog.debug("Starting MQTTServer Thread: 1")
|
||||
self.mqttserverthread = Thread(
|
||||
name="MQTTServer_Thread", target=self.run_server, args=(sloop,)
|
||||
)
|
||||
self.mqttserverthread.setDaemon(True)
|
||||
self.mqttserverthread.start()
|
||||
|
||||
else:
|
||||
self.run_server(asyncio.get_event_loop())
|
||||
|
||||
def run_server(self, loop):
|
||||
|
||||
logging.info("Starting MQTT Server at {}".format(self.address))
|
||||
print("Starting MQTT Server at {}".format(self.address))
|
||||
try:
|
||||
asyncio.set_event_loop(loop)
|
||||
loop.run_until_complete(self.broker_coro())
|
||||
# loop.run_until_complete(self.active_bot_listing())
|
||||
loop.run_forever()
|
||||
|
||||
except Exception as e:
|
||||
mqttserverlog.exception("{}".format(e))
|
||||
|
||||
|
||||
class BumperMQTTServer_Plugin:
|
||||
def __init__(self, context):
|
||||
|
|
@ -310,11 +256,9 @@ class BumperMQTTServer_Plugin:
|
|||
client_id = session.client_id
|
||||
|
||||
didsplit = str(client_id).split("@")
|
||||
# If this isn't a fake user (fuid) then add as a bot
|
||||
if not (
|
||||
str(didsplit[0]).startswith("fuid")
|
||||
or str(didsplit[0]).startswith("helper")
|
||||
):
|
||||
if not ( # if ecouser or bumper aren't in details it is a bot
|
||||
"ecouser" in didsplit[1]
|
||||
or "bumper" in didsplit[1]):
|
||||
tmpbotdetail = str(didsplit[1]).split("/")
|
||||
bumper.bot_add(
|
||||
username,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue