Skip to content

Commit d31c02b

Browse files
authored
Merge pull request #352 from wangxinleo/feature/develop
feat(wechat-public-account-push): 常用字段拆分适配微信推送
2 parents 545d220 + 8cb66b3 commit d31c02b

File tree

2 files changed

+205
-30
lines changed

2 files changed

+205
-30
lines changed

README.md

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ wechat-public-account-push 实现自消息推送的原理,是通过调用一
239239
| province.DATA | 省份 | 广东 |
240240
| city.DATA | 城市 | 惠州 |
241241

242-
**天气类**
242+
**天气类(由于是免费接口,服务器并不稳定会拿不到数据,推荐使用下方的天行接口)**
243243

244244
| 参数 | 详细 | 示例 |
245245
|----------------------|--------|------------------------------------|
@@ -260,33 +260,78 @@ wechat-public-account-push 实现自消息推送的原理,是通过调用一
260260
**节假日**
261261
| 参数 | 详细 | 示例 |
262262
|------------------------|----------------|----------------|
263-
| holidaytts.DATA | 下一休息日综合提醒 | 还有3天就周六了,好好工作吧!距离国庆还有18天,早着呢 |
263+
| holidaytts.DATA (**微信测试号无法使用**) | 下一休息日综合提醒 | 还有3天就周六了,好好工作吧!距离国庆还有18天,早着呢 |
264+
265+
`{index}`替换为要显示的第N-1个
266+
267+
> 用法示例:
268+
>
269+
> 为了能在微信推送中使用,长文本被截取成20个字符每段
270+
>
271+
> **wx_holidaytts_0.DATA** -> 今天是工作日啊~距离下个周六,还有3天;
272+
>
273+
> **wx_holidaytts_1.DATA** -> 距离最近的一个节日是9月29日的中秋节,
274+
>
275+
> ...
276+
>
277+
> **wx_holidaytts_999.DATA**
278+
>
279+
280+
| 参数 | 详细 | 示例 |
281+
|---------------------------------|-------------------------|-------------------|
282+
| wx_holidaytts_{index}.DATA | 下一休息日综合提醒 | 还有3天就周六了,好好工作吧!距离国庆还有18天,早着呢 |
264283

265284
**每日N句**
266285

267286
| 参数 | 详细 | 示例 |
268287
|--------------------------|-----------|-------------------------------------------------------|
269-
| note_en.DATA | 金山每日一句-英文 | Nothing in this world that's worth having comes easy. |
270-
| note_ch.DATA | 金山每日一句-中文 | 这世界上凡是值得拥有的东西,都不易获得。 |
271-
| one_talk.DATA | 每日一言-内容 | 愿你遍布祖国山河,觉得人生也值得 |
288+
| note_en.DATA (**微信测试号无法使用**) | 金山每日一句-英文 | Nothing in this world that's worth having comes easy. |
289+
| note_ch.DATA (**微信测试号无法使用**) | 金山每日一句-中文 | 这世界上凡是值得拥有的东西,都不易获得。 |
290+
| one_talk.DATA (**微信测试号无法使用**) | 每日一言-内容 | 愿你遍布祖国山河,觉得人生也值得 |
272291
| talk_from.DATA | 每日一言-来源 | 晓良 |
273-
| earthy_love_words.DATA | 土味情话(彩虹屁) | 我今晚会很忙,忙着跟你过日子 |
274-
| moment_copyrighting.DATA | 朋友圈文案 | 错过太阳就不要再错过月亮了 |
275-
| poison_chicken_soup.DATA | 毒鸡汤 | 我从不以强凌弱,我欺负他之前,真不晓得他比我弱。 |
276-
| poetry_content.DATA | 古诗古文-内容 | 举头望明月,低头思故乡。 |
292+
| earthy_love_words.DATA (**微信测试号无法使用**) | 土味情话(彩虹屁) | 我今晚会很忙,忙着跟你过日子 |
293+
| moment_copyrighting.DATA (**微信测试号无法使用**) | 朋友圈文案 | 错过太阳就不要再错过月亮了 |
294+
| poison_chicken_soup.DATA (**微信测试号无法使用**) | 毒鸡汤 | 我从不以强凌弱,我欺负他之前,真不晓得他比我弱。 |
295+
| poetry_content.DATA (**微信测试号无法使用**) | 古诗古文-内容 | 举头望明月,低头思故乡。 |
277296
| poetry_title.DATA | 古诗古文-标题 | 静夜思 |
278297
| poetry_author.DATA | 古诗古文-作者 | 李白 |
279298
| poetry_dynasty.DATA | 古诗古文-朝代 | 唐代 |
280299

