dbfunctions.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. from wbb import db
  2. from typing import Dict, List, Union
  3. notesdb = db.notes
  4. filtersdb = db.filters
  5. warnsdb = db.warns
  6. """ Notes functions """
  7. async def _get_notes(chat_id: int) -> Dict[str, int]:
  8. _notes = await notesdb.find_one({"chat_id": chat_id})
  9. _notes = {} if not _notes else _notes["notes"]
  10. return _notes
  11. async def save_note(chat_id: int, name: str, note: dict):
  12. name = name.lower()
  13. name = name.strip()
  14. _notes = await _get_notes(chat_id)
  15. _notes[name] = note
  16. await notesdb.update_one(
  17. {"chat_id": chat_id},
  18. {
  19. "$set": {
  20. "notes": _notes
  21. }
  22. },
  23. upsert=True
  24. )
  25. async def get_note_names(
  26. chat_id: int) -> List[str]: return [note for note in await _get_notes(chat_id)]
  27. async def get_note(chat_id: int, name: str) -> Union[bool, dict]:
  28. name = name.lower()
  29. name = name.strip()
  30. _notes = await _get_notes(chat_id)
  31. return _notes[name] if name in _notes else False
  32. async def delete_note(chat_id: int, name: str) -> bool:
  33. notesd = await _get_notes(chat_id)
  34. name = name.lower()
  35. name = name.strip()
  36. if name in notesd:
  37. del notesd[name]
  38. await notesdb.update_one(
  39. {"chat_id": chat_id},
  40. {
  41. "$set": {
  42. "notes": notesd
  43. }
  44. },
  45. upsert=True
  46. )
  47. return True
  48. return False
  49. """ Filters funcions """
  50. async def _get_filters(chat_id: int) -> Dict[str, int]:
  51. _filters = await filtersdb.find_one({"chat_id": chat_id})
  52. _filters = {} if not _filters else _filters["filters"]
  53. return _filters
  54. async def save_filter(chat_id: int, name: str, _filter: dict):
  55. name = name.lower()
  56. name = name.strip()
  57. _filters = await _get_filters(chat_id)
  58. _filters[name] = _filter
  59. await filtersdb.update_one(
  60. {"chat_id": chat_id},
  61. {
  62. "$set": {
  63. "filters": _filters
  64. }
  65. },
  66. upsert=True
  67. )
  68. async def get_filters_names(
  69. chat_id: int) -> List[str]: return [_filter for _filter in await _get_filters(chat_id)]
  70. async def get_filter(chat_id: int, name: str) -> Union[bool, dict]:
  71. name = name.lower()
  72. name = name.strip()
  73. _filters = await _get_filters(chat_id)
  74. return _filters[name] if name in _filters else False
  75. async def delete_filter(chat_id: int, name: str) -> bool:
  76. filtersd = await _get_filters(chat_id)
  77. name = name.lower()
  78. name = name.strip()
  79. if name in filtersd:
  80. del filtersd[name]
  81. await filtersdb.update_one(
  82. {"chat_id": chat_id},
  83. {
  84. "$set": {
  85. "filters": filtersd
  86. }
  87. },
  88. upsert=True
  89. )
  90. return True
  91. return False