From e929ea2526c2604939566e58c707094a745adae5 Mon Sep 17 00:00:00 2001 From: spla Date: Tue, 18 Jan 2022 18:50:12 +0100 Subject: [PATCH] Get and write total register attempts by date --- db-setup.py | 5 ++++ spamcheck.py | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/db-setup.py b/db-setup.py index fdbfae3..1d5dc89 100644 --- a/db-setup.py +++ b/db-setup.py @@ -157,6 +157,11 @@ if __name__ == '__main__': sql = "create table "+table+" (created_at timestamptz, ip inet PRIMARY KEY)" create_table(db, db_user, table, sql) + table = "totals" + sql = "create table "+table+" (datetime timestamptz PRIMARY KEY, registers int)" + create_table(db, db_user, table, sql) + + ############################################################ diff --git a/spamcheck.py b/spamcheck.py index 4d8cb73..292d093 100644 --- a/spamcheck.py +++ b/spamcheck.py @@ -11,6 +11,80 @@ from langdetect import detect import requests import pdb +def write_totals(spamcheck_datetime_lst, spamcheck_registers_lst): + + insert_sql = 'INSERT INTO totals(datetime, registers) VALUES(%s,%s) ON CONFLICT (datetime) DO UPDATE SET (datetime, registers) = (EXCLUDED.datetime, EXCLUDED.registers)' + + i = 0 + + while i < len(spamcheck_datetime_lst): + + conn = None + + try: + + conn = psycopg2.connect(database = spamcheck_db, user = spamcheck_db_user, password = "", host = "/var/run/postgresql", port = "5432") + + cur = conn.cursor() + + cur.execute(insert_sql, (spamcheck_datetime_lst[i], spamcheck_registers_lst[i])) + + conn.commit() + + cur.close() + + except (Exception, psycopg2.DatabaseError) as error: + + print(error) + + finally: + + if conn is not None: + + conn.close() + + i += 1 + +def get_totals(): + + spamcheck_datetime_lst = [] + + spamcheck_registers_lst = [] + + select_sql = 'select date(created_at), count(ip) as registers from spamcheck group by date(created_at) order by date(created_at)' + + conn = None + + try: + + conn = psycopg2.connect(database = spamcheck_db, user = spamcheck_db_user, password = "", host = "/var/run/postgresql", port = "5432") + + cur = conn.cursor() + + cur.execute(select_sql) + + rows = cur.fetchall() + + for row in rows: + + spamcheck_datetime_lst.append(row[0]) + + spamcheck_registers_lst.append(row[1]) + + cur.close() + + except (Exception, psycopg2.DatabaseError) as error: + + print(error) + + finally: + + if conn is not None: + + conn.close() + + return (spamcheck_datetime_lst, spamcheck_registers_lst) + def check_ip(ip): is_tor_exit_node = 'f' @@ -296,3 +370,7 @@ if __name__ == '__main__': if conn is not None: conn.close() + + spamcheck_datetime_lst, spamcheck_registers_lst = get_totals() + + write_totals(spamcheck_datetime_lst, spamcheck_registers_lst)