FS Плагин для замены встроенного FTP-клиента
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Написание плагинов для Total Commander

#1: FS Плагин для замены встроенного FTP-клиента Author: Wizard109 PostPosted: Wed Aug 15, 2012 02:31
    —
Есть такая проблема: работа с ftp посредством тотала. Б-г со скоростью и не особо удобной синхронизацией, но когда я открываю файл на редактирование и сохраняю его - я вижу нулевой результат до тех пор, пока не закрою программу в которой файл редактировался (т.е. кто-то затачивался не на ивенты файловой системы, а на хендл процесса (скорее всего) ).

Собссно вопросов несколько:
1. FS - плагин подходит для создания FTP клиента более остальных или есть что-то лучше ?
2. Как задавать настройки для этого плагина (т.е. где взять айпишники, имена юзеров, пароли, опции работы с ssl и все такое) ?
3. Мож. ничего не писать а кто-то подскажет уже существующую реализацию и выдаст мне медаль "Пачотный Велосипедостроитель" ?

[offtop]
Совсем недавно решил облагородить рабочее место, поставил gvim для <F4> и вообще решил плотно заняться тоталом ибо местами сильно неудобен.

Много извинений, читать и обдумывать все RFC не хочется... но все что сделаю - обязуюсь выложить на форуме (причина проста: допустим мне нужен был просмотр BIK - файлов. Однако длл которую я юзаю нельзя выкладывать ибо она не opensource. С остальными "плюшками" так же. Соотвессна думаю выложить на форме, кому нужно - сам скачает недостающие файлы [disclamer](естественно предварительно купив лицензию ибо копирайт и все такое.)[/disclamer])
[/offtop]

 !  CaptainFlint:
Тема переименована в соответствии с п. 6 правил.

#2:  Author: CaptainFlintLocation: Москва PostPosted: Wed Aug 15, 2012 12:49
    —
Wizard109 wrote:
1. FS - плагин подходит для создания FTP клиента более остальных или есть что-то лучше ?

Из четырёх с половиной типов плагинов, имеющихся в Тотале, WFX для этого — наиболее подходящий.

Wizard109 wrote:
2. Как задавать настройки для этого плагина (т.е. где взять айпишники, имена юзеров, пароли, опции работы с ssl и все такое) ?

Не понял вопроса. Если имеется в виду, как их вытащить из встроенного FTP-клиента Тотала для более полной интеграции, то достаточно взять их из wcx_ftp.ini. Если же вопрос в том, как вообще реализуются подобные вещи в интерфейсе FS-плагинов, то вариантов много, но обычно плагин просто выводит список подключений, а настройки каждого подключения вызываются по нажатию Alt+Enter (открывается диалог свойств). Вообще, рекомендую посмотреть на Гислеровскую реализацию SFTP или даже взять её исходный код за основу.

Wizard109 wrote:
3. Мож. ничего не писать а кто-то подскажет уже существующую реализацию и выдаст мне медаль "Пачотный Велосипедостроитель" ?

Насколько мне известно, замены FTP-клиенту ещё никто не писал. (Упомянутый выше SFTP — это другой протокол.)

Только вот боюсь я, что даже с помощью плагина не получится решить проблему с удобным редактированием файлов на сервере. Дело в том, что интерфейс FS-плагинов попросту не предоставляет средств для такого низкоуровневого управления файлами. По сути, когда пользователь вызывает разные команды, Тотал скрывает от плагина все подробности, сводя их к элементарным командам типа "дай-забери", и не уточняя, с какой целью выполняется данное действие. Фактически, когда пользователь нажимает F4, плагину приходит лишь запрос от Тотала на скачивание файла и размещение его в нужном каталоге (в данном случае — в %TEMP%\_tc), а дальше плагин знать не знает, ведать не ведает, что этот файл передаётся на открытие в редактор, что Тотал следит за этим редактором и т.д. Лишь в конце, если файл изменился, Тотал запрашивает загрузку файла обратно в плагин (то бишь, на сервер).

Конечно, можно наводнить плагин разными хуками, которые будут перехватывать действия пользователя, самостоятельно определять, что произошло, следить за файлом в обход плагинового API и т.д. Но в таком случае плагин-то оказывается и не нужен. Проще уж пользоваться стандартным встроенным FTP-клиентом и вешать те же самые хуки при помощи сторонней программы или автоматически внедряемого WDX-плагина, аналогично TWinKey и ему подобным.

#3:  Author: Wizard109 PostPosted: Wed Aug 15, 2012 14:05
    —
Пасибо за ответ.

CaptainFlint wrote:
с помощью плагина не получится решить проблему с удобным редактированием файлов на сервере

