From 62ad832396bd86fe837cbb3c823d6b30015b428a Mon Sep 17 00:00:00 2001 From: Alexandr Date: Wed, 9 Jan 2019 23:18:19 +0300 Subject: [PATCH] Let's collect more data. --- assets/main.db.sql | 49 +++++++++++++++++++++++++++++++++++++++++++++- database.py | 11 ++++++++--- worker.py | 2 +- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/assets/main.db.sql b/assets/main.db.sql index 84b8100..715d38d 100755 --- a/assets/main.db.sql +++ b/assets/main.db.sql @@ -1,5 +1,51 @@ BEGIN TRANSACTION; +--- CREATE TABLE `word` ( +--- `id` INTEGER PRIMARY KEY AUTOINCREMENT, +--- `word` TEXT UNIQUE +--- ); +--- CREATE TABLE sqlite_sequence(name,seq); +--- CREATE TABLE `user` ( +--- `id` INTEGER NOT NULL UNIQUE, +--- `username` TEXT NOT NULL, +--- `first_name` TEXT NOT NULL, +--- `last_name` TEXT NOT NULL, +--- `date` INTEGER NOT NULL, +--- PRIMARY KEY(`id`) +--- ); +--- CREATE TABLE `conf` ( +--- `id` NUMERIC NOT NULL UNIQUE, +--- `title` TEXT, +--- `date` INTEGER NOT NULL, +--- PRIMARY KEY(`id`) +--- ); +--- CREATE TABLE `xxx_message` (`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `text` TEXT UNIQUE NULL); +--- CREATE TABLE IF NOT EXISTS "relations" ( +--- `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, +--- `word_id` INTEGER NOT NULL, +--- `user_id` INTEGER NOT NULL, +--- `conf_id` INTEGER NOT NULL, +--- `msg_id` INTEGER NOT NULL, +--- `date` INTEGER NOT NULL, +--- FOREIGN KEY(`word_id`) REFERENCES `word`(`id`) ON DELETE CASCADE, +--- FOREIGN KEY(`user_id`) REFERENCES `user`(`id`), +--- FOREIGN KEY(`conf_id`) REFERENCES `conf`(`id`) +--- ); +--- CREATE TABLE `reset` ( +--- `id` INTEGER PRIMARY KEY AUTOINCREMENT, +--- `user_id` INTEGER, +--- `conf_id` INTEGER, +--- `date` INTEGER, +--- `relation_id` INTEGER, +--- FOREIGN KEY(`user_id`) REFERENCES `user`(`id`) +--- ); +--- CREATE TABLE `alert` ( +--- `conf_id`TEXT NOT NULL, +--- `user_id`TEXT NOT NULL, +--- `created`TEXT NOT NULL, +--- `time`TEXT NOT NULL, +--- `message`TEXT +--- ); CREATE TABLE `word` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `word` TEXT UNIQUE @@ -24,7 +70,7 @@ CREATE TABLE IF NOT EXISTS "relations" ( `word_id` INTEGER NOT NULL, `user_id` INTEGER NOT NULL, `conf_id` INTEGER NOT NULL, - `date` INTEGER NOT NULL, + `date` INTEGER NOT NULL, `msg_id` INTEGER NULL, FOREIGN KEY(`word_id`) REFERENCES `word`(`id`) ON DELETE CASCADE, FOREIGN KEY(`user_id`) REFERENCES `user`(`id`), FOREIGN KEY(`conf_id`) REFERENCES `conf`(`id`) @@ -44,4 +90,5 @@ CREATE TABLE `alert` ( `time`TEXT NOT NULL, `message`TEXT ); +CREATE TABLE `xxx_message` (`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `text`TEXT UNIQUE NULL); COMMIT; diff --git a/database.py b/database.py index 2c3a2b9..47db761 100755 --- a/database.py +++ b/database.py @@ -89,15 +89,20 @@ class DataBase: ) self.execute(sql) - def add_relation(self, word, user_id, conf_id): + def add_relation(self, word, user_id, conf_id, text): word_id = self.save_word(word) date = int(dt.datetime.now().strftime("%s")) + sql2 = "INSERT OR IGNORE INTO xxx_message('text') VALUES ('%s')" % text + self.execute(sql2) + sql3 = "SELECT id FROM `xxx_message` WHERE text = '%s'" % text + msg_id = self.execute(sql3)[0][0] sql = """INSERT OR IGNORE INTO - relations('word_id', 'user_id', 'conf_id', 'date') - VALUES ('%s','%s','%s','%s')""" % ( + relations('word_id', 'user_id', 'conf_id', 'msg_id', 'date') + VALUES ('%s','%s','%s','%s', '%s')""" % ( word_id, user_id, conf_id, + msg_id, date ) self.execute(sql) diff --git a/worker.py b/worker.py index 214d406..24aaaf3 100755 --- a/worker.py +++ b/worker.py @@ -248,7 +248,7 @@ class MessageWorker: self.db.add_conf(chat_id, chat_title) for word in collection: - self.db.add_relation(word=word, user_id=user_id, conf_id=chat_id) + self.db.add_relation(word=word, user_id=user_id, conf_id=chat_id, text=text) def clean_text(self, s): file = open(self.stop_words, 'rt')