* feat: show upload progress for file tasks
* feat: show upload progress for batch file tasks
* style: distinguish download and upload phases
* style: mark successful task completion
* fix: preserve storage save error context
* fix: serialize single-file progress updates
* fix: stabilize batch upload progress reporting
Correct batch upload totals, completion state, actual file sizes, and synchronized progress snapshots. Add regression coverage for concurrent updates and phase transitions.
* feat: show per-file transfer progress
Format single-file and batch download and upload states with Telegram entities, blockquotes, speeds, transferred sizes, progress bars, concise counters, and accurate confirmation handling. Cover upload retries plus final, error, and cancellation messages with regression tests.
* chore: remove transfer progress tests
* test: restore critical transfer progress coverage
* test: cover interleaved batch transfers
* fix: declare progress styles in locale templates
extractFrameAt() and getVideoMetadata() piped the media into ffmpeg/ffprobe
via pipe:0. A pipe is not seekable, so ffmpeg cannot decode non-faststart MP4s
whose moov atom sits at the END of the file (very common for yt-dlp / HLS-merged
downloads): the frame grab and probe silently fail, and the video is uploaded
with no thumbnail (and, for non-mp4 containers, no dimensions).
Hand ffmpeg/ffprobe a seekable file path instead. When the reader already is an
*os.File we use it directly; otherwise we spool to a temp file and clean it up.
Verified with an A/B upload of a 56 MB non-faststart clip: stock build produced
no thumbnail, patched build produced a correct thumbnail.
Co-authored-by: pennyucloud <valentino@pennyu.co.id>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Introduced new documentation for CLI subcommands: `upload` and `watch`, detailing their usage, flags, and examples.
- Added a section on file naming and conflict strategies, explaining how users can customize file names and handle duplicates via `/config` and `/fnametmpl` commands.
- Translated the new documentation into Chinese for broader accessibility.
* fix(api): update task route to handle GET and POST methods
Signed-off-by: Ilham Syahid S <ilhamsyahids@gmail.com>
* fix(api): implement ExecutableWrapper to manage task execution and status updates
Signed-off-by: Ilham Syahid S <ilhamsyahids@gmail.com>
* fix(api): refactor task registration and enqueueing into a separate method
Signed-off-by: Ilham Syahid S <ilhamsyahids@gmail.com>
---------
Signed-off-by: Ilham Syahid S <ilhamsyahids@gmail.com>
- Created new markdown files for Aria2 download, direct download links, parsers, storage rules, silent mode, storage transfer, chat watching, and yt-dlp video download.
- Included usage examples, configuration instructions, and detailed explanations for each feature.
- Translated documentation into Chinese for accessibility.
- Added Handlers struct and methods for task operations
- Implemented task progress tracking and storage
- Created server setup with middleware for logging and recovery
- Added support for Telegram file extraction and Telegraph image extraction
- Introduced webhook functionality for task status updates
- Defined request and response types for API interactions
* fix: update StoragePath method to return specific path for single file
* feat: add Rclone storage support with configuration and file operations
* docs: add Rclone support to documentation for configuration and usage
- Updated command usage in English and Simplified Chinese localization files to reflect changes in transfer command syntax.
- Removed batch import task implementation, replacing it with a new transfer task implementation.
- Introduced new task structure and progress tracking for file transfers.
- Updated task type enumeration to replace batch import with transfer.
- Added new fields in data structures to support transfer operations.
- Implemented file handling and progress reporting for the transfer task.