/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package neembuu.uploader.test.plugins;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
/**
*
* @author dinesh
*/
public class BoxUploaderPlugin {
private static URL u;
private static HttpURLConnection uc;
private static BufferedReader br;
private static String ticket;
private static String zcookie, visitorcookie;
private static String request_token;
private static String loginresponse = "";
private static String auth_token;
private static String downloadlink;
public static void main(String[] args) throws Exception {
//https://www.box.net/api/1.0/rest?action=get_ticket&api_key=vkf3k5dh0tg1ibvcikjcp8sx0f89d14u
u = new URL("https://www.box.net/api/1.0/rest?action=get_ticket&api_key=vkf3k5dh0tg1ibvcikjcp8sx0f89d14u");
uc = (HttpURLConnection) u.openConnection();
br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String k = "", tmp;
while ((tmp = br.readLine()) != null) {
k += tmp;
}
ticket = parseResponse(k, "<ticket>", "</ticket>");
System.out.println("Token : " + ticket);
uc.disconnect();
u = new URL("https://www.box.net/api/1.0/auth/" + ticket);
uc = (HttpURLConnection) u.openConnection();
br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
tmp = "";
k = "";
while ((tmp = br.readLine()) != null) {
// System.out.println(k);
k += tmp;
}
request_token = parseResponse(k, "request_token = '", "'");
System.out.println("Request token : " + request_token);
Map<String, List<String>> headerFields = uc.getHeaderFields();
if (headerFields.containsKey("Set-Cookie")) {
List<String> header = headerFields.get("Set-Cookie");
for (int i = 0; i < header.size(); i++) {
String t = header.get(i);
if (t.contains("z=")) {
zcookie = t;
zcookie = zcookie.substring(0, zcookie.indexOf(";"));
}
if (t.contains("box_visitor_id=")) {
visitorcookie = t;
visitorcookie = visitorcookie.substring(0, visitorcookie.indexOf(";"));
}
}
System.out.println("zcookie : " + zcookie);
System.out.println("visitorcookie : " + visitorcookie);
}
uc.disconnect();
loginBox();
getUserInfo();
uc.disconnect();
fileUpload();
//https://www.box.net/api/1.0/rest?action=get_auth_token&api_key=vkf3k5dh0tg1ibvcikjcp8sx0f89d14u&ticket=udd863k39gn9mioc6ym2c6erbqm8qfsh
}
public static String parseResponse(String response, String stringStart, String stringEnd) {
response = response.substring(response.indexOf(stringStart));
response = response.replace(stringStart, "");
response = response.substring(0, response.indexOf(stringEnd));
return response;
}
public static void loginBox() throws Exception {
HttpParams params = new BasicHttpParams();
params.setParameter(
"http.useragent",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6");
DefaultHttpClient httpclient = new DefaultHttpClient(params);
//https://www.box.net/api/1.0/auth/jtear5a2djtfxs9598apynmea62vko5d
System.out.println("Trying to log in to box.com");
HttpPost httppost = new HttpPost("https://www.box.net/api/1.0/auth/" + ticket);
httppost.setHeader("Cookie", zcookie + ";" + visitorcookie);
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
// formparams.add(new BasicNameValuePair("action", "login"));
formparams.add(new BasicNameValuePair("login", "din_ram2007@yahoo.co.in"));
formparams.add(new BasicNameValuePair("password", ""));
formparams.add(new BasicNameValuePair("__login", "1"));
formparams.add(new BasicNameValuePair("dologin", "1"));
formparams.add(new BasicNameValuePair("reg_step", ""));
formparams.add(new BasicNameValuePair("submit1", "1"));
formparams.add(new BasicNameValuePair("folder", ""));
formparams.add(new BasicNameValuePair("skip_framework_login", "1"));
formparams.add(new BasicNameValuePair("login_or_register_mode", "login"));
formparams.add(new BasicNameValuePair("new_login_or_register_mode", ""));
formparams.add(new BasicNameValuePair("request_token", request_token));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
httppost.setEntity(entity);
HttpResponse httpresponse = httpclient.execute(httppost);
System.out.println("Gonna print the response");
loginresponse = EntityUtils.toString(httpresponse.getEntity());
if (loginresponse.contains("Invalid username or password")) {
System.out.println("DropBox login failed");
} else {
System.out.println("DropbBox login successful :)");
}
}
private static void getUserInfo() throws Exception {
//https://www.box.net/api/1.0/rest?action=get_auth_token&api_key=vkf3k5dh0tg1ibvcikjcp8sx0f89d14u&ticket=
//https://www.box.net/api/1.0/rest?action=get_auth_token&api_key=vkf3k5dh0tg1ibvcikjcp8sx0f89d14u&ticket=xybt9orxzo1xrr5vk4r0axne804y1tpk
u = new URL("https://www.box.net/api/1.0/rest?action=get_auth_token&api_key=vkf3k5dh0tg1ibvcikjcp8sx0f89d14u&ticket=" + ticket);
uc = (HttpURLConnection) u.openConnection();
br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String k = "", tmp;
while ((tmp = br.readLine()) != null) {
k += tmp;
System.out.println(k);
}
auth_token = parseResponse(k, "<auth_token>", "</auth_token>");
System.out.println("Auth_token : " + auth_token);
uc.disconnect();
}
public static void fileUpload() throws Exception {
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
//https://upload.box.net/api/1.0/upload/<auth token>/<folder id>
//nid1qr129kzte5gx1x47sypfj4exuo8d
HttpPost post = new HttpPost("https://upload.box.net/api/1.0/upload/nid1qr129kzte5gx1x47sypfj4exuo8d/0");
// HttpPost post = new HttpPost("https://upload.box.net/api/1.0/upload/" + auth_token + "/0");
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
// For File parameters
entity.addPart("file", new FileBody(new File("C:\\Documents and Settings\\dinesh\\Desktop\\GrUploaderPlugin.java")));
entity.addPart("share", new StringBody("1"));
// For usual String parameters
post.setEntity(entity);
System.out.println("Executing ......" + post.getRequestLine());
// Here we go!
System.out.println("Now uploading your files into box.com");
String response = EntityUtils.toString(client.execute(post).getEntity(), "UTF-8");
System.out.println("res : " + response);
client.getConnectionManager().shutdown();
if (response.contains("upload_ok") && !response.contains("error")) {
downloadlink = parseResponse(response, "public_name=\"", "\"");
downloadlink = "http://www.box.com/s/" + downloadlink;
System.out.println("Download Link : " + downloadlink);
} else {
throw new Exception("There might be a problem with your internet connection or server error. Please try again later :(");
}
}
}