BOTサイトから追い出されてしまった。。しようがない、Javaで作るか。 | 乖離のぶろぐ(*´∀`)吸い込んで応援
http://twittbot.net/modules/bot/index.php
(゚ω゚)またしても、BOTサイトから追い出されてしまった。
(゚ω゚)自分でもBOTは作れる。
(゚ω゚)IDEは、pleiades-e3.7-ultimate_20110704.zip
$乖離のぶろぐ(*´∀`)吸い込んで応援

(゚ω゚) https://dev.twitter.com/ に My applications を作る。アプリ連携の入り口というわけ。
(゚ω゚)ソースのこぴぺ。このソースで、どのようなサーチとつぶやきを行うか記述する。
(゚ω゚)Javaを、かじったことのある人ならば、簡単に作れる。



import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.Properties;

import twitter4j.*;

public class kuso_bot {

/**
* @param cs この文字列
* @param pT 指定された部分文字列
*/
private static Boolean ifTargetWords ( String cs , String[] pT) {
for (int i=1; i < pT.length ; i++){
if( cs.indexOf(pT[i]) != -1 ) { // -1は見つからない
return true;
}
}
return false;
}

/**
* @param args
* @throws TwitterException
* @throws IOException
* @throws InterruptedException
* @throws FileNotFoundException
* @throws URISyntaxException
* @note 注意:updateStatusするつぶやきは StrQueryする言葉をを含んではダメ。
*/
public static void main(String[] args) throws TwitterException, IOException, InterruptedException {

// プロパティファイル読み込み
// \workspace\プロジェクト\twitter4j.properties
// twitter4j.propertiesには、以下の記述を追加します。
//
// kuso_bot_tage=AAA,やま,海,何個でも
//
// AAAさんのつぶやきに"やま"や"海"が含んでいるとupdateStatusします。

final String CONF_NAME = "twitter4j.properties";
Properties prop = new Properties();
try {
prop.load(new InputStreamReader(new FileInputStream(CONF_NAME)));
} catch (FileNotFoundException e) {
System.out.println("プロパティファイル "+CONF_NAME+" 読み込み失敗");
System.exit(-1);
}

// ツイート

Twitter twitter = new TwitterFactory().getInstance();
System.out.println("Successfully getInstance .");

Query query = new Query();

String StrQuery=""; // 1フィールド目  Searchのことば
String targetWords[]=null; // 2フィールド以降 言葉

String igetaString=null;
String[] strAry ;
String putMessage=null;
String wStr=null;
String urls1 =null;
String currentMessage=null;
String previousMessage=null;
int i;
int iran ;
if ( null != prop.getProperty("kuso_bot_tage") ){
targetWords = prop.getProperty("kuso_bot_tage").split(",");
StrQuery = targetWords[0];
}else{
System.out.println("プロパティファイル "+
CONF_NAME+
" にkuso_bot_tageが記述されていません");
System.exit(-1);
}
if ( null != prop.getProperty("urls1") ){
urls1 = prop.getProperty("urls1");
StrQuery = targetWords[0];
}else{
System.out.println("プロパティファイル "+
CONF_NAME+
" にurls1が記述されていません");
System.exit(-1);
}

try {

for (;;) {
iran = (int)( Math.random() * 1000 );

// TweetDeckにも Search: ってのがあるでしょ?
// #始まりである必要はない。文字列だったら良い。
query.setQuery( StrQuery );
QueryResult queryResult;
queryResult= twitter.search(query);

List tweetes ; // 何件も取得するからリスト
tweetes=queryResult.getTweets();
for (Tweet tweet : tweetes) {
iran = (int)( Math.random() * 1000 );

currentMessage= tweet.getText();
System.out.println(
tweet.getCreatedAt() +
"@" + StrQuery +
" " + currentMessage);

if( ifTargetWords(currentMessage, targetWords ) ){
if( currentMessage.equals(previousMessage) ){
break; // スパムには成らないようにする。
}
previousMessage = currentMessage;

strAry = currentMessage.split("#");
if ( strAry.length <= 1 ){
igetaString="";
}else {
igetaString="";
for (i=strAry.length -1 ; 0 != i ; i--){
if( 1 == strAry[ i ].split(" ").length ){
igetaString += " #" +strAry[ i ];
}else{
igetaString += " #" +strAry[ i ].substring(0, strAry[ i ].indexOf(' '));
}
}
}

if ( iran < 5 ){
wStr="#"+tweet.getFromUser()+" #Eggs is 60 Bq/Kg. 日本の卵は60ベクレル #houshanou #hibaku "+ urls1+ " #EGG Made in #japan #bot #"+StrQuery + igetaString ;
}else if ( iran < 10){
wStr="#"+tweet.getFromUser()+" #TEPCOが #野菜 をダメにして\n #東日本 が #終わったぁ\n"+ urls1+ " 早く逃げないと大変 #bot #"+StrQuery + igetaString ;
}else if ( iran < 20){
wStr="#"+tweet.getFromUser()+" #TEPCO って犯罪組織ぢゃん。除染もしないで #東日本 が #終わったぁ\n"+ urls1+ " 早く逃げないと大変 #bot #"+StrQuery + igetaString ;
}else if ( iran < 30){
wStr="#"+tweet.getFromUser()+" #seifu の秘密主義は大惨事を引き起こす。\n #日本 #終わったぁ\n"+ urls1+ " 早く逃げないと大変 #bot #" +StrQuery+ igetaString ;
}else if ( iran < 100){
wStr="#"+tweet.getFromUser()+" #TEPCO のおかげで核実験ピーク時の300倍汚れている東京\n" + urls1 + " 早く逃げないと大変 #bot #" +StrQuery+ igetaString ;
}else if ( iran < 220){
wStr="#"+tweet.getFromUser()+" 嘘だったのですか!我われ県民文民を愚ろうしてバカにしてるのですか! やらせ #METI ! "+ urls1+ " #bot #"+igetaString ;
}else if ( iran < 250){
wStr="皇族が西へ避難開始 http://tw.gs/S7v8e Nuclear osen hibaku 陛下 NHK TBS TEPCO denki genpatsu nuclear 瓦礫 #dpj Daiichi AKW Tokyo";
}else if ( iran < 350){
wStr="足立区 荒川河川敷 約1μSv/h http://tw.gs/S7v8f #Nuclear #Debris #Tokyo Contamination osen #TEPCO #dpj 環境 #Radiation #Japan #NHK kodomo #だるい";
}else if ( iran < 370){
wStr="子どもは10―30Bq/kgで60%に心電図異常が起き、70―100Bq/kgで、突然死 http://tw.gs/S7v8g Nuclear osen #hibaku #TEPCO #dpj kodomo #だるい";
}else if ( iran < 390){
wStr="体内汚染50bq/kgの時点で30%が白内障。生き残ったクラスメイトは2名 http://bit.ly/yFxMaM seiji TEPCO denki genpatsu dpj #Daiichi #Tokyo kodomo #だるい";
}else if ( iran < 400){
wStr="足立区の小・中学校校庭 地上5cm:4.85μSv/h、50cm:1.54μSv/h 他校も高い汚染。逃げろ http://tw.gs/S7v80 Nuclear osen hibaku NHK TBS TEPCO #dpj #Tokyo #ibaraki";
}else if ( iran < 420){
wStr="放射性物質を99.99%除去できるバグフィルターはガセねた http://tw.gs/S7v8C 原発 Nuclear 廃棄物 #Debris #がれき 瓦礫 受け入れ 町長 Tokyo osen #hibaku #DPJ #Seiji #環境";
}else if ( iran < 430){
wStr="大阪でがれきを燃やしたら市長はリコール http://su.pr/1dZVOy 原発 Nuclear 廃棄物 維新 Debris がれき 瓦礫 受け入れ Osaka osen kodomo 子供 hibaku Seiji 環境 橋下";
}else if ( iran < 450){
wStr="ヨウ素セシウムの放出量を重量に換算すると5Kg。私はこの100倍~1000倍は出たと思う http://t0.tv/OaY TEPCO Report #Nuclear Contamination 核 汚染 Tokyo hibaku";
}else if ( iran < 500){
wStr="10個計って低い値となった8個を発表してる食品中の放射性物質検査。行政って要らないですよね http://uoid.me/7281 #Nuclear #Debris #Contamination #osen #dpj #環境 #世論操作 #Japan";
}else if ( iran < 880){
wStr="南相馬 Minamisoma 520 マイクロシーベルト 黒い物質 : ほっとくと全滅するかも。報道しないテレビも加害者です http://j.mp/JSP3bu Nuclear #Debris #Contamination #osen #dpj #環境 #世論操作";
}else if ( iran < 900){
wStr="#"+tweet.getFromUser()+" #kyuden #Chuden #yonden #NISA #保安院 #やらせ\n"+ urls1+ "\nこれは更迭 #bot #" +StrQuery+ igetaString +" "+iran;
}else if ( iran < 950){
wStr="#"+tweet.getFromUser()+" 総括原価方式とは使用済み核燃料も資産として発電コストと勘定し、電気代が上って #fepc が儲かる #bot "+ urls1 + " #"+StrQuery+ igetaString ;
}else{
wStr="#"+tweet.getFromUser()+" 人はホットスポットを探して死ぬ。 本当? このビデオを見てください\n"+ urls1+ " 早く逃げないと大変 #bot "+ iran +" #" +StrQuery+ igetaString ;
}
// wStr=""+"埼玉、10歳、尿からセシウム検出。 http://is.gd/beAoAH 東日本から早く逃げないと大変 #bot 野菜 #yasai " +iran+igetaString;

if ( wStr.length() > 140 ){
putMessage = wStr.substring(0, 139);
}else{
putMessage = wStr;
}
// 増えた新しいつぶやきに対して、つぶやく
Status status = twitter.updateStatus(putMessage);
System.out.println("Successfully updated the status to [" + status.getText() + "].");
break;
}
}
System.out.println("ーーーーーーーーーSleep ------------------");
Thread.sleep(1000000+ iran * 500 ); // 時間を短くすると、HTTP 500が返る。
}//for (;;)

} catch (TwitterException te) {

te.printStackTrace();
System.out.println("Failed to get timeline: " + te.getMessage());
System.exit(-1);
}
}
}


//