You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
49 lines
1.3 KiB
#!/usr/bin/python
|
|
import sqlite3
|
|
def hash_file(path,hash_if_less,sample):
|
|
return _imohash(path,hash_if_less,sample)
|
|
|
|
def __init_database__(con):
|
|
cur = con.cursor()
|
|
cur.execute('''CREATE TABLE IF NOT EXISTS `PATHS` (
|
|
`PATH` TEXT,
|
|
`HASH` BLOB,
|
|
`ID` INTEGER)''')
|
|
cur.execute('''CREATE TABLE IF NOT EXISTS `BACKUPS` (
|
|
`ID` INTEGER,
|
|
`HASH_THRESHOLD` INTEGER,
|
|
`SAMPLE_SIZE` INTEGER)''')
|
|
con.commit()
|
|
class fs:
|
|
def __init__(self,top,db_path=None,hash_threshold=1024**2,sample_size=128*1024,id=None):
|
|
self.top=top
|
|
self.hash_threshold=hash_threshold
|
|
self.sample_size=sample_size
|
|
if db_path is None:
|
|
self.db_path = 'fs.db'
|
|
else:
|
|
self.db_path=db_path
|
|
self.con = sqlite3.connect(self.db_path)
|
|
__init_database__(self.con)
|
|
self.cur = self.con.cursor()
|
|
if id is None:
|
|
self.cur.execute('SELECT MAX(id) FROM backups')
|
|
id=self.cur.fetchone()
|
|
if id[0] is None:
|
|
self.id = 0
|
|
else:
|
|
self.id = id[0]+1
|
|
else:
|
|
self.id = id
|
|
|
|
def write_to_db(self):
|
|
pass
|
|
|
|
def morph(self,other):
|
|
pass
|
|
|
|
def backup(self,other):
|
|
pass
|
|
if __name__ == "__main__":
|
|
import os
|
|
test = fs(os.getcwd())
|