Плагин "Auto Switch"

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

Moderators: Korney San, marcipan

marcipan
Гуру
Posts: 1400
Joined: 11 Jun 2005, 3:55 Sat
Location: Санкт-Петербург

Re: Плагин "Auto Switch"

Post by marcipan »

Korney San wrote:Создан для людей с плохой нестабильной скоростью закачки.
Основное назначение - переключаться на другую закачку, когда скорость текущей падает ниже заданной.
Хмм - 5КБ\с, да еще - " соединения всех секций " (это как минимум 3 :) ) на скорости канала 7КБ\с.
canis
Бывалый
Posts: 11
Joined: 30 Aug 2007, 13:53 Thu

Post by canis »

На пальцах: стабильная скорость закачки при пяти секциях на закачку - 7,5 кБт\сек. Ставлю, чтобы при падении ниже 5 кБт\сек запускалась другая закачка (с теми же настройками). Но при старте закачки первые 10-15 секунд скорость скачет от 3 до 7, потом стабилизируется. Вот и нужна задержка из Х секунд в плагине.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

canis wrote:Новая версия это хорошо. Нельзя ли в ней предусмотреть следующую опцию: "Не следить за закачкой первые Х секунд".
А опция "Время на запуск закачки" зачем, по-твоему? ;)
Здесь читал?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
canis
Бывалый
Posts: 11
Joined: 30 Aug 2007, 13:53 Thu

Post by canis »

В натуре! :)
Классный плагин!
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

Создана новая, не побоюсь сказать, революционная версия плагина Auto Switch - 0.3.0.0.

Достоинства:
- количество одновременных закачек вы устанавливаете В DM, а плагин работает независимо от него;
- количество одновременно запущенных закачек вы выбираете в DM - и только очередь DM определяет, что же вы скачаете;
- выброшено всё лишнее, что позволило значительно уменьшить размер без потери функциональности;
- некоторые полезные функции вынесены в отдельный плагин Exit After All.

Ссылка на новую версию - в начале темы.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

В плагине обнаружились некоторые ляпы, а также баги, висящие ещё со времён 0.2.0.0, потому - оперативный фикс и новая версия: 0.3.0.1.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

Имеется много желающих видеть в этом плагине "то", а именно http://downloadmaster.net/forum/viewtopic.php?t=8810 и я среди них. Осуществите пожалуйста.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

x2088 wrote:Имеется много желающих видеть в этом плагине "то", а именно http://downloadmaster.net/forum/viewtopic.php?t=8810 и я среди них. Осуществите пожалуйста.
Залез в указанный топик и высказал своё мнение. Плагин должен работать "и так". Пробовали?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

В теме Улучшение Активной Наглядной Корзины я писал:
В то время, когда DM пытается чего-то скачать, но по каким-то причинам ему это не удаётся (нет подключения, очень "хороший" канал), т.е невозможно закачать ни байта, то корзину не плохобы вообще скрывать, так же как при отсутствии закачки (соответствующая возможность есть)...
Возможно ли это осуществить? Посылая соответствующую команду из плагина в WinAPI? Тогда из далека, по наличию корзины на экране монитора, будет видно, идёт закачка или нет.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

x2088 wrote:
В то время, когда DM пытается чего-то скачать, но по каким-то причинам ему это не удаётся (нет подключения, очень "хороший" канал), т.е невозможно закачать ни байта, то корзину не плохобы вообще скрывать, так же как при отсутствии закачки (соответствующая возможность есть)...
Возможно ли это осуществить? Посылая соответствующую команду из плагина в WinAPI? Тогда из далека, по наличию корзины на экране монитора, будет видно, идёт закачка или нет.
Теоретически да (по крайней мере, я пробовал писать в окне Корзины и это удавалось, с некоторыми ограничениями). Но стоит ли оно того?
Ведь у Корзины и так есть способ оповещения - полосы процесса под ней. Если идёт закачка, полоса цветная, если включена, но не идёт - серая, если закачек нет - полос нет. :)
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

