![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Журнал Витуса./Записи в блоге |
Журнал Витуса.
Голосов: 2 Адрес блога: http://vitus-wagner.livejournal.com/ Добавлен: 2008-02-19 12:48:41 блограйдером Lurk |
|
О больших архивах
2017-01-22 18:05:09 (читать в оригинале)Попробовал тут разгрести описанным в предыдущем посте скриптом архив либрусэка завалявшийся с 2009 года.
Получилось - из менее чем 200000 книг 2176 попросту not well-formed XML. В основном от того что народ использует знаки больше-меньше (даже не сдвоенные) в вместо кавычек-елочек, а какие-то распространенные тулзы генерации FB2 это не отслеживают и не заменяют встретившийся в тексте зна < на соответствующий entity. Аналогичные проблемы возникают с амперсэндами.
Ну и плюс к тому куча пробелов, неразрывных пробелов, кавычек, скобочек в полях "имя автора". В принципе можно скрипт пофиксить, чтобы все символы, не участвующие в сортировке по библиографическим правилам, резал.
Но вообще, конечно, все это добро нуждается в вычитки и чистке от артефактов сканирования и распознавания. Поэтому я и держу настолько маленькую библиотеку, что в ней мне все-таки не лень слазить и руками исправить ошибки в XML и метаданных.
А то и пройтись по всему тексту и правильно оформить тэгами разбиение на главы.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1869574.html. Please comment there using OpenID. Now there are
В солнечный день на кухне
2017-01-22 12:12:14 (читать в оригинале)Театр теней

К нам радуга в гости:

Конечно, это артефакт работы оптической системы смартфона, но все равно прикольно.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1869435.html. Please comment there using OpenID. Now there are
Навел порядок в своей библиотеке.
2017-01-22 11:44:25 (читать в оригинале)Превратил жуткую свалку fb2 и epub-файлов, в которой мог разобраться только FBReader, да и то не сразу, в более-менее структуруированное хранилище,
вида перваябуква/автор/название
Была еще идея насоздавать симлинков для книг с более чем одним автором, но решил пока не связываться.
Большую часть работы проделал вот такой скрипт:
for i in *.fb2.zip; do author="`unzip -p $i "*.fb2"| xmlstarlet sel \ -t -m "//_:title-info/_:author[1]" \ -v _:last-name -o "_" -v _:first-name -n `" title="`unzip -p $i "*.fb2"| xmlstarlet sel -t \ -v "//_:title-info/_:book-title" | tr ' ' '_'`" dir=`echo "$author"|sed 's!^\(.\)!\1/\1!'` echo "$i => $dir/${title}.fb2.zip" [ -d "$dir" ] || mkdir -p "$dir" mv $i "$dir/${title}.fb2.zip" done
Скрипт, конечно наколеночный и кривой. Поддержки epub пока нет, хотя смысл там примерно
unzip -p $epub_file content.opf | xmlstarlet sel -N dc=http://purl.org/dc/elements/1.1/ \ -t -v '//dc:creator[1]' -n -v //dc:title -n.
Ну и еще файл сканируется дважды. Но я решил что проще это делать дважды, чем
разгребаться с эскейпингом средствами xslt.
О, кстати придумал как обойтись без искейпинга. Вывод xmlstarlet который пишет автора на первой строчке, а title во второй, перенаправляем в
(read author read title # do what we need with author and title ). В результате внутри xmlstarlet нужно заэскейпить только ньюлайны.
P.S. А если для фотографий аналогичный скрипт сделать? Чтобы валить их все в кучу, чуть ли не rsync-ом, а скрипт пусть потом разгребает по датам и местам.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1869108.html. Please comment there using OpenID. Now there are
Кометарии
2017-01-20 14:59:32 (читать в оригинале)Наткнутся тут на забавную опечатку "Комметарии" вместо "Комментарии". И подумал, что бы это могло быть?
Вероятно, "кометарии" это некая тоталитарная секта, которая поклоняется комете. Вернее, живет ожиданием того, что случится пришествие кометы и она устроит апокалипсис.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1868897.html. Please comment there using OpenID. Now there are
IPv6: что я делаю не так?
2017-01-19 21:10:10 (читать в оригинале)Выяснил, в чем причина того, что хецнеровская виртуалка была не доступна по IPv6:
Оказывается, я там что-то лишнее перекрыл на файрволле, и поэтому оно и не работало.
Файрвол был более-менее прямолинейно скопирован с IPv4 конфигурации и выглядел вот так:
# Generated by ip6tables-save v1.4.21 on Sat Mar 5 12:27:46 2016 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -p icmp -j ACCEPT -A INPUT -p igmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p udp -m udp --dport 1194 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5222 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5269 -j ACCEPT -A INPUT -i eth0 -j REJECT --reject-with icmp6-port-unreachable -A OUTPUT -p tcp -m tcp --dport 6000:6020 -j DROP COMMIThttp://vitus-wagner.dreamwidth.org/1868705.html. Please comment there using OpenID. Now there are



Категория «Проза»
Взлеты Топ 5
![]() | ||
+261 |
287 |
minnesinger |
+220 |
245 |
Ksanexx |
+219 |
244 |
RuSSianIdIoT |
+190 |
212 |
prestissima.moskva.com: Блог Prestissima |
+187 |
249 |
Лил_Ра |
Падения Топ 5
![]() | ||
-1 |
19 |
Lurk |
-5 |
28 |
Prestissima |
-10 |
162 |
Клевер |
-14 |
61 |
Странный мир |
-17 |
241 |
Дед Мороз |

Популярные за сутки
Загрузка...

BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.