#口袋 #保存 #火箭 #任何事物 #网络应用程序 #消费者 #帖子

nightly app pants

一个将任何事物保存到口袋的网络应用程序

3个版本

0.1.2 2020年4月24日
0.1.1 2019年9月22日
0.1.0 2019年9月22日

17#口袋

MIT 许可证

235KB
186 代码行,不包括注释

Pants

Pants 是一个用 Rocket 编写的简单网络应用程序,用于将任何事物保存到口袋。它就像一个小小的口袋火箭🚀🚀🚀。

设置

获取口袋访问令牌

首先,在这里创建一个应用程序: https://getpocket.com/developer/apps/new。完成此操作后,它应为您提供消费者密钥。

现在,为了获取特定于您的口袋用户的代码,请这样做。假设我们的消费者密钥是 87796-6bf78d700933260a0f9b1b97

curl -d "consumer_key=87796-6bf78d700933260a0f9b1b97&redirect_uri=https://google.com" -X POST https://getpocket.com/v3/oauth/request

您应该看到如下响应

code=07f3123f-0a12-d2f6-07e8-abcdef

现在您可以通过访问此链接来授权您的应用程序

https://getpocket.com/auth/authorize?request_token=07f3123f-0a12-d2f6-07e8-abcdef&redirect_uri=https://www.google.com

现在最终获取授权令牌

curl https://getpocket.com/v3/oauth/authorize -X POST -H "Content-Type: application/json" -H "X-Accept: application/json" -d "{\"consumer_key\":\"87796-6b548d766433260a0f9b1b97\",\"code\":\"07f3123f-0a12-d2f6-07e8-abcdef\"}"

响应应该如下所示

{"access_token":"d44c7cc9-2434-de18-332c-923ad5","username":"[email protected]"}

这是您需要设置的 PANTS_ACCESS_TOKEN 环境变量的令牌

运行

# Ideally this maps to something exposed to the web, so the URLs will be valid, but I don't think Pocket really cares.
mkdir /var/pages
cp -r static /var/static

# Set required environment variables
export PANTS_PAGES_ROOT="/var/pages"  # Relative paths work too.
export PANTS_SITE="https://example.com"
export PANTS_CONSUMER_KEY="87796-6b548d766433260a0f9b1b97\"
export PANTS_ACCESS_TOKEN="d44c7cc9-2434-de18-332c-923ad5"
export PANTS_STATIC_ROOT="/var/static"

# Set other Rocket variables if you're interested
export ROCKET_PORT=8765
export ROCKET_ADDRESS=0.0.0.0

# Let's go!
cargo run

发布

# Change the version in Cargo.toml
cargo publish

问题

我发现我越来越喜欢口袋,我想开始使用它来跟踪我想读的和已经读过的所有事物。不幸的是,并不是我想读的所有事物都适合口袋的阅读模式,尽管跟踪模式很棒。例如,将《霍比特人》保存到口袋中就没有意义,因为没有任何专门包含该内容的网页。

解决方案

您可以在口袋的添加 API 文档中看到,需要 URL,因此我们需要创建一个。

假设我想阅读 Big Boi 的面包店,由 Big Boi 编写,我可以去 Pants 并输入标题(可选地输入一些标签),然后 Pants 将在 /pages 目录下创建一个网页,在这个例子中是 /pages/bigboisbakery,然后将其添加到口袋。

依赖项

~30–42MB
~736K SLoC