Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93

Работас плагинами и их реализация

13.11.2013, 00:58. Показов 1047. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Есть идея и начальные наработки программы-загрузчика контента. Суть такая:
Программа предназначена для массового скачивания контента с интернет-ресурсов. Например с idaprikol.ru, youtube.com и т.д.
Сама по себе она представляет некий контейнер для обработки плагинов, с помощью которых описываются правила скачивания (URL ресурса, тип контента, регулярка для нахождения его в коде страницы, авторизация если нужно и т.п.).

Собственно у меня вопрос касаемо структуры плагинов и их обработки. Планируется сделать так, чтобы конечный пользователь смог сам себе написать нужные плагины. Изначально хотел использовать dll для плагинов, но пришел к выводу, что далеко не каждый сможет написать dll даже имея подробное описание интерфейсов работы программы. Да и скомпилировать не каждый может.
Теперь вот думаю насчет XML или INI-файлов. Если кто-то сталкивался с подобными проектами - подскажите, пожалуйста, чтобы не изобретать велосипед. Может исходники завалялись у кого. Дайте кому не жалко.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2013, 00:58
Ответы с готовыми решениями:

работа с плагинами
Всем привет. Скажите плиз как отобразить виджеты плагинов в шаблоне, который сам создал.Плагины активированы но я не знаю как их...

Работа с плагинами программы
Пишу программу с поддержкой плагинов. Нужно как-то в метод Run(объект_формы) плагину передать объект главной формы приложения, чтобы при...

Как взаимодействовать с плагинами
Подскажите как вообще это реализовывается. Как писать программу, чтобы потом она умела работать с плагинами? Ничего не нашёл конкретного.

8
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
13.11.2013, 07:27
Есть 2 мысли по поводу.

1) XML или ini - это либо подойдёт только для простейших случаев, либо сильно усложнит ваш код и сильно усложнит для пользователя конфигурирование - по сути вам придётся написать язык макросов для настройки и юзер оборвёт телефон техподдержки.

2) Не каждый сможет скомпилировать. Но каждому и не надо. Есть дяди, которые платят за работу, а есть дяди, которым платят за работу. Сделайте сами несколько плагинов для самых распространённых движков целевых сайтов и пусть юзер конфигурит их регулярками. И оставьте открытый интерфейс для того, чтобы другие разработчики могли писать свои плагины. И откройте магазинчик по продаже своих плагинов к вашей программе.
0
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
13.11.2013, 18:17  [ТС]
Спасибо за совет. Подумаю над магазинчиком на досуге. Пока не планировал это дело монетизировать. Теперь что касается языка макросов. Думаю не понадобится его писать. Планирую остановиться на XML, а выглядеть это будет примерно так:
Примерное содержимое плагина
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8" ?>
<plugin>
<!--Контакты автора-->
<author>author@email.ru Author Name</author>
<!--URL ресурса-->
<url>http://idaprikol.ru/f</url>
<!--Тип контента-->
<type>IMAGE</type>
<!--Регулярка-->
<regexp>@"link rel=""image_src"" href=""([^\S\\>]*)"""</regexp>
<!--Нужна ли авторизация перед загрузкой (значения 0 или 1)-->
<use_auth>0</use_auth>
<!--Если авторизация нужна, то используем данные в следующих трех тегах-->
<auth>
    <login>login</login>
    <pass>qwerty</pass>
    <auth_url>http://site.ru/auth.php</auth_url>
</auth>
</plugin>
Вот пока для примера так. Нужно еще учесть массу моментов разных, но пока не придумал каких именно. Что думаете о такой организации плагинов?
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
13.11.2013, 18:41
У нас с вами разное понятие плагинов.

В моём понимании плагин это расширение приложения добавляемое динамически. Короче говоря он увеличивает функционал приложения.

Вы же представили в xml файле обычные настройки. Что и где брать.
0
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
13.11.2013, 20:24  [ТС]
У Вас правильное понимание термина плагин. Просто я невнятно видимо объяснил.

