コード例 #1
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_person_page_2(title, data):
        url = data["siteUrl"]
        id = data["id"]
        desc = f"Details for person with id **{id}**:\n[Link to page]({url})"
        pic_url = data["image"]["large"]

        media = ""
        for n in data["staffMedia"]["nodes"]:
            title = n["title"]["romaji"]
            url = n["siteUrl"]
            row = f"[{title}]({url})\n"
            if len(media) + len(row) > 1000:
                media += "[...]"
                break
            media += row
        chars = ""
        for n in data["characters"]["nodes"]:
            name = n["name"]["full"]
            url = n["siteUrl"]
            row = f"[{name}]({url})\n"
            if len(chars) + len(row) > 1000:
                chars += "[...]"
                break
            chars += row
        fields = [["Staff positions", media],
                  ["Voice acting roles", chars, False]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_thumbnail(url=pic_url)
        emb.set_footer(text="2/2 - Powered by AniList API")
        return emb
コード例 #2
0
ファイル: guild.py プロジェクト: Magunama/amathy
 async def s_info(self, ctx):
     """Info|Returns some server information.|"""
     embed = Embed().make_emb(title="Guild details:", desc="")
     embed.set_author(name="{} ({})".format(ctx.guild.name, ctx.guild.id))
     embed.set_thumbnail(url=ctx.guild.icon_url)
     embed.add_field(name="Owner", value=ctx.guild.owner, inline=True)
     embed.add_field(name="Region", value=ctx.guild.region, inline=True)
     embed.add_field(name="Created at",
                     value=str(ctx.guild.created_at).split('.', 1)[0],
                     inline=True)
     members = 0
     bots = 0
     online_members = 0
     if not ctx.guild.chunked:
         await self.bot.request_offline_members(ctx.guild)
     for member in ctx.guild.members:
         if member.bot:
             bots += 1
         else:
             members += 1
         status = str(member.status)
         if not status == "offline":
             online_members += 1
     embed.add_field(name="Members", value=members, inline=True)
     embed.add_field(name="Bots", value=bots, inline=True)
     embed.add_field(name="Online members",
                     value=online_members,
                     inline=True)
     embed.add_field(name="Text channels",
                     value=len(ctx.guild.text_channels),
                     inline=True)
     embed.add_field(name="Voice channels",
                     value=len(ctx.guild.voice_channels),
                     inline=True)
     embed.add_field(name="Nitro boost level",
                     value=ctx.guild.premium_tier,
                     inline=True)
     embed.add_field(name="Members boosting this guild",
                     value=ctx.guild.premium_subscription_count,
                     inline=True)
     g_boost_stats = "```Emoji limit: {} emojis\nBitrate limit: {} kbps\nFilesize limit: {} MB```"
     g_boost_stats = g_boost_stats.format(
         ctx.guild.emoji_limit, int(ctx.guild.bitrate_limit / 1000),
         int(ctx.guild.filesize_limit / 1048576))
     embed.add_field(name="Guild boost stats",
                     value=g_boost_stats,
                     inline=True)
     emoji_list = await ctx.guild.fetch_emojis()
     random.shuffle(emoji_list)
     emoji_string = ""
     maxlen = len(emoji_list)
     if maxlen > 20:
         maxlen = 20
     for i in range(0, maxlen):
         emoji_string += str(emoji_list[i])
     if len(emoji_string) > 0:
         embed.add_field(name="Some emojis",
                         value=emoji_string,
                         inline=True)
     await ctx.send(embed=embed)
コード例 #3
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_character_page_2(self, title, data, char_media):
        url = data["siteUrl"]
        id = data["id"]
        desc = f"Details for character with id **{id}**:\n[Link to page]({url})"
        pic_url = data["image"]["large"]

        voice_actors, media = char_media

        fields = [["Animeography", media["ANIME"]],
                  ["Mangaography", media["MANGA"], False]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_thumbnail(url=pic_url)
        emb.set_footer(text="2/2 - Powered by AniList API")
        return emb
コード例 #4
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_manga_page_5(self, title, data, relations):
        url = data["siteUrl"]
        id = data["id"]
        desc = f"Details for manga with id **{id}**:\n[Link to page]({url})"
        pic_url = data["coverImage"]["large"]
        get_rel_str = self.get_relation_str

        fields = [["Spin-off",
                   get_rel_str(relations, "SPIN_OFF"), False],
                  ["Character",
                   get_rel_str(relations, "CHARACTER"), False],
                  ["Other", get_rel_str(relations, "OTHER")]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_thumbnail(url=pic_url)
        emb.set_footer(text="5/5 - Powered by AniList API")
        return emb
コード例 #5
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_manga_page_4(self, title, data, relations):
        url = data["siteUrl"]
        id = data["id"]
        desc = f"Details for manga with id **{id}**:\n[Link to page]({url})"
        pic_url = data["coverImage"]["large"]
        get_rel_str = self.get_relation_str

        fields = [["Side story",
                   get_rel_str(relations, "SIDE_STORY"), False],
                  ["Summary",
                   get_rel_str(relations, "SUMMARY"), False],
                  ["Parent", get_rel_str(relations, "PARENT")]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_thumbnail(url=pic_url)
        emb.set_footer(text="4/5 - Powered by AniList API")
        return emb
コード例 #6
0
 async def get_dungeon_embed(self, ctx, player: skypy.Player):
     if not player.load_dungeon_stats():
         return await Embed(self.bot, ctx.author, title="Error", description="Couldn't find any dungeon stats for this player.").set_requested_by_footer()
     class_emojis = {"healer": ":heart:", "mage": ":sparkler:", "berserk": ":crossed_swords:", "archer": ":bow_and_arrow:", "tank": ":shield:"}
     embed = Embed(self.bot, ctx.author, title=f"{self.format_name(player.uname)} Catacombs stats on {player.profile_name}", description=f"**Catacombs level: {player.catacomb_level[0]}\nXP to next level: {round(player.catacomb_level[1])}**")
     embed.add_field(name=":arrows_counterclockwise:  Times played", value="\n".join([f"**Floor {z}:** {round(player.catacomb_times_floor_played[z])}" for z in player.catacomb_times_floor_played]), inline=False)
     embed.add_field(name=":clock1:  Fastest times", value="\n".join([f"**Floor {z}:** {timedelta(seconds=round(player.catacomb_fasted_times[z] / 1000))}" for z in player.catacomb_fasted_times]), inline=True)
     embed.add_field(name=":1234:  Best scores", value="\n".join([f"**Floor {z}:** {round(player.catacomb_best_scores[z]):,}" for z in player.catacomb_best_scores]), inline=True)
     embed.add_field(name=":drop_of_blood:  Mobs killed", value="\n".join([f"**Floor {z}:** {round(player.catacomb_mobs_killed[z])}" for z in player.catacomb_mobs_killed]), inline=True)
     embed.add_field(name=u"\u200b", value="**Class Levels**", inline=False)
     for _class in player.catacomb_class_levels:
         embed.add_field(name=f"{class_emojis[_class.lower()]}  {_class}", value=f"**Level:** {player.catacomb_class_levels[_class][0]}\n**XP to next level:** {round(player.catacomb_class_levels[_class][1])}\n", inline=True)
     embed.add_field(name=u"\u200b", value=u"\u200b", inline=True)
     embed.set_thumbnail(url=player.avatar())
     await embed.set_made_with_love_footer()
     return embed
コード例 #7
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_manga_page_3(self, title, data, relations):
        url = data["siteUrl"]
        id = data["id"]
        desc = f"Details for manga with id **{id}**:\n[Link to page]({url})"
        pic_url = data["coverImage"]["large"]
        get_rel_str = self.get_relation_str

        fields = [["Adaptation",
                   get_rel_str(relations, "ADAPTATION"), False],
                  ["Prequel",
                   get_rel_str(relations, "PREQUEL"), False],
                  ["Sequel", get_rel_str(relations, "SEQUEL"), False],
                  ["Alternative",
                   get_rel_str(relations, "ALTERNATIVE")]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_thumbnail(url=pic_url)
        emb.set_footer(text="3/5 - Powered by AniList API")
        return emb
コード例 #8
0
ファイル: skyblock.py プロジェクト: Manjot1151/Skybot-rewrite
    async def get_event_embed(self, ctx, event):
        event = self.get_event(event)

        if not event.event_name and not event.event_in:
            try:
                await event.set_data()
            except Exception:
                await asyncio.sleep(2)
                await event.set_data()

        event_in, event_on = self.get_times(event)

        embed = Embed(self.bot, ctx.author, title=event.event_name)
        await embed.set_requested_by_footer()
        embed.set_thumbnail(url=TimedEvent.icons[event.event_url])
        embed.add_field(name=f"{event.event_name} in:", value=event_in, inline=False)
        
        embed.add_field(name=f"{event.event_name} on (utc+0):", value=event_on, inline=False)
        return embed
コード例 #9
0
    async def get_stats_embed(self, ctx, player : skypy.Player):
        player.load_banking(False)
        player.load_misc(False)
        player.load_skills_slayers(False)

        name = self.format_name(player.uname)

        percentages = ["crit_chance", "speed", "crit_damage", "bonus_attack_speed", "sea_creature_chance"]
        icons = {
                'health': "❤️", 'defense': "🛡️", 'effective_health': "💕", 'strength': "⚔️",
                'speed': "🏃‍♂️", 'crit_chance': "🎲", 'crit_damage': "☠️", 'bonus_attack_speed': "🗯️",
                'intelligence': "🧠", 'sea_creature_chance': "🎣", 'magic_find': "⭐", 'pet_luck': "🦜"}

        if player.enabled_api["skills"]:
            description = f"Average skill level: {player.skill_average}"
        else:
            description = "Average skill level: Skills Api disabled"
        embed = Embed(self.bot, ctx.author, title=f"{name} Stats on {player.profile_name}", description=description)
        await embed.set_patron_footer()
        embed.set_thumbnail(url=player.avatar())

        for name, stat in player.stats.items():
            if name == "damage" or name == "damage_increase": continue
            if name in percentages:
                stat = str(stat) + "%"
            else:
                stat = f"{stat:,}"
            embed.add_field(name=f"{icons[name]} " + name.replace("_", " ").capitalize(), value=stat)

        embed.add_field(name="🌈 Fairy souls", value=player.fairy_souls_collected)
        if player.enabled_api["banking"]:
            embed.add_field(name="🏦 Bank Balance", value=f"{round(player.bank_balance):,}")
            embed.add_field(name="💰 Purse", value=f"{round(player.purse):,}")
        online = await player.is_online()
        embed.add_field(name="🟢 Currently online" if online else "🔴Currently online", value="Yes" if online else "No")
        embed.add_field(name="🚪 Join date", value=str(player.join_date.strftime("%Y-%m-%d")))
        embed.add_field(name="⏰ Last update", value=str(player.last_save.strftime("%Y-%m-%d")))
        embed.add_field(name=":money_with_wings: Estimated networth", value=f"{round(player.networth['total'] + player.slayer_total_spend):,}")

        return embed
コード例 #10
0
ファイル: anilist.py プロジェクト: Magunama/amathy
 def ani_user_page_3(title, desc, data):
     avatar = data["avatar"]["large"]
     fav = dict()
     for f in data["favourites"]:
         if f in ["characters", "staff"]:
             fav[f] = str()
             for n in data["favourites"][f]["nodes"]:
                 title = n["name"]["full"]
                 url = n["siteUrl"]
                 row = f"[{title}]({url})\n"
                 if len(fav[f]) + len(row) > 1000:
                     fav[f] += "[...]"
                     break
                 fav[f] += row
     chars_str = fav["characters"] if fav["characters"] else "None"
     staff_str = fav["staff"] if fav["staff"] else "None"
     fields = [["Favourite characters", chars_str],
               ["Favourite people", staff_str]]
     emb = Embed().make_emb(title=title, desc=desc, fields=fields)
     emb.set_thumbnail(url=avatar)
     emb.set_footer(text="3/3 - Powered by AniList API")
     return emb
コード例 #11
0
ファイル: anilist.py プロジェクト: Magunama/amathy
 def ani_user_page_2(title, desc, data):
     avatar = data["avatar"]["large"]
     fav = dict()
     for f in data["favourites"]:
         if f in ["anime", "manga"]:
             fav[f] = str()
             for n in data["favourites"][f]["nodes"]:
                 title = n["title"]["romaji"]
                 url = n["siteUrl"]
                 row = f"[{title}]({url})\n"
                 if len(fav[f]) + len(row) > 1000:
                     fav[f] += "[...]"
                     break
                 fav[f] += row
     anime_str = fav["anime"] if fav["anime"] else "None"
     manga_str = fav["manga"] if fav["manga"] else "None"
     fields = [["Favourite anime", anime_str],
               ["Favourite manga", manga_str]]
     emb = Embed().make_emb(title=title, desc=desc, fields=fields)
     emb.set_thumbnail(url=avatar)
     emb.set_footer(text="2/3 - Powered by AniList API")
     return emb
コード例 #12
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_user_page_1(title, desc, data):
        name = data["name"]
        about = data["about"]
        if about and len(about) > 1000:
            about = about[:1000] + "[...]"
        avatar = data["avatar"]["large"]
        banner = data["bannerImage"]
        score_format = data["mediaListOptions"]["scoreFormat"]

        anime = data["statistics"]["anime"]
        anime_str = "```Episodes watched: {}\nMean score: {}"
        anime_str = anime_str.format(anime["episodesWatched"],
                                     anime["meanScore"])
        for s in anime["statuses"]:
            st = s["status"]
            c = s["count"]
            anime_str += f"\n{st.title()}: {c}"
        anime_str += "\nTotal entries: {}```".format(anime["count"])
        manga = data["statistics"]["manga"]
        manga_str = "```Chapters read: {}\nMean score: {}"
        manga_str = manga_str.format(manga["chaptersRead"], manga["meanScore"])
        for s in manga["statuses"]:
            st = s["status"]
            c = s["count"]
            manga_str += f"\n{st.title()}: {c}"
        manga_str += "\nTotal entries: {}```".format(manga["count"])

        fields = [["Name", name], ["Score format", score_format],
                  ["About", about, False], ["Anime stats", anime_str, False],
                  ["Manga stats", manga_str]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_image(url=avatar)
        if banner:
            emb.set_thumbnail(url=banner)
        emb.set_footer(text="1/3 - Powered by AniList API")
        return emb
コード例 #13
0
ファイル: anilist.py プロジェクト: Magunama/amathy
    def ani_manga_page_2(title, data):
        url = data["siteUrl"]
        id = data["id"]
        desc = f"Details for manga with id **{id}**:\n[Link to page]({url})"
        pic_url = data["coverImage"]["large"]

        synopsis = data["description"]
        if synopsis and len(synopsis) > 1000:
            synopsis = synopsis[:1000] + "[...]"
        producers = list()
        studios = list()
        for s in data["studios"]["nodes"]:
            if s["isAnimationStudio"]:
                studios.append(s["name"])
            else:
                producers.append(s["name"])
        fields = [["Synopsis", synopsis, False],
                  ["Genres", ", ".join(data["genres"])],
                  ["Studios", ", ".join(studios)],
                  ["Producers/Licensors", ", ".join(producers)]]
        emb = Embed().make_emb(title=title, desc=desc, fields=fields)
        emb.set_thumbnail(url=pic_url)
        emb.set_footer(text="2/5 - Powered by AniList API")
        return emb
コード例 #14
0
ファイル: economy.py プロジェクト: Magunama/amathy
    async def stats(self, ctx, target: MemberConverter = None):
        """Info|Shows information concerning your current stats.|"""
        if not target:
            target = ctx.message.author
        joined_at = str(target.joined_at).split('.', 1)[0]
        created_at = str(target.created_at).split('.', 1)[0]
        nick = target.name
        if hasattr(target, "nick"):
            if target.nick:
                nick = target.nick

        title = f"• Nickname: {nick}"
        desc = f"Some details about {target.name}:"
        author = {"name": "{} ({})".format(target, target.id), "icon_url": ""}

        xp, gems, vip_days = await self.bot.funx.get_stats(target.id)
        lvl = Level().from_xp(xp)
        next_xp = Level().to_xp(lvl)
        progress = f"{lvl} [{xp} XP/{next_xp} XP]"
        pocket_coins, bank_coins = await self.bot.funx.get_coins(target.id)
        total_coins = pocket_coins + bank_coins
        pocket_coins = self.bot.funx.group_digit(pocket_coins)
        bank_coins = self.bot.funx.group_digit(bank_coins)
        total_coins = self.bot.funx.group_digit(total_coins)

        fields = [["• Created:", created_at, False],
                  ["• Joined:", joined_at, False],
                  ["• Level:", progress, False], ["• Gems:",
                                                  str(gems), False],
                  ["• VIP days:", str(vip_days), False],
                  ["• Pocket:", f"{pocket_coins} {self.mc_emoji}", False],
                  ["• Bank: ", f"{bank_coins} {self.mc_emoji}", False],
                  ["• Total: ", f"{total_coins} {self.mc_emoji}", False]]
        embed = Embed().make_emb(title, desc, author, fields)
        embed.set_thumbnail(url=target.avatar_url)
        await ctx.send(embed=embed)