diff --git a/app/build.gradle b/app/build.gradle index 75921f24..4fc68b76 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.dar.nclientv2" minSdkVersion 14 targetSdkVersion 29 - versionCode 237 - versionName "2.3.7" + versionCode 238 + versionName "2.3.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/com/dar/nclientv2/api/InspectorV3.java b/app/src/main/java/com/dar/nclientv2/api/InspectorV3.java index f1e49d38..6cfdd923 100644 --- a/app/src/main/java/com/dar/nclientv2/api/InspectorV3.java +++ b/app/src/main/java/com/dar/nclientv2/api/InspectorV3.java @@ -325,10 +325,12 @@ private String trimScriptTag(String scriptHtml) { if(s<0)return null; s+=7; scriptHtml=scriptHtml.substring(s,scriptHtml.lastIndexOf(");")-1); - scriptHtml=scriptHtml.replace("\\u0022","\""); + scriptHtml=Utility.unescapeUnicodeString(scriptHtml); + if(scriptHtml.isEmpty())return null; return scriptHtml; } + private void doSearch(Element document) { Elements gal=document.getElementsByClass("gallery"); galleries=new ArrayList<>(gal.size()); diff --git a/app/src/main/java/com/dar/nclientv2/api/components/Tag.java b/app/src/main/java/com/dar/nclientv2/api/components/Tag.java index 27101c33..ba19a0e7 100644 --- a/app/src/main/java/com/dar/nclientv2/api/components/Tag.java +++ b/app/src/main/java/com/dar/nclientv2/api/components/Tag.java @@ -77,11 +77,11 @@ public void setStatus(TagStatus status){ public String toQueryTag(TagStatus status){ StringBuilder builder=new StringBuilder(); - String escapedName=name.replace(' ','-'); + String escapedName=name/*.replace(' ','-')*/; if(status==TagStatus.AVOIDED)builder.append('-'); builder - .append(type.getSingle()) - .append(':') + /*.append(type.getSingle()) + .append(':')*/ .append('"') .append(escapedName) .append('"'); diff --git a/app/src/main/java/com/dar/nclientv2/utility/Utility.java b/app/src/main/java/com/dar/nclientv2/utility/Utility.java index 2ce078de..5cb782b5 100644 --- a/app/src/main/java/com/dar/nclientv2/utility/Utility.java +++ b/app/src/main/java/com/dar/nclientv2/utility/Utility.java @@ -21,6 +21,10 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; +import java.io.Writer; import java.util.List; import java.util.Random; @@ -35,19 +39,46 @@ public static String getHost(){ boolean x=Global.useAlternativeSite(); return x?ALTERNATIVE_URL: ORIGINAL_URL; } + private static void parseEscapedCharacter(Reader reader, Writer writer)throws IOException{ + int toCreate,read; + switch (read=reader.read()){ + case 'u': + toCreate=0; + for(int i=0;i<4;i++){ + toCreate*=16; + toCreate+=Character.digit(reader.read(),16); + } + writer.write(toCreate); + break; + case 'n': + writer.write('\n'); + break; + case 't': + writer.write('\t'); + break; + default: + writer.write('\\'); + writer.write(read); + break; + } + } @NonNull - public static String unescapeUnicodeString(@Nullable String t){ - if(t==null)return ""; - StringBuilder s=new StringBuilder(); - int l=t.length(); - for(int a=0;a