Just a checkpoint.
This commit is contained in:
parent
4a4652386e
commit
dcb23f66bb
3
.gitignore
vendored
3
.gitignore
vendored
@ -65,3 +65,6 @@ target/
|
||||
|
||||
.idea/
|
||||
Pipfile.lock
|
||||
*.directory
|
||||
|
||||
data/
|
||||
|
77
main.py
77
main.py
@ -1,7 +1,74 @@
|
||||
import os
|
||||
import logging
|
||||
import logging.config
|
||||
import socket
|
||||
import asyncio
|
||||
import json
|
||||
|
||||
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
s.connect("../bot-base.sock")
|
||||
while True:
|
||||
s.send(input(">>> ").encode('utf-8'))
|
||||
s.close()
|
||||
|
||||
def setup_logging(default_path='config/log_config.json', default_level=logging.INFO, env_key='PDBd_LOG_CONFIG'):
|
||||
"""Setup logging configuration
|
||||
"""
|
||||
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