--- a/tool/src/www/twitter.java
+++ b/tool/src/www/twitter.java
@@ -11,293 +11,324 @@
*/
package www;
-
-import definitions.is;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import script.log;
-import twitter4j.Paging;
-import twitter4j.Status;
-import twitter4j.Twitter;
-import twitter4j.TwitterException;
-import twitter4j.TwitterFactory;
-import twitter4j.User;
-import twitter4j.conf.ConfigurationBuilder;
-import utils.html;
-
+//
+//import com.colorfulsoftware.rss.RSS;
+//import com.colorfulsoftware.rss.RSSDoc;
+//import definitions.is;
+//import java.io.File;
+//import java.io.FileOutputStream;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.net.MalformedURLException;
+//import java.net.URL;
+//import java.net.URLConnection;
+//import java.util.ArrayList;
+//import java.util.logging.Level;
+//import java.util.logging.Logger;
+//import script.log;
+//import twitter4j.Paging;
+//import twitter4j.Status;
+//import twitter4j.Twitter;
+//import twitter4j.TwitterException;
+//import twitter4j.TwitterFactory;
+//import twitter4j.User;
+//import twitter4j.conf.ConfigurationBuilder;
+//import utils.html;
+//import utils.vogella.Feed;
+//import utils.vogella.FeedMessage;
+//import utils.vogella.RSSFeedParser;
+//
/**
*
* @author Nuno Brito, 21st of December 2013 in Darsmtadt, Germany
*/
public class twitter {
-
- // define where we store all cached files
- static File folderCache = new File("cache");
-
- /**
- * Downloads a file from the Internet straight onto the local disk
- * @param url The link to the web file
- * @param localFilename The file where the contents will be stored
- * @source on http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java
- * @author Muhammad Umair - http://stackoverflow.com/users/1749165/muhammad-umair
- * @retrieved 2013-12-14 by Nuno Brito
- */
- static void downloadFromUrl(String link, File localFilename) {
- InputStream is = null;
- FileOutputStream fos = null;
-
- try {
- URL url = new URL(link);
- URLConnection urlConn = url.openConnection();//connect
-
- is = urlConn.getInputStream(); //get connection inputstream
- fos = new FileOutputStream(localFilename); //open outputstream to local file
-
- byte[] buffer = new byte[4096]; //declare 4KB buffer
- int len;
-
- //while we have availble data, continue downloading and storing to local file
- while ((len = is.read(buffer)) > 0) {
- fos.write(buffer, 0, len);
- }
- } catch (IOException ex) {
- Logger.getLogger(twitter.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- try {
- if (is != null) {
- is.close();
- }
- } catch (IOException ex) {
- Logger.getLogger(twitter.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- if (fos != null) {
- try {
- fos.close();
- } catch (IOException ex) {
- Logger.getLogger(twitter.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-}
-
-/**
- * When given an input, replace all http:// references on text with HTML link
- * representations.
- *
- * @param text the plain text containing the links to be converted
- * @return formatted HTML text, links are now clickable
- * @source on http://stackoverflow.com/questions/1909534/java-replacing-text-url-with-clickable-html-link
- * @author Paul Croarkin - http://stackoverflow.com/users/18995/paul-croarkin
- * @retrieved 2013-12-14 by Nuno Brito
- */
-public static String textToHtmlConvertingURLsToLinks(String text) {
- if (text == null) {
- return text;
- }
- return text.replaceAll("(\\A|\\s)((http|https|ftp|mailto):\\S+)(\\s|\\z)",
- "$1<a href=\"$2\">$2</a>$4");
-}
-
-/**
- * When given an input, replace all http:// references on text with HTML link
- * representations.
- *
- * @param input the plain text containing the links to be converted
- * @return formatted HTML text, links are now clickable
- */
- public static String replaceTextWithURL(String input){
- String result = input;
- String temp = input;
- while(temp.contains("http://")){
- // get the beginning of the http tag
- int i = temp.indexOf("http://");
- temp = temp.substring(i);
- // get the first space
- int end = temp.indexOf(" ");
- // is the link on the end of text?
- if(end == -1){
- end = temp.length();
- }
- String url = temp.substring(0, end);
- // replace the URL with the HTML code
- result = result.replace(url, "<a href='"+url+"'>"+url+"</a>");
- // process the rest of the string
- temp = temp.substring(end);
- System.out.println(result);
- }
- return result;
- }
-
- /**
- * Provides an HTML formatted link to an image
- * @param url
- * @return
- */
- static String getImageHTML(String url){
- String temp = url.toLowerCase();
- // BMP files are not supported
- if(temp.endsWith(".bmp")){
- return "";
- }
-
- // first, we need to cache this image
- //String data = utils.internet.getTextFile(url);
- //String data = utils.internet.webget(url);
-
- int pos = url.lastIndexOf("/") + 1;
- String fileName = url.substring(pos);
- File imageFile = new File(folderCache, fileName);
-
- if(imageFile.exists() == false){
- downloadFromUrl(url,imageFile);
- }
-
-
- // second round
- if(imageFile.exists() == false){
- return "";
- }
-
- // do a web request to support both web browsers and desktop images
- WebRequest request = new WebRequest();
- request.BaseFolder = folderCache;
- request.requestOrigin = RequestOrigin.GUI;
-
- return html.getIcon(fileName, request);
- // return "<img style=\"width: 48px; height: 48px;\" src=\""+url+"\"'>";
- }
-
-
- static String doItem(String image, String text){
- return
- "<table style=\"text-align: left; width: 100%;\" border=\"0\""
- + "cellpadding=\"2\" cellspacing=\"2\">"
- + " <tbody>"
- + " <tr>"
- + " <td style=\"height: 50px; width: 50px; text-align: center; vertical-align: middle;\">"
- + getImageHTML(image)
- + "</td>"
- + " <td>"
- + text
- + " </td>"
- + " </tr>"
- + " </tbody>"
- + "</table>"
- ;
- }
-
-
-/**
- * Retrieves a list of tweet entries from a given username
- * @param userName The username from where the tweets are read
- * @return An HTML formated string
- */
-public static String getTimeLine(String userName){
- // the file where we cache our results
- File file = new File(folderCache, "twitter.html");
- // shall we provide the cached version instead?
- if(file.exists()){
- long lastModified = file.lastModified();
- // define cache time as 24 hours
- long cacheTime = 24 * 60 * 60 * 1000;
- long rightNow = System.currentTimeMillis();
- // have more than 24 hours passed?
- if(rightNow < (lastModified + cacheTime)){
- long inBetween = rightNow - lastModified;
- // use the cached file instead
- log.write(is.INFO, "Using the cached twitter page from %1 ago",
- utils.time.timeNumberToHumanReadable(inBetween));
- return utils.files.readAsString(file);
- }
- }
-
-
- String result = "";
- Paging pg = new Paging();
- ConfigurationBuilder cb = new ConfigurationBuilder();
- cb.setOAuthConsumerKey("hQzmMsrVRc8mnFrWuz4Fvg");
- cb.setOAuthConsumerSecret("jAbxaE9fiDQ4DjepmlOOspYCTyaKrrEYTB6h4R5dWY");
- cb.setOAuthAccessToken("2238936962-C5W622ue70tUMBwjefRPifhg9U2ReDhhOxC7EcK");
- cb.setOAuthAccessTokenSecret("lec0U1dbH7QRch73H9sxxtXD4JgUsec1iDNF2AHf6to4H");
-
- Twitter twitter = new TwitterFactory(cb.build()).getInstance();
- int numberOfTweets = 10;
- long lastID = Long.MAX_VALUE;
- ArrayList<Status> tweets = new ArrayList<Status>();
- while (tweets.size () < numberOfTweets) {
- try {
- tweets.addAll(twitter.getUserTimeline(userName,pg));
- System.out.println("Gathered " + tweets.size() + " tweets");
- for (Status t: tweets){
- if(t.getId() < lastID){
- lastID = t.getId();
- //System.out.println(t.getText());
- User user = t.getUser();
- if(t.isRetweeted()){
- Status retweetedStatus = t.getRetweetedStatus();
- User curRTUser = retweetedStatus.getUser();
- //long curRTUserID = curRTUser.getId();
- String convertedText =
- textToHtmlConvertingURLsToLinks(
- t.getText()
- );
-
- // needs to contain a link inside
- if(convertedText.contains("<a") == false){
- continue;
- }
-
- result += ""
- + doItem(
- curRTUser.getProfileImageURL(),
- "<b>" + curRTUser.getName() + "</b>"
- + html.br
- + convertedText
- + html.br )
- + "\n";
- }else{
- //result += t.getText() + "\n";
- String convertedText =
- textToHtmlConvertingURLsToLinks(
- t.getText()
- );
- result += ""
- + doItem(
- user.getProfileImageURL(),
- "<b>" + user.getName() + "</b>"
- + html.br
- + convertedText
- + html.br )
- + "\n";
- }
-
-
-
- }
- }
- }
- catch (TwitterException te) {
- System.out.println("Couldn't connect: " + te);
- return null;
- }
- }
- pg.setMaxId(lastID-1);
-
-
- // save the results to disk (ensure faster start within 24 hours)
- utils.files.SaveStringToFile(file, result);
-
- return result;
-}
+//
+// // define where we store all cached files
+// static File folderCache = new File("cache");
+//
+// /**
+// * Downloads a file from the Internet straight onto the local disk
+// * @param url The link to the web file
+// * @param localFilename The file where the contents will be stored
+// * @source on http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java
+// * @author Muhammad Umair - http://stackoverflow.com/users/1749165/muhammad-umair
+// * @retrieved 2013-12-14 by Nuno Brito
+// */
+// static void downloadFromUrl(String link, File localFilename) {
+// InputStream is = null;
+// FileOutputStream fos = null;
+//
+// try {
+// URL url = new URL(link);
+// URLConnection urlConn = url.openConnection();//connect
+//
+// is = urlConn.getInputStream(); //get connection inputstream
+// fos = new FileOutputStream(localFilename); //open outputstream to local file
+//
+// byte[] buffer = new byte[4096]; //declare 4KB buffer
+// int len;
+//
+// //while we have availble data, continue downloading and storing to local file
+// while ((len = is.read(buffer)) > 0) {
+// fos.write(buffer, 0, len);
+// }
+// } catch (IOException ex) {
+// Logger.getLogger(twitter.class.getName()).log(Level.SEVERE, null, ex);
+// } finally {
+// try {
+// if (is != null) {
+// is.close();
+// }
+// } catch (IOException ex) {
+// Logger.getLogger(twitter.class.getName()).log(Level.SEVERE, null, ex);
+// } finally {
+// if (fos != null) {
+// try {
+// fos.close();
+// } catch (IOException ex) {
+// Logger.getLogger(twitter.class.getName()).log(Level.SEVERE, null, ex);
+// }
+// }
+// }
+// }
+//}
+//
+///**
+// * When given an input, replace all http:// references on text with HTML link
+// * representations.
+// *
+// * @param text the plain text containing the links to be converted
+// * @return formatted HTML text, links are now clickable
+// * @source on http://stackoverflow.com/questions/1909534/java-replacing-text-url-with-clickable-html-link
+// * @author Paul Croarkin - http://stackoverflow.com/users/18995/paul-croarkin
+// * @retrieved 2013-12-14 by Nuno Brito
+// */
+//public static String textToHtmlConvertingURLsToLinks(String text) {
+// if (text == null) {
+// return text;
+// }
+// return text.replaceAll("(\\A|\\s)((http|https|ftp|mailto):\\S+)(\\s|\\z)",
+// "$1<a href=\"$2\">$2</a>$4");
+//}
+//
+///**
+// * When given an input, replace all http:// references on text with HTML link
+// * representations.
+// *
+// * @param input the plain text containing the links to be converted
+// * @return formatted HTML text, links are now clickable
+// */
+// public static String replaceTextWithURL(String input){
+// String result = input;
+// String temp = input;
+// while(temp.contains("http://")){
+// // get the beginning of the http tag
+// int i = temp.indexOf("http://");
+// temp = temp.substring(i);
+// // get the first space
+// int end = temp.indexOf(" ");
+// // is the link on the end of text?
+// if(end == -1){
+// end = temp.length();
+// }
+// String url = temp.substring(0, end);
+// // replace the URL with the HTML code
+// result = result.replace(url, "<a href='"+url+"'>"+url+"</a>");
+// // process the rest of the string
+// temp = temp.substring(end);
+// System.out.println(result);
+// }
+// return result;
+// }
+//
+// /**
+// * Provides an HTML formatted link to an image
+// * @param url
+// * @return
+// */
+// static String getImageHTML(String url){
+// String temp = url.toLowerCase();
+// // BMP files are not supported
+// if(temp.endsWith(".bmp")){
+// return "";
+// }
+//
+// // first, we need to cache this image
+// //String data = utils.internet.getTextFile(url);
+// //String data = utils.internet.webget(url);
+//
+// int pos = url.lastIndexOf("/") + 1;
+// String fileName = url.substring(pos);
+// File imageFile = new File(folderCache, fileName);
+//
+// if(imageFile.exists() == false){
+// downloadFromUrl(url,imageFile);
+// }
+//
+//
+// // second round
+// if(imageFile.exists() == false){
+// return "";
+// }
+//
+// // do a web request to support both web browsers and desktop images
+// WebRequest request = new WebRequest();
+// request.BaseFolder = folderCache;
+// request.requestOrigin = RequestOrigin.GUI;
+//
+// return html.getIcon(fileName, request);
+// // return "<img style=\"width: 48px; height: 48px;\" src=\""+url+"\"'>";
+// }
+//
+//
+// static String doItem(String image, String text){
+// return
+// "<table style=\"text-align: left; width: 100%;\" border=\"0\""
+// + "cellpadding=\"2\" cellspacing=\"2\">"
+// + " <tbody>"
+// + " <tr>"
+// + " <td style=\"height: 50px; width: 50px; text-align: center; vertical-align: middle;\">"
+// + getImageHTML(image)
+// + "</td>"
+// + " <td>"
+// + text
+// + " </td>"
+// + " </tr>"
+// + " </tbody>"
+// + "</table>"
+// ;
+// }
+//
+////
+////
+////public static String getTimeLine(String userName){
+//// String result = "";
+////
+//// RSSFeedParser parser = new RSSFeedParser("http://triplecheck.de/feed");
+//// Feed feed = parser.readFeed();
+//// //System.out.println(feed);
+//// for (FeedMessage msg : feed.getMessages()) {
+////
+//// result +=
+//// html.link(msg.getTitle(), msg.getLink())
+//// + html.br
+//// + msg.getDescription()
+//// + html.br
+//// + html.br
+//// ;
+////
+//// System.out.println(msg);
+//// }
+////
+////
+//// return result;
+////}
+//
+//
+//
+///**
+// * Retrieves a list of tweet entries from a given username
+// * @param userName The username from where the tweets are read
+// * @return An HTML formated string
+// */
+//public static String getTimeLineOld(String userName){
+// // the file where we cache our results
+// File file = new File(folderCache, "twitter.html");
+// // shall we provide the cached version instead?
+// if(file.exists()){
+// long lastModified = file.lastModified();
+// // define cache time as 24 hours
+// long cacheTime = 24 * 60 * 60 * 1000;
+// long rightNow = System.currentTimeMillis();
+// // have more than 24 hours passed?
+// if(rightNow < (lastModified + cacheTime)){
+// long inBetween = rightNow - lastModified;
+// // use the cached file instead
+// log.write(is.INFO, "Using the cached twitter page from %1 ago",
+// utils.time.timeNumberToHumanReadable(inBetween));
+// return utils.files.readAsString(file);
+// }
+// }
+//
+//
+// String result = "";
+// Paging pg = new Paging();
+// ConfigurationBuilder cb = new ConfigurationBuilder();
+// cb.setOAuthConsumerKey("hQzmMsrVRc8mnFrWuz4Fvg");
+// cb.setOAuthConsumerSecret("jAbxaE9fiDQ4DjepmlOOspYCTyaKrrEYTB6h4R5dWY");
+// cb.setOAuthAccessToken("2238936962-C5W622ue70tUMBwjefRPifhg9U2ReDhhOxC7EcK");
+// cb.setOAuthAccessTokenSecret("lec0U1dbH7QRch73H9sxxtXD4JgUsec1iDNF2AHf6to4H");
+//
+// Twitter twitter = new TwitterFactory(cb.build()).getInstance();
+// int numberOfTweets = 10;
+// long lastID = Long.MAX_VALUE;
+// ArrayList<Status> tweets = new ArrayList<Status>();
+// while (tweets.size () < numberOfTweets) {
+// try {
+// tweets.addAll(twitter.getUserTimeline(userName,pg));
+// System.out.println("Gathered " + tweets.size() + " tweets");
+// for (Status t: tweets){
+// if(t.getId() < lastID){
+// lastID = t.getId();
+// //System.out.println(t.getText());
+// User user = t.getUser();
+// if(t.isRetweeted()){
+// Status retweetedStatus = t.getRetweetedStatus();
+// User curRTUser = retweetedStatus.getUser();
+// //long curRTUserID = curRTUser.getId();
+// String convertedText =
+// textToHtmlConvertingURLsToLinks(
+// t.getText()
+// );
+//
+// // needs to contain a link inside
+// if(convertedText.contains("<a") == false){
+// continue;
+// }
+//
+// result += ""
+// + doItem(
+// curRTUser.getProfileImageURL(),
+// "<b>" + curRTUser.getName() + "</b>"
+// + html.br
+// + convertedText
+// + html.br )
+// + "\n";
+// }else{
+// //result += t.getText() + "\n";
+// String convertedText =
+// textToHtmlConvertingURLsToLinks(
+// t.getText()
+// );
+// result += ""
+// + doItem(
+// user.getProfileImageURL(),
+// "<b>" + user.getName() + "</b>"
+// + html.br
+// + convertedText
+// + html.br )
+// + "\n";
+// }
+//
+//
+//
+// }
+// }
+// }
+// catch (TwitterException te) {
+// System.out.println("Couldn't connect: " + te);
+// return null;
+// }
+// }
+// pg.setMaxId(lastID-1);
+//
+//
+// // save the results to disk (ensure faster start within 24 hours)
+// utils.files.SaveStringToFile(file, result);
+//
+// return result;
+//}
}