Closed emacsomancer closed 4 years ago
Well, newsblur works fine for me just now. Could you post the detailed trace log here?
(setq elfeed-protocol-log-trace t)
(setq elfeed-protocol-newsblur-maxpages 1)
Here's the emacs debug info:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
string-match("::" nil 0)
split-string(nil "::")
(let ((list (split-string url "::"))) (if (eq 2 (length list)) (progn (elt list 1))))
elfeed-protocol-subfeed-url(nil)
(type-of (elfeed-protocol-subfeed-url url))
(eq 'string (type-of (elfeed-protocol-subfeed-url url)))
elfeed-protocol-subfeed-p(nil)
elfeed-protocol-advice-feed-autotags(#f(compiled-function (url-or-feed) "Return tags to automatically apply to all entries from URL-OR-FEED." #<bytecode -0x1ec0d362f8637f25>) nil)
apply(elfeed-protocol-advice-feed-autotags #f(compiled-function (url-or-feed) "Return tags to automatically apply to all entries from URL-OR-FEED." #<bytecode -0x1ec0d362f8637f25>) nil)
elfeed-feed-autotags(nil)
(let ((elfeed-feeds (elfeed-protocol-meta-autotags proto-id))) (elfeed-feed-autotags url-or-feed))
elfeed-protocol-feed-autotags("newsblur+https//myusername:@newsblur.com" nil)
elfeed-protocol-newsblur--parse-entries("https://myuser..." (... ... ... ... ... ... ...) t nil)
#f(compiled-function (status) #<bytecode -0x8548c5c9b1a42b6>)(t)
#f(compiled-function (status) #<bytecode -0x1ebb6f0c9f47e03d>)(t)
#f(compiled-function () #<bytecode -0x1cc6b2424523b125>)()
elfeed-curl--call-callback(#<buffer *curl*> 0 "https://newsblur.com/reader/starred_stories?page=1" #f(compiled-function (status) #<bytecode -0x1ebb6f0c9f47e03d>))
apply(elfeed-curl--call-callback (#<buffer *curl*> 0 "https://newsblur.com/reader/starred_stories?page=1" #f(compiled-function (status) #<bytecode -0x1ebb6f0c9f47e03d>)))
timer-event-handler([t 24141 31154 772195 nil elfeed-curl--call-callback (#<buffer *curl*> 0 "https://newsblur.com/reader/starred_stories?page=1" #f(compiled-function (status) #<bytecode -0x1ebb6f0c9f47e03d>)) nil 787000])
Hi, It's not the error backtrace log, it's the detailed trace log in elfeed-log with the following config:
(setq elfeed-protocol-log-trace t)
(setq elfeed-protocol-newsblur-maxpages 1)
It seems to be related to this weird issue https://github.com/skeeto/elfeed/issues/277 but, having tested further, it only happens on one machine and not the other (using exactly the same emacs configuration).
I think it's related to that issue because I get the error:
Error running timer ‘elfeed-curl--call-callback’: (wrong-type-argument stringp nil)
I think the elfeed-log will just be a red herring in this case, and I will have to spend some time to sanitise it, but I can do so if you think it will be helpful.
This doesn't seem to occur (on the same machine) when I load Newsblour's opml file into elfeed directly (without using elfeed-protocol) though, so I don't quite understand the source of the issue.
I see. At least newsblur works with elfeed 3.3.0
and elfeed-protocol 0.7.2
in my Linux Emacs 26.3
.
And the first error no subfeed for feed id 5843473
means variable elfeed-protocol-newsblur-feeds
is empty or didn't contains the special feed id.
If you don't want upload the detailed elfeed-log content, you could debug it yourself with the steps:
(setq elfeed-protocol-log-trace t)
, the prefer result looks like:
[debug]: elfeed-protocol-newsblur: update feed list
[debug]: ..."feeds": { "5843473": { ... } }...
elfeed-protocol-newsblur-feeds
contains feed items, the prefer result is it should contains multiple feed items.elfeed-protocol-newsblur-feeds
contains special feed id, the prefer result is it should contains feed 5843473.And if you could not reproduct the issue repeatly, maybe just a temporary curl network error, close the issue will be fine.
It consistently occurs on my one machine (i.e. I can't get elfeed-protocol to work at all on this machine), despite sharing a configuration with a machine where elfeed-protocol works fine.
I'll investigate further and report any findings.
Ok, now I'm getting the same behaviour on both machines.
This is the *elfeed-log*
: https://filebin.ca/5EG9oqgTfWxD
Thanks for your *elfeed-log*
. I built a test case for your log, and it shows everything is fine. I will deploy same environment with you(emacs version: GNU Emacs 28.0.50, elfeed version: 20200209.1942) and test again.
Well, I could not reproduce the issue on elfeed version 20200209.1942 either.
Flatpak don't provide emacs 28.0, could you reproduce it in another emacs version(for example 26.3)? Your log shows Newsblur return the correct data, and I have no idea for the issue now..
BTW: I use curl 7.65.3
Thanks. I'm at a loss to understand what the issue would be. It worked fine for many months before this.
I provide a workaround for unknown feed id in commit d081215. In theory it allows you read and mark Newsblur articles like before. And this issue need more information to debug it. Let's look at it later.
Well, I could not reproduce the issue on elfeed version 20200209.1942 either.
Flatpak don't provide emacs 28.0, could you reproduce it in another emacs version(for example 26.3)? Your log shows Newsblur return the correct data, and I have no idea for the issue now..
BTW: I use curl
7.65.3
The elfeed log I sent actually came from a different machine, running Emacs 26.3, with curl 7.68.
I provide a workaround for unknown feed id in commit d081215. In theory it allows you read and mark Newsblur articles like before. And this issue need more information to debug it. Let's look at it later.
Many thanks. I'll try this.
Unfortunately with the new update, it now displays all Feed names as 'nil':
nil [us news,public health,o As Coronavirus infections near 100,000 worldwide, fear of mass deaths for the poor
nil [jfk,deepfakery,post,unr Audio deepfake: JFK tells Anakin the story of Darth Plagueis the Wise
nil [technology,tech news,te Clearview AI app was used by investors as powerful toy for spying on the public: Report
nil [world news,uk,scams,hea $1 million stolen in UK coronavirus scams
nil [releases,qtcreator,qt,d Qt Creator 4.12 Beta released
nil [tabletop gaming,magnets Hand of Glory offers modular, magnetic gaming miniatures
nil [msnbc,math is hard,bria MSNBC's Brian Williams is very bad at math
nil [plex,creative future,op Plex Slammed By Huge Copyright Coalition For Not Policing Pirates
nil [exercises,unread] Squares Of A Sorted Array
nil [music,video,post,unread Ecce tympanista
nil [unread] Business Greetings
nil [shop,post,unread] Kickstart your digital marketing career with this 100-hour training bundle
nil [orthography,unread] Fancy diacritics
End of entries.
tail of *elfeed-log*
:
[2020-03-06 06:44:06] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 1581431339
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5859751, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 2140, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 7934, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5994357, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5843473, fallback to unknown feed
[2020-03-06 06:44:06] [warn]: elfeed-protocol-newsblur: no subfeed for feed id 5629449, fallback to unknown feed
[2020-03-06 06:44:06] [debug]: elfeed-protocol-newsblur: parsed 13 entries with 0.084946s, last-modified: 1583501696
Well, it should show Unknown Feed
instead at least...
I think I find the reason, your elfeed-protocol-newsblur-feeds
should be not empty, how ever the PROTO-ID(such as "newsblur+https://myusername@newsblur.com"
) is incorrect for some reason. could you paste the head part of your elfeed-protocol-newsblur-feeds
here? For example:
#s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data
("newsblur+https://myusername@newsblur.com"
((\569
(subs . 18069)
(favicon_url . "https://s3.amazonaws.com/icons.newsblur.com/569.png")
(is_push . t)
(feed_opens . 3)
(id . 569)
(s3_icon . t)
(feed_link . "https://anildash.com/")
(updated_seconds_ago . 159)
(favicon_fetching . :json-false)
(ng . 0)
(favicon_border . "8b7875")
(last_story_date . "2019-12-23 22:21:36")
(nt . 0)
(not_yet_fetched . :json-false)
(updated . "2 minutes")
(average_stories_per_month . 3)
(ps . 0)
(feed_address . "http://feeds.dashes.com/AnilDash")
(feed_title . "Anil Dash")
(favicon_fade . "ddc4c0")
(is_newsletter . :json-false)
(last_story_seconds_ago . 6408735)
(favicon_color . "baa19d")
(stories_last_month . 0)
(active . t)
(fetched_once . t)
(favicon_text_color . "white")
(subscribed . t)
(num_subscribers . 18069)
(s3_page . :json-false)
(min_to_decay . 240)
(search_indexed . t))
...
And looks you put a colon after username. How about remove the colon? You could clean elfeed-db-directory
and retry.
(setq elfeed-feeds '(("newsblur+https://myusername:@newsblur.com"
:password "*****")))
Well, it should show
Unknown Feed
instead at least...
Though 'unknown feed' isn't really helpful for reading through a feed either.
I think I find the reason, your
elfeed-protocol-newsblur-feeds
should be not empty, how ever the PROTO-ID(such as"newsblur+https://myusername@newsblur.com"
) is incorrect for some reason. could you paste the head part of yourelfeed-protocol-newsblur-feeds
here?
Here it is:
#s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data
("newsblur+https://emacsomancer@newsblur.com"
((\7575960
(subs . 1)
(favicon_url . "https://s3.amazonaws.com/icons.newsblur.com/7575960.png")
(is_push . :json-false)
(feed_opens . 3)
(id . 7575960)
(s3_icon . t)
(feed_link . "https://jdb1745.net/littlerebellions")
(updated_seconds_ago . 8214)
(favicon_fetching . :json-false)
(ng . 0)
(favicon_border . "484a43")
(last_story_date . "2019-12-19 22:32:06")
(nt . 0)
(not_yet_fetched . :json-false)
(updated . "2 hours")
(average_stories_per_month . 1)
(ps . 0)
(feed_address . "https://jdb1745.net/littlerebellions/feed/")
(feed_title . "Little Rebellions")
(favicon_fade . "83867d")
(is_newsletter . :json-false)
(last_story_seconds_ago . 6755895)
(favicon_color . "60635a")
(stories_last_month . 0)
(active . t)
(fetched_once . t)
(favicon_text_color . "white")
(subscribed . t)
(num_subscribers . 1)
(s3_page . :json-false)
(min_to_decay . 240)
(search_indexed . :json-false))
And looks you put a colon after username. How about remove the colon? You could clean
elfeed-db-directory
and retry.
I don't in reality. I just messed up my copy-and-paste into Github originally.
Thanks your quick feedback. I mean it not display Unknown Feed
as title shows something is wrong, maybe the same reason with feed not found.
How about the expressions result in your side:
(elfeed-db-get-feed "newsblur+https://emacsomancer@newsblur.com::unknown-feed")
(elfeed-protocol-newsblur--get-subfeed-url "https://emacsomancer@newsblur.com" 5843473) ; reported not found in elfeed-log
(elfeed-protocol-newsblur--get-subfeed-url "https://emacsomancer@newsblur.com" 7575960) ; confirmed exists in elfeed-protocol-newsblur-feeds
Besides, move curse to one entry in elfeed-search view that title is nil, then Alt-:
eval (elfeed-search-selected)
, and paste the result in message buffer. Hope the entry object will show some information.
Thanks your quick feedback. I mean it not display
Unknown Feed
as title shows something is wrong, maybe the same reason with feed not found.How about the expressions result in your side:
(elfeed-db-get-feed "newsblur+https://emacsomancer@newsblur.com::unknown-feed") (elfeed-protocol-newsblur--get-subfeed-url "https://emacsomancer@newsblur.com" 5843473) ; reported not found in elfeed-log (elfeed-protocol-newsblur--get-subfeed-url "https://emacsomancer@newsblur.com" 7575960) ; confirmed exists in elfeed-protocol-newsblur-feeds
Here is what I get for these:
(elfeed-db-get-feed "newsblur+https://emacsomancer@newsblur.com::unknown-feed");
#s(elfeed-feed "newsblur+https://emacsomancer@newsblur.com::unknown-feed" nil nil nil nil)
(elfeed-protocol-newsblur--get-subfeed-url "https://emacsomancer@newsblur.com" 5843473);
"unknown-feed"
(elfeed-protocol-newsblur--get-subfeed-url "https://emacsomancer@newsblur.com" 7575960);
"unknown-feed"
Besides, move curse to one entry in elfeed-search view that title is nil, then
Alt-:
eval(elfeed-search-selected)
, and paste the result in message buffer. Hope the entry object will show some information.
Picking a random entry, for this I get:
(#s(elfeed-entry ("unknown-feed" . "6918b5") "Friday Squid Blogging: The Effect of Noise on Squid" "https://www.schneier.com/blog/archives/2020/03/friday_squid_bl_719.html" 1583532385 #s(elfeed-ref "63f230bc61f6825ace582d6366511454f7e1859e") html nil (squid unread) "newsblur+https://emacsomancer@newsblur.com::unknown-feed" (:author "Bruce Schneier" :protocol-id "newsblur+https://emacsomancer@newsblur.com" :id "5882445:6918b5" :guid-hash "6918b5" :feed-id 5882445)))
Something must wrong.
elfeed-db-get-feed
should return unknown feed correctly, I added it before any update operation, you can also search elfeed-db's index
file to find it.
(elfeed-protocol-add-unknown-feed proto-id) ; proto-id here is "newsblur+https://emacsomancer@newsblur.com"
elfeed-protocol-newsblur--get-subfeed-url
even don't depends on elfeed-db, once elfeed-protocol-newsblur-feeds
is correctly, it should return the correct value. This function is not complicated, could you help me debug it?
https://github.com/fasheng/elfeed-protocol/blob/master/elfeed-protocol-newsblur.el#L159Something must wrong.
You'll obviously know more than I here, but the two things I can think of are:
One of my RSS subscriptions in Newsblur does something expected, that none of your feeds does, and it ends up messing up a bunch of things.
Newer versions of curl changed something.
1. `elfeed-db-get-feed` should return unknown feed correctly, I added it before any update operation, you can also search elfeed-db's `index` file to find it. ```emacs-lisp (elfeed-protocol-add-unknown-feed proto-id) ; proto-id here is "newsblur+https://emacsomancer@newsblur.com" ```
Yes, well, (elfeed-protocol-add-unknown-feed "newsblur+https://emacsomancer@newsblur.com")
returns "Unknown Feed"
.
2. `elfeed-protocol-newsblur--get-subfeed-url` even don't depends on elfeed-db, once `elfeed-protocol-newsblur-feeds` is correctly, it should return the correct value. This function is not complicated, could you help me debug it? https://github.com/fasheng/elfeed-protocol/blob/master/elfeed-protocol-newsblur.el#L159
I looked at the function itself, but I haven't had a chance to try debugging in my Emacs setup. I'll have to wait a bit until I get a block of time I can dedicate to it.
Hi, I have the same issue with Newsblur I get an unknown feed for id xxxxxx...
@Vietoonet Please paste your environment information(OS version, emacs version, etc). And do you have the problem frequently?
GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.21, cairo version 1.16.0) of 2020-08-13 Linux Calculate (Gentoo based) v20.4
Thanks @emacsomancer and @Vietoonet. Finally this issue was solved, which was caused by the changed behavior of map-elt
after emacs 27. Please update and have a try.
I'm having trouble using elfeed-protocol with my newsblur account (though it worked previously). (When I download the opml file from newsblur and load it manually in elfeed, it works fine.)
Linux 5.4.19_1 #1 SMP PREEMPT Wed Feb 12 09:45:49 UTC 2020 x86_64 GNU/Linux
GNU Emacs 28.0.50
20200209.1942
20200215.1223
elfeed-protocol-xxx-feeds
empty:no
elfeed-log [2020-02-18 13:54:49] [debug]: elfeed-protocol-newsblur: update feed list
[2020-02-18 13:54:51] [debug]: elfeed-protocol-newsblur: update entries with action init, arg nil
[2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 4007198 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 4007198 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5629449 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 4007198 [2020-02-18 13:54:56] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:54:56] [error]: elfeed-protocol-newsblur: no subfeed for feed id 2140 [2020-02-18 13:55:41] [debug]: elfeed-protocol-newsblur: update feed list
[2020-02-18 13:55:42] [debug]: elfeed-protocol-newsblur: update entries with action init, arg nil
[2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 2140 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 4007198 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 5843473 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 4007198 [2020-02-18 13:55:49] [debug]: elfeed-protocol-newsblur: parsing entries, last-modified: 0 [2020-02-18 13:55:49] [error]: elfeed-protocol-newsblur: no subfeed for feed id 4007198
Please collect logs in buffer
*elfeed-log*
with the following config before reporting issues:error backtrace
elfeed-protocol config