Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. import discord
  2. import asyncio
  3. import requests
  4. import os
  5.  
  6. BOT_TOKEN = 'your-bot-token'
  7. FORTNITE_API_TOKEN = 'your fortnite tracker token'
  8. COMMAND_PREFIX = '!'
  9.  
  10. client = discord.Client()
  11.  
  12. @client.event
  13. async def on_ready():
  14. await client.change_presence(game=discord.Game(name='Type !help'))
  15.  
  16. @client.event
  17. async def on_message(message):
  18. if message.content.startswith(COMMAND_PREFIX + 'help'):
  19. await client.send_message(message.channel, 'Iam your Professional Bot for Fortnite Stats and other cool stuff ;) `' + COMMAND_PREFIX +
  20. 'stats <platform> <nickname>` to retrieve stats.')
  21. elif message.content.startswith(COMMAND_PREFIX + 'ping'):
  22. await client.send_message(message.channel, 'pong')
  23.  
  24.  
  25. if message.content.startswith(COMMAND_PREFIX + 'stats'):
  26. words = message.content.split(' ', 2)
  27.  
  28.  
  29.  
  30. if len(words) < 3:
  31. await client.send_message(message.channel, 'Usage: ' + COMMAND_PREFIX + 'stats <pc,xbl,psn> <nickname>')
  32. return
  33.  
  34. platform = words[1].lower()
  35.  
  36. # more acceptable platform names
  37. if platform == 'xbox':
  38. platform = 'xbl'
  39. elif platform == 'ps4':
  40. platform = 'psn'
  41.  
  42. if platform not in ('pc','xbl','psn'):
  43. await client.send_message(message.channel, 'Usage: ' + COMMAND_PREFIX + 'stats <pc,xbl,psn> <nickname>')
  44. return
  45. else:
  46. res = fortnite_tracker_api(platform,words[2])
  47.  
  48. if res:
  49. matches_played = res[0]['value']
  50. wins = res[1]['value']
  51. win_percent = res[2]['value']
  52. kills = res[3]['value']
  53. kd = res[4]['value']
  54.  
  55. embed = discord.Embed(title="Lifetime Stats for " + words[2], color=0x00ff00)
  56.  
  57. embed.add_field(name="Matches Played", value=matches_played + '\n', inline=False)
  58. embed.add_field(name="Wins", value=wins + '\n', inline=False)
  59. embed.add_field(name="Win percent", value=win_percent + '\n', inline=False)
  60. embed.add_field(name="Kills", value=kills + '\n', inline=False)
  61. embed.add_field(name="K/D", value=kd + '\n', inline=False)
  62. await client.send_message(message.channel, embed=embed)
  63. else:
  64. await client.send_message(message.channel, 'Failed to get data. Double check spelling of your nickname.')
  65.  
  66. if message.content.startswith(COMMAND_PREFIX + 'stream'):
  67. await client.send_message(message.channel, 'https://www.youtube.com/channel/UCUq8H7Q59mXh_cK8lEOVI4Q')
  68.  
  69. if message.content.startswith(COMMAND_PREFIX + 'youtube'):
  70. await client.send_message(message.channel, 'https://www.youtube.com/channel/UCUq8H7Q59mXh_cK8lEOVI4Q')
  71.  
  72. def fortnite_tracker_api(platform, nickname):
  73. URL = 'https://api.fortnitetracker.com/v1/profile/' + platform + '/' + nickname
  74. req = requests.get(URL, headers={"TRN-Api-Key": FORTNITE_API_TOKEN})
  75.  
  76. if req.status_code == 200:
  77. try:
  78. print(req.json())
  79. lifetime_stats = req.json()['lifeTimeStats']
  80. return lifetime_stats[7:]
  81. except KeyError:
  82. return False
  83. else:
  84. return False
  85.  
  86. client.run(BOT_TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement