costco-watch: ntfy alert when a Costco tire is back in stock
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"$schema": "../app-info-schema.json",
|
||||
"name": "Costco Stock Watch",
|
||||
"id": "costco-watch",
|
||||
"available": true,
|
||||
"port": 8592,
|
||||
"exposable": false,
|
||||
"dynamic_config": true,
|
||||
"no_gui": true,
|
||||
"tipi_version": 1,
|
||||
"version": "1.0.0",
|
||||
"categories": [
|
||||
"automation",
|
||||
"utilities"
|
||||
],
|
||||
"description": "Polls a Costco tire product page on an interval and pushes an ntfy alert the moment it flips from out-of-stock to in-stock. Points at the costco-tire cloudflared proxy, which needs a Cloudflare Transform Rule attaching browser-like request headers - Costco stalls non-browser header sets.",
|
||||
"short_desc": "Alerts when a Costco tire is back in stock",
|
||||
"author": "alexz",
|
||||
"source": "https://git.alexzaw.dev/alexz/costco-watch",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Product URL",
|
||||
"env_variable": "TARGET_URL",
|
||||
"required": true,
|
||||
"default": "https://costco-tire.alexzaw.dev/SearchResultsByItemOrPart?ItemNo=1273727",
|
||||
"hint": "Full product page URL to watch, via the costco-tire proxy"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Item Label",
|
||||
"env_variable": "ITEM_LABEL",
|
||||
"required": false,
|
||||
"default": "Michelin Primacy Tour A/S 235/45R18",
|
||||
"hint": "Friendly name used in the notification text"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "ntfy Topic",
|
||||
"env_variable": "NTFY_TOPIC",
|
||||
"required": true,
|
||||
"hint": "Topic to publish to, e.g. costco-tire. Subscribe to it in the ntfy app."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "ntfy URL",
|
||||
"env_variable": "NTFY_URL",
|
||||
"required": false,
|
||||
"default": "https://ntfy.alexzaw.dev",
|
||||
"hint": "ntfy server base URL"
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "ntfy Token",
|
||||
"env_variable": "NTFY_TOKEN",
|
||||
"required": false,
|
||||
"hint": "Only needed if the topic requires auth. Leave blank for an open topic."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Check Interval (minutes)",
|
||||
"env_variable": "INTERVAL_MINUTES",
|
||||
"required": false,
|
||||
"default": "60",
|
||||
"hint": "Keep at 60 or more - this is a courtesy check, not a scraper"
|
||||
},
|
||||
{
|
||||
"type": "random",
|
||||
"label": "API Key",
|
||||
"env_variable": "API_KEY",
|
||||
"required": true,
|
||||
"min": 24,
|
||||
"encoding": "hex",
|
||||
"hint": "Guards /status and /check. Auto-generated."
|
||||
}
|
||||
],
|
||||
"supported_architectures": [
|
||||
"amd64"
|
||||
],
|
||||
"created_at": 1754995000000,
|
||||
"updated_at": 1754995000000,
|
||||
"deprecated": false,
|
||||
"min_tipi_version": "4.5.0"
|
||||
}
|
||||
Reference in New Issue
Block a user