diff options
| author | 2020-02-05 20:44:45 +0530 | |
|---|---|---|
| committer | 2020-02-05 20:44:45 +0530 | |
| commit | ec93125eab8a4ec8577f13f81d697a50824a5bd0 (patch) | |
| tree | c70c1872fb10ab7ab2da04c36512e9a24de5b37e | |
| parent | finished implementing the reddit command (diff) | |
uninstalled the buttons lib and corrected lint errors
| -rw-r--r-- | Pipfile | 1 | ||||
| -rw-r--r-- | Pipfile.lock | 165 | ||||
| -rw-r--r-- | bot/seasons/evergreen/reddit.py | 247 | 
3 files changed, 170 insertions, 243 deletions
@@ -11,7 +11,6 @@ discord-py = "~=1.2"  fuzzywuzzy = "~=0.17"  pillow = "~=6.2"  pytz = "~=2019.2" -buttons = "*"  [dev-packages]  flake8 = "~=3.7" diff --git a/Pipfile.lock b/Pipfile.lock index af8b646e..ee1398e9 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@  {      "_meta": {          "hash": { -            "sha256": "769234aeffdf5a6e781dc783a903771f6100f80450244d5211f0f1a11ec79814" +            "sha256": "40f23ea08504def8d3d5f56379820221088d93e9bf81d739850dc97ea8a4b7dc"          },          "pipfile-spec": 6,          "requires": { @@ -26,30 +26,20 @@          },          "aiohttp": {              "hashes": [ -                "sha256:00d198585474299c9c3b4f1d5de1a576cc230d562abc5e4a0e81d71a20a6ca55", -                "sha256:0155af66de8c21b8dba4992aaeeabf55503caefae00067a3b1139f86d0ec50ed", -                "sha256:09654a9eca62d1bd6d64aa44db2498f60a5c1e0ac4750953fdd79d5c88955e10", -                "sha256:199f1d106e2b44b6dacdf6f9245493c7d716b01d0b7fbe1959318ba4dc64d1f5", -                "sha256:296f30dedc9f4b9e7a301e5cc963012264112d78a1d3094cd83ef148fdf33ca1", -                "sha256:368ed312550bd663ce84dc4b032a962fcb3c7cae099dbbd48663afc305e3b939", -                "sha256:40d7ea570b88db017c51392349cf99b7aefaaddd19d2c78368aeb0bddde9d390", -                "sha256:629102a193162e37102c50713e2e31dc9a2fe7ac5e481da83e5bb3c0cee700aa", -                "sha256:6d5ec9b8948c3d957e75ea14d41e9330e1ac3fed24ec53766c780f82805140dc", -                "sha256:87331d1d6810214085a50749160196391a712a13336cd02ce1c3ea3d05bcf8d5", -                "sha256:9a02a04bbe581c8605ac423ba3a74999ec9d8bce7ae37977a3d38680f5780b6d", -                "sha256:9c4c83f4fa1938377da32bc2d59379025ceeee8e24b89f72fcbccd8ca22dc9bf", -                "sha256:9cddaff94c0135ee627213ac6ca6d05724bfe6e7a356e5e09ec57bd3249510f6", -                "sha256:a25237abf327530d9561ef751eef9511ab56fd9431023ca6f4803f1994104d72", -                "sha256:a5cbd7157b0e383738b8e29d6e556fde8726823dae0e348952a61742b21aeb12", -                "sha256:a97a516e02b726e089cffcde2eea0d3258450389bbac48cbe89e0f0b6e7b0366", -                "sha256:acc89b29b5f4e2332d65cd1b7d10c609a75b88ef8925d487a611ca788432dfa4", -                "sha256:b05bd85cc99b06740aad3629c2585bda7b83bd86e080b44ba47faf905fdf1300", -                "sha256:c2bec436a2b5dafe5eaeb297c03711074d46b6eb236d002c13c42f25c4a8ce9d", -                "sha256:cc619d974c8c11fe84527e4b5e1c07238799a8c29ea1c1285149170524ba9303", -                "sha256:d4392defd4648badaa42b3e101080ae3313e8f4787cb517efd3f5b8157eaefd6", -                "sha256:e1c3c582ee11af7f63a34a46f0448fca58e59889396ffdae1f482085061a2889" -            ], -            "version": "==3.5.4" +                "sha256:1e984191d1ec186881ffaed4581092ba04f7c61582a177b187d3a2f07ed9719e", +                "sha256:259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326", +                "sha256:2f4d1a4fdce595c947162333353d4a44952a724fba9ca3205a3df99a33d1307a", +                "sha256:32e5f3b7e511aa850829fbe5aa32eb455e5534eaa4b1ce93231d00e2f76e5654", +                "sha256:344c780466b73095a72c616fac5ea9c4665add7fc129f285fbdbca3cccf4612a", +                "sha256:460bd4237d2dbecc3b5ed57e122992f60188afe46e7319116da5eb8a9dfedba4", +                "sha256:4c6efd824d44ae697814a2a85604d8e992b875462c6655da161ff18fd4f29f17", +                "sha256:50aaad128e6ac62e7bf7bd1f0c0a24bc968a0c0590a726d5a955af193544bcec", +                "sha256:6206a135d072f88da3e71cc501c59d5abffa9d0bb43269a6dcd28d66bfafdbdd", +                "sha256:65f31b622af739a802ca6fd1a3076fd0ae523f8485c52924a89561ba10c49b48", +                "sha256:ae55bac364c405caa23a4f2d6cfecc6a0daada500274ffca4a9230e7129eac59", +                "sha256:b778ce0c909a2653741cb4b1ac7015b5c130ab9c897611df43ae6a58523cb965" +            ], +            "version": "==3.6.2"          },          "arrow": {              "hashes": [ @@ -82,14 +72,6 @@              "index": "pypi",              "version": "==4.8.2"          }, -        "buttons": { -            "hashes": [ -                "sha256:b58fe39c4995db9209443efb6799e22ae43a026d01989d84be033ce4d933cb96", -                "sha256:ebf7349ff0e6173ac26f3cfdb92b9fe0c01e73c5dbe5e2874950ed4e6e45bb98" -            ], -            "index": "pypi", -            "version": "==0.1.8" -        },          "cffi": {              "hashes": [                  "sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42", @@ -137,16 +119,10 @@          },          "discord-py": {              "hashes": [ -                "sha256:7c843b523bb011062b453864e75c7b675a03faf573c58d14c9f096e85984329d" +                "sha256:8bfe5628d31771744000f19135c386c74ac337479d7282c26cc1627b9d31f360"              ],              "index": "pypi", -            "version": "==1.2.5" -        }, -        "discord.py": { -            "hashes": [ -                "sha256:7c843b523bb011062b453864e75c7b675a03faf573c58d14c9f096e85984329d" -            ], -            "version": "==1.2.5" +            "version": "==1.3.1"          },          "fuzzywuzzy": {              "hashes": [ @@ -257,7 +233,6 @@          },          "pycparser": {              "hashes": [ -                "sha256:9c5019374bb4239e468774725c00be02377cff63cd3f5226af69461ecd5bcdd1",                  "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3"              ],              "version": "==2.19" @@ -293,29 +268,30 @@          },          "websockets": {              "hashes": [ -                "sha256:0e2f7d6567838369af074f0ef4d0b802d19fa1fee135d864acc656ceefa33136", -                "sha256:2a16dac282b2fdae75178d0ed3d5b9bc3258dabfae50196cbb30578d84b6f6a6", -                "sha256:5a1fa6072405648cb5b3688e9ed3b94be683ce4a4e5723e6f5d34859dee495c1", -                "sha256:5c1f55a1274df9d6a37553fef8cff2958515438c58920897675c9bc70f5a0538", -                "sha256:669d1e46f165e0ad152ed8197f7edead22854a6c90419f544e0f234cc9dac6c4", -                "sha256:695e34c4dbea18d09ab2c258994a8bf6a09564e762655408241f6a14592d2908", -                "sha256:6b2e03d69afa8d20253455e67b64de1a82ff8612db105113cccec35d3f8429f0", -                "sha256:79ca7cdda7ad4e3663ea3c43bfa8637fc5d5604c7737f19a8964781abbd1148d", -                "sha256:7fd2dd9a856f72e6ed06f82facfce01d119b88457cd4b47b7ae501e8e11eba9c", -                "sha256:82c0354ac39379d836719a77ee360ef865377aa6fdead87909d50248d0f05f4d", -                "sha256:8f3b956d11c5b301206382726210dc1d3bee1a9ccf7aadf895aaf31f71c3716c", -                "sha256:91ec98640220ae05b34b79ee88abf27f97ef7c61cf525eec57ea8fcea9f7dddb", -                "sha256:952be9540d83dba815569d5cb5f31708801e0bbfc3a8c5aef1890b57ed7e58bf", -                "sha256:99ac266af38ba1b1fe13975aea01ac0e14bb5f3a3200d2c69f05385768b8568e", -                "sha256:9fa122e7adb24232247f8a89f2d9070bf64b7869daf93ac5e19546b409e47e96", -                "sha256:a0873eadc4b8ca93e2e848d490809e0123eea154aa44ecd0109c4d0171869584", -                "sha256:cb998bd4d93af46b8b49ecf5a72c0a98e5cc6d57fdca6527ba78ad89d6606484", -                "sha256:e02e57346f6a68523e3c43bbdf35dde5c440318d1f827208ae455f6a2ace446d", -                "sha256:e79a5a896bcee7fff24a788d72e5c69f13e61369d055f28113e71945a7eb1559", -                "sha256:ee55eb6bcf23ecc975e6b47c127c201b913598f38b6a300075f84eeef2d3baff", -                "sha256:f1414e6cbcea8d22843e7eafdfdfae3dd1aba41d1945f6ca66e4806c07c4f454" -            ], -            "version": "==6.0" +                "sha256:0e4fb4de42701340bd2353bb2eee45314651caa6ccee80dbd5f5d5978888fed5", +                "sha256:1d3f1bf059d04a4e0eb4985a887d49195e15ebabc42364f4eb564b1d065793f5", +                "sha256:20891f0dddade307ffddf593c733a3fdb6b83e6f9eef85908113e628fa5a8308", +                "sha256:295359a2cc78736737dd88c343cd0747546b2174b5e1adc223824bcaf3e164cb", +                "sha256:2db62a9142e88535038a6bcfea70ef9447696ea77891aebb730a333a51ed559a", +                "sha256:3762791ab8b38948f0c4d281c8b2ddfa99b7e510e46bd8dfa942a5fff621068c", +                "sha256:3db87421956f1b0779a7564915875ba774295cc86e81bc671631379371af1170", +                "sha256:3ef56fcc7b1ff90de46ccd5a687bbd13a3180132268c4254fc0fa44ecf4fc422", +                "sha256:4f9f7d28ce1d8f1295717c2c25b732c2bc0645db3215cf757551c392177d7cb8", +                "sha256:5c01fd846263a75bc8a2b9542606927cfad57e7282965d96b93c387622487485", +                "sha256:5c65d2da8c6bce0fca2528f69f44b2f977e06954c8512a952222cea50dad430f", +                "sha256:751a556205d8245ff94aeef23546a1113b1dd4f6e4d102ded66c39b99c2ce6c8", +                "sha256:7ff46d441db78241f4c6c27b3868c9ae71473fe03341340d2dfdbe8d79310acc", +                "sha256:965889d9f0e2a75edd81a07592d0ced54daa5b0785f57dc429c378edbcffe779", +                "sha256:9b248ba3dd8a03b1a10b19efe7d4f7fa41d158fdaa95e2cf65af5a7b95a4f989", +                "sha256:9bef37ee224e104a413f0780e29adb3e514a5b698aabe0d969a6ba426b8435d1", +                "sha256:c1ec8db4fac31850286b7cd3b9c0e1b944204668b8eb721674916d4e28744092", +                "sha256:c8a116feafdb1f84607cb3b14aa1418424ae71fee131642fc568d21423b51824", +                "sha256:ce85b06a10fc65e6143518b96d3dca27b081a740bae261c2fb20375801a9d56d", +                "sha256:d705f8aeecdf3262379644e4b55107a3b55860eb812b673b28d0fbc347a60c55", +                "sha256:e898a0863421650f0bebac8ba40840fc02258ef4714cb7e1fd76b6a6354bda36", +                "sha256:f8a7bff6e8664afc4e6c28b983845c5bc14965030e3fb98789734d416af77c4b" +            ], +            "version": "==8.1"          },          "yarl": {              "hashes": [ @@ -434,18 +410,10 @@          },          "identify": {              "hashes": [ -                "sha256:418f3b2313ac0b531139311a6b426854e9cbdfcfb6175447a5039aa6291d8b30", -                "sha256:8ad99ed1f3a965612dcb881435bf58abcfbeb05e230bb8c352b51e8eac103360" -            ], -            "version": "==1.4.10" -        }, -        "importlib-metadata": { -            "hashes": [ -                "sha256:bdd9b7c397c273bcc9a11d6629a38487cd07154fa255a467bf704cd2c258e359", -                "sha256:f17c015735e1a88296994c0697ecea7e11db24290941983b08c9feb30921e6d8" +                "sha256:1222b648251bdcb8deb240b294f450fbf704c7984e08baa92507e4ea10b436d5", +                "sha256:d824ebe21f38325c771c41b08a95a761db1982f1fc0eee37c6c97df3f1636b96"              ], -            "markers": "python_version < '3.8'", -            "version": "==1.4.0" +            "version": "==1.4.11"          },          "mccabe": {              "hashes": [ @@ -454,18 +422,11 @@              ],              "version": "==0.6.1"          }, -        "more-itertools": { -            "hashes": [ -                "sha256:1a2a32c72400d365000412fe08eb4a24ebee89997c18d3d147544f70f5403b39", -                "sha256:c468adec578380b6281a114cb8a5db34eb1116277da92d7c46f904f0b52d3288" -            ], -            "version": "==8.1.0" -        },          "nodeenv": {              "hashes": [ -                "sha256:561057acd4ae3809e665a9aaaf214afff110bbb6a6d5c8a96121aea6878408b3" +                "sha256:5b2438f2e42af54ca968dd1b374d14a1194848955187b0e5e4be1f73813a5212"              ], -            "version": "==1.3.4" +            "version": "==1.3.5"          },          "pre-commit": {              "hashes": [ @@ -533,46 +494,12 @@              ],              "version": "==0.10.0"          }, -        "typed-ast": { -            "hashes": [ -                "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355", -                "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919", -                "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa", -                "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652", -                "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75", -                "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01", -                "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d", -                "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1", -                "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907", -                "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c", -                "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3", -                "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b", -                "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614", -                "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb", -                "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b", -                "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41", -                "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6", -                "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34", -                "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe", -                "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4", -                "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7" -            ], -            "markers": "python_version < '3.8'", -            "version": "==1.4.1" -        },          "virtualenv": {              "hashes": [                  "sha256:0d62c70883c0342d59c11d0ddac0d954d0431321a41ab20851facf2b222598f3",                  "sha256:55059a7a676e4e19498f1aad09b8313a38fcc0cdbe4fdddc0e9b06946d21b4bb"              ],              "version": "==16.7.9" -        }, -        "zipp": { -            "hashes": [ -                "sha256:57147f6b0403b59f33fd357f169f860e031303415aeb7d04ede4839d23905ab8", -                "sha256:7ae5ccaca427bafa9760ac3cd8f8c244bfc259794b5b6bb9db4dda2241575d09" -            ], -            "version": "==2.0.0"          }      }  } diff --git a/bot/seasons/evergreen/reddit.py b/bot/seasons/evergreen/reddit.py index 90ca57af..8a7ebf26 100644 --- a/bot/seasons/evergreen/reddit.py +++ b/bot/seasons/evergreen/reddit.py @@ -1,8 +1,7 @@  import logging  import random -import discord - +import discord  from discord.ext import commands  from discord.ext.commands.cooldowns import BucketType @@ -13,124 +12,126 @@ log = logging.getLogger(__name__)  class Reddit(commands.Cog): -	"""Fetches reddit posts.""" -	def __init__(self, bot): -		self.bot = bot - -	async def fetch(self, session, url): -		"""Send a get request to the reddit API and get json response""" -		params = { -			'limit': 50 -		} -		headers = { -			'User-Agent': 'Iceman' -		} - -		async with session.get(url=url, params=params, headers=headers) as response: -			return await response.json() - -	@commands.command(name='reddit') -	@commands.cooldown(1, 10, BucketType.user) -	async def get_reddit(self, ctx, subreddit='python', sort="hot"): -		""" -		Fetch reddit posts by using this command. -		Gets a post from r/python by default. -		Usage: -		--> .reddit [subreddit_name] [hot/top/new] -		""" -		pages=[] -		sort_list = ["hot", "new", "top", "rising"] -		if sort.lower() not in sort_list: -			await ctx.send(f"Invalid sorting: {sort}\nUsing default sorting: `Hot`") -			sort = "hot" - -		session = self.bot.http_session -		data = await self.fetch(session, f'https://www.reddit.com/r/{subreddit}/{sort}/.json') - -		try: -			posts = data["data"]["children"] -		except KeyError: -			return await ctx.send('Subreddit not found!') -		if not posts: -			return await ctx.send('No posts available!') - -		if posts[1]["data"]["over_18"] == True: -			return await ctx.send("You cannot access this Subreddit.") - -		upvote_emoji = self.bot.get_emoji(565557799040319508) -		comment_emoji = self.bot.get_emoji(565576076483624960) -		user_emoji = "🎅" - -		# embed_titles = discord.Embed(colour=0xf9f586) -		embed_titles = "" - -		random_posts = [] -		while True: -			if len(random_posts) == 5: -				break -			rand_post = random.choice(posts) -			if rand_post not in random_posts: -				random_posts.append(rand_post) - -		# ----------------------------------------------------------- -		# This code below is bound of change when the emojis are added. - -		upvote_emoji = self.bot.get_emoji(674608910656733185) -		comment_emoji = self.bot.get_emoji(674608751784755200) -		user_emoji = self.bot.get_emoji(674608692418707467) -		text_emoji = self.bot.get_emoji(674608836312825877) -		video_emoji = self.bot.get_emoji(674608791450550272) -		image_emoji = self.bot.get_emoji(674594916655169536) -		reddit_emoji = self.bot.get_emoji(674087978628284417) - -		# ------------------------------------------------------------ - -		for i, post in enumerate(random_posts, start=1): -			post_title = post["data"]["title"][0:50] -			post_url = post['data']['url'] -			if post_title == "": -				post_title = "No Title." -			elif post_title == post_url: -				post_title = "Title is itself a link." - -			# ------------------------------------------------------------------ -			# Embed building. - -			embed_titles += f"**{i}.[{post_title}]({post_url})**\n" -			image_url = " " -			post_stats = f"{text_emoji}"  # Set default content type to text. - -			if post["data"]["is_video"] is True or "youtube" in post_url.split("."): -				# This means the content type in the post is a video. -				post_stats = f"{video_emoji} " - -			elif post_url.endswith("jpg") or post_url.endswith("png") or post_url.endswith("gif"): -				# This means the content type in the post is an image. -				post_stats = f"{image_emoji} " -				image_url = post_url - -			votes = f'{upvote_emoji}{post["data"]["ups"]}' -			comments = f'{comment_emoji}\u2002{ post["data"]["num_comments"]}' -			post_stats += ( -					f"\u2002{votes}\u2003" -					f"{comments}" -					f'\u2003{user_emoji}\u2002{post["data"]["author"]}\n' -				) -			embed_titles += f"{post_stats}\n" -			page_text = f"**[{post_title}]({post_url})**\n{post_stats}\n{post['data']['selftext'][0:200]}" - -			embed = discord.Embed() -			page_tuple = (page_text, image_url) -			pages.append(page_tuple) - -			# ------------------------------------------------------------------ - -		pages.insert(0, (embed_titles, " ")) -		embed.set_author(name=f"r/{posts[0]['data']['subreddit']} - {sort}", icon_url=reddit_emoji.url) -		await ImagePaginator.paginate(pages, ctx, embed) - - -def setup(bot): -	"""Load the Cog""" -	bot.add_cog(Reddit(bot)) -	log.debug('Loaded') +    """Fetches reddit posts.""" + +    def __init__(self, bot: commands.Bot): +        self.bot = bot + +    async def fetch(self, url: str) -> dict: +        """Send a get request to the reddit API and get json response.""" +        session = self.bot.http_session +        params = { +            'limit': 50 +        } +        headers = { +            'User-Agent': 'Iceman' +        } + +        async with session.get(url=url, params=params, headers=headers) as response: +            return await response.json() + +    @commands.command(name='reddit') +    @commands.cooldown(1, 10, BucketType.user) +    async def get_reddit(self, ctx: commands.Context, subreddit: str = 'python', sort: str = "hot") -> None: +        """ +        Fetch reddit posts by using this command. + +        Gets a post from r/python by default. +        Usage: +        --> .reddit [subreddit_name] [hot/top/new] +        """ +        pages = [] +        sort_list = ["hot", "new", "top", "rising"] +        if sort.lower() not in sort_list: +            await ctx.send(f"Invalid sorting: {sort}\nUsing default sorting: `Hot`") +            sort = "hot" + +        data = await self.fetch(f'https://www.reddit.com/r/{subreddit}/{sort}/.json') + +        try: +            posts = data["data"]["children"] +        except KeyError: +            return await ctx.send('Subreddit not found!') +        if not posts: +            return await ctx.send('No posts available!') + +        if posts[1]["data"]["over_18"] is True: +            return await ctx.send("You cannot access this Subreddit.") + +        upvote_emoji = self.bot.get_emoji(565557799040319508) +        comment_emoji = self.bot.get_emoji(565576076483624960) +        user_emoji = "🎅" + +        # embed_titles = discord.Embed(colour=0xf9f586) +        embed_titles = "" + +        random_posts = [] +        while True: +            if len(random_posts) == 5: +                break +            rand_post = random.choice(posts) +            if rand_post not in random_posts: +                random_posts.append(rand_post) + +        # ----------------------------------------------------------- +        # This code below is bound of change when the emojis are added. + +        upvote_emoji = self.bot.get_emoji(674608910656733185) +        comment_emoji = self.bot.get_emoji(674608751784755200) +        user_emoji = self.bot.get_emoji(674608692418707467) +        text_emoji = self.bot.get_emoji(674608836312825877) +        video_emoji = self.bot.get_emoji(674608791450550272) +        image_emoji = self.bot.get_emoji(674594916655169536) +        reddit_emoji = self.bot.get_emoji(674087978628284417) + +        # ------------------------------------------------------------ + +        for i, post in enumerate(random_posts, start=1): +            post_title = post["data"]["title"][0:50] +            post_url = post['data']['url'] +            if post_title == "": +                post_title = "No Title." +            elif post_title == post_url: +                post_title = "Title is itself a link." + +            # ------------------------------------------------------------------ +            # Embed building. + +            embed_titles += f"**{i}.[{post_title}]({post_url})**\n" +            image_url = " " +            post_stats = f"{text_emoji}"  # Set default content type to text. + +            if post["data"]["is_video"] is True or "youtube" in post_url.split("."): +                # This means the content type in the post is a video. +                post_stats = f"{video_emoji} " + +            elif post_url.endswith("jpg") or post_url.endswith("png") or post_url.endswith("gif"): +                # This means the content type in the post is an image. +                post_stats = f"{image_emoji} " +                image_url = post_url + +            votes = f'{upvote_emoji}{post["data"]["ups"]}' +            comments = f'{comment_emoji}\u2002{ post["data"]["num_comments"]}' +            post_stats += ( +                f"\u2002{votes}\u2003" +                f"{comments}" +                f'\u2003{user_emoji}\u2002{post["data"]["author"]}\n' +            ) +            embed_titles += f"{post_stats}\n" +            page_text = f"**[{post_title}]({post_url})**\n{post_stats}\n{post['data']['selftext'][0:200]}" + +            embed = discord.Embed() +            page_tuple = (page_text, image_url) +            pages.append(page_tuple) + +            # ------------------------------------------------------------------ + +        pages.insert(0, (embed_titles, " ")) +        embed.set_author(name=f"r/{posts[0]['data']['subreddit']} - {sort}", icon_url=reddit_emoji.url) +        await ImagePaginator.paginate(pages, ctx, embed) + + +def setup(bot: commands.Bot) -> None: +    """Load the Cog.""" +    bot.add_cog(Reddit(bot)) +    log.debug('Loaded')  |