Some on the go tweaks and fixes

This commit is contained in:
Eriks K 2020-04-16 10:52:59 +03:00
parent 6d6d1b2e43
commit 381b794cce
2 changed files with 30 additions and 10 deletions

View File

@ -1,6 +1,8 @@
import asyncio
import datetime
import logging
import os
import sys
from collections import defaultdict
from json import JSONDecodeError
from typing import Dict, Set
@ -14,6 +16,20 @@ from dotenv import load_dotenv
from db import DiscordDB
load_dotenv()
logging.basicConfig(level=logging.WARNING, filename="logging.log",
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
sys.stdout = open('output.log', 'a')
sys.stderr = open('error.log', 'a')
os.chdir(os.path.abspath(os.path.dirname(sys.argv[0])))
pid = str(os.getpid())
pidfile = "pid"
if os.path.isfile(pidfile):
print("%s already exists, exiting" % pidfile)
sys.exit()
with open(pidfile, 'w') as f:
f.write(str(os.getpid()))
DISCORD_TOKEN = os.getenv("DISCORD_TOKEN")
DB_NAME = os.getenv('DB_NAME', 'discord.db')
@ -33,7 +49,7 @@ COUNTRIES = {1: 'Romania', 9: 'Brazil', 10: 'Italy', 11: 'France', 12: 'Germany'
166: 'United Arab Emirates', 167: 'Albania', 168: 'Georgia', 169: 'Armenia', 170: 'Nigeria', 171: 'Cuba'}
FLAGS = {1: 'flag_ro', 9: 'flag_br', 10: 'flag_it', 11: 'flag_fr', 12: 'flag_de', 13: 'flag_hu', 14: 'flag_cn',
15: 'flag_sp', 23: 'flag_ca', 24: 'flag_us', 26: 'flag_mx', 27: 'flag_ar', 28: 'flag_ve', 29: 'flag_gb',
15: 'flag_es', 23: 'flag_ca', 24: 'flag_us', 26: 'flag_mx', 27: 'flag_ar', 28: 'flag_ve', 29: 'flag_gb',
30: 'flag_ch', 31: 'flag_nl', 32: 'flag_be', 33: 'flag_at', 34: 'flag_cz', 35: 'flag_pl', 36: 'flag_sk',
37: 'flag_no', 38: 'flag_se', 39: 'flag_fi', 40: 'flag_ua', 41: 'flag_ru', 42: 'flag_bg', 43: 'flag_tr',
44: 'flag_gr', 45: 'flag_jp', 47: 'flag_kr', 48: 'flag_in', 49: 'flag_id', 50: 'flag_au', 51: 'flag_za',
@ -49,6 +65,10 @@ __last_battle_request = None
__last_battle_update_timestamp = 0
def timestamp_to_datetime(timestamp: int) -> datetime.datetime:
return datetime.datetime.fromtimestamp(timestamp)
def get_battle_page():
global __last_battle_update_timestamp, __last_battle_request
if int(datetime.datetime.now().timestamp()) >= __last_battle_update_timestamp + 60:
@ -148,10 +168,6 @@ if __name__ == "__main__":
bot = commands.Bot(command_prefix='!')
def timestamp_to_datetime(timestamp: int) -> datetime.datetime:
return datetime.datetime.fromtimestamp(timestamp)
@bot.event
async def on_ready():
print('Bot loaded')
@ -247,8 +263,11 @@ if __name__ == "__main__":
else:
await ctx.send(f"{ctx.author.mention} You weren't being notified for **{player_name}** medals")
try:
loop = asyncio.get_event_loop()
loop.create_task(bot.start(DISCORD_TOKEN))
loop.create_task(client.start(DISCORD_TOKEN))
loop.run_forever()
finally:
os.unlink(pidfile)
loop = asyncio.get_event_loop()
loop.create_task(bot.start(DISCORD_TOKEN))
loop.create_task(client.start(DISCORD_TOKEN))
loop.run_forever()

3
run.sh
View File

@ -6,4 +6,5 @@ echo "Starting Discord bot..."
python discord_bot.py &
sleep 10
disown -h %1
echo "Done!"
echo "Done!"