Beispiel #1
0
def send_meme(webhook: Webhook, subreddits: List[str]) -> bool:
    meme_subreddit = reddit.subreddit(random.choice(subreddits))
    meme = meme_subreddit.random()
    if not any((meme.url.endswith(i) for i in REDDIT_ALLOWED_FORMATS)):
        return False
    embed = Embed(title=meme.title, color=Color.magenta())
    embed.set_image(url=meme.url)
    embed.set_footer(
        text=f"\U0001f44d {meme.ups} \u2502 \U0001f44e {meme.downs}")
    webhook.send(embed=embed)
    return True
Beispiel #2
0
def send_memes(webhook: Webhook, subreddits: List[str], quantity: int):
    sent = 0
    skipped = 0
    while sent < quantity:
        meme_subreddit = reddit.subreddit(random.choice(SUBREDDITS))
        meme = meme_subreddit.random()
        if not any((meme.url.endswith(i) for i in REDDIT_ALLOWED_FORMATS)):
            skipped += 1
            continue
        embed = Embed(title=meme.title, color=Color.magenta())
        embed.set_image(url=meme.url)
        embed.set_footer(text=f"\U0001f44d {meme.ups} \u2502 \U0001f44e {meme.downs}")
        webhook.send(embed=embed)
        sent += 1
    return sent, skipped
Beispiel #3
0
    def _publish(self, webhook: Webhook, embeds: List[Embed]):
        try:
            webhook.send(
                avatar_url=avartar,
                embeds=embeds
            )
            self._stats.sending_success()

        except NotFound:
            self._stats.sending_404()
            return False

        except HTTPException as e:
            self._stats.sending_failed()
            raise e

        except Exception as e:
            # FIXME: how to log the error?
            self._stats.sending_failed()
            raise e

        return True
Beispiel #4
0
def send_from_yaml(*,
                   webhook: Webhook,
                   filename: str,
                   text: Optional[str] = None,
                   **kwargs):
    messages, username, avatar_url = yaml_file_to_message(filename)
    kwargs.setdefault("username", username)
    kwargs.setdefault("avatar_url", avatar_url)
    return [
        webhook.send(message[0] or text,
                     embeds=message[1],
                     files=message[2],
                     **kwargs) for message in messages
    ]