on the fly fixes

This commit is contained in:
Eriks K 2020-04-30 09:43:35 +03:00
parent e1544637bc
commit 7a4d4e4de3

View File

@ -23,12 +23,15 @@ logging.basicConfig(level=logging.WARNING, filename="logging.log",
logger = logging.getLogger(APP_NAME) logger = logging.getLogger(APP_NAME)
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG)
logger.propagate = False logger.propagate = False
fh = logging.FileHandler(f"./logging2.log", "w") fh = logging.FileHandler(f"./logging.log", "w")
fh.setLevel(logging.DEBUG) fh.setLevel(logging.DEBUG)
logger.addHandler(fh) logger.addHandler(fh)
keep_fds = [fh.stream.fileno()] keep_fds = [fh.stream.fileno()]
pidfile = f"pid" pidfile = f"pid"
with open(pidfile, 'w') as f:
f.write(str(os.getpid()))
DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") DISCORD_TOKEN = os.getenv("DISCORD_TOKEN")
DB_NAME = os.getenv('DB_NAME', 'discord.db') DB_NAME = os.getenv('DB_NAME', 'discord.db')
@ -130,9 +133,13 @@ class MyClient(discord.Client):
return int(datetime.datetime.now().timestamp()) return int(datetime.datetime.now().timestamp())
async def on_ready(self): async def on_ready(self):
print('Client loaded') print('Client running')
print('------') print('------')
async def on_error(self, event_method, *args, **kwargs):
logger.warning('Ignoring exception in {}'.format(event_method))
async def report_medals(self): async def report_medals(self):
await self.wait_until_ready() await self.wait_until_ready()
while not self.is_closed(): while not self.is_closed():
@ -140,6 +147,10 @@ class MyClient(discord.Client):
r = get_battle_page() r = get_battle_page()
hunted_ids = DB.get_hunted_player_ids() hunted_ids = DB.get_hunted_player_ids()
protected_ids = DB.get_protected_player_ids() protected_ids = DB.get_protected_player_ids()
if not isinstance(r.get('battles'), dict):
sleep_seconds = r.get('last_updated') + 60 - self.timestamp
await asyncio.sleep(sleep_seconds if sleep_seconds > 0 else 0)
continue
for bid, battle in r.get('battles', {}).items(): for bid, battle in r.get('battles', {}).items():
for div in battle.get('div', {}).values(): for div in battle.get('div', {}).values():
if div['stats'] and not div['end']: if div['stats'] and not div['end']:
@ -196,10 +207,11 @@ class MyClient(discord.Client):
except NameError: except NameError:
logger.error("There was no Response object!", exc_info=e) logger.error("There was no Response object!", exc_info=e)
await asyncio.sleep(10) await asyncio.sleep(10)
await self.get_channel(603527159109124096).send("<@220849530730577920> I've stopped, please restart")
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
client = MyClient(loop=loop) client = MyClient()
bot = commands.Bot(command_prefix='!') bot = commands.Bot(command_prefix='!')
@ -372,6 +384,8 @@ async def remove_protection(ctx, player_id: int):
@hunt.error @hunt.error
@remove_hunt.error @remove_hunt.error
@protect.error
@remove_protection.error
async def hunt_error(ctx, error): async def hunt_error(ctx, error):
if isinstance(error, commands.BadArgument): if isinstance(error, commands.BadArgument):
await ctx.send('spēlētāja identifikators jāpadod kā skaitliska vērtība, piemēram, 1620414') await ctx.send('spēlētāja identifikators jāpadod kā skaitliska vērtība, piemēram, 1620414')