Re: Inhibiting gnus-get-new-news at startup

2024-01-02 Thread Husain Alshehhi


I might have spoken too soon. It appears that the issue is not with nntp
groups, but with nnrss. I ran the profile and saw the following:

2999  73% - command-execute
2641  64%  - funcall-interactively
2637  64%   - gnus
2637  64%- gnus-1
2626  63% - #
2626  63%  - gnus-setup-news
2622  63%   - gnus-get-unread-articles
2403  58%- gnus-read-active-for-groups
1855  45% - gnus-read-active-file-2
1855  45%  - gnus-retrieve-groups
1855  45%   - nnrss-retrieve-groups
1652  40%- nnrss-check-group
1356  33% - nnrss-fetch
1288  31%  - xml-parse-region
1288  31%   - xml--parse-buffer
1288  31%- xml-parse-tag-1
1288  31% - xml-parse-tag-1
1288  31%  - xml-parse-tag-1
1284  31%   - xml-parse-tag-1
1221  29%- xml-parse-tag-1
 153   3% - xml-parse-string
  15   0%#
  16   0%  + mm-url-insert
 259   6% + nnrss-make-hash-index
  15   0% + nnrss-find-el
   4   0%   nnrss-translate-file-chars
   3   0% + nnrss-get-namespace-prefix
 199   4%+ nnrss-possibly-change-group
 544  13% - gnus-request-scan
 544  13%  - nnmaildir-request-scan
 541  13%   - nnmaildir--scan
 431  10%- nnmaildir--grp-add-art
 401   9% - nnmaildir--update-nov
 141   3%  + nnheader-insert-file-contents
   7   0%  + nnmaildir--param
  21   0%+ mapcar
   4   0% + gnus-finish-retrieve-group-infos
 162   3%+ gnus-open-server
  40   0%+ gnus-request-update-info
  14   0%+ gnus-retrieve-group-data-early
   3   0%  gnus-message
   4   0%   + gnus-cache-open
   7   0% + gnus-splash
   4   0% + gnus-read-init-file
   4   0%   + execute-extended-command
 358   8%  + byte-code
1107  26% - ...
1107  26%Automatic GC

It appears that much of the time was spent on fetching and parsing rss
feeds. I am using (setq nnrss-use-local t) which I expected to be much
faster, but that gnus is still very slow.

Some of you suggested to change the level of subscription to a higher
number. What are the implications of this change? I mainly am interested
in getting the list of new news of all subscribed groups about once a
day.



Inhibiting gnus-get-new-news at startup

2023-12-30 Thread Husain Alshehhi


Hello,

When gnus starts (M-x gnus), it automatically get new news. This is a
reasonable default. But when I start gnus multiple times to look up a
message, I have to wait few seconds for it to start. Is there a way to
prevent gnus to get new news at startup time, and only do it manually?



Re: Reading the article/message in elisp

2023-07-13 Thread Husain Alshehhi
Robert Pluim  writes:

>
> In a temp buffer, no, but you can access the article buffer using eg
> `gnus-with-article' or `gnus-with-article-buffer', or even
> `gnus-with-article-headers' if you only care about the headers.

I suppose that gnus-with-article-buffer works, almost. In the case that
I am in gnus summary page, with the point on an unopened article, when I
run the following:

    (defun husain--test-gnus-with-article-buffer()
  (interactive)
  (gnus-with-article-buffer
(message "%s" (message-fetch-field "Subject"

It fails to read the subject. However, it works very well after I open
the article. I think this solves 95% of the cases I run into.

Thank you.




Re: Reading the article/message in elisp

2023-07-11 Thread Husain Alshehhi
Emanuel Berg  writes:

> You can use `message-fetch-field' to get headers, as in:
>
> (defun message-yank-subject ()
>   (interactive)
>   (save-excursion
> (let ((subj (message-fetch-field "Subject")))
>   (when subj
> (message-goto-body)
> (insert (format "%s\n" subj)) 
>
> More examples:
>   https://dataswamp.org/~incal/emacs-init/gnus/message-header.el

Thank you. message-fetch-field works if the point is in a message
buffer. I was not aware of this option. But when the point is in a
gnus-summary buffer, then

(message-fetch-field "Subject")

returns nil. Even with something like:

(defun husain--test-message-subject-yank ()
  (interactive)
  (save-excursion
(let ((subj (message-fetch-field "Subject")))
  (if subj
  (message subj)
(gnus-summary-show-article)
(gnus-summary-select-article-buffer)
(message (message-fetch-field "Subject"))

this still doesn't work as intended because it does not restore the
window if the point is in a gnus-summary buffer pointing to an article
not open.

Is there a gnus function that can build the message in a temp buffer?




Reading the article/message in elisp

2023-07-10 Thread husain
Hello,

If I am in

  - the summary page, with the cursor on an unopen article line, or in
  - the summary page, with an open article, or in
  - an article

I would like to be able to read the article content in elisp and execute
processes based on that. For example, if the message has
TO:per...@work.xyz, or CC:per...@work.xyz, then I would like to open the
person's profile page.

Is there a gnus elisp function that allows me to access the article
programmatically?

Thanks.







Re: Showing a full thread

2023-07-02 Thread husain
Adam Sjøgren  writes:

> Have you tried A T?
>
> ,[ C-h f gnus-summary-refer-thread RET ]
> | gnus-summary-refer-thread is an interactive native-compiled Lisp
> | function in ‘gnus-sum.el’.
> | 
> | (gnus-summary-refer-thread  LIMIT)
> | 
> | Inferred type: (function ( t) t)
> | 
> | Fetch all articles in the current thread.
> | A non-numeric prefix arg will search the entire server; without a
> | prefix arg only the current group is searched.  If the variable
> | ‘gnus-refer-thread-use-search’ is t the prefix arg has the
> | reverse meaning.  If searching is not enabled for the current
> | group, fetch LIMIT (the numerical prefix) old headers.  If LIMIT
> | is non-numeric or nil fetch the number specified by the
> | ‘gnus-refer-thread-limit’ variable.
> | 
> `

Thank you very much for saving me again. This is exactly what I needed.




Showing a full thread

2023-07-02 Thread husain


When there is a single unread message, that belongs to a thread, I can
view the parent of the message by the default keybinding "^". However,
it seems that I am not able to view the full thread, including the
sibling messages. I would live to view the full tree of the thread: the
root and all the messages that were span off it.

Gnus has the command "gnus-summary-show-all-threads" and
"gnus-summary-show-thread". These commands do not show the full tree for
me, deceivingly. Gnus also has the variable "gnus-show-threads" which is
"t" in my case. I am still not able to see the full tree. I am able to
see the full tree once I mark the unread message as read, quit, and then
visit the group, where I can see all the messages.

Any idea if there is a function that show the complete thread?

To reproduce my situation, visit any newsgroup/email that has
threads. Pick a message which is part of a thread. The message has to
have a sibling. Mark it as unread via
"gnus-summary-put-mark-as-unread". Quit. Visit the group again and you
will b confronted with only that message.

--
Husain