/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package neembuu.uploader.uploaders;
import shashaank.smallmodule.SmallModule;
import neembuu.uploader.interfaces.Uploader;
import java.util.logging.Level;
import java.util.logging.Logger;
import neembuu.uploader.exceptions.NUException;
import neembuu.uploader.exceptions.uploaders.NUMaxFileSizeException;
import neembuu.uploader.httpclient.NUHttpClient;
import neembuu.uploader.httpclient.httprequest.NUHttpGet;
import neembuu.uploader.httpclient.httprequest.NUHttpPost;
import neembuu.uploader.interfaces.UploadStatus;
import neembuu.uploader.interfaces.abstractimpl.AbstractUploader;
import neembuu.uploader.utils.NULogger;
import org.apache.http.HttpResponse;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
/**
*
* @author vigneshwaran
*/
@SmallModule(
exports={UploadMB.class},
interfaces={Uploader.class},
name="UploadMB.com"
)
public class UploadMB extends AbstractUploader {
private HttpClient httpclient = NUHttpClient.getHttpClient();
private HttpContext httpContext = new BasicHttpContext();
private HttpResponse httpResponse;
private NUHttpPost httpPost;
private NUHttpGet httpGet;
private CookieStore cookieStore;
String start = "<input type=\"text\" name='dwlink' size=\"80\" value=\"";
private long fileSizeLimit = 104857600l; //100 MB
public UploadMB() {
host = "UploadMB.com";
downURL = UploadStatus.PLEASEWAIT.getLocaleSpecificString();
delURL = UploadStatus.NA.getLocaleSpecificString();
}
@Override
public void run() {
try {
if (file.length() > fileSizeLimit) {
throw new NUMaxFileSizeException(fileSizeLimit, file.getName(), getHost());
}
uploadInitialising();
cookieStore = new BasicCookieStore();
httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
httpGet = new NUHttpGet("http://www.filecargo.com");
//httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTBDFff GTB7.0");
httpResponse = httpclient.execute(httpGet, httpContext);
EntityUtils.consume(httpResponse.getEntity());
//------------------------------------------------------------
httpPost = new NUHttpPost("http://www.filecargo.com/index.php");
//httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTBDFff GTB7.0");
MultipartEntity requestEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
requestEntity.addPart("MAX_FILE_SIZE", new StringBody(Long.toString(fileSizeLimit)));
requestEntity.addPart("gfile", createMonitoredFileBody());
httpPost.setEntity(requestEntity);
//-------------------------------------------------------------
uploading();
//-------------------------------------------------------------
httpResponse = httpclient.execute(httpPost, httpContext);
String strResponse = EntityUtils.toString(httpResponse.getEntity());
//-------------------------------------------------------------
gettingLink();
downURL = strResponse.substring(strResponse.indexOf(start) + start.length());
downURL = downURL.substring(0, downURL.indexOf("&"));
//-------------------------------------------------------------
NULogger.getLogger().info(downURL);
uploadFinished();
} catch(NUException ex){
ex.printError();
uploadInvalid();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, "UploadMB exception: {0}", ex);
uploadFailed();
}
}
}