├── .dockerignore ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .python-version ├── Dockerfile ├── LICENSE ├── Makefile ├── Procfile ├── README.md ├── app.json ├── fly.toml ├── pyproject.toml ├── requirements.txt ├── static ├── demo.gif └── warning.png ├── telegram_bot ├── __init__.py ├── app.py ├── controllers │ ├── __init__.py │ ├── meta.py │ ├── release.py │ └── webhook.py ├── cron │ ├── __init__.py │ ├── cron.py │ └── tasks.py ├── database │ ├── __init__.py │ ├── crud.py │ ├── database.py │ ├── models.py │ └── schemas.py ├── dependencies.py ├── intergration │ ├── __init__.py │ ├── dingding │ │ ├── __init__.py │ │ └── dingbot.py │ ├── exceptions.py │ ├── http │ │ ├── __init__.py │ │ ├── base_http_client.py │ │ ├── httpx_client.py │ │ └── request_http_client.py │ ├── location │ │ ├── __init__.py │ │ └── he_location_client.py │ └── weather │ │ ├── __init__.py │ │ ├── base_weather_client.py │ │ ├── const.py │ │ ├── he_weather_client.py │ │ ├── models │ │ ├── __init__.py │ │ ├── he_weather_model.py │ │ └── warn_model.py │ │ └── wttr_weather_client.py ├── service │ ├── __init__.py │ ├── dingtalk.py │ └── telegram.py ├── settings.py ├── telegram │ ├── __init__.py │ ├── add_location.py │ ├── add_qweather_api_key.py │ ├── bot.py │ ├── callbacks.py │ ├── dispatcher.py │ ├── exception.py │ ├── keyboard │ │ ├── __init__.py │ │ └── keyboard_markup_factory.py │ ├── update_dingbot.py │ └── update_location.py ├── tests │ ├── __init__.py │ ├── test_app.py │ └── test_weather_warning.py └── utils │ ├── __init__.py │ ├── date_util.py │ ├── exceptions.py │ └── retry_util.py └── uv.lock /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/.gitignore -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.9 2 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/Makefile -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/Procfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/README.md -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/app.json -------------------------------------------------------------------------------- /fly.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/fly.toml -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/requirements.txt -------------------------------------------------------------------------------- /static/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/static/demo.gif -------------------------------------------------------------------------------- /static/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/static/warning.png -------------------------------------------------------------------------------- /telegram_bot/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | -------------------------------------------------------------------------------- /telegram_bot/app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/app.py -------------------------------------------------------------------------------- /telegram_bot/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/controllers/meta.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/controllers/meta.py -------------------------------------------------------------------------------- /telegram_bot/controllers/release.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/controllers/release.py -------------------------------------------------------------------------------- /telegram_bot/controllers/webhook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/controllers/webhook.py -------------------------------------------------------------------------------- /telegram_bot/cron/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/cron/__init__.py -------------------------------------------------------------------------------- /telegram_bot/cron/cron.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/cron/cron.py -------------------------------------------------------------------------------- /telegram_bot/cron/tasks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/cron/tasks.py -------------------------------------------------------------------------------- /telegram_bot/database/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/database/crud.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/database/crud.py -------------------------------------------------------------------------------- /telegram_bot/database/database.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/database/database.py -------------------------------------------------------------------------------- /telegram_bot/database/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/database/models.py -------------------------------------------------------------------------------- /telegram_bot/database/schemas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/database/schemas.py -------------------------------------------------------------------------------- /telegram_bot/dependencies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/dependencies.py -------------------------------------------------------------------------------- /telegram_bot/intergration/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/__init__.py -------------------------------------------------------------------------------- /telegram_bot/intergration/dingding/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/intergration/dingding/dingbot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/dingding/dingbot.py -------------------------------------------------------------------------------- /telegram_bot/intergration/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/exceptions.py -------------------------------------------------------------------------------- /telegram_bot/intergration/http/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/intergration/http/base_http_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/http/base_http_client.py -------------------------------------------------------------------------------- /telegram_bot/intergration/http/httpx_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/http/httpx_client.py -------------------------------------------------------------------------------- /telegram_bot/intergration/http/request_http_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/http/request_http_client.py -------------------------------------------------------------------------------- /telegram_bot/intergration/location/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/intergration/location/he_location_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/location/he_location_client.py -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/base_weather_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/weather/base_weather_client.py -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/const.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/weather/const.py -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/he_weather_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/weather/he_weather_client.py -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/models/he_weather_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/weather/models/he_weather_model.py -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/models/warn_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/weather/models/warn_model.py -------------------------------------------------------------------------------- /telegram_bot/intergration/weather/wttr_weather_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/intergration/weather/wttr_weather_client.py -------------------------------------------------------------------------------- /telegram_bot/service/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/service/dingtalk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/service/dingtalk.py -------------------------------------------------------------------------------- /telegram_bot/service/telegram.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/service/telegram.py -------------------------------------------------------------------------------- /telegram_bot/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/settings.py -------------------------------------------------------------------------------- /telegram_bot/telegram/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/__init__.py -------------------------------------------------------------------------------- /telegram_bot/telegram/add_location.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/add_location.py -------------------------------------------------------------------------------- /telegram_bot/telegram/add_qweather_api_key.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/add_qweather_api_key.py -------------------------------------------------------------------------------- /telegram_bot/telegram/bot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/bot.py -------------------------------------------------------------------------------- /telegram_bot/telegram/callbacks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/callbacks.py -------------------------------------------------------------------------------- /telegram_bot/telegram/dispatcher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/dispatcher.py -------------------------------------------------------------------------------- /telegram_bot/telegram/exception.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/exception.py -------------------------------------------------------------------------------- /telegram_bot/telegram/keyboard/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/telegram/keyboard/keyboard_markup_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/keyboard/keyboard_markup_factory.py -------------------------------------------------------------------------------- /telegram_bot/telegram/update_dingbot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/update_dingbot.py -------------------------------------------------------------------------------- /telegram_bot/telegram/update_location.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/telegram/update_location.py -------------------------------------------------------------------------------- /telegram_bot/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /telegram_bot/tests/test_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/tests/test_app.py -------------------------------------------------------------------------------- /telegram_bot/tests/test_weather_warning.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/tests/test_weather_warning.py -------------------------------------------------------------------------------- /telegram_bot/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /telegram_bot/utils/date_util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/utils/date_util.py -------------------------------------------------------------------------------- /telegram_bot/utils/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/utils/exceptions.py -------------------------------------------------------------------------------- /telegram_bot/utils/retry_util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/telegram_bot/utils/retry_util.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daya0576/he-weather-bot/HEAD/uv.lock --------------------------------------------------------------------------------