diff --git a/app/src/main/java/com/dar/nclientv2/api/SimpleGallery.java b/app/src/main/java/com/dar/nclientv2/api/SimpleGallery.java index 28c0f048..64883b1b 100644 --- a/app/src/main/java/com/dar/nclientv2/api/SimpleGallery.java +++ b/app/src/main/java/com/dar/nclientv2/api/SimpleGallery.java @@ -79,8 +79,13 @@ public SimpleGallery(Context context, Element e) { id = Integer.parseInt(temp.substring(3, temp.length() - 1)); a = e.getElementsByTag("img").first(); temp = a.hasAttr("data-src") ? a.attr("data-src") : a.attr("src"); + //temp = a.attr("src"); mediaId = Integer.parseInt(temp.substring(temp.indexOf("galleries") + 10, temp.lastIndexOf('/'))); - thumbnail = Page.charToExt(temp.charAt(temp.length() - 3)); + if (temp.endsWith(".jpg.webp")) { + temp = temp.substring(0, temp.length() - 5); // Quita ".webp" + } + String extension = temp.substring(temp.lastIndexOf('.') + 1); + thumbnail = Page.charToExt(extension.charAt(0));//thumbnail = Page.charToExt(temp.charAt(temp.length() - 3)); title = e.getElementsByTag("div").first().text(); if (context != null && id > Global.getMaxId()) Global.updateMaxId(context, id); } @@ -93,6 +98,10 @@ public SimpleGallery(Gallery gallery) { } private static String extToString(ImageExt ext) { + //just in case + if (ext == null) { + return null; + } switch (ext) { case GIF: return "gif"; @@ -100,6 +109,8 @@ private static String extToString(ImageExt ext) { return "png"; case JPG: return "jpg"; + case WEBP: + return "webp"; } return null; } @@ -171,9 +182,9 @@ public void writeToParcel(Parcel dest, int flags) { public Uri getThumbnail() { if (thumbnail == ImageExt.GIF) { - return Uri.parse(String.format(Locale.US, "https://i." + Utility.getHost() + "/galleries/%d/1.gif", mediaId)); + return Uri.parse(String.format(Locale.US, "https://i1." + Utility.getHost() + "/galleries/%d/1.gif", mediaId)); } - return Uri.parse(String.format(Locale.US, "https://t." + Utility.getHost() + "/galleries/%d/thumb.%s", mediaId, extToString(thumbnail))); + return Uri.parse(String.format(Locale.US, "https://t1." + Utility.getHost() + "/galleries/%d/thumb.%s", mediaId, extToString(thumbnail))); } public int getMediaId() { diff --git a/app/src/main/java/com/dar/nclientv2/api/comments/User.java b/app/src/main/java/com/dar/nclientv2/api/comments/User.java index 3025628c..820ddc08 100644 --- a/app/src/main/java/com/dar/nclientv2/api/comments/User.java +++ b/app/src/main/java/com/dar/nclientv2/api/comments/User.java @@ -70,7 +70,7 @@ public int getId() { } public Uri getAvatarUrl() { - return Uri.parse(String.format(Locale.US, "https://i.%s/%s", Utility.getHost(), avatarUrl)); + return Uri.parse(String.format(Locale.US, "https://i1.%s/%s", Utility.getHost(), avatarUrl)); } public String getUsername() { diff --git a/app/src/main/java/com/dar/nclientv2/api/components/Gallery.java b/app/src/main/java/com/dar/nclientv2/api/components/Gallery.java index aa410ed9..a9b8a880 100644 --- a/app/src/main/java/com/dar/nclientv2/api/components/Gallery.java +++ b/app/src/main/java/com/dar/nclientv2/api/components/Gallery.java @@ -155,7 +155,7 @@ public String getPathTitle() { public Uri getCover() { if (Global.getDownloadPolicy() == Global.DataUsageType.THUMBNAIL) return getThumbnail(); if (galleryData.getCover().getImageExt() == ImageExt.GIF) return getHighPage(0); - return Uri.parse(String.format(Locale.US, "https://t." + Utility.getHost() + "/galleries/%d/cover.%s", getMediaId(), galleryData.getCover().extToString())); + return Uri.parse(String.format(Locale.US, "https://t1." + Utility.getHost() + "/galleries/%d/cover.%s", getMediaId(), galleryData.getCover().extToString())); } public ImageExt getThumb() { @@ -164,7 +164,7 @@ public ImageExt getThumb() { public Uri getThumbnail() { if (galleryData.getCover().getImageExt() == ImageExt.GIF) return getHighPage(0); - return Uri.parse(String.format(Locale.US, "https://t." + Utility.getHost() + "/galleries/%d/thumb.%s", getMediaId(), galleryData.getThumbnail().extToString())); + return Uri.parse(String.format(Locale.US, "https://t1." + Utility.getHost() + "/galleries/%d/thumb.%s", getMediaId(), galleryData.getThumbnail().extToString())); } private @Nullable @@ -183,13 +183,13 @@ public Uri getPageUrl(int page) { } public Uri getHighPage(int page) { - return Uri.parse(String.format(Locale.US, "https://i." + Utility.getHost() + "/galleries/%d/%d.%s", getMediaId(), page + 1, getPageExtension(page))); + return Uri.parse(String.format(Locale.US, "https://i1." + Utility.getHost() + "/galleries/%d/%d.%s", getMediaId(), page + 1, getPageExtension(page))); } public Uri getLowPage(int page) { Uri uri = getFileUri(page); if (uri != null) return uri; - return Uri.parse(String.format(Locale.US, "https://t." + Utility.getHost() + "/galleries/%d/%dt.%s", getMediaId(), page + 1, getPageExtension(page))); + return Uri.parse(String.format(Locale.US, "https://t1." + Utility.getHost() + "/galleries/%d/%dt.%s", getMediaId(), page + 1, getPageExtension(page))); } public String getPageExtension(int page) { diff --git a/app/src/main/java/com/dar/nclientv2/api/components/GalleryData.java b/app/src/main/java/com/dar/nclientv2/api/components/GalleryData.java index f38fb6a5..680a26d2 100644 --- a/app/src/main/java/com/dar/nclientv2/api/components/GalleryData.java +++ b/app/src/main/java/com/dar/nclientv2/api/components/GalleryData.java @@ -305,16 +305,17 @@ public String createPagePath() { private void readPagePath(String path) throws IOException { System.out.println(path); - StringReader reader = new StringReader(path + "e");//flag for the end + StringReader reader = new StringReader(path + "*");//flag for the end int absolutePage = 0; int actualChar; int pageOfType = 0; boolean specialImages = true;//compability variable - while ((actualChar = reader.read()) != 'e') { + while ((actualChar = reader.read()) != '*') { switch (actualChar) { case 'p': case 'j': case 'g': + case 'w': if (specialImages) { cover = new Page(ImageType.COVER, Page.charToExt(actualChar)); thumbnail = new Page(ImageType.THUMBNAIL, Page.charToExt(actualChar)); diff --git a/app/src/main/java/com/dar/nclientv2/api/components/Page.java b/app/src/main/java/com/dar/nclientv2/api/components/Page.java index d7948dec..8f43af54 100644 --- a/app/src/main/java/com/dar/nclientv2/api/components/Page.java +++ b/app/src/main/java/com/dar/nclientv2/api/components/Page.java @@ -90,6 +90,8 @@ public static String extToString(ImageExt ext) { return "png"; case JPG: return "jpg"; + case WEBP: + return "webp"; } return null; } @@ -102,6 +104,8 @@ public static char extToChar(ImageExt imageExt) { return 'p'; case JPG: return 'j'; + case WEBP: + return 'w'; } return '\0'; } @@ -114,6 +118,8 @@ public static ImageExt charToExt(int ext) { return ImageExt.PNG; case 'j': return ImageExt.JPG; + case 'w': + return ImageExt.WEBP; } return null; } diff --git a/app/src/main/java/com/dar/nclientv2/api/enums/ImageExt.java b/app/src/main/java/com/dar/nclientv2/api/enums/ImageExt.java index 6ea3a7fb..70712010 100644 --- a/app/src/main/java/com/dar/nclientv2/api/enums/ImageExt.java +++ b/app/src/main/java/com/dar/nclientv2/api/enums/ImageExt.java @@ -1,7 +1,7 @@ package com.dar.nclientv2.api.enums; public enum ImageExt { - JPG("jpg"), PNG("png"), GIF("gif"); + JPG("jpg"), PNG("png"), GIF("gif"), WEBP("webp"); private final char firstLetter; private final String name; diff --git a/app/src/main/java/com/dar/nclientv2/api/local/LocalGallery.java b/app/src/main/java/com/dar/nclientv2/api/local/LocalGallery.java index 642d387b..2a099ab2 100644 --- a/app/src/main/java/com/dar/nclientv2/api/local/LocalGallery.java +++ b/app/src/main/java/com/dar/nclientv2/api/local/LocalGallery.java @@ -34,7 +34,7 @@ public LocalGallery[] newArray(int size) { return new LocalGallery[size]; } }; - private static final Pattern FILE_PATTERN = Pattern.compile("^(\\d{1,9})\\.(gif|png|jpg)$", Pattern.CASE_INSENSITIVE); + private static final Pattern FILE_PATTERN = Pattern.compile("^(\\d{1,9})\\.(gif|png|jpg|webp)$", Pattern.CASE_INSENSITIVE); private static final Pattern DUP_PATTERN = Pattern.compile("^(.*)\\.DUP\\d+$"); private static final Pattern IDFILE_PATTERN = Pattern.compile("^\\.\\d{1,6}$"); private final GalleryFolder folder; @@ -106,6 +106,8 @@ public static File getPage(File dir, int page) { if (dir == null || !dir.exists()) return null; String pag = String.format(Locale.US, "%03d.", page); File x; + x = new File(dir, pag + "webp"); + if (x.exists()) return x; x = new File(dir, pag + "jpg"); if (x.exists()) return x; x = new File(dir, pag + "png"); diff --git a/app/src/main/java/com/dar/nclientv2/files/GalleryFolder.java b/app/src/main/java/com/dar/nclientv2/files/GalleryFolder.java index 9a172c38..d28867ed 100644 --- a/app/src/main/java/com/dar/nclientv2/files/GalleryFolder.java +++ b/app/src/main/java/com/dar/nclientv2/files/GalleryFolder.java @@ -32,7 +32,7 @@ public GalleryFolder[] newArray(int size) { return new GalleryFolder[size]; } }; - private static final Pattern FILE_PATTERN = Pattern.compile("^0*(\\d{1,9})\\.(gif|png|jpg)$", Pattern.CASE_INSENSITIVE); + private static final Pattern FILE_PATTERN = Pattern.compile("^0*(\\d{1,9})\\.(gif|png|jpg|webp)$", Pattern.CASE_INSENSITIVE); private static final Pattern IDFILE_PATTERN = Pattern.compile("^\\.(\\d{1,6})$"); private static final String NOMEDIA_FILE = ".nomedia"; private final SparseArrayCompat pageArray = new SparseArrayCompat<>(); diff --git a/app/src/main/java/com/dar/nclientv2/files/PageFile.java b/app/src/main/java/com/dar/nclientv2/files/PageFile.java index d36ea6ef..934a778e 100644 --- a/app/src/main/java/com/dar/nclientv2/files/PageFile.java +++ b/app/src/main/java/com/dar/nclientv2/files/PageFile.java @@ -28,8 +28,8 @@ public PageFile[] newArray(int size) { return new PageFile[size]; } }; - private static final Pattern DEFAULT_THUMBNAIL = Pattern.compile("^0*1\\.(gif|png|jpg)$", Pattern.CASE_INSENSITIVE); - private static final Pattern VALID_PAGE = Pattern.compile("^0*(\\d+)\\.(gif|png|jpg)$", Pattern.CASE_INSENSITIVE); + private static final Pattern DEFAULT_THUMBNAIL = Pattern.compile("^0*1\\.(gif|png|jpg|webp)$", Pattern.CASE_INSENSITIVE); + private static final Pattern VALID_PAGE = Pattern.compile("^0*(\\d+)\\.(gif|png|jpg|webp)$", Pattern.CASE_INSENSITIVE); private final ImageExt ext; private final int page;