Sun Sep 6 20:48:23 JST 2015

twitterでファボられたらツイートを削除する

タイトルの通り. 私の全てのアカウントで、ファボられたらそのツイートを即座に、自動的に削除させるようにした. これを、salmon.js に機能として追加した. -F オプションを付けて実行すると、この機能が発動する.

いいことがいくつかある.

  1. ツイートの削除がお手軽になること
  2. 知らずにふぁぼってきた人を驚かせられること
  3. 削除するという機能だけを公開すること

イライザ (@ampeloss) にいくつか通知と称して、 メールが来ると私のもとにリプライが着て、それでメールに気づけるようにしていた. 多すぎると雑音になる. 或いは、もう用事が済んだら消したい. 今までは、私のアカウントからイライザへリプライを飛ばしたら、 それを検知して削除させていた. でもリプライを飛ばすってことは、結果的に、ツイートの総数は変わらない. 地球資源の無駄遣いである.

ファボるとツイートが消えるので、ファボも消える. エコだ.

コード

変更箇所と最低限の骨格を含めたコードは以下の通りである.

って、こんなコード (どうせ動かない) 書いてて思ったけど、 git diff のほうが後から見た時にいいに決まってる.

ntwitter = require 'ntwitter'
twit = new ntwitter {}

delete_tweet = (status_id) ->
  url = "https://api.twitter.com/1.1/statuses/destroy/#{status_id}.json"
  twit.post url, {}, (-> console.log "status #{status_id} has beein destroied")

twit.stream 'user', (stream) ->
  stream.on 'data', (data) ->
    event = data.event
    if event is 'favorite'
      target_name = data.target_object.user.screen_name
      if is_me(target_name)
        delete_tweet data.target_object.id_str