Recovery after crash

Author Message
Nick 10/22/2015 10:43 pm
During the download of a website my computer was hung and I had to to restart it.
My project was lost.
I was able to restore it using Webdown backup file method. However, my queue tree wasn't restored. There was about 70.000 of links in the queue pending to download. I've found in the Queue folder many .tmp files, choose one most recent and have changed its extension to .wqd. Then I've tried to restore it using "Download->Restore from a file" menu. But I've got restored only about 800 links.
This made me really upset as the website I've trying to download contains many .mp4 files with dynamic tokens which are included in the filename that Offline explorer was saved on the disk. So, if I won't be able to restore my old links, the app will download the entire website again and will get the links to the media files which urls will be differs due to new tokens.
I've already downloaded about 100 Gb of these media files which took for me few last days of downloading.
I really need to restore all the queue and the whole project to the state it was before the crash was happened, otherwise the work of few last days will be useless and I will have to restart the download from the scratch (to prevent data duplication under different filenames) and wait even longer until the project will be fully downloaded.

Hope there's a solution for my issue is available and we can resolve it asap.

Thank you.
Nick 10/23/2015 02:34 pm
запустил скачивание выбором варианта "Download missing files". Теперь имею кучу дубликатов файлов с другими токенами, многие страницы также перезакачались.

Также еще обнаружил, что svg элементы не загружаются, либо неправильно обрабатывается путь, к примеру в такой конструкции:
<svg preserveAspectRatio="xMinYMin meet" viewBox="0 0 30 32" class="logo-icon"><use xlink:href="/assets/icons-9b4acefa954a2014449870c5e8db366f.svg#logo-icon"></use></svg>
в загруженной программой странице этот элемент выглядит точно также, то есть путь до svg файла не был обработан и модифицирован в соответствии с локальным путем, а сам svg файл вообще не загружен.

также генереруются неверные ссылки, в которых содержатся части тегов html либо части кода jscript из тела страницы.
по статистике, примерно 2/3 всех ссылок - битые. То есть генерируется огромное кол-во файлов на диске либо с индексной страницей сайта, либо с страницей об ошибке 404, либо, например, с главной страницей какого-либо раздела.

сайт, который пытаюсь скачать https://teamtreehouse.com/
может, посмотрите сами как Ваш продукт обрабатывает его, если увидите проблемы (а я думаю, они будут) - возможно, сможете улучшить механизм парсинга или хотя бы дать мне совет как более оптимально настроить параметры проекта для этого сайта.

Спасибо!
Oleg Chernavin 10/23/2015 09:52 pm
Я скачал небольшую часть сайта, но не обнаружил неверных ссылок из скриптов. Вы не смогли бы мне прислать несколько образцов этих ссылок и адреса страниц, с которых они были обнаружены?

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

Мне бы также адреса пары страниц со ссылками на .svg файлы в теге USE - чтобы сделать и протестировать изменения парсера.

Заранее спасибо!

