antonk5 / nekopaw

Automatically exported from code.google.com/p/nekopaw
0 stars 0 forks source link

Пакетная (пакетом тегов) загрузка #93

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Хочу предложить добавить возможность 
загружать целый пакет тегов в 
соответствующие разные папки. Вот 
например, у меня в блокноте выписано куча 
художников, которые я хочу скачать:

"shinjitsu
akaki_aoki
rebecca_(naononakukoroni)
rebecca_(keinelove)
kuena
fuuen_(akagaminanoka)
matatabi_maru
noa_(nagareboshi)
berry_jou
kikuichimonji
ominaeshi_(takenoko)
lilywhite_lilyblack
muuba"

предположим так же, что это маленький 
отрывок, а их там раз в 5 больше. Сейчас если 
я хочу скачать их в "%буквадиска%:\буры\$tag$", 
мне нужно будет добавлять каждого по 
отдельности, проходить для каждого этап 
выбора бур, с которых я хочу качать. А я хочу 
скачать их с однотипными настройками, в 
общую папку "буры", и в индивидуальные папки 
для отдельного художника. Предлагаю 
добавить в программу соответствующую 
возможность, что б было, например, одно 
большое поле, куда бы я одним ctrl+c/ctrl+v мог 
скопировать весь текст из блокнота; с 
каждым тегом (набором тегов, если идёт 
комбинированный запрос по более чем одному 
тегу) на новой строке, и что б качалось в 
общую папку, но отдельные подпапки по тегам 
(была возможность ручного задания пути 
скачивания для каждой отдельной строки), и 
получение списков + закачка шла бы по 
очереди для каждой следующей строки, т.е. 
сперва получался список на первый тег и 
пока он уже скачивался, шло получение 
второго списка, и т.д., а не всех кучей сразу 
(ну тут вроде понятное дело, иначе 
перегрузит буры запросами)

Original issue reported on code.google.com by ilia....@gmail.com on 7 Mar 2013 at 9:41

GoogleCodeExporter commented 9 years ago
Полностью согласен с предложением, у меня 
такая же проблема со скачиванием больших 
списков тегов с гелбуры и пиксива.

Original comment by kuroi7...@gmail.com on 10 Mar 2013 at 9:22

GoogleCodeExporter commented 9 years ago
На данный момент уже сделан механизм, 
благодаря которому можно добавлять 
одновременно несколько копий одного и того 
же ресурса.

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

Original comment by catgirlfighter on 20 Mar 2013 at 2:30

GoogleCodeExporter commented 9 years ago
>На данный момент уже сделан
Но в релиз он еще не попал :)

Original comment by catgirlfighter on 20 Mar 2013 at 2:30

GoogleCodeExporter commented 9 years ago
да, "последовательность" - ключевое же 
слово) Сперва получаем список по одному 
тегу, потом по другому и так далее, что б не 
одновременно, разумеется)

Original comment by ilia....@gmail.com on 20 Mar 2013 at 10:17

GoogleCodeExporter commented 9 years ago
Общий счетчик потоков и 
"последовательность" реализованы. Осталось 
приделать возможность вставлять набор 
тегов. 

Original comment by catgirlfighter on 5 Apr 2013 at 11:59

GoogleCodeExporter commented 9 years ago
Добавлено. Рядом с ключевыми словами 
кнопка "..." -> Создать список тэгов.

Правда, тестилось мало, могут быть буги.

Original comment by catgirlfighter on 26 Apr 2013 at 4:06

GoogleCodeExporter commented 9 years ago
Большое спасибо за улучшение, буду тестить.

Предложение для улучшения:
Можно ли сделать такой же список по номерам 
авторов на пиксиве, у меня там лист в 300 
художников, хочется ставить его раз в 
несколько месяцев на ночь и качать по 
одному по-очереди.

Original comment by kuroi7...@gmail.com on 27 Apr 2013 at 5:37

GoogleCodeExporter commented 9 years ago
Посмотрел как оно качает списком. Есть 
предложение:

