Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(wechat-public-account-push): 新增网页生成配置参数的方式 #197

Merged
merged 3 commits into from
Sep 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ wechat-public-account-push
- **根据配置就近推送前N个值得纪念的日子**
- **自定义出参,模板定制更个性**
- **推送回执**
- **github 萌新友好!可以网页自动生成配置**
- **不需要拥有服务器,白嫖actions执行,每天定时发送**
- **支持gitee go**
- **支持本地化部署每天定时发送**
Expand All @@ -56,9 +57,10 @@ wechat-public-account-push
- [1.1. 第一步:注册一个微信公众测试号](#11-第一步注册一个微信公众测试号)
- [1.2. 第二步:进行模板配置](#12-第二步进行模板配置)
- [1.3. 第三步:完成配置文件,并运行 wechat-public-account-push](#13-第三步完成配置文件并运行wechat-public-account-push)
- [1.3.1. 方式一:使用Github-Action(不准时,排队执行,胜在免费)](#131-方式一使用Github-Action不准时排队执行胜在免费)
- [1.3.2. 方式二:使用Gitee-go(定时任务收费,前200分钟免费,非常准时)](#132-方式二使用Gitee-go定时任务收费前200分钟免费非常准时)
- [1.3.3. 方式三:下载程序包到本地或服务器运行(需要有自己的服务器,使用系统的定时任务非常准时)](#132-方式三下载程序包到本地或服务器运行需要有自己的服务器使用系统的定时任务非常准时)
- [1.3.1. 方式一:使用网页工具自动生成Github-Action配置(推荐)](#131-方式一使用网页工具自动生成Github-Action配置推荐)
- [1.3.2. 方式二:使用Github-Action(不准时,排队执行,胜在免费)](#132-方式二使用Github-Action不准时排队执行胜在免费)
- [1.3.3. 方式三:使用Gitee-go(定时任务收费,前200分钟免费,非常准时)](#133-方式三使用Gitee-go定时任务收费前200分钟免费非常准时)
- [1.3.4. 方式四:下载程序包到本地或服务器运行(需要有自己的服务器,使用系统的定时任务非常准时)](#134-方式四下载程序包到本地或服务器运行需要有自己的服务器使用系统的定时任务非常准时)
- [2. 公众号模板参数说明](#2-公众号模板参数说明)
- [3. config参数说明](#3-config参数说明)
- [4. 模板样例](#4-模板样例)
Expand Down Expand Up @@ -180,7 +182,13 @@ wechat-public-account-push 实现自消息推送的原理,是通过调用一

### 1.3. 第三步:完成配置文件,并运行wechat-public-account-push

#### 1.3.1 方式一:使用Github-Action(不准时,排队执行,胜在免费)
#### 1.3.1 方式一:使用网页工具自动生成Github-Action配置(推荐)

[✨网页一站式生成传送门 >>>](https://shuangxunian.github.io/wechat-form/)

[❓如何使用网页一站式生成 >>>](https://github.com/shuangxunian/wechat-form)

#### 1.3.2 方式二:使用Github-Action(不准时,排队执行,胜在免费)

👇👇👇👇点击展开

Expand Down Expand Up @@ -254,7 +262,7 @@ wechat-public-account-push 实现自消息推送的原理,是通过调用一

<br/>

#### 1.3.2 方式二:使用Gitee-go(定时任务收费,前200分钟免费,非常准时)
#### 1.3.3 方式三:使用Gitee-go(定时任务收费,前200分钟免费,非常准时)

👇👇👇👇点击展开

Expand Down Expand Up @@ -374,7 +382,7 @@ stages:

<br/>

#### 1.3.3 方式三:下载程序包到本地或服务器运行(需要有自己的服务器,使用系统的定时任务非常准时)
#### 1.3.4 方式四:下载程序包到本地或服务器运行(需要有自己的服务器,使用系统的定时任务非常准时)
如果是 Nodejs 开发者,直接 Clone 源码,然后 VS 打开解决方案,配置 Cookie 后即可直接本地进行运行和调试。

对于不是开发者的朋友,可以通过以下命令到本地或任意服务器运行,步骤如下。
Expand Down
2 changes: 1 addition & 1 deletion __tests__/services.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { jest } from '@jest/globals'
import axios from 'axios'
import dayjs from 'dayjs'
import MockDate from 'mockdate'
import { config } from '../config'
import { config } from '../config/exp-config.js'

import {
getWeather,
Expand Down
2 changes: 1 addition & 1 deletion __tests__/utils.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { jest } from '@jest/globals'
import {
toLowerLine, getColor, randomNum, sortBirthdayTime, getConstellation,
} from '../src/utils'
import { config } from '../config'
import { config } from '../config/exp-config.js'

jest.mock('../config')
describe('utils', () => {
Expand Down
10 changes: 10 additions & 0 deletions config/exp-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { USER_CONFIG } from "./index.js";

let userConfig = {}
if (process.env.USER_INFO) {
userConfig = JSON.parse(process.env.USER_INFO)
} else {
userConfig = USER_CONFIG
}

export const config = userConfig
82 changes: 41 additions & 41 deletions config/index.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
export const config = {
export const USER_CONFIG = {
/**
* 公众号配置
*/

// 公众号APP_ID
// 建议不要填这里,请使用文档中github secret的方法进行保密配置,保护您的隐私安全。
// 如果你非要填这里也行。脚本也能运行
APP_ID: "",

// 公众号APP_SECRET
// 建议不要填这里,请使用文档中github secret的方法进行保密配置,保护您的隐私安全。
// 如果你非要填这里也行。脚本也能运行
APP_SECRET: "",

// 是否给文字设置多彩颜色, 和emoji不兼容
// 如果您使用了微信测试号的模板中含有emoji表情,请填 false
IS_SHOW_COLOR: true,

// 功能开关,打开:true,关闭:false
SWITCH: {
/** 每日天气 */
weather: true,

/** 节假日 */
// 下一休息日综合提醒
holidaytts: true,

/** 每日N句 */
// 金山每日一句
CIBA: true,
Expand All @@ -39,21 +39,21 @@ export const config = {
poisonChickenSoup: false,
// 古诗古文
poetry: false,

/** 星座运势 */
horoscope: false,

/** 生日消息和节日消息 */
birthdayMessage: true,
},

/** 每日一言 */

// 每日一言的内容类型
// 可以填写【动画,漫画,游戏,小说,原创,网络,其他】; 随机则填写 ""
LITERARY_PREFERENCE: "",


/**
* 接收公众号消息的微信号,如果有多个,需要在[]里用英文逗号间隔
*/
Expand Down Expand Up @@ -133,14 +133,14 @@ export const config = {
// 你可以不断按格式往下增加
// ...
],

/**
* 【推送完成提醒】 相关,主要用来展示发送是否成功/失败的数据
*/

// 【推送完成提醒】模板id, 用来看自己有没有发送成功的那个模板
CALLBACK_TEMPLATE_ID: "",

// 接收成功回调消息的微信号,(一般来说只填自己的微信号, name填不填无所谓)
CALLBACK_USERS: [
{
Expand All @@ -152,31 +152,31 @@ export const config = {
// 你可以不断按格式往下增加
// ...
],

/**
* 信息配置
*/

/** 天气相关 */

// 默认所在省份, USERS 中没填的话, 会默认拿这里的省份
PROVINCE: "广东",
// 默认所在城市, USERS 中没填的话, 会默认拿这里的城市
CITY: "惠州",

/** 重要节日相关 */

/**
* 重要节日,修改名字为对应需要显示的名字, date 仅填月日即可, 请严格按照示例填写
* type必须填! 只能 “生日” 和 “节日” 二选一!
*
*
* --- 阴历配置开始 ---
* 如果日期使用阴历,请在 “生日” 或 "节日“ 前添加 * 符号
* --- 阴历配置结束 ---
*
*
* 生日时,name填写想要展示的名字,你可以填“美丽可爱亲亲老婆”
* 节日时,name填写相应展示的节日,你可以填“被搭讪纪念日”
*
*
* --- 是否展示周岁信息开始 ---
* isShowAge: true 展示岁数, 仅type为生日生效
* isShowAge: false 不展示岁数, 仅type为生日生效
Expand All @@ -193,20 +193,20 @@ export const config = {
// 你可以不断按格式往下增加
// ...
],

/**
* 限制重要节日的展示条目, 需要填写数字;
* 如果为3, 则仅展示“将要到达” 的3个重要节日提醒,剩下的将被忽略
* 如果为0, 则默认展示全部
*/
FESTIVALS_LIMIT: 4,

/** 日期相关 */

/** 你现在可以随心增加你认为的所有的需要纪念的日子啦!
* keyword是指暴露给测试号的模板字段,填什么就暴露什么, 请注意不要和README的出参表中的字段重复。
* 比如:keyword: "love_date" ,在测试号中就是 {{ love_date.DATA }}
* */
* keyword是指暴露给测试号的模板字段,填什么就暴露什么, 请注意不要和README的出参表中的字段重复。
* 比如:keyword: "love_date" ,在测试号中就是 {{ love_date.DATA }}
* */
CUSTOMIZED_DATE_LIST: [
// 在一起的日子
{"keyword": "love_day", date: "2022-09-08"},
Expand All @@ -217,26 +217,26 @@ export const config = {
// 你可以不断按格式往下增加
// ...
],

/** 插槽 */

/** 你可以在这里写超多的你想显示的内容了!
* keyword是指暴露给测试号的模板字段,填什么就暴露什么, 请注意不要和README的出参表中的字段重复。
* 比如:keyword: "lover_prattle" ,在测试号中就是 {{ lover_prattle.DATA }}
* */
* keyword是指暴露给测试号的模板字段,填什么就暴露什么, 请注意不要和README的出参表中的字段重复。
* 比如:keyword: "lover_prattle" ,在测试号中就是 {{ lover_prattle.DATA }}
* */
SLOT_LIST: [
// 这样配置的话,就会每次发送这句话
{"keyword": "encourage_oneself", contents: "你主要的问题在于读书太少而想得太多"},
// 这样配置的话,就会每次随机选一句话发送
{"keyword": "lover_prattle", contents: [
"因为太喜欢你,所以看谁都像是情敌。",
"申请成为你爱里的永久居民。",
"你很傻,你很笨,可我还是很羡慕你,因为你有我",
"遇见你,就好像捡到了100斤的运气",
]},
"因为太喜欢你,所以看谁都像是情敌。",
"申请成为你爱里的永久居民。",
"你很傻,你很笨,可我还是很羡慕你,因为你有我",
"遇见你,就好像捡到了100斤的运气",
]},
// 你可以不断按格式往下增加
// ...
],


}
2 changes: 1 addition & 1 deletion main.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
getAggregatedData,
getCallbackTemplateParams,
} from './src/services/index.js'
import { config } from './config/index.js'
import { config } from './config/exp-config.js'
import { cornTime } from './config/server-config.js'
import mainForTest from './main-for-test.js'

Expand Down
2 changes: 1 addition & 1 deletion src/services/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import axios from 'axios'
import dayjs from 'dayjs'
import { JSDOM } from 'jsdom'

import { config } from '../../config/index.js'
import { config } from '../../config/exp-config.js'
import { CITY_INFO, DEFAULT_OUTPUT, TYPE_LIST } from '../store/index.js'
import {
getConstellation,
Expand Down
2 changes: 1 addition & 1 deletion src/utils/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Lunar, Solar } from 'lunar-javascript'
import { selfDayjs } from './set-def-dayjs.js'
import { config } from '../../config/index.js'
import { config } from '../../config/exp-config.js'

/**
* 驼峰转下划线
Expand Down