Best regards,
Oleg Chernavin
MP Staff
Nick 10/24/2015 02:24 am
Поначалу оно выглядит вполне нормально, но по мере того как парсится далее, появляются проблемы. Я многие неверные ссылки зафильтровал вручную, но попробую отловить, т.к. бывает появляются снова, даже если в фильтре маска совпадает с ссылкой. Тем не менее, не исключаю, что я сконфигурировал проект неверно.
Я скину мой фильтр, из которого можно узнать примеры неверных ссылок
*teamtreehouse.com/404*
*teamtreehouse.com/*/!==r.port
*teamtreehouse.com/*/"*
*teamtreehouse.com/*/"script.js/*
*teamtreehouse.com/*/%22*
*teamtreehouse.com/*/:/*
*teamtreehouse.com/*/bam.nr-data.net
*teamtreehouse.com/*/gtm.js
*teamtreehouse.com/*/gtm.start
*teamtreehouse.com/*/js-agent.newrelic.com/
*teamtreehouse.com/*/none
*teamtreehouse.com/*/pin
*teamtreehouse.com/*/pubsub.pubnub.com
*teamtreehouse.com/*/unpin
*teamtreehouse.com/*/vote
*teamtreehouse.com/*/vote/*
*teamtreehouse.com/*js-agent.newrelic.com/nr-768.min.js
*teamtreehouse.com/*platform.twitter.com/widgets.js
*teamtreehouse.com//gtm.start
*teamtreehouse.com/library/https*
*teamtreehouse.com/library/https?videos.*

А вот когда я нажимаю Show referers, я вижу лишь пустой список, также Copy Referer - копирует "пустую" строку в буфер.

Еще нужно уточнить, что в моем проекте идет скачивание не только с основного домена, но вообще, со всех поддоменов. Например, videos.teamtreehouse.com, хотя не думаю, что такое поведение из-за этой настройки. Попробуйте остановить проект, а потом выбрать "Doenload missing files". У меня после этого снова появились битые ссылки, которые я чистил вручную много часов.

По поводу svg - это, к примеру, боковое меню. У меня, если открыть сохраненную страницу, в левой серой колонке нет значков, как на оригинальной странице. Просто серая колонка с невидимыми ссылками.
Например, вот на этой странице: https://teamtreehouse.com/library в оригинале мы видим значки в левой колонке меню. В скачанной копии же у меня там просто пусто, и код, отвечающий за отображение меню (приведен в предыдущем сообщении), никак не изменяется между оригиналом и зеркалом.

Спасибо большое за ответ! Надеюсь, мой ответ поможет разобраться лучше.

Боюсь, проект нужно попытаться закачивать подольше, чтобы начали генерироваться кривые ссылки. Как будет возможность, я попытаюсь создать новый проект на этот сайт и прослежу внимательно когда и на какие элементы появляются подобные ссылки.
Nick 10/24/2015 02:28 am
ах да, забыл еще упомянуть, что некоторые из "неправильных" ссылок образовались таким образом: например, на странице есть ссылка вида https://teamtreehouse.com/library/blahblah#section
в очереди я обнаруживаю, что она отображается как https://teamtreehouse.com/library/blahblah/section
что приводит к перенаправлению сервером на https://teamtreehouse.com/library/blahblah
если таких ссылок на странице несколько (которые с #) - получается много копий одного и того же файла.

Спасибо
Nick 10/26/2015 05:03 am
И еще пара вопросов:
1. можно ли как-то сделать чтобы ссылки на видео вида https://videos.teamtreehouse.com/videos/03m-THDD-TechF-GraphB-SavingForWeb-720p.mp4?token=56304573_80a0acacccc555bd6f5ec10d6a6c1cde2893099f
не сохранялись на диск под именем 03m-THDD-TechF-GraphB-SavingForWeb-720p.mp4@token=56304573_80a0acacccc555bd6f5ec10d6a6c1cde2893099f
а под именем 03m-THDD-TechF-GraphB-SavingForWeb-720p.mp4
и чтобы при обновлении проекта эти файлы не перезакачивались из-за того что значение токена изменилось, и программа видела, что файл .mp4 есть на диске, и не важно какой там дальше токен идет, уже не пыталась перезакачивать, ну или сверяла размер файла, если соотв. галочка установлена

2. снова про sgv файлы. почему ОЕ пытается делать такое: http://imgur.com/U7nope6 ?

Спасибо, надеюсь на ответ!
Nick 10/28/2015 12:08 am
Олег, пожалуйста, дайте знать, если Вам нечего сказать по моим вопросам или по еще какой-то причине мне не стоит ждать ответы. Я тогда перестану писать о найденных проблемах. Найдите, пожалуйста, минутку, чтобы сообщить мне об этом :)

А я пока продолжу. Вроде бы нашел как сделать чтобы файлы сохранялись с расширением mp4 без хвоста. ОЕ их не перекачивает только если стоит галка "Skip existing media files", если ее убрать, но оставить галку "Check file size", файл все равно будет перезакачан. Размер файлов, само собой всегда одинаков (проверял MD5 суммы - совпадают, что, в прочем иначе и не может быть).
Вопрос №1: почему галка проверки размера файла не отменяет загрузку уже существующего файла?

Вопрос №2. Очень серьезный. Возможно, баг или мои кривые руки.
Я пересоздал проект, и чтобы не перезакачивать уже скаченные видео (около 100Гб), я их переместил в папку с новым проектом, удалив файлы Descr.WD3, т.к. старые файлы я переименовал, чтобы было расширение mp4 без токена после него. Проект стартовал с теми же параметрами, как у старого проекта. Поначалу было все нормально. Существующие медиа файлы пропускались. Но затем стало появляться очень много мусорных ссылок вот такого вида: http://imgur.com/zheSQ52
То есть как будто стало парситься содержимое mp4 файлов. Причем тех, что я переместил из старого проекта. Раньше такого поведения замечено не было. Таких ссылок может нагенериться пара тысяч, а может десятки тысяч.
После постановки проекта на паузу и попытки удаления таких ссылок, может вместо этого появиться еще больше, чем было. Даже если просто выделить их и выбрать в контекстном меню пункт "Move to bottom", часть ссылок могут рандомно пропасть или появиться новые. Выглядит как какой-то ужасный баг. Если после этого попробовать закрыть программу, вылезет ошибка Access violation или что-то подобное. Подозреваю, что что-то портится в оперативке при этом.

Надеюсь, мы сможем разобраться, и Вы не проигнорируете мое сообщение. Я уже 2 недели бьюсь, пытаясь создать нормально работающее зеркало этого сайта, но пока только одни проблемы. Ваш продукт бесспорно лучший на рынке в плане гибкости и обилия настроек, но описанные мной проблемы, с которыми я столкнулся, весьма печальны.

Благодарю за внимание
Oleg Chernavin 10/28/2015 10:13 pm
Прошу прощения за долгую паузу с ответом.

Пару изменений я сделал - обработку тега USE и номерных "ссылок" в SVG файлах. Вот новая версия:

http://www.metaproducts.com/download/betas/opbsetup.exe

По остальных пунктам:

1. Ссылки в скриптах - дайте мне текущие настройки Вашего проекта - выберите его, нажмите Ctrl+C и вставьте в сообщение. Я сделаю закачку и прослежу за такими ссылками.

2. https://teamtreehouse.com/library/blahblah#section
Дайте мне ссылку на страницу с таким линком и точный адрес этого линка. Я попробую воспроизвести.

3. С номером сессии - его можно убирать из имени файла с помощью функции Замена URL - Свойства Проекта - Обработка. Добавьте правило:
URL:
*
Replace:
.mp4?token=*
With:
.mp4
Apply To:
Filenames

4. Перезакачка видео файлов с галкой проверки размера - как именно Вы сделали убирание хвоста - с помощью способа выше? Дайте мне адрес страницы с таким видео, я повторю проблему и исправлю ее.

5. Обработка видео файлов - это из-за отсутствия descr.wd3 - программа не может понять реальный тип файла. Я исправлю это, если дадите ссылку на страницу с видео.

Спасибо!

Олег.
Nick 10/29/2015 05:37 am
По первому пункту, вот пример. Видно что пытается скачать и с какой страницы. http://imgur.com/qscgclS
Nick 10/29/2015 06:41 am
Спасибо за ответ, Олег!

Давайте попробуем разобраться :)

0. я так понимаю, бета, которую Вы выложили - это версия Pro? Дело в том, что я использую Enterprise версию, и как я понимаю, мой профиль не будет работать в про версии. Я попробую ее, как мой проект закончит скачивание (хотя бы медиа файлов).

1. Вот мой текущий конфиг проекта:
[Object]
OEVersion=Enterprise 6.9.4244
Type=0
IID=7014
Caption=https://teamtreehouse.com/
URL=https://teamtreehouse.com/Additional=DepthFirst
Dir=D:\TeamTree\
Lev=1000001
Hour=2
Minute=31
Weekday=257
CheckSize=True
SkipMedia=True
LTMethod=1
pswMethod=1
FTText.Exts=htmlhtmaspaspxjspstmstmlidcshtmlhtxtxttextxspxmlrxmlcfmwmlphpphp3cgi.
FTImages.Exts=bmpfifgificoipxj2cj2kjp2jpegjpglwfpngsvgtiftiffwbmpwebpxbm xxxxxxxxxxxxxxxxxx
FTVideo.Exts=aniasfasxaviflcfliflvm1vm2vm4vmovmp4mpegmpgogvramrmrvsmilvivvobwebmwmv xxxxxxxxxxxxxxxxxxxxxox
FTAudio.Exts=wavriffmp3midmp2m3uravocwmaapeoggm4aaifkar
FTArchive.Exts=7zziparcgzzarjlhalayleirarcabtarpakacejarpdftgzexeiso
FTUDef.Exts=jsaxdcssssivbsdtdxslswfclassent
FTText.B=ooxooo
FTImages.B=ooxooo
FTVideo.B=ooxooo
FTAudio.B=ooxooo
FTArchive.B=ooxooo
FTUDef.B=ooxooo
FTOther.B=ooxooo
FTSizes=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0,0
NotIgnoreLogout=False
RSrvsBx=3
RProt=255
LastStart=138:171:202:142:48:168:228:64:
LastEnd=68:185:150:205:47:168:228:64:
PrjStart=245:158:143:8:140:167:228:64:
LastStarted=28.10.15 12:25:06
LastEnded=28.10.15 11:51:08
S200=12683
S304=12910
S400=81
SAbr=40
SPar=21039
SSav=12683
SLast=200
SSiz=33235903910
SMdf=12683
SHTML=11849
SSuccDowns=1
LFiles=25711
LSize=36086893141
SubstsB=aHR0cHM6Ly92aWRlb3MudGVhbXRyZWVob3VzZS5jb20vKj90b2tlbj0qCT90b2tlbj0qCQlYDQpodHRwOi8vKnRlYW10cmVlaG91c2UuY29tLyoJaHR0cDovLwlodHRwczovLw0K
ApplyAllSubsts=True
ImgDim=0,0,0,0
PrevURL=https://teamtreehouse.com/
SkipURLs=http://teamtreehouse.com/videos/*https://teamtreehouse.com/videos/*
SkipURLs2=*blog.teamtreehouse.com/**teamtreehouse.com/*.000z*teamtreehouse.com/*/!==r.port*teamtreehouse.com/*/"**teamtreehouse.com/*/"script.js/**teamtreehouse.com/*/%22**teamtreehouse.com/*/:/**teamtreehouse.com/*/bam.nr-data.net*teamtreehouse.com/*/forum_answers/**teamtreehouse.com/*/gtm.js*teamtreehouse.com/*/gtm.start*teamtreehouse.com/*/js-agent.newrelic.com/*teamtreehouse.com/*/launch_workspace*teamtreehouse.com/*/none*teamtreehouse.com/*/pin*teamtreehouse.com/*/pubsub.pubnub.com*teamtreehouse.com/*/subscribe?**teamtreehouse.com/*/trailer*teamtreehouse.com/*/unpin*teamtreehouse.com/*/vote*teamtreehouse.com/*/vote/**teamtreehouse.com/*https?**teamtreehouse.com/*js-agent.newrelic.com/nr-768.min.js*teamtreehouse.com/*platform.twitter.com/widgets.js*teamtreehouse.com//gtm.start*teamtreehouse.com/404**teamtreehouse.com/account/**teamtreehouse.com/community**teamtreehouse.com/library/https**teamtreehouse.com/workspaces*teamtreehouse.com/workspaces**teamtreehouse.com/workspaces/*
SkipVideoBlocks=True
ConvertFileNames=True
ConvertWWW=False


2. Сейчас с ходу не могу найти такой пример линка, предлагаю пока оставить этот вопрос. Возможно, я ошибся. Но если насчет ссылок с #, то к примеру на этой странице https://teamtreehouse.com/library/css-layout-techniques/display-modes/column-layout-with-inlineblock под видео мы видим ссылки "Questions", "Video transcript", "Downloads". В скачанной версии они не работают - содержимое всех ссылок видно на странице друг за другом. Видимо, что-то портится в коде. Также обратил внимание, что содержимое js файлов обрабатывается и часто изменяется так, что получается неработоспособным. Сравнивал различия между локальной копией и с копией непосредственно с сервера. Могу скинуть примеры.

3. Да, это я уже сделал, как написал ранее. Работает.

4. Для новых файлов - да, имена сохраняются благодаря правилам "URL substitutes". Для уже скачанных файлов ранее, я не нашел такой возможности в самой программе, поэтому просто использовал программу для массового переименования файлов. Любая ссылка с видео работает одинаково, например, приведенная мной выше. Если вручную скачать видео файл с этой страницы, а потом поместить его в соотв-ю папку с проектом, когда дойдет очередь до этого файла, то с установленной галкой проверки размера файла, НО без установленной галки "пропускать существующие медиа-файлы", этот файл будет перезакачан и перезаписан, несмотря на идентичный размер файла.

