main.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import os
  2. import psycopg
  3. import re
  4. from datetime import date
  5. from datetime import timedelta
  6. from pprint import pprint
  7. from dotenv import load_dotenv
  8. import model
  9. import test_suite
  10. import view
  11. if __name__ == '__main__':
  12. load_dotenv(verbose=True)
  13. cur = None
  14. try:
  15. conn = psycopg.connect(user=os.getenv('db_user'),
  16. password=os.getenv('db_password'),
  17. host=os.getenv('db_host'),
  18. port=os.getenv('db_port'),
  19. dbname=os.getenv('db_database'))
  20. cur = conn.cursor()
  21. query = model.get_events()
  22. results = model.database_select(cur, query)
  23. pprint(results)
  24. broadcast = []
  25. for result in results:
  26. is_broadcast = model.is_broadcast(cur, result[0])
  27. if not is_broadcast:
  28. news_text = ''
  29. if 'left the faction' in result[2] and result[4] == 'Monarch HQ':
  30. news_text = '<@&330154598151225354> '
  31. news_text += '`'+result[3]+"`: "+result[2]
  32. text = model.create_links(news_text)
  33. text = model.escape_markdown(text)
  34. print(result[1])
  35. print(text)
  36. view.broadcast(text)
  37. # experimental
  38. if 'has applied to join the faction' in result[2]:
  39. print('[experimental] new application')
  40. regex = re.compile(r'<a href = "?https?://www\.torn\.com/profiles\.php\?XID=(\d+)"?>')
  41. match = regex.match(result[2])
  42. regex = re.compile(r'>(.+)<\/>')
  43. member_name_match = regex.match(result[2])
  44. member_name = ''
  45. if member_name_match:
  46. member_name = member_name_match.group(1)
  47. if match:
  48. new_member = match.group(1)
  49. print(f'new_member: {new_member}')
  50. # beautiful_table = test_suite.get_table(new_member, member_name)
  51. # print(beautiful_table)
  52. # view.broadcast(beautiful_table)
  53. pprint(result)
  54. model.record_broadcast(cur, result[0])
  55. conn.commit()
  56. except (Exception, psycopg.Error) as error:
  57. print("PostgreSQL error from psycopg:", error)