Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.11 KB | None | 0 0
  1.     @commands.command(pass_context=True)    
  2.     async def stats(self, ctx, platform : str, userID : str):  
  3.         """Set your rank!
  4.        userID = SteamID64/Custom URL or PSN ID
  5.        platform = steam/ps4 (default: steam)
  6.        
  7.        Examples:
  8.        !stats steam barbosicks
  9.        !stats steam 76561198042160246
  10.        !stats ps4 J_knaps"""
  11.         platform = platform.lower()        
  12.         if not (platform == "steam" or platform == "ps4"):
  13.             await self.bot.say("{}, Invalid platform. Please use steam/ps4.".format(ctx.message.author.mention))
  14.             return
  15.         message11 = await self.bot.say("Searching...")
  16.         try:
  17.             if platform == "steam":        
  18.                 if userID.startswith("http"):
  19.                     userID = userID.rstrip('/').rsplit('/', 1)[-1]
  20.                 if not re.match('\d{17}', userID):
  21.                     async with aiohttp.ClientSession() as session:
  22.                         async with session.get('http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=STEAMAPIKEY&vanityurl='+userID) as resp:                
  23.                             r = await resp.json()
  24.                             if r['response']['success'] == 1:
  25.                                 userID = r['response']['steamid']
  26.                             else:
  27.                                 await self.bot.reply("player not found. Please check your submitted data.")
  28.                                 return
  29.             getheaders = {'Authorization': 'Bearer 0HN9J81F6T37R2N2A1CELUKULSRUE3AZ'}    
  30.             async with aiohttp.ClientSession() as session:
  31.                 async with session.get('https://api.rocketleaguestats.com/v1/player?unique_id='+ userID + "&platform_id="+ platforms[platform], headers=getheaders) as resp:
  32.                     if resp.status == 200:
  33.                         r = await resp.json()
  34.                         # if r['ranking'] == 'updating':
  35.                             # await self.bot.say("Your stats are updating or incorrect player data. Please try again later.")
  36.                             # return
  37.                     elif resp.status == 404:
  38.                         await self.bot.reply("player not found. Please check your submitted data.")
  39.                         return
  40.                     else:
  41.                         await self.bot.reply("an error occurred. Please try again later.")
  42.                         return    
  43.             player = r        
  44.         except:
  45.             await self.bot.reply("an error occurred. Please try again later.")
  46.             return          
  47.         try:
  48.             player['ranking'] = player['rankedSeasons']['6']
  49.         except:
  50.             await self.bot.reply("you haven't played games this season yet. Please get a rank on current season before trying to register.")
  51.             return  
  52.         maxtier = max([d['tier'] for d in player['ranking'].values()])
  53.         if maxtier < 13:
  54.             await self.bot.reply("we currently don't support ranks below Diamond. Sorry.")
  55.             return
  56.         img = requests.get(player['signatureUrl'])
  57.         with open("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png", "wb") as f:
  58.             f.write(img.content)
  59.         message12 = await self.bot.upload("data/rlsix/images/temp_"+ctx.message.author.id+ ".png")
  60.         message13 = await self.bot.say("{}, **Is this you?** (confirm with **yes**)".format( ctx.message.author.mention))        
  61.         response = await self.bot.wait_for_message(author=ctx.message.author, timeout=60)
  62.         if response != None:
  63.             if response.content.lower().strip() == "yes":
  64.                 try:
  65.                     os.remove("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png")
  66.                 except:
  67.                     pass
  68.                 # if '13' not in player['ranking']:
  69.                     # player['ranking']['13'] = {}
  70.                     # player['ranking']['13']['tier'] = 0
  71.                 # if '12' not in player['ranking']:
  72.                     # player['ranking']['12'] = {}
  73.                     # player['ranking']['12']['tier'] = 0
  74.                 # if maxtier >= 19 or player['ranking']['13']['tier'] >= 18 or player['ranking']['12']['tier'] >= 18:
  75.                     # role2 = self.ranked_roles[str(ctx.message.server.id)][2]
  76.                 if maxtier >= 16:
  77.                     role2 = self.ranked_roles[str(ctx.message.server.id)][1]
  78.                 else:
  79.                     role2 = self.ranked_roles[str(ctx.message.server.id)][0]                
  80.                 roles = [k for k in ctx.message.author.roles if k in self.ranked_roles[str(ctx.message.server.id)].values()]
  81.                 r = list(set(ctx.message.author.roles) - set(roles))
  82.                 r.append(role2)
  83.                 await self.bot.replace_roles(ctx.message.author, *r)
  84.                 await self.bot.whisper("Go to #player_add and use !add to set your name on the leaderboards or update your rank!")
  85.             else:
  86.                 os.remove("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png")
  87.         else:
  88.             os.remove("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement