{"id":16701095,"url":"https://github.com/scriptex/vik-varna-alerts","last_synced_at":"2025-08-20T12:03:27.939Z","repository":{"id":185266561,"uuid":"673257992","full_name":"scriptex/vik-varna-alerts","owner":"scriptex","description":"Email and web notifications for planned repairs from ViK-Varna","archived":false,"fork":false,"pushed_at":"2025-07-11T08:49:46.000Z","size":379,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-11T11:50:02.526Z","etag":null,"topics":["cron","email-alert","web-alert"],"latest_commit_sha":null,"homepage":"https://vik-varna-alerts.atanas.info/","language":"TypeScript","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/scriptex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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":"2023-08-01T08:20:52.000Z","updated_at":"2025-07-11T08:49:22.000Z","dependencies_parsed_at":"2024-01-24T01:40:20.680Z","dependency_job_id":"f0d3f678-2b5c-4f5c-b4b9-d2b384191702","html_url":"https://github.com/scriptex/vik-varna-alerts","commit_stats":null,"previous_names":["scriptex/vik-varna-alerts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scriptex/vik-varna-alerts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scriptex%2Fvik-varna-alerts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scriptex%2Fvik-varna-alerts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scriptex%2Fvik-varna-alerts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scriptex%2Fvik-varna-alerts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scriptex","download_url":"https://codeload.github.com/scriptex/vik-varna-alerts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scriptex%2Fvik-varna-alerts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265802028,"owners_count":23830506,"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":["cron","email-alert","web-alert"],"created_at":"2024-10-12T18:28:38.087Z","updated_at":"2025-07-18T17:35:30.623Z","avatar_url":"https://github.com/scriptex.png","language":"TypeScript","readme":"# ViK Varna Alerts\n\n[![Github Build](https://github.com/scriptex/vik-varna-alerts/workflows/Build/badge.svg)](https://github.com/scriptex/vik-varna-alerts/actions?query=workflow%3ABuild)\n[![Send email](https://github.com/scriptex/vik-varna-alerts/actions/workflows/send-email.yml/badge.svg)](https://github.com/scriptex/vik-varna-alerts/actions/workflows/send-email.yml)\n\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/34d3d75710534dc6a38c3584a1dcd068)](https://www.codacy.com/gh/scriptex/vik-varna-alerts/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=scriptex/vik-varna-alerts\u0026utm_campaign=Badge_Grade)\n[![Codebeat Badge](https://codebeat.co/badges/d765a4c8-2c0e-44f2-89c3-fa364fdc14e6)](https://codebeat.co/projects/github-com-scriptex-vik-varna-alerts-master)\n[![CodeFactor Badge](https://www.codefactor.io/repository/github/scriptex/vik-varna-alerts/badge)](https://www.codefactor.io/repository/github/scriptex/vik-varna-alerts)\n[![DeepScan grade](https://deepscan.io/api/teams/3574/projects/5257/branches/40799/badge/grade.svg)](https://deepscan.io/dashboard#view=project\u0026tid=3574\u0026pid=5257\u0026bid=40799)\n[![Analytics](https://ga-beacon-361907.ew.r.appspot.com/UA-83446952-1/github.com/scriptex/vik-varna-alerts/README.md?pixel)](https://github.com/scriptex/vik-varna-alerts/)\n\n\u003e Email and web notifications for planned repairs from ViK-Varna\n\n## About\n\nViK Varna (ВиК-Варна) is the local water supplier for Varna region in Bulgaria. They post notifications about planned repairs on their website but it is not possible to subscribe to those notifications and receive them immediately - instead one should check their website frequently.\n\nThe code in this repository serves as a middleware between the website and the user - it sends hourly notifications on email which contain the latest news related to planned repairs and outages.\n\nThe way the code is structured allows for integration with any other website which has a dedicated page for this purpose.\n\n## Usage\n\nIn order to use this repository, one must clone it and adjust the repository secrets found under `settings/secrets/actions` in the repository and add their own configuration:\n\n```sh\n# The email address of the recipient of the notifications\nEMAIL_TO=\"recipient@example.com\"\n\n# The email address of the sender of the notifications\nEMAIL_FROM=\"sender@example.com\"\n\n# The web address (URL) of the page that contains the notifications\nALERTS_PAGE=\"['https://website.notifications/deep/link/1', https://website.notifications/deep/link/2]\"\n\n# The subject in the email\nEMAIL_SUBJECT=\"Planned outages and repairs\"\n\n# The CSS selector for the HTML element which contains the notifications\nDATE_SELECTOR='.item-date-selector'\n\n# The CSS selector for the HTML element which contains the notifications\nALERTS_SELECTOR=\".alerts-selector\"\n\n# A CSS class name for a single notification element\nCHILD_CLASSNAME='alert-item'\n\n# API key for Brevo (formerly known as Sendinblue)\nSENDINBLUE_API_KEY=\"abc-123\"\n```\n\n## Available ways to use the code in this repository\n\nThe code is deployed via Vercel and is running as serverless lambda functions which can be accessed here:\n\n-   [the page which contains the alerts](https://vik-varna-alerts.atanas.info/api/alerts)\n-   [the page which sends an email with the alerts](https://vik-varna-alerts.atanas.info/api/email)\n\nWhen forked and correctly set up, this repository creates a CRON job which sends an email at 0 (zero) o'clock each hour between 5:00 and 14:00 UTC.\n\nOne can adjust this by modifying the parameters in the [action configuration](https://github.com/scriptex/vik-varna-alerts/blob/main/.github/workflows/send-email.yml)\n\n## Visitor stats\n\n![GitHub stars](https://img.shields.io/github/stars/scriptex/vik-varna-alerts?style=social)\n![GitHub forks](https://img.shields.io/github/forks/scriptex/vik-varna-alerts?style=social)\n![GitHub watchers](https://img.shields.io/github/watchers/scriptex/vik-varna-alerts?style=social)\n![GitHub followers](https://img.shields.io/github/followers/scriptex?style=social)\n\n## Code stats\n\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/scriptex/vik-varna-alerts)\n![GitHub repo size](https://img.shields.io/github/repo-size/scriptex/vik-varna-alerts?style=plastic)\n![GitHub language count](https://img.shields.io/github/languages/count/scriptex/vik-varna-alerts?style=plastic)\n![GitHub top language](https://img.shields.io/github/languages/top/scriptex/vik-varna-alerts?style=plastic)\n![GitHub last commit](https://img.shields.io/github/last-commit/scriptex/vik-varna-alerts?style=plastic)\n\n## LICENSE\n\nMIT\n\n---\n\n\u003cdiv align=\"center\"\u003e\n    Connect with me:\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://atanas.info\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/logo.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"mailto:hi@atanas.info\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/email.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://www.linkedin.com/in/scriptex/\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/linkedin.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://github.com/scriptex\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/github.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://gitlab.com/scriptex\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/gitlab.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://twitter.com/scriptexbg\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/twitter.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://www.npmjs.com/~scriptex\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/npm.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://www.youtube.com/user/scriptex\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/youtube.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://stackoverflow.com/users/4140082/atanas-atanasov\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/stackoverflow.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://codepen.io/scriptex/\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/codepen.svg\" width=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://profile.codersrank.io/user/scriptex\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/codersrank.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://linktr.ee/scriptex\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/scriptex/socials/master/styled-assets/linktree.svg\" height=\"20\" alt=\"\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\nSupport and sponsor my work:\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://twitter.com/intent/tweet?text=Checkout%20this%20awesome%20developer%20profile%3A\u0026url=https%3A%2F%2Fgithub.com%2Fscriptex\u0026via=scriptexbg\u0026hashtags=software%2Cgithub%2Ccode%2Cawesome\" title=\"Tweet\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Tweet-Share_my_profile-blue.svg?logo=twitter\u0026color=38A1F3\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://paypal.me/scriptex\" title=\"Donate on Paypal\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Donate-Support_me_on_PayPal-blue.svg?logo=paypal\u0026color=222d65\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://revolut.me/scriptex\" title=\"Donate on Revolut\"\u003e\n \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/revolut.json\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://patreon.com/atanas\" title=\"Become a Patron\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Become_Patron-Support_me_on_Patreon-blue.svg?logo=patreon\u0026color=e64413\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://ko-fi.com/scriptex\" title=\"Buy Me A Coffee\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-yellow.svg?logo=ko-fi\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://liberapay.com/scriptex/donate\" title=\"Donate on Liberapay\"\u003e\n \u003cimg src=\"https://img.shields.io/liberapay/receives/scriptex?label=Donate%20on%20Liberapay\u0026logo=liberapay\" /\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/bitcoin.json\" title=\"Donate Bitcoin\"\u003e\n \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/bitcoin.json\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/etherium.json\" title=\"Donate Etherium\"\u003e\n \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/etherium.json\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/shiba-inu.json\" title=\"Donate Shiba Inu\"\u003e\n \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/scriptex/scriptex/master/badges/shiba-inu.json\" /\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n","funding_links":["https://paypal.me/scriptex","https://patreon.com/atanas","https://ko-fi.com/scriptex","https://liberapay.com/scriptex/donate"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscriptex%2Fvik-varna-alerts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscriptex%2Fvik-varna-alerts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscriptex%2Fvik-varna-alerts/lists"}