5. Да, я так и понял, что из-за отсутствия описания в descr.wd3. Просто не уверен, достаточно ли было бы удалить из старых descr.wd3 файлов токены, оставив лишь имена файлов, а потом отредактированные файлы слить с новым файлом (само собой не через блокнот, а редактируя в бинарном режиме, чтобы не испортить служебную инфу в этом файле). Пример линка на видео опять же см. выше.
Я пока обошел эту проблему, переместив все уже ранее скаченные видео в отдельную папку, а в папке проекта просто создал файлы нулевой длины с этими же именами. Таким образом больше нет мусора в очереди, т.к. парсить в этих файлах нечего, но при скачивании они не перезаписываются. Надеюсь, по окончании скачивания проекта и возвращении полных файлов на место, я смогу экспортировать проект без проблем.


Спасибо за помощь! Если я дал недостаточно информации - напишите, я постараюсь еще более подробно описать.

Николай.
Oleg Chernavin 10/29/2015 06:36 pm
Вот Enterprise версия:

http://www.metaproducts.com/download/betas/eebsetup.exe

Я еще улучшил обработку скриптов. Дайте мне адрес страницы с видео, чтобы исправить (4).

Олег.
Nick 10/29/2015 10:22 pm
Спасибо. Попробую новую версию.

Я вчера попробовал Про версию, что Вы выложили - пути к svg-элементам теперь обрабатываются, правда сами svg-файлы битые выходят. Вот например сравнение локальной копии и копии с сервера: http://imgur.com/OWoukYO
Подобным образом же происходят изменения в js файлах, в местах, где нет никаких ссылок. Я думаю, Вы сами можете это проверить, скачав пару страниц с сайта и сравнив содержимое сохраненных js файлов с теми, что на сервере.

Также предыдущий скрин тоже актуален: http://imgur.com/U7nope6


По поводу видео (4):
Для примера, давайте сначала скачаем сайт в ОЕ, по ссылке, содержащей видео, чтобы создать соответствующие пути. Например отсюда: https://teamtreehouse.com/library/episode-149-performance-tools-material-design-sliders
Затем, откроем в браузере другое видео, например по ссылке https://teamtreehouse.com/library/episode-150-css-shapes-javascript-font-combinations
Подождем, пока видео начнет воспроизводиться, кликнем на него правой кнопкой мыши и выберем Download video as... и сохраним в папке видео нашего проекта (туда, куда сохранилось видео из нашей первой ссылке).
Теперь, попросим ОЕ скачать страницу по второй ссылке, откуда мы только что сохранили видео.
Если у нас стоит галка 'Skip existing media files', видео повторно не скачается (при условии, что у нас есть правило, которое отбрасывает токен из ссылки, делая имя файла, оканчивающееся на mp4).
Если галка не стоит, но стоит 'Check file size' - видео скачается заново, несмотря на совпадение размеров. То есть, я так понимаю, что размер файла на диске не проверяется, а смотрится в файле Descr.WD3, но в этом случае мы не имеем записи об этом видеофайле, поэтому ОЕ не знает размера файла, либо думает, что он не существует на диске.

Как-то так...
Nick 10/29/2015 10:27 pm
Кстати, почему-то в встроенном браузере svg-элементы по-прежнему не отображаются. Но если открыть в Хроме - там все ок, не считая некоторых битых картинок, из-за поврежденного содержимого самих файлов.
Oleg Chernavin 10/31/2015 09:08 pm
Вроде все исправил, кроме встроенного браузера - там MS IE испольуется, возможно, у него какое-то ограничение с этими картинками.

http://www.metaproducts.com/download/eebsetup.exe

Олег.
Nick 11/03/2015 08:52 pm
Спасибо за новый релиз, Олег!

1. По-прежнему пытается индексировать mp4 файлы, которые не в Descr.WD3 при обновлении проекта. Причем, при первых запусках я такого не наблюдал, но потом однажды прога закрылась аварийно и при следующем запуске обновления проекта, снова начал генерироваться мусор. Ладно, если б он там реальные ссылки находил, но почему-то пихает в очередь какой-то откровенный мусор, вообще никак не похожий на ссылки.

2. SVG файлы все еще добавляют в очередь некоторые несуществующие ссылки: http://i.imgur.com/f5eMWee.png http://i.imgur.com/ZL7jgEz.png

3. По-прежнему добавляются в очередь различные элементы из js файлов: http://i.imgur.com/sPnLDKS.png http://i.imgur.com/JDNnhG5.png
Но сами файлы теперь не портятся, все ок.

Странно, что в IE не отображаются svg элементы, когда как на оригинальном сайте все отображается...


И вопрос, не относящийся к проблемам, все забывал спросить. Как можно заблокировать ссылки вида https://teamtreehouse.com/library/1882 ? Цифры от 1 до ХХХХ. Они переадресуют на домашнюю страницу, но содержатся в исходном коде страниц. Самое интересное, что если в браузере выбрать "Показать исходный текст страницы", эти ссылки там будут, а если выбрать на странице то место, где должна быть эта ссылка и выбрать "Inspect element" - там этой ссылки уже не будет, вместо нее будет рабочая. Я не спец по вебу и не очень понимаю как так. Но можно ли что-нибудь сделать? Вот примеры скриншотов этих элементов. Исходный код страницы: http://i.imgur.com/qkZU6uU.png А вот как этот же кусок кода в инспекторе: http://i.imgur.com/CIrXa5y.png

Такая штука генерирует довольно большое кол-во ссылок, которые будут переадресованы на главную страницу, тем самым они бесполезны и занимают место на диске. Я не нашел способа заблокировать или как-то еще обойти загрузку таких страниц. По маске /library/* - нельзя, там еще есть и нормальные ссылки на курсы.

Это не критичная вещь, просто интересно узнать природу, ну и как зафильтровать эти ссылки.

Спасибо большое за помощь!
Nick 11/05/2015 06:01 am
Упс, файлы не портятся, имелось в виду про SVG-файлы, а не js., то есть относится к 2-му пункту.

У JS файлов, по-прежнему, содержимое портится: http://i.imgur.com/ziO31qx.png http://i.imgur.com/jf3ALlL.png

И еще прошу обратить внимание на тег <video> там не обрабатываются свойства poster и, к примеру, такой элемент как <track kind="subtitles" src="/videos/42902/captions" srclang="en"></track> . Ссылка на изображение добавляется в очередь и картинка скачивается, но в коде не заменяется на локальный путь.
Пример ссылки с видео: https://teamtreehouse.com/library/episode-150-css-shapes-javascript-font-combinations
Плюс сами видео почему-то тоже не воспроизводятся в скачанной версии при просмотре через встроенный веб-сервер, хотя путь до них верный. Я в курсе, что локально html видео не воспроизводится, но через веб-сервер-то то должно! Тут браузер не при чем - я пробовал в различных.
Oleg Chernavin 11/05/2015 06:12 am
Насчет запрета ссылок - лучше всего использовать Фильтры URL - Имена файлов - добавить в запрещенные:

/library/[0-9]*

Насчет видео и ссылок из скриптов - поработаю над этим в ближайшие дни. Просмотр видео - попробуйте кликнуть правой кнопкой на проекте и просмотреть его в другом браузере - встроенный браузер может не поддерживать некоторые типы видео файлов. FireFox лучше с этим справляется.

Олег
Nick 11/05/2015 12:56 pm
По поводу фильтра - не знал, что regexp'ы поддерживаются. В документации не встретил упоминания. Попробую.

По видео - я же писал, что пробовал не только встроенный браузер, но и другие. Опера, Хром, ФФ, Сафари, ИЕ - ни один не воспроизводит видео. Приходится делать Inspect element на окошко плеера, там в коде находить ссылку на видео и на нее кликать, тогда открывается в новой вкладе само видео.

И еще один косяк. Делаю экспорт проекта в отдельную папку, и не все файлы сохраняются в итоге. Например, нет файлов default.html в папках, хотя на них идут ссылки из меню и других мест. В самих папках проекта эти файлы есть, но при экспорте почему-то нет!

Спасибо!
Oleg Chernavin 11/10/2015 09:00 pm
Исправил скрипты, доделал ссылки из тегов video/track/source, убрал обработку видеофайлов с диска:

http://www.metaproducts.com/download/betas/eebsetup.exe

Попробуйте перезакачать сайт с новой версией и посмотреть, будет ли воспроизводиться видео.

Насчет экспорта - посмотрите, есть ли в Карте Проекта эти файлы - экспортируются только файлы, которые есть в карте.

Олег.
Nick 12/02/2015 08:25 pm
Прошу прощения за долгое молчание.

В новой версии дела получше, но все еще не без проблем.

Captions теперь конвертируются в .srt? это хорошо, только при попытке апдейта проекта получил такое: http://i.imgur.com/khCbtMv.png

Но видео по-прежнему не воспроизводятся. Если, используя локальные пути (с диска), это нормально, что не воспроизводится (нагуглил, что не работает в этом случае), то используя встроенный веб-сервер - должно ведь! В этом случае не должно быть разницы локальный сервер или сервер в интернете.
Возможно, я знаю в чем проблема. Если я пытаюсь вставить ссылку на видео, которая указывает на файл на встроенном веб-сервере (http://127.0.0.1....), то вместо воспроизведения файла в браузере, он скачивается на диск, при этом, если я скопирую ссылку на видео на оригинальном вебсайте и вставлю в новую вкладку - браузер воспроизводит mp4 файл прямо в окне, не пытаясь его скачать. Возможно, встроенный веб-сервер отдает видео-файл каким-то иным способом, заставляя браузер его сохранить на диск. Я думаю, поэтому видео не проигрывается.

Насчет экспорта проекта. Ссылка на домашнюю страницу или какой-либо раздел выглядит вот так: https://teamtreehouse.com/home
Если в карте проекта кликнуть по папке home - страница откроется в встроенном браузере.
На диске же создается файл teamtreehouse.com/home/default.htm
При экспорте проекта, все ссылки вида teamtreehouse.com/home заменяются на teamtreehouse.com/home/default.htm НО! при этом данный файл не экспортируется, таким образом навигация по экспортированному сайту невозможна, хотя в карте проекта этот файл существует.
Такая же история с адресом https://teamtreehouse.com/tracks

При этом адрес https://teamtreehouse.com/library экспортируется нормально, файл default.htm экспортируется на диск.


Далее, по какой-то причине все равно пытался залезть в mp4 файлы: http://i.imgur.com/qbs5Guv.png
Правда, если раньше генерировались тысячи ссылок, то теперь всего лишь сотни :)

Теперь, другие печальные вещи. Все еще портится содержимое javascript, в которых пытаются отыскаться ссылки и замениться на локальные. Там, где это не нужно. К примеру, я скачал страницу по адресу: https://teamtreehouse.com/library/moving-from-wordpresscom-to-selfhosted-wordpresscom/moving-from-wordpresscom-to-selfhosted-wordpressorg/backing-up-and-importing
И затем, сохранил эту же страницу в виде исходного кода через браузер (без картинок, т.е. чистый код с сервера) и сравнил эти 2 файла. Вот что получил: http://i.imgur.com/spgske7.png http://i.imgur.com/dDvR6Ot.png http://i.imgur.com/rrQCrsZ.png http://i.imgur.com/VwhEN9t.png http://i.imgur.com/782Xwdr.png http://i.imgur.com/XlDx3UN.png
Ссылки, генерированные программой неверны, т.к. на сервере не существуют (собственно, я думаю, понятно, что они и не должны указывать на сервер, с которого мы скачиваем).

Спасибо. Надеюсь, моя информация помогает сделать продукт лучше.
Oleg Chernavin 12/02/2015 08:52 pm
Насчет скриншота не понял - что не так на нем?

Про видео - тут все просто. Вы загружали видео вручную и клали их в папки. Сервер ОЕ не может определить тип файла без файлов descr.wd3, которые хранят MIME тип, полученный от сервера. Я сделаю изменение в коде сервера, чтобы он отдавал корректный тип для MP4. И изменю код обработки, чтобы не искать ссылки в файлах .mp4?...

Про экспорт - посмотрите, пожалуйста, в Карте этого проекта есть ли файлы teamtreehouse.com/home/default.htm и teamtreehouse.com/tracks/default.htm ?

Обработку скриптов поправил, но не все случаи пока еще, буду работать далее.

Спасибо!

Обновленная версия:

http://www.metaproducts.com/download/betas/opbsetup.exe

Олег.
Nick 12/02/2015 09:16 pm
Вы про первый скрин по поводу субтитров?
Поясню, в первый раз ОЕ загрузил субтитры по ссылкам с сайта и сконвертировал их в .srt, поправил ссылки в коде - тут все ок.
При обновлении проекта, он почему-то решил, что субтитры лежат на сайте в виде .srt файлов с именами, которые он сам сгенерировал на основе заголовка страницы, и начал пытаться их загрузить с сайта, что и показано на скрине. Само собой, на сайте таких файлов не существует, тем самым генерируется большое кол-во ошибок 404 на стороне сервера+лишний трафик.
По моему мнению, так быть не должно.

Да, по поводу видео, так и есть. Я просто не могу каждый раз загружать 300+ Гб видео, когда я стартую проект заново чтобы отследить поведение в новом билде. И я не смог сохранить информацию из Descr.WD3, т.к. сначала файлы сохранялись на диске не как .mp4 файлы, а с номером токена после имени, что приводило к дублированию при обновлении проекта, т.к. токены были каждый раз различные. Соответственно, в WD3 файле информация об этих файлах содержала так же токены, плюс я не уверен, что сам ОЕ понимал, что это mp4-файлы. После переименования файлов путем удаления из имени файла токенов, это стало равнозначно тому, как если бы я просто скачал файлы вручную и положил в соотв. папку.

Про экспорт - я писал, что да, эти файлы в карте проекта есть и во внутреннем браузере открываются. Однако, не экспортируются по какой-то причине. Проект перезакачивал несколько раз и получал одинаковый результат.

Спасибо, буду смотреть как дела в новом билде и ожидаю билда с изменениями в коде сервера.
Oleg Chernavin 12/07/2015 06:48 pm
Про srt файлы мне снова нужно подробнее - с какого адреса они скачиваются, чтобы я воспроизвел.

Видео - ну вроде теперь не должно быть проблем. Насчет экспорта - давайте сделаем так - сделайте резервную копию проекта (меню Сервис или Tools - Backup) и залейте на какой-нибудь файлообменник, Dropbox или Google Disk. И дайте мне ссылку, чтобы его скачать. Я посмотрю, почему в экспорте нет этих файлов.

Олег.
Nick 12/07/2015 09:21 pm
Спасибо, Олег!

По srt файлам, я выше давал ссылку на скриншот, где видно откуда скачивается и кто реферрер. вот этот скрин: http://i.imgur.com/khCbtMv.png
Если нужна другая информация - пожалуйста, сообщите.

Обновленной сборки в этот раз нет? В прошлый раз Вы выложили ссылку на Pro версию, когда как проект был изначально в Enterprise версии. Насколько, я понимаю, там есть разница в файлах проекта или можно без проблем установить Pro версию и импортировать проект из Enterprise?

Насчет бекапа - боюсь, не выйдет. Проект весит более 300 Гб и заливать куда-либо такой объем проблематично, плюс у меня Upload всего лишь 1Mbps, я месяц заливать буду...

Спасибо.
Oleg Chernavin 12/08/2015 05:59 pm
Вот самая свежая версия:

http://www.metaproducts.com/download/betas/eebsetup.exe

По первому вопросу - а в каком режиме идет обновление проекта - Не загружать существующие файлы, Скачивать измененные и новые файлы? Вы сами эти srt файлы не стираете перед обновлением - они все так-же на диске?

Олег.
Nick 12/10/2015 03:33 am
Спасибо за новую версию.

Про srt файлы, только что скачал сайт заново, затем выбрал Download missing files, опять получил эту же самую картину - пытается скачать srt файлы с сайта, которых там нет. Сами srt файлы, естественно, на диске - были записаны при скачивании сайта. Скрин не прилагаю, т.к. он идентичен ранее показанному.

Снова были замечены попытки "потрошения" mp4 файлов на предмет ссылок в них.
Nick 12/10/2015 10:21 pm
Видео стали проигрываться, но только в дефолтном проигрывателе браузера. Я имею в виду, что не использует контролы, которые запрограммированы на странице. Так же не воспроизводит субтитры, хотя есть возможность выбора (Вкл/Англ/Выкл). К слову, я тестирую это на браузере Safari 9.0.1 (OS X).
По умолчанию, все контролы выключены, нужно кликнуть правкой кнопкой в области экрана, где должно быть видео и выбрать Show Controls (появятся стандартные кнопки браузера). Автовоспроизведение видео не работает (хотя страница запрограммирована на авто).

Далее, пытаюсь бороться с поиском "ссылок" в mp4 файлах. Единственное более-менее действенное решение, которое я нашел - это фильтровать все нестандартные символы, т.е. все остальные, кроме диапазона ASCII 0x20-0x7F, в URL Exclusions в виде таких конструкций:
*o*
*o*
*O*
и тд.
Столкнулся с такой проблемой, что один и тот же символ, но в другом регистре не добавляется в фильтр, то есть u и U не могут быть добавлены, будет только первый, что логично. Но в таком случае, если в ссылке встретится символ U, то она будет добавлена в очередь. То есть регистр символов в ссылках проверяется только для стандартных символов, притом как в фильтре проверяется регистр всех символов.
Это легко проверяется добавлением, например *u* в фильтр, а затем проверкой любой ссылкой, содержащей этот символ - тест сообщит, что такая ссылка не будет скачиваться. Но если в тестируемой ссылке мы заменим этот символ на U, то тест сообщит, что такая ссылка будет скачиваться. Но мы не можем этот символ добавить в фильтр уже.

Можно обойти эту проблему, добавив в фильтр просто U без * (тогда у нас будут блокироваться оба символа, один по строке U, другой по строке *u*), но вообще, по моему мнению, это баг.

Спасибо.
Nick 12/10/2015 10:27 pm
Looks like the forum isn't unicode capable, so will use only latin letters then.
I meant symbols like u and U.
And my URL Filter is filled with such symbols like *o*
*o*
*O*
*o*

Hope now the letters will be posted correctly.

Thanks
Nick 12/10/2015 10:29 pm
Все равно не получилось :(
Прилагаю скрин тогда.
http://i.imgur.com/9KgCTxk.png
Nick 12/12/2015 09:14 pm
Еще один непонятный момент обнаружился. На некоторых страницах неверно конвертируются ссылки при скачивании. Например, на странице https://teamtreehouse.com/tracks/web-design следующий блок кода:

<link rel="stylesheet" media="screen" href="https://static.teamtreehouse.com/assets/vendor-8fdae88512c4d45883ecaae03f08c572.css" />
<link rel="stylesheet" media="screen" href="https://static.teamtreehouse.com/assets/treehouse-6d1c627f2847dcef0383ab03df640863.css" />

Преобразуется в такой:

<link rel="stylesheet" media="screen" href="../https@static.teamtreehouse.com/assets/vendor-8fdae88512c4d45883ecaae03f08c572.css" />
<link rel="stylesheet" media="screen" href="../https@static.teamtreehouse.com/assets/treehouse-6d1c627f2847dcef0383ab03df640863.css" />

То есть указывает на 1 уровень вверх, когда как должен указывать на 3 уровня вверх.
В связи с чем страница отображается неверно, т.к. не обрабатываются стили.
На многих страницах такой же код преобразуется нормально, но именно на этой и некоторых других страницах в разделе /tracks/ именно так. Я пробовал скачать проект с нуля и получил точно такую же картину. Смог поправить лишь такими шагами:
1. в карте проекта нахожу папку /tracks/web-design/ в ней нахожу файл default.html и через контекстное меню выбираю Download updated and missing files.
2. происходит перекачивание этой страницы, после чего линки на стили оказываются правильными. Но в этом случае все ссылки с данной страницы становятся "онлайновыми", то есть указывают на сайт-источник.
3. чтобы ссылки стали нормальными, нужно весь проект обновить снова (Download updated and missing files), тогда после повторного смачивания этой страницы, страница становится нормальной. Ссылки на стили верные и на самой страницы ссылки становятся "оффлайновыми"

Но проделывать такое для всех страниц крайне проблематично, тем более невозможно заранее знать на каких именно страницах конвертация ссылок прошла неверно.

Надеюсь, Вам удастся воспроизвести эту проблему, либо найти причину ее возникновения.

И еще, в браузере при просмотре исходного кода, вижу такую ошибку:

[Error] Did not parse stylesheet at 'http://127.0.0.1:800/7014/https@cloud.typography.com/7055252/762022/css/fonts.css' because non CSS MIME types are not allowed in strict mode.

Как я понимаю, встроенный веб-сервер выдает неверный MIME тип для css файла, в связи с чем браузер отказывается его обрабатывать.

Я решил выложить backup моего проекта, как Вы и просили. Только я удалил все объемные вещи из него, оставив только сам веб-сайт и связанные с ним мелочи (без медиа-файлов и прочего тяжелого контента).

https://www.dropbox.com/s/i2ddzoizk1yn616/teamtreehouse.com_home.boe?dl=0

Только я прошу Вас сообщить мне как только Вы скачаете его, чтобы я мог удалить. Т.к. в бекапе будут содержаться данные для доступа на сайт (куки входа, я так думаю), плюс по скаченным страницам можно будет идентифицировать мой аккаунт, чего бы я не хотел. Спасибо.
Oleg Chernavin 12/16/2015 08:59 pm
Файл скачал, сейчас буду разбираться.

Олег
Oleg Chernavin 12/16/2015 09:12 pm
С MP4 давайте дальше разбираться - опишите, как еще можно это воспроизвести? Я попробую положить указанные MP4 в Ваш скачанный файл и посмотреть, будет ли идти обработка.

Стили - я создал простой проект с уровнем 1 и адресом:


https://teamtreehouse.com/tracks/web-design

ОЕ сначала скачивает его как файл, уровень ссылок (количество /../ получается одно). Потом ОЕ видит и скачивает файл https://teamtreehouse.com/tracks/web-design/trailer и файл web-design оказывается папкой. Он перемещается в web-design/default.htm и снова обрабатывается, чтобы изменить уровень ссылок. У меня получилось вот так:

<link rel="stylesheet" media="screen" href="../../../https@static.teamtreehouse.com/assets/vendor-8fdae88512c4d45883ecaae03f08c572.css" />
<link rel="stylesheet" media="screen" href="../../../https@static.teamtreehouse.com/assets/treehouse-ee1bfed50634fca402934e13d6f8d16c.css" />

<link rel="stylesheet" type="text/css" href="../../../https@cloud.typography.com/7055252/762022/css/fonts.css" />

Все работает, ничего не испортилось. Похоже, в каком-то из режимов, этот код дает сбой. Попробуйте у себя создать такой простой проект и посмотреть, что получится.

Олег
Nick 12/18/2015 02:25 am
Вот 5 МР4 файлов, которые у меня генерируют ссылки в очередь. https://www.dropbox.com/s/sf6t2suo6xxxph5/vids.zip?dl=0
Положить в папку https@videos.teamtreehouse.com/videos
Затем, в моем случае достаточно только выбрать "Download missing files" и поставить на паузу. Очередь заполнится ссылками, среди которых появляются кривые из этих файлов

Также, программа парсит zip файлы, если его нет в файле Descr.WD3, вытаскивая имена файлов, содержащихся в архиве и формируя из них ссылки.

По поводу стилей. С простым проектом у меня тоже все нормально получилось. Я думаю, это было идентично тому алгоритму, что я описывал, когда выбирал эту папку в карте проекта и перезакачивал ее, когда ссылки на стили тоже формировались нормально.

Спасибо
Oleg Chernavin 12/18/2015 06:53 pm
Кажется, нашел, где происходила такая обработка. Попробуйте вот эту версию:

http://www.metaproducts.com/download/betas/eesetup.exe

Насчет стилей - буду дальше копаться, чтобы выяснить, в каких условиях это происходит.

Олег.
Nick 12/20/2015 11:14 pm
Мы сейчас проверяем только обработку mp4, так?

Проверил с последней версией - кажется, все ок. Посмотрю еще, но пока из mp4 ничего лишнего не вылазило. Из zip - тоже.

Провел эксперимент - переименовал все файлы Descr.WD3 во всех папках проекта.
Были найдены "ссылки" в ехе-файлах и одна вылезла из jpg файла.
Но тут видимо ничего не поделать. Наверное это было специально задумано парсить бинарные файлы в том числе.
А если нет - я думаю, не сложно сделать фильтр, чтобы не парсились бинарные, а только текстовые файлы, либо сделать ограничение на макс. размер файла.

И еще, из svg файлов извлекаются ссылки типа: http://i.imgur.com/DOykGd7.png
Чего, опять же, не должно быть.

Благодарю.
Николай
Oleg Chernavin 12/21/2015 07:36 pm
OK, подумаю над алгоритмом по бинарным файлам получше. Ссылки из SVG - исправил. Спасибо!

Олег
Nick 12/21/2015 07:57 pm
Спасибо!

Осталось еще разобраться и попытаться сделать так, чтобы видео-плеер с того сайта работал и через встроенный веб-браузер (то есть заработали контролы, запрограммированные на сайте). Сейчас видео воспроизводится только через стандартный плеер браузера и не показываются субтитры.

По поводу обработки нестандартных символов в разных регистрах, заданных в URL Filter - уже исправлено?

Ну и разобраться с скриптами, чтоб не портились и в очередь не добавлялись заведомо неверные ссылки, извлеченные из js. Я думаю, Вы их без труда увидите, запустив мой проект из бэкапа, что я скидывал.

Надеюсь, я еще не достал Вас :) Хочется, чтобы программа обрабатывала сайты безупречно. Думаю, это хорошо всем. Все равно лучше, чем Ваша программа на сегодняшний день ничего нет. Остальные годятся лишь для самых простых сайтов.

Спасибо!
Oleg Chernavin 12/21/2015 08:32 pm
Нет, ни в коем случае наше обсуждение не достает. Наоборот, это только помогает улучшать программу, исправлять ошибки и т.д.

Собственно, вся история версий разработки Offline Explorer-а с 1997 года - это замечания и предложения пользователей, которые я стараюсь наиболее оперативно и полно воплощать.

Насчет видео - давайте снова начнем об этой проблеме. Есть ли страница с видео, на котором видна эта проблема без логина? Мне бы не хотелось вводить данные кредитки на сайте.

Со скриптами - это я улучшаю в каждой версии программы постепенно. Увы, вряд-ли получится абсолютно все такие ссылки отловить, тут алгоритм фактически, который ищет все строки похожие на ссылки. Естественно, всегда будет что-то, что выглядит, но не является ссылкой.

Про фильтры и юникодные символы - я так понял, что они были нужны только для подавления обработки видео файлов. Так как это исправлено, то нет смысла в таких символах. С другой стороны, в реальных адресах используются не юникодные символы, а их HEX-кодировка, типа %A0%B5.

Олег.
Nick 12/21/2015 08:51 pm
По видео - вы можете попробовать абсолютно любую страницу с видео, даже без логина. Там будет дано 30-секундное демо-видео, чего будет вполне достаточно. Например, эта страница https://teamtreehouse.com/library/python-collections/lists-redux/shopping-list-take-three

Еще прошу обратить внимание на ссылки ниже видео: Teacher's Notes, Video Transcript, Downloads. На оригинальной странице клик по каждой из них выводит текст, относящийся к этой ссылке. В скачанной версии - эти ссылки не работают и весь текст, который должен выводиться при клике на них, идет сплошняком друг за другом. Хотелось бы тоже, чтобы работало корректно по возможности.

Про фильтры - там не совсем юникодные символы, а символы верхней части ASCII в кодировке win-1252 (в моем случае), либо той, которая установлена в настройках системы для программ, не использующих Unicode. То есть один байт.
Да, такие символы в нормальных URL будут кодироваться двумя байтами и проблем не возникнет, так что наверное действительно не нужно этот момент заострять, если не будут генерироваться "кривые" ссылки.

Спасибо!
Николай.
Oleg Chernavin 12/22/2015 09:05 pm
Так, похоже, вышло с видео - один из скриптов неверно обрабатывался. Попробуйте:

http://www.metaproducts.com/download/betas/eesetup.exe

Олег