Пример #1
0
 async def get_response(self, post):
     if post.get("text"):
         embed = discord.Embed()
         embed.title = post["title"]
         embed.url = post["url"]
         embed.description = post["text"]
         return base.Response("", {}, embed)
     else:
         image = post["url"]
         title = post["title"]
         ret = f"**{title}** | {image}"
         return base.Response(ret, {}, None)
Пример #2
0
    async def get_post(self, number):
        title, episode_id = await self._get_id(number)

        url = ("https://www.webtoons.com/en/challenge"
               "/i-want-to-be-a-cute-anime-girl/image-change/"
               f"viewer?title_no=349416&episode_no={episode_id}")

        page = await self.get_url(url)

        soup = bs4.BeautifulSoup(page, "html.parser")

        files = {}

        images = soup.find(id="_imageList")
        for idx, image in enumerate(images.find_all("img")):
            image_url = image.attrs["data-url"]
            headers = {"Referer": "http://www.webtoons.com"}

            image_file = await self.get_url(image_url,
                                            headers=headers,
                                            type="bin")

            files[f"{idx}.jpg"] = io.BytesIO(image_file)

        caption = f"**{title}** | *I Want To Be a Cute Anime Girl!*"

        embed = discord.Embed(title=caption, url=url)
        return base.Response(None, files, embed)
Пример #3
0
    async def get_response(self, video):
        embed = discord.Embed()
        embed.title = video["snippet"]["title"]
        embed.description = video["snippet"]["description"]

        video_id = video["id"]["videoId"]
        embed.url = f"https://youtube.com/watch?v={video_id}"

        embed.set_image(url=video["snippet"]["thumbnails"]["high"]["url"])

        return base.Response("", {}, embed)
Пример #4
0
    async def get_response(self, state):
        ip, description, players, sample = state
        embed = discord.Embed(title=ip)
        description = "**Description**\n" + description
        playerstr = f"Players: **{players[0]}**/{players[1]}"
        if sample:
            online = "\n" + "\n".join(f"• {player}" for player in sample)
        else:
            online = ""
        embed.description = description + "\n" + playerstr + online

        return base.Response(None, {}, embed)
Пример #5
0
    async def get_response(self, state):
        embed = discord.Embed(title="Breq Services Status",
                              url="https://status.breq.dev")

        status_emojis = {
            0: "📴",  # Paused
            1: "📴",  # Not checked yet
            2: "🟢",  # Up
            8: "🔴",  # Seems Down
            9: "🔴",  # Down
        }

        embed.description = (
            f"{status_emojis[state['status']]} {state['friendly_name']}: "
            f"{state['custom_uptime_ratio']}%")

        return base.Response("", {}, embed)
Пример #6
0
    async def make_response(self, message, emoji, amount):
        "Create a packed Response about a message for posting on a board"

        content = f"{emoji} **{amount}** {message.channel.mention}"

        embed = discord.Embed()
        embed.set_author(name=message.author.display_name,
                         icon_url=message.author.avatar_url)

        embed.description = message.content
        embed.timestamp = message.edited_at or message.created_at

        if message.attachments:
            embed.set_image(url=message.attachments[0].proxy_url)

        embed.add_field(
            name="Jump to message",
            value=f"**on [#{message.channel.name}]({message.jump_url})**")

        return base.Response(content=content, embed=embed)
Пример #7
0
    async def get_post(self, number):
        max_no = json.loads(
            await
            self.get_url("https://k.breq.dev/testcomic/info.json"))["num"]

        if number == "random":
            url = ("https://k.breq.dev/testcomic/"
                   f"{random.randint(1, max_no)}.json")

        elif number == "latest":
            url = f"https://k.breq.dev/testcomic/{max_no}.json"
        else:
            url = f"https://k.breq.dev/testcomic/{number}.json"

        try:
            comic = json.loads(await self.get_url(url))
        except json.decoder.JSONDecodeError:
            raise commands.CommandError(f"Comic {number} not found!")

        embed = discord.Embed()
        embed.title = f"**#{comic['title']}** | `test comic`"

        return base.Response(None, {}, embed)
Пример #8
0
    async def get_post(self, number):
        if number == "random":
            max_no = (await self.get_url("https://xkcd.com/info.0.json",
                                         type="json"))["num"]
            url = f"https://xkcd.com/{random.randint(1, max_no)}/info.0.json"

        elif number == "latest":
            url = "https://xkcd.com/info.0.json"
        else:
            url = f"https://xkcd.com/{number}/info.0.json"

        try:
            comic = await self.get_url(url, type="json")
        except json.decoder.JSONDecodeError:
            raise commands.CommandError(f"Comic {number} not found!")

        embed = discord.Embed(url=f"https://xkcd.com/{comic['num']}/")
        embed.title = f"**#{comic['num']}** | {comic['title']} | *xkcd*"
        # embed.set_image(url=comic["img"])
        embed.set_footer(text=comic["alt"])

        image = await self.get_url(comic["img"], type="bin")

        return base.Response(None, {"xkcd.jpg": io.BytesIO(image)}, embed)
Пример #9
0
    async def get_response(self, state):
        embed = discord.Embed(title=f"**{state['ticker']}** ({state['name']})")
        embed.add_field(name="Price", value=state["price"])

        return base.Response(None, {}, embed)