import os import psycopg import re from datetime import date from datetime import timedelta from pprint import pprint from dotenv import load_dotenv import model import test_suite import view if __name__ == '__main__': load_dotenv(verbose=True) cur = None try: conn = psycopg.connect(user=os.getenv('db_user'), password=os.getenv('db_password'), host=os.getenv('db_host'), port=os.getenv('db_port'), dbname=os.getenv('db_database')) cur = conn.cursor() query = model.get_events() results = model.database_select(cur, query) pprint(results) broadcast = [] for result in results: is_broadcast = model.is_broadcast(cur, result[0]) if not is_broadcast: news_text = '' if 'left the faction' in result[2] and result[4] == 'Monarch HQ': news_text = '<@&330154598151225354> ' news_text += '`'+result[3]+"`: "+result[2] text = model.create_links(news_text) text = model.escape_markdown(text) print(result[1]) print(text) view.broadcast(text) # experimental if 'has applied to join the faction' in result[2]: print('[experimental] new application') regex = re.compile(r'') match = regex.match(result[2]) regex = re.compile(r'>(.+)<\/>') member_name_match = regex.match(result[2]) member_name = '' if member_name_match: member_name = member_name_match.group(1) if match: new_member = match.group(1) print(f'new_member: {new_member}') # beautiful_table = test_suite.get_table(new_member, member_name) # print(beautiful_table) # view.broadcast(beautiful_table) pprint(result) model.record_broadcast(cur, result[0]) conn.commit() except (Exception, psycopg.Error) as error: print("PostgreSQL error from psycopg:", error)