示例#1
0
    def decryptContainer(self, plugin, url):
        data = []
        # only works on container plugins

        self.m.log.debug("Pre decrypting %s with %s" % (url, plugin))

        # dummy pyfile
        pyfile = PyFile(self.m.core.files, -1, url, url, 0, 0, "", plugin, -1, -1)

        pyfile.initPlugin()

        # little plugin lifecycle
        try:
            pyfile.plugin.setup()
            pyfile.plugin.loadToDisk()
            pyfile.plugin.decrypt(pyfile)
            pyfile.plugin.deleteTmp()

            for pack in pyfile.plugin.packages:
                pyfile.plugin.urls.extend(pack[1])

            data = self.m.core.pluginManager.parseUrls(pyfile.plugin.urls)

            self.m.log.debug("Got %d links." % len(data))

        except Exception, e:
            self.m.log.debug("Pre decrypting error: %s" % str(e))
示例#2
0
    def decryptContainer(self, plugin, url):
        data = []
        # only works on container plugins

        self.m.log.debug("Pre decrypting %s with %s" % (url, plugin))

        # dummy pyfile
        pyfile = PyFile(self.m.core.files, -1, url, url, 0, 0, "", plugin, -1,
                        -1)

        pyfile.initPlugin()

        # little plugin lifecycle
        try:
            pyfile.plugin.setup()
            pyfile.plugin.loadToDisk()
            pyfile.plugin.decrypt(pyfile)
            pyfile.plugin.deleteTmp()

            for pack in pyfile.plugin.packages:
                pyfile.plugin.urls.extend(pack[1])

            data = self.m.core.pluginManager.parseUrls(pyfile.plugin.urls)

            self.m.log.debug("Got %d links." % len(data))

        except Exception, e:
            self.m.log.debug("Pre decrypting error: %s" % str(e))
示例#3
0
 def getFile(self, id):
     """return link instance from id"""
     self.c.execute(
         "SELECT url, name, size, status, error, plugin, package, linkorder FROM links WHERE id=?",
         (str(id), ))
     r = self.c.fetchone()
     if not r: return None
     return PyFile(self.manager, id, *r)
示例#4
0
 def _create_pyFile(self, data):
     pylink = self.pyload.api._convertPyFile(data)
     return PyFile(self.pyload.files,
                   pylink.fid,
                   pylink.url,
                   pylink.name,
                   pylink.size,
                   pylink.status,
                   pylink.error,
                   pylink.plugin,
                   pylink.packageID,
                   pylink.order)
示例#5
0
 def setLinkStatus(self, link, new_status):
     """ Change status of "link" to "new_status".
         "link" has to be a valid FileData object,
         "new_status" has to be a valid status name
           (i.e. "queued" for this Plugin)
         It creates a temporary PyFile object using
         "link" data, changes its status, and tells
         the core.files-manager to save its data.
     """
     pyfile = PyFile(self.core.files,
                     link.fid,
                     link.url,
                     link.name,
                     link.size,
                     link.status,
                     link.error,
                     link.plugin,
                     link.packageID,
                     link.order)
     pyfile.setStatus(new_status)
     self.core.files.save()
     pyfile.release()
示例#6
0
 def setLinkStatus(self, link, new_status):
     """ Change status of "link" to "new_status".
         "link" has to be a valid FileData object,
         "new_status" has to be a valid status name
           (i.e. "queued" for this Plugin)
         It creates a temporary PyFile object using
         "link" data, changes its status, and tells
         the core.files-manager to save its data.
     """
     pyfile = PyFile(self.core.files, link.fid, link.url, link.name,
                     link.size, link.status, link.error, link.plugin,
                     link.packageID, link.order)
     pyfile.setStatus(new_status)
     self.core.files.save()
     pyfile.release()
示例#7
0
 def _create_pyFile(self, pylink):
     return PyFile(self.pyload.files, pylink.fid, pylink.url, pylink.name,
                   pylink.size, pylink.status, pylink.error, pylink.plugin,
                   pylink.packageID, pylink.order)
示例#8
0
 def _pyfile(self, link):
     return PyFile(self.core.files, link.fid, link.url, link.name,
                   link.size, link.status, link.error, link.plugin,
                   link.packageID, link.order)