diff --git a/shreddit.cfg.example b/shreddit.cfg.example index e839e0f..85b1b20 100644 --- a/shreddit.cfg.example +++ b/shreddit.cfg.example @@ -55,4 +55,11 @@ whitelist_gilded = True # except on whitelisted subreddits but after 3 months delete everything. nuke_hours = 0 +# Only delete comments with this score or less, or delete all comments +# if this is not set. +max_score = + +# Save JSON encoded comment to this directory before deleting it. +save_directory = + # vim: syntax=config diff --git a/shreddit.py b/shreddit.py index 88ed10d..0581c54 100755 --- a/shreddit.py +++ b/shreddit.py @@ -56,10 +56,18 @@ 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') +try: + max_score = config.getint('main', 'max_score') +except ValueError: + max_score = None +save_directory = config.get('main', 'save_directory') + _user = config.get('main', 'username') _pass = config.get('main', 'password') r = praw.Reddit(user_agent="shreddit/3.3") +if save_directory: + r.config.store_json_result = True def login(user=None, password=None): try: @@ -123,15 +131,24 @@ for thing in things: thing.id in whitelist_ids: continue + if whitelist_distinguished and thing.distinguished: + continue + if whitelist_gilded and thing.gilded: + continue + if max_score is not None and thing.score > max_score: + continue + 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: - continue - if whitelist_gilded and thing.gilded: - continue + + if save_directory: + if not os.path.exists(save_directory): + os.makedirs(save_directory) + with open("%s/%s.json" % (save_directory, thing.id), "w") as fh: + json.dump(thing.json_dict, fh) if clear_vote: thing.clear_vote()