chore: remove listener dict (#2279)
This commit is contained in:
parent
dc7a6551c5
commit
decd4cdf0a
2 changed files with 2 additions and 30 deletions
|
|
@ -18,16 +18,13 @@ from lnbits.core.services import (
|
||||||
)
|
)
|
||||||
from lnbits.settings import get_wallet_class, settings
|
from lnbits.settings import get_wallet_class, settings
|
||||||
from lnbits.tasks import (
|
from lnbits.tasks import (
|
||||||
SseListenersDict,
|
|
||||||
create_permanent_task,
|
create_permanent_task,
|
||||||
create_task,
|
create_task,
|
||||||
register_invoice_listener,
|
register_invoice_listener,
|
||||||
send_push_notification,
|
send_push_notification,
|
||||||
)
|
)
|
||||||
|
|
||||||
api_invoice_listeners: Dict[str, asyncio.Queue] = SseListenersDict(
|
api_invoice_listeners: Dict[str, asyncio.Queue] = {}
|
||||||
"api_invoice_listeners"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def register_killswitch():
|
def register_killswitch():
|
||||||
|
|
|
||||||
|
|
@ -58,32 +58,7 @@ async def send_push_promise(a, b) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class SseListenersDict(dict):
|
invoice_listeners: Dict[str, asyncio.Queue] = {}
|
||||||
"""
|
|
||||||
A dict of sse listeners.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, name: Optional[str] = None):
|
|
||||||
self.name = name or f"sse_listener_{str(uuid.uuid4())[:8]}"
|
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
|
||||||
assert isinstance(key, str), f"{key} is not a string"
|
|
||||||
assert isinstance(value, asyncio.Queue), f"{value} is not an asyncio.Queue"
|
|
||||||
logger.trace(f"sse: adding listener {key} to {self.name}. len = {len(self)+1}")
|
|
||||||
return super().__setitem__(key, value)
|
|
||||||
|
|
||||||
def __delitem__(self, key):
|
|
||||||
logger.trace(f"sse: removing listener from {self.name}. len = {len(self)-1}")
|
|
||||||
return super().__delitem__(key)
|
|
||||||
|
|
||||||
_RaiseKeyError = object() # singleton for no-default behavior
|
|
||||||
|
|
||||||
def pop(self, key, v=_RaiseKeyError) -> None:
|
|
||||||
logger.trace(f"sse: removing listener from {self.name}. len = {len(self)-1}")
|
|
||||||
return super().pop(key)
|
|
||||||
|
|
||||||
|
|
||||||
invoice_listeners: Dict[str, asyncio.Queue] = SseListenersDict("invoice_listeners")
|
|
||||||
|
|
||||||
|
|
||||||
# TODO: name should not be optional
|
# TODO: name should not be optional
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue