Esempio n. 1
0
    def get_by_path(self, path):
        cur = self.con.cursor()
        cur.execute("SELECT * FROM fileinfo WHERE path = ?", (path,))
        rows = cur.fetchall()
        if len(rows) > 1:
            raise Exception("duplicates in database")
        elif len(rows) == 0:
            return None
        else:
            row = rows[0]
            fileinfo = FileInfo(path)

            # rowid = row[0]
            fileinfo.kind = row[1]
            fileinfo.path = row[2]
            fileinfo.dev = row[3]
            fileinfo.ino = row[4]
            fileinfo.mode = row[5]
            fileinfo.nlink = row[6]
            fileinfo.uid = row[7]
            fileinfo.gid = row[8]
            fileinfo.rdev = row[9]
            fileinfo.size = row[10]
            fileinfo.blksize = row[11]
            fileinfo.blocks = row[12]
            fileinfo.atime = row[13]
            fileinfo.ctime = row[14]
            fileinfo.mtime = row[15]
            fileinfo.time = row[16]

            return fileinfo
Esempio n. 2
0
def main():
    fileinfos = []
    with zipfile.ZipFile(sys.argv[1], 'r') as zp:
        for entry in zp.infolist():
            # print(entry, entry.filename, entry.date_time, entry.flag_bits, entry.CRC, entry.file_size)
            info = FileInfo(entry.filename)
            info.kind = 'file'
            info.size = entry.file_size
            info.blob = BlobInfo(entry.file_size, crc32=entry.CRC)
            info.mtime = int(datetime.datetime(*entry.date_time).timestamp()) * 10**9

            fileinfos.append(info)

    for info in fileinfos:
        print(info.json())