summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwn_ <invalid@email.com>2025-06-17 17:52:06 +0000
committerwn_ <invalid@email.com>2025-06-17 17:52:06 +0000
commitef1f3cbcef50aecc126c4d29946407e0710ff97d (patch)
tree20065b5b118e2c5bca7a2fedf03ea181c496755d
parent4e47a39c2a9325828db19e46155cdac32c4dc4b2 (diff)
Show some HTML content as a hover tip when the 'feed URL' returned HTML without feeds.
Also tweak the 'Feeds::_subscribe()' documentation a bit.
-rw-r--r--classes/Feeds.php30
-rw-r--r--js/CommonDialogs.js4
2 files changed, 20 insertions, 14 deletions
diff --git a/classes/Feeds.php b/classes/Feeds.php
index 7b0fc60cc..242801891 100644
--- a/classes/Feeds.php
+++ b/classes/Feeds.php
@@ -985,19 +985,23 @@ class Feeds extends Handler_Protected {
}
/**
- * @return array<string, mixed> (code => Status code, message => error message if available)
+ * @return array{code: int, message?: string}|array{code: int, feeds: array<string>}|array{code: int, feed_id: int}
+ * code - status code (see below)
+ * message - optional error message
+ * feeds - list of discovered feed URLs
+ * feed_id - ID of the existing or added feed
*
- * 0 - OK, Feed already exists
- * 1 - OK, Feed added
- * 2 - Invalid URL
- * 3 - URL content is HTML, no feeds available
- * 4 - URL content is HTML which contains multiple feeds.
- * Here you should call extractfeedurls in rpc-backend
- * to get all possible feeds.
- * 5 - Couldn't download the URL content.
- * 6 - Content is an invalid XML.
- * 7 - Error while creating feed database entry.
- * 8 - Permission denied (ACCESS_LEVEL_READONLY).
+ * 0 - OK, Feed already exists
+ * 1 - OK, Feed added
+ * 2 - Invalid URL
+ * 3 - URL content is HTML, no feeds available
+ * 4 - URL content is HTML which contains multiple feeds.
+ * Here you should call extractfeedurls in rpc-backend
+ * to get all possible feeds.
+ * 5 - Couldn't download the URL content.
+ * 6 - Content is an invalid XML.
+ * 7 - Error while creating feed database entry.
+ * 8 - Permission denied (ACCESS_LEVEL_READONLY).
*/
static function _subscribe(string $url, int $cat_id = 0, string $auth_login = '', string $auth_pass = '', int $update_interval = 0): array {
@@ -1038,7 +1042,7 @@ class Feeds extends Handler_Protected {
$feedUrls = self::_get_feeds_from_html($url, $contents);
if (count($feedUrls) == 0) {
- return array("code" => 3);
+ return array("code" => 3, "message" => truncate_string($contents, 1000, '…'));
} else if (count($feedUrls) > 1) {
return array("code" => 4, "feeds" => $feedUrls);
}
diff --git a/js/CommonDialogs.js b/js/CommonDialogs.js
index 1dec1b6da..dcf25a566 100644
--- a/js/CommonDialogs.js
+++ b/js/CommonDialogs.js
@@ -168,7 +168,9 @@ const CommonDialogs = {
dialog.show_error(__("Specified URL seems to be invalid."));
break;
case 3:
- dialog.show_error(__("Specified URL doesn't seem to contain any feeds."));
+ dialog.show_error(`<span title="${App.escapeHtml(rc['message'])}" style="text-decoration: underline dotted">
+ ${__("Specified URL doesn't seem to contain any feeds.")}
+ </span>`);
break;
case 4:
{