|
@@ -158,6 +158,29 @@ is replaced with replacement."
|
|
|
(cons :voice
|
|
(cons :voice
|
|
|
(google-tts (print-with-spaces words) :lang lang)))
|
|
(google-tts (print-with-spaces words) :lang lang)))
|
|
|
|
|
|
|
|
|
|
+(defun yit-info ()
|
|
|
|
|
+ (labels ((get-rows (url)
|
|
|
|
|
+ (rest (get-by-tag (plump:get-element-by-id (xml-request url) "apartmentList") "tr")))
|
|
|
|
|
+ (row-data (row)
|
|
|
|
|
+ (mapcar (lambda (e) (string-trim '(#\Newline #\Space) (plump:text e)))
|
|
|
|
|
+ (get-by-tag row "td")))
|
|
|
|
|
+ (format-data (data)
|
|
|
|
|
+ (format nil "~{~A~^ ~}" (mapcar (lambda (n) (nth n data)) '(1 2 3 4 7))))
|
|
|
|
|
+ (get-intresting (rows)
|
|
|
|
|
+ (loop for row in rows
|
|
|
|
|
+ for data = (row-data row)
|
|
|
|
|
+ for rooms = (parse-integer (nth 2 data))
|
|
|
|
|
+ for area = (parse-float:parse-float (replace-all (nth 3 data) "," "."))
|
|
|
|
|
+ when (= rooms 3)
|
|
|
|
|
+ when (< 65 area 75)
|
|
|
|
|
+ collect data))
|
|
|
|
|
+ (format-apts (url)
|
|
|
|
|
+ (format nil "~A~%~{~A~^~%~}" url (mapcar #'format-data (get-intresting (get-rows url))))))
|
|
|
|
|
+ (format nil "~{~A~^~%~%~}"
|
|
|
|
|
+ (mapcar #'format-apts
|
|
|
|
|
+ '("http://www.yitspb.ru/yit_spb/catalog/apartments/novoorlovskiy-korpus-1-1-1"
|
|
|
|
|
+ "http://www.yitspb.ru/yit_spb/catalog/apartments/novoorlovskiy-korpus-1-1-2")))))
|
|
|
|
|
+
|
|
|
;; Fix bug in local-time (following symlinks in /usr/share/zoneinfo/
|
|
;; Fix bug in local-time (following symlinks in /usr/share/zoneinfo/
|
|
|
;; leads to bad cutoff)
|
|
;; leads to bad cutoff)
|
|
|
(in-package #:local-time)
|
|
(in-package #:local-time)
|