В том-то и дело - закачка идёт, но скорость - 0 бит/с (!!!). Полосы закачки есть, но они ведь мелкие и их из далека не видно, к томуже когда ничего закачать не удаётся, по данной закачке или всем сразу, то полосы вдобавок становятся бледными, что ещё сильнее затрудняет определение начличия закачки визуально, при свёрнутом окне DM`а. Когда бегаешь из одной комнаты в др. как ошпаренный, к томуже надо ещё дождаться завершения закачки, то подходить к компу каждый раз в плотную и разглядывать какие-то полосы 3 пикселя высотой ну ни как не катит, а так можно из дома напротив в бинокль наблюдать. :)

Думаю, можно для этого воспользоваться исходными кодами InqSoft Neo Sign 0f Misery и InqSoft Window Scanner, что ускорит и упростит работу. Кажется автор разрешает это делать легально.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

x2088 wrote:Думаю, можно для этого воспользоваться исходными кодами InqSoft Neo Sign 0f Misery и InqSoft Window Scanner, что ускорит и упростит работу. Кажется автор разрешает это делать легально.
Это скорее задачка в стиле
"Лежу на диване". Вывод на экран информации о количестве оставшихся закачек, времени, процентах и т.д. крупным шрифтом. Статус: Ищется разработчик.
Я попробую подумать в этом направлении. :)
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

Korney San wrote:Это скорее задачка в стиле
"Лежу на диване". Вывод на экран информации о количестве оставшихся закачек, времени, процентах и т.д. крупным шрифтом. Статус: Ищется разработчик.
Действительно, но кривой код хотелось бы что бы разрабы исправили. Закачка со скоростью 0 бит/с - это отсутствие закачки и полосы для такой закачки трэба скывать, а когда полос не остаётся, то при вкл. опции и всю корзину целиком.
x2088
Гуру
Posts: 556
Joined: 26 Jul 2007, 19:28 Thu
Contact:

Post by x2088 »

Мысля по усовершенствованию:
после того, как всё поставлено на паузу (ну или просто не качается, т.е ошибка закачки) - посылать команду "стартовать всё", ведь плагин вроде называется "автопереключателем", а не "автопереключателем с остановкой закачек".

Естественно плагин не должен отсылать команду DM`у "стартовать всё", если это пользователь поставил всё на паузу, а не этот плагин.

[Начало описания алгоритма]:
Вариант <<Полный "глушняк", но мы не сдаёмся, поскольку каждый раз хоть байт, но закачивается (А что такое "моск"?). Но может и нэт не сильно глючит или почти не глючит. Короче, самый "тупой" вариант.>>
До того как отсылать DM`у эту команду, плагину надо запоминать сколько каких закачек (статусы закачек) и процент выполнения (столько-то байт из стольки-то - данные калькулятора), после того, как всё опять докатится до статуса "нет активных закачек" - сравнивать то, что есть сейчас с тем, что было прошлый раз и если есть изменения, то - опять отсылать команду "стартовать всё", а если изменений нет, то - ничего не отсылать и затирать все сравниваемые значения. Если изменения произойдут, то это значит что что-то закачивалось (или пыталось закачиваться) или это проделки пользователя, поэтому в этом случае надо отсылать DM`у команду "стартовать всё" в любом случае.

Думаю для этого дела надо прикрутить 16 переменных (массив данных на такое количество переменных, думаю надо полюбому). 6 переменных - для запоминания количества закачек по статусам "до того, как" (первая остановка закачки), 2 переменных - для запоминания процента закачки "до того, как" (первая остановка закачки), 6 переменных - для запоминания количества закачек по статусам "после того, как" (вторая остановка закачки), 2 переменных - для запоминания процента закачки "после того, как" (вторая остановка закачки).

Т.е тупо качать до первого самого полного "глушняка".

Вариант <<Полный "глушняк", но у нас есть моск - ждать вечно не будем>>
<Помним смысл с начала описания алгоритма> Сюда же можно впихнуть счётчик попыток закачать чего-либо до полной остановки всех закачек. (Есть активные закачки? ДА: значение счётчика не меняется. НЕТ: изменение значения счётчика на 1.) При этом данные из второго набора переменных ("после того, как") должны копироваться в первый набор ("до того, как"), а после этого - затираться, значение "null" для них будет надёжнее чем "0" - поскольку отсутствие закачек в какой-то категории будет обозначаться НУЛЁМ, а "НОЛЬ ЗАКАЧЕК В КАТЕГОРИИ" = "НОЛЬ ПОСЛЕ ЗАТИРКИ" и следовательно может возникнуть глюк, а так "НОЛЬ" <> "NULL". (После копирования и затирки должно происходить измение счётчика количества попыток закачки на 1 и отсылка команды DM`у - "стартовать всё".) После достижения максимального числа попыток - затирать значения всех 16-и переменных. (Проверка необходимости отсылки DM`у команды "стартовать всё" может по значению этого счётчика и значениям первых 8-и переменных - ни одно из них не может быть равно "null".)

Т.е тупо качать до N-го обычного "глушняка". Затирка и обнуление счётчика при полном "глушняке" не происходит. Обнуление и затирка только при достижении счётчиком заданного предела.

Вариант <<Полный "глушняк", нэт глючит, но мы не сдаёмся моска то - нет, но когдато был>>
<Помним смысл с начала описания алгоритма> Значение счётчика должно изменяться на 1 только если набор данных №1 (первые 8 переменных) ПОЛНОСТЬЮ совпадает с набором данных №2 (вторые 8 переменных), если он хотябы частично не совпадает, то - обнуление счётчика и содержимого всех 16 переменных.

Т.е тупо качать до N-го подряд самого полного "глушняка". Затирка и обнуление счётчика при полном "глушняке" не происходит. Обнуление и затирка только при достижении счётчиком заданного предела.
:[Конец описания алгоритма]

Да, есть додумка:
После затирки создавать флаг (менять значение на противоположное) "Всё - кандец, закачать не получается". По этому флагу плагин "Exit After All" не будет задавать вопрос "В списке есть не докачанные файлы. Вы действительно хотите выйти?", если таковой будет.

Для тех, кому это не надо - делать опцию отключаемой.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

x2088 wrote:Мысля по усовершенствованию:
после того, как всё поставлено на паузу (ну или просто не качается, т.е ошибка закачки) - посылать команду "стартовать всё", ведь плагин вроде называется "автопереключателем", а не "автопереключателем с остановкой закачек".
Плагин называется "автопереключателем" потому, что мониторит скорость закачки и переключается при падении скорости. А остановка закачек (опциональная, заметь) сделана для того, чтобы он не долбил как дятел в, допустим, закрытое соединение.
x2088 wrote: Естественно плагин не должен отсылать команду DM`у "стартовать всё", если это пользователь поставил всё на паузу, а не этот плагин.
Стартовать или нет всё - в данной ситуации решение принимает пользователь.
Есть плагин onNet - он включает/выключает закачки по появлению/пропаданию соединения. Не подходит? ;)
x2088 wrote: [Начало описания алгоритма]:
Вариант <<Полный "глушняк", но мы не сдаёмся, поскольку каждый раз хоть байт, но закачивается
До того как отсылать DM`у эту команду, плагину надо запоминать сколько каких закачек (статусы закачек) и процент выполнения (столько-то байт из стольки-то - данные калькулятора), после того, как всё опять докатится до статуса "нет активных закачек" - сравнивать то, что есть сейчас с тем, что было прошлый раз и если есть изменения, то - опять отсылать команду "стартовать всё", а если изменений нет, то - ничего не отсылать и затирать все сравниваемые значения. Если изменения произойдут, то это значит что что-то закачивалось (или пыталось закачиваться) или это проделки пользователя, поэтому в этом случае надо отсылать DM`у команду "стартовать всё" в любом случае.
Снимаешь галку "Пауза при нулевой скорости" (она, кстати, проверяется 5 раз) и - "дятел".
x2088 wrote: Вариант <<Полный "глушняк", но у нас есть моск - ждать вечно не будем>>
<Помним смысл с начала описания алгоритма> Сюда же можно впихнуть счётчик попыток закачать чего-либо до полной остановки всех закачек.
...
Т.е тупо качать до N-го обычного "глушняка". Затирка и обнуление счётчика при полном "глушняке" не происходит. Обнуление и затирка только при достижении счётчиком заданного предела.
Специально для тебя могу вынести вышеупомянутую цифру (5) в настройки. Получится
...если у закачки N раз подряд нулевая скорость (читай - скачалось 0 байт, бо AS меряет объём), то - на паузу её (если галка стоит).
x2088 wrote: Вариант <<Полный "глушняк", нэт глючит, но мы не сдаёмся моска то - нет, но когдато был>>
...
Т.е тупо качать до N-го подряд самого полного "глушняка". Затирка и обнуление счётчика при полном "глушняке" не происходит. Обнуление и затирка только при достижении счётчиком заданного предела.
:[Конец описания алгоритма]
Намана будет и с пердыдущим вариантом.
x2088 wrote: Да, есть додумка:
После затирки создавать флаг (менять значение на противоположное) "Всё - кандец, закачать не получается". По этому флагу плагин "Exit After All" не будет задавать вопрос "В списке есть не докачанные файлы. Вы действительно хотите выйти?", если таковой будет.
Ещё раз повторюсь - EAA будет молчать, пока есть хотя бы одна закачка с состояниями "Закачка", "Переход в паузу", "Переход в ошибку", "Очередь" (именно поэтому я отключил встроенную в AS и EAA защиту). Нафига ещё какие-то флаги?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Post Reply