読者です 読者をやめる 読者になる 読者になる

歩いたら休め

If the implementation is easy to explain, it may be a good idea.

【Python】たった12行のコードで音楽ナタリーの好きなアーティストの記事をTwitterBotに通知するライブラリを作りました

github.com

こんな感じのコードを24時間ごとに動かせば、人間椅子THE BACK HORNの記事が更新されるたび、Twitterに通知することができます。

import natalie_to_twitter as nt

tw_conf = { 
    'token': 'your twitter access token',
    'token_secret': 'your twitter access token secret',
    'consumer_key': 'your consumer key',
    'consumer_secret':
        'your consumer key secret'
    }
oauth = nt.OAuth(**tw_conf)
bot = nt.NatalieBot(oauth, exec_span=24, target_tags=['人間椅子', 'THE BACK HORN'])
bot.run()

実際に動かしてみています。

このライブラリを作る仮定で、「ハッシュタグとURLがあるとき、文字数制限をチェックするのが面倒くさいな」と思ったので、簡単にツイートを作る関数を提供するPythonライブラリです。

github.com

あまりに文字数が多い場合、テキストの末尾を「…」に変えて成形してくれるライブラリです。ただし、ハッシュタグの文字数が多すぎる場合やURLが正しい形式になっていない場合のチェックは今のところ行っていません。

myblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblogmyblo… #myblog http://kiito.hatenablog.com/

アーティスト名をそのままハッシュタグにすると変なところで切れる場合があるので(例えば「#THE BACK HORN」だと「#THE」しかハッシュタグにならない)、ハッシュタグをいい感じに成形してくれる関数を作ったのが工夫した点です。$マークの変換は「THE CHERRY COKE$」のためです。

    def _make_tag(self, tag):
        # TODO:: ハッシュタグの精査
        tag = re.sub(r'(-| )', '_', tag)
        tag = tag.replace('$', 'S')
        return re.sub(r'(\.|≠|・)', '', tag)

kiito.hatenablog.com