84 lines
No EOL
3.5 KiB
Python
84 lines
No EOL
3.5 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import logging
|
|
import bumper
|
|
import sys, socket
|
|
import time
|
|
import platform
|
|
|
|
|
|
def main():
|
|
args = sys.argv
|
|
|
|
if len(args) > 0:
|
|
if '--debug' in args:
|
|
logging.basicConfig(level=logging.DEBUG,
|
|
format="[%(asctime)s] :: %(levelname)s :: %(name)s :: %(module)s :: %(funcName)s :: %(lineno)d :: %(message)s")
|
|
else:
|
|
logging.basicConfig(level=logging.INFO,
|
|
format="[%(asctime)s] :: %(levelname)s :: %(name)s :: %(message)s")
|
|
#format="[%(asctime)s] :: %(levelname)s :: %(name)s :: %(module)s :: %(funcName)s :: %(lineno)d :: %(message)s")
|
|
|
|
if platform.system() == "Darwin": #If a Mac, use 0.0.0.0 for listening
|
|
listen_host = "0.0.0.0"
|
|
else:
|
|
listen_host = socket.gethostbyname(socket.gethostname())
|
|
#listen_host = "localhost" #Try this if the above doesn't work
|
|
|
|
conf_address_443 = (listen_host, 443)
|
|
conf_address_8007 = (listen_host, 8007)
|
|
xmpp_address = (listen_host, 5223)
|
|
mqtt_address = (listen_host, 8883)
|
|
|
|
xmpp_server = bumper.XMPPServer(xmpp_address, bumper_users=bumper.bumper_users_var, bumper_bots=bumper.bumper_bots_var,bumper_clients=bumper.bumper_clients_var)
|
|
mqtt_server = bumper.MQTTServer(mqtt_address,bumper_users=bumper.bumper_users_var, bumper_bots=bumper.bumper_bots_var,bumper_clients=bumper.bumper_clients_var)
|
|
mqtt_helperbot = bumper.MQTTHelperBot(mqtt_address, bumper_bots=bumper.bumper_bots_var,bumper_clients=bumper.bumper_clients_var)
|
|
conf_server = bumper.ConfServer(conf_address_443, usessl=True,bumper_users=bumper.bumper_users_var, bumper_bots=bumper.bumper_bots_var,bumper_clients=bumper.bumper_clients_var,helperbot=mqtt_helperbot)
|
|
conf_server_2 = bumper.ConfServer(conf_address_8007, usessl=False,bumper_users=bumper.bumper_users_var, bumper_bots=bumper.bumper_bots_var,bumper_clients=bumper.bumper_clients_var, 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)
|
|
|
|
# start xmpp server on port 5223 (sync)
|
|
xmpp_server.run(run_async=True) #Start in new thread
|
|
|
|
# start mqtt server on port 8883 (async)
|
|
mqtt_server.run(run_async=True) #Start in new thread
|
|
|
|
time.sleep(1.5) #Wait for broker startup
|
|
|
|
# start mqtt_helperbot (async)
|
|
mqtt_helperbot.run(run_async=True) #Start in new thread
|
|
|
|
# start conf server on port 443 (async) - Used for most https calls
|
|
conf_server.run(run_async=True) #Start in new thread
|
|
|
|
# start conf server on port 8007 (async) - Used for a load balancer request
|
|
conf_server_2.run(run_async=True) #Start in new thread
|
|
|
|
while True:
|
|
try:
|
|
time.sleep(0.25)
|
|
|
|
# WIP: Remove clients that have disconnected
|
|
# remove_clients = bumper.bumper_removeclients_var.get()
|
|
# if len(remove_clients) > 0:
|
|
# for uid in remove_clients:
|
|
# if uid != "":
|
|
# xmpp_server.remove_client_byuid(uid) #Remove clients from xmpp server
|
|
# remove_clients.remove(uid)
|
|
|
|
# bumper.bumper_removeclients_var.set(remove_clients)
|
|
|
|
except KeyboardInterrupt:
|
|
bumper.bumperlog.info("Bumper Exiting - Keyboard Interrupt")
|
|
print("Bumper Exiting")
|
|
exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main() |