|
@@ -333,9 +333,10 @@
|
|
|
chat-id
|
|
chat-id
|
|
|
(if (null feeds)
|
|
(if (null feeds)
|
|
|
"Пока ничего не постим"
|
|
"Пока ничего не постим"
|
|
|
- (format nil "Постим:~%~{~A (~A)~^~%~}"
|
|
|
|
|
|
|
+ (format nil "Постим~%~{~A) ~A: ~A~^~%~}"
|
|
|
(loop for feed in feeds
|
|
(loop for feed in feeds
|
|
|
- append (list (feed-title feed) (feed-url feed)))))
|
|
|
|
|
|
|
+ for index from 1
|
|
|
|
|
+ append (list index (feed-title feed) (feed-url feed)))))
|
|
|
:disable-web-preview 1))
|
|
:disable-web-preview 1))
|
|
|
|
|
|
|
|
(defun %get-feed (url)
|
|
(defun %get-feed (url)
|
|
@@ -378,12 +379,17 @@
|
|
|
(%send-feeds chat-id feeds)
|
|
(%send-feeds chat-id feeds)
|
|
|
(progn
|
|
(progn
|
|
|
(dolist (url args)
|
|
(dolist (url args)
|
|
|
- (alexandria:when-let (feed (%get-feed
|
|
|
|
|
- (or (cadar (find-rss-links url))
|
|
|
|
|
- url)))
|
|
|
|
|
- (if (member feed feeds)
|
|
|
|
|
- (setf feeds (remove feed feeds))
|
|
|
|
|
- (push feed feeds))))
|
|
|
|
|
|
|
+ (handler-case
|
|
|
|
|
+ (let ((idx (parse-integer url)))
|
|
|
|
|
+ (when (<= idx (length feeds))
|
|
|
|
|
+ (setf feeds (remove (nth (1- idx) feeds) feeds))))
|
|
|
|
|
+ (parse-error ()
|
|
|
|
|
+ (alexandria:when-let (feed (%get-feed
|
|
|
|
|
+ (or (cadar (find-rss-links url))
|
|
|
|
|
+ url)))
|
|
|
|
|
+ (if (member feed feeds)
|
|
|
|
|
+ (setf feeds (remove feed feeds))
|
|
|
|
|
+ (push feed feeds))))))
|
|
|
(setf (gethash chat-id *rss-chat-feeds*) feeds)
|
|
(setf (gethash chat-id *rss-chat-feeds*) feeds)
|
|
|
(%refresh-feeds)
|
|
(%refresh-feeds)
|
|
|
(save-settings)
|
|
(save-settings)
|