Не закачивать сразу все листы, а качать 
каждый тег отдельно.
То есть берём из списка первый тег и 
работаем только с ним (создаём список, 
качаем).
Когда первый тег выполнится берём 
следующий и так до конца списка тегов.

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

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

PS в настройках потоков у меня стоят все 
единички кроме числа картинок за раз (их 5).

Original comment by kuroi7...@gmail.com on 27 Apr 2013 at 5:55

GoogleCodeExporter commented 9 years ago
На счет "создаем список - качаем" - не выйдет. 
Переключение режимов 
"список-пикчи-список-пикчи" сложно 
контролировать, особенно если в списке 
есть разнотипные ресурсы. Много условий, 
скорее нестабильнее станет, чем наоборот. 
Могу разве что добавить опцию, которая 
вырубит распределение нагрузки по 
ресурсам, это заставит получать списки по 
порядку, т.е. сначала получаться все пикчи 
первого запроса в очереди, затем второго и 
т.д. И список пикч так же получится строго 
по порядку, сначала от первого запроса, 
затем от второго и т.д.

Какие ошибки, возникающие именно в 
процессе закачки, и прерывающую работу, 
тебе встречались?

Пиксив по порядку... Быстрый вариант - 
отказаться от поиска по тегам на странице 
автора, или же долгий вариант - 
прикручивать списки для текстовых "частных 
параметров". Надо будет подумать, что лучше. 
Хотя, лучший вариант будет добавить 3й 
вариант поиска, где имя автора надо 
указывать в тэгах.

Original comment by catgirlfighter on 27 Apr 2013 at 8:21

GoogleCodeExporter commented 9 years ago
С опцией отключения распределения 
нагрузки согласен, пусть хоть список и 
будет большим но последовательным.

По авторам для пиксива.
2 и 3 варианты понятны, не понятен 1 вариант, 
что значит отказаться от поиска по тегам на 
странице автора? Это что, когда галочка use 
user ID установлена (или при создании списка 
авторов), то поле тегов станет неактивным?

PS У меня раньше вылетало когда создаёшь 
несколько задач параллельно, если в 
следующий раз вылетит - сохраню сообщение 
об ошибке и сообщу.

PS2 странно, перестало качаться с пиксива, 
даже список не составляет, кажется у них 
что-то поменялось, или только кажется?

Original comment by kuroi7...@gmail.com on 28 Apr 2013 at 7:52

GoogleCodeExporter commented 9 years ago
Нет, согласно первому пункту поле userid 
убрать и использовать строку тэгов для 
ввода id-а. Но я думаю, что лучше пусть будет 
3й вариант.

ps2: что-то поменялось у них на странице. 
Добавился еще 1 js-скрипт, который по 
какой-то причине не корректно 
обрабатывается xml-парсером. Сейчас буду 
смотреть.

Original comment by catgirlfighter on 29 Apr 2013 at 8:38

GoogleCodeExporter commented 9 years ago
>На счет "создаем список - качаем" - не выйдет.
Если нельзя сделать последовательную 
закачку, то есть предложение хотя бы в 
списке загрузок сделать визуальное 
оформление, где бы было видно какие 
картинки относятся к какому тегу, наподобие
Тег1:
ссылка1
ссылка2
Тег2:
ссылка1
ссылка2
и т.п. Ну, и можно ещё сделать что б на 
странице режима закачки самих пикч 
отображался где нибудь 
вверху/слева/справа/внизу именно сам 
список тегов, который мы вводили перед 
этим, с единым для каждого тега 
прогрессбаром загрузки, который бы 
показывал на сколько процентов загружен 
именно этот тег целиком из всего 
поставленного списка, что б это выглядело 
как в разных download-менеджерах или как в том 
же мюторренте

Original comment by ilia....@gmail.com on 29 Apr 2013 at 12:38

GoogleCodeExporter commented 9 years ago
Сколько скачано по текущему "тэгу" можно 
посмотреть в common->general. Разве что нужно 
добавить туда инфу, по какому тэгу идет 
поиск.

