Add image spoiler support

captchafix
Floens 11 years ago
parent ed03835b82
commit 12f4781548
  1. 9
      Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java
  2. 16
      Clover/app/src/main/java/org/floens/chan/core/model/Post.java
  3. 3
      Clover/app/src/main/java/org/floens/chan/core/net/ChanReaderRequest.java
  4. 2
      Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java

@ -48,6 +48,14 @@ public class ChanUrls {
return "https://t.4cdn.org/" + board + "/" + code + "s.jpg"; return "https://t.4cdn.org/" + board + "/" + code + "s.jpg";
} }
public static String getSpoilerUrl() {
return "https://s.4cdn.org/image/spoiler.png";
}
public static String getCustomSpoilerUrl(String board, int value) {
return "https://s.4cdn.org/image/spoiler-" + board + value + ".png";
}
public static String getCountryFlagUrl(String countryCode) { public static String getCountryFlagUrl(String countryCode) {
return "https://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; return "https://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif";
} }
@ -56,7 +64,6 @@ public class ChanUrls {
return "https://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; return "https://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif";
} }
public static String getBoardsUrl() { public static String getBoardsUrl() {
return "https://a.4cdn.org/boards.json"; return "https://a.4cdn.org/boards.json";
} }

@ -28,11 +28,14 @@ import org.jsoup.parser.Parser;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
/** /**
* Contains all data needed to represent a single post. * Contains all data needed to represent a single post.
*/ */
public class Post { public class Post {
private static final Random random = new Random();
public String board; public String board;
public int no = -1; public int no = -1;
public int resto = -1; public int resto = -1;
@ -64,6 +67,7 @@ public class Post {
public int images = -1; public int images = -1;
public String rawComment; public String rawComment;
public String countryUrl; public String countryUrl;
public boolean spoiler = false;
public boolean deleted = false; public boolean deleted = false;
@ -127,9 +131,19 @@ public class Post {
if (filename == null || ext == null || imageWidth <= 0 || imageHeight <= 0 || tim < 0) if (filename == null || ext == null || imageWidth <= 0 || imageHeight <= 0 || tim < 0)
return false; return false;
thumbnailUrl = ChanUrls.getThumbnailUrl(board, Long.toString(tim));
imageUrl = ChanUrls.getImageUrl(board, Long.toString(tim), ext); imageUrl = ChanUrls.getImageUrl(board, Long.toString(tim), ext);
filename = Parser.unescapeEntities(filename, false); filename = Parser.unescapeEntities(filename, false);
if (spoiler) {
Board b = ChanApplication.getBoardManager().getBoardByValue(board);
if (b.customSpoilers >= 0) {
thumbnailUrl = ChanUrls.getCustomSpoilerUrl(board, random.nextInt(b.customSpoilers) + 1);
} else {
thumbnailUrl = ChanUrls.getSpoilerUrl();
}
} else {
thumbnailUrl = ChanUrls.getThumbnailUrl(board, Long.toString(tim));
}
} }
if (!TextUtils.isEmpty(country)) { if (!TextUtils.isEmpty(country)) {

@ -349,6 +349,9 @@ public class ChanReaderRequest extends JsonReaderRequest<List<Post>> {
case "images": case "images":
post.images = reader.nextInt(); post.images = reader.nextInt();
break; break;
case "spoiler":
post.spoiler = reader.nextInt() == 1;
break;
default: default:
// Unknown/ignored key // Unknown/ignored key
// log("Unknown/ignored key: " + key + "."); // log("Unknown/ignored key: " + key + ".");

@ -111,7 +111,7 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
imageView.setThumbnail(post.thumbnailUrl); imageView.setThumbnail(post.thumbnailUrl);
if (ChanPreferences.getImageAutoLoad()) { if (ChanPreferences.getImageAutoLoad() && !post.spoiler) {
load(); load();
} else { } else {
tapToLoad = true; tapToLoad = true;

Loading…
Cancel
Save