diff --git a/shreddit.cfg.example b/shreddit.cfg.example index 5e3f205..e839e0f 100644 --- a/shreddit.cfg.example +++ b/shreddit.cfg.example @@ -34,7 +34,7 @@ item = overview whitelist = AskScience, TheCulture, redditdev, programming, charity # If you want any specific posts to be whitelisted stick 'em in here -whitelist_ids = abcdef +whitelist_ids = # If you set this then no editing or deleting will be done # but the output from the program will be shown as an example @@ -42,10 +42,17 @@ trial_run = True # Don't delete but *do* edit, could prove... interesting to see a comment # with 5000 upvotes and it's just a lorem ipsum! -edit_only = True +edit_only = False # Ignore distinguished comments. whitelist_distinguished = True -# ignore gilded (gold) comments +# Ignore gilded (gold) comments whitelist_gilded = True + +# Delete everything older that this date, **This ignores whitelists**. +# Can be used as a second deletion, as in "delete items older than 24 hours +# except on whitelisted subreddits but after 3 months delete everything. +nuke_hours = 0 + +# vim: syntax=config diff --git a/shreddit.py b/shreddit.py index 300b418..910b32d 100755 --- a/shreddit.py +++ b/shreddit.py @@ -55,10 +55,11 @@ edit_only = config.getboolean('main', 'edit_only') item = config.get('main', 'item') whitelist_distinguished = config.getboolean('main', 'whitelist_distinguished') whitelist_gilded = config.getboolean('main', 'whitelist_gilded') +nuke_hours = config.getint('main', 'nuke_hours') _user = config.get('main', 'username') _pass = config.get('main', 'password') -r = praw.Reddit(user_agent="shreddit/3.1") +r = praw.Reddit(user_agent="shreddit/3.2") def login(user=None, password=None): @@ -105,9 +106,11 @@ else: for thing in things: thing_time = datetime.fromtimestamp(thing.created_utc) - # Delete things after after_time + # Exclude items from being deleted unless past X hours. after_time = datetime.utcnow() - timedelta(hours=hours) if thing_time > after_time: + if thing_time + timedelta(hours=nuke_hours) < datetime.utcnow(): + pass continue # For edit_only we're assuming that the hours aren't altered. # This saves time when deleting (you don't edit already edited posts). @@ -120,13 +123,15 @@ for thing in things: thing.id in whitelist_ids: continue - if trial_run: - # Don't actually perform any actions - next + if trial_run: # Don't do anything, trial mode! + if verbose: + print("Would have deleted {thing}: '{content}'".format( + thing=thing.id, content=thing)) + continue if whitelist_distinguished and thing.distinguished: - next + continue if whitelist_gilded and thing.gilded: - next + continue if clear_vote: thing.clear_vote()