ツイッターのアカウント。
身内だけのプライベートアカウントなのだが、いずれはブログと連携させたり、公に使いたいということで、過去のツイートを全部消そうかと思い立った。
なにせプライベートアカウントは身内ネタばかりなので、パブリックに見せるにはちょっと苦しいからだ。
しかし、2000件近くのツイートがあったので、いちいち手で消していては面倒臭い。
かと言って、たかだかツイートを消すだけのプログラムに時間もかけたくない。
ということで、15分くらいでささっとツイートを消していくJavaを書いた。
デザインパターンを勉強しているにも関わらず、保守性とか拡張性は全く考慮していない。
明日には使わなくなる予定だからだ。
まずは、5分でコンシューマーキーやアクセストークンをゲットする。
「twitter dev」でググれば開発者用のサイトが1番上に出てくるので、その中でアクセストークンなんかは取得できる。
で、こんな感じのコードを書く。
package cleanMyTwitter; import java.util.ArrayList; import java.util.List; import twitter4j.Status; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.TwitterFactory; import twitter4j.auth.AccessToken; public class CleanMyTwitter { public static void main(String[] args) { Twitter twitter = new TwitterFactory().getInstance(); String consumerKey = "RRRRRR"; String consumerSecret = "XXXXX"; String accessToken = "YYYYY"; String accessTokenSecret = "MMMMM"; twitter.setOAuthConsumer(consumerKey, consumerSecret); twitter.setOAuthAccessToken(new AccessToken(accessToken,accessTokenSecret)); List<Status> list = new ArrayList(); try { list = twitter.getUserTimeline(); if (list.size() <= 1) { System.out.println("Exit!"); System.exit(0); } for (int i = 0; i < list.size(); i++) { Status status = list.get(i); if (status != null) { long l = status.getId(); System.out.println("delete tweet id =" + l); twitter.destroyStatus(l); } } } catch (TwitterException e) { System.out.println(e.getMessage()); } } }
それで、これをjarにして出力して、
crontab -e */15 * * * * java -jar /var/www/cleanTwitter/CleanTwitter.jar
みたいに設定すればOK。
15分に20件ずつツイートを消していってくれる。
寝て起きて会社行って、帰ってきたらきっと、ツイートは1件になってるはず。
たぶん。
感謝のプログラミング
今回で感謝のプログラミングは【306時間目】
10000時間まで、あと【9694時間】