Merge pull request #126 from bobloy/stealemoji_develop

Add Stealemoji AutoBanking
pull/127/head
bobloy 4 years ago committed by GitHub
commit c2c6d61a35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,9 +1,13 @@
import asyncio
import logging
from typing import Union
import discord import discord
from redbot.core import Config, checks, commands from redbot.core import Config, checks, commands
from redbot.core.bot import Red from redbot.core.bot import Red
from redbot.core.commands import Cog from redbot.core.commands import Cog
log = logging.getLogger("red.fox_v3.stealemoji")
# Replaced with discord.Asset.read() # Replaced with discord.Asset.read()
# async def fetch_img(session: aiohttp.ClientSession, url: StrOrURL): # async def fetch_img(session: aiohttp.ClientSession, url: StrOrURL):
# async with session.get(url) as response: # async with session.get(url) as response:
@ -43,7 +47,13 @@ class StealEmoji(Cog):
super().__init__() super().__init__()
self.bot = red self.bot = red
self.config = Config.get_conf(self, identifier=11511610197108101109111106105) self.config = Config.get_conf(self, identifier=11511610197108101109111106105)
default_global = {"stolemoji": {}, "guildbanks": [], "on": False, "notify": 0} default_global = {
"stolemoji": {},
"guildbanks": [],
"on": False,
"notify": 0,
"autobank": False,
}
self.config.register_global(**default_global) self.config.register_global(**default_global)
@ -124,6 +134,17 @@ class StealEmoji(Cog):
await ctx.maybe_send_embed("Collection is now " + str(not curr_setting)) await ctx.maybe_send_embed("Collection is now " + str(not curr_setting))
@checks.is_owner()
@stealemoji.command(name="autobank")
async def se_autobank(self, ctx):
"""Toggles automatically creating new guilds as emoji banks"""
curr_setting = await self.config.autobank()
await self.config.autobank.set(not curr_setting)
self.is_on = await self.config.autobank()
await ctx.maybe_send_embed("AutoBanking is now " + str(not curr_setting))
@checks.is_owner() @checks.is_owner()
@commands.guild_only() @commands.guild_only()
@stealemoji.command(name="bank") @stealemoji.command(name="bank")
@ -193,7 +214,7 @@ class StealEmoji(Cog):
# This is now a custom emoji that the bot doesn't have access to, time to steal it # 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? # First, do I have an available guildbank?
guildbank = None guildbank: Union[discord.Guild, None] = None
banklist = await self.config.guildbanks() banklist = await self.config.guildbanks()
for guild_id in banklist: for guild_id in banklist:
guild: discord.Guild = self.bot.get_guild(guild_id) guild: discord.Guild = self.bot.get_guild(guild_id)
@ -203,9 +224,33 @@ class StealEmoji(Cog):
break break
if guildbank is None: if guildbank is None:
# print("No guildbank to store emoji") if await self.config.autobank():
# Eventually make a new banklist try:
return guildbank: discord.Guild = await self.bot.create_guild(
"StealEmoji Guildbank", code="S93bqTqKQ9rM"
)
except discord.HTTPException:
await self.config.autobank.set(False)
log.exception("Unable to create guilds, disabling autobank")
return
async with self.config.guildbanks() as guildbanks:
guildbanks.append(guildbank.id)
await asyncio.sleep(2)
if guildbank.text_channels:
channel = guildbank.text_channels[0]
else:
# Always hits the else.
# Maybe create_guild doesn't return guild object with
# the template channel?
channel = await guildbank.create_text_channel("invite-channel")
invite = await channel.create_invite()
await self.bot.send_to_owners(invite)
log.info(f"Guild created id {guildbank.id}. Invite: {invite}")
else:
return
# Next, have I saved this emoji before (because uploaded emoji != orignal emoji) # Next, have I saved this emoji before (because uploaded emoji != orignal emoji)

Loading…
Cancel
Save