示例#1
0
 def log_result(job, state, result):
     rc = result.get("rc", "(Error)")
     msg = result.get("msg", "(Error)")
     if rc == "KO":
         event = main_events.Event(None,
                                     "%s %s: %s" % (station,
                                    _(" says "),
                                     msg))
         self.emit("event", event)
     else:
           # rc == "OK": 
         event = main_events.Event(None, result)             
         printlog("MainStation",": result returned: %s" % str(result))
         printlog("MainStation",": event returned: %s" % event)
示例#2
0
        def log_failure(job, state, result):
            rc = result.get("rc", "Timeout")
            event = main_events.Event(None, "%s: %s" % (job.get_dest(), rc))

            job = self._remote.refresh()
            self._emit("submit-rpc-job", job, port)
            self._emit("event", event)
示例#3
0
    def RPC_file_list(self, job):
        result = {}
    
        dir = self.__config.get("prefs", "download_dir")
        files = glob.glob(os.path.join(dir, "*.*"))
        for fn in files:
            if os.path.isdir(fn):
                continue
            size = os.path.getsize(fn)
            if size < 1024:
                units = "B"
            else:
                size >>= 10
                units = "KB"
    
            ds = datetime.datetime.fromtimestamp(os.path.getmtime(fn))
    
            fn = os.path.basename(fn)
            result[fn] = "%i %s (%s)" % (size,
                                         units,
                                         ds.strftime("%Y-%m-%d %H:%M:%S"))
    
        event = main_events.Event(None, job.get_dest() + " " + \
                                      _("Requested file list"))
        self.emit("event", event)

        return result
示例#4
0
 def log_result(job, state, result):
     msg = result.get("rc", "(Error)")
     if msg != "OK":
         event = main_events.Event(
             None, "%s %s: %s" % (station, _("says"), msg))
         self.emit("event", event)
     print(("Result: %s" % str(result)))
示例#5
0
    def RPC_check_mail(self, job):
        def check_done(mt, success, message, job):
            result = {"rc": success and "0" or "-1", "msg": message}
            job.set_state("complete", result)

            event = main_events.Event(
                None, "%s %s: %s" %
                (_("Checking mail for"), job.get_dest(), message))
            self.emit("event", event)

        args = job.get_account() + (job.get_dest(), )

        if args[0] == "@WL2K":
            if self.__config.getboolean("prefs", "msg_allow_wl2k"):
                mt = wl2k.WinLinkThread(self.__config, job.get_dest(), args[1])
                mt.connect("event", self.__proxy_emit("event"))
                mt.connect("form-received", self.__proxy_emit("form-received"))
                mt.connect("form-sent", self.__proxy_emit("form-sent"))
            else:
                return {"rc": "False", "msg": "WL2K gateway is disabled"}
        else:
            if self.__config.getboolean("prefs", "msg_allow_pop3"):
                mt = emailgw.CoercedMailThread(self.__config, *args)
            else:
                return {"rc": "False", "msg": "POP3 gateway is disabled"}

        self.emit("register-object", mt)
        mt.connect("mail-thread-complete", check_done, job)
        mt.start()

        event = main_events.Event(
            None, "%s %s" % (job.get_dest(), _("requested a mail check")))
        self.emit("event", event)
示例#6
0
        def check_done(mt, success, message, job):
            result = {"rc": success and "0" or "-1", "msg": message}
            job.set_state("complete", result)

            event = main_events.Event(
                None, "%s %s: %s" %
                (_("Checking mail for"), job.get_dest(), message))
            self.emit("event", event)
示例#7
0
            def log_result(job, state, result):
                if state == "complete":
                    msg = "Station %s running D-RATS %s on %s" % (\
                        job.get_dest(),
                        result.get("version", "Unknown"),
                        result.get("os", "Unknown"))
                    printlog("MainStation",": Station %s reports version info: %s" % (job.get_dest(), result))

                else:
                    msg = "No version response from %s" % job.get_dest()
                event = main_events.Event(None, msg)
                self.emit("event", event)
示例#8
0
    def RPC_form_list(self, job):
        result = {}
        forms = self.emit("get-message-list", "CQCQCQ")
        for subj, stamp, filen in forms:
            ts = time.localtime(stamp)
            result[filen] = "%s/%s" % (subj,
                                       time.strftime("%b-%d-%Y %H:%M:%S", ts))
    

        event = main_events.Event(None, job.get_dest() + " " + \
                                      _("Requested message list"))
        self.emit("event", event)

        return result
示例#9
0
    def RPC_form_pull(self, job):
        result = {}
    
        forms = self.emit("get-message-list", "CQCQCQ")
        result["rc"] = "Form not found"
        for subj, stamp, filen in forms:
            if filen == job.get_form():
                fname = os.path.join(self.__config.platform.config_dir(),
                                     "messages", filen)
                if os.path.exists(fname):
                    result["rc"] = "OK"
                    self.emit("rpc-send-form",
                              job.get_dest(), self.__port, fname, subj)
                break

        event = main_events.Event(None, job.get_dest() + " " + \
                                      _("Requested message %s") % subj)
        self.emit("event", event)
    
        return result
示例#10
0
    def RPC_file_pull(self, job):
        result = {}
    
        if not self.__config.getboolean("prefs", "allow_remote_files"):
            result["rc"] = "Remote file transfers not enabled"
            return result

        dir = self.__config.get("prefs", "download_dir")
        path = os.path.join(dir, job.get_file())
        print("Remote requested %s" % path)
        if os.path.exists(path):
            result["rc"] = "OK"
            self.emit("rpc-send-file",
                      job.get_dest(), self.__port, path, job.get_file())
        else:
            result["rc"] = "File not found"

        event = main_events.Event(None, job.get_dest() + " " + \
                                      _("Requested file %s") % job.get_file())
        self.emit("event", event)
    
        return result
示例#11
0
 def log_failure(job, state, result):
     rc = result.get("rc", "Timeout")
     if rc != "OK":
         event = main_events.Event(None,
                                   "%s: %s" % (job.get_dest(), rc))
         self._emit("event", event)
示例#12
0
 def log_result(job, state, result):
     msg = "Mail check via %s: %s" % (
         job.get_dest(), result.get("msg", "No response"))
     event = main_events.Event(None, msg)
     self.emit("event", event)