def main(args): resetTensorflowGraph() running = True reddit = praw.Reddit( 'CFB') # client credentials set up in local praw.ini file cfb = reddit.user.me() # ChessFenBot object subreddit = reddit.subreddit( 'chess+chessbeginners+AnarchyChess+betterchess+chesspuzzles') predictor = tensorflow_chessbot.ChessboardPredictor() while running: # Start live stream on all submissions in the subreddit stream = subreddit.stream.submissions() try: for submission in stream: processSubmission(submission, cfb, predictor, args) except (socket.error, requests.exceptions.ReadTimeout, requests.packages.urllib3.exceptions.ReadTimeoutError, requests.exceptions.ConnectionError) as e: print( "> %s - Connection error, skipping and continuing in 30 seconds: %s" % (datetime.now(), e)) time.sleep(30) continue except Exception as e: print("Unknown Error, skipping and continuing in 30 seconds:", e) time.sleep(30) continue except KeyboardInterrupt: print("Keyboard Interrupt: Exiting...") running = False break predictor.close() print('Finished')
def __init__(self): ## Logging logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') self.logger = logging.getLogger('CDSService') self.logger.setLevel(LOG_LEVEL) ## Chess logic self.chess_board = chess.Board() ## Board detection self.board_corners = [0, 0, 0, 0] self.predictor = tensorflow_chessbot.ChessboardPredictor( frozen_graph_path='chessfenbot/saved_models/frozen_graph.pb') ## Speech recognition self.recognizer = sr.Recognizer() with sr.Microphone() as source: self.logger.info( 'Be quiet please... adjusting for ambient microphone noise (5s)...' ) self.recognizer.adjust_for_ambient_noise(source, duration=5) self.logger.info('Adjustment complete.') ## GUI window self.window = self._init_gui_window()
def runSpecificSubmission(args): resetTensorflowGraph() reddit = praw.Reddit('CFB') # client credentials set up in local praw.ini file cfb = reddit.user.me() # ChessFenBot object predictor = tensorflow_chessbot.ChessboardPredictor() submission = reddit.submission(args.sub) print("URL: ", submission.url) if submission: print('Processing...') processSubmission(submission, cfb, predictor, args) predictor.close() print('Done')
def dryRunTest(submission='5tuerh'): resetTensorflowGraph() reddit = praw.Reddit('CFB') # client credentials set up in local praw.ini file predictor = tensorflow_chessbot.ChessboardPredictor() # Use a specific submission submission = reddit.submission(submission) print('Loading %s' % submission.id) # Check if submission passes requirements and wasn't already replied to if isPotentialChessboardTopic(submission): # Generate response response = generateResponseMessage(submission, predictor) print("RESPONSE:\n") print('-----------------------------') print(response) print('-----------------------------') else: print('Submission not considered chessboard topic') predictor.close() print('Finished')
######################################################### # Main Script # Track commend ids that have already been processed successfully # Load list of already processed comment ids already_processed = loadProcessed() print("%s - Starting with already processed: %s\n==========\n\n" % (datetime.now(), already_processed)) count = 0 count_actual = 0 running = True # Start up Tensorflow CNN with trained model predictor = tensorflow_chessbot.ChessboardPredictor() while running: # get submission stream try: submissions = submission_stream(r, subreddit, limit=submission_read_limit) # for each submission for submission in submissions: count += 1 # print out some debug info logInfoPerSubmission(submission, count, count_actual) # Skip if already processed if submission.id in already_processed: