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";
}
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) {
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";
}
public static String getBoardsUrl() {
return "https://a.4cdn.org/boards.json";
}

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

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

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

Loading…
Cancel
Save