|
@@ -48,9 +48,8 @@
|
|
|
(feed-next-fetch feed) (local-time:timestamp+ (local-time:now) new-period :sec))
|
|
(feed-next-fetch feed) (local-time:timestamp+ (local-time:now) new-period :sec))
|
|
|
items))
|
|
items))
|
|
|
|
|
|
|
|
-(defun %send-feeds (chat-id feeds)
|
|
|
|
|
- (bot-send-message chat-id
|
|
|
|
|
- (if (null feeds)
|
|
|
|
|
|
|
+(defun %send-feeds (feeds)
|
|
|
|
|
+ (bot-send-message (if (null feeds)
|
|
|
"Пока ничего не постим"
|
|
"Пока ничего не постим"
|
|
|
(format nil "Постим~%~{~A) ~A: ~A~^~%~}"
|
|
(format nil "Постим~%~{~A) ~A: ~A~^~%~}"
|
|
|
(loop for feed in feeds
|
|
(loop for feed in feeds
|
|
@@ -219,7 +218,7 @@
|
|
|
(def-message-cmd-handler handler-cmd-rss (:rss)
|
|
(def-message-cmd-handler handler-cmd-rss (:rss)
|
|
|
(let ((feeds (db/rss-get-chat-feeds *chat-id*)))
|
|
(let ((feeds (db/rss-get-chat-feeds *chat-id*)))
|
|
|
(if (null *args*)
|
|
(if (null *args*)
|
|
|
- (%send-feeds *chat-id* feeds)
|
|
|
|
|
|
|
+ (%send-feeds feeds)
|
|
|
(progn
|
|
(progn
|
|
|
(dolist (url *args*)
|
|
(dolist (url *args*)
|
|
|
(handler-case
|
|
(handler-case
|
|
@@ -236,12 +235,12 @@
|
|
|
(push feed feeds)))))
|
|
(push feed feeds)))))
|
|
|
(error (e) (log:error "~A: ~A" url e))))
|
|
(error (e) (log:error "~A: ~A" url e))))
|
|
|
(db/rss-set-chat-feeds *chat-id* feeds)
|
|
(db/rss-set-chat-feeds *chat-id* feeds)
|
|
|
- (%send-feeds *chat-id* (db/rss-get-chat-feeds *chat-id*))))))
|
|
|
|
|
|
|
+ (%send-feeds (db/rss-get-chat-feeds *chat-id*))))))
|
|
|
|
|
|
|
|
(def-message-cmd-handler handler-cmd-last-rss (:lastrss)
|
|
(def-message-cmd-handler handler-cmd-last-rss (:lastrss)
|
|
|
(let ((feeds (db/rss-get-chat-feeds *chat-id*)))
|
|
(let ((feeds (db/rss-get-chat-feeds *chat-id*)))
|
|
|
(if (null *args*)
|
|
(if (null *args*)
|
|
|
- (%send-feeds *chat-id* feeds)
|
|
|
|
|
|
|
+ (%send-feeds feeds)
|
|
|
(let* ((idx (1- (parse-integer (car *args*))))
|
|
(let* ((idx (1- (parse-integer (car *args*))))
|
|
|
(limit (min 20 (if (> (length *args*) 1) (parse-integer (second *args*)) 5)))
|
|
(limit (min 20 (if (> (length *args*) 1) (parse-integer (second *args*)) 5)))
|
|
|
(items (db/rss-last-feed-items (nth idx feeds) limit)))
|
|
(items (db/rss-last-feed-items (nth idx feeds) limit)))
|