MCPcopy Create free account
hub / github.com/DIMFLIX/Spectrum-Security / DB

Class DB

db.py:3–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1import sqlite3, os, datetime
2
3class DB(object):
4 def __init__(self, db_fp='data/data.db'):
5 self.db_fp = db_fp
6 self.tables = ["virus_md5_hashes", "processed_virusshare_urls", "programm_settings", "virus_storage"]
7 self.connect()
8 self.create_tables()
9 self.programm_settings()
10
11 def __enter__(self):
12 return self
13
14 def __exit__(self, type, value, traceback):
15 self.conn.commit()
16 self.cur.close()
17 self.conn.close()
18
19 def __repr__(self):
20 return f"<SQLite3 Database: {self.db_fp}>"
21
22 def connect(self):
23 self.conn = sqlite3.connect(self.db_fp)
24 self.cur = self.conn.cursor()
25
26 def create_tables(self):
27 self.cur.execute('CREATE TABLE IF NOT EXISTS programm_settings(setting TEXT NOT NULL, status BOOLEAN NOT NULL)')
28 self.cur.execute('CREATE TABLE IF NOT EXISTS virus_storage(date TEXT NOT NULL, path TEXT NOT NULL PRIMARY KEY)')
29 self.conn.commit()
30
31 def exists(self, vname, table, value):
32 sql = f"SELECT {vname} FROM {table} WHERE {vname} = (?)"
33 self.cur.execute(sql, (value,))
34 return self.cur.fetchone() is not None
35
36 def reset(self):
37 self.close()
38 os.remove(self.db_fp)
39 self.connect()
40 self.update()
41
42
43
44
45
46
47
48 def programm_settings(self):
49 if not self.exists('Setting', 'programm_settings', 'Language'):
50 self.cur.execute("INSERT INTO programm_settings VALUES (?, ?)", ('Language', True))
51
52 def update_programm_settings(self, setting, status):
53 self.cur.execute("UPDATE programm_settings SET status = ? WHERE setting = ?", [status, setting])
54
55 def get_programm_settings(self, setting):
56 return self.cur.execute("SELECT status FROM programm_settings WHERE setting = ?", [setting,]).fetchone()
57
58
59
60

Callers 9

scan_allMethod · 0.90
main_page_infoMethod · 0.90
eventFilterMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected