Плагины для RemoteFork1.2 PC

Главная Форумы RemoteFork для windows и андроид Плагины для RemoteFork1.2 PC

В этой теме 19 ответов, 7 участников, последнее обновление  fd_crash 1 год, 5 мес. назад.

Просмотр 20 сообщений - с 1 по 20 (из 20 всего)
  • Автор
    Сообщения
  • #5221

    fd_crash
    Модератор

    Описание:
    Начиная с версии v1.2f8 в RemoteFork внедрена система плагинов. Их суть — парсинг сайтов на ПК пользователя. В перспективе плагины должны позволить существенно расширить количество сайтов и материалов, доступных для просмотра в ForkPlayer.
    Список проверенных плагинов
    Установка:
    Чтобы установить плагин, достаточно добавить его файл в папку Plugins рядом с программой и включить в настройках (или контекстном меню иконки в трее). Все плагины по умолчанию выключены, так же обновленные плагины (проверка по хешу файла) будут выключены — сделано это в целях безопасности. Не рекомендуется скачивать и активировать непроверенные плагины, т.к. они потенциально могут быть использованы во вред.
    Создание плагинов и описание их структуры
    Дополнительно:
    При создании плагинов, я рассчитывал на создание у пользователей возможности повлиять и помочь развитию проекта ForkPlayer. Поэтому буду рад активному участию в развитии данной темы и направления.

    #5222

    fd_crash
    Модератор

    Список плагинов:

    #5223

    fd_crash
    Модератор

    Описание структуры плагинов.
    Плагин представляет собой файл скрипта на языке C#. Сейчас используется нативные методу рантайм-компиляции, но возможно будет переход к систему CS-Script. В скрипте можно использовать любые методы и типы из библиотек System.dll и System.Core.dll. Загрузка дополнительных библиотек для плагина пока что не предусмотрена.
    В качестве шаблона можно использовать плагин Seasonvar (скрипт).
    По структуре скрипта и его взаимосвязи с RemoteFork:
    namespace RemoteFork.Plugins — стандартное пространство имен, менять, в принципе, незачем =)
    PluginAttribute — атрибут класса, использующийся для идентификации и описания.

      Id — уникальный идентификатор плагина — не должен совпадать с другими плагинами, иначе RemoteFork не сможет их различать и запускать нужный;
      Version — версия плагина;
      Author — автор;
      Name — название, отображаемое в ForkPlayer;
      Description — описание. Пока не используется, но это может измениться;
      ImageLink — ссылку на изображение (логотип), так же пока не используется.

    using RemoteFork.Network — в данном пространстве имен находится класс HttpUtility (static), содержащий два метода: GetRequest и PostRequest.

      string GetRequest(string link, Dictionary<string, string> header = null) — возвращает результат запроса или ошибку, возникшую при его обработке. По умолчанию пытается добавить свой user-agent, если тот не указан в параметре header.

        link — полный адрес запроса;
        header — параметры заголовка запроса.

      string PostRequest(string link, Dictionary<string, string> data, Dictionary<string, string> header = null) — выполняет запрос с параметрами, принцип схож с GetRequest.

        data — параметры запроса.

    BaseItem[] GetList(string path = «») — главный метод обработки запросов. Должен возвращать массив объектов BaseItem[], которые будут преобразованы в плейлист.

      Name — название пункта;
      Link — ссылка (если директория, то ссылка передается на обработку плагину, если файл, то ссылка открывается в проигрывателе);
      ImageLink — иконка (логотип);
      Description — описание, поддерживает HTML формат;
      Type — тип сущности: ItemType.DIRECTORY (по умолчанию) или ItemType.FILE.

    Logger — класс для логирование поведения. Список поддерживаемых методов:

      void Info(string message) — записывает сообщение в файл;
      void Info(string format, params object[] args) — записывает сообщение по шаблону (используется string.Format)
      Дальше по аналогии, отличаются только уровни логов.
      void Error(string message)
      void Error(string format, params object[] args)
      void Debug(string message)
      void Debug(string format, params object[] args)

    Уровень логирования переключается в настройках RemoteFork. Все данные записываются в файл log.txt (файл ограничен размером в 10МБ, затем создается новый файл, а старый переименовывается исходя из даты и в времени)

    #5224

    ange.0.0.7
    Участник

    Не смотрел как работает плагин, и программа в целом.
    Но мельком проглянул скрипт — на сколько я понял из программы вызываются непосредственно функции: GetRootListRequest/GetFilteringListRequest/NextPage/GetSerialListRequest и т.д.? То-есть они обязаны быть?
    Если так — то не плохо было-бы сделать именно такую заготовку — где только НУЖНЫЕ функции/переменные/поля.

    Ну и раз используются скрипты — было бы логично наверно добавить возможность «считывать» скрипт по ссылке.
    Например чтоб при запуске программы считывать новую версию плагина с gist.github/pastebin/сервера разработчика.

    И ещё — где и как лучше «дебажить» и проверять скрипт, если я раньше не разрабатывал на C#?
    Нужно компилировать и запускать сразу программу и скрипт, или же есть какой-то другой способ?

    #5227

    fd_crash
    Модератор

    Обязательным является только метод GetList и аттрибут класса.Все остальные методы создаются на усмотрение разработчика.
    Не делал автообновление в целях безопасности (плагины по умолчанию выключены тоже по этой же причине) — это всё же С#, на котором можно написать что-нибудь нежелательное. Хотел запустить всё это дело в песочнице, но пока отложил эту затею.
    Для отладки необходим только скрипт и RemoteFork. Ничего компилировать не нужно. Расставили Logger.Debug (или аналогичный метод) в ключевых местах, перезапустили RemoteFork, включили соответствующий уровень логирования в настройках, включили плагин в настройках (опять же, включать придется после каждой правки скрипта), и запускайте плагин в ForkPlayer (можно и в браузере по запросам работать, будет что-то вроде http://192.168.1.101:8027/treeview?pluginseasonvar;eng\\.xml).
    Сам код скрипта можно писать в любой среде, поддерживающей .NET синтаксис (например Visual Studio Code), Компилировать ничего не придется, поэтому тут нет никаких требований.

    #5233

    forkplayer
    Участник

    логи может сделать чтоб по кнопке отображались в окошке с автоматической прокруткой
    Notepad++ очень удобен еще редактирования

    ForkPlayer Wiki http://wiki.forkplayer.tv/

    #5313

    fd_crash
    Модератор

    Для логов в том же Notepad++ есть Document Monitor.

    #5316

    ange.0.0.7
    Участник

    Не делал автообновление в целях безопасности (плагины по умолчанию выключены тоже по этой же причине) — это всё же С#, на котором можно написать что-нибудь нежелательное. Хотел запустить всё это дело в песочнице, но пока отложил эту затею.

    Ну тут можно сделать так — отметку «доверенный» для плагина (плагин то сам не изменит ссылку по которой он будет обновляться), а если уж автор вдруг стал «плохим», то ничего не поделаешь. Ведь каждый новый билд плагина никто не будет проверять.

    #5319

    Cynep-Mapuo
    Участник

    fd_crash
    Все же «ошибка парсинга» на некоторых медиа проскакивает.
    К примеру сериал «Кухня» 2,3,4,5 сезоны

    #5321

    fd_crash
    Модератор

    К примеру сериал «Кухня» 2,3,4,5 сезоны

    У меня и на сайте эти сезоны не работают.

    Ну тут можно сделать так — отметку «доверенный» для плагина (плагин то сам не изменит ссылку по которой он будет обновляться), а если уж автор вдруг стал «плохим», то ничего не поделаешь. Ведь каждый новый билд плагина никто не будет проверять.

    Когда это действительно станет проблемой, то придумаем оптимальную схему обновлений. Для начала не плохо было, чтобы плагины вообще начали появляться =)

    #5326

    Cynep-Mapuo
    Участник

    Может для плагинов использовать, хостинг типа:
    https://www.mediafire.com

    #5548

    zon2004
    Участник

    Приветствую разработчиков и выражаю Вам благодарность за разработку сей продукта. Очень удобно и практично. Возник у меня вопрос, наткнулся на проект movian. У него есть свои плагины и да воли интересный для меня movian-rutracker. Никогда не программировал и пытался его интуитивно переделать под .cs но ничего не заработало. Вообще он работать может Forke или нет?

    #5552

    forkplayer
    Участник

    Вообще он работать может Forke или нет?

    .
    теоретически торренты можно сделать

    ForkPlayer Wiki http://wiki.forkplayer.tv/

    #5633

    Cynep-Mapuo
    Участник

    «теоретически торренты можно сделать»

    Плагины для торрентов , с использованием Ace Stream, было бы круто.

    #5762

    Cynep-Mapuo
    Участник

    Есть ли еще плагины в разработке?

    #5768

    fd_crash
    Модератор

    Есть ли еще плагины в разработке?

    Планы есть, но поддержка торрентов не первая в списке.

    #6146

    fd_crash
    Модератор

    Новый плагин для сайта CarambaTV

    CarambaTV v0.1 | Скачать | История версий

    #6159

    kangarov
    Участник

    Все работает.Спасибо.

    #16162

    rincew1nd
    Участник

    Есть ли в планах добавление библиотеки HtmlAgilityPack для плагинов (Web crawler/grabber)?
    Очень бы хотелось парсить html страницу подобающими средствами (xpath), а не regex’ами.

    #16178

    fd_crash
    Модератор

    Эта система плагинов больше не поддерживается. Сейчас я работаю на кроссплатформенной версией программы, там плагины будут устроенны по другому. Ознакомиться можете тут.
    В новой версии к плагинам можете подключать любую библиотеку, поддерживающую net core 2.0

Просмотр 20 сообщений - с 1 по 20 (из 20 всего)

Для ответа в этой теме необходимо авторизоваться.