{"id":23547234,"url":"https://github.com/kpanic/forecastr","last_synced_at":"2025-10-07T20:08:33.507Z","repository":{"id":31038573,"uuid":"126698823","full_name":"kpanic/forecastr","owner":"kpanic","description":"Forecastr, the Elixir way to check the weather forecast","archived":false,"fork":false,"pushed_at":"2024-08-11T09:27:16.000Z","size":575,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-04T16:30:35.217Z","etag":null,"topics":["ascii-art","elixir","forecastr","openweathermap","terminal","weather-app","weather-forecast"],"latest_commit_sha":null,"homepage":"http://forecastr.gigalixirapp.com/berlin?giphy=true","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kpanic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-25T13:12:14.000Z","updated_at":"2025-01-22T07:46:02.000Z","dependencies_parsed_at":"2023-11-17T00:11:48.573Z","dependency_job_id":"4c6f2ead-4842-4daa-a7fb-f802693815e8","html_url":"https://github.com/kpanic/forecastr","commit_stats":{"total_commits":219,"total_committers":6,"mean_commits":36.5,"dds":0.0547945205479452,"last_synced_commit":"f72ae03f9b91ed8aa72f6b6e2201d95088e81a08"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/kpanic/forecastr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpanic%2Fforecastr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpanic%2Fforecastr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpanic%2Fforecastr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpanic%2Fforecastr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpanic","download_url":"https://codeload.github.com/kpanic/forecastr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpanic%2Fforecastr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278693061,"owners_count":26029428,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ascii-art","elixir","forecastr","openweathermap","terminal","weather-app","weather-forecast"],"created_at":"2024-12-26T09:15:01.502Z","updated_at":"2025-10-07T20:08:33.493Z","avatar_url":"https://github.com/kpanic.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forecastr ![Build Status](https://secure.travis-ci.org/kpanic/forecastr.png?branch=master \"Build Status\") ![Package Version](https://img.shields.io/hexpm/v/forecastr.svg \"Package Version\") ![License](https://img.shields.io/hexpm/l/forecastr.svg \"License\")\n\n\nForecastr is an open source Weather API wrapper for OpenWeatherMap and DarkSky API.\n\nForecastr is an Elixir flavour of http://wttr.in that talks directly to one of\nthe aforementioned weather services.\nAim of the project is to provide a website similar to wttr.in written entirely in elixir\n\n**Project status: beta**\n\n## Installation\n\nThe package can be installed by adding `forecastr` to your list of dependencies\nin `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:forecastr, \"~\u003e 0.3\"}\n  ]\nend\n```\n\nThe documentation can be found at\n[https://hexdocs.pm/forecastr](https://hexdocs.pm/forecastr).\n\n\n**NOTE**\nIf you want to play with this project you have to obtain an api key from\nhttp://openweathermap.org/ or https://darksky.net/ and:\n\n```bash\nexport FORECASTR_API_KEY=YOUR_API_KEY\n```\n\nAlso put in your `config/config.exs`\n\n```elixir\nconfig :forecastr,\n  appid: System.get_env(\"FORECASTR_API_KEY\"),\n  backend: Forecastr.OWM,\n  # 10 minutes by default\n  ttl: 10 * 60_000\n```\n\nIf you want to use the DarkSky API put `backend: Forecastr.Darksky`\n\nSamples of output for today's forecast:\n\n```elixir\nForecastr.forecast(:today, \"lima\")\n```\n\n![today](today.png)\n![berlin](berlin.png)\n\nSample output with the OWM backend (the number of days is different depending on the backend used):\n\n```elixir\nForecastr.forecast(:next_days, \"lima\")\n```\n\n![in 5 days](in_five_days.png)\n\n\u003e \"*All the ducks are swimming in the water\n\u003e Fal de ral de ral do*\" (Lemon Jelly cit.)\n\n![duck with sunglasses](duck_with_sunglasses.jpg)\n\nIf you want *gifs* back with your weather forecast from **Giphy** call the giphy\nrenderer:\n\n```elixir\niex\u003e Forecastr.forecast(:today, \"berlin\", units: :metric, renderer: Forecastr.Renderer.Giphy)\n{:ok,\n %{\n   \"coordinates\" =\u003e %{\"lat\" =\u003e 52.5170365, \"lon\" =\u003e 13.3888599},\n   \"country\" =\u003e \"Deutschland\",\n   \"description\" =\u003e \"Mostly Cloudy\",\n   \"giphy_pic\" =\u003e \"https://i.giphy.com/media/XqL0uC2RUx9Hq/200.gif\",\n   \"id\" =\u003e \"partly-cloudy-day\",\n   \"name\" =\u003e \"Berlin\",\n   \"temp\" =\u003e 9.77,\n   \"temp_max\" =\u003e 9.77,\n   \"temp_min\" =\u003e 9.77\n }}\n```\n\nThis works also by calling `Forecastr.forecast` with the `:next_days` atom to\nget the weather forecast for the next days.\n\n# TODO\n- [X] Travis\n- [X] JSON renderer\n- [X] PNG Renderer with transparency (it's there but needs some love)\n- [X] Integrate https://forecast.io (now DarkSky) as a backend.\n- [X] Giphy renderer\n- [ ] Tests! (some coverage, good enough for now ™, however if someone feels like to add more.. ;))\n- [ ] Correct ASCII Art for the renderers that supports that (In progress)\n\n# Thank yous\n\n* The https://wttr.in project for inspiration\n* ![wego](https://github.com/schachmat/wego) for the amazing ASCII art\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpanic%2Fforecastr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpanic%2Fforecastr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpanic%2Fforecastr/lists"}