|
|
|
#!/usr/bin/env python2
|
|
|
|
|
|
|
|
import reddit
|
|
|
|
import ConfigParser
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
|
|
config = ConfigParser.RawConfigParser()
|
|
|
|
config.read('shreddit.cfg')
|
|
|
|
|
|
|
|
hours = config.getint('main', 'hours')
|
|
|
|
whitelist = config.get('main', 'whitelist')
|
|
|
|
whitelist_ids = config.get('main', 'whitelist_ids')
|
|
|
|
sort = config.get('main', 'sort')
|
|
|
|
verbose = config.getboolean('main', 'verbose')
|
|
|
|
clear_vote = config.getboolean('main', 'clear_vote')
|
|
|
|
item = config.get('main', 'item')
|
|
|
|
|
|
|
|
r = reddit.Reddit(user_agent="Shreddit-PRAW")
|
|
|
|
# add user: <YourUsername> / pswd: <YourPassword> to the [reddit] config section
|
|
|
|
r.login()
|
|
|
|
|
|
|
|
if verbose:
|
|
|
|
print "Logged in as %s" % r.user
|
|
|
|
|
|
|
|
before_time = datetime.now() - timedelta(hours=hours)
|
|
|
|
|
|
|
|
if verbose:
|
|
|
|
print "Deleting messages before %s" % before_time
|
|
|
|
|
|
|
|
whitelist = [y.strip().lower() for y in whitelist.split(',')]
|
|
|
|
whitelist_ids = [y.strip().lower() for y in whitelist_ids.split(',')]
|
|
|
|
|
|
|
|
if verbose:
|
|
|
|
print "Keeping messages from subreddits %s" % ', '.join(whitelist)
|
|
|
|
|
|
|
|
things = []
|
|
|
|
if item == "comments":
|
|
|
|
things = r.user.get_comments(limit=None, sort=sort)
|
|
|
|
elif item == "submitted":
|
|
|
|
things = r.user.get_submitted(limit=None, sort=sort)
|
|
|
|
elif item == "overview":
|
|
|
|
things = r.user.get_overview(limit=None, sort=sort)
|
|
|
|
else:
|
|
|
|
raise Exception("Your deletion section is wrong")
|
|
|
|
|
|
|
|
for thing in things:
|
|
|
|
thing_time = datetime.fromtimestamp(thing.created)
|
|
|
|
|
|
|
|
#print "%s, %s, %s" % (thing_time, before_time, thing_time < before_time)
|
|
|
|
|
|
|
|
if thing.id in whitelist_ids:
|
|
|
|
continue
|
|
|
|
|
|
|
|
if thing_time > before_time:
|
|
|
|
continue
|
|
|
|
|
|
|
|
if str(thing.subreddit).lower() in whitelist:
|
|
|
|
continue
|
|
|
|
|
|
|
|
if item == "submitted" or item == "overview":
|
|
|
|
if verbose:
|
|
|
|
print "Deleting: %s" % thing
|
|
|
|
thing.delete()
|
|
|
|
elif item == "comments":
|
|
|
|
if verbose:
|
|
|
|
print 'Deleting: [%s]: "%s"' % (thing.subreddit, thing.body[:20])
|
|
|
|
if clear_vote:
|
|
|
|
thing.clear_vote()
|
|
|
|
thing.delete()
|