Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 203, 204, 205, 206, 207  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1614

Post (Separately) Posted: Tue Sep 16, 2025 22:59    Post subject: Reply with quote

yozhik wrote:
Такое ощущение, что мой конфиг стал быстрее обрабатываться.

Было бы здорово, но вряд ли Smile Не думаю, что произведённые изменения могут дать хоть сколько-нибудь заметное ускорение, пока это в основном изменение структуры кода.
Back to top
View user's profile Send private message
A55555



Joined: 06 Feb 2011
Posts: 49

Post (Separately) Posted: Tue Sep 16, 2025 23:50    Post subject: Reply with quote

Orion9 wrote:
A55555 wrote:
И если можно будет и это реально

С тем функционалом, который сечас есть в Autorun, это реально. Loopback, конечно, в подробностях знает формат торрент-файлов, но если исходить из самого простого, то можно просто проверять размер содержимого (каталога или файла) торрент-файла и сверять его с тем, что есть на диске. Результат будет с большой долей вероятности точным, т.к. количество байт у крупных объемов данных вряд ли может повториться. Недостаток такого подхода лишь один: не полностью скаченные раздачи (несколько серий сезона, несколько песен альбома и т.д) таким способом найтись не смогут, т.к. реальный объем данных не совпадает с заявленным. Возможен и обратный случай, когда в каталог полностью скаченной раздачи случайно попадают лищние файлы. Такие каталоги тоже не будут находиться, но в остальных случаях проблем не должно быть. Одиночные файлы будут находиться даже переименованными, ровно как и папки.
 Hidden text

 Hidden text

В wincmd.ini сохраняется ключ:
Code:
[Autorun]
TorrentDrives=e:\;f:\;g:\;i:\;j:\

Здесь можно указать на каких дисках искать. Желательно исключить диски с каталогом Windows, до тех пор, пока не будет сделано под Everything, иначе будут заметные торомоза.
В общем, это пока только тестовая версия, могут быть косяки и недочеты, но в целом работает.

Спасибо. Поиск работает.
Для случая "папка Blu-Ray диска" находит как два объекта.
 Hidden text

Такое поведение в случае, если папка BDMV одна внутри главной папки
Code:
E:\Torrent\Страна садов 2004 [GARDEN_STATE_2004_BDREMUX_HDCLUB]\BDMV\


Если рядом с ней есть ещё папки, типа ANY и CERTIFICATE то всё нормально, находит 1 объект.
 Hidden text


Для просто файл всё нормально
 Hidden text

Но только это сообщение, на противоположной панели TC ничего не происходит, перехода к этой папке/файлу.
Code:
Страна садов 2004 [GARDEN_STATE_2004_BDREMUX_HDCLUB]\BDMV\
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 860

Post (Separately) Posted: Wed Sep 17, 2025 00:24    Post subject: Reply with quote

A55555
Функционал будет развиваться со временем, всего сразу не сделаешь. Над новыми фишками надо будет еще подумать. Пока этот только тестовая версия, но она рабочая, что радует. Пути из окна сообщения в данный момент можно просто копировать по CTRL+C и вставлять в заголовок панели для перехода. Надеюсь, эта кнопка поможет вам найти все данные и поставить их на раздачу )
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 443

Post (Separately) Posted: Wed Sep 17, 2025 21:37    Post subject: Reply with quote

Loopback
Почему-то я считал, что для работы с инишниками у нас полный набор инструментов. А оказывается переименование ключа нет. Конечно через List() я уже умею править инишники. Но хотелось-бы иметь прямой инструмент IniRenameKey. Есть-ли такое в планах?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1614

Post (Separately) Posted: Wed Sep 17, 2025 22:34    Post subject: Reply with quote

AkulaBig wrote:
Есть-ли такое в планах?

Нет, не планировал, в WinAPI нет такого понятия, как переименование ключа. Кажется, ни в одном скриптовом языке такого не встречал. Это в любом случае будет три операции, IniRead+IniWrite+IniDelete:

Code:
Func IniRenameKey(ini, section, key, newkey)
  Local value = IniRead(ini, section, key, "<nokey>")
  If value = "<nokey>" Then Return
  IniWrite(ini, section, newkey, value)
  IniDelete(ini, section, key)
EndFunc


Если цель сохранить порядок ключей, то WinAPI функции это сделать не позволяют. В принципе, и IniRenameSection лишняя, по сути это тоже три последовательных операции, и тоже не сохраняет порядок.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 443

Post (Separately) Posted: Wed Sep 17, 2025 22:54    Post subject: Reply with quote

