diff --git a/sncf.ss b/sncf.ss index 8ac85f1..6964432 100755 --- a/sncf.ss +++ b/sncf.ss @@ -38,26 +38,10 @@ (get-station-id sncf-key station) (values "Vernon - Giverny (Vernon)" "stop_area:SNCF:87415604"))) (let-values (((departures disruptions) (get-departures sncf-key station-id datetime))) - (display (parse-markup - (format "[bold]Prochains départs de [green]~a[/green] " station-name))) - (displayln (if datetime - (parse-markup (format "le ~a à ~a :" - (date->string datetime "~a ~d ~b ~Y") - (date->string datetime "~H:~M"))) - ":")) - (display-departures-table departures) - (display-disruptions disruptions) + (display-all departures disruptions station-name datetime) (when mattermost-url - (let ((tab-str-md (with-output-to-string - (lambda () - (display (format "Prochains départs de **~a** " station-name)) - (displayln (if datetime - (parse-markup (format "le ~a à ~a :\n" - (date->string datetime "~a ~d ~b ~Y") - (date->string datetime "~H:~M"))) - ":\n")) - (display-departures-table departures style: 'markdown) - (display-disruptions disruptions style: 'markdown))))) + (let ((tab-str-md + (with-output-to-string (lambda () (display-all departures disruptions station-name datetime))))) (post-to-mattermost mattermost-url tab-str-md channel: mattermost-channel))))) (catch (getopt-error? exn) (getopt-display-help exn "sncf" (current-error-port)) diff --git a/sncf/display.ss b/sncf/display.ss index c0eb1bd..cc2bef8 100644 --- a/sncf/display.ss +++ b/sncf/display.ss @@ -1,5 +1,6 @@ (export display-departures-table - display-disruptions) + display-disruptions + display-all) (import :std/format :std/iter @@ -42,3 +43,17 @@ (let ((messages (hash-ref dis 'messages '()))) (display (if (eq? style 'markdown) "* " "• ")) (displayln (if (null? messages) "[Pas de message]" (hash-ref (car messages) 'text)))))) + +(def (display-all departures disruptions station-name (datetime #f) style: (style 'unicode)) + (display + (if (eq? style 'markdown) + (format "Prochains départs de **~a** " station-name) + (parse-markup + (format "[bold]Prochains départs de [green]~a[/green] " station-name)))) + (when datetime + (display (format "le ~a à ~a :" + (date->string datetime "~a ~d ~b ~Y") + (date->string datetime "~H:~M")))) + (displayln (if (eq? style 'markdown) ":\n" ":")) + (display-departures-table departures style: style) + (display-disruptions disruptions style: style))