Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord
- import os
- from .utils.dataIO import dataIO
- from discord.ext import commands
- from cogs.utils import checks
- import asyncio
- import time
- import logging
- import aiohttp
- class Mycog:
- """
- This cog creates a file that stores how often emojis are used
- """
- def __init__(self, bot):
- self.bot = bot
- self.file_path = "data/emojiAnalytics/emojiAnalysis.json"
- self.json_data = dataIO.load_json(self.file_path)
- self.emojiList = []
- @commands.command()
- @checks.admin()
- async def initjson(self):
- config = {"emojis": []}
- f = "data/emojiAnalytics/emojiAnalysis.json"
- dataIO.save_json(f, config)
- @commands.command(pass_context=True)
- @checks.admin()
- async def emojistart(self, ctx):
- await self.bot.say("Discovering your servers emojis.")
- emojiList = ctx.message.server.emojis
- for emoji in emojiList:
- if emoji.name not in self.json_data:
- data = self.json_data
- data['emojis'].append({
- 'name': emoji.name,
- #'obj': emoji,
- 'uses': 0,
- 'lastUse': 'none'
- #'animated': "unavailable"
- })
- self.json_data = data
- dataIO.save_json(self.file_path, self.json_data)
- @commands.command(pass_context=True)
- async def reportleastused(self, ctx):
- name1 = ""
- name2 = ""
- name3 = ""
- name4 = ""
- name5 = ""
- name6 = "e6"
- name7 = "e7"
- name8 = "e8"
- name9 = "e9"
- name10 = "e10"
- used1 = 99999999
- used2 = 99999999
- used3 = 99999999
- used4 = 99999999
- used5 = 99999999
- used6 = 99999999
- used7 = 99999999
- used8 = 99999999
- used9 = 99999999
- used10 = 99999999
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) <= used1:
- name1 = emoji['name']
- used1 = int(emoji['uses'])
- #print("1")
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used1:
- if int(emoji['uses']) <= used2:
- if emoji['name'] != name1:
- name2 = str(emoji['name'])
- used2 = int(emoji['uses'])
- #print("2")
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used2:
- if int(emoji['uses']) <= used3:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- name3 = str(emoji['name'])
- used3 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used3:
- if int(emoji['uses']) <= used4:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- name4 = str(emoji['name'])
- used4 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used4:
- if int(emoji['uses']) <= used5:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- if emoji['name'] != name4:
- name5 = str(emoji['name'])
- used5 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used5:
- if int(emoji['uses']) <= used6:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- if emoji['name'] != name4:
- if emoji['name'] != name5:
- name6 = str(emoji['name'])
- used6 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used6:
- if int(emoji['uses']) <= used7:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- if emoji['name'] != name4:
- if emoji['name'] != name5:
- if emoji['name'] != name6:
- name7 = str(emoji['name'])
- used7 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used7:
- if int(emoji['uses']) <= used8:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- if emoji['name'] != name4:
- if emoji['name'] != name5:
- if emoji['name'] != name6:
- if emoji['name'] != name7:
- name8 = str(emoji['name'])
- used8 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used8:
- if int(emoji['uses']) <= used9:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- if emoji['name'] != name4:
- if emoji['name'] != name5:
- if emoji['name'] != name6:
- if emoji['name'] != name7:
- if emoji['name'] != name8:
- name9 = str(emoji['name'])
- used9 = int(emoji['uses'])
- for emoji in self.json_data['emojis']:
- if int(emoji['uses']) >= used9:
- if int(emoji['uses']) <= used10:
- if emoji['name'] != name1:
- if emoji['name'] != name2:
- if emoji['name'] != name3:
- if emoji['name'] != name4:
- if emoji['name'] != name5:
- if emoji['name'] != name6:
- if emoji['name'] != name7:
- if emoji['name'] != name8:
- if emoji['name'] != name9:
- name10 = str(emoji['name'])
- used10 = int(emoji['uses'])
- await self.bot.say("{} was used {} times".format(str(name1), str(used1)))
- await self.bot.say("{} was used {} times".format(str(name2), str(used2)))
- await self.bot.say("{} was used {} times".format(str(name3), str(used3)))
- await self.bot.say("{} was used {} times".format(str(name4), str(used4)))
- await self.bot.say("{} was used {} times".format(str(name5), str(used5)))
- await self.bot.say("{} was used {} times".format(str(name6), str(used6)))
- await self.bot.say("{} was used {} times".format(str(name7), str(used7)))
- await self.bot.say("{} was used {} times".format(str(name8), str(used8)))
- await self.bot.say("{} was used {} times".format(str(name9), str(used9)))
- await self.bot.say("{} was used {} times".format(str(name10), str(used10)))
- async def on_message(self, message):
- date = str(message.timestamp)
- messageContent = message.content
- if not self.emojiList: #checks if list is empty. This is necisary because if bot restarts it wont think emojis exist
- for emoji in self.json_data['emojis']:
- self.emojiList.append(emoji['name'])
- for emojiname in self.emojiList:
- if emojiname in messageContent:
- for emoji in self.json_data['emojis']:
- if emojiname == emoji['name']:
- if ":" in messageContent:
- emoji['uses'] = int(emoji['uses'] + 1)
- emoji['lastUse'] = date
- dataIO.save_json(self.file_path, self.json_data)
- def check_folders():
- if not os.path.exists("data/emojiAnalytics"):
- print("Creating data/emojiAnalytics folder...")
- os.makedirs("data/emojiAnalytics")
- def check_files():
- config = {"emojis": []}
- f = "data/emojiAnalytics/emojiAnalysis.json"
- if not dataIO.is_valid_json(f):
- print("Creating default emojiAnalysis.json...")
- print("First run detected. Run command [p]emojistart to begin collection")
- dataIO.save_json(f, config)
- def setup(bot):
- check_folders
- check_files
- n = Mycog(bot)
- bot.add_cog(n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement