Loading...
Error

Корректировка №9 и дополнение №10 к библиотеке FIDONET до состояния на 5 августа 2011г

Страницы:   Пред.  1, 2

Ответить на тему

 | 

 
Автор Сообщение

Michel-F

По существующим файлам такую таблицу можно получить разбором inpx-файла, промежуточные результаты я к сожалению не сохранял.
+: поработал немного с экселем, сформировал таблицу с требуемыми полями - https://rapidshare.com/files/1505835991/arc_files_table.7z.html
Разделитель - Tab, названия полей указаны в первой строке.

Архивы, в которых однозначного соответствия не определил, не обработаны, для них поле arc_file - пустое.

gav-m,
у Вас на сайте можно открывать книги в архивах.
Списки книг сформированы в алфавитном порядке или же так, как они в заголовке архива описаны?
Если можете получать список файлов в архиве с нормальным порядком файлов, проблем с формированием inpx не будет.

gav-m

Michel-F писал(а):

MHL для извлечения книги нужны только arc_name и file_index, filename и fileext можно править по своему усмотрению. В частности, всё нестандартное можно привести к типу "txt" без каких-либо осложнений.
Понятно. Весьма интересное решение.

Michel-F писал(а):

gav-m,
у Вас на сайте можно открывать книги в архивах.
Списки книг сформированы в алфавитном порядке или же так, как они в заголовке архива описаны?
Если можете получать список файлов в архиве с нормальным порядком файлов, проблем с формированием inpx не будет.
Показываются файлы в произвольном порядке, но получить список файлов с порядковым номером - проблем нет.
Как я понимаю, для архивов с единственным, не считая file_id.diz, файлом указываем в поле 'folder' полное имя архива, в поле расширения - одно из стандартных, к которому привязан соответствующий обработчик. В соответствующее поле прописываем номер этого файла в архиве. Для многофайловых архивов - указываем имя архива без расширения, нулевой номер и расширение архива в поле 'EXT' так чтобы запускался мэнеджер архивов и пользователь сам выбирал что и каким образом ему надо открывать.
Если так, попробую сгенерить новый inpx.

Michel-F

gav-m писал(а):

Понятно. Весьма интересное решение.
Тяжёлое наследие старых версий Delphi, не поддерживавших Unicode.
Автор программы в Корее находится, и проблема встала в полный рост при распаковке файлов на диск )
ПМСМ; может и не поэтому такое решение принято.

gav-m писал(а):

Как я понимаю, для архивов с единственным, не считая file_id.diz, файлом указываем в поле 'folder' полное имя архива, в поле расширения - одно из стандартных, к которому привязан соответствующий обработчик. В соответствующее поле прописываем номер этого файла в архиве.
В общем да, алгоритм правильно расписан.
По многофайловым архивам всё несколько сложнее, я их бОльшую часть также разобрал на автомате.
Алгоритм сейчас вытащу из кода, посмотрите.

Michel-F

gav-m писал(а):

Для многофайловых архивов - указываем имя архива без расширения, нулевой номер и расширение архива в поле 'EXT' так чтобы запускался мэнеджер архивов и пользователь сам выбирал что и каким образом ему надо открывать
Отправил код алгоритма разбора в ЛС, здесь слишком большой получался. Если вопросы будут, отвечу. При необходимости переведу его на человечий язык ab

Большое число архивов было с содержанием "txt + набор картинок", для таких лучше указывать индекс txt.
Были также HTM[L] файлы с изображениями - но их я в архивах оставил, может быть и неправильно.

Возможность доступа "по старому" осталась, в выпадающем меню книги пункт "Открыть папку/архив". Кому нужно, архив открыть сможет.

gav-m писал(а):

Показываются файлы в произвольном порядке, но получить список файлов с порядковым номером - проблем нет.
По индексу файла в архиве есть одна тонкость - нужно пропускать записи папок. Архивы с файловой структурой внутри попадаются, так что имейте в виду.
К примеру, если есть структура:
[folder]
| |
| \file2.ext
\file1.ext

и записи в архиве идут как :
0 file1.ext
1 folder
2 file2.ext
,
то индексы файлов для доступа будут
0 file1.ext
1 file2.ext

gav-m

Michel-F писал(а):

Большое число архивов было с содержанием "txt + набор картинок", для таких лучше указывать индекс txt.
Были также HTM[L] файлы с изображениями - но их я в архивах оставил, может быть и неправильно.
Я бы и первый случай в архиве оставил - откуда человеку знать что в архиве осталось что то интересное? Есть так же заметное количество телепортнутых веб-страничек с кучей связаныйх html файлов. Есть чуть меньше 2тыс файлов подкаталогах разной степени вложенности. Ярким и гепертрофированым примером может послужить объект с именем bse_1978.rar
Или вот, Александр Жуков. Метаморфоза. В архиве 2 файла, один TXT другой DOC. Какой из них показывать пользователю?

Michel-F писал(а):

По индексу файла в архиве есть одна тонкость - нужно пропускать записи папок.
К примеру, если есть структура:
[folder]
| |
| \file2.ext
\file1.ext

и записи в архиве идут как :
0 file1.ext
1 folder
2 file2.ext
,
то индексы файлов для доступа будут
0 file1.ext
1 file2.ext
Какая чудесная грабля. Спасибо за наводку....

Michel-F

gav-m писал(а):

Я бы и первый случай в архиве оставил - откуда человеку знать что в архиве осталось что то интересное?
В таких файлах обычно в тексте на месте картинок пишется [Image_01] и т.п. Так что тут проблемы нет.

gav-m писал(а):

Есть так же заметное количество телепортнутых веб-страничек с кучей связаныйх html файлов. Есть чуть меньше 2тыс файлов подкаталогах разной степени вложенности. Ярким и гепертрофированым примером может послужить объект с именем bse_1978.rar
Я потому html-файлы и оставил в архивах.

gav-m писал(а):

Или вот, Александр Жуков. Метаморфоза. В архиве 2 файла, один TXT другой DOC. Какой из них показывать пользователю?
По алгоритму у меня формирует список "расширение" - "кол-во файлов", далее проверяет по списку

Код:

'.TXT', '.DOC', '.RTF', '.PDF', '.DJV', '.DJVU', '.CHM', '.MHT'
с учётом приоритета (если есть тхт - указываем его индекс, если нет тхт и есть doc - указываем индекс doc, ну и т.п.) и единственности вхождения (если будет к примеру два тхт-файла, не обрабатываем архив).

Приоритет тхт поставил выше, так как он - основной формат в фидошной библиотеке, да и нормальных ридеров doc (не офис) толком нет.

+: В принципе, через inpx можно указать и оба файла, но тогда надо как-то решать проблему с дублированием LibID.
Само поле не ключевое, насколько я помню, но дублировать записи по нему не хотелось бы.

А так есть приличное количество сборников рассказов/текстов песен, где каждый рассказ в отдельном файле внутри архива находится.

Michel-F

gav-m
Алгоритм обсуждаем, я сам понимаю, что он неидеален.
Но на мой взгляд это лучше, чем оставлять файлы в архивах.

Давайте свои предложения по алгоритму, я их могу внести и собрать утилиту, которая будет
принимать на вход листинг файлов, а на выход давать csv-файл с результатами по разобранному и неразобранному (в отдельных файлах).
С "правильными" индексами

Shams

gav-m писал(а):

Или вот, Александр Жуков. Метаморфоза. В архиве 2 файла, один TXT другой DOC. Какой из них показывать пользователю?
На мой взгляд - НЕ TXT. Если есть форматирование (DOC, RTF, FB2, HTM и пр.), то зачем же его терять?

Michel-F писал(а):

да и нормальных ридеров doc (не офис) толком нет
А AlReader?

Michel-F

Shams писал(а):

А AlReader?
Он только для Windows / WinMobile.

Shams писал(а):

На мой взгляд - НЕ TXT. Если есть форматирование (DOC, RTF, FB2, HTM и пр.), то зачем же его терять?
Я ещё исходил из того, что мне это на е-книге читать. Там только CoolReader/FBReader.
Я пользуюсь Кулридером, если формат не фб2, то на мой взгляд лучше других он показывает txt.

По FB2 - расширение к списку добавить нужно, согласен.

gav-m

Посмотрел я и решил что на ближайшее время займусь такой проблемкой, как определение фактического формата файлов вне зависимости от расширений. А то в наиболее интересной, исторической части библиотеки порядка нет ни какого, под расширением .doc, например, можно обнаружить текстовый файл, при при загрузке которого мой word падает. Может, кто подскажет утилиту под win32 аналогичную file в *nix?

Michel-F

gav-m писал(а):

кто подскажет утилиту под win32 аналогичную file в *nix?
TrID
http://mark0.net/soft-trid-e.html
Есть также плагин к Total Commander на его базе.

gav-m писал(а):

исторической части библиотеки порядка нет ни какого, под расширением .doc, например, можно обнаружить текстовый файл
Ага, порядка там нету ac

gav-m

Michel-F писал(а):

gav-m писал(а):

кто подскажет утилиту под win32 аналогичную file в *nix?
TrID
http://mark0.net/soft-trid-e.html
Есть также плагин к Total Commander на его базе.

Цитата:

C:\1>trid.exe Smert-3.txt

TrID/32 - File Identifier v2.10 - (C) 2003-11 By M.Pontello
Definitions found: 4397
Analyzing...

Collecting data from file: Smert-3.txt
Unknown!
В то же время

Цитата:

%file smert-3.txt
smert-3.txt: Non-ISO extended-ASCII text, with CRLF, NEL line terminators
PS.
Кажется, нашел. Модуль File::MMagic кажется работает как надо

gav-m

Разобрал архивы, результат в .CSV файле http://tinyurl.com/3ocrm7e
Сводная таблица по типам файлов:

Код:

application/msaccess                                   2
application/msword                                  4765
application/octet-stream                            4072
application/pdf                                     1711
application/postscript                                 2
application/x-arj                                    325
application/x-dosexec                                335
application/x-gzip                                     4
application/x-lha lh5                                  2
application/x-rar                                     90
application/x-shockwave-flash                          3
application/x-zip                                    413
application/x-123                                      9
audio/midi                                             1
audio/x-wav                                            1
image/gif                                          33829
image/jpeg                                         37190
image/tiff                                          2450
image/x.djvu                                       14365
image/x-ms-bmp                                       199
image/x-3ds                                          477
message/news                                           5
message/rfc822                                       145
message/rfc822 7bit                                  39
text/directory                                      1969
text/html                                          12418
text/PGP armored data                                  2
text/plain                                        253440
text/plain 8bit                                        2
text/rtf                                             677
text/xml                                            9230
x-system/x-unix;  commands text                       18
x-system/x-unix;  empty                               11

33 строк выбрано.
Из замеченых проблем - .png файлы определились как application/octet-stream, .dat файлы программы библиотекаря booklib как video/unknown.
PS: Может, стоит перебраться сюда viewtopic.php?t=8347 ? Надо бы определиться с вопросами и форматом до генерации следующего апдейта.

Michel-F

gav-m писал(а):

Может, стоит перебраться сюда viewtopic.php?t=8347 ?
ОК. Отпишусь там.
Показать сообщения:    
Ответить на тему