示例#1
0
    def getFileInfo(self, fid, force=False):
        """get data for specific file, when force is true download info will be appended"""
        self.c.execute('SELECT fid, name, owner, size, status, media, added, fileorder, '
                       'url, plugin, hash, dlstatus, error, package FROM files '
                       'WHERE fid=?', (fid,))
        r = self.c.fetchone()
        if not r:
            return None
        else:
            f = FileInfo(r[0], r[1], r[13], r[2], r[3], r[4], r[5], r[6], r[7])
            if r[11] > 0 or force:
                f.download = DownloadInfo(r[8], r[9], r[10], r[11], self.manager.statusMsg[r[11]], r[12])

            return f
示例#2
0
    def getFileInfo(self, fid, force=False):
        """get data for specific file, when force is true download info will be appended"""
        self.c.execute('SELECT fid, name, owner, size, status, media, added, fileorder, '
                       'url, plugin, hash, dlstatus, error, package FROM files '
                       'WHERE fid=?', (fid,))
        r = self.c.fetchone()
        if not r:
            return None
        else:
            f = FileInfo(r[0], r[1], r[13], r[2], r[3], r[4], r[5], r[6], r[7])
            if r[11] > 0 or force:
                f.download = DownloadInfo(r[8], r[9], r[10], r[11], self.manager.statusMsg[r[11]], r[12])

            return f
示例#3
0
 def toInfoData(self):
     return FileInfo(
         self.fid, self.getName(), self.packageid, self.ownerid,
         self.getSize(), self.filestatus, self.media, self.added,
         self.fileorder,
         DownloadInfo(self.url, self.pluginname, self.hash, self.status,
                      self.getStatusName(), self.error))
示例#4
0
    def getAllFiles(self, package=None, search=None, state=None, owner=None):
        """ Return dict with file information

        :param package: optional package to filter out
        :param search: or search string for file name
        :param unfinished: filter by dlstatus not finished
        :param owner: only specific owner
        """
        qry = (
            "SELECT fid, name, owner, size, status, media, added, fileorder, "
            "url, plugin, hash, dlstatus, error, package FROM files WHERE "
        )

        arg = []

        if state is not None and state != DS.All:
            qry += "dlstatus IN (%s) AND " % state_string(state)
        if owner is not None:
            qry += "owner=? AND "
            arg.append(owner)

        if package is not None:
            arg.append(package)
            qry += "package=? AND "
        if search is not None:
            search = "%%%s%%" % search.strip("%")
            arg.append(search)
            qry += "name LIKE ? "

        # make qry valid
        if qry.endswith("WHERE "):
            qry = qry[:-6]
        if qry.endswith("AND "):
            qry = qry[:-4]

        self.c.execute(qry + "ORDER BY package, fileorder", arg)

        data = OrderedDict()
        for r in self.c:
            f = FileInfo(r[0], r[1], r[13], r[2], r[3], r[4], r[5], r[6], r[7])
            if r[11] > 0:  # dl status != NA
                f.download = DownloadInfo(r[8], r[9], r[10], r[11], self.manager.statusMsg[r[11]], r[12])

            data[r[0]] = f

        return data
示例#5
0
    def getAllFiles(self, package=None, search=None, state=None, owner=None):
        """ Return dict with file information

        :param package: optional package to filter out
        :param search: or search string for file name
        :param unfinished: filter by dlstatus not finished
        :param owner: only specific owner
        """
        qry = ('SELECT fid, name, owner, size, status, media, added, fileorder, '
               'url, plugin, hash, dlstatus, error, package FROM files WHERE ')

        arg = []

        if state is not None and state != DS.All:
            qry += 'dlstatus IN (%s) AND ' %  state_string(state)
        if owner is not None:
            qry += 'owner=? AND '
            arg.append(owner)

        if package is not None:
            arg.append(package)
            qry += 'package=? AND '
        if search is not None:
            search = "%%%s%%" % search.strip("%")
            arg.append(search)
            qry += "name LIKE ? "

        # make qry valid
        if qry.endswith("WHERE "): qry = qry[:-6]
        if qry.endswith("AND "): qry = qry[:-4]

        self.c.execute(qry + "ORDER BY package, fileorder", arg)

        data = OrderedDict()
        for r in self.c:
            f = FileInfo(r[0], r[1], r[13], r[2], r[3], r[4], r[5], r[6], r[7])
            if r[11] > 0: # dl status != NA
                f.download = DownloadInfo(r[8], r[9], r[10], r[11], self.manager.statusMsg[r[11]], r[12])

            data[r[0]] = f

        return data