Плагин "Auto Switch"

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

Moderators: Korney San, marcipan

Post Reply
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

Длительность задержки между паузой и стартом закачки никак нельзя настроить? В дельфи не силён, но с готовой рыбиной, думаю, справлюсь... Если самому нет возможности или желания заниматься - то нельзя ли поделиться исходником (исключительно в личных целях). Править код, а тем более распространять исправленное не собираюсь - только найти и исправить значение интервала "под себя" и перекомпилить. Плагин - то, что доктор прописал, но времени для восстановления моего канала не достаточно - не оптимальная скорость получается.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

OneChel wrote:Длительность задержки между паузой и стартом закачки никак нельзя настроить?
Какой версией пользуетесь?
В 0.2.0.4 - можно.
В 0.3.0.2 - нельзя, там другой принцип работы.
OneChel wrote:Плагин - то, что доктор прописал, но времени для восстановления моего канала не достаточно - не оптимальная скорость получается.
А опция версии 0.3.0.2 "Время без проверки" не спасает?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

0.3.0.2. Импонирует использование очереди закачки DM, да и другие изменения тоже считаю правльными. Ну, двойка - так двойка... Опция версии 0.3.0.2 "Время без проверки" не спасает, т.к. никак не влияет на время для восстановления скорости канала, а в общем, даже наоборот - поддерживает закачку на любой скорости, не давая возможности каналу восстановиться.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

Просто возможность делать паузу между выключением и включением закачек сразу налагает определённые ограничения:
1. Внутренняя очередь закачек (плагин должен помнить, что он останавливал и что нужно запускать)
2. Невозможность пользоваться автоматизацией DM (плагин остановил закачку, DM думает - "Опа, ничего нет, гасим интернет/комп", а тут плагин стартует другую закачку => конфликт).

В принципе пункт 2 можно обойти - за счёт постоянного присутствия в списке закачек "ложной" закачки, которую плагин будет включать, если остаётся одна "настоящая".
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

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

Post by Korney San »

OneChel wrote:Ну, тут возникают два оснвных момента.
Во-первых: если алгоритм тройки не позволяет регулировать нужный интервал, т.к. полностью завязан на использование внутренних механизмов DM (если я вас правильно понял) - то, может быть, это возможно через изменение каких-то параматров самого DM?
Он не столько завязан, сколько просто отдаёт всё в руки DM - плагин останавливает закачку и тут же её запускает. А DM сам выбирает следующую из очереди. Порядок, в котором он её выбирает, известен только разработчикам и настроить его нельзя.
OneChel wrote: Во-вторых: уже существует и успешно работает (так, как мне нужно) алгоритм организации очереди, реализованный в другом плагине - расширенном планировщике (едидинственный плагин, поставляемый в составе инсталлятора, что о многом говорит).
Единственный ОФИЦИАЛЬНЫЙ плагин (от разработчиков), потому и поставляется в комплекте.
Однако что-то я не нашёл там упоминания о какой-либо очереди. Запланированные закачки есть, да, а вот очереди нет.
OneChel wrote: Скомбинировать никак не получится, исходниками никто ни за что не поделится, а разбираться в дельфях настолько глубоко, чтобы написать его с нуля у меня нет ни времени и ни какого желания.
Исходниками, допустим, поделюсь я - от 0.2.0.4. Вот только разбираться "глубоко" всё равно придётся - чтобы понять, как эта хрень работает. :D
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

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

Post by Korney San »

OneChel wrote:Собственно всю эту байду я и обозвал "нужным мне алгоритмом работы с очередью". Извиняюсь, если задел кого-то случайно, легкомысленно использовав терминологию так, как я её понимаю.
Извиняться не стоит - это я внёс некоторую путаницу. В DM есть список закачек. Те из них, которые запускает пользователь и которые попадают под контроль плагина, я и назвал "очередью".
Далее по алгоритму.
Вступление. Закачка может находиться в одном из 7 состояний, из которых плагин контролирует 2-3 основных: "пауза" (закачка не скачивается), "скачивается", "очередь" (закачка ожидает начала скачивания).
OneChel wrote:я сортирую нужные мне закачки в нужном мне порядке в списке закачек
1. То что Вы их отсортируете, совсем не означает, что DM отдаст их ID в отсортированном порядке (ЕМНИП, он отдаёт их всегда по возрастанию ID).
Отсюда определить, какая из закачек в списке "первая", из плагина практически невозможно.
OneChel wrote: помечаю как запланированные, и активирую плагин.
2. Это понятно. Только информацию о том, что закачка запланирована, придётся "добывать" напрямую из файла списка закачек.
А есть ещё и приоритет.
OneChel wrote: Он начинает закачку верхней по списку загрузки, затем прерывает закачку, через определённое мною время возобновляет её и так далее в цикле.
3. После прерывания закачки (при отсутствии других в состоянии "скачивается" или "очередь") возникнет событие "Всё скачано", которое вызовет реакцию DM (при включённой автоматизации) и других плагинов, обрабатывающих это событие. Это будет повторяться каждый цикл.
OneChel wrote: Закачав ОДНУ верхнюю загрузку из всех запланированных, плагин или DM (на самом деле мне всё равно, кто из них) переходит к следующей по списку/очереди загрузке, но никак не раньше окончания первой. И так далее до окончания списка/очереди запланированных закачек.
4. Если выставить количество одновременных закачек в 1, так оно и будет безо всяких ухищрений с планированием.

