From 434e5a91adbb3060bb09052d563cdd80e8afc05e Mon Sep 17 00:00:00 2001 From: shockrah Date: Sun, 23 Aug 2020 16:57:56 -0700 Subject: [PATCH] script for new chan like message filter --- chan-like/channer.py | 58 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 chan-like/channer.py diff --git a/chan-like/channer.py b/chan-like/channer.py new file mode 100644 index 0000000..a2d48dc --- /dev/null +++ b/chan-like/channer.py @@ -0,0 +1,58 @@ +# Channer front-end + +from os import getenv +import argparse +import mysql.connector as sql + +CONFIG = { + 'database': getenv('DATABASE_NAME'), + 'password': getenv('DATABASE_PASS'), + 'user': getenv('DATABASE_USER'), + 'host': getenv('DATABASE_HOST'), + 'port': int(getenv('DATABASE_PORT')), +} + +def add_message_limit(limit: int): + count_query = ''' + SELECT channel_name, COUNT(time) FROM messages + GROUP BY channel_name; + ''' + conn = sql.connect(**CONFIG) + cursor = conn.cursor() + + +def add_message_timeout(): + pass + +def rm_message_limit(): + pass + +def rm_message_timeout(): + pass + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='An optional microservice for freechat to make the messaging system more transient' + ) + + parser.add_argument('-t', '--time-out', type=float, required=False) + parser.add_argument('-m', '--message-limit', type=int, required=False) + parser.add_argument('-r', '--remove' type=string, required=False, choices=['timeout', 'limit']) + + + args = vars(parser.parse_args()) + + limit = args['message_limit'] + timeout = args['time_out'] + + # timeout is given in days 30 => 30 day time limit + if limit: add_message_limit(limit) + if timeout: add_message_timeout(timeout) + + if args['remove']: + remove_opts = { + 'timeout': rm_message_timeout, + 'limit': rm_message_limit, + } + remove_opts[f]()