A Start menu launcher for the Claude FM YouTube live stream. It plays audio only, in a small mpv window that minimizes to the tray.
Unofficial; not affiliated with Anthropic.
A Start menu launcher for the Claude FM YouTube live stream. It plays audio only, in a small mpv window that minimizes to the tray.
Unofficial; not affiliated with Anthropic.
pw-killswitch, the passwall2 killswitch for OpenWrt, now lives in ahbanavi/openwrt-passwall2-tools, together with the other tools there: pw-failover, pw-killswitch and five local patches for passwall2.
The files that were in this gist are in its revision history; the repo has the current versions.
The five local patches for passwall2, with their write-up and the UDP reuse probe, now live in ahbanavi/openwrt-passwall2-tools, together with the other tools there: pw-failover, pw-killswitch and five local patches for passwall2.
The files that were in this gist are in its revision history; the repo has the current versions.
pw-failover, the passwall2 node and WAN failover watchdog for OpenWrt, now lives in ahbanavi/openwrt-passwall2-tools, together with the other tools there: pw-failover, pw-killswitch and five local patches for passwall2.
The files that were in this gist are in its revision history; the repo has the current versions.
Back up a whole Trakt.tv account to a ZIP of JSON files through the Trakt API, unattended, from cron or any scheduler. One Python file, standard library only.
trakt_backup.py makes the same API calls as Trakt's own web export (Settings ▸ Data ▸ Raw
Export) and writes the same file names: one JSON per endpoint, with a -<page> suffix when an
endpoint spans several pages. The endpoint list was read from the web app's export code in October
Everything here runs over the LAN: no LG cloud, no Nabu Casa, no rooting the TV, nothing
sideloaded onto it. Home Assistant talks to the set with the built-in webostv integration,
and Google only ever sees HA's own fulfillment.
Written up because ThinQ was a dead end for me and most of the individual pieces below are either undocumented, wrong in the obvious place, or only findable by reading the integration source.
Tested on an OLED65C56LA, firmware 33.31.68, HA 2026.7.4.
TL;DR — webOS's WebAppManager engine resolves the default Intl time zone to Etc/Unknown, which ICU formats as UTC. Date is perfectly correct; only Intl is broken. jellyfin-web renders every clock through Intl, so they all shift together by your UTC offset. Nothing about your TV, server, or container time zone is misconfigured. Fix: pin the zone from JavaScript (webos-intl-timezone-fix.js).
In the Jellyfin app on an LG Smart TV, every rendered time is behind (or ahead) by exactly your UTC offset:
| const findDuplicateNames = () => { | |
| // Get all form elements excluding radio buttons | |
| const elements = document.querySelectorAll('input:not([type="radio"]), textarea, select'); | |
| const nameMap = new Map(); | |
| elements.forEach(element => { | |
| const name = element.getAttribute('name'); | |
| if (name) { | |
| if (!nameMap.has(name)) { |
| # https://gist.github.com/ahbanavi/308b27b5538559352dac960d48772cde | |
| services: | |
| n8n: | |
| image: docker.n8n.io/n8nio/n8n | |
| container_name: n8n | |
| restart: always | |
| environment: | |
| N8N_SECURE_COOKIE: false # If you also want to use it with localhost | |
| WEBHOOK_URL: https://n8n.example.com # The domain configured in Cloudflare Zero Trust |
| #!/bin/bash | |
| # RSS Feed Monitor for Nyaa.si | |
| # ========================== | |
| # This script monitors nyaa.si RSS feed for new items matching a keyword and sends | |
| # notifications via Telegram. | |
| # By default, this script only checks for english-translated anime items. | |
| # | |
| # Requirements: | |
| # - curl |