| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- from wbb import db
- from typing import Dict, List, Union
- notesdb = db.notes
- filtersdb = db.filters
- warnsdb = db.warns
- """ Notes functions """
- async def _get_notes(chat_id: int) -> Dict[str, int]:
- _notes = await notesdb.find_one({"chat_id": chat_id})
- _notes = {} if not _notes else _notes["notes"]
- return _notes
- async def save_note(chat_id: int, name: str, note: dict):
- name = name.lower()
- name = name.strip()
- _notes = await _get_notes(chat_id)
- _notes[name] = note
- await notesdb.update_one(
- {"chat_id": chat_id},
- {
- "$set": {
- "notes": _notes
- }
- },
- upsert=True
- )
- async def get_note_names(
- chat_id: int) -> List[str]: return [note for note in await _get_notes(chat_id)]
- async def get_note(chat_id: int, name: str) -> Union[bool, dict]:
- name = name.lower()
- name = name.strip()
- _notes = await _get_notes(chat_id)
- return _notes[name] if name in _notes else False
- async def delete_note(chat_id: int, name: str) -> bool:
- notesd = await _get_notes(chat_id)
- name = name.lower()
- name = name.strip()
- if name in notesd:
- del notesd[name]
- await notesdb.update_one(
- {"chat_id": chat_id},
- {
- "$set": {
- "notes": notesd
- }
- },
- upsert=True
- )
- return True
- return False
- """ Filters funcions """
- async def _get_filters(chat_id: int) -> Dict[str, int]:
- _filters = await filtersdb.find_one({"chat_id": chat_id})
- _filters = {} if not _filters else _filters["filters"]
- return _filters
- async def save_filter(chat_id: int, name: str, _filter: dict):
- name = name.lower()
- name = name.strip()
- _filters = await _get_filters(chat_id)
- _filters[name] = _filter
- await filtersdb.update_one(
- {"chat_id": chat_id},
- {
- "$set": {
- "filters": _filters
- }
- },
- upsert=True
- )
- async def get_filters_names(
- chat_id: int) -> List[str]: return [_filter for _filter in await _get_filters(chat_id)]
- async def get_filter(chat_id: int, name: str) -> Union[bool, dict]:
- name = name.lower()
- name = name.strip()
- _filters = await _get_filters(chat_id)
- return _filters[name] if name in _filters else False
- async def delete_filter(chat_id: int, name: str) -> bool:
- filtersd = await _get_filters(chat_id)
- name = name.lower()
- name = name.strip()
- if name in filtersd:
- del filtersd[name]
- await filtersdb.update_one(
- {"chat_id": chat_id},
- {
- "$set": {
- "filters": filtersd
- }
- },
- upsert=True
- )
- return True
- return False
|