From 991097373263f2f04d6042eed4fabe04984737f8 Mon Sep 17 00:00:00 2001 From: Kuingsmile <96409857+Kuingsmile@users.noreply.github.com> Date: Tue, 27 Jan 2026 15:55:41 +0800 Subject: [PATCH] :sparkles: Feature(custom): add 3s intermedia to avoid github api rate limit --- currentVersion.md | 1 + currentVersion_en.md | 1 + src/main/manage/apis/github.ts | 4 +++- .../components/common/SingleSelect.vue | 2 ++ src/renderer/manage/pages/BucketPage.vue | 3 ++- src/renderer/manage/pages/ManageMain.vue | 1 + src/renderer/manage/pages/ManageSetting.vue | 19 ++++++++++++++++--- src/renderer/pages/Upload.vue | 11 +++++------ 8 files changed, 31 insertions(+), 11 deletions(-) diff --git a/currentVersion.md b/currentVersion.md index 93910e14..763ca8dd 100644 --- a/currentVersion.md +++ b/currentVersion.md @@ -28,6 +28,7 @@ - 文件浏览页面新增列表模式支持。 - 现在第一次启动时根据系统语言自动选择界面语言 - 现在windows系统第一次启动时会默认显示主界面 +- 管理页面-Github上传多个文件时增加了3s的间隔时间,避免触发Github的API速率限制 - 现在支持手动关闭 GPU 加速,解决部分硬件兼容性导致的黑屏或闪烁问题 - 新增高级动画设置,开启后可获得更佳的 UI 交互体验 diff --git a/currentVersion_en.md b/currentVersion_en.md index 42057b70..b873df81 100644 --- a/currentVersion_en.md +++ b/currentVersion_en.md @@ -28,6 +28,7 @@ Use custom `javascript` scripts to extend PicList's functionality without the ne - Optimized the configuration saving logic for independent image hosting processing settings. - Now automatically selects the interface language based on the system language on the first launch. - Now the main interface will be displayed by default on the first launch of Windows systems. +- Added a 3-second interval when uploading multiple files to GitHub on the management page to avoid triggering GitHub's API rate limits. - Now supports manually disabling GPU acceleration to resolve black screen or flickering issues caused by some hardware compatibility. - Added advanced animation settings for a better UI interaction experience when enabled. diff --git a/src/main/manage/apis/github.ts b/src/main/manage/apis/github.ts index a0a977fa..202b3832 100644 --- a/src/main/manage/apis/github.ts +++ b/src/main/manage/apis/github.ts @@ -480,7 +480,8 @@ class GithubApi { targetFileBucket: repo, targetFileRegion: region, }) - gotUpload( + + await gotUpload( instance, `${this.baseUrl}/repos/${this.username}/${repo}/contents/${trimKey}`, 'PUT', @@ -496,6 +497,7 @@ class GithubApi { false, getAgent(this.proxy), ) + await new Promise(resolve => setTimeout(resolve, 3000)) } return true } diff --git a/src/renderer/components/common/SingleSelect.vue b/src/renderer/components/common/SingleSelect.vue index 04906956..a3101fa2 100644 --- a/src/renderer/components/common/SingleSelect.vue +++ b/src/renderer/components/common/SingleSelect.vue @@ -39,6 +39,7 @@ import { onClickOutside } from '@vueuse/core' import { ChevronDownIcon, SortAscIcon } from 'lucide-vue-next' import { nextTick, ref } from 'vue' +const emit = defineEmits<(e: 'change', key: string) => void>() const dropdownRef = ref(null) const modelValue = defineModel() const triggerRef = ref(null) @@ -47,6 +48,7 @@ const optionsRef = ref(null) function selectItem(key: string) { modelValue.value = key dropDownOpen.value = false + emit('change', key) } const dropDownOpen = ref(false) diff --git a/src/renderer/manage/pages/BucketPage.vue b/src/renderer/manage/pages/BucketPage.vue index fc509c4f..c1008ed1 100644 --- a/src/renderer/manage/pages/BucketPage.vue +++ b/src/renderer/manage/pages/BucketPage.vue @@ -19,6 +19,7 @@ title="" :key-list="customDomainList.map(item => item.value)" :fronticon="false" + @change="handleChangeCustomUrlInput" /> -
+
diff --git a/src/renderer/manage/pages/ManageMain.vue b/src/renderer/manage/pages/ManageMain.vue index 03bdc620..c496ad69 100644 --- a/src/renderer/manage/pages/ManageMain.vue +++ b/src/renderer/manage/pages/ManageMain.vue @@ -139,6 +139,7 @@ v-if="picBedSwitchDialogVisible" v-model:visible="picBedSwitchDialogVisible" :title="t('pages.manage.main.switchPicBed')" + height="auto" >
diff --git a/src/renderer/manage/pages/ManageSetting.vue b/src/renderer/manage/pages/ManageSetting.vue index c61e2fea..a05a5046 100644 --- a/src/renderer/manage/pages/ManageSetting.vue +++ b/src/renderer/manage/pages/ManageSetting.vue @@ -10,6 +10,14 @@

{{ t('pages.manage.setting.title') }}

+
+ +
-import { Download, Edit2Icon, FolderIcon, Settings, Trash2Icon } from 'lucide-vue-next' +import { Download, Edit2Icon, FileText, FolderIcon, Settings, Trash2Icon } from 'lucide-vue-next' import { computed, nextTick, onBeforeMount, ref, watch } from 'vue' import { useI18n } from 'vue-i18n' @@ -303,6 +312,10 @@ async function initData() { await nextTick() // 确保DOM更新完成 } +async function openFile(file: string) { + window.electron.sendRPC(IRPCActionType.PICLIST_OPEN_FILE, file) +} + async function handleDownloadDirClick() { const result = await window.electron.triggerRPC(IRPCActionType.MANAGE_SELECT_DOWNLOAD_FOLDER) if (result) { diff --git a/src/renderer/pages/Upload.vue b/src/renderer/pages/Upload.vue index ea03481f..b57d0d1a 100644 --- a/src/renderer/pages/Upload.vue +++ b/src/renderer/pages/Upload.vue @@ -619,13 +619,12 @@

{{ t('pages.upload.taskQueue.empty') }}

{{ t('pages.upload.taskQueue.emptyHint') }}

- + />