コード例 #1
0
 async def process_host_request(self, stream, popup=True):
     """
     This method is called whenever we got data from the host.
     It tries to find a proper app and pass the stream with data to it.
     """
     self.gui.show_loader(title="Processing host data...")
     res = None
     try:
         matching_apps = []
         for app in self.apps:
             stream.seek(0)
             # check if the app can process this stream
             if app.can_process(stream):
                 matching_apps.append(app)
         if len(matching_apps) == 0:
             raise HostError("Host command is not recognized")
         # TODO: if more than one - ask which one to use
         if len(matching_apps) > 1:
             raise HostError(
                 "Not sure what app to use... " "There are %d" % len(matching_apps)
             )
         stream.seek(0)
         app = matching_apps[0]
         res = await app.process_host_command(stream, self.gui.show_screen(popup))
     except Exception as e:
         if isinstance(e, BaseError):
             # error that has a meaningfull message, will be sent to the host
             raise HostError(str(e))
         else:
             # converted to "unknown error" on the host
             raise e
     finally:
         self.gui.hide_loader()
     return res
コード例 #2
0
ファイル: specter.py プロジェクト: The-Peso-G/specter-diy
 async def process_host_request(self, stream, popup=True):
     """
     This method is called whenever we got data from the host.
     It tries to find a proper app and pass the stream with data to it.
     """
     matching_apps = []
     for app in self.apps:
         stream.seek(0)
         # check if the app can process this stream
         if app.can_process(stream):
             matching_apps.append(app)
     if len(matching_apps) == 0:
         raise HostError("Host command is not recognized")
     # TODO: if more than one - ask which one to use
     if len(matching_apps) > 1:
         raise HostError("Not sure what app to use... There are %d" % len(matching_apps))
     stream.seek(0)
     return await matching_apps[0].process_host_command(stream, self.gui.show_screen(popup))