Merge pull request #5 from bobloy/stealemoji_develop

Forgot info file and errors
pull/6/head
bobloy 7 years ago committed by GitHub
commit c36f90698e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,20 @@
{
"author": [
"Bobloy"
],
"bot_version": [
3,
0,
0
],
"description": "Steals custom emojis the bot sees and moves them to an emoji server",
"hidden": true,
"install_msg": "Thank you for installing StealEmoji",
"requirements": [],
"short": "Steals custom emojis",
"tags": [
"bobloy",
"utils",
"emoji"
]
}

@ -1,18 +1,11 @@
import asyncio
import aiohttp
from urllib.parse import urlparse
import os
from typing import List, Union
import discord
from discord.ext import commands
from redbot.core import Config
from redbot.core import Config, RedContext
from redbot.core.bot import Red
# from redbot.core import data_manager
async def fetch_img(session, url):
with aiohttp.Timeout(10):
@ -26,29 +19,29 @@ class StealEmoji:
This cog steals emojis and creates servers for them
"""
default_stolemoji = {
"guildbank": None,
"name": None,
"require_colons": False,
"managed": False,
"guild_id": None,
"url": None,
"animated": False
}
def __init__(self, red: Red):
self.bot = red
self.config = Config.get_conf(self, identifier=11511610197108101109111106105)
default_global = {
"stolemoji": {},
"guildbanks": [],
"on": False
}
default_stolemoji = {
"guildbank": None,
"name": None,
"require_colons": False,
"managed": False,
"guild_id": None,
"url": None,
"animated": False
}
"stolemoji": {},
"guildbanks": [],
"on": False
}
self.config.register_global(**default_global)
@commands.group()
async def stealemoji(self, ctx: commands.Context):
async def stealemoji(self, ctx: RedContext):
"""
Base command for this cog. Check help for the commands list.
"""
@ -58,22 +51,22 @@ class StealEmoji:
@stealemoji.command(name="collect")
async def se_collect(self, ctx):
"""Toggles whether emoji's are collected or not"""
currSetting = await self.config.on()
await self.config.on.set(not currSetting)
await ctx.send("Collection is now "+str(not currSetting))
curr_setting = await self.config.on()
await self.config.on.set(not curr_setting)
await ctx.send("Collection is now " + str(not curr_setting))
@stealemoji.command(name="bank")
async def se_bank(self, ctx):
"""Add current server as emoji bank"""
await ctx.send("This will upload custom emojis to this server\n"
"Are you sure you want to make the current server an emoji bank? (y/n)")
"Are you sure you want to make the current server an emoji bank? (y/n)")
def check(m):
return m.content.upper() in ["Y","YES","N","NO"] and m.channel == ctx.channel and m.author == ctx.author
return m.content.upper() in ["Y", "YES", "N", "NO"] and m.channel == ctx.channel and m.author == ctx.author
msg = await self.bot.wait_for('message', check=check)
if msg.content in ["N","NO"]:
if msg.content in ["N", "NO"]:
await ctx.send("Cancelled")
return
@ -100,12 +93,11 @@ class StealEmoji:
# This is now a custom emoji that the bot doesn't have access to, time to steal it
# First, do I have an available guildbank?
guildbank = None
banklist = await self.config.guildbanks()
for guild_id in banklist:
guild = self.bot.get_guild(guild_id)
if len(guild.emojis)<50:
if len(guild.emojis) < 50:
guildbank = guild
break
@ -132,18 +124,17 @@ class StealEmoji:
# path = data_manager.cog_data_path(cog_instance=self) / (emoji.name+ext)
# with path.open("wb") as f:
# f.write(img)
# f.write(img)
# urllib.urlretrieve(emoji.url, emoji.name+ext)
try:
await guildbank.create_custom_emoji(name=emoji.name,image=img,reason="Stole from "+str(user))
except Forbidden as e:
await guildbank.create_custom_emoji(name=emoji.name, image=img, reason="Stole from " + str(user))
except discord.Forbidden as e:
print("PermissionError - no permission to add emojis")
raise PermissionError("No permission to add emojis") from e
except HTTPException:
except discord.HTTPException as e:
print("HTTPException exception")
raise HTTPException # Unhandled error
raise e # Unhandled error
# If you get this far, YOU DID IT
@ -159,8 +150,7 @@ class StealEmoji:
async with self.config.stolemoji() as stolemoji:
stolemoji[emoji.id] = save_dict
#Enable the below if you want to get notified when it works
# Enable the below if you want to get notified when it works
# owner = await self.bot.application_info()
# owner = owner.owner
# await owner.send("Just added emoji "+str(emoji)+" to server "+str(guildbank))

Loading…
Cancel
Save