From 93c1596ba84b907074e255c0ce0881d527f675b0 Mon Sep 17 00:00:00 2001 From: assada Date: Wed, 5 Jul 2023 15:53:17 +0300 Subject: [PATCH] design update and socket time to 2s --- logo.png | Bin 0 -> 3877 bytes testserver.py | 40 +++++++ webserver.html | 313 +++++++++++++++++++++++++++++++++++-------------- webserver.py | 2 +- 4 files changed, 266 insertions(+), 89 deletions(-) create mode 100644 logo.png create mode 100644 testserver.py diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..791b3b22f169aec1bedb1889c21de341bf7878df GIT binary patch literal 3877 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 Mpl3=h)}==O3ny2dr2qf` literal 0 HcmV?d00001 diff --git a/testserver.py b/testserver.py new file mode 100644 index 0000000..63bfa3a --- /dev/null +++ b/testserver.py @@ -0,0 +1,40 @@ +import argparse +import pathlib + +from aiohttp import web + +file = open(pathlib.Path(__file__).parent.absolute() / 'webserver.html', 'r') +contecnt = file.read() + + +async def handle_index(request): + return web.Response(content_type='text/html', text=contecnt) + + +async def handle_ws(request): + ws = web.WebSocketResponse() + await ws.prepare(request) + request.app.ws_clients.append(ws) + async for _ in ws: # noqa: WPS328 + pass + request.app.ws_clients.remove(ws) + return ws + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--bluetooth-mac', type=str, required=False, help='bluetooth MAC address of radiascan device') + parser.add_argument('--listen-host', type=str, required=False, default='0.0.0.0', help='listen host for webserver') + parser.add_argument('--listen-port', type=int, required=False, default=8080, help='listen port for webserver') + args = parser.parse_args() + + app = web.Application() + + + app.ws_clients = [] + + app.add_routes( + [ + web.get('/', handle_index) + ], + ) + web.run_app(app, host=args.listen_host, port=args.listen_port) \ No newline at end of file diff --git a/webserver.html b/webserver.html index 45f9563..6664b57 100644 --- a/webserver.html +++ b/webserver.html @@ -1,105 +1,218 @@ - - - - Kyiv Radioactive! - - - - - - - + + + + + + + Київ неРадіоактивний! Проект dead.guru + + + + + + + + + + + + + +
+
-

- неРадіоактивна ситуація в Києві. -

-

В реальному часі.

-
- Використовуйте ландшавтну орієнтацію екрану для зручного перегляду. Або планшет чи компьютер. -
+ +
-
+
+ + Використовуйте ландшафтну орієнтацію екрану для зручного перегляду. Ще краще — планшет чи комп'ютер. +
+
- +
- До 0,3 мк3в/г - нормальний радіаційний фон. -

- Швидкість дози в мікрозівертах на годину вказує, скільки мікрозівертів (одиниця виміру еквівалентної дози) радіації поглинається організмом або матеріалом за одну годину. Ця величина може використовуватися для оцінки рівня радіаційного впливу на людей, а також для моніторингу і контролю радіаційної безпеки в радіаційних зонах, ядерних установках або природному середовищі. -

-

- Наприклад, якщо швидкість дози становить 10 μSv/h, це означає, що організм або матеріал отримує дозу 10 мікрозівертів радіації за кожну годину. Це може вказувати на наявність джерела радіації в цьому місці або на необхідність заходів з радіаційного захисту. -

+ До 0,3 мк3в/г — нормальний радіаційний фон. +

+ Швидкість дози в мікрозівертах на годину вказує, скільки мікрозівертів (одиниця виміру еквівалентної дози) + радіації поглинається організмом або матеріалом за одну годину. Ця величина може використовуватися для + оцінки рівня радіаційного впливу на людей, а також для моніторингу і контролю радіаційної безпеки в + радіаційних зонах, ядерних установках або природному середовищі. +

+

+ Наприклад, якщо швидкість дози становить 10 μSv/h, це означає, що організм або матеріал отримує дозу 10 + мікрозівертів радіації за кожну годину. Це може вказувати на наявність джерела радіації в цьому місці або на + необхідність заходів з радіаційного захисту. +

+
+
+ +
+
+ + +
+
+ + + + + +
+
+ + + + +
-
- -
-
- - -
-
- - - - - -
-
- - - - -
-
- -
+ +
-

(Частина проекту dead.guru)

+
+
+
+

Важливо зазначити що явище радіоактивності не можна застосувати(вживати в контексті) до міста. Прочитати більше можна на Вікі!

+

+ Частина проекту dead.guru. Код ліцензований + MIT. Вміст сайту + має ліцензію CC BY NC SA 4.0. +

+
+
- + + + \ No newline at end of file diff --git a/webserver.py b/webserver.py index cb47d1e..f21e1e1 100644 --- a/webserver.py +++ b/webserver.py @@ -78,7 +78,7 @@ async def process(app): ) print(f'Rates updated, sending to {len(app.ws_clients)} connected clients') try: - await asyncio.gather(*[ws.send_str(jdata) for ws in app.ws_clients], asyncio.sleep(1.0)) + await asyncio.gather(*[ws.send_str(jdata) for ws in app.ws_clients], asyncio.sleep(2.0)) except Exception as e: print(f'Error while sending to websocket: {e}')