Home · vkopt

Збірка розширення з початкових кодів

  • Запустити _build.bat (Windows) або _build.sh (Linux / Mac).
    Скрипти з папки source / скопійовано в папку builds / [браузер] /
  • запустити збірку для потрібного браузера:
    • Якщо у вас встановлений Python, запускаємо builds / _ [браузер] _pack.bat
    • Якщо немає, але встановлений WinRAR - то тоді builds / _winrar_ [браузер] .bat

Cобранное розширення з'явиться в папці builds /.

Для цілей налагодження розширення існують додаткові настройки, які приховані. Див. Сторінку Розширені налаштування.

Принцип організації роботи розширення

VkOpt складається з двох допоміжних скриптів, що виконуються в пісочницях браузерів: background.js і content_script.js - далі "завантажувач".

Їх можна вважати одним цілим. Їх основне завдання - ін'ектіровать потрібні скрипти в сторінки. Завантажувач спрацьовує в кожній сторінці vk.com і в кожному фреймі на ній.

Скрипти ін'ектіруются в контекст сторінки, а не виконуються в пісочниці розширення, тому що вони тісно взаємодіють зі скриптами самого сайту, які, очевидно, видно тільки в контексті сторінки.

Є всього два варіанти набору скриптів, які ін'ектірует завантажувач:

  • для основної сторінки (для window.top)
  • для фрейма (запускаються в кожному фреймі)

Конкретні списки скриптів можна подивитися на початку background.js:

Щоб по-якої дрібниці не правити код Вкопта для підключення до часто використовуваних місцях в 2.х версії був реалізований механізм плагінів.
Поточна версія Вкопта 3.x повністю складається з окремих модулів, безпосередньо не взаємодіють між собою (за деякими винятками), і які розміщені в об'єкт vkopt приблизно так:

Опитування цікавить обробника у всіх модулів виробляється подібним викликом

На виході отримуємо масив з результатами виконання обробників модулів, якщо обробники з там назвою були у них виявлені. В обробник в модуль передаються аргументи передані після назви обробника, якщо ж в якості обробника у модуля вказана не функція, то в result_array потрапить те, що зазначено замість функції (рядок, об'єкт і т.д) Т.е існують обробники викликані як і ядром Вкопта, так і іншими модулями. Це потрібно наприклад в тому випадку, якщо ми додали своїм модулем якусь менюшку, в яку, можливо, якийсь інший модуль захоче додати і свої пункти теж. У цьому випадку наш модуль при генерації меню викликає щось таке:

А в інші модулі виглядають якось так:

Приклад коду підключення модуля до існуючих обробникам Вкопта (якщо код розташовується в файлах розширення, то виклик vkopt_core.plugins.delayed_run не обов'язковий):

Повертається для обробника onSettings структура виглядає так:

[Приклад модуля] (Приклади модулів) для вибору кастомними кольору фону сайту

Використання опцій в VkOpt-e

VkOpt надає публічний API для плагінів VkOpt і сторонніх розширень. Див. Сторінку Публічний API розширення.