فهرست منبع

/charts params

Innokenty Enikev 10 سال پیش
والد
کامیت
c199e4df83
1فایلهای تغییر یافته به همراه15 افزوده شده و 5 حذف شده
  1. 15 5
      chatikbot.lisp

+ 15 - 5
chatikbot.lisp

@@ -191,11 +191,21 @@
 (defun handle-cmd-charts (chat-id message-id args)
   (log:info "handle-cmd-charts" chat-id message-id args)
   (telegram-send-chat-action chat-id "upload_photo")
-  (let ((chart (make-chart *per-minute-rates*))
-        (rates (rest (peek-circular *per-minute-rates*))))
-    (telegram-send-photo chat-id chart
-                         :caption (format nil "Зеленый ~A, гейро ~A, британец ~A"
-                                          (cdar rates) (cdadr rates) (cdaddr rates)))))
+  (handler-case
+      (let* ((usd (or (null args) (find "usd" args :test #'equal)))
+             (eur (or (null args) (find "eur" args :test #'equal)))
+             (gbp (or (null args) (find "gbp" args :test #'equal)))
+             (rates (rest (peek-circular *per-minute-rates*))))
+        (if (or usd eur gbp)
+          (telegram-send-photo chat-id
+                               (make-chart *per-minute-rates*
+                                           :usd usd :eur eur :gbp gbp)
+                               :caption (format nil "Зеленый ~A, гейро ~A, британец ~A"
+                                                (cdar rates) (cdadr rates) (cdaddr rates)))
+          (telegram-send-message chat-id "Хуй тебе")))
+    (error (e)
+      (log:error e)
+      (telegram-send-message chat-id "Хуйня какая-то"))))
 
 ;; Weather
 (defun handle-cmd-weather (chat-id message-id args)