mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-08-28 19:56:41 +08:00
* fix: prevent queue deadlock after cancelling tasks Get no longer recurses while holding the mutex. Cancelled queued tasks leave the map, making their IDs reusable. Closed empty queues return ErrQueueClosed. * fix: init task queue lazily and close on shutdown AddTask is safe before Run by initializing the queue once. Close unblocks workers waiting in Get. * fix: make resource fingerprints deterministic Sort map keys before hashing so Resource.ID is stable. * fix: harden per-item processing tracking in tasks Use the resource fingerprint as the dedup key on insert and delete. Check and set processing entries atomically instead of TOCTOU. Count only successful downloads. * fix: honor IgnoreErrors in batch tasks Element failures no longer cancel sibling elements or stop later groups. * fix: report streamed upload bytes in batch tasks Stream downloads report their byte count as the upload total. * fix: validate i18n key parity across locales geni18n fails when a language file misses any key. Align the syncpeers completion key between en and zh-Hans. Translate three untranslated parse keys in zh-Hans. * refactor: share progress throttling helpers Move size-tiered and count-based throttling into progressutil. Localize hardcoded Chinese progress strings. Drop five duplicated implementations and dead local copies. * refactor: share unique filename logic Storage backends use fsutil.UniquePath instead of local loops. * fix: sanitize local storage paths Reject absolute paths and dot-dot escapes in Save. Check close errors and wrap creation failures. * fix: preserve webdav error causes Wrap mkdir and write failures with %w and drop dead error values. * fix: kill rclone subprocess on reader close Prevent cat processes from hanging after the pipe is closed. * fix: fail alist init instead of exiting Replace log.Fatalf with wrapped errors so a bad alist cannot kill the bot. Cancel token refresh with the init context and re-login on 401. * fix: enforce telegram album limits and track saved paths Use tglimit.MaxAlbumItems for album batching and video splitting. Exists now reports previously saved paths instead of always false. * fix: guard storage registry maps Protect Storages and UserStorages with mutexes and expose read accessors. * fix: harden JS parser plugin runtime Validate semver instead of panicking and require canHandle. Recover plugin worker panics and time out CanHandle calls. Return a copy from the registry and sanitize install filenames. * fix: guard kemono parser against nil fields Skip sparse preview and attachment entries instead of panicking. * refactor: remove commented-out dead code Drop unused kemono legacy types and commented response structs. * test: cover invalid plugin version rejection * fix: show all queued tasks in /task list Render up to ten tasks and append the truncation note once. * fix: guard callback data parsing Reject malformed callback payloads before indexing split parts. * fix: isolate media groups per user Key pending groups by chat, user and group id. * fix: require permission for callback handlers * fix: initialize userbot context once Replace the racy lazy init with sync.OnceValue. * fix: avoid leaking raw errors in /dir reply * fix: notify users on invalid update version * fix: fail fast when API listen fails Bind synchronously and surface errors instead of logging them. * fix: add timeouts and backoff to webhook delivery * refactor: remove dead code from api and bot Drop the empty ProgressTracker shim, unused token context key and a redundant SetBotCommands call. * fix: load remote config without local lookup Skip the local file search after reading a config URL and add a timeout. * refactor: drop unused hook config * docs: document parser plugin config * ci: fix BuildTime formatting and align checkout Actions format does not format dates; pass the raw timestamp. * chore: ignore cache directory * fix: make cache init idempotent * fix: upload only downloaded batch elements Failed elements keep partial cache files and never reach the backend. Successfully downloaded siblings still upload when one element fails. * fix: record telegram saved paths only after upload Skip-large returns a sentinel so skipped files are not marked as saved. * fix: deduplicate alist token refreshes Guard token access with a mutex and merge concurrent logins. Reuse a recent refresh to avoid login storms. * test: cover concurrent alist 401 retry Ten parallel uploads share a single re-login under -race. * fix: count parsed resources in progress text * fix: localize storage lookup errors in /dir Use the shared i18n key and escape the dynamic error. * fix: deduplicate concurrent storage initialization singleflight merges first-time inits so side effects are not duplicated. * fix: guard nil progress trackers in api-created tasks Batch, telegraph and transfer tasks run without a Telegram tracker when created through the API; their callbacks must not panic. * fix: keep album order when filtering failed batch items Download results are stored by original index so surviving elements keep their source order. * test: cover nil-tracker task execution * fix: report partial failure in batch done message IgnoreErrors runs with failed elements show success and failed counts instead of claiming every file completed. * fix: skip login refresh for token-only alist storage 401 responses surface the auth error instead of sending a credential-less login; the refresh window never exceeds TokenExp. * test: cover alist refresh semantics Concurrent refresh uses username/password; token-only storage never attempts a login on 401. * fix: call tracker from notifyProgress instead of recursing The helper called itself, overflowing the stack on any batch task with a progress tracker. * fix: propagate cancellation past IgnoreErrors Cancelled tasks must not be reported as successful: only ordinary element failures are ignored. * test: cover notifyProgress tracker call * test: cover cancellation with IgnoreErrors * fix: refresh alist token after startup 401s The init login no longer satisfies the dedup window, so an early 401 triggers a real refresh; later 401s reuse it. Clarify that streaming uploads cannot replay their body. * test: exercise the alist 401 refresh path Concurrent uploads now reject the init token, share one refresh and retry with the new token; token-only stays inert. * style: trim verbose comments Drop process-style explanations; keep one-line behavior notes. * style: gofmt test files * fix: drop unbounded saved-path cache in telegram storage Telegram cannot reliably query remote file existence, so the cache answered a question it could not answer and grew without bound. Exists returns false again, as before. * style: format codes
335 lines
32 KiB
Go
335 lines
32 KiB
Go
// Code generated by cmd/geni18n. DO NOT EDIT.
|
|
package i18nk
|
|
|
|
type Key string
|
|
|
|
const (
|
|
BotMsgAria2ErrorAddingAria2Download Key = "bot.msg.aria2.error_adding_aria2_download"
|
|
BotMsgAria2ErrorAria2ClientInitFailed Key = "bot.msg.aria2.error_aria2_client_init_failed"
|
|
BotMsgAria2ErrorAria2NotEnabled Key = "bot.msg.aria2.error_aria2_not_enabled"
|
|
BotMsgAria2InfoAddingAria2Download Key = "bot.msg.aria2.info_adding_aria2_download"
|
|
BotMsgAria2InfoAria2DownloadAdded Key = "bot.msg.aria2.info_aria2_download_added"
|
|
BotMsgAria2InfoSelectStorage Key = "bot.msg.aria2.info_select_storage"
|
|
BotMsgCancelErrorCancelFailed Key = "bot.msg.cancel.error_cancel_failed"
|
|
BotMsgCancelInfoCancelRequested Key = "bot.msg.cancel.info_cancel_requested"
|
|
BotMsgCancelInfoCancellingTask Key = "bot.msg.cancel.info_cancelling_task"
|
|
BotMsgCancelUsage Key = "bot.msg.cancel.usage"
|
|
BotMsgCmdAria2dl Key = "bot.msg.cmd.aria2dl"
|
|
BotMsgCmdCancel Key = "bot.msg.cmd.cancel"
|
|
BotMsgCmdConfig Key = "bot.msg.cmd.config"
|
|
BotMsgCmdDir Key = "bot.msg.cmd.dir"
|
|
BotMsgCmdDl Key = "bot.msg.cmd.dl"
|
|
BotMsgCmdFnametmpl Key = "bot.msg.cmd.fnametmpl"
|
|
BotMsgCmdHelp Key = "bot.msg.cmd.help"
|
|
BotMsgCmdImport Key = "bot.msg.cmd.import"
|
|
BotMsgCmdLswatch Key = "bot.msg.cmd.lswatch"
|
|
BotMsgCmdParser Key = "bot.msg.cmd.parser"
|
|
BotMsgCmdRule Key = "bot.msg.cmd.rule"
|
|
BotMsgCmdSave Key = "bot.msg.cmd.save"
|
|
BotMsgCmdSilent Key = "bot.msg.cmd.silent"
|
|
BotMsgCmdStart Key = "bot.msg.cmd.start"
|
|
BotMsgCmdStorage Key = "bot.msg.cmd.storage"
|
|
BotMsgCmdSyncpeers Key = "bot.msg.cmd.syncpeers"
|
|
BotMsgCmdTask Key = "bot.msg.cmd.task"
|
|
BotMsgCmdTransfer Key = "bot.msg.cmd.transfer"
|
|
BotMsgCmdUnwatch Key = "bot.msg.cmd.unwatch"
|
|
BotMsgCmdUpdate Key = "bot.msg.cmd.update"
|
|
BotMsgCmdWatch Key = "bot.msg.cmd.watch"
|
|
BotMsgCmdYtdlp Key = "bot.msg.cmd.ytdlp"
|
|
BotMsgCommonButtonConflictOverwrite Key = "bot.msg.common.button_conflict_overwrite"
|
|
BotMsgCommonButtonConflictRename Key = "bot.msg.common.button_conflict_rename"
|
|
BotMsgCommonButtonConflictSkip Key = "bot.msg.common.button_conflict_skip"
|
|
BotMsgCommonCancelButtonText Key = "bot.msg.common.cancel_button_text"
|
|
BotMsgCommonErrorBuildDirSelectKeyboardFailed Key = "bot.msg.common.error_build_dir_select_keyboard_failed"
|
|
BotMsgCommonErrorBuildStorageSelectKeyboardFailed Key = "bot.msg.common.error_build_storage_select_keyboard_failed"
|
|
BotMsgCommonErrorBuildStorageSelectMessageFailed Key = "bot.msg.common.error_build_storage_select_message_failed"
|
|
BotMsgCommonErrorDataExpired Key = "bot.msg.common.error_data_expired"
|
|
BotMsgCommonErrorDefaultStorageNotSet Key = "bot.msg.common.error_default_storage_not_set"
|
|
BotMsgCommonErrorGetDirFailed Key = "bot.msg.common.error_get_dir_failed"
|
|
BotMsgCommonErrorGetFileFailed Key = "bot.msg.common.error_get_file_failed"
|
|
BotMsgCommonErrorGetMessagesFailed Key = "bot.msg.common.error_get_messages_failed"
|
|
BotMsgCommonErrorGetStorageFailed Key = "bot.msg.common.error_get_storage_failed"
|
|
BotMsgCommonErrorGetTelegraphPageFailed Key = "bot.msg.common.error_get_telegraph_page_failed"
|
|
BotMsgCommonErrorGetUserFailed Key = "bot.msg.common.error_get_user_failed"
|
|
BotMsgCommonErrorGetUserInfoFailed Key = "bot.msg.common.error_get_user_info_failed"
|
|
BotMsgCommonErrorGetUserWithErrFailed Key = "bot.msg.common.error_get_user_with_err_failed"
|
|
BotMsgCommonErrorInvalidIdOrUsername Key = "bot.msg.common.error_invalid_id_or_username"
|
|
BotMsgCommonErrorInvalidMsgIdRange Key = "bot.msg.common.error_invalid_msg_id_range"
|
|
BotMsgCommonErrorInvalidRegex Key = "bot.msg.common.error_invalid_regex"
|
|
BotMsgCommonErrorNoAvailableStorage Key = "bot.msg.common.error_no_available_storage"
|
|
BotMsgCommonErrorNoImagesInTelegraphPage Key = "bot.msg.common.error_no_images_in_telegraph_page"
|
|
BotMsgCommonErrorNoMessagesInRange Key = "bot.msg.common.error_no_messages_in_range"
|
|
BotMsgCommonErrorNoPermission Key = "bot.msg.common.error_no_permission"
|
|
BotMsgCommonErrorNoSavableFilesFound Key = "bot.msg.common.error_no_savable_files_found"
|
|
BotMsgCommonErrorNoSavableMessagesInRange Key = "bot.msg.common.error_no_savable_messages_in_range"
|
|
BotMsgCommonErrorParseTelegraphPathFailed Key = "bot.msg.common.error_parse_telegraph_path_failed"
|
|
BotMsgCommonErrorTaskAddFailed Key = "bot.msg.common.error_task_add_failed"
|
|
BotMsgCommonErrorTaskCreateFailed Key = "bot.msg.common.error_task_create_failed"
|
|
BotMsgCommonErrorUpdateUserInfoFailed Key = "bot.msg.common.error_update_user_info_failed"
|
|
BotMsgCommonInfoAllConflictFilesSkipped Key = "bot.msg.common.info_all_conflict_files_skipped"
|
|
BotMsgCommonInfoBatchTasksAdded Key = "bot.msg.common.info_batch_tasks_added"
|
|
BotMsgCommonInfoBatchTasksAddedWithSkipped Key = "bot.msg.common.info_batch_tasks_added_with_skipped"
|
|
BotMsgCommonInfoConflictFilesSkipped Key = "bot.msg.common.info_conflict_files_skipped"
|
|
BotMsgCommonInfoDefaultStorageSet Key = "bot.msg.common.info_default_storage_set"
|
|
BotMsgCommonInfoDefaultStorageWithDirSet Key = "bot.msg.common.info_default_storage_with_dir_set"
|
|
BotMsgCommonInfoFetchingFileInfo Key = "bot.msg.common.info_fetching_file_info"
|
|
BotMsgCommonInfoFetchingMessages Key = "bot.msg.common.info_fetching_messages"
|
|
BotMsgCommonInfoFetchingTelegraphPage Key = "bot.msg.common.info_fetching_telegraph_page"
|
|
BotMsgCommonInfoFoundFilesSelectStorage Key = "bot.msg.common.info_found_files_select_storage"
|
|
BotMsgCommonInfoSilentModeOff Key = "bot.msg.common.info_silent_mode_off"
|
|
BotMsgCommonInfoSilentModeOn Key = "bot.msg.common.info_silent_mode_on"
|
|
BotMsgCommonInfoTaskAdded Key = "bot.msg.common.info_task_added"
|
|
BotMsgCommonPromptConflictMoreFiles Key = "bot.msg.common.prompt_conflict_more_files"
|
|
BotMsgCommonPromptSelectConflictStrategy Key = "bot.msg.common.prompt_select_conflict_strategy"
|
|
BotMsgCommonPromptSelectDefaultDir Key = "bot.msg.common.prompt_select_default_dir"
|
|
BotMsgCommonPromptSelectDefaultStorage Key = "bot.msg.common.prompt_select_default_storage"
|
|
BotMsgCommonPromptSelectDir Key = "bot.msg.common.prompt_select_dir"
|
|
BotMsgConfigButtonConflictStrategy Key = "bot.msg.config.button_conflict_strategy"
|
|
BotMsgConfigButtonFilenameStrategy Key = "bot.msg.config.button_filename_strategy"
|
|
BotMsgConfigConflictStrategyAsk Key = "bot.msg.config.conflict_strategy_ask"
|
|
BotMsgConfigConflictStrategyOverwrite Key = "bot.msg.config.conflict_strategy_overwrite"
|
|
BotMsgConfigConflictStrategyRename Key = "bot.msg.config.conflict_strategy_rename"
|
|
BotMsgConfigConflictStrategySkip Key = "bot.msg.config.conflict_strategy_skip"
|
|
BotMsgConfigErrorInvalidCallbackData Key = "bot.msg.config.error_invalid_callback_data"
|
|
BotMsgConfigErrorInvalidTemplate Key = "bot.msg.config.error_invalid_template"
|
|
BotMsgConfigFnametmplHelp Key = "bot.msg.config.fnametmpl_help"
|
|
BotMsgConfigInfoConflictStrategySet Key = "bot.msg.config.info_conflict_strategy_set"
|
|
BotMsgConfigInfoCurrentTemplatePrefix Key = "bot.msg.config.info_current_template_prefix"
|
|
BotMsgConfigInfoFilenameStrategySet Key = "bot.msg.config.info_filename_strategy_set"
|
|
BotMsgConfigInfoTemplateUpdated Key = "bot.msg.config.info_template_updated"
|
|
BotMsgConfigPromptSelectConflictStrategy Key = "bot.msg.config.prompt_select_conflict_strategy"
|
|
BotMsgConfigPromptSelectFilenameStrategy Key = "bot.msg.config.prompt_select_filename_strategy"
|
|
BotMsgConfigPromptSelectOption Key = "bot.msg.config.prompt_select_option"
|
|
BotMsgDirButtonDefault Key = "bot.msg.dir.button_default"
|
|
BotMsgDirErrorCreateDirFailed Key = "bot.msg.dir.error_create_dir_failed"
|
|
BotMsgDirErrorDeleteDirFailed Key = "bot.msg.dir.error_delete_dir_failed"
|
|
BotMsgDirErrorGetUserDirsFailed Key = "bot.msg.dir.error_get_user_dirs_failed"
|
|
BotMsgDirErrorGetUserFailed Key = "bot.msg.dir.error_get_user_failed"
|
|
BotMsgDirErrorInvalidDirId Key = "bot.msg.dir.error_invalid_dir_id"
|
|
BotMsgDirErrorUnknownOperation Key = "bot.msg.dir.error_unknown_operation"
|
|
BotMsgDirHelpAddExampleCmd Key = "bot.msg.dir.help_add_example_cmd"
|
|
BotMsgDirHelpAddExamplePrefix Key = "bot.msg.dir.help_add_example_prefix"
|
|
BotMsgDirHelpAddSuffix Key = "bot.msg.dir.help_add_suffix"
|
|
BotMsgDirHelpAvailableOps Key = "bot.msg.dir.help_available_ops"
|
|
BotMsgDirHelpDelExampleCmd Key = "bot.msg.dir.help_del_example_cmd"
|
|
BotMsgDirHelpDelExamplePrefix Key = "bot.msg.dir.help_del_example_prefix"
|
|
BotMsgDirHelpDelSuffix Key = "bot.msg.dir.help_del_suffix"
|
|
BotMsgDirHelpExistingDirsPrefix Key = "bot.msg.dir.help_existing_dirs_prefix"
|
|
BotMsgDirHelpUsage Key = "bot.msg.dir.help_usage"
|
|
BotMsgDirInfoCreateDirSuccess Key = "bot.msg.dir.info_create_dir_success"
|
|
BotMsgDirInfoDeleteDirSuccess Key = "bot.msg.dir.info_delete_dir_success"
|
|
BotMsgDlErrorNoValidLinks Key = "bot.msg.dl.error_no_valid_links"
|
|
BotMsgDlInfoFilesSelectStorage Key = "bot.msg.dl.info_files_select_storage"
|
|
BotMsgDlUsage Key = "bot.msg.dl.usage"
|
|
BotMsgHelpTextFmt Key = "bot.msg.help_text_fmt"
|
|
BotMsgMediaGroupErrorBuildStorageSelectKeyboardFailed Key = "bot.msg.media_group.error_build_storage_select_keyboard_failed"
|
|
BotMsgMediaGroupInfoGroupFoundFilesSelectStorage Key = "bot.msg.media_group.info_group_found_files_select_storage"
|
|
BotMsgMediaGroupInfoSavingFiles Key = "bot.msg.media_group.info_saving_files"
|
|
BotMsgParseErrorBuildParsedTextEntityFailed Key = "bot.msg.parse.error_build_parsed_text_entity_failed"
|
|
BotMsgParseErrorBuildStorageSelectKeyboardFailed Key = "bot.msg.parse.error_build_storage_select_keyboard_failed"
|
|
BotMsgParseErrorParseTextFailed Key = "bot.msg.parse.error_parse_text_failed"
|
|
BotMsgParseInfoAuthorPrefix Key = "bot.msg.parse.info_author_prefix"
|
|
BotMsgParseInfoDescriptionPrefix Key = "bot.msg.parse.info_description_prefix"
|
|
BotMsgParseInfoFileCountPrefix Key = "bot.msg.parse.info_file_count_prefix"
|
|
BotMsgParseInfoLinkPrefix Key = "bot.msg.parse.info_link_prefix"
|
|
BotMsgParseInfoParsing Key = "bot.msg.parse.info_parsing"
|
|
BotMsgParseInfoPromptSelectStorage Key = "bot.msg.parse.info_prompt_select_storage"
|
|
BotMsgParseInfoTotalSizePrefix Key = "bot.msg.parse.info_total_size_prefix"
|
|
BotMsgParserErrorDownloadFileFailed Key = "bot.msg.parser.error_download_file_failed"
|
|
BotMsgParserErrorFileTooLarge Key = "bot.msg.parser.error_file_too_large"
|
|
BotMsgParserErrorGetFilenameFailed Key = "bot.msg.parser.error_get_filename_failed"
|
|
BotMsgParserErrorInstallPluginFailed Key = "bot.msg.parser.error_install_plugin_failed"
|
|
BotMsgParserErrorNoValidFileInReply Key = "bot.msg.parser.error_no_valid_file_in_reply"
|
|
BotMsgParserErrorOnlyJsSupported Key = "bot.msg.parser.error_only_js_supported"
|
|
BotMsgParserErrorWrongFileType Key = "bot.msg.parser.error_wrong_file_type"
|
|
BotMsgParserHelpText Key = "bot.msg.parser.help_text"
|
|
BotMsgParserInfoInstallPluginSuccess Key = "bot.msg.parser.info_install_plugin_success"
|
|
BotMsgParserPluginNotEnabled Key = "bot.msg.parser.plugin_not_enabled"
|
|
BotMsgParserPromptReplyWithParserFile Key = "bot.msg.parser.prompt_reply_with_parser_file"
|
|
BotMsgProgressAria2Done Key = "bot.msg.progress.aria2_done"
|
|
BotMsgProgressAria2Downloading Key = "bot.msg.progress.aria2_downloading"
|
|
BotMsgProgressAria2Start Key = "bot.msg.progress.aria2_start"
|
|
BotMsgProgressAvgSpeedPrefix Key = "bot.msg.progress.avg_speed_prefix"
|
|
BotMsgProgressBatchCanceled Key = "bot.msg.progress.batch_canceled"
|
|
BotMsgProgressBatchDone Key = "bot.msg.progress.batch_done"
|
|
BotMsgProgressBatchDoneWithSkipped Key = "bot.msg.progress.batch_done_with_skipped"
|
|
BotMsgProgressBatchFailedGroup Key = "bot.msg.progress.batch_failed_group"
|
|
BotMsgProgressBatchFailedItem Key = "bot.msg.progress.batch_failed_item"
|
|
BotMsgProgressBatchFailedTask Key = "bot.msg.progress.batch_failed_task"
|
|
BotMsgProgressBatchFailureStageBatchUpload Key = "bot.msg.progress.batch_failure_stage_batch_upload"
|
|
BotMsgProgressBatchFailureStageCache Key = "bot.msg.progress.batch_failure_stage_cache"
|
|
BotMsgProgressBatchFailureStageConfirm Key = "bot.msg.progress.batch_failure_stage_confirm"
|
|
BotMsgProgressBatchFailureStageDownload Key = "bot.msg.progress.batch_failure_stage_download"
|
|
BotMsgProgressBatchFailureStageInternal Key = "bot.msg.progress.batch_failure_stage_internal"
|
|
BotMsgProgressBatchFailureStageUpload Key = "bot.msg.progress.batch_failure_stage_upload"
|
|
BotMsgProgressBatchItemConfirming Key = "bot.msg.progress.batch_item_confirming"
|
|
BotMsgProgressBatchItemDownloading Key = "bot.msg.progress.batch_item_downloading"
|
|
BotMsgProgressBatchItemDownloadingUnknown Key = "bot.msg.progress.batch_item_downloading_unknown"
|
|
BotMsgProgressBatchItemRetrying Key = "bot.msg.progress.batch_item_retrying"
|
|
BotMsgProgressBatchItemTransferring Key = "bot.msg.progress.batch_item_transferring"
|
|
BotMsgProgressBatchItemTransferringUnknown Key = "bot.msg.progress.batch_item_transferring_unknown"
|
|
BotMsgProgressBatchItemUploading Key = "bot.msg.progress.batch_item_uploading"
|
|
BotMsgProgressBatchStatusHeader Key = "bot.msg.progress.batch_status_header"
|
|
BotMsgProgressBatchSummaryConfirming Key = "bot.msg.progress.batch_summary_confirming"
|
|
BotMsgProgressBatchSummaryFailed Key = "bot.msg.progress.batch_summary_failed"
|
|
BotMsgProgressBatchSummaryHiddenActive Key = "bot.msg.progress.batch_summary_hidden_active"
|
|
BotMsgProgressBatchSummarySkipped Key = "bot.msg.progress.batch_summary_skipped"
|
|
BotMsgProgressCurrentProgressPrefix Key = "bot.msg.progress.current_progress_prefix"
|
|
BotMsgProgressCurrentSpeedPrefix Key = "bot.msg.progress.current_speed_prefix"
|
|
BotMsgProgressDirectDonePrefix Key = "bot.msg.progress.direct_done_prefix"
|
|
BotMsgProgressDirectStart Key = "bot.msg.progress.direct_start"
|
|
BotMsgProgressDownloadedPrefix Key = "bot.msg.progress.downloaded_prefix"
|
|
BotMsgProgressDownloadingPrefix Key = "bot.msg.progress.downloading_prefix"
|
|
BotMsgProgressErrorPrefix Key = "bot.msg.progress.error_prefix"
|
|
BotMsgProgressParsedDonePrefix Key = "bot.msg.progress.parsed_done_prefix"
|
|
BotMsgProgressParsedStartPrefix Key = "bot.msg.progress.parsed_start_prefix"
|
|
BotMsgProgressProcessingListPrefix Key = "bot.msg.progress.processing_list_prefix"
|
|
BotMsgProgressProcessingNone Key = "bot.msg.progress.processing_none"
|
|
BotMsgProgressSavePathPrefix Key = "bot.msg.progress.save_path_prefix"
|
|
BotMsgProgressSingleCanceled Key = "bot.msg.progress.single_canceled"
|
|
BotMsgProgressSingleDone Key = "bot.msg.progress.single_done"
|
|
BotMsgProgressSingleDownloading Key = "bot.msg.progress.single_downloading"
|
|
BotMsgProgressSingleDownloadingUnknown Key = "bot.msg.progress.single_downloading_unknown"
|
|
BotMsgProgressSingleFailed Key = "bot.msg.progress.single_failed"
|
|
BotMsgProgressSingleStatusHeader Key = "bot.msg.progress.single_status_header"
|
|
BotMsgProgressSingleUploadRetrying Key = "bot.msg.progress.single_upload_retrying"
|
|
BotMsgProgressSingleUploading Key = "bot.msg.progress.single_uploading"
|
|
BotMsgProgressSizeWithFiles Key = "bot.msg.progress.size_with_files"
|
|
BotMsgProgressSizeWithResources Key = "bot.msg.progress.size_with_resources"
|
|
BotMsgProgressTaskCanceledWithId Key = "bot.msg.progress.task_canceled_with_id"
|
|
BotMsgProgressTaskFailedWithError Key = "bot.msg.progress.task_failed_with_error"
|
|
BotMsgProgressTelegraphDonePrefix Key = "bot.msg.progress.telegraph_done_prefix"
|
|
BotMsgProgressTelegraphProgressPrefix Key = "bot.msg.progress.telegraph_progress_prefix"
|
|
BotMsgProgressTelegraphStartPrefix Key = "bot.msg.progress.telegraph_start_prefix"
|
|
BotMsgProgressTotalSizePrefix Key = "bot.msg.progress.total_size_prefix"
|
|
BotMsgProgressTransferAvgSpeedPrefix Key = "bot.msg.progress.transfer_avg_speed_prefix"
|
|
BotMsgProgressTransferElapsedTimePrefix Key = "bot.msg.progress.transfer_elapsed_time_prefix"
|
|
BotMsgProgressTransferFailedFilesPrefix Key = "bot.msg.progress.transfer_failed_files_prefix"
|
|
BotMsgProgressTransferFailedPrefix Key = "bot.msg.progress.transfer_failed_prefix"
|
|
BotMsgProgressTransferProcessingMore Key = "bot.msg.progress.transfer_processing_more"
|
|
BotMsgProgressTransferProcessingPrefix Key = "bot.msg.progress.transfer_processing_prefix"
|
|
BotMsgProgressTransferProgressPrefix Key = "bot.msg.progress.transfer_progress_prefix"
|
|
BotMsgProgressTransferRemainingTimePrefix Key = "bot.msg.progress.transfer_remaining_time_prefix"
|
|
BotMsgProgressTransferSpeedPrefix Key = "bot.msg.progress.transfer_speed_prefix"
|
|
BotMsgProgressTransferStartPrefix Key = "bot.msg.progress.transfer_start_prefix"
|
|
BotMsgProgressTransferSuccessPrefix Key = "bot.msg.progress.transfer_success_prefix"
|
|
BotMsgProgressTransferTotalFilesPrefix Key = "bot.msg.progress.transfer_total_files_prefix"
|
|
BotMsgProgressTransferTotalSizePrefix Key = "bot.msg.progress.transfer_total_size_prefix"
|
|
BotMsgProgressTransferUploadedPrefix Key = "bot.msg.progress.transfer_uploaded_prefix"
|
|
BotMsgProgressYtdlpDone Key = "bot.msg.progress.ytdlp_done"
|
|
BotMsgProgressYtdlpDownloading Key = "bot.msg.progress.ytdlp_downloading"
|
|
BotMsgProgressYtdlpStart Key = "bot.msg.progress.ytdlp_start"
|
|
BotMsgRuleErrorCreateRuleFailed Key = "bot.msg.rule.error_create_rule_failed"
|
|
BotMsgRuleErrorDeleteRuleFailed Key = "bot.msg.rule.error_delete_rule_failed"
|
|
BotMsgRuleErrorGetUserRulesFailed Key = "bot.msg.rule.error_get_user_rules_failed"
|
|
BotMsgRuleErrorInvalidRuleId Key = "bot.msg.rule.error_invalid_rule_id"
|
|
BotMsgRuleErrorInvalidRuleType Key = "bot.msg.rule.error_invalid_rule_type"
|
|
BotMsgRuleErrorStorageNotFound Key = "bot.msg.rule.error_storage_not_found"
|
|
BotMsgRuleErrorUpdateUserFailed Key = "bot.msg.rule.error_update_user_failed"
|
|
BotMsgRuleHelpAddSuffix Key = "bot.msg.rule.help_add_suffix"
|
|
BotMsgRuleHelpAvailableOps Key = "bot.msg.rule.help_available_ops"
|
|
BotMsgRuleHelpCurrentModeDisabled Key = "bot.msg.rule.help_current_mode_disabled"
|
|
BotMsgRuleHelpCurrentModeEnabled Key = "bot.msg.rule.help_current_mode_enabled"
|
|
BotMsgRuleHelpDelSuffix Key = "bot.msg.rule.help_del_suffix"
|
|
BotMsgRuleHelpExistingRulesPrefix Key = "bot.msg.rule.help_existing_rules_prefix"
|
|
BotMsgRuleHelpPresetSuffix Key = "bot.msg.rule.help_preset_suffix"
|
|
BotMsgRuleHelpSwitchSuffix Key = "bot.msg.rule.help_switch_suffix"
|
|
BotMsgRuleHelpUsage Key = "bot.msg.rule.help_usage"
|
|
BotMsgRuleInfoCreateRuleSuccess Key = "bot.msg.rule.info_create_rule_success"
|
|
BotMsgRuleInfoDeleteRuleSuccess Key = "bot.msg.rule.info_delete_rule_success"
|
|
BotMsgRuleInfoPresetImported Key = "bot.msg.rule.info_preset_imported"
|
|
BotMsgRuleInfoRuleModeDisabled Key = "bot.msg.rule.info_rule_mode_disabled"
|
|
BotMsgRuleInfoRuleModeEnabled Key = "bot.msg.rule.info_rule_mode_enabled"
|
|
BotMsgRulePromptProvideRuleId Key = "bot.msg.rule.prompt_provide_rule_id"
|
|
BotMsgRulePromptProvideStorageName Key = "bot.msg.rule.prompt_provide_storage_name"
|
|
BotMsgSaveErrorInvalidIdOrUsername Key = "bot.msg.save.error_invalid_id_or_username"
|
|
BotMsgSaveHelpText Key = "bot.msg.save_help_text"
|
|
BotMsgStorageInfoFilenamePrefix Key = "bot.msg.storage.info_filename_prefix"
|
|
BotMsgStorageInfoPromptSelectStorage Key = "bot.msg.storage.info_prompt_select_storage"
|
|
BotMsgSyncpeersFailed Key = "bot.msg.syncpeers.failed"
|
|
BotMsgSyncpeersStart Key = "bot.msg.syncpeers.start"
|
|
BotMsgSyncpeersSuccess Key = "bot.msg.syncpeers.success"
|
|
BotMsgTasksCancelFailed Key = "bot.msg.tasks.cancel_failed"
|
|
BotMsgTasksCancelRequestedPrefix Key = "bot.msg.tasks.cancel_requested_prefix"
|
|
BotMsgTasksFieldCreated Key = "bot.msg.tasks.field_created"
|
|
BotMsgTasksFieldId Key = "bot.msg.tasks.field_id"
|
|
BotMsgTasksFieldStatus Key = "bot.msg.tasks.field_status"
|
|
BotMsgTasksFieldTitle Key = "bot.msg.tasks.field_title"
|
|
BotMsgTasksInfoAddedToQueueFull Key = "bot.msg.tasks.info_added_to_queue_full"
|
|
BotMsgTasksInfoAddedToQueuePrefix Key = "bot.msg.tasks.info_added_to_queue_prefix"
|
|
BotMsgTasksInfoFilenamePrefix Key = "bot.msg.tasks.info_filename_prefix"
|
|
BotMsgTasksInfoQueueLengthPrefix Key = "bot.msg.tasks.info_queue_length_prefix"
|
|
BotMsgTasksQueuedEmpty Key = "bot.msg.tasks.queued_empty"
|
|
BotMsgTasksQueuedTitle Key = "bot.msg.tasks.queued_title"
|
|
BotMsgTasksRunningEmpty Key = "bot.msg.tasks.running_empty"
|
|
BotMsgTasksRunningTitle Key = "bot.msg.tasks.running_title"
|
|
BotMsgTasksStatusCancelRequested Key = "bot.msg.tasks.status_cancel_requested"
|
|
BotMsgTasksStatusQueued Key = "bot.msg.tasks.status_queued"
|
|
BotMsgTasksStatusRunning Key = "bot.msg.tasks.status_running"
|
|
BotMsgTasksTotalPrefix Key = "bot.msg.tasks.total_prefix"
|
|
BotMsgTasksTruncatedNote Key = "bot.msg.tasks.truncated_note"
|
|
BotMsgTasksUsage Key = "bot.msg.tasks.usage"
|
|
BotMsgTasksUsageCancel Key = "bot.msg.tasks.usage_cancel"
|
|
BotMsgTelegraphErrorBuildStorageSelectKeyboardFailed Key = "bot.msg.telegraph.error_build_storage_select_keyboard_failed"
|
|
BotMsgTelegraphInfoPicCountPrefix Key = "bot.msg.telegraph.info_pic_count_prefix"
|
|
BotMsgTelegraphInfoPromptSelectStorage Key = "bot.msg.telegraph.info_prompt_select_storage"
|
|
BotMsgTelegraphInfoTitlePrefix Key = "bot.msg.telegraph.info_title_prefix"
|
|
BotMsgTransferErrorAddTaskFailed Key = "bot.msg.transfer.error_add_task_failed"
|
|
BotMsgTransferErrorBuildStorageSelectKeyboardFailed Key = "bot.msg.transfer.error_build_storage_select_keyboard_failed"
|
|
BotMsgTransferErrorInvalidRegex Key = "bot.msg.transfer.error_invalid_regex"
|
|
BotMsgTransferErrorInvalidSource Key = "bot.msg.transfer.error_invalid_source"
|
|
BotMsgTransferErrorInvalidTarget Key = "bot.msg.transfer.error_invalid_target"
|
|
BotMsgTransferErrorListFilesFailed Key = "bot.msg.transfer.error_list_files_failed"
|
|
BotMsgTransferErrorNoFilesToTransfer Key = "bot.msg.transfer.error_no_files_to_transfer"
|
|
BotMsgTransferErrorStorageNotFound Key = "bot.msg.transfer.error_storage_not_found"
|
|
BotMsgTransferErrorStorageNotListable Key = "bot.msg.transfer.error_storage_not_listable"
|
|
BotMsgTransferErrorStorageNotReadable Key = "bot.msg.transfer.error_storage_not_readable"
|
|
BotMsgTransferErrorTargetNotFound Key = "bot.msg.transfer.error_target_not_found"
|
|
BotMsgTransferInfoFetchingFiles Key = "bot.msg.transfer.info_fetching_files"
|
|
BotMsgTransferInfoFilesSelectStorage Key = "bot.msg.transfer.info_files_select_storage"
|
|
BotMsgTransferInfoTaskAdded Key = "bot.msg.transfer.info_task_added"
|
|
BotMsgTransferStartStats Key = "bot.msg.transfer.start_stats"
|
|
BotMsgTransferUsage Key = "bot.msg.transfer.usage"
|
|
BotMsgUpdateButtonUpgrade Key = "bot.msg.update.button_upgrade"
|
|
BotMsgUpdateErrorCheckLatestFailed Key = "bot.msg.update.error_check_latest_failed"
|
|
BotMsgUpdateErrorNoReleaseFound Key = "bot.msg.update.error_no_release_found"
|
|
BotMsgUpdateErrorUpgradeFailed Key = "bot.msg.update.error_upgrade_failed"
|
|
BotMsgUpdateErrorVersionVarInvalid Key = "bot.msg.update.error_version_var_invalid"
|
|
BotMsgUpdateInfoAlreadyLatest Key = "bot.msg.update.info_already_latest"
|
|
BotMsgUpdateInfoMajorUpgradeRequired Key = "bot.msg.update.info_major_upgrade_required"
|
|
BotMsgUpdateInfoNewVersionInDocker Key = "bot.msg.update.info_new_version_in_docker"
|
|
BotMsgUpdateInfoNewVersionPromptUpgrade Key = "bot.msg.update.info_new_version_prompt_upgrade"
|
|
BotMsgUpdateInfoUpgradeSuccess Key = "bot.msg.update.info_upgrade_success"
|
|
BotMsgUpdateInfoUpgradingWithVersion Key = "bot.msg.update.info_upgrading_with_version"
|
|
BotMsgWatchErrorFilterFormatInvalid Key = "bot.msg.watch.error_filter_format_invalid"
|
|
BotMsgWatchErrorFilterTypeUnsupported Key = "bot.msg.watch.error_filter_type_unsupported"
|
|
BotMsgWatchErrorUnwatchChatFailed Key = "bot.msg.watch.error_unwatch_chat_failed"
|
|
BotMsgWatchErrorUnwatchNoChatProvided Key = "bot.msg.watch.error_unwatch_no_chat_provided"
|
|
BotMsgWatchErrorWatchChatFailed Key = "bot.msg.watch.error_watch_chat_failed"
|
|
BotMsgWatchInfoAlreadyWatchingChat Key = "bot.msg.watch.info_already_watching_chat"
|
|
BotMsgWatchInfoWatchChatStarted Key = "bot.msg.watch.info_watch_chat_started"
|
|
BotMsgWatchInfoWatchChatStopped Key = "bot.msg.watch.info_watch_chat_stopped"
|
|
BotMsgWatchInfoWatchListEmpty Key = "bot.msg.watch.info_watch_list_empty"
|
|
BotMsgWatchInfoWatchListFilterPrefix Key = "bot.msg.watch.info_watch_list_filter_prefix"
|
|
BotMsgWatchInfoWatchListHeader Key = "bot.msg.watch.info_watch_list_header"
|
|
BotMsgWatchHelpText Key = "bot.msg.watch_help_text"
|
|
BotMsgYtdlpErrorDownloadFailed Key = "bot.msg.ytdlp.error_download_failed"
|
|
BotMsgYtdlpErrorNoValidUrls Key = "bot.msg.ytdlp.error_no_valid_urls"
|
|
BotMsgYtdlpInfoDownloading Key = "bot.msg.ytdlp.info_downloading"
|
|
BotMsgYtdlpInfoUrlsSelectStorage Key = "bot.msg.ytdlp.info_urls_select_storage"
|
|
BotMsgYtdlpUsage Key = "bot.msg.ytdlp.usage"
|
|
ConfigErrDuplicateStorageName Key = "config.err.duplicate_storage_name"
|
|
ConfigErrInvalidCacheDir Key = "config.err.invalid_cache_dir"
|
|
ErrCleanCacheFailed Key = "err.clean_cache_failed"
|
|
ErrGetCacheAbsPathFailed Key = "err.get_cache_abs_path_failed"
|
|
ErrGetWorkdirFailed Key = "err.get_workdir_failed"
|
|
LifetimeBye Key = "lifetime.bye"
|
|
LifetimeCleaningCache Key = "lifetime.cleaning_cache"
|
|
LifetimeExiting Key = "lifetime.exiting"
|
|
LifetimeInitfailed Key = "lifetime.initfailed"
|
|
LifetimeIniting Key = "lifetime.initing"
|
|
LifetimeUserLoginFailed Key = "lifetime.user_login_failed"
|
|
ParserPluginLoadFailed Key = "parser.plugin.load_failed"
|
|
ParserPluginLoadedDir Key = "parser.plugin.loaded_dir"
|
|
)
|