Skip to content

Commit 9262809

Browse files
author
updating-bot
committed
mirroring bot - 2024/10/29
1 parent 92381d8 commit 9262809

16 files changed

+852
-305
lines changed

svn_trunk/src/jd/plugins/decrypter/EHentaiOrgCrawler.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
import jd.plugins.PluginForDecrypt;
5151
import jd.plugins.hoster.EHentaiOrg;
5252

53-
@DecrypterPlugin(revision = "$Revision: 49021 $", interfaceVersion = 3, names = { "e-hentai.org" }, urls = { "https?://(?:[a-z0-9\\-]+\\.)?(?:e-hentai\\.org|exhentai\\.org)/(g|mpv)/(\\d+)/([a-z0-9]+).*" })
53+
@DecrypterPlugin(revision = "$Revision: 50037 $", interfaceVersion = 3, names = { "e-hentai.org" }, urls = { "https?://(?:[a-z0-9\\-]+\\.)?(?:e-hentai\\.org|exhentai\\.org)/(g|mpv)/(\\d+)/([a-z0-9]+).*" })
5454
public class EHentaiOrgCrawler extends PluginForDecrypt {
5555
public EHentaiOrgCrawler(PluginWrapper wrapper) {
5656
super(wrapper);
@@ -96,7 +96,11 @@ public ArrayList<DownloadLink> decryptIt(final CryptedLink param, ProgressContro
9696
br.getPage(contenturl);
9797
if (EHentaiOrg.isOffline(br)) {
9898
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
99-
} else if (br.containsHTML("Key missing, or incorrect key provided") || br.containsHTML("class=\"d\"") || br.toString().matches("Your IP address has been temporarily banned for excessive pageloads.+")) {
99+
} else if (br.containsHTML("Key missing, or incorrect key provided")) {
100+
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
101+
} else if (br.containsHTML("class=\"d\"")) {
102+
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
103+
} else if (br.toString().matches("Your IP address has been temporarily banned for excessive pageloads.+")) {
100104
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
101105
} else if (br.getRequest().getHttpConnection().getCompleteContentLength() == 0) {
102106
/* 2020-11-10: Rare case */
@@ -247,7 +251,7 @@ public ArrayList<DownloadLink> decryptIt(final CryptedLink param, ProgressContro
247251
logger.info("Stopping because: mpv URLs have all objects on the first page");
248252
break;
249253
} else {
250-
final String[][] links = br.getRegex("\"(https?://(?:(?:g\\.)?e-hentai|exhentai)\\.org/s/[a-z0-9]+/" + galleryid + "-\\d+)\">\\s*<img[^<>]*title\\s*=\\s*\"(.*?)\"[^<>]*src\\s*=\\s*\"(.*?)\"").getMatches();
254+
final String[][] links = br.getRegex("\"(https?://(?:e-hentai|exhentai)\\.org/s/[a-z0-9]+/" + galleryid + "-\\d+)\">\\s*<(?:div|img)[^<]*title\\s*=\\s*\"([^\"]+)").getMatches();
251255
if (links == null || links.length == 0 || title == null) {
252256
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
253257
}

svn_trunk/src/jd/plugins/decrypter/FaceBookComGallery.java

Lines changed: 163 additions & 68 deletions
Large diffs are not rendered by default.

svn_trunk/src/jd/plugins/decrypter/FilesFmFolder.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
import jd.plugins.DecrypterRetryException;
3131
import jd.plugins.DecrypterRetryException.RetryReason;
3232
import jd.plugins.DownloadLink;
33+
import jd.plugins.FilePackage;
3334
import jd.plugins.LinkStatus;
3435
import jd.plugins.PluginException;
3536
import jd.plugins.PluginForDecrypt;
3637
import jd.plugins.PluginForHost;
3738

38-
@DecrypterPlugin(revision = "$Revision: 50034 $", interfaceVersion = 3, names = { "files.fm" }, urls = { "https?://(?:\\w+\\.)?files\\.fm/u/[a-z0-9]+" })
39+
@DecrypterPlugin(revision = "$Revision: 50037 $", interfaceVersion = 3, names = { "files.fm" }, urls = { "https?://(?:\\w+\\.)?files\\.fm/u/[a-z0-9]+" })
3940
public class FilesFmFolder extends PluginForDecrypt {
4041
public FilesFmFolder(PluginWrapper wrapper) {
4142
super(wrapper);
@@ -96,6 +97,16 @@ public ArrayList<DownloadLink> decryptIt(final CryptedLink param, ProgressContro
9697
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
9798
}
9899
}
100+
final FilePackage fp = FilePackage.getInstance();
101+
String title = br.getRegex("<title>([^<]+)</title>").getMatch(0);
102+
if (title != null) {
103+
title = Encoding.htmlDecode(title).trim();
104+
title = title.replaceFirst(" \\| files\\.fm", "");
105+
fp.setName(title);
106+
} else {
107+
/* Fallback */
108+
fp.setName(br._getURL().getPath());
109+
}
99110
for (final String singleLink : links) {
100111
String filename = new Regex(singleLink, "class=\"full-file-name\">([^<>\"]+)<").getMatch(0);
101112
final String ext = new Regex(singleLink, "class=\"filename-extension\"[^>]*>([^<>\"]+)<").getMatch(0);
@@ -121,6 +132,7 @@ public ArrayList<DownloadLink> decryptIt(final CryptedLink param, ProgressContro
121132
dl.setName(Encoding.htmlDecode(filename));
122133
dl.setDownloadSize(SizeFormatter.getSize(Encoding.htmlDecode(filesize)));
123134
dl.setProperty("originalname", filename);
135+
dl._setFilePackage(fp);
124136
ret.add(dl);
125137
}
126138
return ret;

svn_trunk/src/jd/plugins/decrypter/LusciousNetAlbum.java

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
import jd.plugins.PluginForHost;
4141
import jd.plugins.hoster.DirectHTTP;
4242

43-
@DecrypterPlugin(revision = "$Revision: 50034 $", interfaceVersion = 3, names = { "luscious.net" }, urls = { "https?://(?:(?:www|members)\\.)?luscious\\.net/albums/([a-z0-9\\-_]+)_(\\d+)/?" })
43+
@DecrypterPlugin(revision = "$Revision: 50037 $", interfaceVersion = 3, names = { "luscious.net" }, urls = { "https?://(?:(?:www|members)\\.)?luscious\\.net/albums/([a-z0-9\\-_]+)_(\\d+)/?" })
4444
public class LusciousNetAlbum extends PluginForDecrypt {
4545
public LusciousNetAlbum(PluginWrapper wrapper) {
4646
super(wrapper);
@@ -119,32 +119,39 @@ public ArrayList<DownloadLink> decryptIt(final CryptedLink param, ProgressContro
119119
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
120120
}
121121
final String title = albumSlug.replace("-", " ");
122-
String[] thumbnails = br.getRegex("src=\"(https?://[^\"]+)\" class=\"\" loading=\"lazy\"").getColumn(0);
123-
if (thumbnails == null || thumbnails.length == 0) {
124-
thumbnails = br.getRegex("alt=\"\\d+\" src=\"(https?://[^\"]+)\"").getColumn(0);
125-
}
126122
final FilePackage fpFullsize = FilePackage.getInstance();
127123
fpFullsize.setName(title);
128-
final FilePackage fpThumbnails = FilePackage.getInstance();
129-
fpThumbnails.setName(title + " - thumbnails");
130-
for (final String urlThumbnail : thumbnails) {
131-
/* Change thumbnail URL to a full size URL */
132-
final String fullsizeUrl = urlThumbnail.replaceFirst("\\.315x0\\.jpg$", ".640x0.jpg");
133-
/* This link may not always be available thus we will also add the original thumbnail link later. */
134-
final DownloadLink directFullsize = this.createDownloadlink(DirectHTTP.createURLForThisPlugin(urlThumbnail));
135-
/* We know that this link is online. */
136-
directFullsize.setAvailable(true);
137-
directFullsize._setFilePackage(fpFullsize);
138-
ret.add(directFullsize);
139-
if (fullsizeUrl.equals(urlThumbnail)) {
140-
/* Both links are the same -> No reason to add thumbnail separately. */
141-
continue;
124+
/*
125+
* 2024-10-28: Disabled single image crawling as it doesn't work: It looks to be impossible to reliably generate full size URLs
126+
* just by using their thumbnail URLs as a base.
127+
*/
128+
final boolean crawlSingleImages = false;
129+
if (crawlSingleImages) {
130+
String[] thumbnails = br.getRegex("src=\"(https?://[^\"]+)\" class=\"\" loading=\"lazy\"").getColumn(0);
131+
if (thumbnails == null || thumbnails.length == 0) {
132+
thumbnails = br.getRegex("alt=\"\\d+\" src=\"(https?://[^\"]+)\"").getColumn(0);
133+
}
134+
final FilePackage fpThumbnails = FilePackage.getInstance();
135+
fpThumbnails.setName(title + " - thumbnails");
136+
for (final String urlThumbnail : thumbnails) {
137+
/* Change thumbnail URL to a full size URL */
138+
final String fullsizeUrl = urlThumbnail.replaceFirst("\\.315x0\\.jpg$", ".640x0.jpg");
139+
/* This link may not always be available thus we will also add the original thumbnail link later. */
140+
final DownloadLink directFullsize = this.createDownloadlink(DirectHTTP.createURLForThisPlugin(urlThumbnail));
141+
/* We know that this link is online. */
142+
directFullsize.setAvailable(true);
143+
directFullsize._setFilePackage(fpFullsize);
144+
ret.add(directFullsize);
145+
if (fullsizeUrl.equals(urlThumbnail)) {
146+
/* Both links are the same -> No reason to add thumbnail separately. */
147+
continue;
148+
}
149+
final DownloadLink directThumbnail = this.createDownloadlink(DirectHTTP.createURLForThisPlugin(urlThumbnail));
150+
/* We know that this link is online. */
151+
directThumbnail.setAvailable(true);
152+
directThumbnail._setFilePackage(fpThumbnails);
153+
ret.add(directThumbnail);
142154
}
143-
final DownloadLink directThumbnail = this.createDownloadlink(DirectHTTP.createURLForThisPlugin(urlThumbnail));
144-
/* We know that this link is online. */
145-
directThumbnail.setAvailable(true);
146-
directThumbnail._setFilePackage(fpThumbnails);
147-
ret.add(directThumbnail);
148155
}
149156
final String redirectURL = br.getRegex("\"(/download/r/\\d+/\\d+/?)\"").getMatch(0);
150157
if (redirectURL != null) {

svn_trunk/src/jd/plugins/decrypter/MFS_ShortUrlScript.java

Lines changed: 29 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,30 @@
1717

1818
import java.util.ArrayList;
1919

20-
import org.appwork.utils.StringUtils;
21-
import org.jdownloader.plugins.components.antiDDoSForDecrypt;
20+
import org.appwork.utils.parser.UrlQuery;
2221

2322
import jd.PluginWrapper;
2423
import jd.controlling.ProgressController;
2524
import jd.http.Browser;
2625
import jd.nutils.encoding.Encoding;
2726
import jd.nutils.encoding.HTMLEntities;
28-
import jd.parser.Regex;
2927
import jd.parser.html.Form;
3028
import jd.plugins.CryptedLink;
3129
import jd.plugins.DecrypterException;
3230
import jd.plugins.DecrypterPlugin;
3331
import jd.plugins.DownloadLink;
3432
import jd.plugins.LinkStatus;
3533
import jd.plugins.PluginException;
34+
import jd.plugins.PluginForDecrypt;
3635
import jd.plugins.components.SiteType.SiteTemplate;
3736

3837
/**
3938
* This class supports, http://mfscripts.com/short_url_script.html template.
4039
*
4140
* @author raztoki
4241
*/
43-
@DecrypterPlugin(revision = "$Revision: 49678 $", interfaceVersion = 3, names = { "mfs_shorturlscript", "gourl.us", "shori.xyz" }, urls = { "https?://(?:www\\.)?nullified\\.jdownloader\\.org/([a-zA-Z0-9]+)", "https?://(?:www\\.)?gourl\\.us/([a-zA-Z0-9_\\-]+)$", "https?://(?:www\\.)?shori\\.xyz/([a-zA-Z0-9_\\-]+)$" })
44-
public class MFS_ShortUrlScript extends antiDDoSForDecrypt {
42+
@DecrypterPlugin(revision = "$Revision: 50037 $", interfaceVersion = 3, names = { "gourl.us" }, urls = { "https?://(?:www\\.)?gourl\\.us/([a-zA-Z0-9_\\-]+)$" })
43+
public class MFS_ShortUrlScript extends PluginForDecrypt {
4544
public MFS_ShortUrlScript(PluginWrapper wrapper) {
4645
super(wrapper);
4746
}
@@ -54,54 +53,44 @@ public Browser createNewBrowserInstance() {
5453
}
5554

5655
public ArrayList<DownloadLink> decryptIt(final CryptedLink param, final ProgressController progress) throws Exception {
57-
final String parameter = param.toString().replaceFirst("^http://", "https://");
58-
final String fuid = new Regex(parameter, this.getSupportedLinks()).getMatch(0);
59-
getPage(parameter);
60-
if (StringUtils.containsIgnoreCase(br.getURL(), "/error.html?")) {
56+
final String parameter = param.getCryptedUrl().replaceFirst("^http://", "https://");
57+
// final String fuid = new Regex(parameter, this.getSupportedLinks()).getMatch(0);
58+
br.getPage(parameter);
59+
final String errorFromURL = UrlQuery.parse(br.getURL()).get("e");
60+
if (errorFromURL != null) {
61+
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
62+
} else if (br.getHttpConnection().getResponseCode() == 404) {
6163
throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
6264
}
6365
final int repeat = 3;
6466
Form pwform = getPasswordForm(br);
65-
for (int i = 0; i <= repeat; i++) {
66-
if (pwform == null) {
67-
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT, "Could not find password form");
68-
}
69-
final String pass = getUserInput("Password protected link", param);
70-
if (inValidate(pass)) {
71-
throw new DecrypterException(DecrypterException.PASSWORD);
72-
}
73-
pwform.put("accessPass", Encoding.urlEncode(pass));
74-
submitForm(pwform);
75-
pwform = getPasswordForm(br);
76-
if (pwform == null) {
77-
logger.info("User has entered correct password: " + pass);
78-
break;
79-
}
80-
if (i + 1 >= repeat) {
81-
logger.warning("Incorrect solve of password");
82-
throw new DecrypterException(DecrypterException.PASSWORD);
67+
if (pwform != null) {
68+
for (int i = 0; i <= repeat; i++) {
69+
final String pass = getUserInput("Password protected link", param);
70+
pwform.put("accessPass", Encoding.urlEncode(pass));
71+
br.submitForm(pwform);
72+
pwform = getPasswordForm(br);
73+
if (pwform == null) {
74+
logger.info("User has entered correct password: " + pass);
75+
break;
76+
}
77+
if (i + 1 >= repeat) {
78+
logger.warning("Incorrect solve of password");
79+
throw new DecrypterException(DecrypterException.PASSWORD);
80+
}
81+
/* Try again */
82+
continue;
8383
}
84-
/* Try again */
85-
continue;
8684
}
8785
final ArrayList<DownloadLink> ret = new ArrayList<DownloadLink>();
8886
final String frame = br.getRegex("<frame [^>]*src=\"(interstitualAdTop\\.php\\?url=\\d+)\"").getMatch(0);
8987
if (frame == null) {
9088
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
9189
}
92-
getPage(frame);
90+
br.getPage(frame);
9391
String link = br.getRegex("<a [^>]*[^\\S]*href=\"(.*?)\" class=[^>]+>skip advert\\s*</a>").getMatch(0);
9492
if (link == null) {
95-
link = br.getRegex("<a [^>]*href=\"(sk_redirect_ads\\.html\\?url=" + fuid + ")\"").getMatch(0);
96-
if (link != null) {
97-
final Browser br2 = br.cloneBrowser();
98-
getPage(br2, link);
99-
link = br2.getRedirectLocation();
100-
if (link == null) {
101-
logger.warning("Possible Plugin Defect, confirm in browser: " + parameter);
102-
return null;
103-
}
104-
}
93+
throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
10594
}
10695
ret.add(createDownloadlink(HTMLEntities.unhtmlentities(link)));
10796
return ret;
@@ -120,12 +109,4 @@ public boolean hasCaptcha(CryptedLink link, jd.plugins.Account acc) {
120109
public SiteTemplate siteTemplateType() {
121110
return SiteTemplate.MFScripts_Wurlie;
122111
}
123-
124-
@Override
125-
public Boolean siteTesterDisabled() {
126-
if ("mfs_shorturlscript".equalsIgnoreCase(this.getHost())) {
127-
return Boolean.TRUE;
128-
}
129-
return super.siteTesterDisabled();
130-
}
131112
}

svn_trunk/src/jd/plugins/decrypter/MightyScriptAdLinkFlyDefault.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import jd.plugins.CryptedLink;
2626
import jd.plugins.DecrypterPlugin;
2727

28-
@DecrypterPlugin(revision = "$Revision: 49326 $", interfaceVersion = 3, names = {}, urls = {})
28+
@DecrypterPlugin(revision = "$Revision: 50038 $", interfaceVersion = 3, names = {}, urls = {})
2929
public class MightyScriptAdLinkFlyDefault extends MightyScriptAdLinkFly {
3030
public MightyScriptAdLinkFlyDefault(PluginWrapper wrapper) {
3131
super(wrapper);
@@ -105,8 +105,6 @@ public static String[] getAnnotationNames() {
105105
"shrinkearn.com", "shortearn.eu",
106106
/** clk.sh domains */
107107
"clk.sh", "oko.sh", "iir.ai", "iir.la",
108-
/** bt4link.com domains */
109-
"bt4link.com", "btc4link.com", "ur4link.com",
110108
/** shorted4us.com domains */
111109
"shorted4us.com", "thefreech.com", "sewrn.com",
112110
/** asrar-alrb7.com domains */

0 commit comments

Comments
 (0)