Утилита синхронизации файлов с HTTP в локальную папку

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.01.2016 (Ср) 20:04

Adam Smith писал(а):Qwertiy, я понял, это нормально, писать о curl цитируя то, что было сказано мной о wget. Продолжай :lol:

Ну тогда мне: http://ithappens.me/story/13018 или http://ithappens.me/story/13390 :mrgreen:

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение ALX_2002 » 22.01.2016 (Пт) 1:19

Решил почитать на ночь глядя.... :shock: Жуть то какая.... Т.с. не знает про существование Google Drive / One Drive / DropBox и т.п. ? Или хочется своё ?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.01.2016 (Пт) 11:02

ALX_2002 писал(а):Google Drive / One Drive / DropBox

Каким они тут боком, если он хочет тащить с разных сайтов материалы и сохранять у себя?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение ALX_2002 » 22.01.2016 (Пт) 15:46

Qwertiy, а т.с. уточнял, что эти URL не его сервера ? Прочитав первое сообщение т.с. и тему, у меня сложилось понимание, что всё-таки ответ сервера должен быть стандартизован как-то:

Adam Smith писал(а):Программа просит у юзера URL, показывает ему список файлов.
Юзер ставит галки напротив файлов, которые хочет синхрить.


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

Тогда вообще не понимаю, что берётся за основу, если формат возврата не оговорён заранее. Т.е откуда сервер узнает, что ему нужно отдать клиенту какой-то "список файлов" ? И сегодня сторонний сервер может отвечать одним содержимым, завтра другим... :cyclops: Непонятно....

По этой причине я решил, что всё-таки ответ должен быть стандартизован. А раз так, то скорее всего это должны быть сервера самого т.с.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 22.01.2016 (Пт) 21:08

ALX_2002, возьми Download Master и попробуй закачать им все ссылки.

Идея такая:
1. Есть адрес.
2. Если это не html-страница, просто скачиваем.
3. Если это html-страница, собираем с неё все ссылки.
4. Показываем пользователю список собранных ссылок.
5. Для отмеченных ссылок производим.. рекурсивную обработку (с шага 1).

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

Кстати, я тут подумал - а может и можно DM для данного вопроса присобачить. Разница в пункте 1 - надо самому по-разному вызывать, чтобы скачать и чтобы выбрать ссылки и в пункте 5 - он просто скачает.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение ALX_2002 » 24.01.2016 (Вс) 22:26

Qwertiy, хах ! Как раз про него вспомнил, вечером, когда стал закачивать фильм. И подумал, что сотни раз пользовался им, чтобы выкачивать им файло с разных страниц. Ещё когда на mail.ru присылали фотки пачкой в виде ссылок ) Сегодня читаю пост - и вижу, что про него вспомнили. )

Действительно, наверное можно его настроить или автоматизировать скриптами для синхронизации.

Adam Smith
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 25.04.2008 (Пт) 9:04
Откуда: ЧР. Грозный

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение Adam Smith » 25.01.2016 (Пн) 15:01

Qwertiy писал(а):ALX_2002, возьми Download Master и попробуй закачать им все ссылки.
Идея такая:
1. Есть адрес.
2. Если это не html-страница, просто скачиваем.
3. Если это html-страница, собираем с неё все ссылки.
4. Показываем пользователю список собранных ссылок.
5. Для отмеченных ссылок производим.. рекурсивную обработку (с шага 1).
Я понял так. Соответственно, сервера любые, отдавать могут что угодно.
Идея частично та же, что в моей теме.
Кстати, я тут подумал - а может и можно DM для данного вопроса присобачить. Разница в пункте 1 - надо самому по-разному вызывать, чтобы скачать и чтобы выбрать ссылки и в пункте 5 - он просто скачает.
Идея немного другая.
1. даётся адрес обязательно HTML ресурса, утилитка показывая прогресс постепенно отображает список: галок - имен файлов - типов данных - объемов
2. даётся период и папка куда нужно синхрить, если выбраны конкретные галки, то их, если ничего не выбрано, то весь список и в т.ч. появляющиеся новые
Рекурсивная обработка не нужна потому, что часто на целевых серверах первая ссылка ../ на предыдущую "папку", да и без этого, не никакой гарантии, что не возникнет бесконечный цикл.
Даже если отфильтровывать повторение ссылок и верить, что это поможет, то на какое время может растянутся многоуровневая синхронизация, каким будет минимальный период синхронизации?
Сервера не только мои, для проверки вообще куча чужих, но принцип работы целевых серверов один и тот же, на первой странице в четвертом посте я цитировал типичный index с такого web-сервера.
Например вот http://1488.unknownsecret.info/mp3/%3F%3F%3F%3F%3F%3F%3F/
Код: Выделить всё
Index of /mp3/A Credible Eye Witness/Episodes 1-4

