summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt')
-rw-r--r--app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt b/app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt
index 532b109..63fbdb2 100644
--- a/app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt
+++ b/app/src/main/java/org/terst/feedreader/readability/ExtractionFailure.kt
@@ -28,6 +28,12 @@ sealed interface ExtractionFailure {
/** The JS result could not be decoded. */
data class BadResult(val raw: String) : ExtractionFailure
+
+ /**
+ * Readability returned content, but it was the page's cookie/consent notice,
+ * not the article -- see [ConsentNotice].
+ */
+ data object ConsentInterstitial : ExtractionFailure
}
private const val MILLIS_PER_SECOND = 1_000
@@ -47,6 +53,7 @@ fun ExtractionFailure.userMessage(): String = when (this) {
is ExtractionFailure.ReadabilityError -> "Couldn't parse the article ($message)"
ExtractionFailure.NoContent -> "No article text found on the page"
is ExtractionFailure.BadResult -> "Unexpected result from the page"
+ ExtractionFailure.ConsentInterstitial -> "Only the site's cookie notice came through, not the article"
}
/**
@@ -61,4 +68,6 @@ fun ExtractionFailure.diagnostic(): String = when (this) {
is ExtractionFailure.ReadabilityError -> "ReadabilityError $message"
ExtractionFailure.NoContent -> "NoContent (Readability returned no usable body)"
is ExtractionFailure.BadResult -> "BadResult raw=${raw.take(RAW_DIAGNOSTIC_CHARS)}"
+ ExtractionFailure.ConsentInterstitial ->
+ "ConsentInterstitial (extracted content was the page's cookie/consent notice)"
}