57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
import praw
|
|
|
|
|
|
|
|
class RedditFetch():
|
|
def __init__(self, key):
|
|
self.stream = praw.Reddit(client_id = key["id"], client_secret = key["secret"], user_agent=key["user_agent"])
|
|
|
|
def get_top(self, subreddit, number, return_type="text"):
|
|
if return_type == "text":
|
|
posts = []
|
|
try:
|
|
for submission in self.stream.subreddit(subreddit).top(limit=number):
|
|
p = {}
|
|
if not submission.stickied:
|
|
p["title"] = submission.title
|
|
p["content"] = submission.selftext
|
|
posts.append(p)
|
|
return posts
|
|
except:
|
|
return []
|
|
else:
|
|
images = []
|
|
try:
|
|
for submission in self.stream.subreddit(subreddit).top(limit=number):
|
|
if not submission.stickied:
|
|
t = {"image": submission.url, "caption": submission.title}
|
|
images.append(t)
|
|
return images
|
|
except:
|
|
return []
|
|
|
|
|
|
def get_random_rising(self, subreddit, number, return_type="text"):
|
|
if return_type == "text":
|
|
posts = []
|
|
try:
|
|
for submission in self.stream.subreddit(subreddit).random_rising(limit=number):
|
|
p = {}
|
|
if not submission.stickied:
|
|
p["title"] = submission.title
|
|
p["content"] = submission.selftext
|
|
posts.append(p)
|
|
return posts
|
|
except:
|
|
return []
|
|
else:
|
|
images = []
|
|
try:
|
|
for submission in self.stream.subreddit(subreddit).random_rising(limit=number):
|
|
if not submission.stickied:
|
|
t = {"image": submission.url, "caption": submission.title}
|
|
images.append(t)
|
|
return images
|
|
except:
|
|
return []
|