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 

FS Плагин для замены встроенного FTP-клиента

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Wizard109



Joined: 10 Aug 2012
Posts: 9

Post (Separately) Posted: Wed Aug 15, 2012 02:31    Post subject: FS Плагин для замены встроенного FTP-клиента Reply with quote

Есть такая проблема: работа с ftp посредством тотала. Б-г со скоростью и не особо удобной синхронизацией, но когда я открываю файл на редактирование и сохраняю его - я вижу нулевой результат до тех пор, пока не закрою программу в которой файл редактировался (т.е. кто-то затачивался не на ивенты файловой системы, а на хендл процесса (скорее всего) ).

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

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

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

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

_________________
Vexilla regis prodeunt inferni
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5796
Location: Москва

Post (Separately) Posted: Wed Aug 15, 2012 12:49    Post subject: Reply with quote

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 и ему подобным.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Wizard109



Joined: 10 Aug 2012
Posts: 9

Post (Separately) Posted: Wed Aug 15, 2012 14:05    Post subject: Reply with quote

Пасибо за ответ.

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
_________________
Vexilla regis prodeunt inferni
Back to top
View user's profile Send private message
Wizard109



Joined: 10 Aug 2012
Posts: 9

Post (Separately) Posted: Wed Aug 15, 2012 17:07    Post subject: Reply with quote

Все, спс. Все проблемы вроде-как решены. Начинаем кодить Smile
_________________
Vexilla regis prodeunt inferni
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1473
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Thu Aug 16, 2012 07:43    Post subject: Reply with quote

CaptainFlint wrote:
Насколько мне известно, замены FTP-клиенту ещё никто не писал.

http://wincmd.ru/plugring/wfx_FTPList.html
В плагине была даже поддержка папок до их реализации в Тотале.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Wizard109



Joined: 10 Aug 2012
Posts: 9

Post (Separately) Posted: Sat Aug 18, 2012 17:39    Post subject: Reply with quote

Концепт работает !!! 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. Знаю что в манах все написано, но если двумя словами: как отображать прогресс копирования ? Вообще я юзаю вининет и если файл большой - тотал подвисает.
_________________
Vexilla regis prodeunt inferni
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4818

Post (Separately) Posted: Sat Aug 18, 2012 17:57    Post subject: Reply with quote

- Со стандартным FTP работать пока не получается
что имеется в виду? Какой "станд. ftp"?

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

Настройки плага делать надо в виде диалога по нажатию alt+Enter на плаге в списке плагов в Тотале
_________________
UniViewer - SynWrite - CudaText - LogViewer
Back to top
View user's profile Send private message
Wizard109



Joined: 10 Aug 2012
Posts: 9

Post (Separately) Posted: Sat Aug 18, 2012 18:09    Post subject: Reply with quote

Alextp wrote:
что имеется в виду? Какой "станд. ftp"?

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

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

Хм. Даже не знал ! Буду копать API Smile
Но вопрос не в том. Безусловно можно сделать так, что настройки всех FTP-шников будут там, но я затолкал их в файловую систему и думаю что так удобнее.
Вот собссно не хочется на ВинАпи писать окно и всякие edit'ы.
_________________
Vexilla regis prodeunt inferni
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4818

Post (Separately) Posted: Sat Aug 18, 2012 18:15    Post subject: Reply with quote

-но я затолкал их в файловую систему и думаю что так удобнее.
Пожалуй
или делать нажатие alt+Enter на записи хоста.

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

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

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

Это окно без API.
_________________
UniViewer - SynWrite - CudaText - LogViewer
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Sun Aug 19, 2012 12:57    Post subject: Reply with quote

Wizard109 wrote:
Нет ли, случаем, сорца wfx плагина на Visual Studio (ибо жутко лень разбираться с мелочами) ?

Не совсем то, но всё же: http://wincmd.ru/plugring/vfs.html
Многие мелочи (проверки и тп.) предусмотрены, но кое-какие недочёты всё же были обнаружены при написании на его основе tcPhonebook.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
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
Page 1 of 1

 
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