300+
301+
`{index}`替换为要显示的第N-1个
302+
303+
> 用法示例:
304+
>
305+
> 为了能在微信推送中使用,长文本被截取成20个字符每段
306+
>
307+
> **wx_one_talk_0.DATA** -> 风起,花飘零,梦醒时分,却有几多愁,上
308+
>
309+
> **wx_one_talk_1.DATA** -> 心头。
310+
>
311+
> ...
312+
>
313+
> **wx_one_talk_999.DATA**
314+
>
315+
316+
| 参数 | 详细 | 示例 |
317+
|---------------------------------|-------------------------|-------------------|
318+
| wx_note_en_{index}.DATA | 金山每日一句-英文 | Nothing in this world that's worth having comes easy. |
319+
| wx_note_ch_{index}.DATA | 金山每日一句-中文 | 这世界上凡是值得拥有的东西,都不易获得。 |
320+
| wx_one_talk_{index}.DATA | 每日一言-内容 | 愿你遍布祖国山河,觉得人生也值得 |
321+
| wx_earthy_love_words_{index}.DATA | 土味情话(彩虹屁) | 我今晚会很忙,忙着跟你过日子 |
322+
| wx_moment_copyrighting_{index}.DATA | 朋友圈文案 | 错过太阳就不要再错过月亮了 |
323+
| wx_poison_chicken_soup_{index}.DATA | 毒鸡汤 | 我从不以强凌弱,我欺负他之前,真不晓得他比我弱。 |
324+
| wx_poetry_content_{index}.DATA | 古诗古文-内容 | 举头望明月,低头思故乡。 |
325+
281326
**星座运势**
282327

283328
| 参数 | 详细 | 示例 |
284329
|------------------------------|------|-------------------|
285-
| comprehensive_horoscope.DATA | 综合运势 | 太多了,不示例了,自己调用查看效果 |
286-
| love_horoscope.DATA | 爱情运势 | 太多了,不示例了,自己调用查看效果 |
287-
| career_horoscope.DATA | 事业学业 | 太多了,不示例了,自己调用查看效果 |
288-
| wealth_horoscope.DATA | 财富运势 | 太多了,不示例了,自己调用查看效果 |
289-
| healthy_horoscope.DATA | 健康运势 | 太多了,不示例了,自己调用查看效果 |
330+
| comprehensive_horoscope.DATA (**微信测试号无法使用**) | 综合运势 | 太多了,不示例了,自己调用查看效果 |
331+
| love_horoscope.DATA (**微信测试号无法使用**) | 爱情运势 | 太多了,不示例了,自己调用查看效果 |
332+
| career_horoscope.DATA (**微信测试号无法使用**) | 事业学业 | 太多了,不示例了,自己调用查看效果 |
333+
| wealth_horoscope.DATA (**微信测试号无法使用**) | 财富运势 | 太多了,不示例了,自己调用查看效果 |
334+
| healthy_horoscope.DATA (**微信测试号无法使用**) | 健康运势 | 太多了,不示例了,自己调用查看效果 |
290335

291336
**计时类**
292337

src/services/index.js

Lines changed: 146 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,34 @@ export const getCIBA = async () => {
184184
}).catch((err) => err)
185185

