diff --git a/constants/fokabotCommands.py b/constants/fokabotCommands.py index 41150d6..da07ad2 100644 --- a/constants/fokabotCommands.py +++ b/constants/fokabotCommands.py @@ -664,6 +664,40 @@ def pp(fro, chan, message): pp = userUtils.getPP(token.userID, gameMode) return "You have {:,} pp".format(pp) +def updateBeatmap(fro, chan, to): + try: + # Run the command in PM only + if chan.startswith("#"): + return False + + # Get token and user ID + token = glob.tokens.getTokenFromUsername(fro) + if token is None: + return False + + # Make sure the user has triggered the bot with /np command + if token.tillerino[0] == 0: + return "Please give me a beatmap first with /np command." + + # Send request + beatmapData = glob.db.fetch("SELECT beatmapset_id, song_name FROM beatmaps WHERE beatmap_id = %s LIMIT 1", [token.tillerino[0]]) + if beatmapData is None: + return "Couldn't find beatmap data in database. Please load the beatmap's leaderboard and try again." + + response = requests.post("{}/api/v1/update_beatmap".format(glob.conf.config["mirror"]["apiurl"]), { + "beatmap_set_id": beatmapData["beatmapset_id"], + "beatmap_name": beatmapData["song_name"], + "username": token.username, + "key": glob.conf.config["mirror"]["apikey"] + }) + if response.status_code == 200: + return "An update request for that beatmap has been queued. You'll receive a message once the beatmap has been updated on our mirror!" + elif response.status_code == 429: + return "You are sending too many beatmaps update requests. Wait a bit and retry later." + else: + return "Error in beatmap mirror API request. Tell this to a dev: {}".format(response.text) + except: + return False """ Commands list @@ -801,6 +835,10 @@ commands = [ }, { "trigger": "!pp", "callback": pp + }, { + "trigger": "!update", + "callback": updateBeatmap, + "privileges": privileges.ADMIN_MANAGE_SERVERS, # TODO: Remove privileges for !update } # # "trigger": "!acc", diff --git a/helpers/configHelper.py b/helpers/configHelper.py index 1205cba..820ff56 100644 --- a/helpers/configHelper.py +++ b/helpers/configHelper.py @@ -44,6 +44,9 @@ class config: self.config.get("server","cikey") self.config.get("server","cloudflare") + self.config.get("mirror","apiurl") + self.config.get("mirror","apikey") + self.config.get("debug","enable") self.config.get("debug","packets") self.config.get("debug","time") @@ -93,6 +96,10 @@ class config: self.config.set("server", "cikey", "changeme") self.config.set("server", "cloudflare", "0") + self.config.add_section("mirror") + self.config.set("mirror", "apiurl", "http://storage.ripple.moe") + self.config.set("mirror", "apikey", "anotherkey") + self.config.add_section("debug") self.config.set("debug", "enable", "0") self.config.set("debug", "packets", "0")