Loopback
Я с этим уже наловчился:
Code:
   Local DriveLibBak = IniRead(COMMANDER_INI, "Configuration", "DriveLib.bak", "")
   If DriveLibBak <> "" Then
      Local WinCmdIni = List()
      WinCmdIni.LoadFromFile(COMMANDER_INI)
      For i = 0 to WinCmdIni.Count-1
         If StrPos(WinCmdIni[i], "DriveLib.bak") > 0 Then
            WinCmdIni[i] = 'DriveLib=' & DriveLibBak
         Endif
      Next
      WinCmdIni.SaveToFile(COMMANDER_INI, "UTF-16")
      Free(WinCmdIni)
   EndIf

Порядок прекрасно сохраняется. Хотя он мне совершенно не важен.
Back to top
View user's profile Send private message
A55555



Joined: 06 Feb 2011
Posts: 49

Post (Separately) Posted: Wed Sep 17, 2025 23:48    Post subject: Reply with quote

Orion9 wrote:
A55555
Функционал будет развиваться со временем, всего сразу не сделаешь. Над новыми фишками надо будет еще подумать. Пока этот только тестовая версия, но она рабочая, что радует. Пути из окна сообщения в данный момент можно просто копировать по CTRL+C и вставлять в заголовок панели для перехода. Надеюсь, эта кнопка поможет вам найти все данные и поставить их на раздачу )

Спасибо, буду ждать.

Копируется по CTRL+C вообще всё что есть в окне сообщения, не только путь , чтоб сразу вставить в заголовок TC, пока так задумано я понимаю.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 860

Post (Separately) Posted: Thu Sep 18, 2025 00:40    Post subject: Reply with quote

A55555
Ждать пришлось не долго, удачно сошлись звезды )

Улучшенная и доработанная версия функционала:
 Torrent.aucfg

Теперь все, что касается торрент-файлов вынесено в отдельный модуль. Подключение к основной конфигурации стандартное, т.е. через строку:
Code:
Pragma Include %COMMANDER_PATH%\Scripts\Torrent.aucfg

После подключения можно раскомментировать "#Pragma IncludeOnce", но это не обязательно. A55555, можете не подключать как отдельный модуль, но удалите весь старый код, связанный с торрентами, включая функцию подсчета. Важно отметить, что я заменил номер функции "TorrentSize" на 70505 (раньше это был 62014). Соответственно, номер в кнопке тоже придется заменить на новый.

Код использует две дополнительные функции от Loopback для масштабирования окна:
Code:
Func GetDPI()
    Local DC = DllCall("GetDC", "int", 0)
    Local lpy = DllCall("GetDeviceCaps", "handle", DC, "int", 88) # LOGPIXELSX
    DllCall("ReleaseDC", "int", 0, "handle", DC)
    Return lpy
EndFunc

Func Scale(nValue)
    Static dpi = GetDPI()
    Return DllCall("MulDiv", "int", nValue, "int", dpi, "int", 96)
EndFunc

Если эти функции ранее не использовались, необходимо их добавить. Желательно сделать отдельный модуль для хранения этих и других универсальных функций.

Что касается функционала. Добавлена поддержка поиска через утилиту "Everything", теперь поиск происходит мгновенно. Реализовано отдельной кнопкой. Для работы необходимо в настройках утилиты указать, чтобы она индексировала размеры файлов и папок (Сервис->Настройки->Индексирование). Ищет по всем индексированным дискам.
Добавлена возможность сохранения найденных путей в текстовый файл и перехода к найденным данным при нажатии "Нет" в окне результата. Текстовый файл сохраняется с тем же именем, что и торрент-файл рядом с ним. Если стоя на этом текстовом файле выполнить команду с кодои 70501, то первый в этом файле путь откроется в противоположной панели. Для ускорения работы можно создать em_команды и посадить и на горячии клавиши:
Code:
[em_torrent_data_search]
cmd=70500

[em_torrent_data_goto]
cmd=70501

Code:

[Shortcuts]
A+T=em_torrent_data_search
A+P=em_torrent_data_goto

Также добавлена возможность редактирования дисков при вызове кнопки 70500 с SHIFT. Ключ сохраняется в wincmd.ini:
Code:
[Autorun]
TorrentDrives=e:\;f:\;g:\;i:\;j:\

Пока это только костыль, но уже удобнее.
Code:
TOTALCMD#BAR#DATA
70500

%COMMANDER_EXE%
Поиск данных торрет-файла|Shift - Выбор дисков


-1