186186
if (res.status === 200 && res) {
187-
return res.data
187+
const data = res.data
188+
const keys = [{
189+
from: 'content',
190+
to: 'note_en'
191+
}, {
192+
from: 'note',
193+
to: 'note_ch'
194+
}]
195+
keys.forEach(obj => {
196+
const value = data[obj.from]
197+
const arr = []
198+
for (let j = 0, i = 0; j < value.length; j += 20) {
199+
arr.push({
200+
name: `wx_${obj.to}_${i}`,
201+
value: value.slice(j, j + 20),
202+
color: getColor()
203+
})
204+
i++
205+
}
206+
data[`wx_${obj.to}`] = arr
207+
})
208+
209+
return {
210+
noteEn: data['content'],
211+
wxNoteEn: data['wx_note_en'],
212+
noteCh: data['note'],
213+
wxNoteCh: data['wx_note_ch'],
214+
}
188215
}
189216
console.error('金山词霸每日一句: 发生错误', res)
190217
return {}
@@ -201,12 +228,28 @@ export const getHolidaytts = async () => {
201228

202229
const url = 'https://wangxinleo.cn/api/wx-push/holiday/getHolidaytts'
203230
const res = await axios.get(url).catch((err) => err)
231+
let data = DEFAULT_OUTPUT.holidaytts
204232

205233
if (res.status === 200 && res.data && res.data.code === 0) {
206-
return res.data.tts
234+
data = res.data.tts
235+
} else {
236+
console.error('获取下一休息日tts: 发生错误', res)
237+
}
238+
239+
const arr = []
240+
for (let j = 0, i = 0; j < data.length; j += 20) {
241+
arr.push({
242+
name: `wx_holidaytts_${i}`,
243+
value: data.slice(j, j + 20),
244+
color: getColor()
245+
})
246+
i++
247+
}
248+
249+
return {
250+
holidaytts: data,
251+
wxHolidaytts: arr
207252
}
208-
console.error('获取下一休息日tts: 发生错误', res)
209-
return null
210253
}
211254