Например в программе есть пункт меню "Плагины". Он представляет из себя список, который раскрывается при наведении мыши и заполняется динамически, в зависимости от количества правильно оформленных файлов-плагинов в папке plugins. Выбираем в списке нужный нам плагин и на основе данных, заложенных в нем, строим форму для загрузки. Выбираем некоторые настройки, которых нет в самом плагине, например количество фотографий для загрузки за один раз, использовать ли прокси и т. д. И в конце жмем "Загрузить". После выполнения задачи выбираем другой плагин и снова на его основе строим форму и т. д.

Возможно это не совсем плагины, но для данного проекта такая логика работы самое то.
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
13.11.2013, 22:49
Цитата Сообщение от yarkov_aleksei Посмотреть сообщение
Вот пока для примера так. Нужно еще учесть массу моментов разных, но пока не придумал каких именно. Что думаете о такой организации плагинов?
Думаю, что это подойдёт только для простейших случаев. Думаю, с этого можно начать.

А вот что будет потом.
Если надо будет выпарсивать состав полей html таблиц для составления регулярки, как это указать в xml ? Придётся указать какой алгоритм использовать и его параметризовать. Потом всё равно станет понятно, что каждому движку свой парсер со своими настройками.
Многие движки сайтов принимают меры к тому, чтобы статической регуляркой их было неспарсить.
Попарсьте побольше сайтов и вы выявите группы сайтов со сходными способами формирования страниц.
Некоторые из них вообще очень хитрые. Поковыряйте zakupki.gov.ru - намного веселее станет. Его только через DOM можно анализировать.
0
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
13.11.2013, 23:34  [ТС]
Цитата Сообщение от ksk Посмотреть сообщение
Если надо будет выпарсивать состав полей html таблиц для составления регулярки, как это указать в xml ? Придётся указать какой алгоритм использовать и его параметризовать. Потом всё равно станет понятно, что каждому движку свой парсер со своими настройками.
Многие движки сайтов принимают меры к тому, чтобы статической регуляркой их было неспарсить.
Спасибо за то, что ткнули носом, так сказать. Значит все-таки dll, а уже оттуда вызывать функцию парсера со своим алгоритмом для каждого ресурса. Мда... Хотелось попроще как-то сделать. Ладно, ушел писать план действий.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.11.2013, 11:11
ksk, хз, я писал запросы к zakupki.gov.ru, все работало неплохо По крайней мере post и soap-запросы при наличии нужных wsdl/сертификатов спокойно работали. Только я все равно не понял, что там такого страшного - страничка как страничка

yarkov_aleksei, зачем изобретать велосипед, когда есть MEF?
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
14.11.2013, 11:31
Ну, её кликать надо, чтоб контент появился.
причём не по кнопкам и хрефам, а по гифкам.
а чтобы доку загрузить - клик по гифку, ловля окна с надписью "филесавеаз", вставка пути для записи файла, клик по кнопке "сохранить".

Правда мы без сертификата работали, чисто юзера изображали. 2009 год был, может щас и по другому.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2013, 11:31
Помогаю со студенческими работами здесь

Обмен между плагинами
Добрый вечер. Создаю плагинное приложение. На входе-битовый файл, из файла 1-й плагин извлекает по очереди байтовые буферы. Ети буферы...

Работа с плагинами через интерфейс
В общем я сподвигся на такое Есть интерфейс public interface IPlugin { string PluginName { get; } // имя плагина...

Программа управления плагинами (концепция)
Давно хотел реализовать такую программу, и наверное созрел. По общению с некоторыми форумчанами (например Элд Хасп) понимаю что мой подход...

Запуск приложения Qt с плагинами на OS Android
Приветствую форумчан! Столкнулся с такой проблемой, написал программу на Qt, которая при старте подгружает плагины, если запускаю на ПК...

Исключение при работе с плагинами
Вернулся к старому. Когда пересоздал проект с плагинами, не подгружаются плагины из папки. Ошибка string pluginFiles =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru