def run_praw_tasks(): global logger from bot import RedditAgent cfg = configparser.ConfigParser() r = RedditAgent(ini_section='flairbot', user_agent='Flair helper by /u/gschizas version 0.2') search_space = json.loads(cfg.get('tasks', 'bitcoin_flair')) subreddits = {s[0] for s in search_space} offending_users = [] sys.exit(99) for subreddit in subreddits: sr = r.get_subreddit(subreddit) flair_list = list(sr.get_flair_list(limit=None)) flair_templates = sr.get_flair_choices() default_flair_text = {f['flair_css_class'][6:]: f['flair_text'] for f in flair_templates['choices']} extended_flair_list = [dict( f.items() | {'is_custom': default_flair_text.get(f['flair_css_class'], '***') != f['flair_text']}.items()) for f in flair_list] with open('flair_list-{}.json'.format(subreddit), mode='w', encoding='utf-8') as f: json.dump(extended_flair_list, f, ensure_ascii=False, sort_keys=True) for flair_item in flair_list: flair_text = flair_item.get('flair_text') if flair_text: bitcoin_addresses = re.findall('[13][a-km-zA-HJ-NP-Z0-9]{26,33}', flair_text) if len(bitcoin_addresses) > 0: logging.warning(bitcoin_addresses) if any([check_bc(bc) for bc in bitcoin_addresses]): offending_users.append([subreddit, flair_item['user']]) if check_hyperlink(flair_text): offending_users.append([subreddit, flair_item['user']]) if len(offending_users) > 0: logging.warning(offending_users) existing_users = json.loads(cfg.get('tasks', 'bitcoin_flair')) full_users = offending_users + existing_users cfg.set('tasks', 'bitcoin_flair', json.dumps(list({(x[0], x[1]) for x in full_users}))) cfg.write(sys.stdout) with open('flair-bot.ini', 'w') as f: cfg.write(f) r.clear_authentication()