def getembed(self, title): desc = str(self) + "\nVolume: {}%".format(int( self.player.volume * 100)) if 'https://' in self.player.url: info_dict = self.player.yt.extract_info(self.player.url, download=False) video_id = info_dict.get("id", None) em = dmbd.newembed(self.requester, title, desc, self.player.url) em.set_image(url='https://img.youtube.com/vi/' + video_id + '/maxresdefault.jpg') else: em = dmbd.newembed(self.requester, title, desc) return em
async def PoF(self, ctx): coin = [":poop:", ":full_moon_with_face: "] msg = "C'est " author = ctx.message.author em = dmbd.newembed(author, msg + randchoice(coin)) await self.bot.delete_message(ctx.message) await self.bot.say(embed=em)
async def stats(self, ctx): author = ctx.message.author title = 'Stats for ' + self.bot.user.name desc = 'Don\'t..t..t... look at my stats... Baka!' url = "https://github.com/xNinjaKittyx/" # trello = "Add Later" inviteurl = ("https://discordapp.com/api/oauth2/authorize?client_id=" + self.bot.user.id + "&scope=bot&permissions=0") supporturl = "https://discord.gg/Fzz344U" em = dmbd.newembed(author, title, desc, url) em.add_field(name='Total Users', value=self.gettotalusers()) em.add_field(name='Total Servers', value=len(self.bot.servers)) em.add_field(name='Current Server Users', value=len(ctx.message.server.members)) em.add_field(name='Uptime', value=self.getuptime()) em.add_field(name='CPU', value="{0:.2f}%".format(self.getcpuusage())) em.add_field(name='Memory', value="{0:.2f} MB".format(self.getmemusage())) # em.add_field(name='Trello', value='[Trello Page]({})'.format(trello)) em.add_field(name='Invite', value='[Click Me :)]({})'.format(inviteurl)) em.add_field(name='Support', value='[Discord Link]({})'.format(supporturl)) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('stats')
def getlink(self, mon, author): title = mon['name'] description = mon["name_jp"] + "\n" + "*" * mon["rarity"] url = 'http://puzzledragonx.com/en/monster.asp?n=' + str(mon['id']) em = dmbd.newembed(author, title, description, url) em.set_image(url='https://www.padherder.com' + mon['image60_href']) em.add_field(name='Type', value=self.gettype(mon['type'], mon['type2'], mon['type3'])) em.add_field(name='Cost', value=mon['team_cost']) em.add_field(name='MaxLv', value="{0} ({1}xp)".format(mon['max_level'], mon['xp_curve'])) em.add_field(name='HP', value="[{0}][{1}]".format(mon['hp_min'], mon['hp_max'])) em.add_field(name='ATK', value="[{0}][{1}]".format(mon['atk_min'], mon['atk_max'])) em.add_field(name='RCV', value="[{0}][{1}]".format(mon['rcv_min'], mon['rcv_max'])) em.add_field(name='Leader Skill', value=str(mon['leader_skill'])) em.add_field(name='Active Skill', value=str(mon['active_skill'])) em.add_field(name='MP Sell Price', value=mon['monster_points']) em.add_field(name='Awakenings', value=self.getawaken(mon['awoken_skills']), inline=False) self.bot.cogs['Wordcount'].cmdcount('pad') return em
async def roll(self, ctx): rolled = random.randint(1, 6) rolled = str(rolled) msg = "Vous avez lancé un Dé !" + "\n" + "Il affiche " + rolled author = ctx.message.author em = dmbd.newembed(author, msg) await self.bot.delete_message(ctx.message) await self.bot.say(embed=em)
async def followers(self, ctx): data = urllib.request.urlopen( "https://www.googleapis.com/youtube/v3/channels?part=statistics&id=" + CHANNEL_ID + "&key=" + API_KEY).read() subs = json.loads(data)["items"][0]["statistics"]["subscriberCount"] description = (NAME_SOCIAL + " à " + "{:,d}".format(int(subs)) + " followers!🎉") em = dmbd.newembed(ctx.message.author, d=description) await self.bot.say(embed=em)
async def ping(self, ctx): pingpong = datetime.now() - ctx.message.timestamp pingpong = pingpong.microseconds / 1000 second = await self.bot.say('*headtilt*') heartbeat = second.timestamp - ctx.message.timestamp heartbeat = heartbeat.microseconds / 1000 description = (':ping_pong: `' + str(pingpong) + ' ms`\n' + ':blue_heart: `' + str(heartbeat) + ' ms`') em = dmbd.newembed(ctx.message.author, d=description) await self.bot.edit_message(second, new_content='', embed=em)
async def wiki(self, ctx, *, search: str): """ Grabs Wikipedia Article """ searchlist = wikipedia.search(search) if len(searchlist) < 1: author = ctx.message.author title = "Searched for: " + search desc = 'No Results Found' em = dmbd.newembed(author, title, desc) await self.bot.say(embed=em) else: page = wikipedia.page(searchlist[0]) author = ctx.message.author title = page.title desc = wikipedia.summary(searchlist[0], 3) url = page.url em = dmbd.newembed(author, title, desc, url) em.set_image(url=page.images[0]) em.set_thumbnail(url="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/250px-Wikipedia-logo-v2-en.svg.png") self.bot.cogs['Wordcount'].cmdcount('wiki') await self.bot.say(embed=em)
async def search(self, ctx, *, query: str): if query is None: return results = [] for x in self.bot.redis_db.hkeys('tags'): if query in x.decode('utf-8'): results.append(x.decode('utf-8')) wew = "" for x, y in enumerate(results): wew += str(x+1) + ") " + y + "\n" em = dmbd.newembed(ctx.message.author) em.set_footer(text=wew) await self.bot.say(embed=em)
async def cyanidercg(self, ctx): """ Gives a randomly generated Cyanide & Happiness Comic""" async with self.bot.session.get('http://explosm.net/rcg') as r: if not r.status == 200: self.bot.cogs['Log'].output("Unable to get RCG for Cyanide") return soup = BeautifulSoup(await r.text(), 'html.parser') img = 'http:' + str(soup.find(id='rcg-comic').img['src']) print(img) em = dmbd.newembed(ctx.message.author, 'Cyanide and Happiness RCG', u=img) em.set_image(url=img) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('chrng')
async def flip(self, ctx, coins=1): """ Flips a coin.""" author = ctx.message.author em = dmbd.newembed(author) for x in range(coins): coin = random.randint(1, 2) if coin == 1: em.add_field(name="Coin #" + str(x + 1), value="Heads") elif coin == 2: em.add_field(name="Coin #" + str(x + 1), value="Tails") await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('flip')
async def xkcd(self, ctx): """Gives a random XKCD Comic""" chk = await self.refreshxkcd() if not chk: return maxnum = int(self.bot.redis_db.get('xkcdmax').decode('utf-8')) number = random.randint(1, maxnum) url = "http://xkcd.com/" + str(number) j = await self.getxkcd(number, url) em = dmbd.newembed(ctx.message.author, j['safe_title'], u=url) em.set_image(url=j['img']) em.add_field(name=j['alt'], value="{0}/{1}/{2}".format(j['month'], j['day'], j['year'])) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('xkcd')
async def ball(self, ctx): """ Demandez à 8Ball """ answers = [ 'Essaye plus tard', 'Essaye encore', "Pas d'avis", 'C\'est ton destin', 'Le sort en est jeté', 'Une chance sur deux', 'Repose ta question', 'D\'après moi oui', 'C\'est certain', 'Oui absolument', 'Tu peux compter dessus', 'Sans aucun doute', 'Très probable', 'Oui', 'C\'est bien parti', ':smirk:', 'C\'est non', 'Peu probable', 'Faut pas rêver', 'N\'y compte pas', 'Impossible' ] author = ctx.message.author em = dmbd.newembed(author, random.choice(answers)) await self.bot.say(embed=em)
async def profile(self, ctx, *, name: str = None): """ Display Profile :o """ user = self.getuser(ctx, name) if not user: return author = ctx.message.author em = dmbd.newembed(author, user.name + '#' + user.discriminator, u=user.avatar_url) em.set_image(url=user.avatar_url) lvl, percent = self.getlevel(user.id) em.add_field(name="Lv. " + str(lvl), value=str(int(percent * 100)) + "%") await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('profile')
async def rdrop(self, ctx): places = [ "Risky Reels", "Lucky Landing", "China Motel", "New Factories", "Motel", "anywhere you want", "Football Ground", "Between Shifty and Flush", "Container", "Paradise Palms", "North of Wailing Woods", "Dusty Divot", "Fatal Fields", "Flush Factory", "Greasy Grove", "Haunted Hills", "Junk Junction", "Lonely Lodge", "Loot Lake", "Pleasant Park", "Retail Row", "Salty Springs", "Lazy Links", "Shifty Shafts", "Snobby Shores", "Tilted Towers", "Tomato Town", "Wailing Woods" ] msg = 'Go ' author = ctx.message.author em = dmbd.newembed(author, msg + randchoice(places)) await self.bot.delete_message(ctx.message) await self.bot.say(embed=em)
async def gfylink(self, keyword, count, author): link = "https://api.gfycat.com/v1test/gfycats/search?search_text=" + str(keyword) + "&count=" + str(count) async with self.bot.session.get(link) as r: if r.status != 200: self.bot.cogs['Log'].output('Gyfcat returned ' + r.status) giflist = await r.json() num = random.randint(0, count-1) gif = giflist["gfycats"][num] title = gif["gfyName"] desc = gif["title"] if gif["tags"] != None: desc += " #" + " #".join([x for x in gif["tags"]]) url = "https://gfycat.com/" + title return dmbd.newembed(author, title, desc, url)
async def roll(self, ctx, *, dice: str = '1d6'): """Rolls a dice in NdN format.""" try: rolls, limit = map(int, dice.split('d')) except ValueError: await self.bot.say('Format has to be in NdN!') return author = ctx.message.author title = 'Here are your dice results!' em = dmbd.newembed(author, title) for r in range(rolls): em.add_field(name="Dice #" + str(r + 1), value=str(random.randint(1, limit))) # result = ', '.join(str(random.randint(1, limit)) for r in range(rolls)) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('roll')
async def woof(self, ctx): """When user types ~woof, return a woof link """ async with self.bot.session.get('http://random.dog/') as r: if r.status != 200: self.bot.cogs['Log'].output("Could not get a woof") return doglink = BeautifulSoup(r.text, 'html.parser') rngdog = 'http://random.dog/' + doglink.img['src'] author = ctx.message.author title = 'Random.Dog' desc = 'Here, have a dog.' url = rngdog em = dmbd.newembed(author, title, desc, url) em.set_image(url=rngdog) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('woof')
async def meow(self, ctx): """ When User Types ~meow, return a cat link """ async with self.bot.session.get('http://random.cat/meow') as r: if r.status != 200: self.bot.cogs['Log'].output("Could not get a meow") return catlink = await r.json() rngcat = catlink['file'] author = ctx.message.author title = 'Random.Cat' desc = 'Here, have a cat.' url = rngcat em = dmbd.newembed(author, title, desc, url) em.set_image(url=rngcat) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('meow')
async def displayanswer(self, author, char): try: anime = char['anime'][0] except IndexError: anime = char['anime'] subtitle = anime['title_japanese'] url = "https://anilist.co/anime/" + str(anime['id']) em = dmbd.newembed(author, 'Here\'s the answer!', subtitle, url) em.set_image(url=anime['image_url_lge']) em.add_field(name=anime['title_romaji'], value=anime['title_english']) em.add_field(name="Type", value=anime['type']) em.add_field(name='Rating', value=anime['average_score']) xstr = lambda s: s or "" em.add_field(name=char['name_japanese'], value=char['name_first'] + " " + xstr(char['name_last'])) await self.bot.say(embed=em)
async def cyanide(self, ctx): """ Gives a random Cyanide & Happiness Comic""" chk = await self.refreshcyanide() if not chk: return # whatever reason, comics 1 - 38 don't exist. number = random.randint(39, int(self.bot.redis_db.get('cyanidemax').decode('utf-8'))) link = 'http://explosm.net/comics/' + str(number) img = await self.getcyanide(number, link) if img is None: return em = dmbd.newembed(ctx.message.author, 'Cyanide and Happiness', str(number), u=link) em.set_image(url=img) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('ch')
async def avatar(self, ctx, *, name: str = None): """ Grabbing an avatar of a person """ user = self.getuser(ctx, name) if not user: return author = ctx.message.author em = dmbd.newembed(author, u=user.avatar_url) em.set_image(url=user.avatar_url) em.add_field(name=user.name + '#' + user.discriminator + '\'s Avatar', value="Sugoi :D") if author != user: self.addpoints(user, random.randint(1, 5)) await self.bot.say(embed=em) self.bot.cogs['Wordcount'].cmdcount('avatar')