Original comment by catgirlfighter on 29 Apr 2013 at 12:53

GoogleCodeExporter commented 9 years ago
Добавил опцию, выключающую распределение 
потоков по ресурсам. Если распределение 
потоков выключено, то задания потокам 
будут выдаваться по порядку в списке. Тем 
не менее, это не значит, что обработаны они 
тоже будут по порядку. Если используется 
много потоков, то некоторые потоки могут 
отрабатывать раньше предшествующих, и 
тогда некоторые соседствующие результаты 
могут меняться местами.

Добавил рядом с именем ресурса искомый тег 
(в скобках) на вкладке "Общее"-"Основное".

Пиксив, вестимо, поправлен. Ошибка 
заключалась в том, что парсер парсил 
страницу как xml, а не html-файл, из-за чего 
пытался парсить содержимое js-скрипта.

Original comment by catgirlfighter on 29 Apr 2013 at 2:59

GoogleCodeExporter commented 9 years ago
Ах да, и для пиксива добавлены опции "works 
(userid from tags)" и "favorites (userid from tags)", 
соответственно позволяющие получать 
работы и избранное по id автора, введенного 
в поле для тэгов.

Original comment by catgirlfighter on 29 Apr 2013 at 3:01

GoogleCodeExporter commented 9 years ago
>common->general 
Не очень понял что это значит и где это. Я 
предлагаю улучшить визуальное оформление, 
сделать его более наглядным и 
"юзерфрендли". Кстати, а что за кнопка "теги" 
- я думал что оно может быть там, но там 
совершенно пусто. Картинкой приложил, как я 
это вижу, примерно. Что б по стрелочке можно 
было сворачивать отдельный "тег", что б 
можно было "свернуть все", "раскрыть все" и 
т.д

Original comment by ilia....@gmail.com on 29 Apr 2013 at 3:10

Attachments:

GoogleCodeExporter commented 9 years ago
"Тэги" - не доделанный раздел. В нем можно 
посмотреть список накопленных по всем 
изображениям тэгов. Естественно, тэги 
можно собирать только с тех ресурсов, где 
их можно взять. Список тэгов появляется 
когда список завершен. Т.к. раздел не 
доделанный, вестимо, и видок у него не 
доделанный.

Отдельные части списка останавливать 
нельзя (т.е. нельзя приостановить или 
остановить закачку "отдельных тэгов"). В 
список для реализации добавить можно, но 
список и так уже длинный, реализовано будет 
ой как не скоро.

Касательно прогресса по "тегам". Прогресс 
по ресурсам есть. Возможно стоит немного 
улучшить визуализацию, но работу он свою 
делает. Относительно "прогресса по тегам" - 
это вряд ли. "Список тегов" - это кастыль, 
позволяющий ленивому пользователи не 
дублировать вручную один и тот же ресурс с 
теми же настройками, но с разными тегами, 
несколько раз. Т.е. для программы разницы по 
тегам нет, тег - это всего лишь одна из опций 
настройки (программа предназначена для 
упрощения массовой загрузки с конкретных 
ресурсов, а не поиска картинок по указанным 
тегам). Могу разве что добавить в планы на 
реализацию возможность отображать 
прогресс загрузки по отдельным параметрам 
картинки. Т.е. можно будет смотреть 
прогресс не только по тегу, но и по 
автору/альбому/оценке/размеру/что в голову 
взбредет лишь бы в полях у пикчи было.

Original comment by catgirlfighter on 29 Apr 2013 at 3:35

Attachments:

