Автор Тема: Взаимодействие  (Прочитано 493 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Взаимодействие
« : 18 Декабря 2015, 00:06:18 »
Как говорится, не было ни гроша, да вдруг алтын: у нас на форуме появилось сразу 3 человека с навыками программистов.

Посему у меня возникает неизбежный вопрос - кроме этой ветки, стоит ли подумать о чем-то, облегчающем взаимодействие? (так или иначе, а оно будет по факту возникать)

Надо ли как-то связать вас постоянным каналом с Дорианом, автором браузера? Ему можно было задавать напрямую вопросы, ответа на которые никто кроме него не знает (а обычные пользователи типа меня - еще и не понимают :D ). Опять же, совместно и код короче, и одно и то же дважды делать не придется, если что.

В общем, если надо что-то от Дориана, я могу написать ему и изложить ситуацию, а дальше сможете уже общаться напрямую по профессиональной части, ибо тут я уже не помощник.

На самом деле сообщество K-Meleon очень долго ждало появления еще хотя бы одного "able coder'a", и было бы очень круто, если бы рунет стал бы в этом флагманом. Как-никак - именно в России КМ имеет наибольшую популярность.

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: Взаимодействие
« Ответ #1 : 18 Декабря 2015, 01:05:41 »
Пока соберу здесь ссылки на доки:

Макроязык (!!! - выбирать в меню форума язык English, т.к. русская версия перевода не содержит последних обновлений)

Команды k-плагинов для использования в макросах (полный список в стандартном синтаксисе)

Соглашения и указания по написанию макросов - здесь описаны конвенции именования как модулей (kmm-файлов) так и отдельных макросов, а также переменных; предпочтительные варианты расположения файлов с допресурсами; правила обработки событий и отнесения к ним разных операций; "правила хорошего тона" для макрокодера. В общем, все то, что помогает избежать конфликтов, обеспечить безусловную работоспособность макромодулей, повысить читабельность и понятность макрокода.

Еще одно описание макроязыка (местами устаревшее, но зато местами более подробное)

Полный список всех ID внутренних команд КМ и соответствующих им имен (и то, и другое используется в макросах и конфигах, но в новейших версиях как раз идет постепенный переход от Command IDs к Command Names.
« Последнее редактирование: 18 Декабря 2015, 01:11:02 от rodocop »

Оффлайн Aizek

  • Участник форума
  • Сообщений: 40
    • Просмотр профиля
Re: Взаимодействие
« Ответ #2 : 18 Декабря 2015, 12:39:54 »
Можно попросить Дориана добавить большее количество событий, то же начало загрузки страницы...
Так же интересует возможность передавать команды в хамелион из плагина. Я так понял, что на данный момент у плагина нет обратного интерфейса, то есть плагин не может как макрос заставить хамелион что-то сделать.
Мне пока что много не понятно, я разбираюсь с тем, что есть сейчас...
« Последнее редактирование: 18 Декабря 2015, 12:42:49 от Aizek »

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: Взаимодействие
« Ответ #3 : 18 Декабря 2015, 16:20:03 »
Не спец, увы, в этом, но как я понимаю - плагины могут формировать меню, как и макросы, а значит у них какой-то канал связи в сторону браузера есть.
Но возможно он целиком опосредован макросами. Тут я не уверен.

Оффлайн Aizek

  • Участник форума
  • Сообщений: 40
    • Просмотр профиля
Re: Взаимодействие
« Ответ #4 : 18 Декабря 2015, 20:55:50 »
Макрос, к примеру, может совершить некое действие по событию. Открылся таб и макрос вывел сообщение.
Плагин такого удовольствия лишен. Он не может передать команду хамелиону. Приходится делать обертки из макросов, которые действуя по событию вызывают функции плагина. Если плагин совершает некие действия в реальном времени, без команды, например следит за адресной строкой, то пока макрос не вызовет определенную функцию плагина, плагин не сможет повлиятьна браузер стандартными средствами. Было бы замечательно, если бы у браузера был некий механизм получения команд от плагина. Например через SendMessage(...)  или же через внутреннюю dll, которую плагин мог бы загрузить и используя ее функции управлять браузером :)
На самом деле это не сложно, тот же плагин macros.dll имеет какие-то экспортируемые функции и если бы было их описание то наверное можно было бы передавать команды в браузер...

Оффлайн Oleg_M

  • Участник форума
  • Сообщений: 23
    • Просмотр профиля
Re: Взаимодействие
« Ответ #5 : 19 Декабря 2015, 15:46:56 »
Я пока больше с исходником Firefox'а ковыряюсь.
Если начну делать что-то существенное, то потребуется скорее всего source xulrunner с модификациями Dorian'а, т.к. мозилловский оригинальный не особо хочет фурычить. А весит он 170 мегабайт и там 117 тыщ файлов, так что я пока стесняюсь просить залить его :D
Баг с исчезающим правым кликом мне вроде удалось воспроизвести, попытаюсь для начала его устранить.

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: Взаимодействие
« Ответ #6 : 20 Декабря 2015, 16:15:52 »
Иными словами, вопросы к Дориану имеются.

Окей, я напишу ему письмо, обрисую ситуацию. Он наверняка будет рад, что при его детище появились новые люди, способные говорить с ним на одном языке (как программеры).
У кого английский свободный или хотя бы терпимый - можно, думаю, будет просто писать на официальном форуме в специальной ветке (я ссылку кину, как создам эту ветку). Но в принципе, наверное, будет иметь смысл обменяться с Дорианом прямыми контактами или на базе того же сорсфоржа (или другого удобного облачного девелопер-сервиса) общаться по профессиональной части.

С какого-то момента пользователи моего уровня компетенции просто станут бесполезны в этом общении за отсутствием собственно самой компетенции ;-)

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: Взаимодействие
« Ответ #7 : 20 Декабря 2015, 16:22:41 »
Пока предлагаю зарегистрированным на международном форуме отправить личными сообщениями свои координаты Дориану, чтоб он ответил в почте или где-то еще.

