twikoo-func 1.6.44 → 1.6.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twikoo-func",
3
- "version": "1.6.44",
3
+ "version": "1.6.45",
4
4
  "description": "A simple comment system.",
5
5
  "author": "imaegoo <hello@imaegoo.com> (https://github.com/imaegoo)",
6
6
  "license": "MIT",
package/utils/image.js CHANGED
@@ -19,8 +19,8 @@ const fn = {
19
19
  // tip: qcloud 图床走前端上传,其他图床走后端上传
20
20
  if (config.IMAGE_CDN === '7bu') {
21
21
  await fn.uploadImageToLskyPro({ photo, fileName, config, res, imageCdn: 'https://7bu.top' })
22
- } else if (config.IMAGE_CDN === 'smms') {
23
- await fn.uploadImageToSmms({ photo, fileName, config, res, imageCdn: 'https://smms.app/api/v2/upload' })
22
+ } else if (config.IMAGE_CDN === 'see') {
23
+ await fn.uploadImageToSee({ photo, fileName, config, res, imageCdn: 'https://s.ee/api/v1/file/upload' })
24
24
  } else if (isUrl(config.IMAGE_CDN)) {
25
25
  await fn.uploadImageToLskyPro({ photo, fileName, config, res, imageCdn: config.IMAGE_CDN })
26
26
  } else if (config.IMAGE_CDN === 'lskypro') {
@@ -29,6 +29,8 @@ const fn = {
29
29
  await fn.uploadImageToPicList({ photo, fileName, config, res, imageCdn: config.IMAGE_CDN_URL })
30
30
  } else if (config.IMAGE_CDN === 'easyimage') {
31
31
  await fn.uploadImageToEasyImage({ photo, fileName, config, res })
32
+ } else if (config.IMAGE_CDN === 'chevereto') {
33
+ await fn.uploadImageToChevereto({ photo, fileName, config, res })
32
34
  } else {
33
35
  throw new Error('不支持的图片上传服务')
34
36
  }
@@ -39,8 +41,8 @@ const fn = {
39
41
  }
40
42
  return res
41
43
  },
42
- async uploadImageToSmms ({ photo, fileName, config, res, imageCdn }) {
43
- // SM.MS 图床 https://sm.ms
44
+ async uploadImageToSee ({ photo, fileName, config, res, imageCdn }) {
45
+ // S.EE 图床 https://s.ee (原 SM.MS)
44
46
  const formData = new FormData()
45
47
  formData.append('smfile', fn.base64UrlToReadStream(photo, fileName))
46
48
  const uploadResult = await axios.post(imageCdn, formData, {
@@ -148,6 +150,35 @@ const fn = {
148
150
  throw new Error(errorMsg)
149
151
  }
150
152
  },
153
+ async uploadImageToChevereto ({ photo, fileName, config, res }) {
154
+ if (!config.IMAGE_CDN_URL) {
155
+ throw new Error('未配置 Chevereto 站点地址 (IMAGE_CDN_URL)')
156
+ }
157
+ if (!config.IMAGE_CDN_TOKEN) {
158
+ throw new Error('未配置 Chevereto API Key (IMAGE_CDN_TOKEN)')
159
+ }
160
+ const formData = new FormData()
161
+ formData.append('key', config.IMAGE_CDN_TOKEN)
162
+ formData.append('source', fn.base64UrlToReadStream(photo, fileName))
163
+ formData.append('format', 'json')
164
+ const apiUrl = config.IMAGE_CDN_URL.replace(/\/$/, '') + '/api/1/upload'
165
+ const uploadResult = await axios.post(apiUrl, formData, {
166
+ headers: {
167
+ ...formData.getHeaders()
168
+ }
169
+ })
170
+ const data = uploadResult.data
171
+ if (data.status_code === 200 && data.image && data.image.url) {
172
+ res.data = {
173
+ url: data.image.url,
174
+ thumb: data.image.thumb ? data.image.thumb.url : data.image.url,
175
+ del: data.image.delete_url
176
+ }
177
+ } else {
178
+ const errMsg = (data.error && data.error.message) || JSON.stringify(data)
179
+ throw new Error(`Chevereto 上传失败: ${errMsg}`)
180
+ }
181
+ },
151
182
  base64UrlToReadStream (base64Url, fileName) {
152
183
  const base64 = base64Url.split(';base64,').pop()
153
184
  const writePath = path.resolve(os.tmpdir(), fileName)
package/utils/index.js CHANGED
@@ -111,7 +111,8 @@ const fn = {
111
111
  12: 'Monterey',
112
112
  13: 'Ventura',
113
113
  14: 'Sonoma',
114
- 15: 'Sequoia'
114
+ 15: 'Sequoia',
115
+ 16: 'Tahoe'
115
116
  }[majorPlatformVersion]
116
117
  } else if (os.name === 'Android') {
117
118
  const majorPlatformVersion = os.version.split('.')[0]