Пример #1
0
    def _parse_allowed(self):
        def errfunc(message, exc_info=None):
            # logging broken .torrent files would be useful but could confuse
            # programs parsing log files
            m = "parse_dir: %s" % message
            if exc_info:
                self._print_exc(m, exc_info)
            else:
                self._print_event(m)
            pass
        r = parsedir(self.allowed_dir, self.allowed, self.allowed_dir_files,
                     self.allowed_dir_blocked, errfunc, include_metainfo = False)

        # register the call to parse a dir.
        self.rawserver.external_add_task(self.parse_dir_interval,
                                         self.parse_allowed)

        return r
    def scan(self):
        self.rawserver.add_task(self.config['parse_dir_interval'], self.scan)

        r = parsedir(self.torrent_dir, self.torrent_cache,
                     self.file_cache, self.blocked_files,
                     self.logger.error)

        ( self.torrent_cache, self.file_cache, self.blocked_files,
            added, removed ) = r
        for infohash, (path, metainfo) in removed.items():
            self.logger.info(_('dropped "%s"') % path)
            self.remove(infohash)
        for infohash, (path, metainfo) in added.items():
            self.logger.info(_('added "%s"'  ) % path)
            if self.config['launch_delay'] > 0:
                self.rawserver.add_task(self.config['launch_delay'],
                                        self.add, metainfo)
            # torrent may have been known from resume state.
            else:
                self.add(metainfo)