Подводя итог:
Если доработать версию 0.3 (вернее, вернуть удалённую чать из 0.2), она справится с этим превосходно. Основная проблема - пункт 3.
Если же отталкиваться от запланированных закачек - проще писать новый плагин, требования специфические.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

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

Post by Korney San »

OneChel wrote: Насчёт того, что, скорее всего, понадобится новый плагин согласен (я писал об этом, см. выше, и сразу отнёс это решение в область фантастики).
Не склалось, так не склалось.
А я разве что-то говорил про "фантастику" и "не склалось"?
Я обсуждаю техническое задание, примеривая его к существующему плагину, чтобы знать - встраивать запрошенный функционал туда или писать новый. Только и всего. :)
В принципе я уже продумал механизм блокировки "ненужного" события (при помощи "ложной" закачки), так что Ваш вопрос решаем - за Ваш же счёт (в списке закачек при необходимости будет появляться "ложная" закачка с адреса 127.0.0.1, удалять которую потом придётся ВРУЧНУЮ).

Будем делать?

P.S. Авторы Advanced Sheduler = разработчики DM => доставать их будет столько же пользы, как от других просьб к ним на этом форуме.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

Как-то я сразу и не догнал, что у нас уже конструктивный диалог пошёл.
Тогда вопрос - как часто нужно будет удалять лишнюю закачку при условии, что цикл запуска - остановки "правильной" закачки будет составлять меньше минуты? Как может помешать то обстоятельство, что свой рабочий комп я вижу, всё-таки, не чаще пяти раз в неделю и не дольше восьми часов в сутки?
И второе. На моём компе крутится проксик для раздачи инета в сетку, при этом он не только имеет айпи моего компа со стороны сетки, но и откликается на 127.0.0.1. Если "лишнюю" загрузку объявить с этого айпи - у него мозги не съедут?
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

OneChel wrote: Тогда вопрос - как часто нужно будет удалять лишнюю закачку при условии, что цикл запуска - остановки "правильной" закачки будет составлять меньше минуты? Как может помешать то обстоятельство, что свой рабочий комп я вижу, всё-таки, не чаще пяти раз в неделю и не дольше восьми часов в сутки?
1. "Ложная" закачка будет создаваться при условии, что используется пауза между закачками и что "настоящих" закачек осталось одна.
2. Удалять "ложную" закачку можно будет после завершения всех "настоящих". А можно будет и не удалять - пусть себе висит в списке, плагин будет цепляться за неё автоматически.
Свой рабочий комп я вижу не чаще 7 раз в неделю (обычно не чаще 5) и не дольше 16 часов в сутки (обычно не дольше 8,5). :D
Думается, ни то, ни это обстоятельство никак не помешает. Но, разумеется, всё нуждается в проверке. ;)
OneChel wrote:
И второе. На моём компе крутится проксик для раздачи инета в сетку, при этом он не только имеет айпи моего компа со стороны сетки, но и откликается на 127.0.0.1. Если "лишнюю" загрузку объявить с этого айпи - у него мозги не съедут?
127.0.0.1 был предложен в качестве примера - можно задать любую несуществующую ссылку, на которую будет "ломиться" DM.
Главное, чтобы он не завершил эту закачку с ошибкой раньше, чем нужно будет включать "настоящую". Надеюсь, у Вас пауза для восстановления занимает менее 5 минут?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
OneChel
Бывалый
Posts: 14
Joined: 03 Mar 2009, 12:51 Tue

Post by OneChel »

Про 127.0.0.1 был типа тонкий намёк на толстые обстоятельства, что вроде было бы неплохо предоставить возможность вручную выбрать подходящий айпи для "ложных" бомбардировок, не заморачивая голову рабочему софту. Отрадно, что намёк был понят и адекватно воспринят.
Время восстановления канала примерно 40 секунд, и, хотя пров постоянно меняет параметры алгоритма сужения/расширения канала, идеальный интервал остаётся пока где-то в районе этой цифры. Это, кстати, одно из препятствий полноценного использования адвенседшедулера - там дискретность настройки не меньше минуты, а мне нужно меньше.
А "ложная" закачка мне совсем не помешает. Я хотел уж было отписаться на тему что нельзя ли её совсем не трогать (ну, висит - и пусть себе висит - кушать не просит), как Вы меня опередили. Вопрос снялся сам собой, как дурацкий.
User avatar
Korney San
Гуру
Posts: 1116
Joined: 02 Oct 2006, 17:01 Mon
Location: Беларусь, Гомель
Contact:

Post by Korney San »

OneChel wrote:было бы неплохо предоставить возможность вручную выбрать подходящий айпи для "ложных" бомбардировок,
Не айпи, а линк. Хоть к себе на комп, хоть на кудыкину гору, типа http://fake_you.com/fake_you_again.rar - главное, чтобы не оказалось этого файла в реале. :D
Будет в настройках.
OneChel wrote: Время восстановления канала примерно 40 секунд, и, хотя пров постоянно меняет параметры алгоритма сужения/расширения канала, идеальный интервал остаётся пока где-то в районе этой цифры.
Вы подсказали мне одну мозговыносящую мысль...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
ponand
Гуру
Posts: 134
Joined: 15 Jun 2008, 2:55 Sun
Location: Ставропольский край

Post by ponand »

OneChel wrote: Это, кстати, одно из препятствий полноценного использования адвенседшедулера - там дискретность настройки не меньше минуты, а мне нужно меньше.
вобщет от одной секунды :)
XPProSP3 (zver) DM 5.13.2.1317 Опера 12.01.1532
Post Reply