def __init__(self): for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM, 0, socket.AI_PASSIVE): af, socktype, proto, name, sa = res try: self.listen_socket = socket.socket(af, socktype, proto) except socket.error as msg: self.listen_socket = None #print msg continue try: self.listen_socket.bind(sa) self.listen_socket.listen(10) except socket.error as msg: self.listen_socket.close() self.listen_socket = None #print msg continue break if self.listen_socket is None: print 'Create server socket failed, please check your network configuration!' sys.exit(-1) try: self.messageHandler = MessageHandler() except: print 'Create game server failed!' sys.exit(-1) self.onConnection = [self.listen_socket]
def test_handle_cmd(self): handler = MessageHandler(None) result = handler.handle_cmd('#weather 北京') self.assertRegex(result, '北京.*天气: .*') result = handler.handle_cmd('#run test') self.assertRegex(result, 'Unimplemented command: .*') result = handler.handle_cmd('#@$ test') self.assertRegex(result, 'Invalid command: .*')
def test_handle_room(self): handler = MessageHandler(None) # mentioned me forward = handler.handle_room('测试群', '测试', True, '', 'id', None) self.assertTrue(forward) # mentioned all forward = handler.handle_room('测试群', '测试', False, '@All', 'id', None) self.assertTrue(forward) # specific room, has attachment forward = handler.handle_room('测试群', '测试', False, '', '4932234304@chatroom', MessageType.MESSAGE_TYPE_ATTACHMENT) self.assertTrue(forward) # specific room, no attachment forward = handler.handle_room('测试群', '测试', False, '', '4932234304@chatroom', None) self.assertFalse(forward) # keywords match forward = handler.handle_room('测试群', '有额度', False, '', '', None) self.assertTrue(forward) # no keywords match forward = handler.handle_room('测试群', '测试', False, '', '4932234304@chatroom', None) self.assertFalse(forward) # skipped forward = handler.handle_room('测试群', '测试', False, '', 'id', None) self.assertFalse(forward)
async def main(): """ Async Main Entry """ # # Make sure we have set WECHATY_PUPPET_SERVICE_TOKEN in the environment variables. # if 'WECHATY_PUPPET_SERVICE_TOKEN' not in os.environ: print(''' Error: WECHATY_PUPPET_SERVICE_TOKEN is not found in the environment variables You need a TOKEN to run the Java Wechaty. Please goto our README for details https://github.com/wechaty/python-wechaty-getting-started/#wechaty_puppet_service_token ''') global bot bot = Wechaty() global handler handler = MessageHandler(bot) bot.on('scan', on_scan) bot.on('login', on_login) bot.on('message', on_message) await bot.start() print('[Python Wechaty] Chatroom Assistant started.')
def handle_message(event): """handle_message * Messageイベントの処理 """ event_handler = MessageHandler(event) status_observer = StatusObserver() product_observer = ProductObserver() message_observer = MessageObserver() event_handler.add_observer(product_observer) event_handler.add_observer(message_observer) event_handler.add_observer(status_observer) event_handler.execute()
# Map data into vocabulary vocab_path = os.path.join(checkpoint_dir, "..", "vocab") vocab_processor = learn.preprocessing.VocabularyProcessor.restore(vocab_path) print("\nEvaluating...\n", flush=True) # Evaluation # ================================================== checkpoint_file = tf.train.latest_checkpoint(checkpoint_dir) graph = tf.Graph() with graph.as_default(): # Leave this in case we want debug data # session_conf = tf.ConfigProto(log_device_placement=True) # sess = tf.Session(config=session_conf) sess = tf.Session() with sess.as_default(): # Load the saved meta self.graph and restore variables saver = tf.train.import_meta_graph("{}.meta".format(checkpoint_file)) saver.restore(sess, checkpoint_file) handler = MessageHandler(sess, graph, vocab_processor) print("READY", flush=True) while True: line = sys.stdin.readline() if not line: pass handler.handle(line)
def test_doc2pdf(self): handler = MessageHandler(None) # filebox = FileBox.from_file('testdata/Test.docx') # result, error = handler.doc2pdf(filebox, 'Test') result, error = handler.doc2pdf('testdata/Test.doc', 'Test') self.assertTrue(os.path.exists('/tmp/Test.pdf'))
def test_message_contains_keywords(self): handler = MessageHandler(None) result = handler.message_contains_words('9:30放额度,最高20倍,手慢无', ['额度', '20倍']) self.assertEqual(result, True)
def test_weather(self): handler = MessageHandler(None) result = handler.weather('北京') self.assertRegex(result, '北京.*天气: .*')
def test_translate(self): handler = MessageHandler(None) result = handler.translate( 'Recuerden. Hoy es el foro para la comunidad Hispana con la Gobernadora Gina Raimondo y la Comisionada @AInfanteGreen en vivo por Facebook Live. Envien sus preguntas con anticipación usando este enlace: http://ow.ly/QJIj50zozbq.' ) self.assertRegex(result, 'Remember.*')
def test_files(self): handler = MessageHandler(None) result = handler.files('foo.docx') self.assertEqual(result, 'file foo.docx not exists') result = handler.files(None) self.assertTrue(result)
class SimpleHost(object): def __init__(self): for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM, 0, socket.AI_PASSIVE): af, socktype, proto, name, sa = res try: self.listen_socket = socket.socket(af, socktype, proto) except socket.error as msg: self.listen_socket = None #print msg continue try: self.listen_socket.bind(sa) self.listen_socket.listen(10) except socket.error as msg: self.listen_socket.close() self.listen_socket = None #print msg continue break if self.listen_socket is None: print 'Create server socket failed, please check your network configuration!' sys.exit(-1) try: self.messageHandler = MessageHandler() except: print 'Create game server failed!' sys.exit(-1) self.onConnection = [self.listen_socket] def start(self): print 'Game Host start...' outputs = [] msg_queues = {} while self.onConnection: rpipes, wpipes, exceptions = select.select(self.onConnection, outputs, self.onConnection) for r in rpipes: if r is self.listen_socket: conn_socket, cli_addr = r.accept() print('New connection accepted:', cli_addr) self.onConnection.append(conn_socket) msg_queues[conn_socket] = deque() else: try: msg = r.recv(BUFSIZE) #print msg except Exception: self.messageHandler.exceptionHandler() self.onConnection.remove(r) try: if msg: #print "do handler." message = self.messageHandler._handle(msg, r) if message: # append message terminator '#' msg = str(len(message)) + '\t' + message + '#' msg_queues[r].put(msg) outputs.append(r) except Exception: pass for w in wpipes: try: msg = msg_queues[w].get_nowait() #print msg except Exception as e: outputs.remove(w) else: w.send(msg) for e in exceptions: self.onConnection.remove(e) if e in outputs: outputs.remove(e) e.close() del msg_queues[e] def sync(self): for sock in self.onConnection: if sock == self.listen_socket: continue try: sock.send(self.messageHandler.scenceManager.getSyncInfo) except Exception: logging.info('sync msg to {} error.'.format(sock)) def close(self): self.MessageHandler.exceptionHandler() self.listen_socket.close() sys.exit(-1)
def test_decode_base64(): test2_res = MessageHandler.decode_base64_if_required("dGVzdCBzdHJpbmc=") assert test2_res == "test string" print("Test2: " + str(test2_res))
def test_not_decode_string(): test1_res = MessageHandler.decode_base64_if_required("test string") assert test1_res == "test string" print("Test1: " + str(test1_res))