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)
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()
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'))
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.')
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))
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'))
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))