{"id":16001635,"url":"https://github.com/pbrisbin/airs","last_synced_at":"2025-07-19T23:34:30.344Z","repository":{"id":7249820,"uuid":"8560743","full_name":"pbrisbin/airs","owner":"pbrisbin","description":"Get a push notification when TV shows you like have a new episode today.","archived":false,"fork":false,"pushed_at":"2013-03-14T21:54:59.000Z","size":204,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-22T19:51:17.356Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pbrisbin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-04T17:27:57.000Z","updated_at":"2014-02-04T11:40:49.000Z","dependencies_parsed_at":"2022-09-05T04:31:58.741Z","dependency_job_id":null,"html_url":"https://github.com/pbrisbin/airs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pbrisbin/airs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fairs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fairs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fairs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fairs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pbrisbin","download_url":"https://codeload.github.com/pbrisbin/airs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbrisbin%2Fairs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266041824,"owners_count":23867952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T09:45:18.683Z","updated_at":"2025-07-19T23:34:30.325Z","avatar_url":"https://github.com/pbrisbin.png","language":"Ruby","readme":"# Airs\n\nThese days, we all keep up with television shows in a variety of ways: \nOn-demand, HBO Go, Hulu, etc.\n\nIt would be nice if we had some centralized way to know when new \nepisodes of shows we follow become available regardless of where and how \nwe might want to watch it.\n\nThe `airs` utility is designed to do this. It sources \n[next-episode.net][ne] to see what's airing today, compares it to a \nwatch list, then sends you a push notification via [pushover.net][po] if \nany shows you watch have a new episode airing tonight.\n\n[ne]: http://next-episode.net\n[po]: https://pushover.net\n\n## Installation\n\n~~~\n$ git clone ...\n$ bundle\n$ rake install\n~~~\n\n## Usage\n\n`airs` can be used entirely standalone by setting the required \nenvironment variable and passing the watch list on `stdin`:\n\n~~~\n$ PUSHOVER_USER='xyz123' airs \u003c\u003cEOF\nThe Walking Dead\nBoardwalk Empire\nEOF\n~~~\n\nHowever, this can get tedious. It's recommended to set your Pushover \nUser Key in a shell rc file:\n\n**~/.bashrc**\n\n~~~\nexport PUSHOVER_USER='xyz123'\n~~~\n\nAnd pass the watchlist via a file argument:\n\n~~~\n$ echo 'Show One' \u003e  watchlist.txt\n$ echo 'Show Two' \u003e\u003e watchlist.txt\n$ airs watchlist.txt\n~~~\n\nFinally, we can put this in cron to have it run each day:\n\n~~~\n00 17 * * * airs /path/to/watchlist.txt # 5PM\n~~~\n\nNote that, depending on which cron app you use, you may need to define \nthe `PUSHOVER_USER` environment variable in your crontab as well.\n\n## The Watchlist\n\nThe watch list is a simple list of patterns, one per line. Each pattern \nwill be matched against the show titles as reported by \n[next-episode.net][ne]. You have the full power of regular expressions, \nthough it's usually not needed.\n\nThe match is partial and case insensitive:\n\n~~~\nwalking dead\ngold rush\n~~~\n\nThe first line will match \"The Walking Dead\" just fine. The second line \nwould match both \"Gold Rush\" and \"Gold Rush Live\". To avoid this, use a \nregular expression *anchor*:\n\n~~~\nwalking dead\ngold rush$\n~~~\n\nWill ensure only \"Gold Rush\" is matched.\n\n## Pushover\n\nPush notifications are sent to your device via [pushover.net][po]. Head \nover to their site and sign up. They'll give you a User Key which you \nmust set as the environment variable `PUSHOVER_USER` for `airs` to work.\n\nAs seen in the Usage section, this can be passed along the commandline \nor `export`ed ahead of time via your shell rc file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbrisbin%2Fairs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbrisbin%2Fairs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbrisbin%2Fairs/lists"}