Ммм. При редактировании стандартный клиент тотала заталкивает их в tmp - папку, путь к ней есть в логе сверху
Code:
Copied (15.08.2012 13:00:49): ftp://1.2.3.4/public_html/index.php -> C:\Users\EVI1@N~1\AppData\Local\Temp\_tc\index.php 244 bytes, 7.8 kbytes/s

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

Сейчас посмотрю как вообще этот FTP реализован. Может кто знает ?

============
Просто хочется чтобы все было в одном месте. Можно использовать CuteFTP, эклипс вполне неплохо подходит для такой работы но... Инструмент должен быть остро отточен и удобен для использования ! Smile

#4:  Author: Wizard109 PostPosted: Wed Aug 15, 2012 17:07
    —
Все, спс. Все проблемы вроде-как решены. Начинаем кодить Smile

#5:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Thu Aug 16, 2012 07:43
    —
CaptainFlint wrote:
Насколько мне известно, замены FTP-клиенту ещё никто не писал.

http://wincmd.ru/plugring/wfx_FTPList.html
В плагине была даже поддержка папок до их реализации в Тотале.

#6:  Author: Wizard109 PostPosted: Sat Aug 18, 2012 17:39
    —
Концепт работает !!! Smile
Нет ли, случаем, сорца wfx плагина на Visual Studio (ибо жутко лень разбираться с мелочами) ?

+ Вопросы по удобству:
1. Настройки: сейчас при входе в плагин - список ftp-серверов (не из стандартной ftp-плюшки. Из корня тотала файлы с расширением tfp. Сделал чтобы впоследствии можно было заюзать rsa, проверку подлинности и все что взбредет в ополоумевший разум). Нажатие на "<Press ENTER to edit FTP preferences>" вываливает ноутпад для редактирования файла в формате JSON.

* Есть ли возможность заюзать какое-то API, чтобы показать формочку ?
* Основной вопрос думаю будет далее, но здесь отмечу. Как бы поудобнее и правильнее читать настройки тотала ? Парсинг ini - файла или тоже есть какой-то API ?
2. Чтобы при сохранении файл автоматически закачивался на ftp - устроил слежку. Если файл сохраняется в tmp-папку тотала - все изменения копировать на сервер. Большое количество таких файлов может причинить конкретную головную боль Венде.

* Собссно искать другой выход или пренебречь маньяками, которые будут сохранять файлы в пресловутую папку ?
* Имя этой папки получаю при помощи шаманского бубна и какой-то матери. Есть ли валидный способ это делать ?

3. Со стандартным FTP работать пока не получается (типо скопировать с моего сервера на стандартный). Ищется способ этим рулить

4. Знаю что в манах все написано, но если двумя словами: как отображать прогресс копирования ? Вообще я юзаю вининет и если файл большой - тотал подвисает.

#7:  Author: Alextp PostPosted: Sat Aug 18, 2012 17:57
    —
- Со стандартным FTP работать пока не получается
что имеется в виду? Какой "станд. ftp"?

-- . Ищется способ этим рулить
чем рулить?

Настройки плага делать надо в виде диалога по нажатию alt+Enter на плаге в списке плагов в Тотале

#8:  Author: Wizard109 PostPosted: Sat Aug 18, 2012 18:09
    —
Alextp wrote:
что имеется в виду? Какой "станд. ftp"?

Тот который выползает по Ctrl+F.
Копировать из моего плагина туда - оттуда не получается, а пригодилось - бы Sad

Quote:
Настройки плага делать надо в виде диалога по нажатию alt+Enter на плаге в списке плагов в Тотале

Хм. Даже не знал ! Буду копать API Smile
Но вопрос не в том. Безусловно можно сделать так, что настройки всех FTP-шников будут там, но я затолкал их в файловую систему и думаю что так удобнее.
Вот собссно не хочется на ВинАпи писать окно и всякие edit'ы.

#9:  Author: Alextp PostPosted: Sat Aug 18, 2012 18:15
    —
-но я затолкал их в файловую систему и думаю что так удобнее.
Пожалуй
или делать нажатие alt+Enter на записи хоста.

окно писать придется.

Добавлено спустя 3 минуты:

Wizard109 wrote:
Копировать из моего плагина туда

Это окно без API.

#10:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Sun Aug 19, 2012 12:57
    —
Wizard109 wrote:
Нет ли, случаем, сорца wfx плагина на Visual Studio (ибо жутко лень разбираться с мелочами) ?

Не совсем то, но всё же: http://wincmd.ru/plugring/vfs.html
Многие мелочи (проверки и тп.) предусмотрены, но кое-какие недочёты всё же были обнаружены при написании на его основе tcPhonebook.



Total Commander -> Написание плагинов для Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group