Code:
TOTALCMD#BAR#DATA
70501

%COMMANDER_EXE%
Поиск данных торрет-файла c Everything


-1

Code:
TTOTALCMD#BAR#DATA
70502

%COMMANDER_EXE%
Переход к данным  из текстового файла


-1

В общем, потестируйте пока, а там видно будет где и что улучшить.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 288
Location: Электросталь

Post (Separately) Posted: Thu Sep 18, 2025 17:00    Post subject: Reply with quote

Orion9
https://github.com/yozhic/AkelPad-coders/blob/main/aucfg.coder
Вроде нескромно с такими поделками, да в калашный ряд. С другой стороны, пущай — «дабы дурь каждого видна была». Ну, и так взаимодействовать легче... А с третьей стороны, может GitHub не такой уж и калашный, а так себе, толкучка ))
_________________
Amo ergo sum
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 860

Post (Separately) Posted: Thu Sep 18, 2025 20:27    Post subject: Reply with quote

yozhik
Круто. Очень круто. Большое вам спасибо. Теперь все последние изменения заиграли новыми красками, включая довольно старые буферные и оконные функции, чего так не хватало.

Без подсветки - как без рук. Думаю, неплохо на официальную страницу плагина добавить ссылки на хайлатеры Autorun. Иначе где еще пользователь может о них узнать, не проводя собственных исследований.
Back to top
View user's profile Send private message
A55555



Joined: 06 Feb 2011
Posts: 49

Post (Separately) Posted: Fri Sep 19, 2025 00:37    Post subject: Reply with quote

Orion9 wrote:
Теперь все, что касается торрент-файлов вынесено в отдельный модуль. Подключение к основной конфигурации стандартное, т.е. через строку:
Code:
Pragma Include %COMMANDER_PATH%\Scripts\Torrent.aucfg


С этим я не знаю куда его, тем не менее всё заработало.

Orion9 wrote:
Также добавлена возможность редактирования дисков при вызове кнопки 70500 с SHIFT. Ключ сохраняется в wincmd.ini:
Code:
[Autorun]
    TorrentDrives=e:\;f:\;g:\;i:\;j:\

Работает, но окно не выходит на передний план при своем появлении.
 Hidden text


Orion9 wrote:
Добавлена поддержка поиска через утилиту "Everything", теперь поиск происходит мгновенно. Реализовано отдельной кнопкой. Для работы необходимо в настройках утилиты указать, чтобы она индексировала размеры файлов и папок (Сервис->Настройки->Индексирование). Ищет по всем индексированным дискам.

Работает быстро, но получается эта программа всегда должна быть запущена?
Иначе пишет, что окно программы Everything не найдено.

Этот момент остался.
Quote:
Eсли папка BDMV одна внутри главной папки BDRemux
Code:
    E:\Torrent\Страна садов 2004 [GARDEN_STATE_2004_BDREMUX_HDCLUB]\BDMV\

Находит как два объекта.
 Hidden text

При нажатии "НЕТ" в окне с предложением сохранить в TXT, переход на противоположной панели происходить по 2му более длинному пути.



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

Если это будет возможно, добавьте пожалуйста вариант поиска в чистом виде, если нашло просто на противоположной панели курсор установлен на найденной папке/файле не заходя в папку без дополнительных сообщений и запросов. (не найдено, сообщение "Ничего не найдено").
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 860

Post (Separately) Posted: Fri Sep 19, 2025 13:56    Post subject: Reply with quote

A55555 wrote:
С этим я не знаю куда его, тем не менее всё заработало.

Со временем кода становится много и хранить его весь в файле autorun.cfg становится не удобно. Тогда код разделяется на логические блоки и сохраняется в разные файлы. Далее эти файлы подключаются к основой конфигурации директивой Pragma Include с указанием пути к файлу, но вам не стоит пока забивать этим голову.
A55555 wrote:
Работает, но окно не выходит на передний план при своем появлении.

Поэтому я и написал, что это костыль. В Autorun нет легкого способа работать с графическим интерфейсом, поэтому приходится вызывать vbs-скрипт из autorun-скрипта. Попробуйте заменить функцию SetTorrentDrives() на новый блок, должно помочь:
 Hidden text

A55555 wrote:
Работает быстро, но получается эта программа всегда должна быть запущена?

Получается, так. Можно запускать Everything только на время поиска торрент-данных, если вы не пользуетесь этой утилитой, но поиск без Everything тоже быстро работает, особенно если не искать на разделах, где стоит операционная система.
A55555 wrote:
Этот момент остался.

