Skip to content

Commit

Permalink
Merge pull request #71 from Fabricio20/master
Browse files Browse the repository at this point in the history
2.5.1: Fix gelbooru parsing
  • Loading branch information
Kodehawa authored Jan 16, 2022
2 parents 7bd576f + 2d2db5f commit bddeeda
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 10 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
.idea/

### Gradle ###
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

# Compiled class file
*.class

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
}

import org.apache.tools.ant.filters.ReplaceTokens
def versionObj = new Version(major: 2, minor: 5, revision: 0)
def versionObj = new Version(major: 2, minor: 5, revision: 1)

group 'net.kodehawa'
version "$versionObj"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public enum DefaultBoards implements Board {
YANDERE("https", "yande.re", "post.json", null, "page"),
DANBOORU("https", "danbooru.donmai.us", "posts.json", null, "page"),
SAFEBOORU("https", "safebooru.org", "index.php", "page=dapi&s=post&q=index&json=1", "pid"),
GELBOORU("https", "gelbooru.com", "index.php", "page=dapi&s=post&q=index&json=1", "pid"),
GELBOORU("https", "gelbooru.com", "index.php", "page=dapi&s=post&q=index&json=1", "pid", "post"),
E926("https", "e926.net", "posts.json", null, "page", "posts");

private final String scheme;
Expand Down
15 changes: 7 additions & 8 deletions src/main/java/net/kodehawa/lib/imageboards/entities/Rating.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,24 @@
package net.kodehawa.lib.imageboards.entities;

import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

/**
* Board image ratings. Just remember that God is watching.
*
* @author Avarel
*/
@JsonDeserialize(using = RatingDeserializer.class)
public enum Rating {
/**
* Safe for family and friends. If you had any.
*/
@JsonProperty("s")
SAFE("s"),

/**
* Questionable board images. Borderline explicit.
* Would you show this to your grandma?
*/
@JsonProperty("q")
QUESTIONABLE("q"),

/**
Expand All @@ -43,7 +43,6 @@ public enum Rating {
* Dirty af. Go see a therapist.
*/
@JsonEnumDefaultValue
@JsonProperty("e")
EXPLICIT("e");

String shortName, longName;
Expand All @@ -68,8 +67,8 @@ public String getLongName() {
* @return The badge, or null if nothing is found.
*/
public static Rating lookupFromString(String name) {
for(Rating b : Rating.values()) {
if(b.name().equalsIgnoreCase(name)) {
for (Rating b : Rating.values()) {
if (b.name().equalsIgnoreCase(name)) {
return b;
}
}
Expand All @@ -83,8 +82,8 @@ public static Rating lookupFromString(String name) {
* @return The badge, or null if nothing is found.
*/
public static Rating lookupFromStringShort(String shortName) {
for(Rating b : Rating.values()) {
if(b.getShortName().equalsIgnoreCase(shortName)) {
for (Rating b : Rating.values()) {
if (b.getShortName().equalsIgnoreCase(shortName)) {
return b;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package net.kodehawa.lib.imageboards.entities;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

public class RatingDeserializer extends JsonDeserializer<Rating> {

@Override
public Rating deserialize(JsonParser parser, DeserializationContext ctx)
throws IOException {
String value = parser.getValueAsString();
Rating rating = Rating.lookupFromStringShort(value);
if (rating != null) {
return rating;
}
rating = Rating.lookupFromString(value);
if (rating != null) {
return rating;
}
throw new IOException("Unable to deserialize rating " + value);
}

}

0 comments on commit bddeeda

Please sign in to comment.