GoogleCodeExporter commented 9 years ago
Т.е. нельзя в принципе, даже теоретически, 
реализовать что бы отображался счётчик 
скачиваемых изображений не сто раз по 
отдельным ресурсам каждый тег, а что б 
отображался некий общий кумулятивный 
счётчик одного тега для всех ресурсов? =( 
Как то переработать логику.. Печаль. В 
текущем виде оно даёт мало полезной 
информации - слишком много строк, тег вроде 
один, а его много и не понятно, сколько в 
итоге и чего скачано.. Ну или хотя бы, 
например, собирать общее число картинок по 
разным ресурсам с одним тегом, и 
высчитывать хотя бы в процентном 
соотношении, сколько скачано всего из 
этого объёма, без указания общего числа 
скачиваемых картинок для этого тега, но при 
разворачивании списка что б показывалось 
сколько качается по каждому ресурсу - т.е ту 
же инфу что сейчас показывается слева 
немного преобразить внешне, визуально 
сгруппировать по тегам, и просто 
подсчитывать процент готового.

Зато хочу заметить, что пока никаких ошибок 
в работе новой функции выявлено не было, 
всё стабильно. Большое спасибо!

Original comment by ilia....@gmail.com on 29 Apr 2013 at 4:41

Attachments:

GoogleCodeExporter commented 9 years ago
Я ж описал, как это "теоретически" можно 
сделать. Тэг - лишь одна из опций поиска, 
просто имеющаяся у всех ресурсов. Сделать 
группировку по нему - это то же самое, что 
сделать группировку по любому другому 
полю. Поэтому лучше вместо того, чтобы 
делать что-то узконаправленное, сделать 
что-то универсальное. В общем, это нужно 
обдумавать и реализовавать какой-то 
обобщенный вариант.

Original comment by catgirlfighter on 29 Apr 2013 at 5:14

GoogleCodeExporter commented 9 years ago
Протестировал закачку списком авторов с 
пиксива.

Создал список около 10 номеров авторов, 
количество всех потоков установил равным 
единице, распределение нагрузки включено.
При закачке каждые 50-100 картинок (примерно) 
останавливается без каких-либо сообщений и 
просто не качает, ставлю на паузу и 
продолжить, и так до следующего раза. В  
итоге 2к картинок успешно докачалось при 
периодических остановках и нажатиях 
пауза-продолжить.
Проверил в следующем запуске с выключением 
распределения нагрузки, качает примерно 
по-очереди, но так же периодически 
останавливается.
Потом закачал 15 других авторов по-одиночке 
без каких-либо ошибок и остановок.

PS Если установить число потоков картинок 
больше 1 (пробовал 2 и 5), а остальные потоки 
оставить равными единице, то при одиночных 
и закачках списком уходит в бесконечный 
цикл, про который я писал в соседней 104 теме. 
Я пока не проверил связано ли это с 
конкретными авторами на пиксиве или нет. Но 
как минимум это не страшно если качать по 
одной картинке списком авторов, только бы 
исправить проблему с остановками.

Original comment by kuroi7...@gmail.com on 1 May 2013 at 10:31

GoogleCodeExporter commented 9 years ago
за последнее время много качал с гелбуры 
списками, всё работает идеально.
А вот с пиксива по списку авторов всё так же 
как описано в посте выше.
Если в ближайший год это исправится буду 
очень рад.

Original comment by kuroi7...@gmail.com on 20 May 2013 at 1:36

GoogleCodeExporter commented 9 years ago
За ближайший год, хаха.

Хотелось бы сказать, что "да ну, так много 
времени не потребуется", но на самом деле 
хрен его знает, остается надеяться на 
лучшее :)

Original comment by catgirlfighter on 20 May 2013 at 1:40

GoogleCodeExporter commented 9 years ago
>Если в ближайший год это исправится буду 
очень рад.
Вроде бы исправлено.

Original comment by catgirlfighter on 26 Jun 2013 at 2:20

GoogleCodeExporter commented 9 years ago
Теперь всё работает как надо, без ошибок, 
вылетов и циклов (то есть проблемы 93, 104 и 113 
не встречались).
Проверял закачкой двух групп с пиксива по 30 
авторов, по 5к и 7к картинок.
Качалось по 5 картинок одновременно.

Выражаю огромную благодарность за 
проделанную работу.

Original comment by kuroi7...@gmail.com on 27 Jun 2013 at 6:57

GoogleCodeExporter commented 9 years ago

Original comment by catgirlfighter on 27 Jun 2013 at 10:27