🌤 Track the weather for event days

Related tags

Cryptography wed
Overview

Weather on the Event Day Tests Linters

wed's idea is to automate something I do pretty often: once I register for a run or triathlon event, I frequently check the city's weather forecast for the race's date and time in the previous days.

Requirements

You will need an OpenWeather API key as en environment variable called OPEN_WEATHER_API_KEY.

Use cases

Try wed --help.

Query a date and time followed by a location

Run wed with two arguments:

$ wed --when "2022-07-09 09:00" --location "Ottawa, ON"
🌤 26°C (feels like 27°C)  ☔ 40% chance of rain & 10% humidity 💨 4.2 km/h W

Or with a JSON output:

$ wed --when "2022-07-09 09:00" --location "Ottawa, ON" --json
{
    "temperature": 26,
    "feels_like": 27,
    "chance_of_rain": 0.4,
    "humidity": 0.1,
    "wind_speed": 4.2,
    "wind_direction": "W",
    "description": "scattered clouds",
}

Save an event

Run wed with three arguments:

$ wed --name "National Capital Triathlon" --when "2022-07-09 09:00" --location "Ottawa, ON, Canada"

Query saved events

Run wed with no arguments:

$ wed
🗓 National Capital Triathlon (Jul 7, 09:00) 🌐 Ottawa, ON, Canada
🌤 26°C (feels like 27°C) ☔ 40% chance of rain & 10% humidity 💨 4.2 km/h W

Or with a JSON output:

$ wed --json
[
    {
        "name": "National Capital Triathlon",
        "when": "2022-07-09 09:00:00",
        "location": "Ottawa, ON, Canada",
        "weather": {
            "temperature": 26,
            "feels_like": 27,
            "chance_of_rain": 0.4,
            "humidity": 0.1,
            "wind_speed": 4.2,
            "wind_direction": "W",
            "description": "scattered clouds",
        }
    }
]

Data sources

  • Convertion of location (city/country) to a latitude and longitude: Nominatin
  • Weather forecast:
    • If t - 5 days: 3h forecast
    • There are other endpoints (hourly closer to the event, daily up to 30 days from the event), but since they are paid, wed doesn't use them

Data management and persistence

  • The app automaticaly deletes past events when the app is run
  • The app igonres events that are more than 5 days ahead
  • Data is persisted in simple file ~/.wed
You might also like...
Simple daemon built with Rust to track metrics.

Marvin - Metrics Tracker What I cannot create, I do not understand. — Richard Feynman Simple daemon built with Rust to track metrics. The goal is run

fast rust implementation of online nonnegative matrix factorization as laid out in the paper "detect and track latent factors with online nonnegative matrix factorization"

ONMF status: early work in progress. still figuring this out. code still somewhat messy. api still in flux. fast rust implementation of online nonnega

Deadliner helps you keep track of the time left for your deadline by dynamically updating the wallpaper of your desktop with the time left.
Deadliner helps you keep track of the time left for your deadline by dynamically updating the wallpaper of your desktop with the time left.

Deadliner Watch the YouTube video What's Deadliner? Deadliner is a cross-platform desktop application for setting deadline for a project and keeping t

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

Helps you keep track of time for team members across different time zones & DST changes

Teamdate Helps you keep track of time for team members across different timezones and other daylight saving changes based off their location. Because

A simple GUI rust application that keeps track of how much time you spend on each application.
A simple GUI rust application that keeps track of how much time you spend on each application.

TimeSpent A simple GUI rust application that keeps track of how much time you spend on each application. Installation Click here to download the Setup

Track and query Cargo dependency graphs.

cargo-guppy: track and query dependency graphs This repository contains the source code for: guppy: a library for performing queries on Cargo dependen

An API to track various stats written in Rust. Tracking Github, Wakatime, Spotify, and Duolingo
An API to track various stats written in Rust. Tracking Github, Wakatime, Spotify, and Duolingo

Null API API For collecting data Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About The Project Built With Getting St

An eye that keeps track of your Roblox status and shares it with others
An eye that keeps track of your Roblox status and shares it with others

Roblox presence for Discord with only one native standalone executable that relies on zero external dependencies, and doesn't need to be installed.

A Discord bot for keeping track of birthdays.

Birthbot Birthbot is a Discord bot for keeping track of birthdays. Features Commands Birthbot recognises the following slash commands: birthday get to

Track activity time from terminal.
Track activity time from terminal.

