-
Notifications
You must be signed in to change notification settings - Fork 1
/
spamdb.py
60 lines (56 loc) · 1.3 KB
/
spamdb.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import sqlite3
INIT_DB_SQL = """
PRAGMA synchronous = 0;
PRAGMA journal_mode = TRUNCATE;
CREATE TABLE IF NOT EXISTS SpamWords (
word TEXT PRIMARY KEY,
spamCount INTEGER DEFAULT 0,
hamCount INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS KeyValue (
key TEXT PRIMARY KEY,
value INTEGER
);
CREATE VIEW spamCalc AS
SELECT
word,
spamCount,
hamCount,
(CAST(spamCount AS REAL)/ spamMsgCount) AS spamRate,
(CAST(hamCount AS REAL) / hamMsgCount) AS hamRate,
spamMsgCount,
hamMsgCount
FROM
(SELECT
value as spamMsgCount
FROM KeyValue
WHERE
key="SPAM_MSG_COUNT"),
(SELECT
value as hamMsgCount
FROM KeyValue
WHERE
key="HAM_MSG_COUNT"),
SpamWords AS sw
WHERE
sw.hamCount + sw.spamCount > 5;
INSERT INTO KeyValue VALUES
('SPAM_MSG_COUNT', 0),
('TOTAL_MSG_COUNT', 0),
('HAM_MSG_COUNT', 0);
"""
# Init the spam database and loads this module up.
def initSpamDb():
# The database connection is module global
global dbconn
dbconn = sqlite3.connect('spam.db')
dbconn.execute(INIT_DB_SQL)
return True
# key - the spam word
# isSpam - is this word a spammy word.
def updateSpamKey(key, isSpam):
return key
# TODO: IMPLEMENT ME!!!!
# returns how spammy a word is from the database
def getSpaminess(key):
return 0.4