Я нашел Календарь Google рыночных выходных в США, который разумно обновляется в течение следующих нескольких лет.
Как бы мне не хотелось добавлять отдельный ответ, это оченьлучшее решение, чем хрупкий URL-адрес страницы для поиска текста (который, кстати, две недели спустя все еще возвращает «** Фондовый рынок закрыт Страстная пятница 19/19/19» вместо простого «где-то сегодня рынок открыт»).
Сначала код: (Ruby с встроенным Bash)
$marketCal = %x'curl -s "https://www.googleapis.com/calendar/v3/calendars/2jpqg4chp4djba5ea99b22b838@group.calendar.google.com/events?key=[YOUR GOOGLE API KEY]&maxResults=1&timeMin=#{today=`date +%Y-%m-%d`.chomp}T00%3A00%3A01%2B00%3A00&timeMax=#{today}T23%3A59%3A59%2B00%3A00&"'
$isMarketOpenToday = $marketCal !~ /"status":/ # => true when there exists event "id":, etc.
Поскольку существуют ограничения по ресурсам, вам нужно пойти и создать свой собственный бесплатный ключ API на https://console.developers.google.com/apis/credentials?
Глобальная переменная $ isMarketOpenToday дает true , если не рыночный выходной сегодня, false в противном случае.Обратите внимание, что он не учитывает день недели, поэтому в выходные дни он все еще может давать значение true.Так что просто сделайте еще один простой тест, если вам нужно.Например.[[ $(date +%u) < 6 ]] && echo "Weekday, yay!"
Многое можно улучшить с помощью стандартов программирования;цель здесь состояла в том, чтобы просто протестировать API с минимальными строками кода, легко проверяемыми из CLI вне скрипта, как бы это ни было неприятно.