Я пока не решил, что с этим делать. На мой взгляд, неправильно скрывать избыточную вложенность каталогов. Вы сами, например, по неосторожности можете поместить раздачу в пустой каталог или раздающие могут допустить эту оплошность. Нельзя с уверенностью сказать, какой уровень вложенности считается легитимным для конкретного торрент-файла только по его размеру. Отфильтровать, конечно, можно. Но нужен дополнительный алгоритм, хотя стоит ли он того, пока не ясно. В окне сообщения сейчас видно, что это одна раздача. Пользователь только должен принять решение, какой уровень каталога считается правильным для работы в клиенте.
A55555 wrote:
При нажатии "НЕТ" в окне с предложением сохранить в TXT, переход на противоположной панели происходить по 2му более длинному пути.

На самом деле переход происходит по первому пути, просто этот путь открывается в противоположной панели и становится текущим. Насколько мне известно, в ТС нет специальной команды для выделения каталога в противоположной панели установкой на него фокуса или курсора. Если такая команда есть, то поправьте меня (обращение ко всем).
A55555 wrote:
Не полностью скачанные по-прежнему, если я правильно понимаю, ни первым, ни вторым способом не находит.

Да, я об этом писал. Недокаченные раздачи так находиться не будут. Здесь нужен более глубокий анализ содержимого торрент-файла и более продвинутый алгоритм для сверки данных на диске. Сейчас код опирается на плагин TCTorrent (превосходный плагин от Loopback), но wdx-часть плагина не выдает список содержимого торрента, только wlx-часть. Может, автор сделает какой-нибудь недокументированный вызов к библиотеке для получения такого списка? Тогда можно будет подумать. А так, есть еще вариант с консольной утилитой torrentcheck, но тогда с бубном чуть выше прыгать придется.
A55555 wrote:
Если это будет возможно, добавьте пожалуйста вариант поиска в чистом виде, если нашло просто на противоположной панели курсор установлен на найденной папке/файле не заходя в папку без дополнительных сообщений и запросов.

А если будут дубликаты? Во время я тестов специально копировал данные на несколько дисков, чтобы посмотреть, как они будут находиться. Нельзя полностью скидывать со счетов, что могут найтись дубликаты, а значит, нужно их видеть и знать, что они существуют. Но я понял, что вы имеете в виду. Да, можно сделать для этого отдельный режим, который будет вызываться либо по CTRL, либо отдельной командой. К сожалению, сейчас уже не успеваю это сделать, но взял на заметку для будущих версий.
Back to top
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 36

Post (Separately) Posted: Fri Sep 19, 2025 15:46    Post subject: Reply with quote

Code:

msgbox(Date('yyyy-MM-dd',now() + 864000000000))


wdx_autorun_2.2.19_beta -- 2025-09-20
wdx_autorun_2.2.20_beta -- 2025-09-19
Back to top
View user's profile Send private message
A55555



Joined: 06 Feb 2011
Posts: 49

Post (Separately) Posted: Fri Sep 19, 2025 16:08    Post subject: Reply with quote

Orion9 wrote:
На самом деле переход происходит по первому пути, просто этот путь открывается в противоположной панели и становится текущим. Насколько мне известно, в ТС нет специальной команды для выделения каталога в противоположной панели установкой на него фокуса или курсора. Если такая команда есть, то поправьте меня (обращение ко всем).

Orion9
Заходит внутрь найденной папки и один шаг вверх по дереву каталога.
Может такая функция есть в TC. Опять же, если даже такой костыль реален, будет ли курсор стоять на этой папке после этого маневра.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 860

Post (Separately) Posted: Fri Sep 19, 2025 19:19    Post subject: Reply with quote

A55555 wrote:
Заходит внутрь найденной папки и один шаг вверх по дереву каталога.

Вы абсолютно правы. Почему-то эта мысль не пришла ко мне сразу. Видимо, мысли уже другим заняты. Замените функцию GoToPathFromMsg, тут всего одна строчка добавилась:
 Hidden text

Работает действительно лучше. На крайний случай можно опцию потом добавить, переходить или не переходить внутрь каталога.

А теперь жирный бонус. Сделал автопереход к данным при включеном CapsLock. Поменяйте старый фрагмент кода на новый:
 Старый

 Новый

Теперь если CapsLock включен, будет автоматический переход. Если выключен, будет прежнее окно с сообщением. Как говорится "Autorun - мечты сбываются". Осталось только кнопки под это дело обновить:
 Hidden text

 Hidden text
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 203, 204, 205, 206, 207  Next
Page 204 of 207

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group