Icon Name                                             Last modified      Size   Description
[DIR]Parent Directory
[SND] A Credible Eye Witness - Episode 1.mp3          20-Apr-2014 16:20  1.9M
[SND] A Credible Eye Witness - Episode 2.mp3          20-Apr-2014 16:20  2.9M
[SND] A Credible Eye Witness - Episode 3.mp3          20-Apr-2014 16:20  1.5M
[SND] A Credible Eye Witness - Episode 4.mp3          20-Apr-2014 16:20  2.1M
Apache/2 Server at 1488.unknownsecret.info Port 80

полученные ссылки опционально фильтруются, например на дубли, принадлежность другому серверу или text/html и т.д. и т.п.
2. если какой-то из ресурсов обновился, то его нужно скачать в файл, опционально с отправкой алерта на мыло и сохранением предыдущей версии с тем же именем (в подпапке)

Работать это всё должно без установки и регистрации чего либо, минимум на XP, максимум сейчас win10 и ещё смотря сколько MS поддержит сверху вниз.
Кроме этого задумано несколько удобняшек типа сохранение вбиваемых данных на лету и если коннект успешен, то предложение добавить линк в авторан.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение ALX_2002 » 26.01.2016 (Вт) 22:47

Adam Smith, хм, про такой вариант вывода ссылок подумал в самом начале, но отмёл как не универсальный. Ведь разметка страницы может быть произвольной. Каждый веб сервер сам решает как строить HTML код под такой вид. Поэтому склоняюсь к варианту с DM. Ему не важна разметка, ему важны только ссылки.

Adam Smith
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 25.04.2008 (Пт) 9:04
Откуда: ЧР. Грозный

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение Adam Smith » 28.01.2016 (Чт) 10:21

Или я что-то непонимаю или ты. Какая бы не была разметка страницы ссылки они и в Африке ссылки. IE сам выдаёт все ссылки со страницы в один массив элементов индексируемый с 0.
Код: Выделить всё
objIE.Document.Links(lIndex).href
Время изменения и размеры файлов я получу не со страницы, понятное дело на это нельзя полагаться, есть вероятность, что даже имена файлов нужно будет иногда придумывать самому.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 28.01.2016 (Чт) 12:17

Adam Smith писал(а):Какая бы не была разметка страницы ссылки они и в Африке ссылки.

Да.

Adam Smith писал(а):1. даётся адрес обязательно HTML ресурса, утилитка показывая прогресс постепенно отображает список: галок - имен файлов - типов данных - объемов

Ну Download Master же.

Adam Smith
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 25.04.2008 (Пт) 9:04
Откуда: ЧР. Грозный

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение Adam Smith » 29.01.2016 (Пт) 11:36

Нет. Скачал, установил, дал URL, так он мне тупо скачал html. Не вижу, чтобы он получил список ресурсов, показал мне их тип контента, размер, дату изменения.
Это инсталируемая программа с автоматизацией и решает она немного другие задачи, как сказано на офф.сайте главная фишка докачка после обрыва соединения.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 29.01.2016 (Пт) 14:45

Adam Smith писал(а):Не вижу, чтобы он получил список ресурсов, показал мне их тип контента, размер, дату изменения.

Файл -> Импорт -> Url из файла...
Прям в окно открытия файла вставь ссылку на страницу (правда, тут саму html-страницу скачивает windows и отдаёт DM'у временный файл с её содержимым).
Не пойму, как это из командной строки сделать, но как-то должно быть можно.

Adam Smith
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 25.04.2008 (Пт) 9:04
Откуда: ЧР. Грозный

Re: Утилита синхронизации файлов с HTTP в локальную папку

Сообщение Adam Smith » 14.02.2016 (Вс) 17:58

Ну как-то можно конечно, например написать свой DM ) За наводку спасибо. Я на другую тему пока отвлекся, по работе нужен экспорт в эксель.

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList