import copy import pprint import time import discord from settings import * from discord.ext import commands from .poll import Poll from .utils import ask_for_server, ask_for_channel, get_server_pre from .utils import SETTINGS from utils.poll_name_generator import generate_word class PollControls: def __init__(self, bot): self.bot = bot ## General Methods async def is_admin_or_creator(self, ctx, server, owner_id, error_msg=None): member = server.get_member(ctx.message.author.id) if member.id == owner_id: return True else: result = await self.bot.db.config.find_one({'_id': str(server.id)}) if result and result.get('admin_role') in [r.name for r in member.roles]: return True else: if error_msg is not None: await self.bot.send_message(ctx.message.author, error_msg) return False async def say_error(self, ctx, error_text, footer_text=None): embed = discord.Embed(title='', description=error_text, colour=SETTINGS.color) embed.set_author(name='Error', icon_url=SETTINGS.title_icon) if footer_text is not None: embed.set_footer(text=footer_text) await self.bot.say(embed=embed) async def say_embed(self, ctx, say_text='', title='Pollmaster', footer_text=None): embed = discord.Embed(title='', description=say_text, colour=SETTINGS.color) embed.set_author(name=title, icon_url=SETTINGS.title_icon) if footer_text is not None: embed.set_footer(text=footer_text) await self.bot.say(embed=embed) ## Commands @commands.command(pass_context=True) async def delete(self, ctx, *, short=None): '''Delete a poll. Parameter: