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

我去 #5

Closed
wants to merge 165 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
7eee3f7
feat: npm构建
iDerekLi Feb 1, 2022
88da264
feat: 构建package
iDerekLi Feb 4, 2022
12a43bc
test: 添加测试
iDerekLi Feb 4, 2022
4321eb4
perf: 移除杂项
iDerekLi Feb 4, 2022
06fbc07
perf: 移除杂项
iDerekLi Feb 4, 2022
ea0f92c
refactor: 优化umd
iDerekLi Feb 4, 2022
6aae068
chore: 移除杂项
iDerekLi Feb 4, 2022
bc6ed5c
docs: 更新README
iDerekLi Feb 5, 2022
85ee617
Update README.md
iDerekLi Feb 5, 2022
5d7e14f
chore: 移除截图
iDerekLi Feb 5, 2022
641e01e
chore: 更新版本
iDerekLi Feb 5, 2022
0ec5d7e
chore: 更新版权信息
iDerekLi Feb 5, 2022
8d84667
fix(growth): 修复成长api未传参数问题
iDerekLi Feb 15, 2022
8bfa778
fix(seagold): 海底掘金部分api参数开放
iDerekLi Feb 15, 2022
e42665c
test: 测试growth
iDerekLi Feb 15, 2022
728a06d
chore: 更新README.md
iDerekLi Feb 15, 2022
187f0de
chore: 更新package.json
iDerekLi Feb 15, 2022
455503e
feat: 成长API增加签到天数, 今日签到状态
iDerekLi Mar 2, 2022
437ccc3
feat(growth): 成长API添加aid&uuid
iDerekLi Mar 16, 2022
8d1030d
fix(seaGold): 解决海底掘金游戏运行编译错误
iDerekLi Mar 16, 2022
7812b56
feat(numpuzz): 新增数字谜题游戏API
iDerekLi Mar 16, 2022
713b82e
test: 添加登录测试
iDerekLi Mar 16, 2022
2777eba
test: 添加成长API测试
iDerekLi Mar 16, 2022
c460a38
feat(sdk): 新增sdk API
iDerekLi Mar 16, 2022
33662af
test(test): 测试登录
iDerekLi Mar 17, 2022
9dd9df9
test(test): 测试sdk
iDerekLi Mar 17, 2022
321772f
chore(sdk): 完善sdk
iDerekLi Mar 17, 2022
5433d23
feat: deploy
iDerekLi Mar 17, 2022
fd68aeb
增加bugfix功能
NNNNzs May 24, 2022
6135b57
update version
NNNNzs May 24, 2022
b070e5b
Merge pull request #31 from NNNNzs/feat/bugfix功能
iDerekLi May 25, 2022
c6e2cc5
build: 更新版本号
iDerekLi May 25, 2022
5fb8f67
docs: 更新说明
iDerekLi May 25, 2022
e3755a2
build: 更新版本
iDerekLi May 25, 2022
0e19eee
chore(bugfix): 丰富BugFix相关功能
iDerekLi May 25, 2022
44c61a8
refactor: 重新架构项目
iDerekLi Aug 8, 2022
b452300
chore: 添加项目描述
iDerekLi Aug 8, 2022
52d0535
refactor: 构建growth模块
iDerekLi Aug 8, 2022
d151ca9
refactor: 构建seagold模块
iDerekLi Aug 8, 2022
237db7f
refactor: 优化growth模块
iDerekLi Aug 8, 2022
5017367
refactor: 重构numpuzz模块
iDerekLi Aug 8, 2022
7163640
refactor: 重构bugfix模块
iDerekLi Aug 8, 2022
48c444d
chore: 修改脚本描述
iDerekLi Aug 8, 2022
92e85ff
Merge pull request #65 from iDerekLi/package-next
iDerekLi Aug 8, 2022
3e2c95d
refactor: 重构为ts文件
iDerekLi Aug 8, 2022
fcfac7e
refactor: 重构项目
iDerekLi Aug 9, 2022
fca9338
feat: 补充自动化及说明
iDerekLi Aug 9, 2022
a693cb5
chore: 调整自动化
iDerekLi Aug 9, 2022
08a907b
chore: 修改为串联job
iDerekLi Aug 9, 2022
3c11c54
fix: 修改依赖错误
iDerekLi Aug 9, 2022
5a21a85
build: 移除ws
iDerekLi Aug 9, 2022
d070485
docs: 更新说明
iDerekLi Aug 9, 2022
5e0d83b
docs: 更新贡献说明
iDerekLi Aug 9, 2022
858233e
Merge pull request #67 from iDerekLi/dev
iDerekLi Aug 9, 2022
67c57bf
chore: 完善测试功能
iDerekLi Aug 9, 2022
cee9b73
test: 补充类型和测试
iDerekLi Aug 9, 2022
a79bf00
Merge pull request #68 from iDerekLi/dev
iDerekLi Aug 9, 2022
e7ce5f3
chore: 补充bugfix类型
iDerekLi Aug 10, 2022
5326ebc
build: 调整编译模式
iDerekLi Aug 10, 2022
476fa2c
test: 修改测试
iDerekLi Aug 10, 2022
ddb0fde
test: 修改测试
iDerekLi Aug 10, 2022
0a0e90d
chore(seagold): 完善类型
iDerekLi Aug 10, 2022
b72a09c
chore: 补充脚本
iDerekLi Aug 10, 2022
2a9642e
Merge pull request #69 from iDerekLi/dev
iDerekLi Aug 10, 2022
6f4c77b
build: 修改编译配置
iDerekLi Aug 10, 2022
5e99f32
Merge pull request #70 from iDerekLi/dev
iDerekLi Aug 10, 2022
6ff0492
fix: 修复sdk接口调用错误
iDerekLi Aug 10, 2022
038421e
Merge pull request #71 from iDerekLi/dev
iDerekLi Aug 10, 2022
155f279
fix: 修复`node-fetch`切换至`axios`的兼容问题
ZiuChen Aug 10, 2022
6eec2f1
Publish
iDerekLi Aug 10, 2022
c7c32f1
feat: 添加发布功能
iDerekLi Aug 10, 2022
74e7e3a
chore: 修改配置
iDerekLi Aug 10, 2022
bf4ef10
Publish
iDerekLi Aug 10, 2022
78e158d
Merge pull request #72 from ZiuChen/dev
iDerekLi Aug 10, 2022
6ae2e04
Merge branch 'dev' of github.com:iDerekLi/juejin-helper into dev
iDerekLi Aug 10, 2022
700b449
Publish
iDerekLi Aug 10, 2022
0e3a32a
Merge pull request #73 from iDerekLi/dev
iDerekLi Aug 10, 2022
c57357f
build: release 1.6.1-alpha.0
iDerekLi Aug 10, 2022
e8a2b98
v1.6.1
iDerekLi Aug 10, 2022
1bd5f57
build: 1.6.1
iDerekLi Aug 10, 2022
1067012
chore: 完善发布功能
iDerekLi Aug 10, 2022
47e4067
v1.6.1
iDerekLi Aug 10, 2022
39802dc
chore: 完善发布功能
iDerekLi Aug 10, 2022
ed163a7
v1.6.1
iDerekLi Aug 10, 2022
e5da20e
chore: 完善发布功能
iDerekLi Aug 10, 2022
b0dce42
v1.6.1
iDerekLi Aug 10, 2022
1e07aa7
chore: 1.6.1
iDerekLi Aug 10, 2022
7ca642f
build: 完善发布功能
iDerekLi Aug 10, 2022
108b6f7
build: 完善发布功能
iDerekLi Aug 10, 2022
e8c2dfc
chore: 更新工作流版本
iDerekLi Aug 10, 2022
1748444
chore: 更新工作流版本1.6.1
iDerekLi Aug 10, 2022
604b000
Merge pull request #74 from iDerekLi/dev
iDerekLi Aug 10, 2022
7d8d9a3
docs: 更新说明
iDerekLi Aug 10, 2022
3ca96a4
Merge pull request #75 from iDerekLi/dev
iDerekLi Aug 10, 2022
a4a967e
fix(dingding): 修复node-fetch切换至axios的兼容问题
iDerekLi Aug 11, 2022
8cb4ea6
Merge pull request #76 from iDerekLi/dev
iDerekLi Aug 11, 2022
98b9fc4
feat:新增企业微信机器人推送
sunjvhui Aug 24, 2022
4ca4ca6
feat:新增yml配置和企业微信机器人md
sunjvhui Aug 24, 2022
00b65ad
Merge pull request #78 from sunjvhui/dev
iDerekLi Aug 25, 2022
90829a5
Merge pull request #79 from iDerekLi/dev
iDerekLi Aug 25, 2022
1b50b93
减少掘金服务器502概率
iDerekLi Dec 12, 2022
b0402af
Merge pull request #92 from iDerekLi/dev
iDerekLi Dec 12, 2022
d1cfac0
feat: 添加模拟用户活跃功能
iDerekLi Jan 12, 2023
8072f9e
feat: 添加模拟用户活跃功能
iDerekLi Jan 12, 2023
3faea4c
feat: 添加模拟用户活跃功能
iDerekLi Jan 12, 2023
d76cc3e
feat: 添加模拟访问
iDerekLi Jan 12, 2023
9d1e3b4
Merge pull request #96 from iDerekLi/dev
iDerekLi Jan 12, 2023
f56737a
v1.7.0
iDerekLi Jan 13, 2023
de90cc7
chore: 添加浏览器api
iDerekLi Jan 13, 2023
95e0813
v1.7.0
iDerekLi Jan 13, 2023
81dec6a
v1.7.1-alpha.0
iDerekLi Jan 13, 2023
26cbc8e
build: git head
iDerekLi Jan 13, 2023
24dcf41
build: git head
iDerekLi Jan 13, 2023
00d4e09
build: git head
iDerekLi Jan 13, 2023
215f29c
build: git head
iDerekLi Jan 13, 2023
63819db
build: 1.7.1-alpha.0
iDerekLi Jan 13, 2023
9073cb2
v1.7.1
iDerekLi Jan 13, 2023
59de8ed
build: 1.7.1
iDerekLi Jan 13, 2023
85737c6
chore: 1.7.1
iDerekLi Jan 13, 2023
9c64cfa
Merge pull request #97 from iDerekLi/dev
iDerekLi Jan 13, 2023
2f9247e
refactor: 重构签到脚本
iDerekLi Jan 13, 2023
866021b
Merge pull request #100 from iDerekLi/dev
iDerekLi Jan 13, 2023
b2cc5fc
style: 代码格式化
iDerekLi Jan 14, 2023
5edec85
feat: 添加通知推送套件和ts
iDerekLi Jan 14, 2023
233251f
feat: 添加通知推送套件和ts
iDerekLi Jan 15, 2023
0ae1c84
Merge pull request #101 from iDerekLi/dev
iDerekLi Jan 15, 2023
ed68481
feat: 添加ts
iDerekLi Jan 15, 2023
28eaba8
Merge pull request #102 from iDerekLi/dev
iDerekLi Jan 15, 2023
d9f49f4
fix: 修复通知推送套件
iDerekLi Jan 15, 2023
e633c19
Merge pull request #103 from iDerekLi/dev
iDerekLi Jan 15, 2023
5a1b7b9
test: 测试通知
iDerekLi Jan 15, 2023
aad75fc
test: 测试通知推送
iDerekLi Jan 15, 2023
d2fc7dd
chore: 移除通知测试
iDerekLi Jan 15, 2023
a5e323f
Merge pull request #104 from iDerekLi/dev
iDerekLi Jan 15, 2023
80e5f7e
perf: 移除冗余杂项
iDerekLi Jan 15, 2023
10c9998
Merge pull request #106 from iDerekLi/dev
iDerekLi Jan 15, 2023
b1ff08a
fix: 支持从外部设置Page的超时时间timeout
ZiuChen Feb 9, 2023
3a59e38
Merge pull request #108 from ZiuChen/fork
iDerekLi Feb 10, 2023
95450d2
v1.7.2
iDerekLi Feb 13, 2023
97deb40
chore: 调整邮箱通知信息
iDerekLi Feb 13, 2023
60c920c
feat: 1.7.2
iDerekLi Feb 13, 2023
1b74975
feat: 1.7.2
iDerekLi Feb 13, 2023
015d50b
Merge pull request #109 from iDerekLi/dev
iDerekLi Feb 13, 2023
24ee389
feat(海底掘金): 游戏已下线
iDerekLi Mar 27, 2023
549d99a
Merge pull request #115 from iDerekLi/dev
iDerekLi Mar 27, 2023
2d39f4b
docs: 更新描述
iDerekLi Mar 27, 2023
bd00ab6
Merge pull request #116 from iDerekLi/dev
iDerekLi Mar 27, 2023
58077b0
feat: 支持Server酱推送
Jun 16, 2023
a1dce0f
feat title增加签到状态
Jun 16, 2023
3944916
Update checkin.js
lupingW Jun 16, 2023
b553995
Update checkin.js
iDerekLi Jun 19, 2023
6c9ee94
Update notification-kit.ts
iDerekLi Jun 19, 2023
721211e
Merge pull request #125 from lupingW/main
iDerekLi Jun 19, 2023
356512c
✨ feat: 支持飞书推送
Auxior Jan 5, 2024
0a3b6d7
✨ feat: 添加飞书Secrets变量
Auxior Jan 5, 2024
44dfde8
📃 docs: README添加飞书推送说明
Auxior Jan 5, 2024
e1146d6
Merge pull request #136 from Auxior/main
iDerekLi Jan 16, 2024
181772a
Merge pull request #137 from iDerekLi/dev
iDerekLi Jan 16, 2024
3cd83da
v1.7.4
iDerekLi Jan 16, 2024
c216daf
Merge pull request #138 from iDerekLi/dev
iDerekLi Jan 16, 2024
5ddb19c
Update README.md
iDerekLi Jan 16, 2024
344e1a2
Merge pull request #139 from iDerekLi/dev
iDerekLi Jan 16, 2024
6a41be1
chore: 同步掘金功能:停用沾喜气、收集Bugfix。
iDerekLi Mar 12, 2024
494734a
feat: 1.8.0
iDerekLi Mar 12, 2024
21afcf8
Merge pull request #141 from iDerekLi/dev
iDerekLi Mar 12, 2024
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
13 changes: 13 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"env": {
"node": true,
"es6": true
},
"extends": ["prettier", "plugin:prettier/recommended"],
"plugins": ["prettier"]
}
4 changes: 4 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!--
## 所有贡献请先合并至开发分支dev。
base: `dev` <- compare `your branch`
-->
45 changes: 45 additions & 0 deletions .github/workflows/auto.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Auto

on:
schedule:
- cron: "30 22 * * *" # 北京时间上午06:30
workflow_dispatch:

env:
COOKIE: ${{ secrets.COOKIE }}
COOKIE_2: ${{ secrets.COOKIE_2 }}
COOKIE_3: ${{ secrets.COOKIE_3 }}
COOKIE_4: ${{ secrets.COOKIE_4 }}
COOKIE_5: ${{ secrets.COOKIE_5 }}
EMAIL_USER: ${{ secrets.EMAIL_USER }}
EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
EMAIL_TO: ${{ secrets.EMAIL_TO }}
DINGDING_WEBHOOK: ${{ secrets.DINGDING_WEBHOOK }}
PUSHPLUS_TOKEN: ${{ secrets.PUSHPLUS_TOKEN }}
WEIXIN_WEBHOOK: ${{ secrets.WEIXIN_WEBHOOK }}
SERVERPUSHKEY: ${{ secrets.SERVERPUSHKEY }}
FEISHU_WEBHOOK: ${{ secrets.FEISHU_WEBHOOK }}

jobs:
CheckIn:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- name: Run Project
run: |
cd workflows
yarn
yarn checkin

# SeaGold:
# needs: CheckIn
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-node@v2
# - name: Run Project
# run: |
# cd workflows
# yarn
# yarn seagold
21 changes: 0 additions & 21 deletions .github/workflows/checkin.yml

This file was deleted.

21 changes: 0 additions & 21 deletions .github/workflows/seaGold.yml

This file was deleted.

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.DS_Store
node_modules
build
types

# local env files
.env.local
Expand Down
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
registry = https://registry.npmjs.com/
20 changes: 20 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* 代码风格
* 更多配置请戳 https://prettier.io/docs/en/options.html
*/
module.exports = {
printWidth: 120, // 代码长度
useTabs: false, // 使用制表符缩进行而不是空格。
tabWidth: 2, // 2个空格缩进
endOfLine: "lf", // 2个空格缩进
singleQuote: false, // 使用单引号
semi: true, // 在每个语句的末尾添加分号。
trailingComma: "none", // 多行末尾加逗号,单行末尾不加逗号
/**
* 在单个箭头函数参数周围加上括号
* "avoid" - 尽可能省略parens。例:x => x
* "always" - 始终包括parens。例:(x) => x
*/
arrowParens: "avoid",
bracketSpacing: true // 对象左右空格 例如:{ a: 1 }
};
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 参与贡献

## 项目结构
- packages 掘金API工程
- workflows 掘金自动化工作流项目

### 本地运行
- node >= 14.17.0
- `yarn` 安装依赖
- `yarn dev` 启动开发模式

### 本地运行工作流项目
- `cd workflows`
- `/utils/env.js` 替换本地测试所需的环境变量
```javascript
module.exports = {
COOKIE: "测试掘金Cookie",
// ...
};
```
- `yarn checkin` 运行掘金签到脚本
- `yarn seagold` 运行海底掘金游戏脚本
222 changes: 201 additions & 21 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,21 +1,201 @@
MIT License

Copyright (c) 2022 Derek Li

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2022 Derek Li

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Loading