public JDSimpleWebserver() { SubConfiguration subConfig = SubConfiguration.getConfig("WEBINTERFACE"); Boolean https = subConfig.getBooleanProperty(JDWebinterface.PROPERTY_HTTPS, false); AuthUser = "******" + Encoding.Base64Encode( subConfig.getStringProperty(JDWebinterface.PROPERTY_USER, "JD") + ":" + subConfig.getStringProperty(JDWebinterface.PROPERTY_PASS, "JD")); NeedAuth = subConfig.getBooleanProperty(JDWebinterface.PROPERTY_LOGIN, true); boolean localhostonly = subConfig.getBooleanProperty(JDWebinterface.PROPERTY_LOCALHOST_ONLY, false); int port = subConfig.getIntegerProperty(JDWebinterface.PROPERTY_PORT, 8765); try { if (!https) { if (localhostonly) { Server_Socket = new ServerSocket(port, -1, HttpServer.getLocalHost()); } else { Server_Socket = new ServerSocket(port); } } else { try { ServerSocketFactory ssocketFactory = setupSSL(); if (localhostonly) { Server_Socket = ssocketFactory.createServerSocket(port, -1, HttpServer.getLocalHost()); } else { Server_Socket = ssocketFactory.createServerSocket(port); } } catch (Exception e) { logger.severe("WebInterface: Server failed to start (SSL Setup Failed)!"); return; } } logger.info("Webinterface: Server started"); start(); } catch (IOException e) { logger.severe("WebInterface: Server failed to start!"); } }
@Override public void handlePremium(DownloadLink downloadLink, Account account) throws Exception { setBrowserExclusive(); workAroundTimeOut(br); showDialog = false; br.setDebug(true); String user = Encoding.urlEncode(account.getUser()); String pw = Encoding.urlEncode(account.getPass()); String link = downloadLink.getDownloadURL(); if (link.contains("getFiles.aspx")) { showMessage(downloadLink, "Downloading file"); user = account.getUser(); pw = account.getPass(); String basicauth = "Basic " + Encoding.Base64Encode(user + ":" + pw); br.getHeaders().put("Authorization", basicauth); br.setFollowRedirects(true); dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, link, true, 0); } else { showMessage(downloadLink, "Phase 1/2: Get FileID"); String FileID = Zevera.getID(link); if (FileID == null) { throw new PluginException( LinkStatus.ERROR_FILE_NOT_FOUND, "Error adding file, FileID null"); } while (true) { showMessage(downloadLink, "Phase 2/3: Check download:"); br.getPage( "http://www.zevera.com/jDownloader.ashx?cmd=fileinfo&login="******"&pass="******"&FileID=" + FileID); String infos[] = br.getRegex("(.*?)(,|$)").getColumn(0); if (infos[0].contains("FileID:0")) { throw new PluginException( LinkStatus.ERROR_FILE_NOT_FOUND, "Error adding file, FileID doesnt exist"); } if (infos[6].contains("Status:Downloaded")) { String DownloadURL = br.getRegex("DownloadURL:(Http.*?),").getMatch(0); if (DownloadURL == null) { throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE); } showMessage(downloadLink, "Phase 3/3: OK Download starting"); dl = jd.plugins.BrowserAdapter.openDownload(br, downloadLink, DownloadURL, true, 0); break; } else { this.sleep(15 * 1000l, downloadLink, "Waiting for download to finish on Zevera"); } } } if (dl.getConnection().isContentDisposition()) { long filesize = dl.getConnection().getLongContentLength(); if (filesize == 0) { throw new PluginException( LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, "ServerError", 10 * 60 * 1000l); } dl.startDownload(); } else { br.followConnection(); throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE); } }