def bot_listening(): print date_s(time.time()) + " START" tools = tool_connect.ToolConnect('match_and_split', 45130) try: while True: request, conn = tools.wait_request() try: print request cmd = request['cmd'] title = request.get('title', '') lang = request.get('lang', '') user = request.get('user', '') server = request.get('server', '') except: ret = ret_val(E_ERROR, "invalid request") tools.send_reply(conn, ret) conn.close() continue t = time.time() user = user.replace(' ', '_') print( date_s(t) + " REQUEST " + user + ' ' + lang + ' ' + cmd + ' ' + title + ' ' + server).encode('utf-8') if cmd == "status": html = do_status() tools.send_text_reply(conn, html) conn.close() elif cmd == "match": jobs['number_of_match_job'] += 1 jobs['match_queue'].put(title, lang, user, t, tools, server, conn) elif cmd == "split": jobs['number_of_split_job'] += 1 jobs['split_queue'].put(title, lang, user, t, tools, server, conn) elif cmd == 'ping': tools.send_reply(conn, ret_val(E_OK, 'pong')) conn.close() else: tools.send_reply(conn, ret_val(E_ERROR, "unknown command: " + cmd)) conn.close() finally: tools.close() on_exit(0, None)
def bot_listening(queue, cache): print date_s(time.time()) + " START" tools = tool_connect.ToolConnect('ws_ocr_daemon', 45133) try: while True: request, conn = tools.wait_request() try: url = request.get('url', '') lang = request.get('lang', '') user = request.get('user', '') cmd = request['cmd'] except: ret = ret_val(E_ERROR, "invalid request") tools.send_reply(conn, ret) conn.close() continue t = time.time() print( date_s(t) + " REQUEST " + user + ' ' + lang + ' ' + cmd + ' ' + url).encode('utf-8') if cmd == "ocr": # bypass the job queue if the ocr is cached to ensure a cached # ocr will be returned as soon as possible. text = get_from_cache(cache, url, lang) if text: tools.send_reply(conn, ret_val(E_OK, text)) conn.close() else: queue.put(url, lang, user, t, tools, conn) next_page_url = next_url(url) queue.put(next_page_url, lang, user, t, None, None) elif cmd == 'status': html = do_status(queue) tools.send_text_reply(conn, html) conn.close() elif cmd == 'ping': tools.send_reply(conn, ret_val(E_OK, 'pong')) conn.close() else: tools.send_reply(conn, ret_val(E_ERROR, "unknown command: " + cmd)) conn.close() finally: tools.close()
def bot_listening(queue): print date_s(time.time()) + " START" tools = tool_connect.ToolConnect('extract_text_layer', 45132) try: while True: request, conn = tools.wait_request() try: print request cmd = request['cmd'] title = request.get('title', '') lang = request.get('lang', '') user = request.get('user', '') except: ret = ret_val(E_ERROR, "invalid request") tools.send_reply(conn, ret) conn.close() continue t = time.time() user = user.replace(' ', '_') print( date_s(t) + " REQUEST " + user + ' ' + lang + ' ' + cmd + ' ' + title).encode('utf-8') if cmd == "extract": queue.put(title, lang, user, t, tools, conn) elif cmd == 'status': html = do_status(queue) tools.send_text_reply(conn, html) conn.close() elif cmd == 'ping': tools.send_reply(conn, ret_val(E_OK, 'pong')) conn.close() else: tools.send_reply(conn, ret_val(E_ERROR, "unknown command: " + cmd)) conn.close() finally: tools.close() print >> sys.stderr, "STOP"
def bot_listening(queue): print date_s(time.time()) + " START" tools = tool_connect.ToolConnect('dummy_robot', 45139) try: while True: request, conn = tools.wait_request() try: print request cmd = request['cmd'] title = request.get('title', '') except: ret = ret_val(E_ERROR, "invalid request") tools.send_reply(conn, ret) conn.close() continue t = time.time() print (date_s(t) + " REQUEST " + cmd + ' ' + title).encode('utf-8') if cmd in [ "exec", "timeout" ]: queue.put(cmd, title, t, tools, conn) elif cmd == 'status': html = do_status(queue) tools.send_text_reply(conn, html) conn.close() elif cmd == 'ping': tools.send_reply(conn, ret_val(E_OK, 'pong')) conn.close() else: tools.send_reply(conn, ret_val(E_ERROR, "unknown command: " + cmd)) conn.close() finally: tools.close() print >> sys.stderr, "STOP"