diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..333276e --- /dev/null +++ b/.gitignore @@ -0,0 +1,176 @@ +# reference, old shit +1_reference/ + +# macOS Junks +.DS_Store + +# VSCode Junks +.vscode +.vscode/* + +# Microsoft Office Junks +~$*.* + +# C/C++ Junks +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# Python Junks +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST +share/ +bin/ +bin/* +include/ +include/* + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don’t work, or not +# install all needed dependencies. +Pipfile.lock + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..4d8a50a --- /dev/null +++ b/docs/README.md @@ -0,0 +1,117 @@ +# weather.sh and forecast.sh +A bash script to get the weather and forecast from OpenWeatherMap and output +to the terminal, Openbox, or HTML + +![Output example](https://raw.githubusercontent.com/uriel1998/weather.sh/master/example_output.png "Example output") + +## Contents + 1. [About](#1-about) + 2. [License](#2-license) + 3. [Prerequisites](#3-prerequisites) + 4. [How to use](#4-how-to-use) + 5. [TODO](#5-todo) + +*** + +## 1. About + +Weather report written in Bash. + +`weather.sh` gets the current weather from +[OpenWeatherMap](http://openweathermap.org/) and displays the +results to the terminal, HTML, or for an OpenBox pipe menu. It will +calculate (if appropriate) the "feel like" weather by calculating the +wind chill or heat index. A great deal of basis for this script comes +from [BashWeather](https://github.com/jdotjdot/BashWeather), +[bash-weather](https://github.com/szantaii/bash-weather), +and many more that I forgot to save the URLs of. + +`forecast.sh` gets the forecast from [OpenWeatherMap](http://openweathermap.org/) +and likewise displays the results. OpenWeatherMap forecasts are at three hour +intervals (0800, 1100, 1400, etc). It displays all forecasts for the next +twenty four hours, then displays the closest time forecast for the day after +that. For example, if it's 1136 (as I'm writing this) it shows all forecasts +through the 1100 forecast the next day, then the 1100 forecast for each +subsequent day. Options and `.rc` file are *the same* as for `weather.sh`. + +If you wish to show both together, simply execute: + +`weather.sh && forecast.sh` + +## 2. License + +This project is licensed under the MIT license. For the full license, see `LICENSE`. + +## 3. Prerequisites + + * OpenWeatherMap API key ([http://openweathermap.org/appid](http://openweathermap.org/appid)). + * Bash shell ≥ 4.2. + * `bc` basic calculator for floating point arithmetic. Can be found in the + `bc` package on major Linux distributions. + * `curl` command-line tool for getting data using HTTP protocol. cURL can be + found in the `curl` package on major Linux distributions. + * `grep` command-line tool used for parsing downloaded XML data. `grep` can + be found in the `grep` package on major Linux distributions. + * `jq` command-line tool for parsing JSON data. `jq` can be found in the `jq` + package on major Linux distributions. + * `tr` command-line tool for parsing JSON data. `tr` can be found in the `tr` + package on major Linux distributions. + * `awk` command-line tool for parsing JSON data. `awk` can be found in the + `awk` package on major Linux distributions. + +Optional: For colors in terminal, save `bashcolors` in this repository to +`.bashcolors` in your `$HOME` directory. + +## 4. How to use + +Run `weather.sh` or `forecast.sh` with the appropriate commandline switches +(below). If the current conditions do not qualify for the heat index or wind +chill, it is not displayed. + +### weather_sh.rc + +Copy (and edit, as appropriate) the `weather_sh.rc` file to `$HOME\.config\weather_sh.rc`. +* The first line is the OpenWeatherMap API key +* The second line is your default location. (See note below) +* The third line is your default degree character (either `c` or `f`) +* The fourth line is True or False depending on whether or not you want icons displayed for the weather. + +### Command-line options + +`weather.sh` and `forecast.sh` can be started with the following command line +options: + + * `-k` Specifies OpenWeatherMap API key from the command-line. + * `-l city_name` Sets the city for manual weather lookup. (see note below) + * `-t` Output to the terminal/stdout (default if no output is specified) + * `-h` Output HTML formatted text + * `-o` Output OpenBox output + * `-y` Output Conky format (no icons) + * `-f` Use imperial (farenheit, inches Hg, mph) units; default is metric + * `-c` Use colored output in the terminal if `.bashcolors` is in the home + dir. Note that if you want to alter the colors, you will have to manually + alter the script. + +_Note: If the OpenWeatherMap API key is specified from the command-line, it +will override the API key set in the file._ + +_Note: It is **STRONGLY** recommended to use the City ID from OpenWeatherMap +instead of a city name. Instructions on finding your city's City ID +[here](https://www.dmopress.com/openweathermap-howto/) ._ + + +### Calling from Conky + +I have a single line config for my secondary screen with the weather config +in it: + +`Now: ${execi 300 weather.sh -y} Forecast: ${execi 300 forecast.sh -y}` + +The conky output is currently limited via code to just the next five outputs. + +## 5. Todo + + * Add in sunrise/sunset + * HTML colored output + * Current location instead of hardcoded + - this is problematic due to the way the API looks up city names. diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..1885487 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-midnight \ No newline at end of file diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100644 index 0000000..2c2d9a7 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,74 @@ + + + + + + +{% seo %} + + + + + + + + + + +
+
+
+

{{ site.title | default: site.github.repository_name }}

+

{{ site.description | default: site.github.project_tagline }}

+
+ Project maintained by {{ site.github.owner_name }} + Hosted on GitHub Pages — Theme by mattgraham +
+ + {{ content }} + +
+
+

Steven Saus injects people with radioactivity for his day job, but only to serve the forces of good.
Mostly.

+
+ + + + + + + + + + + +
+
+ + {% if site.google_analytics %} + + {% endif %} + + diff --git a/docs/assets/css/style.css b/docs/assets/css/style.css new file mode 100644 index 0000000..f0784ef --- /dev/null +++ b/docs/assets/css/style.css @@ -0,0 +1,15 @@ +--- +--- + +@import "{{ site.theme }}"; + +#header { +margin: 0 auto !important; +} + +#header > nav { + margin: 0 auto; + background: none !important; +} + + diff --git a/weather-icon.png b/weather-icon.png new file mode 100644 index 0000000..0e555f2 Binary files /dev/null and b/weather-icon.png differ