Added: smms picbed

This commit is contained in:
Molunerfinn 2018-06-04 21:30:36 +08:00
parent 1b8400a458
commit ffbbc74734
6 changed files with 140 additions and 31 deletions

View File

@ -1,9 +1,6 @@
import db from './index'
let picBed = db.read().get('picBed.list').value()
if (!picBed) {
picBed = [
let picBed = [
{
type: 'weibo',
name: '微博图床',
@ -28,8 +25,22 @@ if (!picBed) {
type: 'github',
name: 'GitHub图床',
visible: true
},
{
type: 'smms',
name: 'SM.MS图床',
visible: true
}
]
let picBedFromDB = db.read().get('picBed.list').value() || []
let oldLength = picBedFromDB.length
let newLength = picBed.length
if (oldLength !== newLength) {
for (let i = oldLength; i < newLength; i++) {
picBedFromDB.push(picBed[i])
}
}
export default picBed
export default picBedFromDB

View File

@ -0,0 +1,47 @@
import request from 'request-promise'
import * as img2Base64 from './img2base64'
import { Notification } from 'electron'
const postOptions = (fileName, imgBase64) => {
return {
method: 'POST',
url: `https://sm.ms/api/upload`,
formData: {
smfile: Buffer.from(imgBase64, 'base64'),
filename: fileName,
ssl: true
},
json: true
}
}
const smmsUpload = async function (img, type, webContents) {
try {
webContents.send('uploadProgress', 0)
const imgList = await img2Base64[type](img)
webContents.send('uploadProgress', 30)
for (let i in imgList) {
const postConfig = postOptions(imgList[i].fileName, imgList[i].base64Image)
const body = await request(postConfig)
if (body) {
delete imgList[i].base64Image
imgList[i]['imgUrl'] = body.data.url
} else {
webContents.send('uploadProgress', -1)
return new Error()
}
}
webContents.send('uploadProgress', 100)
return imgList
} catch (err) {
webContents.send('uploadProgress', -1)
const notification = new Notification({
title: '上传失败!',
body: '服务端出错,请重试'
})
notification.show()
throw new Error(err)
}
}
export default smmsUpload

View File

@ -3,6 +3,7 @@ import qiniuUpload from './qiniuUpload'
import tcYunUpload from './tcYunUpload'
import upYunUpload from './upYunUpload'
import githubUpload from './githubUpload'
import smmsUpload from './smmsUpload'
import db from '../../datastore/index'
import { Notification } from 'electron'
@ -34,6 +35,8 @@ const uploader = (img, type, webContents) => {
return upYunUpload(img, type, webContents)
case 'github':
return githubUpload(img, type, webContents)
case 'smms':
return smmsUpload(img, type, webContents)
}
} else {
return false

View File

@ -38,7 +38,7 @@
:index="item.type"
:key="item.type"
>
<i :class="`el-icon-ui-${item.type}`"></i>
<!-- <i :class="`el-icon-ui-${item.type}`"></i> -->
<span slot="title">{{ item.name }}</span>
</el-menu-item>
</template>

View File

@ -0,0 +1,43 @@
<template>
<div id="smms-view">
<el-row :gutter="16">
<el-col :span="16" :offset="4">
<div class="view-title">
SM.MS设置
</div>
<div style="text-align: center; margin-top: 20px;">
<el-button type="success" @click="confirm" round :disabled="defaultPicBed === 'smms'" size="mini">设为默认图床</el-button>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import mixin from '../mixin'
export default {
name: 'upyun',
mixins: [mixin],
data () {
return {}
},
methods: {
confirm () {
this.$db.set('picBed.smms', this.form).write()
this.setDefaultPicBed('smms')
const successNotification = new window.Notification('设置结果', {
body: '设置成功'
})
successNotification.onclick = () => {
return true
}
}
}
}
</script>
<style lang='stylus'>
.view-title
color #eee
font-size 20px
text-align center
margin 20px auto
</style>

View File

@ -50,6 +50,11 @@ export default new Router({
component: require('@/components/SettingView/GitHub').default,
name: 'github'
},
{
path: 'smms',
component: require('@/components/SettingView/SMMS').default,
name: 'smms'
},
{
path: 'gallery',
component: require('@/components/SettingView/Gallery').default,