예제 #1
0
 def pair(self):
     """Start app in pairing mode"""
     self.log.setLevel(logging.WARNING)
     self.dm = self.init_dm()
     code = str(randint(100000, 999999))
     print('App running in pairing mode')
     print(f'Pair code:\n\n    {code[:3]}-{code[3:]}    \n')
     udp = UDPServer(('0.0.0.0', self.conf['port']), ServerSearchHandler)
     udp.app = self
     udp.pairing_code = code
     udp.paired_uin = None
     signal.signal(
         signal.SIGINT, lambda a, b: Thread(name='Thread-UDP-Main-Shutdown',
                                            target=udp.shutdown).start())
     udp.serve_forever(0.25)
     paired_uin = udp.paired_uin
     print(f'Successful pairing with device {paired_uin}'
           if paired_uin else 'Pairing failed')
     udp.server_close()
     del udp
     sys.exit(0 if paired_uin else 1)