mirror of
https://codeberg.org/cage/tinmop/
synced 2025-02-15 07:50:36 +01:00
- added code to try to recover from a failed tag request.
This commit is contained in:
parent
ccff6616c4
commit
c0cbe8f519
@ -377,14 +377,25 @@ Returns nil if the user did not provided a server in the configuration file"
|
||||
|
||||
(defun-api-call get-timeline-tag (tag &key min-id (limit 20))
|
||||
"Gets messages that contains tags identified by parameter `tag'"
|
||||
(tooter:timeline-tag *client*
|
||||
tag
|
||||
:local nil
|
||||
:only-media nil
|
||||
:max-id nil
|
||||
:since-id nil
|
||||
:min-id min-id
|
||||
:limit limit))
|
||||
(restart-case
|
||||
(tooter:timeline-tag *client*
|
||||
tag
|
||||
:local nil
|
||||
:only-media nil
|
||||
:max-id nil
|
||||
:since-id nil
|
||||
:min-id min-id
|
||||
:limit limit)
|
||||
(retry-ignoring-min-id ()
|
||||
(ignore-errors
|
||||
(tooter:timeline-tag *client*
|
||||
tag
|
||||
:local nil
|
||||
:only-media nil
|
||||
:max-id nil
|
||||
:since-id nil
|
||||
:min-id nil
|
||||
:limit limit)))))
|
||||
|
||||
(defun-api-call update-timeline-tag (tag folder &key
|
||||
(recover-count 0)
|
||||
@ -395,22 +406,22 @@ Returns nil if the user did not provided a server in the configuration file"
|
||||
reflectings the changes in the timeline (saves messages in the
|
||||
database etc.)"
|
||||
(when tag
|
||||
(let* ((timeline-statuses (get-timeline-tag tag
|
||||
:min-id min-id
|
||||
:limit limit))
|
||||
(trees (if command-line:*update-timeline-climb-message-tree*
|
||||
(flatten (loop
|
||||
for node-status in timeline-statuses
|
||||
collect
|
||||
(expand-status-tree node-status)))
|
||||
timeline-statuses))
|
||||
(save-timeline-in-db-event (make-instance 'program-events:save-timeline-in-db-event
|
||||
:payload trees
|
||||
:timeline-type db:+federated-timeline+
|
||||
:folder folder
|
||||
:localp nil
|
||||
:min-id min-id
|
||||
:recover-count recover-count)))
|
||||
(when-let* ((timeline-statuses (get-timeline-tag tag
|
||||
:min-id min-id
|
||||
:limit limit))
|
||||
(trees (if command-line:*update-timeline-climb-message-tree*
|
||||
(flatten (loop
|
||||
for node-status in timeline-statuses
|
||||
collect
|
||||
(expand-status-tree node-status)))
|
||||
timeline-statuses))
|
||||
(save-timeline-in-db-event (make-instance 'program-events:save-timeline-in-db-event
|
||||
:payload trees
|
||||
:timeline-type db:+federated-timeline+
|
||||
:folder folder
|
||||
:localp nil
|
||||
:min-id min-id
|
||||
:recover-count recover-count)))
|
||||
(update-pagination-statuses-so-far timeline-statuses
|
||||
db:+default-tag-timeline+
|
||||
folder
|
||||
|
@ -21,11 +21,11 @@
|
||||
|
||||
(defun safe-parse-number (maybe-number &key (fix-fn #'(lambda (e) (declare (ignore e)) nil)))
|
||||
(handler-bind ((error
|
||||
(lambda(e)
|
||||
(lambda (e)
|
||||
(return-from safe-parse-number (funcall fix-fn e)))))
|
||||
(if (or (not (stringp maybe-number))
|
||||
(string= maybe-number "-"))
|
||||
(error "Paring a non string element")
|
||||
(error "Parsing a non string element")
|
||||
(parse-number:parse-number maybe-number))))
|
||||
|
||||
(defun parse-number-default (maybe-number default)
|
||||
|
@ -473,7 +473,7 @@ Metadata includes:
|
||||
(setf intersect-sorted
|
||||
(remove window intersect-sorted))
|
||||
(setf intersect-sorted
|
||||
(remove-if-not (lambda(a) (typep a 'main-window::focus-marked-window))
|
||||
(remove-if-not (lambda (a) (typep a 'main-window::focus-marked-window))
|
||||
intersect-sorted))
|
||||
(when intersect-sorted
|
||||
(remove-focus-to-all-windows)
|
||||
@ -1025,7 +1025,13 @@ If some posts was deleted before, download them again."
|
||||
(let* ((all-tags (db:all-subscribed-tags-name))
|
||||
(all-paginations (db:all-tag-paginations-status all-tags)))
|
||||
(flet ((update ()
|
||||
(client:update-subscribed-tags all-tags all-paginations)
|
||||
(handler-bind ((tooter:request-failed
|
||||
(lambda (e)
|
||||
(notify (format nil
|
||||
(_ "Error getting the latest unread messages for tag ~a, trying fetching the latest")
|
||||
(tooter:url e)))
|
||||
(invoke-restart 'api-client::retry-ignoring-min-id))))
|
||||
(client:update-subscribed-tags all-tags all-paginations))
|
||||
(let ((update-got-message-event
|
||||
(make-instance 'tag-mark-got-messages-event))
|
||||
(notify-event
|
||||
|
Loading…
x
Reference in New Issue
Block a user