LoginSignup
16
15

More than 5 years have passed since last update.

PythonでTwitter腐女子ブロッカーを作ってみた①

Last updated at Posted at 2017-08-03

概要

私はロードレース大好きなので、ここ数年Twitterで公式タグ「#TDF」を追っているだけで腐女子様のTweetが引っかかってくるという現象に悩まされていました。TDFは終わりましたが、ブエルタの前に、腐女子様をあらかじめブロックするコードをPythonで書いたので共有させていただきます。

Twitter認証

こちらを参考に、Consumer key、Consumer secret、Access token、Access token secretを取得。

コーディング

こちらを参考に、腐女子様的ワードをひねり出してコーディング。

ロジック

  1. 今回はロードレース観戦を快適にしたいので、まず、「弱虫ペダル」でTwitter検索をかけます。
  2. 引っかかってきたTweetについて、Tweet主の名前とプロフィールを確認。
  3. 名前かプロフィールに「腐女子様的ワード」が入っていたらブロックします。

コード

一夜漬けコード。

config.py
CONSUMER_KEY = "XXXX"
CONSUMER_SECRET = "XXXX"
ACCESS_TOKEN = "XXXX"
ACCESS_TOKEN_SECRET = "XXXX"
main.py
# -*- coding: utf-8 -*-

import json, config
from requests_oauthlib import OAuth1Session

CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK, CS, AT, ATS)

url = "https://api.twitter.com/1.1/search/tweets.json"
url_block = "https://api.twitter.com/1.1/blocks/create.json"
url_prof = "https://api.twitter.com/1.1/users/show.json"
NG_WORDS = 'BL', '腐', '厨', 'CP', 'コス', 'cos', 'グッズ', 'bot', '成人済'

params = {'q':'弱ペダ','count': 10, 'result_type' : 'recent'}
req = twitter.get(url, params = params)

if req.status_code == 200:
    search_timeline = json.loads(req.text)
    print(req.text)
    for tweet in search_timeline['statuses']:
        name = tweet['user']['name']
        screen_name = tweet['user']['screen_name']
        description = tweet['user']['description']
        L = name+description
        print(L)
        if any(ng_word in L for ng_word in NG_WORDS):
            print("腐")
            print('----------------------------------------------------')
            params2 = {'screen_name': screen_name}
            twitter.post(url_block, params = params2)
        else:
            print("not腐")
            print('----------------------------------------------------')
else:
    print("ERROR: %d" % req.status_code)

今後の改善点

  1. どこかのサーバーにおいて定期的にブロッカーを動かすコードへの変換
  2. はじくためのキーワードを入力するUIの作成
  3. ブラウザで動くサービスとしての提供

最後に

改善でき次第こちらにUpしていきたいと思います。(なのでタイトルに①がついています)
お手伝いしてくださる方大歓迎です。よろしくお願いいたします。

16
15
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15