mirror of https://github.com/uriel1998/weather.sh
parent
14a3e30d57
commit
7759fc9fec
@ -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/ |
@ -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. |
@ -0,0 +1 @@ |
|||||||
|
theme: jekyll-theme-midnight |
@ -0,0 +1,74 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html lang="{{ site.lang | default: "en-US" }}"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||||
|
|
||||||
|
{% seo %} |
||||||
|
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}"> |
||||||
|
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> |
||||||
|
<script src="{{ '/assets/js/respond.js' | relative_url }}"></script> |
||||||
|
<!--[if lt IE 9]> |
||||||
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> |
||||||
|
<![endif]--> |
||||||
|
<!--[if lt IE 8]> |
||||||
|
<link rel="stylesheet" href="{{ '/assets/css/ie.css' | relative_url }}"> |
||||||
|
<![endif]--> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> |
||||||
|
|
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div id="header"> |
||||||
|
<nav style="margin: 0 auto;"> |
||||||
|
<li class="fork" style="margin-left: 5px !important;margin-right: 5px !important;"><a href="{{ site.github.repository_url }}" target="_blank">View On GitHub</a></li> |
||||||
|
<li class="fork" style="margin-left: 5px !important;margin-right: 5px !important;"><a href="https://gitlab.com/uriel1998/{{ site.github.repository_name }}" target="_blank">View On GitLab</a></li> |
||||||
|
<li class="fork" style="margin-left: 5px !important;margin-right: 5px !important;"><a href="https://git.faithcollapsing.com/{{ site.github.repository_name }}" target="_blank">View On My Git</a></li> |
||||||
|
{% if site.show_downloads %} |
||||||
|
<li class="downloads"><a href="{{ site.github.zip_url }}">ZIP</a></li> |
||||||
|
<li class="downloads"><a href="{{ site.github.tar_url }}">TAR</a></li> |
||||||
|
<li class="title">DOWNLOADS</li> |
||||||
|
{% endif %} |
||||||
|
</nav> |
||||||
|
</div><!-- end header --> |
||||||
|
<div class="wrapper"> |
||||||
|
<section> |
||||||
|
<div id="title"> |
||||||
|
<h1>{{ site.title | default: site.github.repository_name }}</h1> |
||||||
|
<p>{{ site.description | default: site.github.project_tagline }}</p> |
||||||
|
<hr> |
||||||
|
<span class="credits left">Project maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></span> |
||||||
|
<span class="credits right">Hosted on GitHub Pages — Theme by <a href="https://twitter.com/mattgraham">mattgraham</a></span> |
||||||
|
</div> |
||||||
|
|
||||||
|
{{ content }} |
||||||
|
|
||||||
|
</section> |
||||||
|
<hr /> |
||||||
|
<p><a href="https://uriel1998.github.io/" target="_blank">Steven Saus</a> injects people with radioactivity for his day job, but only to serve the forces of good.<br />Mostly.</p> |
||||||
|
<div style="margin: 0 auto;"> |
||||||
|
<a href="http://feeds.feedburner.com/Ideatrash" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/rss-solid.svg"></a> |
||||||
|
<a href="https://faithcollapsing.com/users/StevenSaus" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/mastodon.svg"></a> |
||||||
|
<a href="http://www.facebook.com/pages/Steven-Saus/328725503674" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/facebook-f.svg"></a> |
||||||
|
<a href="http://www.twitter.com/uriel1998" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/twitter.svg"></a> |
||||||
|
<a href="https://www.instagram.com/uriel1998/" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/instagram.svg"></a> |
||||||
|
<a href="http://www.goodreads.com/author/show/3145527.Steven_Saus" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/goodreads.svg"></a> |
||||||
|
<a href="https://git.faithcollapsing.com" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/git.svg"></a> |
||||||
|
<a href="https://github.com/uriel1998" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/github.svg"></a> |
||||||
|
<a href="https://gitlab.com/uriel1998" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/gitlab.svg"></a> |
||||||
|
<a href="http://www.linkedin.com/in/stevensaus" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/linkedin-in.svg"></a> |
||||||
|
<a href="https://www.amazon.com/author/stevensaus" target="_blank"><img width=32px height=32px src="https://raw.githubusercontent.com/uriel1998/uriel1998/main/icons/amazon.svg"></a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
{% if site.google_analytics %} |
||||||
|
<script> |
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); |
||||||
|
ga('create', '{{ site.google_analytics }}', 'auto'); |
||||||
|
ga('send', 'pageview'); |
||||||
|
</script> |
||||||
|
{% endif %} |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,15 @@ |
|||||||
|
--- |
||||||
|
--- |
||||||
|
|
||||||
|
@import "{{ site.theme }}"; |
||||||
|
|
||||||
|
#header { |
||||||
|
margin: 0 auto !important; |
||||||
|
} |
||||||
|
|
||||||
|
#header > nav { |
||||||
|
margin: 0 auto; |
||||||
|
background: none !important; |
||||||
|
} |
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 25 KiB |
Loading…
Reference in new issue