mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-05-26 10:40:26 +08:00
🐛 Fix: add local path picbed into delete api of http server
This commit is contained in:
@@ -1,35 +1,32 @@
|
||||
import AliyunApi from './aliyun'
|
||||
import AwsS3Api from './awss3'
|
||||
import GithubApi from './github'
|
||||
import ImgurApi from './imgur'
|
||||
import LocalApi from './local'
|
||||
import QiniuApi from './qiniu'
|
||||
import SftpPlistApi from './sftpplist'
|
||||
import SmmsApi from './smms'
|
||||
import TcyunApi from './tcyun'
|
||||
import AliyunApi from './aliyun'
|
||||
import QiniuApi from './qiniu'
|
||||
import ImgurApi from './imgur'
|
||||
import GithubApi from './github'
|
||||
import UpyunApi from './upyun'
|
||||
import AwsS3Api from './awss3'
|
||||
import WebdavApi from './webdav'
|
||||
import LocalApi from './local'
|
||||
import SftpPlistApi from './sftpplist'
|
||||
|
||||
const apiMap: IStringKeyMap = {
|
||||
aliyun: AliyunApi,
|
||||
'aws-s3': AwsS3Api,
|
||||
github: GithubApi,
|
||||
imgur: ImgurApi,
|
||||
local: LocalApi,
|
||||
qiniu: QiniuApi,
|
||||
sftpplist: SftpPlistApi,
|
||||
smms: SmmsApi,
|
||||
tcyun: TcyunApi,
|
||||
aliyun: AliyunApi,
|
||||
qiniu: QiniuApi,
|
||||
imgur: ImgurApi,
|
||||
github: GithubApi,
|
||||
upyun: UpyunApi,
|
||||
'aws-s3': AwsS3Api,
|
||||
webdavplist: WebdavApi,
|
||||
local: LocalApi,
|
||||
sftpplist: SftpPlistApi
|
||||
webdavplist: WebdavApi
|
||||
}
|
||||
|
||||
export default class ALLApi {
|
||||
static async delete (configMap: IStringKeyMap): Promise<boolean> {
|
||||
const api = apiMap[configMap.type]
|
||||
if (api) {
|
||||
return await api.delete(configMap)
|
||||
}
|
||||
return false
|
||||
return api ? await api.delete(configMap) : false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import { ipcRenderer } from 'electron'
|
||||
import { getRawData } from '~/renderer/utils/common'
|
||||
import { removeFileFromS3InMain } from '~/main/utils/deleteFunc'
|
||||
|
||||
export default class AwsS3Api {
|
||||
static async delete (configMap: IStringKeyMap): Promise<boolean> {
|
||||
try {
|
||||
const deleteResult = await ipcRenderer.invoke('delete-aws-s3-file',
|
||||
getRawData(configMap)
|
||||
)
|
||||
return deleteResult
|
||||
return ipcRenderer
|
||||
? await ipcRenderer.invoke('delete-aws-s3-file',
|
||||
getRawData(configMap)
|
||||
)
|
||||
: await removeFileFromS3InMain(getRawData(configMap))
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
return false
|
||||
|
||||
@@ -17,6 +17,8 @@ interface IConfig {
|
||||
}
|
||||
|
||||
export default class ImgurApi {
|
||||
static baseUrl: 'https://api.imgur.com/3'
|
||||
|
||||
private static async makeRequest (
|
||||
method: 'delete',
|
||||
url: string,
|
||||
@@ -35,25 +37,23 @@ export default class ImgurApi {
|
||||
}
|
||||
|
||||
static async delete (configMap: IConfigMap): Promise<boolean> {
|
||||
const { config = {}, hash = '' } = configMap || {}
|
||||
const { clientId = '', username = '', accessToken = '' } = config
|
||||
const baseUrl = 'https://api.imgur.com/3'
|
||||
let Authorization: string
|
||||
let apiUrl: string
|
||||
const {
|
||||
config: { clientId = '', username = '', accessToken = '' } = {},
|
||||
hash = ''
|
||||
} = configMap
|
||||
let Authorization: string, apiUrl: string
|
||||
|
||||
if (username && accessToken) {
|
||||
Authorization = `Bearer ${accessToken}`
|
||||
apiUrl = `${baseUrl}/account/${username}/image/${hash}`
|
||||
apiUrl = `${ImgurApi.baseUrl}/account/${username}/image/${hash}`
|
||||
} else if (clientId) {
|
||||
Authorization = `Client-ID ${clientId}`
|
||||
apiUrl = `${baseUrl}/image/${hash}`
|
||||
apiUrl = `${ImgurApi.baseUrl}/image/${hash}`
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
const headers = {
|
||||
Authorization
|
||||
}
|
||||
const requestConfig: IConfig = {
|
||||
headers,
|
||||
headers: { Authorization },
|
||||
timeout: 30000
|
||||
}
|
||||
return ImgurApi.makeRequest('delete', apiUrl, requestConfig)
|
||||
|
||||
@@ -8,7 +8,7 @@ export default class LocalApi {
|
||||
static async delete (configMap: IConfigMap): Promise<boolean> {
|
||||
const { hash } = configMap
|
||||
if (!hash) {
|
||||
console.error('SmmsApi.delete: invalid params')
|
||||
console.error('Local.delete: invalid params')
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ export default class QiniuApi {
|
||||
}
|
||||
})
|
||||
}) as any
|
||||
return res && res.respInfo.statusCode === 200
|
||||
return res?.respInfo?.statusCode === 200
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
return false
|
||||
|
||||
@@ -322,7 +322,7 @@ const choosedPicBedForQRCode: Ref<string[]> = ref([])
|
||||
const isAlwaysOnTop = ref(false)
|
||||
const keepAlivePages = $router.getRoutes().filter(item => item.meta.keepAlive).map(item => item.name as string)
|
||||
|
||||
const progressShow = ref(true)
|
||||
const progressShow = ref(false)
|
||||
const progressPercentage = ref(0)
|
||||
|
||||
onBeforeMount(() => {
|
||||
|
||||
@@ -461,6 +461,7 @@ import ALLApi from '@/apis/allApi'
|
||||
|
||||
// 工具函数
|
||||
import { customRenameFormatTable, customStrMatch, customStrReplace } from '../manage/utils/common'
|
||||
import { picBedsCanbeDeleted } from '#/utils/static'
|
||||
|
||||
const images = ref<ImgInfo[]>([])
|
||||
const dialogVisible = ref(false)
|
||||
@@ -688,7 +689,6 @@ function remove (item: ImgInfo) {
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
const file = await $$db.getById(item.id!)
|
||||
const picBedsCanbeDeleted = ['smms', 'github', 'imgur', 'tcyun', 'aliyun', 'qiniu', 'upyun', 'aws-s3', 'webdavplist', 'local', 'sftpplist']
|
||||
if (await getConfig('settings.deleteCloudFile')) {
|
||||
if (item.type !== undefined && picBedsCanbeDeleted.includes(item.type)) {
|
||||
const result = await ALLApi.delete(item)
|
||||
@@ -798,7 +798,6 @@ function multiRemove () {
|
||||
const files: IResult<ImgInfo>[] = []
|
||||
const imageIDList = Object.keys(choosedList)
|
||||
const isDeleteCloudFile = await getConfig('settings.deleteCloudFile')
|
||||
const picBedsCanbeDeleted = ['smms', 'github', 'imgur', 'tcyun', 'aliyun', 'qiniu', 'upyun', 'aws-s3', 'webdavplist', 'local', 'sftpplist']
|
||||
if (isDeleteCloudFile) {
|
||||
for (let i = 0; i < imageIDList.length; i++) {
|
||||
const key = imageIDList[i]
|
||||
@@ -1161,3 +1160,4 @@ export default {
|
||||
color #ddd
|
||||
margin-bottom 10px
|
||||
</style>
|
||||
@/apis
|
||||
|
||||
Reference in New Issue
Block a user