Ejemplo n.º 1
0
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()
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
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')
Ejemplo n.º 5
0
#########################################################
# 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: