Пример #1
0
    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
Пример #2
0
 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)
Пример #3
0
    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')
Пример #4
0
    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
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
    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)
Пример #9
0
 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)
Пример #10
0
    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')
Пример #11
0
    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')
Пример #12
0
    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')
Пример #13
0
    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)
Пример #14
0
    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')
Пример #15
0
 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)
Пример #16
0
    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)
Пример #17
0
    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')
Пример #18
0
    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')
Пример #19
0
    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')
Пример #20
0
    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)
Пример #21
0
    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')
Пример #22
0
    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')