mirror of
https://github.com/TeamNewPipe/NewPipeExtractor.git
synced 2025-04-28 07:50:34 +05:30
[YouTube] Compile YoutubeThrottlingDecrypter pattern statically
This commit is contained in:
parent
1c78976900
commit
2967d1ae6a
@ -33,7 +33,10 @@ import java.util.regex.Pattern;
|
|||||||
*/
|
*/
|
||||||
public class YoutubeThrottlingDecrypter {
|
public class YoutubeThrottlingDecrypter {
|
||||||
|
|
||||||
private static final String N_PARAM_REGEX = "[&?]n=([^&]+)";
|
private static final Pattern N_PARAM_PATTERN = Pattern.compile("[&?]n=([^&]+)");
|
||||||
|
private static final Pattern FUNCTION_NAME_PATTERN = Pattern.compile(
|
||||||
|
"b=a\\.get\\(\"n\"\\)\\)&&\\(b=(\\w+)\\(b\\),a\\.set\\(\"n\",b\\)");
|
||||||
|
|
||||||
private static final Map<String, String> nParams = new HashMap<>();
|
private static final Map<String, String> nParams = new HashMap<>();
|
||||||
|
|
||||||
private final String functionName;
|
private final String functionName;
|
||||||
@ -62,9 +65,7 @@ public class YoutubeThrottlingDecrypter {
|
|||||||
|
|
||||||
private String parseDecodeFunctionName(final String playerJsCode)
|
private String parseDecodeFunctionName(final String playerJsCode)
|
||||||
throws Parser.RegexException {
|
throws Parser.RegexException {
|
||||||
Pattern pattern = Pattern.compile(
|
return Parser.matchGroup1(FUNCTION_NAME_PATTERN, playerJsCode);
|
||||||
"b=a\\.get\\(\"n\"\\)\\)&&\\(b=(\\w+)\\(b\\),a\\.set\\(\"n\",b\\)");
|
|
||||||
return Parser.matchGroup1(pattern, playerJsCode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@ -86,12 +87,11 @@ public class YoutubeThrottlingDecrypter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean containsNParam(final String url) {
|
private boolean containsNParam(final String url) {
|
||||||
return Parser.isMatch(N_PARAM_REGEX, url);
|
return Parser.isMatch(N_PARAM_PATTERN, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String parseNParam(final String url) throws Parser.RegexException {
|
private String parseNParam(final String url) throws Parser.RegexException {
|
||||||
Pattern nValuePattern = Pattern.compile(N_PARAM_REGEX);
|
return Parser.matchGroup1(N_PARAM_PATTERN, url);
|
||||||
return Parser.matchGroup1(nValuePattern, url);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String decryptNParam(final String nParam) {
|
private String decryptNParam(final String nParam) {
|
||||||
|
@ -84,6 +84,11 @@ public class Parser {
|
|||||||
return mat.find();
|
return mat.find();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isMatch(Pattern pattern, String input) {
|
||||||
|
Matcher mat = pattern.matcher(input);
|
||||||
|
return mat.find();
|
||||||
|
}
|
||||||
|
|
||||||
public static Map<String, String> compatParseMap(final String input) throws UnsupportedEncodingException {
|
public static Map<String, String> compatParseMap(final String input) throws UnsupportedEncodingException {
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
for (String arg : input.split("&")) {
|
for (String arg : input.split("&")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user