Это нормально, стесняться не надо. Прежний координатор и хранитель русского КМ Alex Tarantul регулярно с ним переписывался, например...

Оффлайн Aizek

  • Участник форума
  • Сообщений: 40
    • Просмотр профиля
Re: Взаимодействие
« Ответ #8 : 21 Декабря 2015, 08:25:13 »
Пока что кроме добавки события, которое вызывается перед загрузкой страницы (чтобы можно было вкл/выкл скрипты из макроса) ничего не надо :)

Оффлайн Aizek

  • Участник форума
  • Сообщений: 40
    • Просмотр профиля
Re: Взаимодействие
« Ответ #9 : 22 Декабря 2015, 09:11:45 »
rodocop, задашь вопрос по добавлению события?

Оффлайн rodocop

  • Глобальный модератор
  • Сообщений: 852
    • Просмотр профиля
Re: Взаимодействие
« Ответ #10 : 22 Декабря 2015, 13:37:35 »
Создал на оффоруме тему, в которой можно наладить связь с Дорианом.

И начать задавать ему специфические вопросы.

Если нужна помощь в переводе, тогда прошу максимально точно сформулировать реквест здесь.

Оффлайн Aizek

  • Участник форума
  • Сообщений: 40
    • Просмотр профиля
Re: Взаимодействие
« Ответ #11 : 22 Декабря 2015, 17:40:20 »
Просьба простая. Нужно что бы он добавил событие, аналогичное событию OnLoad, которое срабатывает при завершении загрузкистраницы, только это событие должно срабатывать перед загрузкой страницы. Чтобы можно было изменить какие нибудь настройки. Примерно как если бы ты сперва нажал F7 (отключил JS), а затем назажл F5 (обновил страницу), дак вот событие бы сработало как раз в момент нажатия F5.