{"id":50840212,"url":"https://github.com/silenthooligan/code-sharing","last_synced_at":"2026-06-14T06:07:39.809Z","repository":{"id":332675654,"uuid":"1134592169","full_name":"silenthooligan/code-sharing","owner":"silenthooligan","description":"Reverse engineering tools, automation scripts, and digital experiments. Python · Node.js · Docker · ESPHome.","archived":false,"fork":false,"pushed_at":"2026-05-27T22:12:54.000Z","size":163,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T00:11:34.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/silenthooligan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-14T23:37:13.000Z","updated_at":"2026-05-27T22:12:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/silenthooligan/code-sharing","commit_stats":null,"previous_names":["silenthooligan/code-sharing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/silenthooligan/code-sharing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silenthooligan%2Fcode-sharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silenthooligan%2Fcode-sharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silenthooligan%2Fcode-sharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silenthooligan%2Fcode-sharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silenthooligan","download_url":"https://codeload.github.com/silenthooligan/code-sharing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silenthooligan%2Fcode-sharing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34310833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"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":[],"created_at":"2026-06-14T06:07:39.159Z","updated_at":"2026-06-14T06:07:39.803Z","avatar_url":"https://github.com/silenthooligan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# code-sharing\n\nPersonal repository of small standalone tools, reverse-engineering\nutilities, and integration scripts. Each top-level directory is an\nindependent project with its own README, dependencies, and license\nterms (project-level licenses inherit MIT from this repo unless\notherwise noted).\n\nThis is a workshop, not a product portfolio. Projects are published\nbecause they were useful enough to write down and may be useful to\nsomeone else; they are not a service offering.\n\n## Projects\n\n### [ha-connect-portable](./ha-connect-portable)\n\nESPHome firmware images and reference compose configurations for the\nNabu Casa ZWA-2 and ZBT-2 USB radio dongles. Replaces the stock\nUSB-CDC bridge on the on-board ESP32-S3 with an ESPHome image so the\nradio runs on Wi-Fi instead of being tethered to the Home Assistant\nhost's USB bus.\n\nCovers all three radio roles: Z-Wave (ZWA-2 via `zwave_proxy`), Zigbee\n(ZBT-2 via `serial_proxy`), and Thread / OTBR (ZBT-2 via\n`stream_server` plus `socat`-bridged pty). Includes the magic-baudrate\nROM-bootloader entry helper, EFR32 reflash procedure for the Thread\nrole, and ready-to-deploy compose snippets for `zwave-js-server` and\n`hass-otbr-docker`.\n\nStatus: production-validated. Targets Home Assistant Container\ndeployments (no HassOS required).\n\nStack: ESPHome (`zwave_proxy`, `serial_proxy`, `stream_server`),\nesptool, universal-silabs-flasher, kpine/zwave-js-server,\nownbee/hass-otbr-docker.\n\n### [fliphtml5-liberator](./fliphtml5-liberator)\n\nDownloader for FlipHTML5 books. Extracts page manifests and image\nassets from public FlipHTML5 deployments and assembles them into a\nsingle PDF.\n\nTwo operational modes: a fast path that parses the page list directly\nwhen `config.js` exposes it in the clear, and a fallback path that\nruns the book's own Emscripten-compiled `deString.wasm` binary inside\na patched Node.js host environment to decrypt the page manifest. The\nWASM path handles the \"Protected\" / encrypted-config variant of\nFlipHTML5 where the page list is hidden inside an obfuscated string.\n\nStack: Python 3.7+ (`httpx`, `img2pdf`, `Pillow`) for orchestration\nand PDF assembly; Node.js for the WASM decoder host environment.\n\n### [cyberdrop-dl-gui](./cyberdrop-dl-gui)\n\nStreamlit web UI that wraps `cyberdrop-dl-patched` and `yt-dlp` behind\na single URL-input form. Routes each pasted URL to the appropriate\nbackend automatically (yt-dlp for the listed video platforms,\ncyberdrop-dl for everything else) and persists download history per\nbackend so re-runs skip already-fetched content.\n\nIncludes a library-style folder picker that surfaces subdirectories of\nthe configured download root as categories, an optional custom\nsubfolder, live progress counters parsed from the backend log streams,\nand a Docker image bundling `aria2`, `ffmpeg`, `cyberdrop-dl-patched`,\nand `yt-dlp`.\n\nStack: Python 3.12+, Streamlit, Docker, `cyberdrop-dl-patched`,\n`yt-dlp`, `aria2`, `ffmpeg`.\n\n## Repository structure\n\nEach project is self-contained:\n\n```\ncode-sharing/\n├── README.md                  # this file\n├── LICENSE                    # MIT, applies to all projects unless overridden\n├── CONTRIBUTING.md\n├── CODE_OF_CONDUCT.md\n├── SECURITY.md\n├── .github/                   # issue templates, PR template\n├── ha-connect-portable/       # ESPHome WiFi firmware for ZWA-2 / ZBT-2\n├── fliphtml5-liberator/       # FlipHTML5 book extractor\n└── cyberdrop-dl-gui/          # Streamlit UI for cyberdrop-dl + yt-dlp\n```\n\n## Contributing\n\nIssues and pull requests are welcome on individual projects. See\n[CONTRIBUTING.md](./CONTRIBUTING.md) for the basics and\n[CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) for behavioral expectations.\nSecurity-sensitive reports should follow [SECURITY.md](./SECURITY.md)\nrather than going through the public issue tracker.\n\n## License\n\n[MIT](./LICENSE), unless a specific project directory ships its own\nLICENSE file overriding it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilenthooligan%2Fcode-sharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilenthooligan%2Fcode-sharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilenthooligan%2Fcode-sharing/lists"}