import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.Filter;
import net.pterodactylus.rhynodge.State;
import net.pterodactylus.rhynodge.states.ComicState;
import net.pterodactylus.rhynodge.states.FailedState;
import net.pterodactylus.rhynodge.states.HtmlState;
-import com.google.common.base.Optional;
import org.jsoup.nodes.Document;
import org.jspecify.annotations.NonNull;
return new FailedState();
}
- Comic comic = new Comic(title.or(""));
+ Comic comic = new Comic(title.orElse(""));
int imageCounter = 0;
for (String imageUrl : imageUrls) {
String imageComment = (imageCounter < imageComments.size()) ? imageComments.get(imageCounter) : "";
*
* @param document
* The document to extract the title from
- * @return The extracted title, or {@link Optional#absent()}} if no title could
+ * @return The extracted title, or {@link Optional#empty()}} if no title could
* be found
*/
protected abstract Optional<String> extractTitle(Document document);
package net.pterodactylus.rhynodge.filters.comics;
-import static com.google.common.base.Optional.fromNullable;
import static com.google.common.collect.FluentIterable.from;
+import static java.util.Optional.of;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@Override
protected Optional<String> extractTitle(Document document) {
- return fromNullable(document.select("h1.storytitle a").text());
+ return of(document.select("h1.storytitle a").text());
}
@Override
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
-import com.google.common.base.Optional;
import org.jsoup.nodes.Document;
/**
@Override
protected Optional<String> extractTitle(Document document) {
- return Optional.fromNullable(document.select("article .caption p").get(0).text());
+ return Optional.of(document.select("article .caption p").get(0).text());
}
}
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
package net.pterodactylus.rhynodge.filters.comics;
-import static com.google.common.base.Optional.absent;
-import static com.google.common.base.Optional.of;
+import static java.util.Optional.empty;
+import static java.util.Optional.of;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@Override
protected Optional<String> extractTitle(Document document) {
- return extractImageUrls(document).isEmpty() ? absent() : of("");
+ return extractImageUrls(document).isEmpty() ? empty() : of("");
}
@Override
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
package net.pterodactylus.rhynodge.filters.comics;
-import static com.google.common.base.Optional.absent;
-import static com.google.common.base.Optional.of;
-
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
-
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
-
-import com.google.common.base.Optional;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
+import static java.util.Optional.empty;
+import static java.util.Optional.of;
+
/**
* {@link ComicSiteFilter} implementation that can parse Girl Genius comics.
*
@Override
protected Optional<String> extractTitle(Document document) {
- return extractImageUrls(document).isEmpty() ? absent() : of("");
+ return extractImageUrls(document).isEmpty() ? empty() : of("");
}
@Override
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
-import com.google.common.base.Optional;
import org.apache.commons.lang3.StringEscapeUtils;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
@Override
protected Optional<String> extractTitle(Document document) {
Elements captionElements = document.select("#comicstripCaption");
- return Optional.fromNullable(StringEscapeUtils.unescapeHtml4(captionElements.text()));
+ return Optional.ofNullable(StringEscapeUtils.unescapeHtml4(captionElements.text()));
}
@Override
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
-import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
import org.jsoup.nodes.Document;
package net.pterodactylus.rhynodge.filters.comics;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import net.pterodactylus.rhynodge.filters.ComicSiteFilter;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
+import static java.util.Optional.empty;
+import static java.util.Optional.of;
+
/**
* {@link ComicSiteFilter} implementation that can parse XKCD comics.
*
public class XkcdComicFilter extends ComicSiteFilter {
@Override
- protected Optional<String> extractTitle(Document document) {
+ protected java.util.Optional<String> extractTitle(Document document) {
Elements titleElement = document.select("div#ctitle");
- return titleElement.hasText() ? Optional.of(titleElement.text()) : Optional.<String>absent();
+ return titleElement.hasText() ? of(titleElement.text()) : empty();
}
@Override
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
-import com.google.common.base.Optional.absent
+import java.util.Optional
+import java.util.Optional.empty
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import org.jsoup.nodes.Document
class BexAndKeitComicFilter : ComicSiteFilter() {
- override fun extractTitle(document: Document): Optional<String> = absent()
+ override fun extractTitle(document: Document): Optional<String> = empty()
override fun extractImageUrls(document: Document) =
document.select(".row")
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import net.pterodactylus.rhynodge.utils.asOptional
import org.jsoup.nodes.Document
*/
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import net.pterodactylus.rhynodge.utils.asOptional
import org.jsoup.nodes.Document
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import net.pterodactylus.rhynodge.utils.asOptional
import org.jsoup.nodes.Document
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
-import com.google.common.base.Optional.absent
-import com.google.common.base.Optional.fromNullable
-import com.google.common.base.Optional.of
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import net.pterodactylus.rhynodge.utils.asOptional
import org.jsoup.nodes.Document
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import org.jsoup.nodes.Document
*/
class LeastICouldDoComicFilter : ComicSiteFilter() {
- override fun extractTitle(document: Document) = Optional.of("")!!
+ override fun extractTitle(document: Document) = Optional.of("")
override fun extractImageUrls(document: Document) =
document.select("#content-comic img.comic")
*/
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
+import java.util.Optional.empty
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import org.jsoup.nodes.Document
class QuestionableContentComicFilter : ComicSiteFilter() {
- override fun extractTitle(document: Document): Optional<String> = Optional.absent()
+ override fun extractTitle(document: Document): Optional<String> = empty()
override fun extractImageUrls(document: Document): List<String> =
listOf(document.select("#comicnav").first()!!.nextSibling()!!.nextSibling()!!.attr("src"))
*/
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import net.pterodactylus.rhynodge.utils.asOptional
import org.jsoup.nodes.Document
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import net.pterodactylus.rhynodge.utils.asOptional
import org.jsoup.nodes.Document
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
-import com.google.common.base.Optional.absent
+import java.util.Optional
+import java.util.Optional.empty
import net.pterodactylus.rhynodge.filters.ComicSiteFilter
import org.jsoup.nodes.Document
class SplatballComicFilter : ComicSiteFilter() {
- override fun extractTitle(document: Document): Optional<String> = absent()
+ override fun extractTitle(document: Document): Optional<String> = empty()
override fun extractImageUrls(document: Document) =
document.select(".row")
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.*
-import com.google.common.base.Optional.*
import net.pterodactylus.rhynodge.filters.*
import org.jsoup.nodes.*
+import java.util.Optional
+import net.pterodactylus.rhynodge.utils.asOptional
class TheMonsterUnderTheBedFilter : ComicSiteFilter() {
override fun extractTitle(document: Document): Optional<String> =
- document.select("h2.post-title").text().toOptional()
+ document.select("h2.post-title").text().asOptional()
override fun extractImageUrls(document: Document): List<String> =
document.select("div#comic img").map { it.attr("src") }
override fun extractImageComments(document: Document): List<String> = emptyList()
}
-
-private fun <T> T?.toOptional(): Optional<T> = fromNullable(this)
package net.pterodactylus.rhynodge.utils
-import com.google.common.base.Optional
+import java.util.Optional
-fun <T> T?.asOptional(): Optional<T> = Optional.fromNullable(this)
-fun String?.asOptional(): Optional<String> = if ((this == null) || (this.isEmpty())) Optional.absent() else Optional.of(this)
-fun String?.toOptional(): java.util.Optional<String> = java.util.Optional.ofNullable(this)
+fun <T> T?.asOptional(): Optional<T & Any> = Optional.ofNullable(this)
+fun String?.asOptional(): Optional<String> = if ((this == null) || (isEmpty())) Optional.empty() else Optional.of(this)
+fun String?.toOptional(): Optional<String> = Optional.ofNullable(this)
package net.pterodactylus.rhynodge.filters;
-import static com.google.common.base.Optional.fromNullable;
import static java.util.Arrays.asList;
+import static java.util.Optional.ofNullable;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.hasSize;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.State;
import net.pterodactylus.rhynodge.states.ComicState;
import net.pterodactylus.rhynodge.states.ComicState.Comic;
import net.pterodactylus.rhynodge.states.FailedState;
import net.pterodactylus.rhynodge.states.HtmlState;
-import com.google.common.base.Optional;
import org.jsoup.nodes.Document;
import org.junit.jupiter.api.Test;
@Override
protected Optional<String> extractTitle(Document document) {
- return fromNullable(title);
+ return ofNullable(title);
}
@Override
package net.pterodactylus.rhynodge.filters.comics;
-import static com.google.common.base.Optional.of;
+import static java.util.Optional.of;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.is;
import java.io.IOException;
import java.util.List;
+import java.util.Optional;
import net.pterodactylus.rhynodge.filters.ResourceLoader;
-import com.google.common.base.Optional;
import org.jsoup.nodes.Document;
import org.junit.jupiter.api.Test;
package net.pterodactylus.rhynodge.filters.comics
-import com.google.common.base.Optional
+import java.util.Optional
import net.pterodactylus.rhynodge.filters.ResourceLoader
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.contains