我的物品买得有多值呢?
因为上了大学以后,我就在为我自己购买一些东西,这让我萌生了一个想法:如果这些东西,我一直用下去,那么每天使用它们的成本是多少呢?于是我就做了这么一个项目
-
Telegram 私信: https://t.me/PaffCreamPMBot
-
Telegram 群组: https://t.me/DohnaNyan
-
Telegram 频道: https://t.me/PaffChannel
你需要准备一个 Notion 账号和一个 Vercel 账号 / 服务器 / 能跑容器的东西
打开这个 Notion 页面(二选一,第一个是上架的模板)
- https://www.notion.com/templates/worth-it
- https://gamernotitle.notion.site/Worthit-2076dedbb71680fda64ad359bfe37577
用自己的 Notion 账号复制一份,点击右上角的复制按钮就可以了
复刻完成后,在自己的 Workspace 里面找到刚刚复刻的页面,展开它,找到下面的数据库
在上面链接处,就有自己的数据库 ID 了,举个例子
https://www.notion.so/pesywu/207c22bc5364810d814af0cwodcnf8d5?v=207c22bc5364819f8a0a000c3e16fac1
这里的数据库 ID 为 / 以后,? 以前的内容,也就是 207c22bc5364810d814af0cwodcnf8d5
接着我们来获取我们自己的 API
访问 Notion 集成页面:https://www.notion.so/profile/integrations
在这个页面,我们添加一个新的集成,关联的工作空间需要选到这个数据库所在的工作空间,类型选择内部,记得在上面填入集成的名称
填完后点击创建,Notion 会带我们来到配置页面,我们首先需要在访问权限中添加需要访问的数据库
然后我们再回到配置页面,获取我们要的 TOKEN,下面的勾勾不要动
这里说的用户名和密码是在网站上登录使用的,用户名自己定就好了,主要是密码
密码可以在网站上进行 argon2 计算,也可以用 Linux 的 argon2 包
可以使用这个网站进行哈希计算 https://argon2.online/
注意参数的选择,应该要与我选择的一致
生成后的哈希值就是 WORTHIT_PASSWORD 的值,你需要保留的是下面 Output in Encoded Form 的内容
你首先需要安装 argon2
$ sudo apt install argon2然后使用下面的命令
$ echo -n "password" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4注意把这里面的 password 换成自己的密码,得到的结果就是 WORTHIT_PASSWORD 的值
首先 fork 本仓库,然后在 Vercel 中导入项目,导入时需要注意填写一下环境变量
| 变量名称 | 变量说明 | 默认值 | 必须 | 备注 |
|---|---|---|---|---|
| NOTION_TOKEN | Notion 的集成密钥 | - | ✓ | - |
| NOTION_DATABASE_ID | Notion 的数据库 ID | - | ✓ | - |
| WORTHIT_USERNAME | 网站的登录用户名 | - | ✓ | - |
| WORTHIT_PASSWORD | 网站登录密码的 argon2 哈希 | - | ✓ | - |
| SECRET_KEY | 网站用于签发 JWT 的 token | - | Vercel 部署必须 | 仅 Vercel 部署需要配置此项 |
| ENABLE_PUBLIC_VIEW | 允许非登录状态下查看到你的好物 | true |
✕ | 设置为 0 或者 false 来禁用此项否则都视为启用 |
填写完成后点击下面的 Deploy 部署就可以了,剩下绑定自定义域名啥的就是 Vercel 平台使用的问题了
$ docker run -d \
-p 5000:5000 \
--name worthit \
-e WORTHIT_USERNAME="your_desired_username" \
-e WORTHIT_PASSWORD="your_password_hash" \
-e NOTION_TOKEN="your_notion_token" \
-e NOTION_DATABASE_ID="your_notion_database_id" \
gamernotitle/worthit首先 clone 源码
$ git clone https://github.com/GamerNoTitle/WorthIt.git然后用 Docker 构建
$ docker build . -t gamernotitle/worthit接着直接运行即可
$ docker run -d \
-p 5000:5000 \
--name worthit \
-e WORTHIT_USERNAME="your_desired_username" \
-e WORTHIT_PASSWORD="your_password_hash" \
-e NOTION_TOKEN="your_notion_token" \
-e NOTION_DATABASE_ID="your_notion_database_id" \
gamernotitle/worthit首先确保自己电脑安装了 Python,然后 clone 一下源码
$ git clone https://github.com/GamerNoTitle/WorthIt.git
$ cd WorthIt然后装一下依赖
$ pip install -r requirements.txt复制一份 config.example.json 为 config.json,然后填入对应的变量内容,有以下对应关系
token->NOTION_TOKENdbid->NOTION_DATABASE_IDpublic->ENABLE_PUBLIC_VIEWcredentials.username->WORTHIT_USERNAMEcredentials.password->WORTHIT_PASSWORD
填好了以后直接运行 app.py 即可
$ python app.py