view libervia/web/pages/chat/select/_browser/__init__.py @ 1597:c1c1d68d063e

pages (lists): uses std lib `json` and don't use anymore `DOMNODE`: those tricks are not needed anymore with recent versions of Brython.
author Goffi <goffi@goffi.org>
date Sun, 11 Feb 2024 21:32:53 +0100
parents c6976c5b85a1
children
line wrap: on
line source


from bridge import AsyncBridge as Bridge
from browser import console as log, document
from cache import cache
from jid_search import JidSearch

bridge = Bridge()
log.warning = log.warn


async def empty_search(jid_search):
    # FIXME: this is Q&D way to add bookmarks, a proper handling of joined room must be
    #   done
    items = [
        {
            "entity": jid_,
            "groups": data["groups"]
        }
        for jid_, data in cache.roster.items()
    ]
    bookmarks = await bridge.bookmarks_list("muc", "all")
    for bm_values in list(bookmarks.values()):
        for room_jid, room_data in bm_values.items():
            items.append({"entity": room_jid})
    jid_search.show_items(items)

jid_search = JidSearch(
    document["search"],
    document["chat_items"],
    empty_cb = empty_search
)