/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package neembuu.uploader.accounts; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import neembuu.uploader.translation.Translation; import neembuu.uploader.interfaces.abstractimpl.AbstractAccount; import neembuu.uploader.uploaders.common.CommonUploaderTasks; import neembuu.uploader.uploaders.common.StringUtils; import neembuu.uploader.utils.NULogger; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpParams; import org.apache.http.util.EntityUtils; /** * * @author dinesh */ public class IFileAccount extends AbstractAccount { public static final String KEY_API_KEY = "ifile_api_key"; private String loginresponse; private static String apikey; public IFileAccount() { KEY_USERNAME = "ifusername"; KEY_PASSWORD = "ifpassword"; HOSTNAME = "IFile.it"; } public static String getApikey() { return apikey; } @Override public void disableLogin() { properties().setEncryptedProperty(KEY_API_KEY, ""); loginsuccessful = false; //These code are necessary for account only sites. hostsAccountUI().hostUI(HOSTNAME).setEnabled(false); hostsAccountUI().hostUI(HOSTNAME).setSelected(false); updateSelectedHostsLabel(); NULogger.getLogger().log(Level.INFO, "{0} account disabled", getHOSTNAME()); } @Override public void login() { if (!username.isEmpty()) { if (username.equals(getUsername()) && password.equals(getPassword())) { return; } else { loginsuccessful = false; properties().setEncryptedProperty(KEY_API_KEY, ""); } } if (!properties().getEncryptedProperty(KEY_API_KEY).isEmpty()) { hostsAccountUI().hostUI(HOSTNAME).setEnabled(true); loginsuccessful = true; username = getUsername(); password = getPassword(); return; } try { loginsuccessful = false; 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); NULogger.getLogger().info("Trying to log in to ifile.it"); HttpPost httppost = new HttpPost("https://secure.ifile.it/api-fetch_apikey.api"); List<NameValuePair> formparams = new ArrayList<NameValuePair>(); formparams.add(new BasicNameValuePair("username", getUsername())); formparams.add(new BasicNameValuePair("password", getPassword())); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8"); httppost.setEntity(entity); HttpResponse httpresponse = httpclient.execute(httppost); loginresponse = EntityUtils.toString(httpresponse.getEntity()); NULogger.getLogger().log(Level.INFO, "response : {0}", loginresponse); httpclient.getConnectionManager().shutdown(); if (loginresponse.contains("akey")) { apikey = StringUtils.stringBetweenTwoStrings(loginresponse, "akey\":\"", "\""); NULogger.getLogger().info("IFile Login sccuess :)"); NULogger.getLogger().log(Level.INFO, "API key : {0}", apikey); loginsuccessful = true; hostsAccountUI().hostUI(HOSTNAME).setEnabled(true); username = getUsername(); password = getPassword(); NULogger.getLogger().info("IFile Login success :)"); properties().setEncryptedProperty(KEY_API_KEY, apikey); } else { properties().setEncryptedProperty(KEY_API_KEY, ""); NULogger.getLogger().info("IFile Login failed :("); loginsuccessful = false; username = ""; password = ""; showWarningMessage( Translation.T().loginerror(), HOSTNAME); accountUIShow().setVisible(true); } } catch (Exception e) { NULogger.getLogger().log(Level.SEVERE, "{0}: Error in IFile Login", getClass().getName()); } } }