mirror of
https://github.com/Kuingsmile/PicList.git
synced 2025-03-13 00:18:13 -04:00
parent
a9eed2d4de
commit
b843278b2c
@ -263,6 +263,8 @@ SETTINGS_SHORT_URL_C1N_TOKEN: C1N Token
|
|||||||
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS domain
|
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS domain
|
||||||
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
|
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
|
||||||
SETTINGS_SHORT_URL_CF_WORKER_HOST: Cloudflare Worker Host
|
SETTINGS_SHORT_URL_CF_WORKER_HOST: Cloudflare Worker Host
|
||||||
|
SETTINGS_SHORT_SINK_DOMAIN: sink domain
|
||||||
|
SETTINGS_SHORT_SINK_TOKEN: sink token
|
||||||
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: Delete local file after upload
|
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: Delete local file after upload
|
||||||
SETTINGS_SYNC_CONFIG: Settings Sync Configuration
|
SETTINGS_SYNC_CONFIG: Settings Sync Configuration
|
||||||
SETTINGS_SYNC_CONFIG_TITLE: Sync Settings
|
SETTINGS_SYNC_CONFIG_TITLE: Sync Settings
|
||||||
|
@ -266,6 +266,8 @@ SETTINGS_SHORT_URL_C1N_TOKEN: C1N Token
|
|||||||
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS域名
|
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS域名
|
||||||
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
|
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
|
||||||
SETTINGS_SHORT_URL_CF_WORKER_HOST: Cloudflare Worker域名
|
SETTINGS_SHORT_URL_CF_WORKER_HOST: Cloudflare Worker域名
|
||||||
|
SETTINGS_SHORT_SINK_DOMAIN: sink域名
|
||||||
|
SETTINGS_SHORT_SINK_TOKEN: sink token
|
||||||
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: 上传后删除本地文件
|
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: 上传后删除本地文件
|
||||||
SETTINGS_SYNC_CONFIG: 设置配置同步
|
SETTINGS_SYNC_CONFIG: 设置配置同步
|
||||||
SETTINGS_SYNC_CONFIG_TITLE: 同步设置
|
SETTINGS_SYNC_CONFIG_TITLE: 同步设置
|
||||||
|
@ -264,6 +264,8 @@ SETTINGS_SHORT_URL_C1N_TOKEN: C1N Token
|
|||||||
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS域名
|
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS域名
|
||||||
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
|
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
|
||||||
SETTINGS_SHORT_URL_CF_WORKER_HOST: Cloudflare Worker Host
|
SETTINGS_SHORT_URL_CF_WORKER_HOST: Cloudflare Worker Host
|
||||||
|
SETTINGS_SHORT_SINK_DOMAIN: sink域名
|
||||||
|
SETTINGS_SHORT_SINK_TOKEN: sink token
|
||||||
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: 上傳後刪除本地檔案
|
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: 上傳後刪除本地檔案
|
||||||
SETTINGS_SYNC_CONFIG: 設置同步配置
|
SETTINGS_SYNC_CONFIG: 設置同步配置
|
||||||
SETTINGS_SYNC_CONFIG_TITLE: 同步設置
|
SETTINGS_SYNC_CONFIG_TITLE: 同步設置
|
||||||
|
@ -210,6 +210,34 @@ const generateCFWORKERShortUrl = async (url: string) => {
|
|||||||
return url
|
return url
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const generateSinkShortUrl = async (url: string) => {
|
||||||
|
let sinkDomain = db.get(configPaths.settings.sinkDomain) || ''
|
||||||
|
const sinkToken = db.get(configPaths.settings.sinkToken) || ''
|
||||||
|
if (!sinkDomain || !sinkToken) {
|
||||||
|
logger.warn('Sink domain or token is not set')
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
if (!/^https?:\/\//.test(sinkDomain)) {
|
||||||
|
sinkDomain = `http://${sinkDomain}`
|
||||||
|
}
|
||||||
|
if (sinkDomain.endsWith('/')) {
|
||||||
|
sinkDomain = sinkDomain.slice(0, -1)
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const res = await axios.post(
|
||||||
|
`${sinkDomain}/api/link/create`,
|
||||||
|
{ url },
|
||||||
|
{ headers: { Authorization: `Bearer ${sinkToken}` } }
|
||||||
|
)
|
||||||
|
if (res.data?.link?.slug) {
|
||||||
|
return `${sinkDomain}/${res.data.link.slug}`
|
||||||
|
}
|
||||||
|
} catch (e: any) {
|
||||||
|
logger.error(e)
|
||||||
|
}
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
|
||||||
export const generateShortUrl = async (url: string) => {
|
export const generateShortUrl = async (url: string) => {
|
||||||
const server = db.get(configPaths.settings.shortUrlServer) || IShortUrlServer.C1N
|
const server = db.get(configPaths.settings.shortUrlServer) || IShortUrlServer.C1N
|
||||||
switch (server) {
|
switch (server) {
|
||||||
@ -219,6 +247,8 @@ export const generateShortUrl = async (url: string) => {
|
|||||||
return generateYOURLSShortUrl(url)
|
return generateYOURLSShortUrl(url)
|
||||||
case IShortUrlServer.CFWORKER:
|
case IShortUrlServer.CFWORKER:
|
||||||
return generateCFWORKERShortUrl(url)
|
return generateCFWORKERShortUrl(url)
|
||||||
|
case IShortUrlServer.SINK:
|
||||||
|
return generateSinkShortUrl(url)
|
||||||
default:
|
default:
|
||||||
return url
|
return url
|
||||||
}
|
}
|
||||||
|
@ -360,6 +360,28 @@
|
|||||||
:placeholder="$T('SETTINGS_SHORT_URL_CF_WORKER_HOST')"
|
:placeholder="$T('SETTINGS_SHORT_URL_CF_WORKER_HOST')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="formOfSetting.useShortUrl && formOfSetting.shortUrlServer === 'sink'"
|
||||||
|
:label="$T('SETTINGS_SHORT_SINK_DOMAIN')"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="formOfSetting.sinkDomain"
|
||||||
|
size="small"
|
||||||
|
style="width: 50%"
|
||||||
|
:placeholder="$T('SETTINGS_SHORT_SINK_DOMAIN')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="formOfSetting.useShortUrl && formOfSetting.shortUrlServer === 'sink'"
|
||||||
|
:label="$T('SETTINGS_SHORT_SINK_TOKEN')"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="formOfSetting.sinkToken"
|
||||||
|
size="small"
|
||||||
|
style="width: 50%"
|
||||||
|
:placeholder="$T('SETTINGS_SHORT_SINK_TOKEN')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="$T('SETTINGS_ENCODE_OUTPUT_URL')">
|
<el-form-item :label="$T('SETTINGS_ENCODE_OUTPUT_URL')">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="formOfSetting.encodeOutputURL"
|
v-model="formOfSetting.encodeOutputURL"
|
||||||
@ -976,6 +998,10 @@ const shortUrlServerList = [
|
|||||||
{
|
{
|
||||||
label: 'xyTom/Url-Shorten-Worker',
|
label: 'xyTom/Url-Shorten-Worker',
|
||||||
value: 'cf_worker'
|
value: 'cf_worker'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'ccbikai/Sink',
|
||||||
|
value: 'sink'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1050,6 +1076,8 @@ const formOfSetting = ref<ISettingForm>({
|
|||||||
yourlsDomain: '',
|
yourlsDomain: '',
|
||||||
yourlsSignature: '',
|
yourlsSignature: '',
|
||||||
cfWorkerHost: '',
|
cfWorkerHost: '',
|
||||||
|
sinkDomain: '',
|
||||||
|
sinkToken: '',
|
||||||
deleteLocalFile: false,
|
deleteLocalFile: false,
|
||||||
serverKey: '',
|
serverKey: '',
|
||||||
aesPassword: 'PicList-aesPassword',
|
aesPassword: 'PicList-aesPassword',
|
||||||
@ -1089,6 +1117,8 @@ const autoWatchKeys = [
|
|||||||
'yourlsDomain',
|
'yourlsDomain',
|
||||||
'yourlsSignature',
|
'yourlsSignature',
|
||||||
'cfWorkerHost',
|
'cfWorkerHost',
|
||||||
|
'sinkDomain',
|
||||||
|
'sinkToken',
|
||||||
'registry',
|
'registry',
|
||||||
'proxy',
|
'proxy',
|
||||||
'autoCopy',
|
'autoCopy',
|
||||||
|
@ -241,7 +241,8 @@ export enum II18nLanguage {
|
|||||||
export enum IShortUrlServer {
|
export enum IShortUrlServer {
|
||||||
C1N = 'c1n',
|
C1N = 'c1n',
|
||||||
YOURLS = 'yourls',
|
YOURLS = 'yourls',
|
||||||
CFWORKER = 'cf_worker'
|
CFWORKER = 'cf_worker',
|
||||||
|
SINK = 'sink'
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum commonTaskStatus {
|
export enum commonTaskStatus {
|
||||||
|
2
src/universal/types/i18n.d.ts
vendored
2
src/universal/types/i18n.d.ts
vendored
@ -259,6 +259,8 @@ interface ILocales {
|
|||||||
SETTINGS_SHORT_URL_YOURLS_DOMAIN: string
|
SETTINGS_SHORT_URL_YOURLS_DOMAIN: string
|
||||||
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: string
|
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: string
|
||||||
SETTINGS_SHORT_URL_CF_WORKER_HOST: string
|
SETTINGS_SHORT_URL_CF_WORKER_HOST: string
|
||||||
|
SETTINGS_SHORT_SINK_DOMAIN: string
|
||||||
|
SETTINGS_SHORT_SINK_TOKEN: string
|
||||||
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: string
|
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: string
|
||||||
SETTINGS_SYNC_CONFIG: string
|
SETTINGS_SYNC_CONFIG: string
|
||||||
SETTINGS_SYNC_CONFIG_TITLE: string
|
SETTINGS_SYNC_CONFIG_TITLE: string
|
||||||
|
2
src/universal/types/view.d.ts
vendored
2
src/universal/types/view.d.ts
vendored
@ -26,6 +26,8 @@ interface ISettingForm {
|
|||||||
yourlsDomain: string
|
yourlsDomain: string
|
||||||
yourlsSignature: string
|
yourlsSignature: string
|
||||||
cfWorkerHost: string
|
cfWorkerHost: string
|
||||||
|
sinkDomain: string
|
||||||
|
sinkToken: string
|
||||||
deleteLocalFile: boolean
|
deleteLocalFile: boolean
|
||||||
serverKey: string
|
serverKey: string
|
||||||
aesPassword: string
|
aesPassword: string
|
||||||
|
@ -71,6 +71,8 @@ export interface IConfigStruct {
|
|||||||
cfWorkerHost: string
|
cfWorkerHost: string
|
||||||
yourlsDomain: string
|
yourlsDomain: string
|
||||||
yourlsSignature: string
|
yourlsSignature: string
|
||||||
|
sinkDomain: string
|
||||||
|
sinkToken: string
|
||||||
isSilentNotice: boolean
|
isSilentNotice: boolean
|
||||||
proxy: string
|
proxy: string
|
||||||
registry: string
|
registry: string
|
||||||
@ -153,6 +155,8 @@ export const configPaths = {
|
|||||||
cfWorkerHost: 'settings.cfWorkerHost',
|
cfWorkerHost: 'settings.cfWorkerHost',
|
||||||
yourlsDomain: 'settings.yourlsDomain',
|
yourlsDomain: 'settings.yourlsDomain',
|
||||||
yourlsSignature: 'settings.yourlsSignature',
|
yourlsSignature: 'settings.yourlsSignature',
|
||||||
|
sinkDomain: 'settings.sinkDomain',
|
||||||
|
sinkToken: 'settings.sinkToken',
|
||||||
isSilentNotice: 'settings.isSilentNotice',
|
isSilentNotice: 'settings.isSilentNotice',
|
||||||
proxy: 'settings.proxy',
|
proxy: 'settings.proxy',
|
||||||
registry: 'settings.registry',
|
registry: 'settings.registry',
|
||||||
|
Loading…
Reference in New Issue
Block a user