database.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import mysql.connector
  2. from bot import config as conf
  3. class Database:
  4. def __init__(self):
  5. self.connection = mysql.connector.connect(host=conf.DB_HOST,
  6. user=conf.DB_USER,
  7. password=conf.DB_PASS,
  8. database=conf.DB_NAME)
  9. self.cursor = self.connection.cursor(dictionary=True)
  10. def cursor(self):
  11. return self.cursor
  12. def commit(self):
  13. self.connection.commit()
  14. def close(self, commit=True):
  15. if commit:
  16. self.commit()
  17. self.connection.close()
  18. def fetchone(self):
  19. return self.cursor.fetchone()
  20. def fetchall(self):
  21. return self.cursor.fetchall()
  22. def execute(self, sql, params=None):
  23. return self.cursor.execute(sql, params or ())
  24. def sql_simple_check(self, sql: str):
  25. self.execute(sql)
  26. response = self.fetchone()
  27. if response is None:
  28. return False
  29. else:
  30. for v in response.values():
  31. return v
  32. def sql_parse_users(self, sql: str):
  33. self.execute(sql)
  34. result_set = self.fetchall()
  35. users_list = []
  36. if len(result_set) == 0:
  37. return False
  38. elif len(result_set) > 0:
  39. for row in result_set:
  40. users_data = {"ID": row['id'], "ФИО": row['name'], "Номер телефона": row['phone']}
  41. users_list.append(users_data)
  42. return users_list
  43. def sql_parse_user_events(self, sql: str):
  44. self.execute(sql)
  45. result_set = self.fetchall()
  46. events_list = []
  47. if len(result_set) == 0:
  48. return False
  49. elif len(result_set) > 0:
  50. for row in result_set:
  51. event_data = f"Описание {row['description']}\n Дата {row['dat']}"
  52. events_list.append(event_data)
  53. return events_list
  54. def sql_parse_all_events(self, sql: str):
  55. self.execute(sql)
  56. result_set = self.fetchall()
  57. events_list = []
  58. if len(result_set) == 0:
  59. return False
  60. elif len(result_set) > 0:
  61. for row in result_set:
  62. event_data = {"Описание": row['description'],
  63. "Инициатор": row['name'],
  64. "Дата": row['dat']}
  65. events_list.append(event_data)
  66. return events_list
  67. def sql_query_send(self, sql: str):
  68. self.execute(sql)
  69. self.commit()
  70. self.close()
  71. db = Database()
  72. # data = Db.sql_simple_check("select tg_id from user_table where tg_id = 338836490 and approved = 0")
  73. # data = Db.sql_simple_check(simple_select(columns="tg_id", table="user_table", tg_id='338836490', approved='0'))
  74. # print(data)