__init__.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # -*- coding: utf-8 -*-
  2. from sqlite3 import connect
  3. db = connect('landing_page.db')
  4. cur = db.cursor()
  5. cur.execute('''CREATE TABLE IF NOT EXISTS user (
  6. id INTEGER PRIMARY KEY AUTOINCREMENT,
  7. name TEXT NOT NULL,
  8. login TEXT NOT NULL,
  9. password TEXT NOT NULL,
  10. role INTEGER NOT NULL,
  11. access_token TEXT NOT NULL
  12. );''')
  13. cur.execute('''CREATE TABLE IF NOT EXISTS role (
  14. id INTEGER PRIMARY KEY AUTOINCREMENT,
  15. title TEXT NOT NULL
  16. );''')
  17. cur.execute('''CREATE TABLE IF NOT EXISTS event (
  18. id INTEGER PRIMARY KEY AUTOINCREMENT,
  19. author INTEGER NOT NULL,
  20. title TEXT NOT NULL,
  21. date INTEGER NOT NULL /* timestamp */
  22. );''')
  23. cur.execute('''CREATE TABLE IF NOT EXISTS event_user (
  24. id INTEGER PRIMARY KEY AUTOINCREMENT,
  25. user_id INTEGER NOT NULL,
  26. event_id INTEGER NOT NULL
  27. );''')
  28. db.commit()
  29. def default(table: str, max_size: int, values: dict[str, object]):
  30. t = cur.execute(f'SELECT * FROM {table}').fetchall()
  31. if len(t) < max_size:
  32. cur.execute(
  33. f'INSERT INTO {table} ({",".join(values.keys())}) VALUES ({",".join(["?" for i in values.keys()])});',
  34. tuple([i for i in values.values()])
  35. )
  36. db.commit()
  37. def defaults(table: str, *values: dict[str, object]):
  38. size = len(values)
  39. for i in values:
  40. default(table, size, i)
  41. defaults(
  42. 'role',
  43. {'title': 'Администратор'}, # id = 1
  44. {'title': 'Спикер'}, # id = 2
  45. {'title': 'Слушатель'}, # id = 3
  46. )