コード例 #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
ファイル: general.py プロジェクト: Krystool/Alastor-Bot
 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
ファイル: general.py プロジェクト: Krystool/Alastor-Bot
 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
ファイル: socialnetwork.py プロジェクト: Krystool/Alastor-Bot
 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
ファイル: general.py プロジェクト: Krystool/Alastor-Bot
    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
ファイル: fortnite.py プロジェクト: Krystool/Alastor-Bot
 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')