diff --git a/main.py b/main.py index 4dbe753d..fb5cfb93 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ import asyncio import discord import json import overwatch +import strings as s loop = asyncio.get_event_loop() d_client = discord.Client() @@ -12,27 +13,31 @@ db = json.load(file) file.close() # Get the discord bot token from "discordtoken.txt" -f = open("discordtoken.txt", "r") -token = f.read() -f.close() - -# List overwatch players -ow_players = list() -for player in db: - if db[player]["overwatch"] is not None: - ow_players.append(db[player]["overwatch"]) +file = open("discordtoken.txt", "r") +token = file.read() +file.close() # Every 300 seconds, update player status and check for levelups async def overwatch_level_up(timeout): while True: # Update data for every player in list - for ow_player in ow_players: - r = await overwatch.get_player_data(**ow_player) - if r["data"]["level"] > ow_player["level"]: - await d_client.send_message(d_client.get_channel("213655027842154508"), "Level up!") - ow_player["level"] = r["data"]["level"] + for player in db: + if db[player]["overwatch"] is not None: + r = await overwatch.get_player_data(**db[player]["overwatch"]) + if r["data"]["level"] > db[player]["overwatch"]["level"]: + # Convert user ID into a mention + user = "<@" + player + ">" + # Prepare the message to send + msg = s.overwatch_level_up.format(player=user, level=r["data"]["level"]) + # Send the message to the discord channel + loop.create_task(d_client.send_message(d_client.get_channel("213655027842154508"), msg)) + db[player]["overwatch"]["level"] = r["data"]["level"] + # Update database + f = open("db.json", "w") + json.dump(db, f) + f.close() # Wait for the timeout await asyncio.sleep(timeout) loop.create_task(overwatch_level_up(30)) -d_client.run(token) \ No newline at end of file +d_client.run(token) diff --git a/strings.py b/strings.py new file mode 100644 index 00000000..2e959bab --- /dev/null +++ b/strings.py @@ -0,0 +1,4 @@ +# Overwatch: Level up! +# {player} = player +# {level} = new level +overwatch_level_up = "{player} รจ salito al livello **{level}** su Overwatch!"