1
1
import datetime
2
+ import logging
2
3
import praw
3
4
from login import reddit
4
5
6
+
7
+
5
8
def action ():
6
9
for sub_id in reddit .subreddit ('all' ).stream .submissions ():
10
+ logging .debug ('Starting submission {}' .format (sub_id ))
7
11
blockeduser = 0
8
12
for item in reddit .inbox .messages (limit = 5 ):
9
13
if str (item .subject ) == 'Remove me from posts' :
@@ -13,6 +17,7 @@ def action():
13
17
newstring = username .replace (r'/u/' ,'' )
14
18
newstring = newstring = '\n '
15
19
file .write (newstring )
20
+ logger .debug ('Cycle 1 for submission {} has finished' .format (sub_id ))
16
21
duplicates = []
17
22
submission = praw .models .Submission (reddit , id = sub_id )
18
23
with open ('blockusers.txt' ,'r' ) as newfile :
@@ -22,6 +27,7 @@ def action():
22
27
blockeduser = 1
23
28
else :
24
29
pass
30
+ logger .debug ('Cycle 2 for submission {} has finished' .format (sub_id ))
25
31
if blockeduser == 0 :
26
32
for duplicate in submission .duplicates ():
27
33
dup_sub = praw .models .Submission (reddit , id = duplicate )
@@ -37,19 +43,40 @@ def action():
37
43
for dup in duplicates :
38
44
message = str (message + '\n * [{}]({}) on /r/{} (created at {} by {})' ).format (dup ['title' ], dup ['link' ], dup ['subreddit' ], dup ['time' ], dup ['author' ])
39
45
message = message + '\n \n ---- \n \n ^^I ^^am ^^a ^^bot ^^[FAQ](https://www.reddit.com/r/DuplicatesBot/wiki/index)-[Code](https://github.com/PokestarFan/DuplicateBot-[Bugs](https://www.reddit.com/r/DuplicatesBot/comments/6ypgmx/bugs_and_problems/)-[Suggestions](https://www.reddit.com/r/DuplicatesBot/comments/6ypg85/suggestion_for_duplicatesbot/)-[Block](https://www.reddit.com/r/DuplicatesBot/wiki/index#wiki_block_bot_from_tagging_on_your_posts)'
46
+ logger .debug ('Cycle 3 for submission {} has finished' .format (sub_id ))
40
47
try :
41
48
submission .reply (message )
49
+ logger .info ('Message posted on {}' .format (sub_id ))
50
+ logger .debug ('Message content: \n {}' .format (message ))
51
+ message = ''
52
+ except (praw .exceptions .APIException , UnboundLocalError ):
53
+ logger .debug ('Submission {} has been skipped due to being blocked or missing text' .format (sub_id ), exc_info = True )
42
54
message = ''
43
55
except :
44
- pass
56
+ logger . error ( 'Error occured!' , exc_info = True )
45
57
message = ''
46
58
47
59
48
60
if __name__ == '__main__' :
61
+ logging .basicConfig (level = logging .WARN )
62
+ logger = logging .getLogger (__name__ )
63
+ handler = logging .FileHandler ('debug.log' )
64
+ handler .setLevel (logging .DEBUG )
65
+ handler2 = logging .FileHandler ('info.log' )
66
+ handler2 .setLevel (logging .INFO )
67
+ handler3 = logging .FileHandler ('errors.log' )
68
+ handler3 .setLevel (logging .WARN )
69
+ formatter = logging .Formatter ('%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
70
+ handler .setFormatter (formatter )
71
+ handler2 .setFormatter (formatter )
72
+ handler3 .setFormatter (formatter )
73
+ logger .addHandler (handler )
74
+ logger .addHandler (handler2 )
75
+ logger .addHandler (handler3 )
49
76
while True :
50
77
try :
51
78
action ()
52
79
except (KeyboardInterrupt ):
53
80
raise KeyboardInterrupt
54
81
except :
55
- pass
82
+ logger . critical ( 'Error has occured when running main loop, please resolve asap' , exc_info = True )
0 commit comments