首先,确保您的机器上已安装 Java。您可以从 Oracle 下载,或者使用您喜欢的包管理器,例如:
brew install openjdk
sudo apt update
sudo apt install openjdk-21-jdk
sudo yum install java-21-openjdk-devel
sudo pacman -S jdk21-openjdk
首先,运行以下命令以使用 Twitter 进行身份验证:
java -jar app.jar auth
这将弹出一个链接,用它打开一个网页,您可以在其中登录到您的 Twitter 帐户并输入提供的 PIN 码。
此过程将在您的目录中生成一个twitter_credentials.properties
文件。
例如,要Block同时使用默认个人资料图片、在过去 3 个月内注册且关注者与被关注者比例大于 20:1 的用户,请使用以下命令:
java -jar app.jar run --picture --register 3 --ratio 20
要查看运行命令的所有可用选项,请使用:
java -jar app.jar run --help
这将显示可用的用法和选项,您可以将它们组合使用。注意,无论您使用了一个还是多个flag,都是在同时满足的情况下才会判断为Block。
Usage: <FileName.jar> run [<options>]
Block them now!
Options:
--access-token=<key> OAuth access token
--access-secret=<key> OAuth access token secret
--dry-run Print destructive actions instead of performing them
--picture Block users with default profile pictures
--register=<int> Block users registered within the specified number of months
--spam=<int> Block users with 0 fans but too many followings
--locked Block users who have protected their tweets
--include-site Also scan the user's website link
--include-location Also scan the user's location string
--delay=<int> Delay between fetching two users must be specified in milliseconds. A high delay can significantly extend the processing time, but it will make the process more stable. Note that 1 second equals 1000 milliseconds. The default value is 100 milliseconds, and it must be greater than 80 milliseconds.
--ratio=<int> Block users with a followings-to-followers ratio higher than the specified value
-h, --help Show this message and exit
若命令后跟随<int>
则代表需要跟随数字,如--ratio=<int>
,需要使用--ratio 5
等。
其中--access-token=<key>
和--access-secret=<key>
已经在Twitter 进行身份验证步骤获得,将根据目录下的缓存文件
twitter_credentials.properties
读取,不需要额外指定。
由于错误的Block人是一件麻烦的事。使用以下推荐方案可以减少这种情况。
- 使用同时满足使用默认头像、3个月内注册、关注数与粉丝比例大于20的。这种情况下可以排除绝大多数正常人。
java -jar app.jar run --picture --register 3 --ratio 20
- 使用同时满足使用默认头像、锁推、关注数与粉丝比例大于20的。这种情况下也可以排除绝大多数正常人。
java -jar app.jar run --picture --locked --ratio 20
由于众多因素如
- 网络不稳定导致无法完全运行,那么就先屏蔽已经扫描出来的吧
- 粉丝数太多,不想等那么久,Run命令跑一会就不想等了,那么就先屏蔽已经扫描出来的吧
等原因,你可能会用到这个命令。
此命令将根据 users_to_block.json
文件开始Block其中的用户。
java -jar app.jar execute
默认情况下,会检查用户的screenName
,即昵称。以及description
,即用户简介。
当然,在启用了 --include-location
或(和)--include-site
的时候,也会相应的检查用户地址栏以及用户网站栏填写的内容。
程序内置了敏感词列表。文件源于sensitive-word项目
的 中文敏感词字典。存储在
src/main/resources/sensitive_word_dict.txt
路径下。您可以根据您的喜好更换、添加、删改。
您可以在程序内置的敏感词列表的基础上设置用户敏感词。它在当前目录下的blocking_rules.json
文件中定义。下面是它的默认格式:
{
"userKeywords": [],
"excludeKeywords": []
}
顾名思义,userKeywords
就是您要在内置敏感词的基础上额外新加的敏感词列表,excludeKeywords
则是排除项。有时候,并不能根据设置的敏感词很好的区分一个人是否需要block,
excludeKeywords
则在这时候派上了用场。
例如,在假设内置敏感词文件中没有crypto
这一项。那么,在如下设置中,就会考虑block包含敏感词crypto
的人。但是假设他同时又包含关键词
男高
,则不会被block。
{
"userKeywords": [
"crypto"
],
"excludeKeywords": [
"男高"
]
}
最终结果是,所有包含crypto
的人都会被block,但是包含男高
的那部分例外。
- 选择更稳定的网络连接。网络波动会导致程序不按预期运行。
- 鉴于多数人都是用VPN,可以考虑等一会儿再试试,也许你这会儿梯子并不稳定。有时候20个就停止了,有时候2000个也能正常运行。
- 使用
--delay
参数设置延迟时间。一般100为宜(默认值),小于80容易出现Rate Limit的问题,过大会导致运行时显著增长 。该值为毫秒。若设置为200,有3000粉丝,不考虑网络传输以及判断逻辑等耗时,需要耗费600秒(10分钟)在等待上。