示例#1
0
文件: Bot.py 项目: 4pr0n/spambot
	def execute():
		'''
			Do one atomic operation.
			Looks for spam posts/comments.
			Might do other functions as well (depending on iteration #)
			such as check for messages, update moderated subs, etc
		'''
		Bot.iterations += 1
		it = Bot.iterations

		# Set update time
		Bot.update_time()

		pages = 1
		if it == 1: pages = PAGES_TO_REITERATE # look back on first load

		if it % 2 == 1:
			#Bot.log('Bot.execute: Checking messages...')
			if Bot.check_messages():
				# Got a PM to add/remove filter, need to look back further
				pages = PAGES_TO_REITERATE 
			Bot.update_time()

		# Check posts and comments
		# Removes spam and enforces AmateurArchives rules
		Bot.handle_url('/r/%s/comments' % MOD_SUB, pages=pages)
		Bot.update_time()
		children = Bot.handle_url('/r/%s/new' % MOD_SUB, pages=pages)
		Bot.update_time()

		# 'children' contains all 'unchecked' posts
		for child in children:
			# Check for sources
			Rarchives.handle_child(child, Bot.db, Bot.log)
		del children

		if it % 60 == 58:
			#Bot.log('Bot.execute: Updating moderated subreddits...')
			Bot.update_modded_subreddits()
			Bot.update_time()

		if it % 60 == 59:
			#Bot.log('Bot.execute: Updating AmateurArchives...')
			AmArch.execute(Bot.db, Bot.log)
			Bot.update_time()