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))
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)
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)
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()
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)
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)