Ejemplo n.º 1
0
    async def preview(self, ctx):
        member = ctx.author
        if member.bot == True:
            return

        #await update_user(member.guild,member)

        query = {"gid": ctx.guild.id}
        guilds = collection.find(query)
        for result in guilds:
            if result['welcomeMessage'] == None:
                print('No welcome')
                return
            var = False
            text = ''
            string = ''
            imageUrl = result['welcomeImg']
            for i in result['welcomeMessage']:
                if i == '{':
                    var = True
                    continue
                elif i == '}':
                    string = string.lower()

                    if string == 'user':
                        text += str(member)
                    elif string == 'name':
                        text += str(member.name)
                    elif string == 'mention':
                        text += str(member.mention)
                    elif string == 'server':
                        text += str(member.guild.name)
                    elif string == 'number':
                        num = member.guild.member_count
                        text += str(num)
                        num = num % 10
                        if num == 1:
                            text += 'st'
                        elif num == 2:
                            text += 'nd'
                        elif num == 3:
                            text += 'rd'
                        else:
                            text += 'th'
                    #print(string)
                    string = ''
                    var = False
                    continue
                if var == True:
                    string += i
                else:
                    text += i

        if imageUrl != None:
            buffer = await self.welcomeimage(ctx.author, imageUrl)
            await ctx.send(text, file=dFile(fp=buffer, filename='welcome.png'))
        else:
            await ctx.send(text)
Ejemplo n.º 2
0
 async def perf_template(self, ctx, event_name):
     try:
         filename, fil = sql_fetch_template(self, event_name)
     except InvalidEventTitleError:
         await ctx.send("No event found with the title '%s'" % event_name)
     except RegistrationEmptyError:
         await ctx.send(
             "There are no users registered for this event. A template could not be generated."
         )
     else:
         await ctx.send(file=dFile(fil, filename))
         fil.close()
Ejemplo n.º 3
0
 async def image(self, ctx, *, url=None):
     if ctx.author.bot == True:
         return
     if url == None:
         collection.update_one({"gid": ctx.guild.id},
                               {"$set": {
                                   "welcomeImg": None
                               }})
         await ctx.send(
             'Welcome Image is disabled.\nNote: Preffered image size is 1000x400.'
         )
         return
     collection.update_one({"gid": ctx.guild.id},
                           {"$set": {
                               "welcomeImg": url
                           }})
     buffer = await self.welcomeimage(ctx.author, url)
     await ctx.send(
         'Welcome Image is set.\nType `welcome image` to disable it.\nNote: Preffered image size is 1000x400.',
         file=dFile(fp=buffer, filename='welcome.png'))
Ejemplo n.º 4
0
    async def rank(self, ctx, member: dMember = None) -> None:
        if member:
            uMember = member
        else:
            uMember = ctx.author
        result = await self.db.fetch(
            f'SELECT rank, xp FROM users WHERE id=\'{uMember.id}\'')
        if result:
            async with aiohttp.ClientSession() as session:
                async with session.get(
                        f'{uMember.avatar_url}?size=128') as resp:
                    profile_bytes = await resp.read()

            buffer = utilities.rankcard.draw(str(uMember), result[0][0],
                                             result[0][1],
                                             BytesIO(profile_bytes))

            await ctx.send(file=dFile(fp=buffer, filename='rank_card.png'))
        else:
            await ctx.send(f'{uMember.mention}, you don\'t received xp yet.')
Ejemplo n.º 5
0
async def _process_image(message, attempts=1):
    if (attempts == 3):
        # happens if something gone really bad in the _random_cat
        print('[Nekobot] Unable to access the url.')
        return

    content = message.content[1:]
    module = importer(modules[content])
    (url, name
     ) = module.get_rand_image_url()  # must return a tuplue (url, filename)

    if (url == None):
        print('[Nekobot] Cannot access {0}, trying again...'.format(url))
        await _random_cat(message, attempts + 1)
        return

    bytes = request.urlopen(url).read()  # TODO: neeed a .code != 200 here too

    data = BytesIO(bytes)
    await message.channel.send(file=dFile(data, filename=name))
Ejemplo n.º 6
0
 async def welcometest(self, ctx):
     buffer = await self.welcomeimage(
         ctx.author,
         'https://cdn.discordapp.com/attachments/773735384970428439/774143894635806741/welcomeImage.png'
     )
     await ctx.send(file=dFile(fp=buffer, filename='welcome.png'))
Ejemplo n.º 7
0
    async def on_member_join(self, member):
        if member.bot == True:
            return
        #print('nani')
#        await update_user(member.guild,member)

        query = {"gid": member.guild.id}
        guilds = collection.find(query)
        for result in guilds:
            if result['welcomeRole'] != None:
                role = member.guild.get_role(int(result['welcomeRole']))
                try:
                    await member.add_roles(role)
                    print('autorole {} added for {}'.format(role, member))
                except Exception as e:
                    print('Missing permission on autorole at',
                          str(member.guild), e)
            else:
                print("Welcome Role isn't activted in {}".format(member.guild))

            if result['welcomeChannel'] == None:
                print('No welcome in {}'.format(member.guild))
                return
            cid = result['welcomeChannel']
            imageUrl = result['welcomeImg']
            #print('Here2')
            var = False
            text = ''
            string = ''
            for i in result['welcomeMessage']:
                if i == '{':
                    var = True
                    continue
                elif i == '}':
                    string = string.lower()

                    if string == 'user':
                        text += str(member)
                    elif string == 'name':
                        text += str(member.name)
                    elif string == 'mention':
                        text += str(member.mention)
                    elif string == 'server':
                        text += str(member.guild.name)
                    elif string == 'number':
                        num = member.guild.member_count
                        text += str(num)
                        if num == 11:
                            text += 'th'
                        elif num == 12:
                            text += 'th'
                        elif num == 13:
                            text += 'th'
                        else:
                            num = num % 10
                            if num == 1:
                                text += 'st'
                            elif num == 2:
                                text += 'nd'
                            elif num == 3:
                                text += 'rd'
                            else:
                                text += 'th'
                    #print(string)
                    string = ''
                    var = False
                    continue
                if var == True:
                    string += i
                else:
                    text += i
            #print('here 3')
        channel = member.guild.get_channel(cid)
        if imageUrl != None:
            try:
                buffer = await self.welcomeimage(member, imageUrl)
                await channel.send(text,
                                   file=dFile(fp=buffer,
                                              filename='welcome.png'))
            except:
                await channel.send(text)
        else:
            await channel.send(text)
        print('Welcome message sent for {} in {}.'.format(
            member, member.guild))