Xscreensaver из часов на Esquire.ru

    Мне, жуть, как понравились вот эти часы, очень захотел на скринсэйвер. Сказано — сделано.

    Dev Tools Chromium'а дал понять, что урл видео-файла, проигрываемого плеером выглядит примерно следующим образом:
    http://176.9.156.38/clock/big_<часы>-<минуты, округлённые вниз до делителя 5>.mp4?start=<смещение в секундах относительно округлённого времени>

    1. Bash-скрипт standardtime скринсэйвера:
    #!/bin/bash
    hour=$(date +%-H)
    ms=$(date +%-M)
    sec=$(date +%-S)
    rms=$((($ms / 5) * 5))
    st=$((($ms - $rms) * 60 + $sec))
    secret=$(curl -s "http://esquire.ru/clock" | grep superSecret | grep -o -P "[0-9a-f]+(?=\")")
    URL=$(printf "http://176.9.156.38/clock/big_%02d-%02d.mp4?start=%d&pipiska=%s" $hour $rms $st $secret)
    exec mplayer -cache 2000 -nosound -nolirc -wid $XSCREENSAVER_WINDOW -nostop-xscreensaver -fs -really-quiet $URL
    

    2. Складываем скрипт в PATH и делаем его исполняемым.

    3. Oткрываем свой ~/.xscreensaver, находим в нём опцию programs и добавляем наш standardtime по аналогии:
    programs:						      \
    				maze -root				    \n\
      GL:		superquadrics -root			    \n\
    --здесь выброшены другие скринсэйверы--
      GL:		tronbit -root				    \n\
    				standardtime				    \n\
    

    4. Запускаем конфигурацию xscreensaver и выбираем в списке наш новоиспечённый скринсэйвер(у меня он назывался Standardtime).

    5. Лочим экран и наслаждаемся, как мужики переключают семи-позиционный индикатор :)

    Зависимости: bash, curl и mplayer.

    UPD: Убрана зависимость от Python. Спасибо jov.
    UPD: sovok_kpss подсказывает, что если заменить в шаблоне урла big на small, то качество видео будет хуже, но весить будет меньше.
    UPD: Эскавайр рикроллит хабралюдей. Добавили хэш, который товарищ gusto быстренько поимел. Теперь нужен curl.
    UPD: Воткнули хэшэр на флэше :) Декомпильнём — посмотрим.
    UPD: А вот и декомилированный код: http://pastebin.com/LQMCZ21j
    UPD: Эсквайр зажал видео за 30 евро. Утром подёргаю этот обфусцированный hmac.
    UPD: Видео можно найти по магнет-ссылке. Спасибо acmer.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 57

      +2
      Здорово!
      Интересно, видео без монтажа делалось? а если бы какая-то циферка не удержалась…
      Зато как потом, наверное, рабочие отметили завершение этой работы!
        +3
        Пишут, что снимали 24 часа подряд. Видимо хорошо подготовились :)
        +1
        хочу такие перед домом поставить)))
          +10
          Предлагаю избавиться от python'а в качестве зависимости
          hour=$(date +%H)
          ms=$(date +%M)
          sec=$(date +%S)
          rms=$((($ms / 5) * 5))
          st=$((($ms - $rms) * 60 + $sec))
          printf "http://176.9.156.38/clock/big_%s-%.2d?start=%d" $hour $rms $st
            0
            Точняк, забыл про printf! Это, как раз то, что нужно.
              +2
              Только время нужно получать без паддинга. Иначе printf воспринимает ведущий ноль, как признак того, что число восьмеричное. Для этого нужно перед полем добавить дефис.
              +14
              Сразу стало интересно, как они управляются с границей суток. Как выяснилось, читерствуют.


              23:57 — подстраиваем доски…
              23:58 — набегает толпа, и пока пара чуваков отковыривает доску от 8, остальная успешно раздалбывает все остальные цифры…
              33:59 — творится полный бардак…
              30:59 — завершают работу над первыми цифрами…
              70:59 — последние штрихи…
              00:09 — вспоминают про девятку…
              00:00


              То есть две минуты они плавно преобразуют 23:58 в 00:00, в промежутке появляется 00:09, а 23:59 вообще не существует. Всякая практическая ценность теряется.
                0
                как они управляются с переводом часов на летнее и зимнее время (для многих стран это актуально ещё)
                  0
                  Так как часы упереводился туда-сюда во время экспериментов, то сообщаю: никак. На сайте видео пропадает, появляется вертелка-крутилка, потом появляется новый несвязанный кусок видео.
                +1
                Для Windows, может, кто-то хочет сделать? ;)
                  +1
                  что вы имеете в виду по этим?
                    +1
                    Файл с расширением scr
                      +2
                      Можно воспользоватся HTML Screensaver'ом, но это не лучшее решение.
                          –1
                          с утра ждал этого комментария. благодарю :)
                            +1
                            Ну как, у Вас работает этот .scr?
                              0
                              да работает. даже почему-то перестало глючить видео, а идет плавно.
                                +2
                                Добавил обход защиты с хэшом.
                                  0
                                  теперь она правда стала не во весь экран
                                    +1
                                    Перезалил.
                                      0
                                      По прежнему запускается в окне.
                                        +1
                                        Магия какая-то. Гугл почему-то возвращает старую версию файла, хотя залита новая, только с таким же именем. Сделал аплоад с новым именем — все заработало.
                                          0
                                          мои благодарности вам. интересная штука, хотя у меня заставки не было, а просто монитор тух, но эту я точно оставлю :)
                                            0
                                            теперь вместо часов клип какой-то левый показывается
                                              0
                                              Скачайте последнюю версию.
                                                0
                                                я её и качал, — V4
                                                  0
                                                  А, они хэш теперь к ip привязывают. Ладно, завтра посмотрим, что можно с этим сделать.
                              0
                              не работает (
                                +1
                                Ну товарищи из журнала ставят новые защиты. У меня хакать времени нет, я пока просто хэш воткнул. Думаю рано или поздно они сдадутся и версия скринсейвера стабилизируется. Ну либо оффлайн версию сделать.
                                  0
                                  Я за оффлайн, пусть даже весит много, зато надежно.
                        –1
                        Такая же идея в голову пришла, как увидел эти часы, но до реализации руки не дошли.
                        Спасибо :)
                          +1
                          Неплохо бы как-то это выкачать и сделать оффлайновый скинсейвер
                            +2
                            10 минут такого виде весят 33 МБ, грубо умножаем 33МБ на 144 выходит 4.7 GB
                              +4
                              Подумаешь — один DVD всего лишь )
                                +9
                                Скринсейвер на DVD теперь не такая уж и фантастика)))))
                                  +2
                                  Если вместо:

                                  176.9.156.38/clock/big_%02d-%02d.mp4?start=%d

                                  использовать плохое качество видео:

                                  176.9.156.38/clock/small_%02d-%02d.mp4?start=%d

                                  то выходит ~187 MB
                                    +1
                                    В jpeg'ах 1440 картинок размером 1920х1080 будут от силы полтора гигабайта «весить».
                                      0
                                      Важен процесс :)
                                      0
                                      Да, каждый день качать по 3 гига — это гораздо лучше, чем один раз скачать 5…
                                        0
                                        Ретина-версия под айпад, которая предлагается на сайте, весит всего 1.76гб :)
                                          0
                                          Видимо, хорошо пожата кодеком. Картинка же почти статичная.
                                      0
                                      >> Мне, жуть, как
                                        0
                                        Завис
                                        +1
                                        Мы его кладем, скорость 3-8K/s
                                          +3
                                          добавили хеш pipiska, без него теперь показывает клип какого-то негра-гея =)
                                            +2
                                            Хеш вытягивается из страницы:
                                            pipiska=$(curl -s "http://esquire.ru/clock" | grep superSecret | grep -o -P "[0-9a-f]+(?=\")")
                                              0
                                              хаха. рикролл. what what(in my butt)? :)
                                                0
                                                Точно. Ну что ж, посмотрим кто победит.
                                              +2
                                              Сделал на днях настенные часы из этого же видео:
                                              #!/usr/bin/python
                                              
                                              import os, time, signal
                                              from datetime import datetime
                                              
                                              signal.signal(signal.SIGCHLD, signal.SIG_IGN)
                                              
                                              def show_clocks(video_file, offset):
                                                  print "File: %s, offset: %d" % (video_file, offset)
                                                  pid = os.fork()
                                                  if (pid == 0):
                                                      os.execl(
                                                              "/usr/bin/mplayer",
                                                              "/usr/bin/mplayer",
                                                              "-ss",  str(offset),
                                                              "-fs",
                                                              video_file
                                                      )
                                              
                                              current_video_file = ''
                                              while True:
                                                  t = datetime.time(datetime.today())
                                                  tenminute = int(t.minute / 10) * 10
                                              
                                                  video_file = "big_%02d-%02d.mp4" % (t.hour, tenminute)
                                                              
                                                  if video_file != current_video_file:
                                                      current_video_file = video_file
                                                      offset = (t.minute % 10 * 60 + t.second)
                                                      show_clocks(video_file, offset)
                                                              
                                                  time.sleep(1)
                                              

                                                0
                                                А может склеить файлы в один большой, тем же mencoder'ом(который наверняка есть у обладателей mplayer'а):
                                                f=$(ls big_*);mencoder -ovc copy -oac copy $f -o big.mp4
                                                а затем просто вызывать наш скринсаэвер совсем простенькой командой, не забыв зациклить воспроизведение:
                                                mplayer -loop 0 -ss $(date +%H:%M:%S) -nosound -nolirc -wid $XSCREENSAVER_WINDOW -nostop-xscreensaver -fs -really-quiet big.mp4
                                                Как мне кажется, так гораздо проще.
                                                –1
                                                Раз уж часики жмут, пускай тогда и скули с XSS закрывают.
                                                  0
                                                  Утром сделаю magnet торрент с видеофайлами
                                                    +1
                                                    Торрент с видео (5 гигов) magnet:?xt=urn:btih:A5979FA5905E96AFAB035C156AC9B1021738C401&dn=EsquireClock&tr=udp%3a//tracker.openbittorrent.com%3a80/announce
                                                    Я доступен извне только по IPv6, поэтому добавьте пира вручную (если у вас есть IPv6 доступ)
                                                    [2001:470:79f3:1:19ce:ba9d:8d92:5765]:9800
                                                      +1
                                                      Парсер лох (переносы строк нужно убрать)
                                                      magnet:?
                                                      xt=urn:btih:A5979FA5905E96AFAB035C156AC9B1021738C401&
                                                      dn=EsquireClock&
                                                      tr=udp%3a//tracker.openbittorrent.com%3a80/announce
                                                    0
                                                    Оффлайн версия для винды. Предварительно надо скачать видео в папку EsquireClock рядом со скринсейвером, торрент файл прилагается. code.google.com/p/esquireclockscreensaver/downloads/list
                                                      0
                                                      Можно не качать видео, а воспользоватся моим флеш скринсейвером, который грузит видео с другого источника. code.google.com/p/standard-time-for-retina/downloads/list
                                                        0
                                                        А под Mac OS уже есть скринсейвер?

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое