25次发布
0.9.3 | 2023年12月13日 |
---|---|
0.9.2 | 2023年10月7日 |
0.9.1 | 2023年7月1日 |
0.7.1 | 2023年3月26日 |
0.1.0-alpha.1 | 2022年4月14日 |
#105 in Web编程
每月106次下载
48KB
1K SLoC
shreddit
shreddit
是一个删除Reddit评论和帖子的工具。
停用Reddit账户不会删除评论或投稿 - 它只会将您的账户与它们解除关联。
Shreddit在删除之前将您的评论覆盖为随机文本,以确保原始内容(可能)不会保留。
如果您不想让您的帖子历史记录永远跟随您,您可以使用shreddit
在cron作业中。
如果您正在停用您的账户,您可以先运行shreddit
以确保您的帖子被删除。
关于
由于原始Shreddit项目于2017年被放弃,我决定用Rust重新编写它。
这带来了几个好处
- 您不需要安装Python或其他任何东西。
- 您不需要有
shreddit.yml
和praw.ini
配置文件,所有配置都可以通过CLI命令进行,环境变量作为默认后备。
安装
手动
从GitHub发布页面下载二进制文件。
Cargo
cargo安装 shreddit
如何使用
创建Reddit应用程序凭据
- 转到Reddit -> 偏好设置 -> 应用程序(选项卡)并点击
创建另一个应用程序...
- 给应用程序起一个名字,比如'shreddit'。名字不重要。
- 选择
script
。 - 将重定向URL设置为
https://127.0.0.1:8080
。 - 点击
创建应用程序
。
这将提供客户端ID和客户端密钥。Shreddit使用的CLIENT_ID
值显示在您创建的应用程序名称下。在点击编辑
后显示CLIENT_SECRET
。
重要:如果您正在使用TOTP,您需要通过
PASSWORD
设置将其传递,例如PASSWORD:TOTP
。目前这样做有些不便,因为您需要在令牌过期之前完成,所以我们将来可以添加一个CLI提示以使其更容易。同时,您可以使用--password
CLI参数,输入--password your-password:
然后在后面粘贴TOTP并按回车。
Overwrite and delete your Reddit account history.
Usage: shreddit [OPTIONS] --username <USERNAME> --password <PASSWORD> --client-id <CLIENT_ID> --client-secret <CLIENT_SECRET>
Options:
-u, --username <USERNAME>
Your Reddit username [env: SHREDDIT_USERNAME=]
-p, --password <PASSWORD>
Your Reddit password [env: SHREDDIT_PASSWORD=]
--client-id <CLIENT_ID>
To create client credentials, you need to navigate to `https://www.reddit.com/prefs/apps/`, click `create another app...` and fill out the form. Select the `script` type, and set `redirect uri` as `https://127.0.0.1:8080` [env: SHREDDIT_CLIENT_ID=]
--client-secret <CLIENT_SECRET>
The client secret from when you created client credentials [env: SHREDDIT_CLIENT_SECRET=]
--dry-run
If set, shreddit will not modify or delete anything. It will simply log what it would do if not in dry run mode. This allows you to preview the plan of action before executing [env: SHREDDIT_DRY_RUN=]
--thing-types <THING_TYPES>
What "things" you want to delete [env: SHREDDIT_THING_TYPES=] [default: posts comments] [possible values: posts, comments, friends, saved-posts, saved-comments]
--before <BEFORE>
[env: SHREDDIT_BEFORE=] [default: "2023-06-25 14:42:43.828192320 UTC"]
--max-score <MAX_SCORE>
[env: SHREDDIT_MAX_SCORE=]
-r, --replacement-comment <REPLACEMENT_COMMENT>
Allows a user to specify a custom string as their comment replacement text [env: SHREDDIT_REPLACEMENT_COMMENT=] [default: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."]
--user-agent <USER_AGENT>
The User-Agent for Reddit API requests [env: SHREDDIT_USER_AGENT=] [default: ShredditRustClient]
--gdpr-export-dir <GDPR_EXPORT_DIR>
The path of the directory of the unzipped GDPR export data. If set, `shreddit` will use the GDPR export folder instead of Reddit's APIs for discovering your data [env: SHREDDIT_GDPR_EXPORT_DIR=]
--edit-only
If specified, comments will only be edited, not deleted. - Requires gdpr_export [env: SHREDDIT_EDIT_ONLY=]
-h, --help
Print help
-V, --version
Print version
您可以选择通过CLI参数传递配置设置
shreddit --username YouRedditUsername --password YourSuperSecretPassword123 --client-id k1jh2342k3j --client-secret 2345JHLJ_34kjhkj3h453453
或者通过设置环境变量(例如SHREDDIT_CLIENT_SECRET
)并简单地运行shreddit
。
启动时,shreddit
将在当前目录中查找shreddit.env
文件,并设置其中声明的任何变量。然而,这完全是可选的。
干运行
您可以使用--dry-run
或SHREDDIT_DRY_RUN=true
来查看它会在不实际执行任何操作的情况下做什么。
使用GDPR导出删除所有数据
- 通过以下步骤请求您所有数据的存档。
- 下载存档并解压。
- 使用
shreddit
运行并设置--gdpr-export-dir
标志为提取到的目录路径。
其他功能
我会逐渐添加这些功能。欢迎PR!
- 干运行 - 预览给定配置会发生什么。
- 保留给定日期时间之后发表的评论。
- 最高分数 - 保留分数高于此的评论。
- 评论排序
- 清除投票 - 删除前移除您的投票。
- 项目 - 配置要删除的项目类型(提交、评论等)
- 子版块白名单 - 给定子版块中的任何内容都不会被删除。
- 白名单ID - 通过列出它们的ID来保留特定的帖子。
- 保留显赫 - 不删除显赫的评论。
- 保留金标 - 不删除金标的评论。
欢迎其他功能想法。
依赖项
~12–26MB
~381K SLoC