Time Tracker This is a command-line time-tracking tool that allows you to manually or automatically time-track your activity. Manual tracking In order

Minimalist multi-track audio recorder which may be controlled via OSC or MIDI.
Minimalist multi-track audio recorder which may be controlled via OSC or MIDI.

smrec Minimalist multi-track audio recorder which may be controlled via OSC or MIDI. I did this because I needed a simple multi-track audio recorder w

A rust-cli to track and practise all your DSA links :)

Abhyas Abhyas is a Rust command-line application for managing and interacting with a database of links. Features Check Status: Get the total, complete

Lightweight, event-driven WebSockets for Rust.

WS-RS Lightweight, event-driven WebSockets for Rust. /// A WebSocket echo server listen("127.0.0.1:3012", |out| { move |msg| { out.send(ms

A Rust application which funnels external webhook event data to an Urbit chat.
A Rust application which funnels external webhook event data to an Urbit chat.

Urbit Webhook Funnel This is a simple Rust application which funnels external webhook event data to an Urbit chat. This application is intended to be

A utility for mapping events from Linux event devices.

What is evsieve? Evsieve (from "event sieve") is a low-level utility that can read events from Linux event devices (evdev) and write them to virtual e

Proof-of-concept for a memory-efficient data structure for zooming billion-event traces

Proof-of-concept for a gigabyte-scale trace viewer This repo includes: A memory-efficient representation for event traces An unusually simple and memo

 Rapidly Search and Hunt through Windows Event Logs
Rapidly Search and Hunt through Windows Event Logs

Rapidly Search and Hunt through Windows Event Logs Chainsaw provides a powerful ‘first-response’ capability to quickly identify threats within Windows

A scriptable MIDI event processor.

mep Introduction mep is a scriptable midi event processor. It uses koto scripts to process incoming midi events. I/O Every instance of mep introduces

Owner
Eduardo Cuducos
👟 Triathlete 🥦 Vegan 🏳️‍🌈 Non-binary (they/them) 💜 Civc tech 🎓 PhD Sociology 💃Trying to learn bachata
Eduardo Cuducos
Akinator clone in Rust with Tauri, written in 2 days

Rustinator Akinator clone written in Rust + Tauri in 2 days How to play Install Rust Install Tauri Open a cmd/Terminal in this folder. Run cd src-taur

Face 5 Jul 17, 2023
A toy event store and event messaging system.

RDeeBee Follow this blog series for more details on this project. This system is inspired by Martin Kleppman's arguments that Event Sourcing system an

null 4 Nov 6, 2022
Open Weather extension for i3status

I3owm rust implementation of Open Weather Map add-on for i3status Example usage in i3config: bar { status_command i3status | i3owm -p 2 -r -k <key> -c

Patrick Hoffmann 12 Jul 10, 2022
🌤️ Command line weather tool.

??️ Command line weather tool.

risoflora 45 Jan 3, 2023
A Rust client for the NOAA Weather Wire Service Open Interface.

nwws-oi A Rust client for the NOAA Weather Wire Service Open Interface. NWWS-OI is one of several platforms through which the National Weather Service

Will Glynn 3 Sep 15, 2022
Print Apple WeatherKit REST API weather conditions and hourly/daily foreacast to the console.

weatherkit-rust A Rust CLI program to print current conditions and daily/hourly forecast to the console. Please read authorization.md as you need an A

boB Rudis 11 Dec 23, 2022
Display NOAA Weather Alerts For A Given Lat/Lon

wxwarn Display NOAA Weather Alerts For A Given Lat/Lon Grabs the NOAA weather alerts shapefile, checks to see if there are any alerts for the given co

boB Rudis 4 Jul 25, 2022
RusQTTbom takes weather data from the Bureau of Meteorology (BOM) and publishes that data via MQTT messages.

RusQTTbom RusQTTbom collects weather data from the Bureau of Meterology (BOM) then publishes said data locally via MQTT messages. BOM weather data is

Athenars 7 Jan 13, 2023
Custom module for showing the weather in Waybar, using the great wttr.io

wttrbar a simple but detailed weather indicator for Waybar using wttr.in. Installation Compile yourself using cargo build --release, or download the p

Yo'av Moshe 10 Apr 23, 2023
A Telegram Bot written in Rust to Track new Github releases

Release Tracker This is used to track Releases posted on GitHub Releases and Post it on a Telegram Channel/Group. Setup Export env variables or just f

Kartikeya Hegde 20 Jul 7, 2022