Feature(custom): add c1n token setting

This commit is contained in:
Kuingsmile 2024-03-01 15:02:34 +08:00
parent 2373c64ba6
commit 1fdc8fc79d
9 changed files with 31 additions and 9 deletions

View File

@ -245,6 +245,7 @@ SETTINGS_ENCODE_OUTPUT_URL: Encode Output(or Copyed) URL
SETTINGS_WATCH_CLIPBOARD: Watch clipboard when software start
SETTINGS_SHORT_URL: Use short url
SETTINGS_SHORT_URL_SERVER: Short url server
SETTINGS_SHORT_URL_C1N_TOKEN: C1N Token
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS domain
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: Delete local file after upload

View File

@ -248,6 +248,7 @@ SETTINGS_ENCODE_OUTPUT_URL: 输出(复制) URL 时进行转义
SETTINGS_WATCH_CLIPBOARD: 软件启动时自动监听剪贴板上传
SETTINGS_SHORT_URL: 使用短链接
SETTINGS_SHORT_URL_SERVER: 短链接服务
SETTINGS_SHORT_URL_C1N_TOKEN: C1N Token
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS域名
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: 上传后删除本地文件

View File

@ -246,6 +246,7 @@ SETTINGS_ENCODE_OUTPUT_URL: 輸出(複製) URL 時進行轉義
SETTINGS_WATCH_CLIPBOARD: 軟體啟動時自動監聽剪貼簿上傳
SETTINGS_SHORT_URL: 使用短網址
SETTINGS_SHORT_URL_SERVER: 短網址服務
SETTINGS_SHORT_URL_C1N_TOKEN: C1N Token
SETTINGS_SHORT_URL_YOURLS_DOMAIN: YOURLS域名
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: YOURLS signature
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: 上傳後刪除本地檔案

View File

@ -4,7 +4,6 @@ import { clipboard, Notification, dialog } from 'electron'
import { handleUrlEncode } from '~/universal/utils/common'
import axios from 'axios'
import FormData from 'form-data'
import { C1 } from '#/utils/static'
import logger from '../apis/core/picgo/logger'
export const handleCopyUrl = (str: string): void => {
@ -132,18 +131,22 @@ export const generateShortUrl = async (url: string) => {
if (server === 'c1n') {
const form = new FormData()
form.append('url', url)
const C = Buffer.from(C1, 'base64').toString()
const c1nToken = db.get('settings.c1nToken') || ''
if (!c1nToken) {
logger.warn('c1n token is not set')
return url
}
try {
const res = await axios.post(c1nApi, form, {
headers: {
token: C
token: c1nToken
}
})
if (res.status >= 200 && res.status < 300 && res.data?.code === 0) {
return res.data.data
}
} catch (e: any) {
console.log(e)
logger.error(e)
}
} else if (server === 'yourls') {
let domain = db.get('settings.yourlsDomain') || ''
@ -161,7 +164,7 @@ export const generateShortUrl = async (url: string) => {
if (e.response.data.message.indexOf('already exists in database') !== -1) {
return e.response.data.shorturl
}
console.log(e)
logger.error(e)
}
} else {
logger.warn('Yourls server or signature is not set')

View File

@ -485,6 +485,18 @@
/>
</el-select>
</el-form-item>
<el-form-item
v-if="form.useShortUrl && form.shortUrlServer === 'c1n'"
:label="$T('SETTINGS_SHORT_URL_C1N_TOKEN')"
>
<el-input
v-model="form.c1nToken"
size="small"
style="width: 50%"
:placeholder="$T('SETTINGS_SHORT_URL_C1N_TOKEN')"
@change="handleC1nTokenChange"
/>
</el-form-item>
<el-form-item
v-if="form.useShortUrl && form.shortUrlServer === 'yourls'"
:label="$T('SETTINGS_SHORT_URL_YOURLS_DOMAIN')"
@ -1836,6 +1848,7 @@ const form = reactive<ISettingForm>({
isAutoListenClipboard: false,
useShortUrl: false,
shortUrlServer: 'c1n',
c1nToken: '',
yourlsDomain: '',
yourlsSignature: '',
deleteLocalFile: false,
@ -2001,6 +2014,7 @@ async function initData () {
form.isHideDock = settings.isHideDock || false
form.useShortUrl = settings.useShortUrl || false
form.shortUrlServer = settings.shortUrlServer || 'c1n'
form.c1nToken = settings.c1nToken || ''
form.yourlsDomain = settings.yourlsDomain || ''
form.yourlsSignature = settings.yourlsSignature || ''
form.deleteLocalFile = settings.deleteLocalFile || false
@ -2354,6 +2368,10 @@ function handleShortUrlServerChange (val: string) {
saveConfig('settings.shortUrlServer', val)
}
function handleC1nTokenChange (val: string) {
saveConfig('settings.c1nToken', val)
}
function handleYourlsDomainChange (val: string) {
saveConfig('settings.yourlsDomain', val)
}

View File

@ -3,7 +3,6 @@ export const SHOW_INPUT_BOX_RESPONSE = 'SHOW_INPUT_BOX_RESPONSE'
export const TOGGLE_SHORTKEY_MODIFIED_MODE = 'TOGGLE_SHORTKEY_MODIFIED_MODE'
export const TALKING_DATA_APPID = 'B743C16E2989419A9B02EDE9D1E6A530'
export const TALKING_DATA_EVENT = 'TALKING_DATA_EVENT'
export const C1N = 'WjJoeFdWWklhVTlXYVRKTU5EUmFOVkEwUlVRPQ=='
export const PICGO_SAVE_CONFIG = 'PICGO_SAVE_CONFIG'
export const PICGO_GET_CONFIG = 'PICGO_GET_CONFIG'
export const PICGO_GET_DB = 'PICGO_GET_DB'

View File

@ -241,6 +241,7 @@ interface ILocales {
SETTINGS_WATCH_CLIPBOARD: string
SETTINGS_SHORT_URL: string
SETTINGS_SHORT_URL_SERVER: string
SETTINGS_SHORT_URL_C1N_TOKEN: string
SETTINGS_SHORT_URL_YOURLS_DOMAIN: string
SETTINGS_SHORT_URL_YOURLS_SIGNATURE: string
SETTINGS_DELETE_LOCAL_FILE_AFTER_UPLOAD: string

View File

@ -24,6 +24,7 @@ interface ISettingForm {
encodeOutputURL: boolean,
isAutoListenClipboard: boolean,
useShortUrl: boolean,
c1nToken: string,
shortUrlServer: string,
yourlsDomain: string,
yourlsSignature: string,

View File

@ -1,10 +1,7 @@
import { C1N } from '../events/constants'
export const CLIPBOARD_IMAGE_FOLDER = 'piclist-clipboard-images'
export const RELEASE_URL = 'https://api.github.com/repos/Kuingsmile/PicList/releases'
export const RELEASE_URL_BACKUP = 'https://release.piclist.cn'
export const STABLE_RELEASE_URL = 'https://github.com/Kuingsmile/PicList/releases/latest'
export const C1 = Buffer.from(C1N, 'base64').toString()
export const picBedsCanbeDeleted = [
'aliyun',