[FEAT] Push notification integration into core (#1393)

* push notification integration into core

added missing component

fixed bell working on all pages
- made pubkey global template env var
- had to move `get_push_notification_pubkey` to `helpers.py` because of circular reference with `tasks.py`

formay

trying to fix mypy

added py-vapid to requirements

Trying to fix stub mypy issue

* removed key files

* webpush key pair is saved in db `webpush_settings`

* removed lnaddress extension changes

* support for multi user account subscriptions, subscriptions are stored user based

fixed syntax error

fixed syntax error

removed unused line

* fixed subscribed user storage with local storage, no get request required

* method is singular now

* cleanup unsubscribed or expired push subscriptions

fixed flake8 errors

fixed poetry errors

* updating to latest lnbits

formatting, rebase error

fix

* remove unused?

* revert

* relock

* remove

* do not create settings table use adminsettings

mypy

fix

* cleanup old code

* catch case when client tries to recreate existing webpush subscription e.g. on cleared local storage

* show notification bell on user related pages only

* use local storage with one key like array, some refactoring

* fixed crud import

* fixed too long line

* removed unused imports

* ruff

* make webpush editable

* fixed privkey encoding

* fix ruff

* fix migration

---------

Co-authored-by: schneimi <admin@schneimi.de>
Co-authored-by: schneimi <dev@schneimi.de>
Co-authored-by: dni  <office@dnilabs.com>
This commit is contained in:
schneimi 2023-09-11 15:48:49 +02:00 committed by GitHub
parent 8f0c1f6a80
commit fb98576431
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 571 additions and 21 deletions

View file

@ -34,6 +34,7 @@ async-timeout = "4.0.2"
pyln-client = "23.8"
cashu = "0.9.0"
slowapi = "^0.1.7"
pywebpush = "^1.14.0"
[tool.poetry.group.dev.dependencies]
pytest = "^7.1.2"
@ -91,6 +92,8 @@ module = [
"psycopg2.*",
"pyngrok.*",
"pyln.client.*",
"py_vapid.*",
"pywebpush.*",
]
ignore_missing_imports = "True"