Showing posts with label shell. Show all posts
Showing posts with label shell. Show all posts

Профилактика в вашем QuickTime Player


Не так давно обнаружил интересное "шоу" на канале "Россия", под названием "Профилактика". Жаль что трансляция идет поздно (0:45). Но можно же посетить портал канала "Россия" и насмотреться всеми выпусками. Вот только использовать Flash в броузере увольте.



Но есть выход:
curl --user-agent 'Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3' \
http://russia.tv/video/show/brand_id/5200 | \
perl -ne 'm/("http[^"]+showZoomBtn[^"]+")/ and print $1' | \
xargs curl --user-agent 'Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3' | \
perl -ne 'm/("http[^"]+\.mp4[^"]+")/ and $_=$1 and s#\\##g and print' | \
xargs open -a 'quicktime player'
"Засовываем" это в Automator, и все ОК :).



Зачем такие трудности? У меня, к сожалению не 12-ти ядерный Xeon. И очень жалко 50-80% одного из двух ядер на Flash видео. Для сравнения: QuickTime Player "отъедает" на том же "контенте" всего 8-10%.

UPDATE:

Больше можно не париться, ребят выгнали с телика и у них теперь нормальный сайт :), а видео в youtube.com

http://profilaktica.tv 

Anki, транскрипция и произношение.

Сейчас многие занимаются изучением иностранных языков.
Я тоже не исключение. Для расширения словарного запаса мне помогает Anki (прекрасное кросс-платформенное приложение).
Все прекрасно в этом творении софтверной мысли :).
Но вот так называемые Deck'и редко содержать что-то больше чем слово и его самый распатроненный перевод. Не густо. Хочется видеть как минимум транскрипцию, да и звуковое сопровождение (от носителя языка) тоже не плохо. Благо Anki это может.

Транскрипцию я предпочитаю брать из словарей Lingvo, звук из словарей Google.
Делая это "руками" и броузером теряем слишком много времени и бесценное внимание (концентрацию на задаче).

Соответственно...

Вот мой скриптик который помогает делать следующие:
  • получить mp3 файл с произношением
  • получить транскрипцию (копируется в буфер)
  • ну и можно как словарь консольный пользовать :)
#!/usr/bin/ksh
#

if [[ "x$1" = "x" ]]; then
    echo "Specify word!"
    exit 1
fi

echo "=-=-=-=-=-=-=-= General =-=-=-=-=-=-=-="
s_word=$*
echo "word => ${s_word}"

s_url=$(
        curl --silent "http://www.google.ru/dictionary?langpair=en%7Cru&q=${s_word}" | \
        perl -ne "m#${s_word}.+?mp3#i and print" | \
        perl -ne 'm#(http://.+?\.mp3)# and print $1 and exit' 
       )

echo "URL => ${s_url}"
curl --silent -O ${s_url} &

for l_word in ${s_word}
do
    s_regex=${l_word}'(<[^>]+>)+\[(<[^>]+>)+([^<]+)(<[^>]+>)+\]'
    s_trans=$(
        curl --silent "http://lingvo.yandex.ru/en?text=${s_word}&lang=en&search_type=lingvo&st_translate=on" | \
        perl -ne "m/${s_regex}/ and print '[' . \$3 . ']' "
    )
    echo -n ${s_trans} | pbcopy
    echo "transcription => ${s_trans}"
    echo
done
echo

echo "=-=-=-=-=-=-= Translation =-=-=-=-=-=-="
curl --silent "http://lingvo.yandex.ru/en?text=${s_word}&lang=en&search_type=lingvo&st_translate=on" | \
grep  'p class="L1"' | \
perl -pe '
s/(<p[^>]*>)|(<br[^>]*>)/\n/gi; 
s/(<[^>]+>)+//gi; 
s/[\t ]+/ /g; 
s/Syn:/\nSyn:/gi;
s/«[^»]+» в других словарях.*//gi;
s/\n+/\n/sg
' | head -40 #remove this if you want to see full translation

[[ -x $( which mpg123 ) ]] && \
[[ -f "${s_word}.mp3"   ]] && mpg123 ${s_word}.mp3 2>/dev/null &

Может кому поможет ;)
Всем спасибо, Все свободны.

UPDATE: к сожалению данный скрипт уже не работает (интернет штука динамическая). Времени написать свежую версию нет :(