-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlinks.py
118 lines (106 loc) · 3.39 KB
/
links.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import configparser
import praw
import re
config = configparser.ConfigParser()
config.read('config.ini')
QUERIES = [
'flair:"Discussion"',
'flair:"news" OR flair:"rumor"',
'flair:"song cover" OR flair:"dance cover" OR flair:"live" OR flair:"dance practice"',
]
class Link():
def __init__(self, title, link, votes, num_comments):
self.title = title
self.link = link
self.votes = votes
self.num_comments = num_comments
self.flair = ""
def get_discussions(reddit):
discussions = []
for submission in reddit.subreddit('kpop').search(
query=QUERIES[0],
sort="top",
time_filter="week",
limit=10):
submission.comments.replace_more(limit=None, threshold=0)
link = Link(
submission.title,
submission.permalink,
submission.score,
len(submission.comments.list())
)
discussions.append(link)
return discussions[:10]
def get_news(reddit):
stories = []
for submission in reddit.subreddit('kpop').search(
query=QUERIES[1],
sort="top",
time_filter="week",
limit=10):
submission.comments.replace_more(limit=None, threshold=0)
link = Link(
submission.title,
submission.permalink,
submission.score,
len(submission.comments.list())
)
stories.append(link)
return stories[:10]
def get_performances(reddit):
performances = []
for submission in reddit.subreddit('kpop').search(
query=QUERIES[2],
sort="top",
time_filter="week",
limit=10):
submission.comments.replace_more(limit=None, threshold=0)
link = Link(
submission.title,
submission.permalink,
submission.score,
len(submission.comments.list())
)
link.flair = submission.link_flair_text
performances.append(link)
return performances[:10]
def main():
r = praw.Reddit(client_id=config['Reddit']['ClientID'],
client_secret=config['Reddit']['ClientSecret'],
user_agent='TWIK Bot')
print("#### TOP 5 STORIES")
print("| # | Votes | Thread | Comments |")
print(":--|:--|:--|:--")
for index, story in enumerate(get_news(r)):
print("| {} | (+{}) | [{}]({}) | {} comments".format(
index+1,
story.votes,
story.title,
story.link,
story.num_comments
))
print("\n#### TOP 5 PERFORMANCES")
print("| # | Votes | Thread | Comments |")
print(":--|:--|:--|:--")
for index, performance in enumerate(get_performances(r)):
print("| {} | (+{}) | [{} {}]({}) | {} comments".format(
index+1,
performance.votes,
performance.flair,
performance.title,
performance.link,
performance.num_comments
))
print("\n#### TOP 5 DISCUSSIONS")
print("| # | Votes | Thread | Comments |")
print(":--|:--|:--|:--")
for index, discussion in enumerate(get_discussions(r)):
print("| {} | (+{}) | [{}]({}) | {} comments".format(
index+1,
discussion.votes,
discussion.title,
discussion.link,
discussion.num_comments
))
if __name__ == "__main__":
main()