import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.URL;
import org.jsoup.Connection;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class Core
{
private static String IMAGE_DESTINATION_FOLDER
= ;
public static class pathFile { public pathFile() {}
public static void mainWrite
() { try { File file
= new File("path.txt"); file.createNewFile();
if ((Core.Bundle.getPath() != null) && (Core.Bundle.getPath() != "")) {
bw.write(Core.Bundle.getPath());
bw.flush();
bw.close();
reading.setRead(Core.Bundle.getPath());
}
System.
out.
println(file.
createNewFile()); e.printStackTrace();
}
}
public static void mainRead() {
try {
file.createNewFile();
String read
; if ((read
= br.
readLine()) != null) { Core.Bundle.setPath(read);
Interface.t1.setText(read);
}
br.close();
e.printStackTrace(); } }
public static class reading
{ public static String read
;
public reading() {}
public static String getRead
() { Core.
pathFile.
mainWrite(); return read;
}
public static void setRead
(String reads
) { read
= reads
; } } }
public Core() {}
public static class Bundle
{ public static String path1
;
public Bundle() {}
public static String getPath
() { return path1
; }
public static void setPath
(String path
) { path1 = path;
}
public static String getSPath
() { return spath
; }
public static void setSPath
(String spath1
) { spath = spath1;
}
public static boolean getPage() { return page; }
public static void setPage(boolean spage) { page = spage; }
strURL = getPage() ? imageElement.attr("abs:href") : imageElement.attr("abs:src");
return strURL; }
public static boolean page; }
public static void makeFolder
(String lines,
int i
) { String path
= lines.
substring(lines.
lastIndexOf("/") + 1); String[] pathf
= path.
split(".html"); Bundle.setSPath(spath);
File theDir
= new File(Bundle.
getPath() + "/" + spath
); if (!theDir.exists()) {
System.
out.
println("creating directory: " + theDir.
getName()); boolean result = false;
try {
theDir.mkdir();
result = true;
}
if (result)
System.
out.
println("DIR created"); }
}
System.
setProperty("http.agent",
"Mozilla/5.0"); Document document
= org.
jsoup.
Jsoup.
connect(strURL
).
timeout(100000).
get(); org.jsoup.select.Elements imageElements = null;
if (Bundle.getPage() == true) {
imageElements = document.select("a[href$=.gif], a[href$=.jpg], a[href$=.png], a[href$=.bmp], a[href$=.webm]");
} else if (!Bundle.getPage()) {
imageElements = document.select("img");
}
for (Element imageElement
: imageElements
) { String strImageURL
= Bundle.
getStrURL(imageElement
); downloadImage(strImageURL);
}
}
private static void downloadImage
(String strImageURL
) { String strImageName
= strImageURL.
substring(strImageURL.
lastIndexOf("/") + 1); System.
out.
println("Saving: " + strImageName
+ ", from: " + strImageURL
); try {
URL urlImage
= new URL(strImageURL
); byte[] buffer = new byte['က'];
int n = -1;
while ((n = in.read(buffer)) != -1) {
os.write(buffer, 0, n);
}
os.close();
System.
out.
println("Image saved"); e.printStackTrace();
}
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyOwppbXBvcnQgamF2YS5pby5GaWxlOwppbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyOwppbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CmltcG9ydCBqYXZhLm5ldC5VUkw7CmltcG9ydCBvcmcuanNvdXAuQ29ubmVjdGlvbjsKaW1wb3J0IG9yZy5qc291cC5ub2Rlcy5Eb2N1bWVudDsKaW1wb3J0IG9yZy5qc291cC5ub2Rlcy5FbGVtZW50OwoKcHVibGljIGNsYXNzIENvcmUKewogIHByaXZhdGUgc3RhdGljIFN0cmluZyBJTUFHRV9ERVNUSU5BVElPTl9GT0xERVIgPSA7CiAgCiAgcHVibGljIHN0YXRpYyBjbGFzcyBwYXRoRmlsZSB7IHB1YmxpYyBwYXRoRmlsZSgpIHt9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluV3JpdGUoKSB7IHRyeSB7IEZpbGUgZmlsZSA9IG5ldyBGaWxlKCJwYXRoLnR4dCIpOwogICAgICAgIGZpbGUuY3JlYXRlTmV3RmlsZSgpOwogICAgICAgIEZpbGVXcml0ZXIgZncgPSBuZXcgRmlsZVdyaXRlcihmaWxlKTsKICAgICAgICBCdWZmZXJlZFdyaXRlciBidyA9IG5ldyBCdWZmZXJlZFdyaXRlcihmdyk7CiAgICAgICAgaWYgKChDb3JlLkJ1bmRsZS5nZXRQYXRoKCkgIT0gbnVsbCkgJiYgKENvcmUuQnVuZGxlLmdldFBhdGgoKSAhPSAiIikpIHsKICAgICAgICAgIGJ3LndyaXRlKENvcmUuQnVuZGxlLmdldFBhdGgoKSk7CiAgICAgICAgICBidy5mbHVzaCgpOwogICAgICAgICAgYncuY2xvc2UoKTsKICAgICAgICAgIHJlYWRpbmcuc2V0UmVhZChDb3JlLkJ1bmRsZS5nZXRQYXRoKCkpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZmlsZS5jcmVhdGVOZXdGaWxlKCkpOwogICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CiAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpblJlYWQoKSB7CiAgICAgIHRyeSB7CiAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoInBhdGgudHh0Iik7CiAgICAgICAgZmlsZS5jcmVhdGVOZXdGaWxlKCk7CiAgICAgICAgamF2YS5pby5GaWxlUmVhZGVyIGZyID0gbmV3IGphdmEuaW8uRmlsZVJlYWRlcihmaWxlKTsKICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihmcik7CiAgICAgICAgU3RyaW5nIHJlYWQ7IGlmICgocmVhZCA9IGJyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKICAgICAgICAgIENvcmUuQnVuZGxlLnNldFBhdGgocmVhZCk7CiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVhZCk7CiAgICAgICAgICBJbnRlcmZhY2UudDEuc2V0VGV4dChyZWFkKTsKICAgICAgICB9CiAgICAgICAgYnIuY2xvc2UoKTsKICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7IH0gfQogICAgCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIHJlYWRpbmcgeyBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkOwogICAgICAKICAgICAgcHVibGljIHJlYWRpbmcoKSB7fQogICAgICAKICAgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0UmVhZCgpIHsgQ29yZS5wYXRoRmlsZS5tYWluV3JpdGUoKTsKICAgICAgICByZXR1cm4gcmVhZDsKICAgICAgfQogICAgICAKICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFJlYWQoU3RyaW5nIHJlYWRzKSB7IHJlYWQgPSByZWFkczsgfQogICAgfSB9CiAgCiAgcHVibGljIENvcmUoKSB7fQogIAogIHB1YmxpYyBzdGF0aWMgY2xhc3MgQnVuZGxlIHsgcHVibGljIHN0YXRpYyBTdHJpbmcgcGF0aDE7CiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBzcGF0aDsKICAgIAogICAgcHVibGljIEJ1bmRsZSgpIHt9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFBhdGgoKSB7IHJldHVybiBwYXRoMTsgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0UGF0aChTdHJpbmcgcGF0aCkgewogICAgICBwYXRoMSA9IHBhdGg7CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFNQYXRoKCkgeyByZXR1cm4gc3BhdGg7IH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFNQYXRoKFN0cmluZyBzcGF0aDEpIHsKICAgICAgc3BhdGggPSBzcGF0aDE7CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBnZXRQYWdlKCkgeyByZXR1cm4gcGFnZTsgfQogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc3RyVVJMOwogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0UGFnZShib29sZWFuIHNwYWdlKSB7IHBhZ2UgPSBzcGFnZTsgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdHJVUkwoRWxlbWVudCBpbWFnZUVsZW1lbnQpIHsKICAgICAgc3RyVVJMID0gZ2V0UGFnZSgpID8gaW1hZ2VFbGVtZW50LmF0dHIoImFiczpocmVmIikgOiBpbWFnZUVsZW1lbnQuYXR0cigiYWJzOnNyYyIpOwogICAgICByZXR1cm4gc3RyVVJMOyB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBwYWdlOyB9CiAgCiAgcHVibGljIHN0YXRpYyB2b2lkIG1ha2VGb2xkZXIoU3RyaW5nIGxpbmVzLCBpbnQgaSkgeyBTdHJpbmcgcGF0aCA9IGxpbmVzLnN1YnN0cmluZyhsaW5lcy5sYXN0SW5kZXhPZigiLyIpICsgMSk7CiAgICBTdHJpbmdbXSBwYXRoZiA9IHBhdGguc3BsaXQoIi5odG1sIik7CiAgICBTdHJpbmcgc3BhdGggPSBwYXRoZlswXTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMSIpOwogICAgQnVuZGxlLnNldFNQYXRoKHNwYXRoKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMiIpOwogICAgRmlsZSB0aGVEaXIgPSBuZXcgRmlsZShCdW5kbGUuZ2V0UGF0aCgpICsgIi8iICsgc3BhdGgpOwogICAgU3lzdGVtLm91dC5wcmludGxuKCIzIik7CiAgICBpZiAoIXRoZURpci5leGlzdHMoKSkgewogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNyZWF0aW5nIGRpcmVjdG9yeTogIiArIHRoZURpci5nZXROYW1lKCkpOwogICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOwogICAgICB0cnkgewogICAgICAgIHRoZURpci5ta2RpcigpOwogICAgICAgIHJlc3VsdCA9IHRydWU7CiAgICAgIH0KICAgICAgY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGxvY2FsU2VjdXJpdHlFeGNlcHRpb24pIHt9CiAgICAgIGlmIChyZXN1bHQpCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJESVIgY3JlYXRlZCIpOwogICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpblNvdXAoU3RyaW5nIHN0clVSTCkgdGhyb3dzIElPRXhjZXB0aW9uLCBJbnRlcnJ1cHRlZEV4Y2VwdGlvbiB7CiAgICBTeXN0ZW0uc2V0UHJvcGVydHkoImh0dHAuYWdlbnQiLCAiTW96aWxsYS81LjAiKTsKICAgIERvY3VtZW50IGRvY3VtZW50ID0gb3JnLmpzb3VwLkpzb3VwLmNvbm5lY3Qoc3RyVVJMKS50aW1lb3V0KDEwMDAwMCkuZ2V0KCk7CiAgICBvcmcuanNvdXAuc2VsZWN0LkVsZW1lbnRzIGltYWdlRWxlbWVudHMgPSBudWxsOwogICAgaWYgKEJ1bmRsZS5nZXRQYWdlKCkgPT0gdHJ1ZSkgewogICAgICBpbWFnZUVsZW1lbnRzID0gZG9jdW1lbnQuc2VsZWN0KCJhW2hyZWYkPS5naWZdLCBhW2hyZWYkPS5qcGddLCBhW2hyZWYkPS5wbmddLCBhW2hyZWYkPS5ibXBdLCBhW2hyZWYkPS53ZWJtXSIpOwogICAgfSBlbHNlIGlmICghQnVuZGxlLmdldFBhZ2UoKSkgewogICAgICBpbWFnZUVsZW1lbnRzID0gZG9jdW1lbnQuc2VsZWN0KCJpbWciKTsKICAgIH0KICAgIGZvciAoRWxlbWVudCBpbWFnZUVsZW1lbnQgOiBpbWFnZUVsZW1lbnRzKSB7CiAgICAgIFN0cmluZyBzdHJJbWFnZVVSTCA9IEJ1bmRsZS5nZXRTdHJVUkwoaW1hZ2VFbGVtZW50KTsKICAgICAgZG93bmxvYWRJbWFnZShzdHJJbWFnZVVSTCk7CiAgICB9CiAgfQogIAogIHByaXZhdGUgc3RhdGljIHZvaWQgZG93bmxvYWRJbWFnZShTdHJpbmcgc3RySW1hZ2VVUkwpIHsgU3RyaW5nIHN0ckltYWdlTmFtZSA9IHN0ckltYWdlVVJMLnN1YnN0cmluZyhzdHJJbWFnZVVSTC5sYXN0SW5kZXhPZigiLyIpICsgMSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNhdmluZzogIiArIHN0ckltYWdlTmFtZSArICIsIGZyb206ICIgKyBzdHJJbWFnZVVSTCk7CiAgICB0cnkgewogICAgICBVUkwgdXJsSW1hZ2UgPSBuZXcgVVJMKHN0ckltYWdlVVJMKTsKICAgICAgSW5wdXRTdHJlYW0gaW4gPSB1cmxJbWFnZS5vcGVuU3RyZWFtKCk7CiAgICAgIGJ5dGVbXSBidWZmZXIgPSBuZXcgYnl0ZVsn4YCAJ107CiAgICAgIGludCBuID0gLTE7CiAgICAgIE91dHB1dFN0cmVhbSBvcyA9IG5ldyBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW0oSU1BR0VfREVTVElOQVRJT05fRk9MREVSICsgIi8iICsgQnVuZGxlLmdldFNQYXRoKCkgKyAiLyIgKyBzdHJJbWFnZU5hbWUpOwogICAgICB3aGlsZSAoKG4gPSBpbi5yZWFkKGJ1ZmZlcikpICE9IC0xKSB7CiAgICAgICAgb3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKICAgICAgfQogICAgICBvcy5jbG9zZSgpOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkltYWdlIHNhdmVkIik7CiAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CiAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICB9CiAgfQp9