This commit is contained in:
sinvo
2021-06-11 17:40:43 +08:00
commit a501625fc3
210 changed files with 63428 additions and 0 deletions

14
backUp/AlipayManor.js Normal file

File diff suppressed because one or more lines are too long

32
backUp/GetJdCookie.md Normal file
View File

@ -0,0 +1,32 @@
## 浏览器获取京东cookie教程
**以下浏览器都行**
- Chrome浏览器
- 新版Edge浏览器
- 国产360QQ浏览器切换到极速模式
### 操作步骤
1. 电脑浏览器打开京东网址 [https://m.jd.com/](https://m.jd.com/)
2. 按键盘F12键打开开发者工具然后点下图中的图标
![切换到手机模式](../icon/jd1.jpg)
3. 此时是未登录状态(使用手机短信验证码登录),如已登录请忽略此步骤
- 使用手机短信验证码登录(此方式cookie有效时长大概31天其他登录方式比较短)
4. 登录后选择Network,有很多链接的话点箭头这里清空下
![清空](../icon/jd2.jpg)
5. 然后再点我的,链接就变少了
![再次点击我的](../icon/jd3.jpg)
6. 点第一个链接(log.gif)进去找到cookie复制出来新建一个TXT文本临时保存一下下面需要用到
![寻找log.gi](../icon/jd4.jpg)
7. 第六步复制出来的cookie比较长我们只需要`pt_pin=xxxx;``pt_key=xxxx;`部分的内容即可(注:英文引号`;`是必要的)。可以用下面的脚本在Chrome浏览器按F12console里面输入下面脚本按enter回车键
```
var CV = '单引号里面放第六步拿到的cookie';
var CookieValue = CV.match(/pt_pin=.+?;/) + CV.match(/pt_key=.+?;/);
copy(CookieValue);
```
8. 这样子整理出关键的的cookie已经在你的剪贴板上 可直接粘贴
9. 如果需获取第二个京东账号的cookie,不要在刚才的浏览器上面退出登录账号一(否则刚才获取的cookie会失效),需另外换一个浏览器(Chrome浏览器 `ctr+shift+n` 打开无痕模式也行),然后继续按上面步骤操作即可

34
backUp/GetJdCookie2.md Normal file
View File

@ -0,0 +1,34 @@
## 浏览器插件获取京东cookie教程
> 此教程内容由tg用户@wukongdada提供,特此感谢
**以下浏览器都行**
- Chrome浏览器
- 新版Edge浏览器(chrome内核)
### 操作步骤
1. 电脑浏览器打开京东网址 [https://m.jd.com/](https://m.jd.com/)
2. Chrome类浏览器安装EditThisCookie插件
- Chrome插件商店搜EditThisCookie, 或者[打开此网站](https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?utm_source=chrome-ntp-icon) 进行安装
- 仅使用百分浏览器,谷歌浏览器测试过,其他谷歌类浏览器请自行测试。
- 无法登录Chrome插件商店或者打不开网址建议使用edge chrome版。
3. edge chrome浏览器安装Cookie Editor插件
- [edge插件商店](edge://extensions/)搜Cookie Editor或[打开以下网址](https://microsoftedge.microsoft.com/addons/detail/cookie-editor/ajfboaconbpkglpfanbmlfgojgndmhmc?hl=zh-CN) 完成插件安装
4. 以下是chrome和edge的相关设置截图输入的网址是 ``jd.com``
![Chrome浏览器相关设置](../icon/jd5.png)
![Edge浏览器相关设置](../icon/jd6.png)
5. 现在点击回到京东触屏版再点击EditThisCookie/Cookie Editor再点击搜索输入key或pin如下图所示的pt_key复制pt_key的value值。此插件可以看到cookie的有效期。
![插件显示](../icon/jd7.png)
6. 按照以下格式形成自己的jd_cookie
- `pt_key=复制插件搜索出来的key值;pt_pin=复制插件搜索出来的pin值;` ,后面的英文引号`;`是必须要的
- 给一个京东cookie具体示例 `pt_key=jdDC2F833333EFDGTCE5BD4AD1A952D4F4DF84A46052;pt_pin=jd_123456;`
7. 如果需获取第二个京东账号的cookie,不要在刚才的浏览器上面退出登录账号一(否则刚才获取的cookie会失效),需另外换一个浏览器(Chrome浏览器 `ctr+shift+n` 打开无痕模式也行),然后继续按上面步骤操作即可

19
backUp/TG_PUSH.md Normal file
View File

@ -0,0 +1,19 @@
**TG_PUSH教程**
利用Telegram机器人推送通知需要在环境变量填入正确的```TG_BOT_TOKEN```以及```TG_USER_ID```以下教程简明阐述如何获取token以及UserID
.首先在Telegram上搜索[BotFather](https://t.me/BotFather)机器人<br>
![TG_PUSH1](../icon/TG_PUSH1.png)
Ⅱ.利用[BotFather](https://t.me/BotFather)创建一个属于自己的通知机器人按照下图中的1、2、3步骤拿到token格式形如```10xxx4:AAFcqxxxxgER5uw```。填入```TG_BOT_TOKEN```<br>
![TG_PUSH2](../icon/TG_PUSH2.png)<br>
**新创建的机器人需要跟它发一条消息来开启对话否则可能会遇到secret填对了但是收不到消息的情况**<br>
Ⅲ.再次在Telegram上搜索[getuserIDbot](https://t.me/getuserIDbot)机器人获取UserID。填入```TG_USER_ID```<br>
![TG_PUSH3](../icon/TG_PUSH3.png)
至此,获取**TG_BOT_TOKEN**以及**TG_USER_ID**的教程结束

100
backUp/gitSync.md Normal file
View File

@ -0,0 +1,100 @@
## 保持自己github的forks自动和上游仓库同步的教程
- 信息来源于 [https://github.com/wei/pull](https://github.com/wei/pull)
- 以下教程仅是出于个人爱好,不保证本教程的完全正确性,最终请以作者 [https://github.com/wei/pull](https://github.com/wei/pull) 的描述为准。
-此教程由telegram用户@wukongdada提供
### 1、只同步默认分支的教程
> 当上游的仓库仅有一个默认分支。或者上游仓库有两个分支,我们仅需要同步他的默认分支,其他分支对内容对我们来说无关紧要。
![git1.jpg](../icon/git1.jpg)
a) 登录自己的github账号另开网页打开 [https://github.com/wei/pull](https://github.com/wei/pull)
b) 点击Pull app进行安装。
![../icon/git2.jpg](../icon/git2.jpg)
c) 安装过程中会让你选择要选择那一种方式All repositories(就是同步已经frok的仓库以及未来fork的仓库)Only select repositories(仅选择要自己需要同步的仓库其他fork的仓库不会被同步)根据自己需求选择实在不知道怎么选择就选All repositories点击install完成安装。
![../icon/git3.jpg](../icon/git3.jpg)
d) 后续如果要调整1.c中的选项打开 [https://github.com/apps/pull](https://github.com/apps/pull) 点击Configure输入github密码进入pull的相关设置。
![../icon/git4.jpg](../icon/git4.jpg)
e) 进入后找到Repository access根据自己的需求重新选择All repositories(就是同步已经frok的仓库以及未来fork的仓库)Only select repositories(仅选择要自己需要同步的仓库其他fork的仓库不会被同步)Save后保存生效。
![../icon/git5.jpg](../icon/git5.jpg)
f) Pull app作者虽然在项目中写道keeps your forks up-to-date with upstream via automated pull requests但当上游仓库有更改时自己的仓库会在3个小时内完成与上游的同步3个小时是Pull app作者说的最长时间。当然也可以通过手动触发同步上游仓库手动触发方式`https://pull.git.ci/process/你的GitHub名字/你的仓库名字` (例如:`https://pull.git.ci/process/xxxxx/test` 手动触发可能会进行人机验证验证通过后会显示Success。
![../icon/git12.jpg](../icon/git6.jpg)
![../icon/git13.jpg](../icon/git7.png)
### 2、同步其他分支的教程
![../icon/git8.jpg](../icon/git8.jpg)
a) 假设你fork了上游仓库后你fork后的地址为 `https://github.com/你的仓库名字/test` 首先设置完成第1部分内容注意在1.c步骤没有设置全部同步的要回到1.e步确认是否设置同步了 `你的仓库名字/test`,如果没有,请添加上。
![../icon/git9.jpg](../icon/git9.jpg)
b) 在默认分支下添加一个文件。
![../icon/git10.jpg](../icon/git10.jpg)
c) 复制 ``.github/pull.yml`` 粘贴后看到以下页面注意github前面的那个.别漏掉了。
![../icon/git11.jpg](../icon/git11.jpg)
d) 请在https://github.com/wei/pull\#advanced-setup-with-config 页复制代码,
注意upstream处要修改为上游仓库作者名字。
![../icon/git12.jpg](../icon/git12.jpg)
![../icon/git13.jpg](../icon/git13.jpg)
e) 最终的示例如下假设上游作者是zhangsan所有的注意点都用红线圈出来了保存后生效。
![../icon/git14.jpg](../icon/git14.jpg)
f) Pull app作者虽然在项目中写道keeps your forks up-to-date with upstream via automated pull requests但当上游仓库有更改时自己的仓库会在3个小时内完成与上游的同步3个小时是Pull app作者说的最长时间。当然也可以通过手动触发同步上游仓库手动触发方式`https://pull.git.ci/process/你的GitHub名字/你的仓库名字` (例如:`https://pull.git.ci/process/xxxxx/test`手动触发可能会进行人机验证验证通过后会显示Success。具体见1.f提供的图片。
g) 本人仅测试过forks一个仓库只有2个分支的项目如果有多个分支不能保证是否可行请自行测试或者是使用本教程第3部分高级玩法。
### 高级玩法
>当然,作者还有其他更好的项目用于同步所有分支,例如使用 GitHub actions 进行同步。请参考原作者的项目
- [https://github.com/wei/git-sync](https://github.com/wei/git-sync)
- [https://github.com/repo-sync/github-sync](https://github.com/repo-sync/github-sync)

215
backUp/iCloud.md Normal file
View File

@ -0,0 +1,215 @@
## 1.安装 Node.js 环境
[下载地址](https://nodejs.org/zh-tw/download/ )
根据自己的操作系统下载
傻瓜式安装,一直下一步即可。
## 2.下载源码
![BclSld.png](https://s1.ax1x.com/2020/11/04/BclSld.png)
点击红框处下载压缩包
## 3.安装依赖、增加入口文件、增加cookie
压缩包解压后进入项目文件夹
- Windows 用户按住 **shift** 点击右键,点击 **在此处打开命令窗口**
- Mac 用户通过终端,自行进入该文件夹
在命令行内输入 `npm i `,等待运行完成。
此时,项目文件夹内会多出一个 `node_modules`文件夹
**增加入口文件**
方案一:同一个仓库下同一个时间,执行多个脚本
在项目文件夹内新建 `index.js`
编辑文件
```javascript
'use strict';
exports.main_handler = async (event, context, callback) => {
//解决云函数热启动问题
delete require.cache[require.resolve('./jd_xtg1.js')];
require('./jd_xtg1.js') //这里写你想要的脚本
require('./jd_xtg2.js') //这里写你想要的脚本
require('./jd_xtg3.js') //这里写你想要的脚本
}
```
此时同一时间点下会同时执行多个脚本触发器触发后index.js文件中require()下的所有脚本都会被执行
**优点**同一时间下可以同时执行多个脚本适合脚本种类少的repository对脚本数量少的repository推荐使用此方案<br>**缺点**:多个脚本不同时间点运行无法满足
方案二同一个仓库下不同的时间点分别执行不同的脚本类似GitHub Action执行机制
在项目文件夹内新建 `index.js`
编辑文件
```javascript
'use strict';
exports.main_handler = async (event, context, callback) => {
for (const v of event["Message"].split("\r\n")) {
//解决云函数热启动问题
delete require.cache[require.resolve(`./${v}.js`)];
console.log(v);
require(`./${v}.js`)
}
}
```
此时触发管理按照下图中进行设置附加信息选择“是”内容填写需要传递执行的具体脚本文件名以回车键换行。触发器触发后附加信息栏内的脚本会被执行设置多个不同时间点的触发器达到类似GitHub Action的效果
**优点**可以满足个性化需求同一个repository下只需要设置不同的触发器可以实现不同时间点分别执行不同的脚本<br>**缺点**repository下脚本过多如果需要设置多个触发器实现个性化运行效果由于云函数的限制最多只能设置10个
[![B20KxI.png](https://s1.ax1x.com/2020/11/05/B20KxI.png)](https://imgchr.com/i/B20KxI)
[![BRCG0H.png](https://s1.ax1x.com/2020/11/05/BRCG0H.png)](https://imgchr.com/i/BRCG0H)
**注意:**<br>
方案一与方案二不能混合到同一个index.js文件中使用同一个仓库下二者只能选择其一。<br>
Ⅱ感谢[issues#115](https://github.com/LXK9301/jd_scripts/issues/115)中的解决方案,目前云函数连续测试已经可以规避热启动问题了。<br>
Ⅲ在确保完全按照本教程设置的情况下测试云函数运行情况对于部分人运行日志中出现某些脚本运行失败其他正常并且错误提示带有strict字样的请自行删除index.js中的```'use strict';```,再做测试<br>
**增加cookie**
打开项目文件内的 `jdCookie.js`
在最上面的 `CookieJDs`里写入 cookie ,多个账号以逗号分隔
例如
```javascript
let CookieJDs = [
'pt_key=xxx;pt_pin=xxx;',
'pt_key=zzz;pt_pin=zzz;',
'pt_key=aaa;pt_pin=xxxaaa'
]
```
## 4.上传至腾讯云
[腾讯云函数地址]( https://console.cloud.tencent.com/scf/index )
编写函数
登录后,点击管理控制台
单击左侧导航栏**函数服务**,进入“函数服务”页面。
在页面上方选择一个地域,最好选择离你常用地区近点的,不至于导致账号异常。单击**新建**。如下图所示:
![iCloud1](../icon/iCloud1.png)
在“新建函数”页面填写函数基础信息,单击**下一步**。如下图所示:
![iCloud2](../icon/iCloud2.png)
**函数名称**可以自定义比如为jd。<br>**运行环境**:选择 “Nodejs 12.16”。<br>**创建方式**:选择 “空白函数”。
确保环境为Nodejs 12.16执行方法改为index.main_handler提交方式建议选本地文件夹然后从GitHub项目克隆Zip压缩包解压成文件夹然后点击这个上传把文件夹上传进来记得node_modules文件夹一并上传或者将node_modules文件夹上传到“层”之后选择“函数管理”-“层管理”绑定上传好的层),完了后点击下面的高级设置。
![iCloud3](../icon/iCloud3.png)
内存用不了太大64MB就够了64M内存免费时长6,400,000秒内存与免费时长大致关系可以参看云函数官方说明超时时间改为最大的900秒然后点击最下面的完成。
![iCloud4](../icon/iCloud4.png)
默认设置下云函数运行时长最长900s可以通过设置突破900s限制**此方法仅适用于新建函数名时设置,已建的无法更改,需要删除后重建**。<br>
新建函数,选择**高级配置****执行配置**,启用**异步执行**,之后在**环境配置**下**执行超时时间**,最大可以选择**86400秒**的执行时间。<br>
![iCloud7](../icon/iCloud7.png)
![iCloud8](../icon/iCloud7.png)
## 5.设置触发器
点击刚创建的函数
![BcGa8O.png](https://s1.ax1x.com/2020/11/04/BcGa8O.png)
点击如图所示
![BcGvM4.png](https://s1.ax1x.com/2020/11/04/BcGvM4.png)
创建触发器
![iCloud6](../icon/iCloud6.png)
触发方式默认“**定时触发**”,定时任务名称随便起个名字,触发周期根据自己需要自行设置。
想进阶使用触发器的自行查看本文中方案一和方案二中的说明
关于触发周期中的自定义触发周期,使用的是 Cron表达式这个自行学习下吧
[Corn文档](https://cloud.tencent.com/document/product/583/9708#cron-.E8.A1.A8.E8.BE.BE.E5.BC.8F)
目前repo中按照每个脚本一个定时器的方式设置到云函数中大约需要触发器10多个由于云函数触发器限制最多10个需要对触发器进行整合整合后触发器保持在10个以内以下设置仅供参考<br>
| JavaScript | 脚本名称 | 活动时间 | serverless.yml |
| :------------------: | :-----------------------: | :------: | :---------------: |
| `getJDCookie` | 扫码获取京东Cookie | 长期 | / |
| `jd_bean_change` | 京豆变动通知 | 长期 | 30 7 * * * |
| `jd_bean_home` | 领京豆额外奖励 | 长期 | 30 7 * * * |
| `jd_bean_sign` | 京豆签到 | 长期 | 0 0 * * * |
| `jd_beauty` | 美丽研究院 | 长期 | 0 0-16/8,20 * * * |
| `jd_blueCoin` | 京小超兑换奖品 | 长期 | 0 0 * * * |
| `jd_bookshop` | 口袋书店 | 长期 | 5 6-18/6,8 * * * |
| `jd_car` | 京东汽车 | 长期 | 10 0 * * * |
| `jd_car_exchange` | 京东汽车兑换 | 长期 | 0 0 * * * |
| `jd_cash` | 签到领现金 | 长期 | 0 0-16/8,20 * * * |
| `jd_cfd` | 京喜财富岛 | 长期 | 0 0-16/8,20 * * * |
| `jd_club_lottery` | 摇京豆 | 长期 | 0 0 * * * |
| `jd_crazy_joy` | 疯狂的joy | 长期 | 30 7 * * * |
| `jd_crazy_joy_bonus` | 监控crazyJoy分红 | 长期 | 30 7 * * * |
| `jd_crazy_joy_coin` | 疯狂的joy挂机 | 长期 | / |
| `jd_daily_egg` | 京东金融-天天提额 | 长期 | 8 */3 * * * |
| `jd_delCoupon` | 删除优惠券 | 长期 | / |
| `jd_dreamFactory` | 京喜工厂 | 长期 | 3 */1 * * * |
| `jd_family` | 京东家庭号 | 长期 | 5 6-18/6,8 * * * |
| `jd_fruit` | 东东农场 | 长期 | 5 6-18/6,8 * * * |
| `jd_get_share_code` | 获取互助码 | 长期 | / |
| `jd_jdfactory` | 东东工厂 | 长期 | 3 */1 * * * |
| `jd_jdzz` | 京东赚赚 | 长期 | 3 1 * * * |
| `jd_joy` | 宠汪汪 | 长期 | 3 */1 * * * |
| `jd_joy_feedPets` | 宠汪汪单独喂食 | 长期 | 3 */1 * * * |
| `jd_joy_help` | 宠汪汪强制为别人助力 | 长期 | / |
| `jd_joy_reward` | 宠汪汪兑换奖品 | 长期 | 0 0-16/8,20 * * * |
| `jd_joy_run` | 宠汪汪邀请助力与赛跑助力 | 长期 | / |
| `jd_jxd` | 京小兑 | 长期 | 30 7 * * * |
| `jd_jxnc` | 京喜农场 | 长期 | 5 6-18/6,8 * * * |
| `jd_kd` | 京东快递 | 长期 | 3 1 * * * |
| `jd_live` | 京东直播18豆 | 长期 | 0 0-16/8,20 * * * |
| `jd_live_redrain` | 超级直播间红包雨 | 长期 | / |
| `jd_lotteryMachine` | 京东抽奖机 | 长期 | 10 0 * * * |
| `jd_moneyTree` | 摇钱树 | 长期 | 3 */1 * * * |
| `jd_ms` | 京东秒秒币 | 长期 | 10 0 * * * |
| `jd_necklace` | 点点券 | 长期 | 0 0-16/8,20 * * * |
| `jd_pet` | 东东萌宠 | 长期 | 5 6-18/6,8 * * * |
| `jd_pigPet` | 京东金融-养猪猪 | 长期 | 3 1 * * * |
| `jd_plantBean` | 种豆得豆 | 长期 | 3 */1 * * * |
| `jd_price` | 京东保价 | 长期 | 30 7 * * * |
| `jd_rankingList` | 京东排行榜 | 长期 | 30 7 * * * |
| `jd_redPacket` | 全民开红包 | 长期 | 10 0 * * * |
| `jd_sgmh` | 闪购盲盒 | 长期 | 30 7 * * * |
| `jd_shop` | 进店领豆 | 长期 | 10 0 * * * |
| `jd_small_home` | 东东小窝 | 长期 | 0 0-16/8,20 * * * |
| `jd_speed` | 天天加速 | 长期 | 8 */3 * * * |
| `jd_speed_sign` | 京东极速版签到+赚现金任务 | 长期 | 5 6-18/6,8 * * * |
| `jd_superMarket` | 东东超市 | 长期 | 15 */6 * * * |
| `jd_syj` | 十元街 | 长期 | 3 1 * * * |
| `jd_unsubscribe` | 取关京东店铺和商品 | 长期 | 10 0 * * * |
| `jx_sign` | 京喜签到 | 长期 | 3 1 * * * |
点击提交,所有流程就结束了。

File diff suppressed because one or more lines are too long

138
backUp/tencentscf.md Normal file
View File

@ -0,0 +1,138 @@
# 云函数快速部署京东脚本(由于云函数官方升级此方法暂时失效)
>
> - 本地安装依赖使用serverless部署[点这里](tencentscf.md#1-安装-nodejs-环境)
> - Github Action 部署[点这里](tencentscf.md#github-action-部署)
## 1. 安装 Node.js 环境
Node.js 环境 [下载地址](https://nodejs.org/zh-tw/download/) ,根据自己的操作系统下载和安装。
## 2. 下载代码
点击红框处下载压缩包
![下载代码](https://imgbed-bucket-1251971143.cos.ap-guangzhou.myqcloud.com/1605497672397-zip.png)
## 3. 安装依赖,配置 cookie
### 3.1 安装依赖
压缩包解压后进入项目文件夹
- Windows 用户按住 **shift** 点击右键,点击 **在此处打开命令窗口**
- Mac 用户通过终端,自行进入该文件夹
在命令行内输入 `npm i `,等待运行完成。
此时,项目文件夹内会多出一个 `node_modules`文件夹
### 3.2 配置 cookie
打开项目文件内的 `jdCookie.js`
在最上面的 `CookieJDs`里写入 cookie ,多个账号以逗号分隔
例如
```javascript
let CookieJDs = [
'pt_key=xxx;pt_pin=xxx;',
'pt_key=zzz;pt_pin=zzz;',
'pt_key=aaa;pt_pin=xxxaaa'
]
```
> 注:获取京东 cookie 教程参考 [浏览器获取京东cookie教程](https://github.com/LXK9301/jd_scripts/blob/master/backUp/GetJdCookie.md) , [插件获取京东cookie教程](https://github.com/LXK9301/jd_scripts/blob/master/backUp/GetJdCookie2.md)
## 4. 部署到云函数
### 4.1 开通服务
依次登录 [SCF 云函数控制台](https://console.cloud.tencent.com/scf) 和 [SLS 控制台](https://console.cloud.tencent.com/sls) 开通相关服务,确保账户下已开通服务并创建相应[服务角色](https://console.cloud.tencent.com/cam/role) **SCF_QcsRole、SLS_QcsRole**
> 注意!为了确保权限足够,获取这两个参数时不要使用子账户!此外,腾讯云账户需要[实名认证](https://console.cloud.tencent.com/developer/auth)。
### 4.2 工具部署
下载 Serverless 工具,快速部署函数
```
npm install -g serverless
```
执行部署命令
```
serverless deploy
```
如果已经配置了永久秘钥,则可以直接部署,如果没有,可以直接**微信扫码**登录腾讯云,并且授权部署。
过几秒后,查看输出,可以看到函数和定时触发器都已经配置完成。
```
serverless ⚡framework
Action: "deploy" - Stage: "dev" - App: "jdscript" - Instance: "jdscript"
functionName: scf-jdscript
description: This is a function in jdscript application.
namespace: default
runtime: Nodejs12.16
handler: index.main_handler
memorySize: 64
lastVersion: $LATEST
traffic: 1
triggers:
timer:
- timer-jdscript-dev
36s jdscript Success
```
## 5. 查看和测试
登录后,在 [腾讯云函数地址](https://console.cloud.tencent.com/scf/index) 点击管理控制台,查看最新部署的函数。
在左侧栏的日志查询中,可以查看到触发的日志,包括是否打卡成功等。
![测试函数](https://user-images.githubusercontent.com/6993269/99628053-5a9eea80-2a70-11eb-906f-f1d5ea2bfa3a.png)
> 如果需要配置永久秘钥,则可以在[访问秘钥页面](https://console.cloud.tencent.com/cam/capi)获取账号的 TENCENT_SECRET_IDTENCENT_SECRET_KEY并配置在代码根目录 .env 文件中。
# Github Action 部署
## 1. 开通服务
依次登录 [SCF 云函数控制台](https://console.cloud.tencent.com/scf) 和 [SLS 控制台](https://console.cloud.tencent.com/sls) 开通相关服务,确保账户下已开通服务并创建相应[服务角色](https://console.cloud.tencent.com/cam/role) **SCF_QcsRole、SLS_QcsRole**
> 注意!为了确保权限足够,获取这两个参数时不要使用子账户!此外,腾讯云账户需要[实名认证](https://console.cloud.tencent.com/developer/auth)。
## 2. 在这里新建一个访问密钥[新建密钥](https://console.cloud.tencent.com/cam/capi)
> 将SecretId和SecretKey分别配置在仓库的secrets变量里面 TENCENT_SECRET_ID对应你的SecretId的值TENCENT_SECRET_KEY对应你的SecretKey的值
## 3. 配置自己需要secrets变量[参考这里](githubAction.md#下方提供使用到的-secrets全集合)
目前因为云函数改版升级原GitHub Action部署云函数方案需要作出相应调整secret变量新增`SCF_REGION``TENCENT_FUNCTION_NAME``SCF_REGION`用于控制部署区域的选择,具体参数代码填写可以自行查找官方说明 [地域和可用区](https://cloud.tencent.com/document/product/213/6091) `TENCENT_FUNCTION_NAME`用于控制部署到云函数后函数名的命名。<br>
## 4. 配置index.js中secrets变量说明
现在可以通过secret设置自定义index.js中的执行方式环境变量分别为`TENCENTSCF_SOURCE_TYPE``TENCENTSCF_SOURCE_URL`,其中`TENCENTSCF_SOURCE_TYPE`值可以选取`local``git``custom`具体含义[参考这里](githubAction.md#下方提供使用到的-secrets全集合)。`TENCENTSCF_SOURCE_URL`格式为包含raw的URL例如`https://raw.githubusercontent.com/LXK9301/jd_scripts/master/``https://gitee.com/lxk0301/jd_scripts/raw/master/`<br>
### __重要的说三遍__
### 如果涉及一个变量配置多个值如多个cookie多个取消订阅关键字去掉里面的 *__[空格]()__* 和 __*[换行]()*__ 使用 `&` 连接
### 如果涉及一个变量配置多个值如多个cookie多个取消订阅关键字去掉里面的 *__[空格]()__* 和 __*[换行]()*__ 使用 `&` 连接
### 如果涉及一个变量配置多个值如多个cookie多个取消订阅关键字去掉里面的 *__[空格]()__* 和 __*[换行]()*__ 使用 `&` 连接
> 排查问题第一步先看自己[腾讯云函数](https://console.cloud.tencent.com/scf/list-detail?rid=5&ns=default&id=scf-jdscript)那边的环境变量跟自己在仓库配置的 `secrets` 是否一致
![image](https://user-images.githubusercontent.com/6993269/99937191-06617680-2da0-11eb-99ea-033f2c655683.png)
## 4.执行action workflow进行部署workflow未报错即部署成功
**在执行action workflow进行部署前先在需要部署的区域下新建一个空函数名称可以任意比如`jd`此时secret中`TENCENT_FUNCTION_NAME`值也必须是`jd`,保持与云函数的函数名一致,目前部署云函数的策略是覆盖的方式,故而此步骤至关重要。**<br>
![image](https://user-images.githubusercontent.com/6993269/99513289-6a152980-29c5-11eb-9266-3f56ba13d3b2.png)
## 5. 查看和测试
登录后,在 [腾讯云函数地址](https://console.cloud.tencent.com/scf/index) 点击管理控制台,查看最新部署的函数。
在左侧栏的日志查询中,可以查看到触发的日志,包括是否打卡成功等。
![测试函数](https://user-images.githubusercontent.com/6993269/99628053-5a9eea80-2a70-11eb-906f-f1d5ea2bfa3a.png)
## 6. 设置触发器[看这里](iCloud.md#5设置触发器) 或者看这里的[注释说明](https://github.com/iouAkira/jd_scripts/blob/patch-1/index.js#L4)

80
backUp/webhook.js Normal file

File diff suppressed because one or more lines are too long

175
backUp/xmSports.js Normal file

File diff suppressed because one or more lines are too long