처리 중 개별 IRC 메시지에서 IRC를 읽고 데이터를 가져 오려고합니다. 당신은 코드를 볼 수 있고 (트위터 라이브러리와 함께, 그것을 무시하십시오), 저는 닉의 형식으로 데이터를 끌어낼 수있는 방법에 대한 몇 가지 지침이 필요합니다 : 메시지 그래서 그것은 시각화에 표시 될 수 있습니다.처리 중 IRC 데이터를 올바르게 읽음
//Twitter
import twitter4j.conf.*;
import twitter4j.*;
import twitter4j.auth.*;
import twitter4j.api.*;
import java.util.*;
// Import the net libraries
import processing.net.*;
// Declare a client
Client client;
Twitter twitter;
String searchString = "god";
List<Status> tweets;
String server = "irc.twitch.tv";
String nick = "NugShow";
//String user = "simple_bot";
int port = 6667;
String channel = "#nugshow";
String password = "xx";
String in = "butt";
String checkFor;
//bools
Boolean isLive = false;
int privMsgIndex;
int atIndex;
String playerSubstring;
// The channel which the bot will joString channel = "#irchacks";
int currentTweet;
void setup()
{
size(800,600);
frameRate(60);
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey("xx");
cb.setOAuthConsumerSecret("xx");
cb.setOAuthAccessToken("xx");
cb.setOAuthAccessTokenSecret("xx");
TwitterFactory tf = new TwitterFactory(cb.build());
twitter = tf.getInstance();
getNewTweets();
currentTweet = 0;
thread("refreshTweets");
thread("loopChat");
connectToServer();
//IRC
}
void draw()
{
if (client.available() > 0) {
String in = client.readString();
println(in);
}
if (isLive == false){
if (client.available() > 0) {
}
} else {
}
/*
fill(0, 40);
rect(0, 0, width, height);
currentTweet = currentTweet + 1;
if (currentTweet >= tweets.size())
{
currentTweet = 0;
}
Status status = tweets.get(currentTweet);
fill(200);
text(status.getText(), random(width), random(height), 300, 200);
delay(100);
*/
}
void joinChannel() {
String in = client.readString();
client.write("JOIN " + channel + "\n\r");
client.clear();
in = client.readString();
println(in);
if (in != null){
//println("Recieved data");
println(in);
//String inString = myClient.readStringUntil("");
isLive = true;
println(isLive);
}
}
void connectToServer()
{
client = new Client(this, server , 6667);
client.write("PASS " + password + "\n\r");
println(password + " sent!");
client.write("NICK " + nick + "\n\r");
println(nick + " sent!");
joinChannel();
}
void getNewTweets()
{
try
{
Query query = new Query(searchString);
QueryResult result = twitter.search(query);
tweets = result.getTweets();
}
catch (TwitterException te)
{
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
}
void refreshTweets()
{
while (true)
{
getNewTweets();
println("Updated Tweets");
delay(30000);
}
}
void loopChat()
{
while (true)
{
if (privMsgIndex != 0){
println(privMsgIndex);
//privMsgIndex = privMsgIndex - 15;
atIndex = in.indexOf("@");
println(atIndex);
//atIndex = atIndex + 1;
playerSubstring = in.substring(atIndex, privMsgIndex);
println(playerSubstring);
} else {
println("looped");
}
delay(300);
client.clear();
in = null;
}
}
void keyPressed()
{
}
void tweet()
{
try
{
Status status = twitter.updateStatus("This is a tweet sent from Processing!");
System.out.println("Status updated to [" + status.getText() + "].");
}
catch (TwitterException te)
{
System.out.println("Error: "+ te.getMessage());
}
}
채팅 명령어는 다음과 같다 : nugshow 사용자 이름은 :[email protected] PRIVMSG #nugshow :dddd
는 #nugshow 채널이며, DDDD는 메시지입니다. 나는 그것을 nugshow : dddd 형식으로 가져와야합니다. 나뿐만 아니라 client.recieved 버퍼에서 제거하는 방법을 잘 모르겠어요 헤더 많은 정보가
, 그것은 다음과 같습니다
:testserver.local 001 nugshow :Welcome, GLHF!
:testserver.local 002 nugshow :Your host is testserver.local
:testserver.local 003 nugshow :This server is rather new
:testserver.local 004 nugshow :-
:testserver.local 375 nugshow :-
:testserver.local 372 nugshow :You are in a maze of twisty passages, all alike.
:testserver.local 376 nugshow :>
:[email protected] JOIN #nugshow
:nugshow.testserver.local 353 nugshow = #nugshow :nugshow
:nugshow.testserver.local 366 nugshow #nugshow :End of /NAMES list
:[email protected] PRIVMSG nugshow :HISTORYEND nugshow
함께 작업하는 데이터의 샘플을 게시하십시오 –
원하는 형식으로 데이터를 가져오고 싶거나 어쩌면 이유가 무엇인지와 같이 '중요한 부분을 표시하십시오'면 좋을까요? 그게 당신에게 (아직) 불가능하고'입력과 당신의 출력물의 예'가 가장 좋을 것입니다. 응답에 대한 –
덕분에, 채팅 명령어는 다음과 같다 : : nugshow [email protected] PRIVMSG #nugshow! nugshow 사용자 이름이 이 #nugshow 채널이며, DDDD는 메시지입니다 DDDD. nugshow 형식으로 가져와야합니다. dddd –