From 009d64ef160050e88f02cf882c42e992c48cb047 Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Fri, 2 Dec 2022 21:50:20 +0100 Subject: [PATCH] Test voor kopieerpasta --- General.py | 38 ++++++++++++++++++++++++-------------- tests.py | 7 +++++++ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/General.py b/General.py index c86b601..b11f33d 100644 --- a/General.py +++ b/General.py @@ -5,6 +5,7 @@ import praw import random import re import json, requests +import warnings from discord.ext import commands from sympy import latex, symbols, preview, Symbol #for LaTeX images import youtube_dl @@ -22,6 +23,7 @@ class General(commands.Cog): client_id=os.getenv("STROOP_REDDIT_ID") ) self.r.read_only = True + warnings.simplefilter("ignore") def __check(self, ctx): #Todo: Is dit het porno kanaal? return True @@ -77,30 +79,38 @@ class General(commands.Cog): print("No permission to delete message") yield from ctx.channel.send(ctx.author.mention + ' ' + post.url) + def get_kopieerpasta(self): + rkopieerpasta = self.r.subreddit('kopieerpasta') + post = rkopieerpasta.random() + + # Subreddits kunnen de random functie uitzetten, dus dit is de fallback: + if post == None: + listing = list(rkopieerpasta.top('month', limit=250)) + post = random.choice(listing) + + return post + @commands.command(pass_context=True) @asyncio.coroutine def kopieerpasta(self, ctx): """Een willekeurige shitpost""" - rkopieerpasta = self.r.subreddit('kopieerpasta') - post = rkopieerpasta.random() - - # Subreddits kunnen de random functie uitzetten, dus dit is de fallback: - if post == None: - post = rkopieerpasta.top('month', limit=250) - listing = list(post) - random.shuffle(listing) - post = listing[0] + post = self.get_kopieerpasta() + print(post.url) + ATTEMPTS = 10 + a = 0 + while len(post.selftext + post.title) >= 1990 and a < ATTEMPTS: + post = self.get_kopieerpasta() + print(post.url) + a += 1 try: yield from ctx.message.delete() except: print("No permission to delete message") - # Er is een 2000 karakter limiet wat met sommige pastas overschreden kan worden. - # eigenlijk willen we het dan opnieuw proberen maar dat is lastiger, dus maar gewoon berichtje. - if (len(post.selftext)+len(post.title)) >= 1990: - yield from ctx.channel.send('Sorry, kopieerpasta te lang. Probeer het maar opnieuw .') - else: + if len(post.selftext + post.title) < 1990: yield from ctx.channel.send('**'+post.title+'**```'+post.selftext+'```') + else: + yield from ctx.channel.send("Geen kopieerpasta voor jou vandaag.") @commands.command(pass_context=True) @asyncio.coroutine diff --git a/tests.py b/tests.py index 22ebc82..e57ed51 100644 --- a/tests.py +++ b/tests.py @@ -35,3 +35,10 @@ class TestGeneral(unittest.TestCase): self.skipTest("PRAW Reddit instance failed to create") post = self.cog.get_aww_post() self.assertIsInstance(post.url, str) + + def test_kopieerpasta(self): + if not isinstance(self.cog.r, praw.Reddit): + self.skipTest("PRAW Reddit instance failed to create") + post = self.cog.get_kopieerpasta() + self.assertIsInstance(post.url, str) +