MyGo 云音乐
Go와 MyGo로 만든 서드파티 네이버 클라우드 뮤직 데스크톱 클라이언트
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Turns RSS feeds into numbered text lines and JPG images for TV tickers and playout graphics. By OnAir Garage.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Downloads RSS feeds on a schedule and turns each one into numbered text lines and JPG images for TV tickers and playout graphics. Free desktop app (Electron) from OnAir Garage.
• Tool page: https://onairgarage.com/tools/ticker-feed-builder/
• Author: Graziano Melzi · OnAir Garage — [email protected]
• License: MIT (see LICENSE)
• Systems: Windows (installer), macOS (dmg, Apple silicon and Intel), Linux (AppImage, x64). Built for all three; only macOS has been run so far (see Validation).README 전문 보기 ↗Downloads RSS feeds on a schedule and turns each one into numbered text lines and JPG images for TV tickers and playout graphics. Free desktop app (Electron) from OnAir Garage.
LICENSE)Ticker-Feed-Builder-Manual-EN-<version>.pdf), Italian (-IT-) and Spanish (-ES-); the source is in docs/manual/ (python3 docs/manual/build.py <version> <folder> makes the PDFs; it needs Chrome or Chromium).Screenshots use invented demo feeds, taken from the real app (version 26.10.9, running on Linux; dark and light themes).
It replaces the rss_ticker_downloader.py scripts that fed NeMedia Morpheus from Windows Task Scheduler. The app lives in the tray, runs 24/7 and, for every feed of every profile, writes:
| File | Content |
|---|---|
<Name>_Title.Txt | one headline per line |
<Name>_Description.Txt | one description per line, same order |
<Name>/00001.JPG, 00002.JPG… | one JPG per story, same order |
<Name>_metadata.json | counters of the last run (optional) |
- (configurable); a missing or unreadable image becomes the placeholder image.{folder}), image number start/digits/extension, JPEG quality, optional resize (fill or fit), title/description length limits.ETag / Last-Modified; answer 304 = nothing is downloaded). If the server cannot say, the feed is downloaded and its content compared with the previous copy (same content = no image download, no file touched). Images are downloaded and files written only when something is new; a failed image is retried at the next check, and a deleted output file or an edited setting triggers a rebuild. "Run now" always rebuilds everything.The default layout is the one the original scripts produced for NeMedia Morpheus. It has not been checked against NeMedia documentation (none was read); other ticker systems may need other names, encodings or sizes, which is why everything is configurable.
A feed that is free to download is not necessarily free to broadcast. Publishers usually offer RSS for personal reading; showing their headlines publicly on TV, screens or websites normally needs an agreement with the publisher. That responsibility is the user's; this is not legal advice. The app ships without any feed; the examples below come from the pages read on 8 October 2026 (paraphrased; the pages carry no version or date, so read the current text before relying on it).
| Publisher | What its RSS page says | Page |
|---|---|---|
| ANSA | Non-commercial use by individuals and non-profit organisations, only to view the feeds in RSS reader programs; using them to publish the latest headlines on websites or blogs is not allowed; any other use must be requested and expressly authorised. | https://www.ansa.it/sito/static/ansa_rss.html |
| Adnkronos | Non-commercial use by individuals and non-profit organisations; the feeds may not be made public (websites, blogs, outdoor communication systems, any other means that spreads the news publicly) without a prior agreement with Adnkronos. | https://www.adnkronos.com/rss |
Both pages list their feeds by section (politics, foreign news, sport…); use them as examples of what to ask for in an agreement.
No measurements or standards-based formulas. The external rules used:
| Value / rule | Source | Status |
|---|---|---|
RSS 2.0 item fields (title, description, enclosure), Atom entry, Media RSS media:content / media:thumbnail | feed formats as found in the feeds themselves (Adnkronos, ANSA); no specification was read for this release | recommended (practice, not verified against the specifications) |
Characters not allowed in a file name, reserved names (CON, PRN, NUL, COM1…) | Microsoft Learn, Naming Files, Paths, and Namespaces — same rules as in File Renamer | official (read in the File Renamer project, not re-read for this release) |
| Default output layout and file names | original scripts v3.2 supplied by the author | reference implementation |
Telegram sendMessage | Telegram Bot API | not re-read for this release |
| SMTP submission (STARTTLS / TLS), Bcc | nodemailer library defaults; no RFC read for this release | recommended (practice) |
| Terms of use of the ANSA and Adnkronos RSS feeds | the two RSS pages above | official (read 2026-10-08, summarised) |
Results as of October 2026.
| Reference | What it validates | Result | How to re-run |
|---|---|---|---|
| Automated tests (82) | text cleaning, text changes (replacements, capital letters, text before / after, own limits), the ad-hoc signature hook, RSS/Atom parsing, line/image sync, empty values, orphan removal, unchanged files, change detection (304, same content, failed-image retry, deleted output, per-feed interval), WebP/AVIF decoding, time windows, filters, merged feeds, duplicates across feeds, file check, remembered state, frozen-feed alert, daily summary, headless CLI, failure keeps old files, missing folder not created, private image addresses, scheduler, alerts | pass | npm test |
| Original Python script v3.2 on 8 live feeds (2026-10-08, macOS; a one-off development check with the feeds the script used, not part of the app) | same titles and descriptions as the original for the same feeds | 14 of 16 text files byte-identical; the other 2 differ only because the feeds changed between the two runs (stories shifted by one); one title carried an invisible BOM character in the original, which the app removes | run both on the same feeds and compare (cmp) |
| Same run | number of images per feed | equal for all 8 feeds | same |
| End-to-end on the real Electron app (macOS; Linux for the 26.10.10 interface) | create profile, run, files on disk, status in the UI, language switch, Settings tabs, show / hide password, backup box, Help & About, feed options, no console errors | pass | node dev/e2e-electron.mjs [screenshotDir] |
Not validated: WebP/AVIF with real-world files from publishers (only synthetic images in the tests); the headless mode on Windows and as a service; playback in NeMedia Morpheus or any other ticker system; Linux on a real desktop; runs lasting days; Telegram and email delivery against real services (unit-tested with fakes; the email envelope is checked with the real Nodemailer message builder, not with a mail server); Windows-1252 output beyond a unit test. Opening the ad-hoc signed app on an Apple Silicon Mac (only the build job checks the signature; the author tries the preview by hand); a click on the tip jar opening the system browser on Windows and macOS; the text changes on a live ticker. This is not a certified tool.
| Document | Version read |
|---|---|
| RSS 2.0 specification, Atom (RFC 4287), Media RSS | not read for this release |
| Telegram Bot API | not read for this release |
| SMTP (RFC 5321 / 6409) | not read for this release |
| NeMedia Morpheus manual (expected file layout) | not read |
ANSA RSS page (ansa.it/sito/static/ansa_rss.html) | read 2026-10-08, no version or date on the page |
Adnkronos RSS page (adnkronos.com/rss) | read 2026-10-08, no version on the page |
npm install
npm start # the app
npm test # unit tests (Node 20+)
node dev/e2e-electron.mjs # end-to-end on the real app
npm run dist:mac # or dist:win / dist:linux
src/cli.js runs the same engine, schedules, filters, alerts (Telegram, email) and daily summary without a window or tray (no desktop notifications).
node src/cli.js --settings exported-settings.json --data ./tfb-data # runs until stopped (Ctrl+C)
node src/cli.js --settings exported-settings.json --data ./tfb-data --once # one run, then exit
The installed app can run it without Node.js: ELECTRON_RUN_AS_NODE=1 "<app executable>" "<resources>/app.asar/src/cli.js" --settings … --data … (the exact command for this computer is shown in Settings → Headless mode). --once exits with 0 (all feeds fine), 1 (some problem) or 2 (settings unusable). Use the file written by "Export settings"; it contains no secrets, so set TFB_TELEGRAM_TOKEN and TFB_SMTP_PASS in the environment. The file is read again every 30 seconds. On Windows start it with Task Scheduler at startup ("run whether the user is logged on or not"), on Linux with a systemd service, on macOS with launchd. Logs and the remembered state go to the --data folder.
main.js, preload.cjs — Electron main process and bridge.src/ — the engine, independent of Electron: engine.js (download → filter → convert → write → check), runtime.js (engine + scheduler + alerts + summary + remembered state, shared by the app and the headless mode), cli.js, feed.js, filters.js, schedule-rules.js, digest.js, text.js, image.js, image-modern.js, output.js, format.js, http.js, scheduler.js, notify.js, messages.js, settings.js, logger.js, updater.js, secrets.js (the one list of every secret) and backup.js (the backup file and its import). updater.js, secrets.js and backup.js start with // garage-common: <name> <version>: they are copies of modules shared by the OnAir Garage apps.renderer/ — the interface (strict CSP, no inline scripts or styles, no CDN, system fonts).assets/ — the logo as SVG (logo.svg app icon, tray.svg single-colour menu-bar glyph), the generated icons and the built-in placeholder. node dev/make-icons.mjs regenerates every icon from the two SVGs (needs Playwright with a Chromium; see the top of the script).dev/ — tests, end-to-end script, icon and placeholder generators.Versions are YY.M.N (e.g. 26.10.1), tags vYY.M.N.
fast-xml-parser (MIT), jimp (MIT), iconv-lite (MIT), nodemailer (MIT-0), @jsquash/webp and @jsquash/avif (Apache-2.0), Electron (MIT). No fonts are bundled.
src/cli.js): the same engine without a window, for a server or a machine that must update the ticker after a restart before anyone logs in. See "Headless mode" below.[Ticker Feed Builder · installation name] (Settings, General; default the computer name).SHA256SUMS.txt, start with the computer, keep-awake option.SHA256SUMS.txt. Close and install is refused while a profile is running, saves a safety copy of the settings first (last 3 kept) and starts the installer (Windows), opens the disk image (macOS) or shows the AppImage (Linux). A What's new window shows once after an update. Nothing installs without a click.ticker-feed-builder-backup-YYYY-MM-DD.json with profiles, feeds, formats and settings. The box Include passwords and tokens is off by default; ticked, the SMTP password, the Telegram token and feed credentials (user:password@) are written in plain text (red warning) and the file is created with mode 0600. Import replaces everything or adds only the missing profiles, keeps a password already on the computer when the mail server and user are the same, and lists what must be typed again. Alert state, check history, logs and window position are never in a backup.search → replace with, one per line, plain text, capital letters count), ALL CAPITALS / lowercase / only the first letter capital, a text before and/or after the title (e.g. ANSA – ), own title and description limits. Applied just before the length limits (order: replacements, capital letters, text before / after, length limit with "…" at the end of a word); the test dialog shows the result. Off by default; no regular expressions.xattr -cr "/Applications/Ticker Feed Builder.app" && codesign --force --deep -s - "/Applications/Ticker Feed Builder.app".