Merge branch 'dev' into release

This commit is contained in:
Kuingsmile 2023-10-30 23:04:41 -07:00
commit 3a3103fdb1
13 changed files with 700 additions and 550 deletions

View File

@ -1,3 +1,24 @@
## :tada: 2.6.6 (2023-10-31)
### :sparkles: Features
* **custom:** image format convert will be skipped according to raw format ([9ad13d4](https://github.com/Kuingsmile/piclist/commit/9ad13d4)), closes [#109](https://github.com/Kuingsmile/piclist/issues/109)
* **custom:** optimize detele function for aws s3 ([b7b86b2](https://github.com/Kuingsmile/piclist/commit/b7b86b2))
* **custom:** support gitea for setting file sync ([95f1035](https://github.com/Kuingsmile/piclist/commit/95f1035))
### :bug: Bug Fixes
* **custom:** fix sandbox error under dev mode ([2dc96f6](https://github.com/Kuingsmile/piclist/commit/2dc96f6))
### :pencil: Documentation
* **custom:** update docs ([f0f696a](https://github.com/Kuingsmile/piclist/commit/f0f696a))
## :tada: 2.6.5 (2023-10-18) ## :tada: 2.6.5 (2023-10-18)

View File

@ -1,8 +1,9 @@
✨ Features ✨ Features
- 现在上传接口不再明文返回`config`字段,而是经过加密的字符串,密钥可自行设置 - 现在配置同步支持使用Gitea
- 现在当图片转换后格式与原格式相同时,不会进行转换
- 优化了使用Cloudflare R2作为图床时的删除处理
🐛 Bug Fixes 🐛 Bug Fixes
- 修复了文件名中含有二级目录时webdav、local和sftp图床会上传失败的问题 - 修复了使用gitee同步配置时下载文件错误日志没有正确记录的问题
- 修复了使用watt toolkit加速时github图床上传失败的问题

View File

@ -1,8 +1,9 @@
✨ Features ✨ Features
- Now the upload interface no longer returns the `config` field in plain text, but an encrypted string, and the key can be set by yourself - Now the configuration synchronization supports the use of Gitea
- Now when the converted image format is the same as the original format, it will not be converted
- Optimized the deletion processing when using Cloudflare R2 as the image bed
🐛 Bug Fixes 🐛 Bug Fixes
- Fix the problem that the webdav, local and sftp image beds will fail to upload when the file name contains a secondary directory - Fixed the issue where the error log was not correctly recorded when synchronizing configurations using Gitee and downloading files
- Fix the problem that the github image bed will fail to upload when using the watt toolkit acceleration

View File

@ -1,6 +1,6 @@
{ {
"name": "piclist", "name": "piclist",
"version": "2.6.5", "version": "2.6.6",
"author": { "author": {
"name": "Kuingsmile", "name": "Kuingsmile",
"email": "pkukuing@gmail.com" "email": "pkukuing@gmail.com"
@ -46,10 +46,10 @@
"@smithy/node-http-handler": "^2.1.6", "@smithy/node-http-handler": "^2.1.6",
"@videojs-player/vue": "^1.0.0", "@videojs-player/vue": "^1.0.0",
"ali-oss": "^6.18.1", "ali-oss": "^6.18.1",
"axios": "^1.5.1", "axios": "^1.6.0",
"compare-versions": "^4.1.3", "compare-versions": "^4.1.3",
"core-js": "^3.33.0", "core-js": "^3.33.1",
"cos-nodejs-sdk-v5": "^2.12.4", "cos-nodejs-sdk-v5": "^2.12.5",
"dexie": "^3.2.4", "dexie": "^3.2.4",
"electron-updater": "^6.1.4", "electron-updater": "^6.1.4",
"element-plus": "2.4.1", "element-plus": "2.4.1",
@ -62,16 +62,17 @@
"hpagent": "^1.2.0", "hpagent": "^1.2.0",
"keycode": "^2.2.0", "keycode": "^2.2.0",
"lowdb": "^1.0.0", "lowdb": "^1.0.0",
"marked": "^9.1.2", "marked": "^9.1.4",
"mime-types": "^2.1.35", "mime-types": "^2.1.35",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"multer": "^1.4.5-lts.1", "multer": "^1.4.5-lts.1",
"node-ssh-no-cpu-features": "^1.0.1", "node-ssh-no-cpu-features": "^1.0.1",
"nodejs-file-downloader": "^4.12.1", "nodejs-file-downloader": "^4.12.1",
"piclist": "^1.6.2", "piclist": "^1.6.5",
"pinia": "^2.1.7", "pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^3.2.0", "pinia-plugin-persistedstate": "^3.2.0",
"qiniu": "^7.10.0", "proxy-agent": "^5.0.0",
"qiniu": "7.9.0",
"qrcode.vue": "^3.4.1", "qrcode.vue": "^3.4.1",
"querystring": "^0.2.1", "querystring": "^0.2.1",
"shell-path": "2.1.0", "shell-path": "2.1.0",
@ -79,7 +80,7 @@
"upyun": "^3.4.6", "upyun": "^3.4.6",
"uuid": "^9.0.1", "uuid": "^9.0.1",
"video.js": "^8.5.2", "video.js": "^8.5.2",
"vue": "^3.3.4", "vue": "^3.3.7",
"vue-router": "^4.2.5", "vue-router": "^4.2.5",
"vue3-lazyload": "^0.3.8", "vue3-lazyload": "^0.3.8",
"vue3-photo-preview": "^0.3.0", "vue3-photo-preview": "^0.3.0",
@ -91,21 +92,21 @@
"@electron/notarize": "^2.1.0", "@electron/notarize": "^2.1.0",
"@types/ali-oss": "^6.16.10", "@types/ali-oss": "^6.16.10",
"@types/electron-devtools-installer": "^2.2.4", "@types/electron-devtools-installer": "^2.2.4",
"@types/fs-extra": "^11.0.2", "@types/fs-extra": "^11.0.3",
"@types/inquirer": "^6.5.0", "@types/inquirer": "^6.5.0",
"@types/js-yaml": "^4.0.8", "@types/js-yaml": "^4.0.8",
"@types/lowdb": "^1.0.13", "@types/lowdb": "^1.0.14",
"@types/mime-types": "^2.1.3", "@types/mime-types": "^2.1.3",
"@types/multer": "^1.4.9", "@types/multer": "^1.4.9",
"@types/node": "^16.10.2", "@types/node": "^16.10.2",
"@types/request-promise-native": "^1.0.19", "@types/request-promise-native": "^1.0.20",
"@types/semver": "^7.5.3", "@types/semver": "^7.5.4",
"@types/tunnel": "^0.0.4", "@types/tunnel": "^0.0.5",
"@types/upyun": "^3.4.1", "@types/upyun": "^3.4.2",
"@types/uuid": "^9.0.5", "@types/uuid": "^9.0.6",
"@types/write-file-atomic": "^4.0.1", "@types/write-file-atomic": "^4.0.2",
"@typescript-eslint/eslint-plugin": "^6.8.0", "@typescript-eslint/eslint-plugin": "^6.9.1",
"@typescript-eslint/parser": "^6.8.0", "@typescript-eslint/parser": "^6.9.1",
"@vue/cli-plugin-babel": "^5.0.8", "@vue/cli-plugin-babel": "^5.0.8",
"@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-eslint": "^5.0.8",
"@vue/cli-plugin-router": "^5.0.8", "@vue/cli-plugin-router": "^5.0.8",
@ -113,19 +114,18 @@
"@vue/cli-service": "^5.0.8", "@vue/cli-service": "^5.0.8",
"@vue/eslint-config-standard": "^8.0.1", "@vue/eslint-config-standard": "^8.0.1",
"@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-typescript": "^12.0.0",
"@vue/runtime-dom": "^3.3.4", "@vue/runtime-dom": "^3.3.7",
"conventional-changelog": "^5.1.0", "conventional-changelog": "^5.1.0",
"cz-customizable": "^7.0.0", "cz-customizable": "^7.0.0",
"dotenv": "^16.3.1", "dotenv": "^16.3.1",
"dpdm": "^3.14.0", "dpdm": "^3.14.0",
"electron": "^22.0.2", "electron": "^22.0.2",
"electron-devtools-installer": "^3.2.0", "eslint": "^8.52.0",
"eslint": "^8.51.0",
"eslint-config-standard": ">=16.0.0", "eslint-config-standard": ">=16.0.0",
"eslint-plugin-import": "^2.28.1", "eslint-plugin-import": "^2.29.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.17.0", "eslint-plugin-vue": "^9.18.1",
"husky": "^3.1.0", "husky": "^3.1.0",
"node-bump-version": "^1.0.2", "node-bump-version": "^1.0.2",
"node-loader": "^2.0.0", "node-loader": "^2.0.0",

View File

@ -249,23 +249,32 @@ SETTINGS_SYNC_CONFIG_SELECT_FILE: Select files to sync
SETTINGS_SYNC_CONFIG_SELECT_CONFIG: Configuration files only SETTINGS_SYNC_CONFIG_SELECT_CONFIG: Configuration files only
SETTINGS_SYNC_CONFIG_SELECT_GALLERY: Gallery files only SETTINGS_SYNC_CONFIG_SELECT_GALLERY: Gallery files only
SETTINGS_SYNC_CONFIG_SELECT_BOTH: Both configuration and gallery files SETTINGS_SYNC_CONFIG_SELECT_BOTH: Both configuration and gallery files
SETTINGS_SYNC_CONFIG_GITEA_HOST: Gitea Host
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: username SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: username
SETTINGS_SYNC_CONFIG_GITEA_USERNAME: username
SETTINGS_SYNC_CONFIG_GITEE_USERNAME: username SETTINGS_SYNC_CONFIG_GITEE_USERNAME: username
SETTINGS_SYNC_CONFIG_GITHUB_REPO: repository (private) SETTINGS_SYNC_CONFIG_GITHUB_REPO: repository (private)
SETTINGS_SYNC_CONFIG_GITEA_REPO: repository
SETTINGS_SYNC_CONFIG_GITEE_REPO: repository path SETTINGS_SYNC_CONFIG_GITEE_REPO: repository path
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: branch SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: branch
SETTINGS_SYNC_CONFIG_GITEA_BRANCH: branch
SETTINGS_SYNC_CONFIG_GITEE_BRANCH: branch SETTINGS_SYNC_CONFIG_GITEE_BRANCH: branch
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: Token SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: Token
SETTINGS_SYNC_CONFIG_GITEA_TOKEN: Token
SETTINGS_SYNC_CONFIG_GITEE_TOKEN: Token SETTINGS_SYNC_CONFIG_GITEE_TOKEN: Token
SETTINGS_SYNC_CONFIG_PROXY: Proxy SETTINGS_SYNC_CONFIG_PROXY: Proxy
SETTINGS_SYNC_CONFIG_INTERVAL: Interval(min) SETTINGS_SYNC_CONFIG_INTERVAL: Interval(min)
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: Please enter GitHub username SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: Please enter GitHub username
SETTINGS_SYNC_CONFIG_GITEA_USERNAME_PLACEHOLDER: Please enter Gitea username
SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: Please enter Gitee username SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: Please enter Gitee username
SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: Please enter GitHub repository name SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: Please enter GitHub repository name
SETTINGS_SYNC_CONFIG_GITEA_REPO_PLACEHOLDER: Please enter Gitea repository name
SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: Please enter Gitee repository name SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: Please enter Gitee repository name
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: Please enter GitHub branch name SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: Please enter GitHub branch name
SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: Please enter Gitee branch name SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: Please enter Gitee branch name
SETTINGS_SYNC_CONFIG_GITEA_BRANCH_PLACEHOLDER: Please enter Gitea branch name
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: Please enter GitHub Token SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: Please enter GitHub Token
SETTINGS_SYNC_CONFIG_GITEA_TOKEN_PLACEHOLDER: Please enter Gitea Token
SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: Please enter Gitee Token SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: Please enter Gitee Token
SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: Please enter proxy SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: Please enter proxy
SETTINGS_UP_DOWN_DESC: Upload and download configuration files SETTINGS_UP_DOWN_DESC: Upload and download configuration files

View File

@ -252,23 +252,32 @@ SETTINGS_SYNC_CONFIG_SELECT_FILE: 选择同步文件
SETTINGS_SYNC_CONFIG_SELECT_CONFIG: 仅配置文件 SETTINGS_SYNC_CONFIG_SELECT_CONFIG: 仅配置文件
SETTINGS_SYNC_CONFIG_SELECT_GALLERY: 仅相册文件 SETTINGS_SYNC_CONFIG_SELECT_GALLERY: 仅相册文件
SETTINGS_SYNC_CONFIG_SELECT_BOTH: 配置文件和相册文件 SETTINGS_SYNC_CONFIG_SELECT_BOTH: 配置文件和相册文件
SETTINGS_SYNC_CONFIG_GITEA_HOST: Gitea 网址
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: GitHub用户名 SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: GitHub用户名
SETTINGS_SYNC_CONFIG_GITEA_USERNAME: Gitea用户名
SETTINGS_SYNC_CONFIG_GITEE_USERNAME: Gitee用户名 SETTINGS_SYNC_CONFIG_GITEE_USERNAME: Gitee用户名
SETTINGS_SYNC_CONFIG_GITHUB_REPO: 仓库(私有) SETTINGS_SYNC_CONFIG_GITHUB_REPO: 仓库(私有)
SETTINGS_SYNC_CONFIG_GITEA_REPO: 仓库
SETTINGS_SYNC_CONFIG_GITEE_REPO: 仓库路径名 SETTINGS_SYNC_CONFIG_GITEE_REPO: 仓库路径名
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: GitHub分支 SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: GitHub分支
SETTINGS_SYNC_CONFIG_GITEA_BRANCH: Gitea分支
SETTINGS_SYNC_CONFIG_GITEE_BRANCH: Gitee分支 SETTINGS_SYNC_CONFIG_GITEE_BRANCH: Gitee分支
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: GitHub Token SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: GitHub Token
SETTINGS_SYNC_CONFIG_GITEA_TOKEN: Gitea Token
SETTINGS_SYNC_CONFIG_GITEE_TOKEN: Gitee Token SETTINGS_SYNC_CONFIG_GITEE_TOKEN: Gitee Token
SETTINGS_SYNC_CONFIG_PROXY: 代理 SETTINGS_SYNC_CONFIG_PROXY: 代理
SETTINGS_SYNC_CONFIG_INTERVAL: 间隔(分钟) SETTINGS_SYNC_CONFIG_INTERVAL: 间隔(分钟)
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: 请输入GitHub用户名 SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: 请输入GitHub用户名
SETTINGS_SYNC_CONFIG_GITEA_USERNAME_PLACEHOLDER: 请输入Gitea用户名
SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: 请输入Gitee用户名 SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: 请输入Gitee用户名
SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: 请输入GitHub仓库名 SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: 请输入GitHub仓库名
SETTINGS_SYNC_CONFIG_GITEA_REPO_PLACEHOLDER: 请输入Gitea仓库名
SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: 请输入Gitee仓库名 SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: 请输入Gitee仓库名
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: 请输入GitHub分支名 SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: 请输入GitHub分支名
SETTINGS_SYNC_CONFIG_GITEA_BRANCH_PLACEHOLDER: 请输入Gitea分支名
SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: 请输入Gitee分支名 SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: 请输入Gitee分支名
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: 请输入GitHub Token SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: 请输入GitHub Token
SETTINGS_SYNC_CONFIG_GITEA_TOKEN_PLACEHOLDER: 请输入Gitea Token
SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: 请输入Gitee Token SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: 请输入Gitee Token
SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: 请输入代理地址 SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: 请输入代理地址
SETTINGS_UP_DOWN_DESC: 上传下载配置文件 SETTINGS_UP_DOWN_DESC: 上传下载配置文件

View File

@ -250,23 +250,32 @@ SETTINGS_SYNC_CONFIG_SELECT_FILE: 選擇同步檔案
SETTINGS_SYNC_CONFIG_SELECT_CONFIG: 僅配置檔案 SETTINGS_SYNC_CONFIG_SELECT_CONFIG: 僅配置檔案
SETTINGS_SYNC_CONFIG_SELECT_GALLERY: 僅相簿檔案 SETTINGS_SYNC_CONFIG_SELECT_GALLERY: 僅相簿檔案
SETTINGS_SYNC_CONFIG_SELECT_BOTH: 配置檔案和相簿檔案 SETTINGS_SYNC_CONFIG_SELECT_BOTH: 配置檔案和相簿檔案
SETTINGS_SYNC_CONFIG_GITEA_HOST: Gitea Host
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: 用戶名 SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: 用戶名
SETTINGS_SYNC_CONFIG_GITEA_USERNAME: 用戶名
SETTINGS_SYNC_CONFIG_GITEE_USERNAME: 用戶名 SETTINGS_SYNC_CONFIG_GITEE_USERNAME: 用戶名
SETTINGS_SYNC_CONFIG_GITHUB_REPO: 儲存庫(私有) SETTINGS_SYNC_CONFIG_GITHUB_REPO: 儲存庫(私有)
SETTINGS_SYNC_CONFIG_GITEA_REPO: 儲存庫
SETTINGS_SYNC_CONFIG_GITEE_REPO: 儲存庫路径 SETTINGS_SYNC_CONFIG_GITEE_REPO: 儲存庫路径
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: GitHub 分支 SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: GitHub 分支
SETTINGS_SYNC_CONFIG_GITEA_BRANCH: Gitea 分支
SETTINGS_SYNC_CONFIG_GITEE_BRANCH: Gitee 分支 SETTINGS_SYNC_CONFIG_GITEE_BRANCH: Gitee 分支
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: GitHub Token SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: GitHub Token
SETTINGS_SYNC_CONFIG_GITEA_TOKEN: Gitea Token
SETTINGS_SYNC_CONFIG_GITEE_TOKEN: Gitee Token SETTINGS_SYNC_CONFIG_GITEE_TOKEN: Gitee Token
SETTINGS_SYNC_CONFIG_PROXY: 代理 SETTINGS_SYNC_CONFIG_PROXY: 代理
SETTINGS_SYNC_CONFIG_INTERVAL: 間隔(分鐘) SETTINGS_SYNC_CONFIG_INTERVAL: 間隔(分鐘)
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: 請輸入 GitHub 用戶名 SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: 請輸入 GitHub 用戶名
SETTINGS_SYNC_CONFIG_GITEA_USERNAME_PLACEHOLDER: 請輸入 Gitea 用戶名
SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: 請輸入 Gitee 用戶名 SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: 請輸入 Gitee 用戶名
SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: 請輸入 GitHub 儲存庫名稱 SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: 請輸入 GitHub 儲存庫名稱
SETTINGS_SYNC_CONFIG_GITEA_REPO_PLACEHOLDER: 請輸入 Gitea 儲存庫名稱
SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: 請輸入 Gitee 儲存庫名稱 SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: 請輸入 Gitee 儲存庫名稱
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: 請輸入 GitHub 分支名稱 SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: 請輸入 GitHub 分支名稱
SETTINGS_SYNC_CONFIG_GITEA_BRANCH_PLACEHOLDER: 請輸入 Gitea 分支名稱
SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: 請輸入 Gitee 分支名稱 SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: 請輸入 Gitee 分支名稱
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: 請輸入 GitHub Token SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: 請輸入 GitHub Token
SETTINGS_SYNC_CONFIG_GITEA_TOKEN_PLACEHOLDER: 請輸入 Gitea Token
SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: 請輸入 Gitee Token SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: 請輸入 Gitee Token
SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: 請輸入代理地址 SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: 請輸入代理地址
SETTINGS_UP_DOWN_DESC: 上傳和下載配置檔案 SETTINGS_UP_DOWN_DESC: 上傳和下載配置檔案

View File

@ -10,7 +10,6 @@ import {
import { import {
createProtocol createProtocol
} from 'vue-cli-plugin-electron-builder/lib' } from 'vue-cli-plugin-electron-builder/lib'
import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
import beforeOpen from '~/main/utils/beforeOpen' import beforeOpen from '~/main/utils/beforeOpen'
import ipcList from '~/main/events/ipcList' import ipcList from '~/main/events/ipcList'
import busEventList from '~/main/events/busEventList' import busEventList from '~/main/events/busEventList'
@ -146,15 +145,7 @@ class LifeCycle {
private onReady () { private onReady () {
const readyFunction = async () => { const readyFunction = async () => {
console.log('on ready')
createProtocol('picgo') createProtocol('picgo')
if (isDevelopment && !process.env.IS_TEST) {
try {
await installExtension(VUEJS_DEVTOOLS)
} catch (e: any) {
console.error('Vue Devtools failed to install:', e.toString())
}
}
windowManager.create(IWindowList.TRAY_WINDOW) windowManager.create(IWindowList.TRAY_WINDOW)
windowManager.create(IWindowList.SETTING_WINDOW) windowManager.create(IWindowList.SETTING_WINDOW)
const isAutoListenClipboard = db.get('settings.isAutoListenClipboard') || false const isAutoListenClipboard = db.get('settings.isAutoListenClipboard') || false

View File

@ -73,7 +73,8 @@ async function getDogeToken (accessKey: string, secretKey: string): Promise<{} |
export async function removeFileFromS3InMain (configMap: IStringKeyMap, dogeMode: boolean = false) { export async function removeFileFromS3InMain (configMap: IStringKeyMap, dogeMode: boolean = false) {
try { try {
const { imgUrl, config: { accessKeyID, secretAccessKey, bucketName, region, endpoint, pathStyleAccess, rejectUnauthorized, proxy } } = configMap const { imgUrl, config: { accessKeyID, secretAccessKey, bucketName, endpoint, pathStyleAccess, rejectUnauthorized, proxy } } = configMap
let { config: { region } } = configMap
const url = new URL(!/^https?:\/\//.test(imgUrl) ? `http://${imgUrl}` : imgUrl) const url = new URL(!/^https?:\/\//.test(imgUrl) ? `http://${imgUrl}` : imgUrl)
let fileKey = url.pathname.replace(/^\/+/, '') let fileKey = url.pathname.replace(/^\/+/, '')
if (pathStyleAccess) { if (pathStyleAccess) {
@ -84,6 +85,9 @@ export async function removeFileFromS3InMain (configMap: IStringKeyMap, dogeMode
? endpoint ? endpoint
: `http://${endpoint}` : `http://${endpoint}`
: undefined : undefined
if (endpointUrl && endpointUrl.includes('cloudflarestorage')) {
region = region || 'auto'
}
const sslEnabled = endpointUrl ? endpointUrl.startsWith('https') : true const sslEnabled = endpointUrl ? endpointUrl.startsWith('https') : true
const agent = getAgent(proxy, sslEnabled) const agent = getAgent(proxy, sslEnabled)
const commonOptions: AgentOptions = { const commonOptions: AgentOptions = {

View File

@ -14,7 +14,8 @@ interface SyncConfig {
repo: string repo: string
branch: string branch: string
token: string token: string
proxy?: string, endpoint?: string
proxy?: string
interval?: number interval?: number
} }
@ -81,7 +82,7 @@ async function uploadLocalToRemote (syncConfig: SyncConfig, fileName: string) {
logger.error(error) logger.error(error)
return false return false
} }
} else { } else if (type === 'github') {
const octokit = getOctokit(syncConfig) const octokit = getOctokit(syncConfig)
try { try {
const res = await octokit.rest.repos.createOrUpdateFileContents({ const res = await octokit.rest.repos.createOrUpdateFileContents({
@ -97,6 +98,25 @@ async function uploadLocalToRemote (syncConfig: SyncConfig, fileName: string) {
logger.error(error) logger.error(error)
return false return false
} }
} else {
const { endpoint = '' } = syncConfig
const apiUrl = `${endpoint}/api/v1/repos/${username}/${repo}/contents/${fileName}`
try {
const headers = {
Authorization: `token ${token}`
}
const res = await axios.post(apiUrl, {
message: `upload ${fileName} from PicList`,
content: fs.readFileSync(localFilePath, { encoding: 'base64' }),
branch
}, {
headers
})
return res.status >= 200 && res.status < 300
} catch (error: any) {
logger.error(error)
return false
}
} }
} }
@ -132,9 +152,8 @@ async function updateLocalToRemote (syncConfig: SyncConfig, fileName: string) {
return true return true
} }
return false return false
} else { } else if (type === 'github') {
const octokit = getOctokit(syncConfig) const octokit = getOctokit(syncConfig)
const shaRes = await octokit.rest.repos.getContent({ const shaRes = await octokit.rest.repos.getContent({
owner: username, owner: username,
repo, repo,
@ -156,6 +175,29 @@ async function updateLocalToRemote (syncConfig: SyncConfig, fileName: string) {
sha sha
}) })
return res.status === 200 return res.status === 200
} else {
const { endpoint = '' } = syncConfig
const apiUrl = `${endpoint}/api/v1/repos/${username}/${repo}/contents/${fileName}`
const headers = {
Authorization: `token ${token}`
}
const shaRes = await axios.get(apiUrl, {
headers
})
if (shaRes.status < 200 || shaRes.status > 300) {
throw new Error('get sha failed')
}
const data = shaRes.data as any
const sha = data.sha
const res = await axios.put(apiUrl, {
message: `update ${fileName} from PicList`,
content: fs.readFileSync(localFilePath, { encoding: 'base64' }),
branch,
sha
}, {
headers
})
return res.status >= 200 && res.status < 300
} }
} }
@ -163,20 +205,25 @@ async function downloadRemoteToLocal (syncConfig: SyncConfig, fileName: string)
const localFilePath = path.join(STORE_PATH, fileName) const localFilePath = path.join(STORE_PATH, fileName)
const { username, repo, branch, token, proxy, type } = syncConfig const { username, repo, branch, token, proxy, type } = syncConfig
if (type === 'gitee') { if (type === 'gitee') {
const url = `https://gitee.com/api/v5/repos/${username}/${repo}/contents/${fileName}` try {
const res = await axios.get(url, { const url = `https://gitee.com/api/v5/repos/${username}/${repo}/contents/${fileName}`
params: { const res = await axios.get(url, {
access_token: token, params: {
ref: branch access_token: token,
ref: branch
}
})
if (res.status >= 200 && res.status < 300) {
const content = res.data.content
await fs.writeFile(localFilePath, Buffer.from(content, 'base64'))
return true
} }
}) return false
if (res.status >= 200 && res.status < 300) { } catch (error: any) {
const content = res.data.content logger.error(error)
await fs.writeFile(localFilePath, Buffer.from(content, 'base64')) return false
return true
} }
return false } else if (type === 'github') {
} else {
const octokit = getOctokit(syncConfig) const octokit = getOctokit(syncConfig)
try { try {
const res = await octokit.rest.repos.getContent({ const res = await octokit.rest.repos.getContent({
@ -209,6 +256,29 @@ async function downloadRemoteToLocal (syncConfig: SyncConfig, fileName: string)
logger.error(error) logger.error(error)
return false return false
} }
} else {
const { endpoint = '' } = syncConfig
const apiUrl = `${endpoint}/api/v1/repos/${username}/${repo}/contents/${fileName}`
try {
const headers = {
Authorization: `token ${token}`
}
const res = await axios.get(apiUrl, {
headers,
params: {
ref: branch
}
})
if (res.status >= 200 && res.status < 300) {
const content = res.data.content
await fs.writeFile(localFilePath, Buffer.from(content, 'base64'))
return true
}
return false
} catch (error: any) {
logger.error(error)
return false
}
} }
} }

View File

@ -1129,39 +1129,49 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_USERNAME') : $T('SETTINGS_SYNC_CONFIG_GITEE_USERNAME')" v-if="sync.type === 'gitea'"
:label="$T('SETTINGS_SYNC_CONFIG_GITEA_HOST')"
>
<el-input
v-model.trim="sync.endpoint"
type="input"
:placeholder="$T('SETTINGS_SYNC_CONFIG_GITEA_HOST')"
/>
</el-form-item>
<el-form-item
:label="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_USERNAME` as any)"
> >
<el-input <el-input
v-model.trim="sync.username" v-model.trim="sync.username"
type="input" type="input"
:placeholder="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER') : $T('SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER')" :placeholder="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_USERNAME_PLACEHOLDER` as any)"
/> />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_REPO') : $T('SETTINGS_SYNC_CONFIG_GITEE_REPO')" :label="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_REPO` as any)"
> >
<el-input <el-input
v-model.trim="sync.repo" v-model.trim="sync.repo"
type="input" type="input"
:placeholder="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER') : $T('SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER')" :placeholder="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_REPO_PLACEHOLDER` as any)"
/> />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_BRANCH') : $T('SETTINGS_SYNC_CONFIG_GITEE_BRANCH')" :label="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_BRANCH` as any)"
> >
<el-input <el-input
v-model.trim="sync.branch" v-model.trim="sync.branch"
type="input" type="input"
:placeholder="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER') : $T('SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER')" :placeholder="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_BRANCH_PLACEHOLDER` as any)"
/> />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_TOKEN') : $T('SETTINGS_SYNC_CONFIG_GITEE_TOKEN')" :label="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_TOKEN` as any)"
> >
<el-input <el-input
v-model.trim="sync.token" v-model.trim="sync.token"
type="input" type="input"
:placeholder="sync.type === 'github' ? $T('SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER') : $T('SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER')" :placeholder="$T(`SETTINGS_SYNC_CONFIG_${sync.type.toUpperCase()}_TOKEN_PLACEHOLDER` as any)"
/> />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -1785,6 +1795,7 @@ const sync = ref({
repo: '', repo: '',
branch: '', branch: '',
token: '', token: '',
endpoint: '',
proxy: '', proxy: '',
interval: 60 interval: 60
}) })
@ -1797,6 +1808,10 @@ const syncType = [
{ {
label: 'Gitee', label: 'Gitee',
value: 'gitee' value: 'gitee'
},
{
label: 'Gitea',
value: 'gitea'
} }
] ]
@ -1808,6 +1823,7 @@ async function cancelSyncSetting () {
repo: '', repo: '',
branch: '', branch: '',
token: '', token: '',
endpoint: '',
proxy: '', proxy: '',
interval: 60 interval: 60
} }
@ -1904,6 +1920,7 @@ async function initData () {
repo: '', repo: '',
branch: '', branch: '',
token: '', token: '',
endpoint: '',
proxy: '', proxy: '',
interval: 60 interval: 60
} }

View File

@ -245,23 +245,32 @@ interface ILocales {
SETTINGS_SYNC_CONFIG_SELECT_CONFIG: string SETTINGS_SYNC_CONFIG_SELECT_CONFIG: string
SETTINGS_SYNC_CONFIG_SELECT_GALLERY: string SETTINGS_SYNC_CONFIG_SELECT_GALLERY: string
SETTINGS_SYNC_CONFIG_SELECT_BOTH: string SETTINGS_SYNC_CONFIG_SELECT_BOTH: string
SETTINGS_SYNC_CONFIG_GITEA_HOST: string
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: string SETTINGS_SYNC_CONFIG_GITHUB_USERNAME: string
SETTINGS_SYNC_CONFIG_GITEA_USERNAME: string
SETTINGS_SYNC_CONFIG_GITEE_USERNAME: string SETTINGS_SYNC_CONFIG_GITEE_USERNAME: string
SETTINGS_SYNC_CONFIG_GITHUB_REPO: string SETTINGS_SYNC_CONFIG_GITHUB_REPO: string
SETTINGS_SYNC_CONFIG_GITEA_REPO: string
SETTINGS_SYNC_CONFIG_GITEE_REPO: string SETTINGS_SYNC_CONFIG_GITEE_REPO: string
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: string SETTINGS_SYNC_CONFIG_GITHUB_BRANCH: string
SETTINGS_SYNC_CONFIG_GITEA_BRANCH: string
SETTINGS_SYNC_CONFIG_GITEE_BRANCH: string SETTINGS_SYNC_CONFIG_GITEE_BRANCH: string
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: string SETTINGS_SYNC_CONFIG_GITHUB_TOKEN: string
SETTINGS_SYNC_CONFIG_GITEA_TOKEN: string
SETTINGS_SYNC_CONFIG_GITEE_TOKEN: string SETTINGS_SYNC_CONFIG_GITEE_TOKEN: string
SETTINGS_SYNC_CONFIG_PROXY: string SETTINGS_SYNC_CONFIG_PROXY: string
SETTINGS_SYNC_CONFIG_INTERVAL: string SETTINGS_SYNC_CONFIG_INTERVAL: string
SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITHUB_USERNAME_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEA_USERNAME_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITEE_USERNAME_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITHUB_REPO_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEA_REPO_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITEE_REPO_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITHUB_BRANCH_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEA_BRANCH_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITEE_BRANCH_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITHUB_TOKEN_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEA_TOKEN_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_GITEE_TOKEN_PLACEHOLDER: string
SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: string SETTINGS_SYNC_CONFIG_PROXY_PLACEHOLDER: string
SETTINGS_UP_DOWN_DESC: string SETTINGS_UP_DOWN_DESC: string

983
yarn.lock

File diff suppressed because it is too large Load Diff