212255
/**
@@ -226,7 +269,25 @@ export const getOneTalk = async (type) => {
226269
const res = await axios.get(url).catch((err) => err)
227270

228271
if (res && res.status === 200) {
229-
return res.data
272+
const data = res.data
273+
const keys = [{
274+
from: 'hitokoto',
275+
to: 'one_talk'
276+
}]
277+
keys.forEach(obj => {
278+
const value = data[obj.from]
279+
const arr = []
280+
for (let j = 0, i = 0; j < value.length; j += 20) {
281+
arr.push({
282+
name: `wx_${obj.to}_${i}`,
283+
value: value.slice(j, j + 20),
284+
color: getColor()
285+
})
286+
i++
287+
}
288+
data[`wx_${obj.to}`] = arr
289+
})
290+
return data
230291
}
231292

232293
console.error('每日一言: 发生错误', res)
@@ -268,7 +329,23 @@ export const getEarthyLoveWords = async () => {
268329
if (config.SWITCH && config.SWITCH.earthyLoveWords === false) {
269330
return ''
270331
}
271-
return getWordsFromApiShadiao('chp')
332+
333+
const data = await getWordsFromApiShadiao('chp') || DEFAULT_OUTPUT.earthyLoveWords
334+
335+
const arr = []
336+
for (let j = 0, i = 0; j < data.length; j += 20) {
337+
arr.push({
338+
name: `wx_earthy_love_words_${i}`,
339+
value: data.slice(j, j + 20),
340+
color: getColor()
341+
})
342+
i++
343+
}
344+
345+
return {
346+
earthyLoveWords: data,
347+
wxEarthyLoveWords: arr
348+
}
272349
}
273350

274351
/**
@@ -279,8 +356,22 @@ export const getMomentCopyrighting = async () => {
279356
if (config.SWITCH && config.SWITCH.momentCopyrighting === false) {
280357
return ''
281358
}
359+
const data = await getWordsFromApiShadiao('pyq') || DEFAULT_OUTPUT.momentCopyrighting
282360

283-
return getWordsFromApiShadiao('pyq')
361+
const arr = []
362+
for (let j = 0, i = 0; j < data.length; j += 20) {
363+
arr.push({
364+
name: `wx_moment_copyrighting_${i}`,
365+
value: data.slice(j, j + 20),
366+
color: getColor()
367+
})
368+
i++
369+
}
370+
371+
return {
372+
momentCopyrighting: data,
373+
wxMomentCopyrighting: arr
374+
}
284375
}
285376

286377
/**
@@ -292,7 +383,22 @@ export const getPoisonChickenSoup = async () => {
292383
return ''
293384
}
294385

295-
return getWordsFromApiShadiao('du')
386+
const data = await getWordsFromApiShadiao('du') || DEFAULT_OUTPUT.poisonChickenSoup
387+
388+
const arr = []
389+
for (let j = 0, i = 0; j < data.length; j += 20) {
390+
arr.push({
391+
name: `wx_poison_chicken_soup_${i}`,
392+
value: data.slice(j, j + 20),
393+
color: getColor()
394+
})
395+
i++
396+
}
397+
398+
return {
399+
poisonChickenSoup: data,
400+
wxPoisonChickenSoup: arr
401+
}
296402
}
297403

298404
/**
@@ -317,10 +423,22 @@ export const getPoetry = async () => {
317423
console.error('古诗古文:发生错误', warning || '')
318424
return {}
319425
}
320-
const { content = '', origin } = data || {}
426+
const { content = DEFAULT_OUTPUT.poetryContent, origin } = data || {}
427+
428+
const wxContent = []
429+
for (let j = 0, i = 0; j < content.length; j += 20) {
430+
wxContent.push({
431+
name: `wx_poetry_content_${i}`,
432+
value: content.slice(j, j + 20),
433+
color: getColor()
434+
})
435+
i++
436+
}
437+
321438
const { title = '', author = '', dynasty = '' } = origin || {}
322439
return {
323440
content,
441+
wxContent,
324442
title,
325443
author,
326444
dynasty,
@@ -701,28 +819,32 @@ export const getAggregatedData = async () => {
701819
const weekList = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
702820
// 获取金山词霸每日一句
703821
const {
704-
content: noteEn = DEFAULT_OUTPUT.noteEn,
705-
note: noteCh = DEFAULT_OUTPUT.noteCh,
822+
noteEn = DEFAULT_OUTPUT.noteEn,
823+
wxNoteEn = '',
824+
noteCh = DEFAULT_OUTPUT.noteCh,
825+
wxNoteCh = ''
706826
} = await getCIBA()
707827
// 获取下一休息日
708-
const holidaytts = await getHolidaytts() || DEFAULT_OUTPUT.holidaytts
828+
const {holidaytts, wxHolidaytts} = await getHolidaytts()
709829
// 获取每日一言
710830
const {
711831
hitokoto: oneTalk = DEFAULT_OUTPUT.oneTalk,
832+
wx_one_talk: wxOneTalk = '',
712833
from: talkFrom = DEFAULT_OUTPUT.talkFrom,
713834
} = await getOneTalk(config.LITERARY_PREFERENCE)
714835
// 获取土味情话
715-
const earthyLoveWords = await getEarthyLoveWords() || DEFAULT_OUTPUT.earthyLoveWords
836+
const {earthyLoveWords, wxEarthyLoveWords} = await getEarthyLoveWords()
716837
// 获取朋友圈文案
717-
const momentCopyrighting = await getMomentCopyrighting() || DEFAULT_OUTPUT.momentCopyrighting
838+
const {momentCopyrighting, wxMomentCopyrighting} = await getMomentCopyrighting()
718839
// 获取毒鸡汤
719-
const poisonChickenSoup = await getPoisonChickenSoup() || DEFAULT_OUTPUT.poisonChickenSoup
840+
const {poisonChickenSoup, wxPoisonChickenSoup} = await getPoisonChickenSoup()
720841
// 获取古诗古文 poetry
721842
const {
722843
dynasty: poetryDynasty = DEFAULT_OUTPUT.poetryDynasty,
723844
author: poetryAuthor = DEFAULT_OUTPUT.poetryAuthor,
724845
title: poetryTitle = DEFAULT_OUTPUT.poetryTitle,
725-
content: poetryContent = DEFAULT_OUTPUT.poetryContent,
846+
content: poetryContent,
847+
wxContent: wxPoetryContent
726848
} = await getPoetry()
727849
// 获取插槽中的数据
728850
const slotParams = getSlotList().map((item) => ({ name: item.keyword, value: item.checkout, color: getColor() }))
@@ -816,6 +938,14 @@ export const getAggregatedData = async () => {
816938
.concat(tianApiNetworkHot)
817939
.concat(wechatTestBirthdayMessage)
818940
.concat(wechatTestCourseSchedule)
941+
.concat(wxNoteEn)
942+
.concat(wxNoteCh)
943+
.concat(wxOneTalk)
944+
.concat(wxEarthyLoveWords)
945+
.concat(wxMomentCopyrighting)
946+
.concat(wxPoisonChickenSoup)
947+
.concat(wxPoetryContent)
948+
.concat(wxHolidaytts)
819949

820950
user.wxTemplateParams = wxTemplateParams
821951
}

0 commit comments

Comments
 (0)