Just a checkpoint.
This commit is contained in:
parent
4a4652386e
commit
dcb23f66bb
3
.gitignore
vendored
3
.gitignore
vendored
@ -65,3 +65,6 @@ target/
|
|||||||
|
|
||||||
.idea/
|
.idea/
|
||||||
Pipfile.lock
|
Pipfile.lock
|
||||||
|
*.directory
|
||||||
|
|
||||||
|
data/
|
||||||
|
77
main.py
77
main.py
@ -1,7 +1,74 @@
|
|||||||
|
import os
|
||||||
|
import logging
|
||||||
|
import logging.config
|
||||||
import socket
|
import socket
|
||||||
|
import asyncio
|
||||||
|
import json
|
||||||
|
|
||||||
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
|
||||||
s.connect("../bot-base.sock")
|
def setup_logging(default_path='config/log_config.json', default_level=logging.INFO, env_key='PDBd_LOG_CONFIG'):
|
||||||
while True:
|
"""Setup logging configuration
|
||||||
s.send(input(">>> ").encode('utf-8'))
|
"""
|
||||||
s.close()
|
path = default_path
|
||||||
|
value = os.getenv(env_key, None)
|
||||||
|
if value:
|
||||||
|
path = value
|
||||||
|
if os.path.exists(path):
|
||||||
|
with open(path, 'rt') as f:
|
||||||
|
config = json.load(f)
|
||||||
|
logging.config.dictConfig(config)
|
||||||
|
else:
|
||||||
|
logging.basicConfig(level=default_level)
|
||||||
|
|
||||||
|
setup_logging()
|
||||||
|
class Logger(object):
|
||||||
|
def __init__(self, name):
|
||||||
|
self.__name__=name
|
||||||
|
self.logger=logging.getLogger(self.__name__)
|
||||||
|
self.debug = self.logger.debug
|
||||||
|
self.info = self.logger.info
|
||||||
|
self.warning = self.logger.warning
|
||||||
|
self.error = self.logger.error
|
||||||
|
self.critical = self.logger.critical
|
||||||
|
|
||||||
|
class Bot(Logger):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class PDBd(Logger):
|
||||||
|
def handle_exception(self, loop, context):
|
||||||
|
# context["message"] will always be there; but context["exception"] may not
|
||||||
|
msg = context.get("exception", context["message"])
|
||||||
|
self.critical(f"Critical Runtime Error: {msg}")
|
||||||
|
self.info("Shutting down...")
|
||||||
|
loop.stop()
|
||||||
|
|
||||||
|
async def setup_data(self):
|
||||||
|
|
||||||
|
if not os.path.exists("data"):
|
||||||
|
self.warning("Data folder doesn't exist.")
|
||||||
|
self.info("Creating data folder.")
|
||||||
|
os.makedirs("data")
|
||||||
|
else:
|
||||||
|
if not os.path.isdir("data"):
|
||||||
|
raise Exception("Data is not a folder")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async def run(self):
|
||||||
|
self.info(self.__name__+" is starting...")
|
||||||
|
loop.set_exception_handler(self.handle_exception)
|
||||||
|
await self.setup_data()
|
||||||
|
"""self.info("Connecting...")
|
||||||
|
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
s.connect("../bot-base.sock")
|
||||||
|
self.info("Connected.")
|
||||||
|
while True:
|
||||||
|
s.send(input(">>> ").encode('utf-8'))
|
||||||
|
s.close()"""
|
||||||
|
loop.stop()
|
||||||
|
|
||||||
|
daemon=PDBd("PDBd")
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.create_task(daemon.run())
|
||||||
|
loop.run_forever()
|
||||||
|
Loading…
Reference in New Issue
Block a user