Advertisement
Guest User

Arc's Emoji Analysis

a guest
Jun 25th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.88 KB | None | 0 0
  1. import discord
  2. import os
  3. from .utils.dataIO import dataIO
  4. from discord.ext import commands
  5. from cogs.utils import checks
  6. import asyncio
  7. import time
  8. import logging
  9. import aiohttp
  10.  
  11.  
  12. class Mycog:
  13.     """
  14.      This cog creates a file that stores how often emojis are used
  15.      """
  16.     def __init__(self, bot):
  17.         self.bot = bot
  18.         self.file_path = "data/emojiAnalytics/emojiAnalysis.json"
  19.         self.json_data = dataIO.load_json(self.file_path)
  20.         self.emojiList = []
  21.  
  22.     @commands.command()
  23.     @checks.admin()
  24.     async def initjson(self):
  25.         config = {"emojis": []}
  26.         f = "data/emojiAnalytics/emojiAnalysis.json"
  27.         dataIO.save_json(f, config)
  28.  
  29.  
  30.     @commands.command(pass_context=True)
  31.     @checks.admin()
  32.     async def emojistart(self, ctx):
  33.         await self.bot.say("Discovering your servers emojis.")
  34.         emojiList = ctx.message.server.emojis
  35.         for emoji in emojiList:
  36.             if emoji.name not in self.json_data:
  37.                 data = self.json_data
  38.                 data['emojis'].append({
  39.                     'name': emoji.name,
  40.                     #'obj': emoji,
  41.                     'uses': 0,
  42.                     'lastUse': 'none'
  43.                     #'animated': "unavailable"
  44.                     })
  45.                 self.json_data = data
  46.         dataIO.save_json(self.file_path, self.json_data)
  47.  
  48.     @commands.command(pass_context=True)
  49.     async def reportleastused(self, ctx):
  50.         name1 = ""
  51.         name2 = ""
  52.         name3 = ""
  53.         name4 = ""
  54.         name5 = ""
  55.         name6 = "e6"
  56.         name7 = "e7"
  57.         name8 = "e8"
  58.         name9 = "e9"
  59.         name10 = "e10"
  60.         used1 = 99999999
  61.         used2 = 99999999
  62.         used3 = 99999999
  63.         used4 = 99999999
  64.         used5 = 99999999
  65.         used6 = 99999999
  66.         used7 = 99999999
  67.         used8 = 99999999
  68.         used9 = 99999999
  69.         used10 = 99999999
  70.         for emoji in self.json_data['emojis']:
  71.             if int(emoji['uses']) <= used1:
  72.                 name1 = emoji['name']
  73.                 used1 = int(emoji['uses'])
  74.         #print("1")
  75.         for emoji in self.json_data['emojis']:
  76.             if int(emoji['uses']) >= used1:
  77.                 if int(emoji['uses']) <= used2:
  78.                     if emoji['name'] != name1:
  79.                         name2 = str(emoji['name'])
  80.                         used2 = int(emoji['uses'])
  81.         #print("2")
  82.         for emoji in self.json_data['emojis']:
  83.             if int(emoji['uses']) >= used2:
  84.                 if int(emoji['uses']) <= used3:
  85.                     if emoji['name'] != name1:
  86.                         if emoji['name'] != name2:
  87.                             name3 = str(emoji['name'])
  88.                             used3 = int(emoji['uses'])
  89.         for emoji in self.json_data['emojis']:
  90.             if int(emoji['uses']) >= used3:
  91.                 if int(emoji['uses']) <= used4:
  92.                     if emoji['name'] != name1:
  93.                         if emoji['name'] != name2:
  94.                             if emoji['name'] != name3:
  95.                                 name4 = str(emoji['name'])
  96.                                 used4 = int(emoji['uses'])
  97.         for emoji in self.json_data['emojis']:
  98.             if int(emoji['uses']) >= used4:
  99.                 if int(emoji['uses']) <= used5:
  100.                     if emoji['name'] != name1:
  101.                         if emoji['name'] != name2:
  102.                             if emoji['name'] != name3:
  103.                                 if emoji['name'] != name4:
  104.                                     name5 = str(emoji['name'])
  105.                                     used5 = int(emoji['uses'])
  106.         for emoji in self.json_data['emojis']:
  107.             if int(emoji['uses']) >= used5:
  108.                 if int(emoji['uses']) <= used6:
  109.                     if emoji['name'] != name1:
  110.                         if emoji['name'] != name2:
  111.                             if emoji['name'] != name3:
  112.                                 if emoji['name'] != name4:
  113.                                     if emoji['name'] != name5:
  114.                                         name6 = str(emoji['name'])
  115.                                         used6 = int(emoji['uses'])
  116.         for emoji in self.json_data['emojis']:
  117.             if int(emoji['uses']) >= used6:
  118.                 if int(emoji['uses']) <= used7:
  119.                     if emoji['name'] != name1:
  120.                         if emoji['name'] != name2:
  121.                             if emoji['name'] != name3:
  122.                                 if emoji['name'] != name4:
  123.                                     if emoji['name'] != name5:
  124.                                         if emoji['name'] != name6:
  125.                                             name7 = str(emoji['name'])
  126.                                             used7 = int(emoji['uses'])
  127.         for emoji in self.json_data['emojis']:
  128.             if int(emoji['uses']) >= used7:
  129.                 if int(emoji['uses']) <= used8:
  130.                     if emoji['name'] != name1:
  131.                         if emoji['name'] != name2:
  132.                             if emoji['name'] != name3:
  133.                                 if emoji['name'] != name4:
  134.                                     if emoji['name'] != name5:
  135.                                         if emoji['name'] != name6:
  136.                                             if emoji['name'] != name7:
  137.                                                 name8 = str(emoji['name'])
  138.                                                 used8 = int(emoji['uses'])
  139.         for emoji in self.json_data['emojis']:
  140.             if int(emoji['uses']) >= used8:
  141.                 if int(emoji['uses']) <= used9:
  142.                     if emoji['name'] != name1:
  143.                         if emoji['name'] != name2:
  144.                             if emoji['name'] != name3:
  145.                                 if emoji['name'] != name4:
  146.                                     if emoji['name'] != name5:
  147.                                         if emoji['name'] != name6:
  148.                                             if emoji['name'] != name7:
  149.                                                 if emoji['name'] != name8:
  150.                                                     name9 = str(emoji['name'])
  151.                                                     used9 = int(emoji['uses'])
  152.         for emoji in self.json_data['emojis']:
  153.             if int(emoji['uses']) >= used9:
  154.                 if int(emoji['uses']) <= used10:
  155.                     if emoji['name'] != name1:
  156.                         if emoji['name'] != name2:
  157.                             if emoji['name'] != name3:
  158.                                 if emoji['name'] != name4:
  159.                                     if emoji['name'] != name5:
  160.                                         if emoji['name'] != name6:
  161.                                             if emoji['name'] != name7:
  162.                                                 if emoji['name'] != name8:
  163.                                                     if emoji['name'] != name9:
  164.                                                         name10 = str(emoji['name'])
  165.                                                         used10 = int(emoji['uses'])
  166.         await self.bot.say("{} was used {} times".format(str(name1), str(used1)))
  167.         await self.bot.say("{} was used {} times".format(str(name2), str(used2)))
  168.         await self.bot.say("{} was used {} times".format(str(name3), str(used3)))
  169.         await self.bot.say("{} was used {} times".format(str(name4), str(used4)))
  170.         await self.bot.say("{} was used {} times".format(str(name5), str(used5)))
  171.         await self.bot.say("{} was used {} times".format(str(name6), str(used6)))
  172.         await self.bot.say("{} was used {} times".format(str(name7), str(used7)))
  173.         await self.bot.say("{} was used {} times".format(str(name8), str(used8)))
  174.         await self.bot.say("{} was used {} times".format(str(name9), str(used9)))
  175.         await self.bot.say("{} was used {} times".format(str(name10), str(used10)))
  176.  
  177.  
  178.     async def on_message(self, message):
  179.         date = str(message.timestamp)
  180.         messageContent = message.content
  181.         if not self.emojiList: #checks if list is empty. This is necisary because if bot restarts it wont think emojis exist
  182.             for emoji in self.json_data['emojis']:
  183.                 self.emojiList.append(emoji['name'])
  184.         for emojiname in self.emojiList:
  185.             if emojiname in messageContent:
  186.                 for emoji in self.json_data['emojis']:
  187.                     if emojiname == emoji['name']:
  188.                         if ":" in messageContent:
  189.                             emoji['uses'] = int(emoji['uses'] + 1)
  190.                             emoji['lastUse'] = date
  191.                             dataIO.save_json(self.file_path, self.json_data)
  192.  
  193.  
  194.  
  195. def check_folders():
  196.     if not os.path.exists("data/emojiAnalytics"):
  197.         print("Creating data/emojiAnalytics folder...")
  198.         os.makedirs("data/emojiAnalytics")
  199.  
  200. def check_files():
  201.     config = {"emojis": []}
  202.     f = "data/emojiAnalytics/emojiAnalysis.json"
  203.     if not dataIO.is_valid_json(f):
  204.         print("Creating default emojiAnalysis.json...")
  205.         print("First run detected. Run command [p]emojistart to begin collection")
  206.         dataIO.save_json(f, config)
  207.  
  208. def setup(bot):
  209.     check_folders
  210.     check_files
  211.     n = Mycog(bot)
  212.     bot.add_cog(n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement