Feature: add file-name for customurl

add $fileName arg for customUrl

ISSUES CLOSED: #173
This commit is contained in:
Molunerfinn 2019-04-18 17:25:10 +08:00
parent 3c6b329927
commit c59e2bcc97
5 changed files with 29 additions and 18 deletions

View File

@ -170,8 +170,7 @@ function createTray () {
const imgs = await new Uploader(files, window.webContents).upload() const imgs = await new Uploader(files, window.webContents).upload()
if (imgs !== false) { if (imgs !== false) {
for (let i in imgs) { for (let i in imgs) {
const url = imgs[i].url || imgs[i].imgUrl clipboard.writeText(pasteTemplate(pasteStyle, imgs[i]))
clipboard.writeText(pasteTemplate(pasteStyle, url))
const notification = new Notification({ const notification = new Notification({
title: '上传成功', title: '上传成功',
body: imgs[i].imgUrl, body: imgs[i].imgUrl,
@ -343,8 +342,7 @@ const uploadClipboardFiles = async () => {
if (img !== false) { if (img !== false) {
if (img.length > 0) { if (img.length > 0) {
const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown'
const url = img[0].url || img[0].imgUrl clipboard.writeText(pasteTemplate(pasteStyle, img[0]))
clipboard.writeText(pasteTemplate(pasteStyle, url))
const notification = new Notification({ const notification = new Notification({
title: '上传成功', title: '上传成功',
body: img[0].imgUrl, body: img[0].imgUrl,
@ -374,8 +372,7 @@ const uploadChoosedFiles = async (webContents, files) => {
const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown'
let pasteText = '' let pasteText = ''
for (let i in imgs) { for (let i in imgs) {
const url = imgs[i].url || imgs[i].imgUrl pasteText += pasteTemplate(pasteStyle, imgs[i]) + '\r\n'
pasteText += pasteTemplate(pasteStyle, url) + '\r\n'
const notification = new Notification({ const notification = new Notification({
title: '上传成功', title: '上传成功',
body: imgs[i].imgUrl, body: imgs[i].imgUrl,
@ -401,8 +398,7 @@ ipcMain.on('uploadClipboardFiles', async (evt, file) => {
const img = await new Uploader(undefined, window.webContents).upload() const img = await new Uploader(undefined, window.webContents).upload()
if (img !== false) { if (img !== false) {
const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown'
const url = img[0].url || img[0].imgUrl clipboard.writeText(pasteTemplate(pasteStyle, img[0]))
clipboard.writeText(pasteTemplate(pasteStyle, url))
const notification = new Notification({ const notification = new Notification({
title: '上传成功', title: '上传成功',
body: img[0].imgUrl, body: img[0].imgUrl,

View File

@ -63,8 +63,7 @@ class GuiApi {
const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown'
let pasteText = '' let pasteText = ''
for (let i in imgs) { for (let i in imgs) {
const url = imgs[i].url || imgs[i].imgUrl pasteText += pasteTemplate(pasteStyle, imgs[i]) + '\r\n'
pasteText += pasteTemplate(pasteStyle, url) + '\r\n'
const notification = new Notification({ const notification = new Notification({
title: '上传成功', title: '上传成功',
body: imgs[i].imgUrl, body: imgs[i].imgUrl,

View File

@ -1,13 +1,31 @@
import db from '../../datastore' import db from '../../datastore'
export default (style, url) => { const formatCustomLink = (customLink, item) => {
let fileName = item.fileName.replace(new RegExp(`\\${item.extname}$`), '')
let url = item.url || item.imgUrl
let formatObj = {
url,
fileName
}
let keys = Object.keys(formatObj)
keys.forEach(item => {
if (customLink.indexOf(`$${item}`) !== -1) {
let reg = new RegExp(`\\$${item}`, 'g')
customLink = customLink.replace(reg, formatObj[item])
}
})
return customLink
}
export default (style, item) => {
let url = item.url || item.imgUrl
const customLink = db.read().get('settings.customLink').value() || '$url' const customLink = db.read().get('settings.customLink').value() || '$url'
const tpl = { const tpl = {
'markdown': `![](${url})`, 'markdown': `![](${url})`,
'HTML': `<img src="${url}"/>`, 'HTML': `<img src="${url}"/>`,
'URL': url, 'URL': url,
'UBB': `[IMG]${url}[/IMG]`, 'UBB': `[IMG]${url}[/IMG]`,
'Custom': customLink.replace(/\$url/g, url) 'Custom': formatCustomLink(customLink, item)
} }
return tpl[style] return tpl[style]
} }

View File

@ -213,13 +213,12 @@ export default {
this.changeZIndexForGallery(false) this.changeZIndexForGallery(false)
}, },
copy (item) { copy (item) {
const url = item.url || item.imgUrl
const style = this.$db.read().get('settings.pasteStyle').value() || 'markdown' const style = this.$db.read().get('settings.pasteStyle').value() || 'markdown'
const copyLink = pasteStyle(style, url) const copyLink = pasteStyle(style, item)
const obj = { const obj = {
title: '复制链接成功', title: '复制链接成功',
body: copyLink, body: copyLink,
icon: url icon: item.url || item.imgUrl
} }
const myNotification = new window.Notification(obj.title, obj) const myNotification = new window.Notification(obj.title, obj)
this.$electron.clipboard.writeText(copyLink) this.$electron.clipboard.writeText(copyLink)
@ -325,8 +324,7 @@ export default {
Object.keys(this.choosedList).forEach(key => { Object.keys(this.choosedList).forEach(key => {
if (this.choosedList[key]) { if (this.choosedList[key]) {
const item = this.$db.read().get('uploaded').getById(key).value() const item = this.$db.read().get('uploaded').getById(key).value()
const url = item.url || item.imgUrl copyString += pasteStyle(style, item) + '\n'
copyString += pasteStyle(style, url) + '\n'
this.choosedList[key] = false this.choosedList[key] = false
} }
}) })

View File

@ -84,7 +84,7 @@
this.notification.icon = item.imgUrl this.notification.icon = item.imgUrl
const myNotification = new window.Notification(this.notification.title, this.notification) const myNotification = new window.Notification(this.notification.title, this.notification)
const pasteStyle = this.$db.read().get('settings.pasteStyle').value() || 'markdown' const pasteStyle = this.$db.read().get('settings.pasteStyle').value() || 'markdown'
this.$electron.clipboard.writeText(pasteTemplate(pasteStyle, item.imgUrl)) this.$electron.clipboard.writeText(pasteTemplate(pasteStyle, item))
myNotification.onclick = () => { myNotification.onclick = () => {
return true return true
} }