TERFBLOCKER5000
1.0.0
terfs-跨性别激进的“女权主义者” - 是一个令人讨厌的,主要是(但不限于)英国现象,这是朱迪思·巴特勒(Judith Butler)所说的法西斯趋势。他们假装“争取女性和女孩的权利”,但实际上,他们传播了关于跨性别者的仇恨和误解。他们从“关注的母亲”到彻头彻尾的恐怖分子和 - 就像他们的另类右翼伙伴一样,它们具有不同的口味 - 他们使用了很多狗哨子,这是Terfblocker5000步骤的地方。
Terfblocker5000扫描用户配置文件(显示名称,生物和位置),并根据单词列表过滤它们。当然,这不是完美的,但是它捕获了大多数最可恨的帐户(在测试环境中占据了180万个扫描帐户中的2% - 品尝Vogon诗歌)。
// @see https://github.com/chillerlan/php-oauth-providers/blob/main/examples/get-token/Twitter.php
$ token = ( new AccessToken )-> fromJSON ( file_get_contents ( $ CFGDIR . ' /Twitter.token.json ' ));
$ wordlist = require $ CFGDIR . ' /wordlist.php ' ;
$ terfblocker
// import a new twitter oauth token if needed
-> importUserToken ( $ token )
// set the list of terms to match against (required)
-> setWordlist ( $ wordlist )
// fetch from replies to a given tweet
// the 2nd parameter toggles the API request limit enforcement
-> fromMentions ( ' https://twitter.com/Nigella_Lawson/status/1441121776780464132 ' , true )
// or just the @-mentions of a user
-> fromMentions ( ' https://twitter.com/Lenniesaurus ' , true )
// from an advanced search
// @see https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/guides/standard-operators
-> fromSearch ( ' #IStandWithJKRowling ' , true )
// from the followers of the given account
-> fromFollowers ( ' https://twitter.com/HJoyceGender ' , true )
// from the accounts the given account follows
-> fromFollowing ( ' https://twitter.com/HJoyceGender ' , true )
// from followers AND following from a list of screen names ()
-> fromFollowersAndFollowing ([ ' ALLIANCELGB ' , ' Transgendertrd ' , ' fairplaywomen ' ], true )
// adds each of the given screen_names to the given block list (always, block, never)
-> fromScreenNames ([ ' ALLIANCELGB ' , ' Transgendertrd ' , ' fairplaywomen ' ], ' always ' )
// fetches the retweeters of the given tweet - note that the results of this endpoint
// may not return *all* but only the *recent* retweeters - whatever that means...
-> fromRetweets ( ' https://twitter.com/fairplaywomen/status/1388442839969931264 ' )
// fetches all users of the given (private) list
-> fromList ( ' TERFBLOCKER5000 ' , ' always ' )
// adds the user IDs from the block list of the currently authenticated user to the profile table
-> fromBlocklist ()
// add user IDs found in the given JSON file
-> fromJSON ( __DIR__ . ' /users.json ' )
// exports the block list from the database into a JSON file in the given path
-> exportBlocklist ( __DIR__ . ' /../json/ ' )
;
/**
* cron methods
*/
$ terfblocker
// adds a list of screen names to the "scan jobs" table
-> cronAddScreenNames ([ ' ALLIANCELGB ' , ' Transgendertrd ' , ' fairplaywomen ' ])
// scans followers/following for users in the scan jobs table, @see /cron/fetch_follow.php
-> cronScanFollow ();
// the profile fetcher @see /cron/fetch_profiles.php
$ terfblocker -> cronFetchProfiles ();
// rescans the profile table against the given wordlist
$ terfblocker
-> setWordlist ( $ wordlist )
-> cronScanByWordlist ();
// performs blocks for the currently authenticated user, @see /cron/perform_block.php
$ terfblocker -> block ();