database.py 2.4 KB

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