-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspam_unmoderated.py
73 lines (66 loc) · 2.93 KB
/
spam_unmoderated.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
# MIT License
#
# Copyright 2018 umbresp
#
# Permission is hereby granted, free of charge, to any
# person obtaining a copy of this software and
# associated documentation files (the "Software"), to
# deal in the Software without restriction, including
# without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the
# following conditions:
#
# The above copyright notice and this permission notice
# shall be included in all copies or substantial portions
# of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
# ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
# TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
# SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# spam_unmoderated.py
# Purpose: Marks all posts currently in the unmoderated of a
# selected subreddit before a certain date as spam.
# Notes: This is very badly written, and all the approve/
# remove/spam scripts are almost exactly the same. I haven't
# had an opportunity to clean up this code, so sorry.
# REMEMBER TO FILL OUT subreddit_to_clear, year_before, month_before, and day_before!
import praw
import datetime
import configparser as ConfigParser
# The subreddit you want to approve all posts in the unmoderated queue for.
subreddit_to_clear = "subredditname" # CASE SENSITIVE, don't include the /r/
# The date you want to be the lower bound. For example, if my date is 12/31/2018,
# all posts with a timestamp before that date will have the action performed on.
year_before = "2000"
month_before = "1"
day_before = "1"
config = ConfigParser.ConfigParser()
config.read('login.ini')
username = config.get('account', 'username')
password = config.get('account', 'password')
client_id = config.get('account', 'client id')
client_secret = config.get('account', 'client secret')
user_agent = f'{username} running spam_unmoderated.py'
r = praw.Reddit(client_id=client_id, client_secret=client_secret, password=password, user_agent=user_agent, username=username)
print(r)
for i in r.user.moderator_subreddits(limit=None):
if i.display_name == subreddit_to_clear:
print(i.display_name)
for thing in [j for j in i.mod.unmoderated(limit=None)]:
submissiontime = datetime.datetime.fromtimestamp(thing.created)
comparetotime = datetime.datetime(year_before, month_before, day_before)
if submissiontime < comparetotime:
print(thing)
print("spammed")
thing.mod.remove(spam=True)
else:
print(thing)
print("ignored")