skeeto / elfeed Goto Github PK
View Code? Open in Web Editor NEWAn Emacs web feeds client
License: The Unlicense
An Emacs web feeds client
License: The Unlicense
It would be nice if there was a defcustom that controlled the format of the date in the elfeed-search buffer.
I have currently ~ 550 feeds. (a lot of youtube and vimeo feeds)
Elfeed's db is ~ 526 MiB.
Can you give me some tips about db maintenance?
Any feedback is appreciated before I run out of disk space :)
(defun elfeed-show-yank ()
"Visit the current entry in the browser."
(interactive)
(let ((link (elfeed-entry-link elfeed-show-entry)))
(when link
(x-set-selection 'PRIMARY link)
(message "Yanked: %s" link))))
Is the same docstring like in elfeed-show-visit.
I can't find gnutls-available-p
Symbol's function definition is void: gnutls-available-p
Emacs 24.3.1
Mac OS X 10.9.1-x86_64
First of all, thank you for your great alternative feed reader. It seems like minimalistic newsbeuter done right. Second, I'm totally noob to Emacs, and try using its great addons before I learnt the editor itself.
When I call elfeed-add-feed function the error message says "Symbol's function definition is void: x-get-selection-value". Maybe it's because of the absence of X11-related functions on Emacs for OS X.
If I press C-g
for any reason while elfeed is updating, I will get a (:error (error "Transfer interrupted!"))
. The solution is to wrap the callbacks, or at least some portions with
(let ((inhibit-quit t))
;; ...
)
Obviously the code inside this section must never hang.
I recently received a warning about the size of the buffer undo list in *elfeed-search*
.
I added buffer-disable-undo
to my elfeed-search-mode-hook
and haven't seen any ill effects. However, I'm not very knowledgeable about Emacs's undo system. (My due diligence consisted entirely of a quick grep through elfeed's source for any references to "undo").
Do you know if disabling undo like that in the search buffer is safe/reasonable? Are there any downsides to be aware of?
Thanks - elfeed is a great package.
When I update my feeds, the updating sometimes gets stuck (nothing happens after a while, and the status text remains at "89 feeds pending, 1 in process ...").
I've tried doing C-g, q, or killing the buffer, but I found the only way to quit the update process is to restart emacs. Is there a better way?
Problem happens when elfeed fetches simultaneously HTTPS and HTTP feed. Emacs just stucks for a while and update doesn't proceed.
Here is part of backtrace:
Debugger entered--Lisp error: (quit)
re-search-forward("\\(^ Verify return code: .+\n---\n\\|^- Simple Client Mode:\n\\(\n\\|^\\*\\*\\* Starting TLS handshake\n\\)*\\)" nil t)
open-tls-stream("feeds2.feedburner.com" #<buffer *url-http-temp*-69304> "feeds2.feedburner.com" 80)
network-stream-open-tls("feeds2.feedburner.com" #<buffer *url-http-temp*-69304> "feeds2.feedburner.com" 80 (:type tls :nowait t))
open-network-stream("feeds2.feedburner.com" #<buffer *url-http-temp*-69304> "feeds2.feedburner.com" 80 :type tls :nowait t)
...
url-retrieve
...
elfeed--check-queue()
...
url-http-activate-callback()
...
url-http
url-https
...
elfeed--check-queue()
Looking at backtrace, I can see that url-open-stream tries to use tls method for port 80 which is cleary invalid and results in my issue. Normally url-open-stream checks for url-gateway-method variable. However this variable is set by url-https down the stack and elfeed--check-queue asks to retreive new HTTP URL with url-gateway-method already set to tls.
One solution I could propose is to reset url-gateway-method to default value but I don't like this approach. Perhaps code that manages queue can be changed in some other way to fix the issue?
BTW what do you think about using url-queue-retrieve?
Currently I'm subscribed to 78 feeds. The elfeed-update
takes 2m 45s to fetch them all one by one.
My initial workflow for feed updating was: 1) Got time to read new feeds, 2) If there are no new feeds, start elfeed-update. 3) Wait almost 3 minutes. 4) Read. Then I became familiar with run-at-time
function, and set up auto-update. So the updating is still long, but it runs in background.
Still, is there any chance to make it faster? What is the bottleneck of this process: fetching, parsing, or storing? If first is the problem, than may be it could be better to use curl/wget, if available?
Wouldn't it make more sense to test cl-every
instead of cl-some
in the regular expression match in elfeed-search-filter
? You can achieve "or" semantics easily with the \|
syntax in regular expression, but it's very difficult to do "match thing having foo
and bar
in any order anywhere in the title".
Say you are reading lots of webcomics, you might want to "read a comic
about thing
, but these come in various orders because every artist has the titles set up differently.
Scenario:
Boring day 1.
I want to add some daily humor feed and I go to http://www.dilbert.com/
I see a standard RSS img link (http://www.dilbert.com/rss/).
I copy it and paste directly to my elfeed-feeds-alist.
Regular day 2.
I open my beloved elfeed and want to update my feeds,
but in the middle of the update process my CPU workload goes to 100% and my available RAM is gradually smaller and smaller - after 3GB nothing left.
And I totally forget about new feed addition. Anyway - what can be wrong with
http://www.dilbert.com/rss/?
But it reality - everything is wrong.
http://www.dilbert.com/rss/ is an address where you can find proper RSS links :)
Not a real feed url.
After update I get "odd number" #13 surprise.
Fortunately I have a cronjob for .elfeed dir backup.
Great success! I do not lost my data.
In conclusion:
Elfeed should be able to detect invalid feeds/formats and for sure do not kill RAM and CPU, b/c of them, during update.
Now I will always check URL manually, but such safety mechanism would be nice addition.
Tested with:
URL: http://www.dilbert.com/rss/
Emacs 24.3, emacs 24.4
Elfeed from master HEAD.
I set up my Zotero feed, which uses an https URL. Unfortunately, url-retrieve
is not able to retrieve it. The error comes from gnutls. I tested it with gnutls-cli. However, mm-url-insert
has no problem with it. I also tried giving elfeed the local URL file:///path/to/feed.xml
to the feed but it complains with void-variable url-http-end-of-headers
. I really need to get this working, elfeed is becoming an essential tool in my workflow.
I got this error when trying to open a feed for reading. Here is the backtrace, if it can be of any help:
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
elfeed-insert-link("https://inconsolation.wordpress.com/2014/12/31/bonus-2014-in-review/" "https://inconsolation.wordpress.com/2014/12/31/bonus-2014-in-review/")
elfeed-show-refresh()
elfeed-show-entry([cl-struct-elfeed-entry ("http://inconsolation.wordpress.com/feed/" . "http://inconsolation.wordpress.com/?p=8246") "Bonus: 2014 in review" "https://inconsolation.wordpress.com/2014/12/31/bonus-2014-in-review/" 1420036223.0 [cl-struct-elfeed-ref "67d04e1eab49f5c467b6fdb3781317900df9fa78"] html nil (blog) "http://inconsolation.wordpress.com/feed/" nil])
elfeed-search-show-entry([cl-struct-elfeed-entry ("http://inconsolation.wordpress.com/feed/" . "http://inconsolation.wordpress.com/?p=8246") "Bonus: 2014 in review" "https://inconsolation.wordpress.com/2014/12/31/bonus-2014-in-review/" 1420036223.0 [cl-struct-elfeed-ref "67d04e1eab49f5c467b6fdb3781317900df9fa78"] html nil (blog) "http://inconsolation.wordpress.com/feed/" nil])
funcall-interactively(elfeed-search-show-entry [cl-struct-elfeed-entry ("http://inconsolation.wordpress.com/feed/" . "http://inconsolation.wordpress.com/?p=8246") "Bonus: 2014 in review" "https://inconsolation.wordpress.com/2014/12/31/bonus-2014-in-review/" 1420036223.0 [cl-struct-elfeed-ref "67d04e1eab49f5c467b6fdb3781317900df9fa78"] html nil (blog) "http://inconsolation.wordpress.com/feed/" nil])
#<subr call-interactively>(elfeed-search-show-entry nil nil)
ad-Advice-call-interactively(#<subr call-interactively> elfeed-search-show-entry nil nil)
apply(ad-Advice-call-interactively #<subr call-interactively> (elfeed-search-show-entry nil nil))
call-interactively(elfeed-search-show-entry nil nil)
command-execute(elfeed-search-show-entry)
I'm using GNU Emacs 25.0.50.1.
I'm fairly new to elfeed and really like it, so far, but it's missing a feature I really liked in gnus. Gnus can be configured to use the rss-blogs shimbun to fetch the page linked to by a feed entry and use regex to pull out just the content. This is especially useful for feeds that do not include the full content in the feed entry.
It looks like this could be accomplished through an elfeed-new-entry-hook but my lisp-fu is really weak. It may even be possible to use shimbun itself but converting the result to something that elfeed can use might be more trouble that it's worth.
Thank you for your time and the excellent app.
I think it would be nice to have better completition in the search dialog (s or S). Specifically, tags could be autocompleted (if the word starts with +
/-
), also dates (with @) format, for example @2-d
could expand to days
etc.
To achieve this, it would be necessary to get a list of all existing tags. Is there a simple way to do this? I could try to hack the completition "engine" myself, but I don't understand much how the elfeed database works.
Thanks
On every RSS update elfeed updates date for entries with no tag to the current date. This leads to such entries to be always "new" that is on the top of elfeed search buffer. It would be nicer if entries with no pubDate preserve the date of when they were fetched the first time.
As illustrated by the feed from Xah Lee (http://ergoemacs.org/emacs/blog.xml), some feeds use the xml:base attribute in the main tag to provide the url to which other entries may be relative. It would be great if elfeed could support it.
I use elfeed almost exclusively for viewing table of contents from academic journals (via current awareness services from publishers who provide rss feeds). I would like an automatic option to import the link to an article into zotero, parse the metadata and download the corresponding pdf file (if it is downloadable) automatically.
Could you give me any hints on where to start with this?
i get this error when trying to update a gmane feed:
Elfeed update failed for http://rss.gmane.org/messages/complete/gmane.comp.php.phpunit.user: (error Unknown feed type.)
the url being used is: http://rss.gmane.org/messages/complete/gmane.comp.php.phpunit.user
this applies for every gmane feed i've added.
In emacs 24.3 and in emacs snapshot
Debugger entered--Lisp error: (error "Odd number of elements in hashtable data")
read(#<buffer index>)
(setq elfeed-db (read (current-buffer)))
(save-current-buffer (set-buffer (find-file-noselect index)) (goto-char (point-min)) (setq elfeed-db (read (current-buffer))) (kill-buffer))
(if (not (file-exists-p index)) (let ((db (setq elfeed-db (list :version elfeed-db-version)))) (plist-put db :feeds (make-hash-table :test (quote equal))) (plist-put db :entries (make-hash-table :test (quote equal))) (plist-put db :index (let ((cmpfun (function elfeed-db-compare))) (progn (vector (quote cl-struct-avl-tree-) (progn (vector nil nil nil 0)) (function elfeed-db-compare)))))) (save-current-buffer (set-buffer (find-file-noselect index)) (goto-char (point-min)) (setq elfeed-db (read (current-buffer))) (kill-buffer)))
(let ((index (expand-file-name "index" elfeed-db-directory))) (if (not (file-exists-p index)) (let ((db (setq elfeed-db (list :version elfeed-db-version)))) (plist-put db :feeds (make-hash-table :test (quote equal))) (plist-put db :entries (make-hash-table :test (quote equal))) (plist-put db :index (let ((cmpfun (function elfeed-db-compare))) (progn (vector (quote cl-struct-avl-tree-) (progn ...) (function elfeed-db-compare)))))) (save-current-buffer (set-buffer (find-file-noselect index)) (goto-char (point-min)) (setq elfeed-db (read (current-buffer))) (kill-buffer))) (progn (setq elfeed-db-feeds (plist-get elfeed-db :feeds)) (setq elfeed-db-entries (plist-get elfeed-db :entries)) (setq elfeed-db-index (plist-get elfeed-db :index)) (progn (or (and (memq (aref elfeed-db-index 0) cl-struct-avl-tree--tags)) (error "%s accessing a non-%s" (quote avl-tree--cmpfun) (quote avl-tree-))) (let* ((v elfeed-db-index)) (aset v 2 (function elfeed-db-compare))))))
elfeed-db-load()
(progn (elfeed-db-load))
(if (null elfeed-db) (progn (elfeed-db-load)))
elfeed-db-ensure()
elfeed-db-save()
kill-emacs()
save-buffers-kill-emacs()
handle-delete-frame((delete-frame (#<frame *scratch* 0x119b7a0>)))
dframe-handle-delete-frame((delete-frame (#<frame *scratch* 0x119b7a0>)))
call-interactively(dframe-handle-delete-frame nil [(delete-frame (#<frame *scratch* 0x119b7a0>))])
Wouldn't it be possible to implement async updating of feeds using the emacs-async library ?
There is a similar use of it for 'paradox' as explained here
A really tiny request:
At the moment the default filter is '@6-months-ago +unread' and I quite often just update the feed list, press s, type an additional keyword to filter the results forgetting the space. It does not work, since my keyword gets joined to tag '+unread'.
So, could you please change the default filter to '@6-months-ago +unread ' with a space character at the end.
Hello,
Configured elfeed for emacs, got rss, after i'm trying to open any rss feed, got following error:
Elfeed: libxml2 functionality is unavailable
Emacs configured with libxml2 support:
Does Emacs use -lxml2? yes
Is it possible to handle not well-formed XML on our side
or at least allow '&'?
If I have some troubles with
Elfeed update failed for http://swannodette.github.com/atom.xml: (error XML: (Not Well-Formed) Invalid entity reference)
then this is almost always ‘&’.
Sometimes content providers do not react properly for notifications to fix not well-formed content.
Disabling feed is a little too harsh solution.
Escape hatch in form of — ok, I will allow ‘&’ — would be helpful in such situations.
XML Parsing Error: not well-formed
Location: http://bitemyapp.com/rss.xml
Line Number 11, Column 56: <title>Parsing and rendering templates in Clojure & Haskell</title>
-------------------------------------------------------^
http://swannodette.github.com/atom.xml
XML Parsing Error: not well-formed
Location: http://swannodette.github.io/atom.xml
Line Number 128, Column 26: <title>Transit, JSON & ClojureScript</title>
-------------------------^
I my opinion the plus character '+' should match 'any category' in a search string.
I keep trying to reduce key strokes that I repeat a lot. I usually start elfeed session by reading the most common new categories first and for me that is 'Daily News' : '+n'. When I am done with those, I replace that part of the search string with '+j' that lists new science journal feeds. After that I go for the next most numerous category. (They all have one letter codes) Backspacing the search string from '... +n' to '...+' still does not display any articles because '+' has a special meaning to note a category and does not match anything.
However, in practice all articles have some category (default being something like '+read' or but there is no reason to ever show that as a string). Therefore a better semantic for '+' is 'any category'.
In other words, the effect of the following two search strings should be the same:
@1-month-ago +unread +
@1-month-ago +unread
That would allow me to use the former to see the most numerous category, and type in the corresponding one letter category and enter to start reading those articles. ... And it makes more semantic sense, at least to me.
Adding tags for future reference is quite useful, but at the moment I have to jump back to elfeed-search to elfeed-search-tag-all. Doing it while viewing the post would be better
Can anyone confirm this with:
("https://www.simonsfoundation.org/quanta-archive/feed" press science math physics)
Errors in Messages after feeds update sesssion:
gnutls.c: [0] (Emacs) fatal error: An unexpected TLS handshake packet was received.
gnutls.el: (err=[-19] An unexpected TLS handshake packet was received.) boot: (:priority NORMAL :hostname www.simonsfoundation.org :loglevel 0 :min-prime-bits 1024 :trustfiles (/etc/ssl/certs/ca-certificates.crt) :crlfiles nil :keylist nil :verify-flags nil :verify-error nil :verify-hostname-error nil :callbacks nil)
Elfeed update failed for https://www.simonsfoundation.org/quanta-archive/feed: (:error (gnutls-error #<process www.simonsfoundation.org> -19))
From http://gnutls.org/manual/html_node/Error-codes.html
-19 GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET An unexpected TLS handshake packet was received.
Hi,
I'm facing an issue with updating the majority of my feeds.
Elfeed update failed for http://feeds.mashable.com/Mashable?format=xml: (void-variable feed-title)
Sorry but, wasn't able to find answers using the void-variable / feed-title keywords. Thanks.
When I hit tab
to get to a link, I get an error message (void-function shr-next-link)
. According to issue #21 this function is not available on OS X, which I can confirm (I'm using the emacs port from https://github.com/railwaycat/emacs-mac-port).
The docs say that n/p and will move to the next/previous entry. That didn't work for me. Here is the output of C-h m:
Major mode for listing elfeed feed entries.
key binding
--- -------
RET elfeed-search-show-entry
+ elfeed-search-tag-all
- elfeed-search-untag-all
0 .. 9 digit-argument
G elfeed-update
b elfeed-search-browse-url
g ??
q quit-window
r ??
s elfeed-search-set-filter
u ??
y elfeed-search-yank
<remap> Prefix Command
Looking at the keymap, it seems that anything defined to do next and previous. Also, it looks like anything defined using the pattern here:
(define-key map "u" (elfeed-expose #'elfeed-search-tag-all 'unread))
Doesn't end up working.
I might be misunderstanding the docs as n/p does work when viewing an entry.
I have the following in my configuration files.
(defun elfeed-entry-as-html-link ()
"Store an http link to an elfeed entry"
(when (equal major-mode 'elfeed-show-mode)
(let ((description (elfeed-entry-title elfeed-show-entry))
(link (elfeed-entry-link elfeed-show-entry)))
(org-store-link-props
:type "http"
:link link
:description description))))
(add-hook 'org-store-link-functions 'elfeed-entry-as-html-link)
This way, when I org-capture in elfeed-show-mode using a template that includes a link, I get a nicely formatted link to the online linked entry. I use this to capture stuff I want to read later. Don't hesitate to use this if you want to integrate this small function to elfeed.
it would be nice to have a way to force elfeed to always show the entire link. i often use emacs on the command line and use an external link grabber, which only works if the entire link is shown.
this would probably necessitate a small change in elfeed-insert-link, to show either the entire url or do as it does now.
thanks for elfeed, using it daily!
After elfeed-update-feed
we get:
Elfeed update failed for https://www.mnot.net/blog/index.atom: (:error (error http 403))
gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated.
In browser https://www.mnot.net/blog/index.atom
loads without problem.
After curl -v -o test https://www.mnot.net/blog/index.atom
we have:
* Hostname was NOT found in DNS cache
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 119.9.43.241...
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to www.mnot.net (119.9.43.241) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Server hello (2):
{ [data not shown]
* SSLv3, TLS handshake, CERT (11):
{ [data not shown]
* SSLv3, TLS handshake, Server key exchange (12):
{ [data not shown]
* SSLv3, TLS handshake, Server finished (14):
{ [data not shown]
* SSLv3, TLS handshake, Client key exchange (16):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Finished (20):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
{ [data not shown]
* SSLv3, TLS handshake, Finished (20):
{ [data not shown]
* SSL connection using TLSv1.2 / DHE-RSA-AES256-GCM-SHA384
* Server certificate:
* subject: OU=Domain Control Validated; OU=Gandi Standard SSL; CN=mnot.net
* start date: 2014-03-14 00:00:00 GMT
* expire date: 2015-03-14 23:59:59 GMT
* subjectAltName: www.mnot.net matched
* issuer: C=FR; O=GANDI SAS; CN=Gandi Standard SSL CA
* SSL certificate verify ok.
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0> GET /blog/index.atom HTTP/1.1
> User-Agent: curl/7.37.1
> Host: www.mnot.net
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 06 Aug 2014 16:03:15 GMT
* Server Apache is not blacklisted
< Server: Apache
< Last-Modified: Sat, 07 Jun 2014 02:11:47 GMT
< ETag: "119c7-4fb35801b4713"
< Accept-Ranges: bytes
< Content-Length: 72135
< Strict-Transport-Security: max-age=7862400
< Public-Key-Pins-Report-Only: max-age=604800; pin-sha256="ZitlqPmA9FDAxkwOW/c7ehlNFk8qJ9FmZLXG6GzdjNM="; pin-sha256="XRXP98inz4rd1/gS9fJSNVfyrZbqY00T7PeRXUPd15w="; report-uri="/lib/key-pin.cgi"
< Content-Type: application/atom+xml
< Content-Language: en
<
{ [data not shown]
45 72135 45 32768 0 0 12253 0 0:00:05 0:00:02 0:00:03 12249
100 72135 100 72135 0 0 26691 0 0:00:02 0:00:02 --:--:-- 26687
* Connection #0 to host www.mnot.net left intact
After wget -v -O testwget https://www.mnot.net/blog/index.atom
:
--2014-08-06 18:25:48-- https://www.mnot.net/blog/index.atom
Resolving www.mnot.net (www.mnot.net)... 119.9.43.241
Connecting to www.mnot.net (www.mnot.net)|119.9.43.241|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 72135 (70K) [application/atom+xml]
Saving to: ‘testwget’
0K .......... .......... .......... .......... .......... 70% 16.8K 1s
50K .......... .......... 100% 104K=3.2s
2014-08-06 18:25:53 (22.2 KB/s) - ‘testwget’ saved [72135/72135]
I also played with openssl s_client -servername mnot.net:443 -connect mnot.net:443
and gnutls-cli -p 443 mnot.net
but I'm still not sure why it's not working with elfeed though.
I get this error message when trying to update the Planet Python feed:
Elfeed update failed for http://planet.python.org/rss20.xml: (wrong-type-argument arrayp nil)
The URL in my elfeed-feeds is "http://planet.python.org/rss20.xml"
What happens is that when the title is clean (via elfeed-cleanup) it fails b/c it is passed nil.
Updating some of my feeds fails with:
Elfeed update failed for http://www.drdobbs.com/rss/all: (:error (error connection-failed "failed with code 101\n" :host "www.drdobbs.com" :service 80))
Elfeed update failed for http://www.drdobbs.com/rss/all: (:error (error connection-failed "deleted\n" :host "www.drdobbs.com" :service 80) :error (error connection-failed "failed with code 101\n" :host "www.drdobbs.com" :service 80))
Elfeed update failed for http://wz2100.net/news/feeds/atom/: (:error (error connection-failed "failed with code 101\n" :host "wz2100.net" :service 80))
Elfeed update failed for http://wz2100.net/news/feeds/atom/: (:error (error connection-failed "deleted\n" :host "wz2100.net" :service 80) :error (error connection-failed "failed with code 101\n" :host "wz2100.net" :service 80))
Elfeed update failed for http://feeds.feedburner.com/Phoronix: (:error (error connection-failed "failed with code 101\n" :host "feeds.feedburner.com" :service 80))
Elfeed update failed for http://feeds.feedburner.com/Phoronix: (:error (error connection-failed "deleted\n" :host "feeds.feedburner.com" :service 80) :error (error connection-failed "failed with code 101\n" :host "feeds.feedburner.com" :service 80))
They all work well when viewed from Firefox or when fetched via Thunderbird.
I look through the feeds in elfeed-search
from top to bottom marking them as read using r
. Sometimes I want to hide read items by updating list using g
. But cursor stays on the same line as before, so I have to move it to top manually using M-<
.
As you may know I schedule elfeed-update
using run-at-time
. It works nice, but has annoying side effect. When feed list starts updating, it forces multiple refreshes (similar to g
), and as a result I often lose cursor position.
It could be nice to have an option for automatically moving cursor to top (first or second line) after pressing g
or any other list refreshes.
I love elfeed. In my books, it ranks before RSSOwl and QuiteRSS, which are two very fine feed readers.
I miss the option to create folders, though, not only tags. The folder pane could be displayed in a separate window or something like speedbar. Would it be possible to include this?
Sorry for this generic question. After playing a little with elfeed I could not figure out if there is a possibility to seach inside the feed. As I am using for 2/3 feeds from journal, it would be really useful to search inside the abstract.
Hi.
My main notebook is a 11" netbook which I love and carry everywhere. The issue with elfeed is that the (bigger) images in the posts take up all the screen and the scrolling gets very confusing. It would be awesome if I could toggle image display or scale them to say 20% to have an overview.
I looked at the code a bit but didn't figure out how you actually render the feeds (though I only looked very briefly, I'm quite busy at the moment :/)
If you see an easy way to implement this, I would be very thankful, otherwise I can take a stab at it and send some patch, but no sooner than next month.
Thanks for the amazing package!
Since the r
, b
, u
, and RET
hotkeys move the point to the next line, It's most efficient to start with your point on the first entry and work downwards. This leads to reading the most recent posts first, which is undesirable when reading through a feed for something like a webcomic with a story arc. You wouldn't start reading a comic book from back to front, would you?
To accommodate this use-case, we could add the option of sorting search results by date, ascending/descending. Although, I suspect a much easier solution would be to let the user decide which way the point moves after pressing one of the hotkeys, so I can start with my point at the bottom.
In emacs we have tls-program
variable which defaults to:
(setq tls-program '("gnutls-cli --insecure -p %p %h" "gnutls-cli --insecure -p %p %h --protocols ssl3" "openssl s_client -connect %h:%p -no_ssl2 -ign_eof"))
After changing it for example to:
(setq tls-program '("openssl s_client -connect %h:%p -no_ssl2 -ign_eof"))
and updating some feed with elfeed-update-feed
I still can see error like this:
gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated.
And here I'm not sure if I really changed to openssl or not?
How can I check if elfeed is using openssl, because I feel that with latter setting (openssl as tls-program) I have less gnutls errors during update.
Additional info:
gnutls-cli 3.3.6
openssl 1.0.1.h-1
I have a few feeds that have a clear content type which could be displayed a bit more intelligent in Emacs.
An example is diff-feeds for commit logs or wiki sites, which i use to keep track of what has changed and if it needs my attention or not. Currently these diffs are just displayed as one blob of text. If the mode of the content part could somehow react to it and display it like diff-mode would, including perhaps a limited set of keybindings of that mode, this would make reading that content a lot more pleasant.
I subscribed to http://www.echojs.com/rss and found that URL opening is not working in elfeed.
This feed has item format like this:
<item><title>
VVVV.js
</title>
<guid>http://www.vvvvjs.com/</guid> <link>
http://www.vvvvjs.com/
</link>
<description><![CDATA[<a href="http://www.echojs.com/news/9782">Comments</a>]]></description> <comments>http://www.echojs.com/news/9782</comments></item>
Since last package update the command elfeed-search-show-entry
does nothing. Digging into the code I have noticed that (elfeed-search-selected :ignore-region)
returns nil. Right here, everything was working great. Any ideas ?
(Edit: I'm getting rid of the byte-code stuff as github does not like it).
When I try to update this feed https://www.gaslampgames.com/feed/ an exception is triggered then emacs hangs, until I manage to "C-c" or "C-g" a few times.
This is the backtrace I'm getting:
Debugger entered--Lisp error: (error "gaslampgames.comfeed/443 nodename nor servname provided, or not known")
make-network-process(:name "gaslampgames.comfeed" :buffer #<buffer *url-http-temp*> :host "gaslampgames.comfeed" :service 443 :nowait nil)
open-network-stream("gaslampgames.comfeed" #<buffer *url-http-temp*> "gaslampgames.comfeed" 443)
open-gnutls-stream("gaslampgames.comfeed" #<buffer *url-http-temp*> "gaslampgames.comfeed" 443)
network-stream-open-tls("gaslampgames.comfeed" #<buffer *url-http-temp*> "gaslampgames.comfeed" 443 (:type tls :nowait t))
open-network-stream("gaslampgames.comfeed" #<buffer *url-http-temp*> "gaslampgames.comfeed" 443 :type tls :nowait t)
byte-code("..." [coding-system-for-write coding-system-for-read gw-method name buffer host binary (tls ssl native) native plain open-network-stream :type :nowait featurep make-network-process (:nowait t) socks socks-open-network-stream telnet url-open-telnet rlogin url-open-rlogin error "Bad setting of url-gateway-method: %s" service url-gateway-method conn] 11)
url-open-stream("gaslampgames.comfeed" #<buffer *url-http-temp*> "gaslampgames.comfeed" 443)
url-http-find-free-connection("gaslampgames.comfeed" 443)
url-http([cl-struct-url "https" nil nil "gaslampgames.comfeed" nil "/" nil nil t :silent t] #[..." [..." ["http://gaslampgames.com/feed/" print-escape-newlines :error t message "Elfeed update failed for %s: %S" err funcall make-byte-code 0 " ... vconcat vector [url-http-end-of-headers set-buffer-multibyte t elfeed-xml-parse-region elfeed-feed-type eql :atom elfeed-entries-from-atom :rss elfeed-entries-from-rss :rss1\.0 elfeed-entries-from-rss1\.0 error "Unknown feed type." elfeed-db-add] 5 "\n\n(fn)" error 257 "\..." [message "Elfeed update failed for %s: %s"] "\n\n(fn ERROR)" kill-buffer] 11 "\n\n(fn STATUS)"] funcall make-byte-code 0 "..." vconcat vector [elfeed-connections cl-delete :key car elfeed--check-queue] 5 "\n\n(fn)"] 8 "\n\n(fn STATUS)"] ((:redirect "https://gaslampgames.comfeed/")))
url-https([cl-struct-url "https" nil nil "gaslampgames.comfeed" nil "/" nil nil t :silent t] #[..." ["http://gaslampgames.com/feed/" print-escape-newlines :error t message "Elfeed update failed for %s: %S" err funcall make-byte-code 0 " ..." vconcat vector [url-http-end-of-headers set-buffer-multibyte t elfeed-xml-parse-region elfeed-feed-type eql :atom elfeed-entries-from-atom :rss elfeed-entries-from-rss :rss1\.0 elfeed-entries-from-rss1\.0 error "Unknown feed type." elfeed-db-add] 5 "\n\n(fn)" error 257 "..." [message "Elfeed update failed for %s: %s"] "\n\n(fn ERROR)" kill-buffer] 11 "\n\n(fn STATUS)"] funcall make-byte-code 0 "..." vconcat vector [elfeed-connections cl-delete :key car elfeed--check-queue] 5 "\n\n(fn)"] 8 "\n\n(fn STATUS)"] ((:redirect "https://gaslampgames.comfeed/")))
url-retrieve-internal("https://gaslampgames.comfeed/" #[257 "..." ["http://gaslampgames.com/feed/" print-escape-newlines :error t message "Elfeed update failed for %s: %S" err funcall make-byte-code 0 " ..." vconcat vector [url-http-end-of-headers set-buffer-multibyte t elfeed-xml-parse-region elfeed-feed-type eql :atom elfeed-entries-from-atom :rss elfeed-entries-from-rss :rss1\.0 elfeed-entries-from-rss1\.0 error "Unknown feed type." elfeed-db-add] 5 "\n\n(fn)" error 257 "..." [message "Elfeed update failed for %s: %s"] "\n\n(fn ERROR)" kill-buffer] 11 "\n\n(fn STATUS)"] funcall make-byte-code 0 "..." vconcat vector [elfeed-connections cl-delete :key car elfeed--check-queue] 5 "\n\n(fn)"] 8 "\n\n(fn STATUS)"] ((:redirect "https://gaslampgames.comfeed/")) :silent nil)
url-http-parse-headers()
url-http-content-length-after-change-function(279 599 320)
url-http-wait-for-headers-change-function(1 609 608)
url-http-generic-filter(#<process gaslampgames.com> "HTTP/1.1 301 Moved Permanently
\nDate: Sun, 13 Jul 2014 08:26:57 GMT
\nServer: Apache/2.2.22 (Debian)
\nLocation: https://gaslampgames.comfeed/
\nVary: Accept-Encoding
\nContent-Length: 319
\nKeep-Alive: timeout=5, max=100
\nConnection: Keep-Alive
\nContent-Type: text/html; charset=iso-8859-1
\n
\n<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>301 Moved Permanently</title>\n</head><body>\n<h1>Moved Permanently</h1>\n<p>The document has moved <a href=\"https://gaslampgames.comfeed/\">here</a>.</p>\n<hr>\n<address>Apache/2.2.22 (Debian) Server at gaslampgames.com Port 80</address>\n</body></html>\n")
I find the missing /
in the redirection strange. When I nagivate to the https://www.gaslampgames.com/feed/ url using Firefox, it's showing me a feed and proposing to subscribe to it.
Is this a bug in elfeed or in their feed?
Just imported all my actual feeds to Elfeed. Now if I press G, the strange error message occurs in minibuffer: Elfeed update failed for https://news.ycombinator.com/rss: (wrong-type-argument symbolp http://trendingjs.com/rss)
Here's my tiny init.el with subscription list: http://pastebin.com/raw.php?i=kH3XvQS5
I get many SO in regexp matcher errors:
Elfeed update failed for http://blog.datomic.com/feeds/posts/default: (error Stack overflow in regexp matcher)
Elfeed update failed for http://gbracha.blogspot.com/feeds/posts/default: (error Stack overflow in regexp matcher)
Elfeed update failed for http://gdata.youtube.com/feeds/api/playlists/1CA6335E0D3699B6: (error Stack overflow in regexp matcher)
Tested with master.
It would be nice if the point was moved to the beginning of the buffer (or the first unread feed) after finishing the sync. Currently, the point is left on the same spot, which could be in the middle of the buffer. Just a small convenience feature.
I just discovered your wonderful program. The problem is that the XML file for APS feeds includes a title
field and a dc:title
field. This results in duplicate titles in elfeed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.