Update app.py
Browse files
app.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
from flask import Flask, render_template, request, jsonify
|
| 2 |
import json
|
| 3 |
-
from pywebpush import webpush
|
| 4 |
from py_vapid import VAPID
|
| 5 |
|
| 6 |
app = Flask(__name__)
|
|
@@ -316,45 +316,3 @@ if __name__ == '__main__':
|
|
| 316 |
</body>
|
| 317 |
</html>
|
| 318 |
"""
|
| 319 |
-
|
| 320 |
-
# Создайте папку 'static' и файлы 'manifest.json' и 'service-worker.js' внутри нее
|
| 321 |
-
# static/manifest.json:
|
| 322 |
-
"""
|
| 323 |
-
{
|
| 324 |
-
"name": "PWA Новости",
|
| 325 |
-
"short_name": "Новости",
|
| 326 |
-
"start_url": "/",
|
| 327 |
-
"display": "standalone",
|
| 328 |
-
"background_color": "#fff",
|
| 329 |
-
"theme_color": "#007bff"
|
| 330 |
-
}
|
| 331 |
-
"""
|
| 332 |
-
|
| 333 |
-
# static/service-worker.js:
|
| 334 |
-
"""
|
| 335 |
-
self.addEventListener('push', event => {
|
| 336 |
-
const message = event.data.text();
|
| 337 |
-
const title = 'Новая новость!';
|
| 338 |
-
const options = {
|
| 339 |
-
body: message,
|
| 340 |
-
icon: '/static/no-icon.png' // Путь к иконке (можно заменить на no-icon.png в static или убрать если не нужна иконка)
|
| 341 |
-
};
|
| 342 |
-
|
| 343 |
-
event.waitUntil(self.registration.showNotification(title, options));
|
| 344 |
-
|
| 345 |
-
// Отправляем сообщение клиенту (странице) о получении push уведомления
|
| 346 |
-
self.clients.matchAll({ type: 'window' }).then(clients => {
|
| 347 |
-
clients.forEach(client => {
|
| 348 |
-
client.postMessage({ type: 'push-received', message: message });
|
| 349 |
-
});
|
| 350 |
-
});
|
| 351 |
-
});
|
| 352 |
-
|
| 353 |
-
self.addEventListener('notificationclick', event => {
|
| 354 |
-
event.notification.close();
|
| 355 |
-
event.waitUntil(clients.openWindow('/')); // Открываем главное окно при клике на уведомление
|
| 356 |
-
});
|
| 357 |
-
"""
|
| 358 |
-
|
| 359 |
-
# Создайте пустой файл 'news.json' и 'subscriptions.json' в корне проекта, если их еще нет.
|
| 360 |
-
# Они будут созданы автоматически при первом запуске, если их нет.
|
|
|
|
| 1 |
from flask import Flask, render_template, request, jsonify
|
| 2 |
import json
|
| 3 |
+
from pywebpush import webpush
|
| 4 |
from py_vapid import VAPID
|
| 5 |
|
| 6 |
app = Flask(__name__)
|
|
|
|
| 316 |
</body>
|
| 317 |
</html>
|
| 318 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|