1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 13:34:28 +00:00
This commit is contained in:
Steffo 2017-02-07 22:24:49 +01:00
parent 4e9bbd1b86
commit ede3d10c2c
4 changed files with 89 additions and 10 deletions

1
.gitignore vendored
View file

@ -142,3 +142,4 @@ discordtoken.txt
db.json db.json
leaguetoken.txt leaguetoken.txt
telegramtoken.txt telegramtoken.txt
osutoken.txt

67
main.py
View file

@ -9,6 +9,7 @@ import strings as s
import telegram import telegram
import bs4 import bs4
import brawlhalla import brawlhalla
import osu
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
d_client = discord.Client() d_client = discord.Client()
@ -287,6 +288,49 @@ async def opendota_last_match(timeout):
await asyncio.sleep(1) await asyncio.sleep(1)
async def osu_pp(timeout):
while True:
if discord_is_ready:
print("[Osu!] Starting pp check...")
for mode in range(0, 4):
for player in db:
try:
r = await osu.get_user(db[player]["osu"]["id"], mode)
except KeyError:
continue
else:
if r["pp_raw"] is not None:
pp = float(r["pp_raw"])
else:
pp = 0
if pp != 0:
try:
old = db[player]["osu"][str(mode)]
except KeyError:
old = 0
if pp != old:
db[player]["osu"][str(mode)] = pp
f = {
"player": player,
"mode": s.osu_modes[mode],
"pp": int(pp),
"change": int(pp - old)
}
loop.create_task(send_event(s.osu_pp_change, **f))
else:
db[player]["osu"][str(mode)] = 0.0
f = open("db.json", "w")
json.dump(db, f)
f.close()
finally:
await asyncio.sleep(1)
print("[Osu!] Check successful.")
await asyncio.sleep(timeout)
else:
await asyncio.sleep(1)
# Send a new event to both Discord and Telegram # Send a new event to both Discord and Telegram
async def send_event(eventmsg: str, player: str, **kwargs): async def send_event(eventmsg: str, player: str, **kwargs):
# Create arguments dict # Create arguments dict
@ -309,20 +353,23 @@ async def send_event(eventmsg: str, player: str, **kwargs):
# Send the message # Send the message
loop.create_task(telegram.send_message(msg, -2141322)) loop.create_task(telegram.send_message(msg, -2141322))
loop.create_task(overwatch_status_change(600)) #loop.create_task(overwatch_status_change(600))
print("[Overwatch] Added level up check to the queue.") #print("[Overwatch] Added level up check to the queue.")
loop.create_task(league_rank_change(900)) #loop.create_task(league_rank_change(900))
print("[League] Added rank change check to the queue.") #print("[League] Added rank change check to the queue.")
loop.create_task(league_level_up(900)) #loop.create_task(league_level_up(900))
print("[League] Added level change check to the queue.") #print("[League] Added level change check to the queue.")
loop.create_task(brawlhalla_update_mmr(7200)) #loop.create_task(brawlhalla_update_mmr(7200))
print("[Brawlhalla] Added mmr change check to the queue.") #print("[Brawlhalla] Added mmr change check to the queue.")
loop.create_task(opendota_last_match(600)) #loop.create_task(opendota_last_match(600))
print("[OpenDota] Added last match check to the queue.") #print("[OpenDota] Added last match check to the queue.")
loop.create_task(osu_pp(600))
print("[Osu!] Added pp change check to the queue.")
try: try:
loop.run_until_complete(d_client.start(token)) loop.run_until_complete(d_client.start(token))

22
osu.py Normal file
View file

@ -0,0 +1,22 @@
import asyncio
import requests
loop = asyncio.get_event_loop()
# Load Osu API key from the osutoken.txt file
file = open("osutoken.txt", "r")
token = file.read()
file.close()
async def get_user(user, mode=0):
print("[Osu!] Getting profile data for {} mode {}".format(user, mode))
params = {
"k": token,
"m": mode,
"u": user
}
# Get the data
r = await loop.run_in_executor(None, requests.get, 'https://osu.ppy.sh/api/get_user?k={k}&m={m}&u={u}'.format(**params))
if r.status_code == 200:
return r.json()[0]
else:
raise Exception("[Osu!] Unhandled exception during the API request")

View file

@ -44,6 +44,15 @@ brawlhalla_new_mmr = "{player} è passato da {oldmmr} MMR a **{mmr}** MMR su _Br
# Dota: new match # Dota: new match
dota_new_match = "{player} ha **{result}** a _Dota 2_ con {k}/{d}/{a}, giocando **{hero}**!" dota_new_match = "{player} ha **{result}** a _Dota 2_ con {k}/{d}/{a}, giocando **{hero}**!"
# Osu: modes
osu_modes = ["osu!",
"osu!taiko",
"osu!catch",
"osu!mania"]
# Osu: moar pp
osu_pp_change = "{player} è salito a **{pp}pp** (+{change}) su _{mode}_ !"
# Win: past participle # Win: past participle
won = "vinto" won = "vinto"