package com.dwdesign.tweetings.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.w3c.dom.Document;
import com.dwdesign.tweetings.Constants;
import com.dwdesign.tweetings.HttpClientFactory;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;
public class TwitlongerAsyncTask implements Constants {
private final Context mContext;
private final String mUrl;
public TwitlongerAsyncTask(final Context context, final String url) {
super();
this.mContext = context;
this.mUrl = url;
this.doExpand(mUrl);
}
protected void doExpand(final String url) {
final String finalUrl = "http://www.twitlonger.com/api_read/" + url.replace("http://tl.gd/", "");
Thread thread = new Thread() {
public void run() {
try {
HttpClient httpclient = HttpClientFactory.getThreadSafeClient();
HttpResponse response = httpclient.execute(new HttpGet(finalUrl));
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(response.getEntity().getContent());
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr, expr2;
expr = xpath.compile("//twitlonger/post/content/text()");
expr2 = xpath.compile("//twitlonger/post/user/text()");
Object result = expr.evaluate(doc, XPathConstants.STRING);
Object result2 = expr2.evaluate(doc, XPathConstants.STRING);
final Intent intent = new Intent(BROADCAST_TWITLONGER_EXPANDED);
intent.putExtra(INTENT_KEY_TWITLONGER_EXPANDED_TEXT, result.toString());
intent.putExtra(INTENT_KEY_TWITLONGER_ORIGINAL_URL, url);
intent.putExtra(INTENT_KEY_TWITLONGER_USER, result2.toString());
mContext.sendBroadcast(intent);
}
catch (Exception e) {
}
}
};
thread.start();
}
}