Simple weather app made with Python and QtDesigner.
The app is considered an open-source project, so feel free to modify and share Bebther as long as you attribute the original authors
- Shows weather info for different regions from different weather providers
- Get and compare weather info between two days or regions
- Save current weather info to the DataBase to compare it with the next day's weather
- Open a screenshot-ready window containing weather info to share it with your friends
- Add your own weather providers using a unique modular system
- General unstability
- Autorun being unstable sometimes
- Autorun not working on Python 2:
Python's system alias is
python
for Python 3 andpy
for Python 2, so the batch file tries to run non-existent for Win7python
comandlet. - UI freezing upon parsing data
- AccuWeather parser failing to parse data
AccuWeather's API has a 60 requests per day limit, so it doesn't return anything when the limit is exceeded
The Bebther application has a unique modular system allowing users to install or create their own parsers.
- Download the parser file from any resource you trust
Be advised that the Python language allows the parser's developer perform any operations they want with your OS
Parser file's name should end withParser.py
. example: owmParser.py - Put the file in the
./Parsers/
folder - Update the application's parsers list either using the UI button or by restarting the application
- Your new parser should show up in the parsers list in the application
The Bebther application has a unique modular system allowing users to install or create their own parsers.
- Create a python file in a
./Parsers/
directoryIMPORTANT: the file's name should end with
Parser.py
, example: owmParser.py - Create a class called
Parser
and inherit baseParser so it would be easier to follow the data type - Create a parser information fields in your parser class
Bold are neccessary
[str]
name - parsed resource's name, will be shown in the UI[str]
description - short description of the parser or the parsed resource[str]
url - link to the parsed resource's website[str]
apikey - parsed resource's API key if needed
[str]
getCity(cityName: str) - takescity name
and returns itslocation ID
[dict]
getData()(location_key: str) - takeslocation ID
string and returnsformatted data dictionary
- Create a
getCity
method that will take a city name and return a location ID that suits for your parser - Create a
getData
method that will return a formatted dictionary of weather dataPLEASE FOLLOW THE DATA FORMAT
- Temperature
- Humidity
- WindSpeed
- Pressure
- UVIndex
- DayTemperature
- NightTemperature
- SunriseTime
- SunsetTime
- Update the application's parsers list either using the UI button or by restarting the application
- Your parser should show up in the parsers list in application's UI
Feel free to share your parser in any possible way
All icons belong to flaticon
Barometer by Those Icons
Drop by Good Ware
Night-mode by rsetiawan
Sunny by kosonicon
Sunrise by Secret Studio
Sunset by Nikita Golubev
Ultraviolet by Freepik
Wind by Freepik
Diskette by Yogi Aprelliyanto
Reset by inkubators
Thanks to all creators listed above for their work and letting us use their materials free of charge
Created in terms of Yandex Lyceum pyQt project