Commit graph

27 commits

Author SHA1 Message Date
devilreef
191898c2f4 refactor: migrate hytale-blog from JSON API to RSS feed 2026-03-08 17:58:40 +06:00
devilreef
ca7de2c7ab fix: append cache-busting param to blog API endpoint 2026-02-11 21:09:43 +06:00
devilreef
fd7f0b4527 fix: update embed logo URL and add publish timestamp to blog embed 2026-01-24 20:20:43 +06:00
devilreef
00b902fa8d style: change discord embed color to blue (#64A7D1) 2026-01-24 20:11:53 +06:00
devilreef
24548fcac8 feat: add hytale-blog module for blog post tracking
- Track new posts from hytale.com/api/blog/post/published
- Send Telegram alerts with cover image (sendPhoto) and inline URL button
- Send Discord webhook embeds with full-size image and role mentions
- Add sendPhoto method to TelegramClient with inline keyboard support
- Extend discord-webhooks with DiscordMessage type, mentionRoles config
2026-01-24 20:09:02 +06:00
devilreef
ea9dd0c13b fix: use favicon.ico for discord embed thumbnail 2026-01-24 00:26:04 +06:00
devilreef
48b3359792 feat: add discord-webhooks module for embed notifications
- New module with batching queue, per-webhook event filtering
- Hytale orange (#F26430) embeds with timestamps
- Retry on 429 rate limits
- Integrated into all 5 tracker modules
2026-01-24 00:17:27 +06:00
devilreef
be1102119a feat: add hytale-presskit module for Creator Presskit tracking
Adds new module to track CreatorPressKit.zip file size changes via HEAD requests.
Alerts with old/new size and diff. Also updates sign-token.ts with correct account ID.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-17 00:41:21 +06:00
reef.
e0ec995068
Merge pull request #1 from devilr33f/feat/hono-api-jwt-auth
feat: add Hono API with JWT authentication
2026-01-17 00:25:09 +06:00
devilreef
65f900169b feat: add Hono API with JWT authentication
- Implement REST API using Hono framework with token-based auth
- Add JWT middleware for scope-based access control
- Create version endpoints: launcher, downloader, patches, server
- Add account lookup endpoints (by UUID or username)
- Fetch server software with signed URLs and full version data
- Add token signing utility script for testing
- Support configurable account UUID for game session creation
- Integrate API server with existing module system

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-17 00:24:27 +06:00
devilreef
317c886529 fix: serialize state writes with retry for EBUSY errors
- Add write serialization to prevent concurrent writes
- Retry with exponential backoff on Windows EBUSY
- Use direct write instead of temp file + rename

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 14:50:26 +06:00
devilreef
58ef04fa68 fix: atomic state writes with full state persistence
Previously only wrote dirty keys, causing data loss when multiple
modules wrote concurrently. Now writes full state atomically using
temp file + rename pattern.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 04:36:55 +06:00
devilreef
410fc736c7 fix: decode JWT exp claim for accurate token expiry
Previously, tokens with expires_in were recalculated as Date.now() +
3600s on each load, ignoring the actual JWT expiry. Now decodes the
JWT's exp claim to get true expiry and resaves file with expires_at.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 04:31:07 +06:00
devilreef
f55868dd00 fix: use patch 0 as fallback when no previous installation
0 means no local installation on launcher

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 01:40:43 +06:00
devilreef
96eb5f754d feat: add patch size estimation for game updates
- HEAD request to game-patches.hytale.com for content-length
- Track lastPatchId in state to calculate patch delta
- Display formatted size (~55.4 MiB) in update notifications

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 01:38:12 +06:00
devilreef
a7d4df6986 refactor: convert to modular system with Hytale update trackers
- Core infrastructure: module interface, Telegram wrapper, OAuth token manager, state store
- Migrate Discord forwarder to modules/discord-forwarder/
- Add Hytale update trackers: launcher, patches, downloader, server
- Support multiple Telegram chats with per-chat topic IDs
- Unified config with legacy migration and env var fallbacks
- Auto-refresh OAuth tokens (5min buffer)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 01:18:15 +06:00
devilreef
369a37903f fix: update ESLint command in documentation for clarity 2026-01-10 19:07:17 +06:00
devilreef
165f43a691 feat: add global ignoredUserIds config option
Skip messages from specified Discord user IDs regardless of channel/role matching.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-10 19:06:52 +06:00
devilreef
594b0e7a48 feat: add reply support with blockquote formatting
Fetch replied message content/author when Discord message type is REPLY,
display as Telegram blockquote with link to original.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-10 18:49:50 +06:00
devilreef
790abfd692 fix: do not send forwarded messages 2026-01-08 23:03:20 +06:00
devilreef
53177e554f refactor: simplify attachment handling in forwardMessage function by removing buffer downloads and using URLs directly for media uploads 2026-01-08 22:52:54 +06:00
devilreef
2643756443 fix: enable link previews in forwarded messages based on content URLs 2026-01-08 22:49:49 +06:00
devilreef
4603abe3c6 chore: update pnpm 2026-01-08 22:44:41 +06:00
devilreef
fe3653322d chore: enable link preview 2026-01-08 22:44:31 +06:00
devilreef
cdeb2e54a3 fix: ensure message handling checks for guild presence before accessing member roles 2026-01-08 22:17:05 +06:00
devilreef
7ed373337f refactor: update message forwarding logic to support channel-based matching alongside role-based matching; enhance configuration structure to include channels; update documentation and example config 2026-01-08 22:06:07 +06:00
devilreef
c4514cd4c4 feat: initial commit 2026-01-08 21:52:19 +06:00