Модуль:External data/new

multitask

task

Синтаксис:

{{#invoke:Модуль:External data/new|task
    | url = https://example.org
    | task = тексты автора
    | context = издание
    | (format string for data row)
    | header = (format string for header)
    | footer = (format string for footer)
    | default = (format string to replace empty result set)
    | header template = (template for header)
    | footer template = (template for footer)
    | default template = (template to replace empty result set)
}}

Примеры

Wikicode Result
{{#invoke:External data/new|task
    | context = АПН
    | task = тексты автора
    | url = https://www.apn.ru/index.php?do=authors&author=637
    | {{!}}-
{{!}} [{{{ссылка на текст}}} {{{название текста}}}] {{!}}{{!}} {{{дата публикации}}}
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Без Крылова 16 май 2020, 08:40
Стать героем 20 апрель 2019, 19:53
Из огня да в полымя 05 сентябрь 2017, 02:55
Украинский кризис: возможности и угрозы для российского бизнеса 24 июль 2014, 13:04
Акела промахнулся 07 март 2014, 12:31
Мы 31 май 2012, 12:58
Чего ждать от Путина? 20 март 2012, 20:37
Рви день 26 декабрь 2011, 13:02
Уроки Августа 23 август 2010, 13:09
Чем грозят предстоящие соборы? 27 январь 2009, 13:09
Жертвоприношение 24 июнь 2008, 12:56
Женитьба Путина, или Презумпция виновности 20 май 2008, 13:39
Помогут ли русским мародёры? 13 май 2008, 13:32
J'interroge 18 февраль 2008, 11:48
Национализм и империализм: прообраз политического будущего России 11 февраль 2008, 20:10

Источник: https://www.apn.ru/index.php?cstart=2&do=authors&author=637. 29 ноября 2024

{{#invoke:External data/new|task
    | context = Globalrus
    | task = тексты автора
    | url = http://www.globalrus.ru/author/56614/
    | {{!}}-
{{!}} [{{{ссылка на текст}}} {{{название текста}}}] {{!}}{{!}} {{{дата публикации}}}
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
[/comments/122504/ Take it easy, mr. Bush]
[/comments/120627/ Небольшие недоразумения между друзьями]
[/comments/119207/ Проза о паспорте]
[/comments/118421/ Неслиянные и нераздельные]
[/comments/109075/ Атлант расправляет плечи]
[/comments/106995/ Расти большим]
[/comments/104481/ Некрополитика]
[/comments/100362/ Вместо аплодисментов]
[/comments/98759/ После]
[/comments/94800/ Алле, это прачечная?]
[/comments/93419/ Рационализация]
[/all_actions/child/90901/ Демографическая трагедия]
[/comments/87132/ Нас решили держать в прихожей]
[/comments/86640/ В пролете]
[/comments/84400/ В Киеве мазохистов больше, чем садистов]
[/comments/83152/ Молчание Шеварднадзе]
[/all_discussions/georgia/83521/ Молчание Шеварднадзе]
[/comments/82011/ Потеря лица]
[/comments/80922/ Размышления о российском паспорте]
[/comments/78440/ Шаймиев толкает Россию к созданию унитарного государства]
[/comments/76949/ В следующем году в Киеве]
[/comments/75180/ Первый звонок]
[/opinions/74197/ Последние вопросы


] ||

[/all_discussions/georgia/73719/ О предполагаемой склонности Сергея Иванова к бессмысленному злодейству]
[/comments/72506/ Молча и стиснув зубы]
[/all_discussions/georgia/73734/ Слуга двух господ]
[/comments/71005/ Слуга двух господ]
[/comments/69659/ День гнева]
[/all_discussions/extr/67985/ Несколько слов в защиту Сорокина]
[/comments/68030/ Несколько слов в защиту Сорокина]
[/comments/67046/ Акела промахнулся]
[/all_discussions/extr/66589/ Прокаженные]
[/comments/66216/ Слова и вещи]
[/all_discussions/extr/63351/ Художника обидеть может каждый]
[/comments/61986/ Назло надменному соседу]
[/all_actions/child/59598/ Демографический кризис как праздник непослушания]
[/all_discussions/piter/57624/ S/R]
[/all_actions/amnesty/56614/ Знайки и буратины]

Источник: http://www.globalrus.ru/author/56614/. 29 ноября 2024

{{#invoke:External data/new|task
    | context = Русская!dea
    | task = тексты автора
    | url = https://politconservatism.ru/author/krylov
    | {{!}}-
{{!}} [{{{ссылка на текст}}} {{{название текста}}}] {{!}}{{!}} {{{дата публикации}}}
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Генерал золотого карьера (часть 3) {{{дата публикации}}}
Всё хорошо, прекрасная маркиза {{{дата публикации}}}
Генерал золотого карьера: Ли Куан Ю и его государство. Часть вторая {{{дата публикации}}}
Генерал золотого карьера: Ли Куан Ю и его государство {{{дата публикации}}}
Уроки Трампа {{{дата публикации}}}
Отвлекающий маневр {{{дата публикации}}}
«Контрреформация»: предыстория и послесловие {{{дата публикации}}}
Жизнь Ивана Ильина. Часть третья {{{дата публикации}}}
Жизнь Ивана Ильина. Часть вторая {{{дата публикации}}}
Жизнь Ивана Ильина {{{дата публикации}}}

Источник: https://politconservatism.ru/author/krylov. 29 ноября 2024

{{#invoke:External data/new|task
    | context = Русская жизнь
    | task = тексты автора
    | url = https://web.archive.org/web/20221130095513/http://rulife.ru/old/name/author/39/
    | {{!}}-
{{!}} [{{{ссылка на текст}}} {{{название текста}}}] {{!}}{{!}}
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Кассандра
Умереть, погибнуть, издохнуть
Виноватые
Швайнехунд
Альфа-самцы
Том второй
Происхождение
Духовка
Мужик
День за днем
Долбаки
Достаточные люди
«М» и «Ж»
Что от нас останется
Девяносто третий год
Быдло
Москаль
С большой буквы и маленькой
Конец вашего лета
Хотим длиннее
Сам себе раб
В завязке
Непристойность
Не досталось им даже по пуле
Умняк
Самодуры
Уехать из Мариуполя
Русский дурдом
Идея Европы
Арион
Обезжиренные
Барды
Опыт о роскоши
Трактат о том, кто сверху
Пожилые
Место, обделенное жизнью
Добезцаря
Советское жилье
Еда в незнаемое
Хозяйничающий субъект
Дней наших семьдесят лет
Обсосанный лимон
Мертвая вода

Источник: https://web.archive.org/web/20221130095513/http://rulife.ru/old/name/author/39/. 29 ноября 2024

{{#invoke:External data/new|task
    | context = Русский Обозреватель
    | task = тексты автора
    | url = https://web.archive.org/web/20221210015711/http://www.rus-obr.ru/users/konstantin-krylov
    | {{!}}-
{{!}} [{{{ссылка на текст}}} {{{название текста}}}] {{!}}{{!}} {{{дата публикации}}}
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Моноспектакль "Разговор по душам" 14.04.2016
Цвет 90-х 20.09.2015
И снова про украинство 09.09.2015
Вышиванка и косоворотка 07.09.2015
О Ксюше и туше 28.08.2015
Настоящий памятник Ленину 21.08.2015
Из вопрошальника 16.08.2015
Мы сожжем еду, а вам не дадим 04.08.2015
Гарри Поттер и тайная педагогика 30.07.2015
О сбыче мечт 13.07.2015
Про Грецию, если кому интересно 09.07.2015
Из фейсбука правильной девушки 01.07.2015
Оруэлл и национализм 26.06.2015
Принцип шиболета 22.06.2015
2 мая - день рождения украинской нации 03.05.2015
Олесь Бузина. Убийства в Киеве продолжаются 16.04.2015
Самарский Гражданский форум. Впечатления. Часть первая 12.04.2015
Русские-это слон, сидящий в клетке 01.04.2015
Про математику и Русский Мир 01.04.2015
Грузия сегодня 09.12.2014
Разница между русскими и украинцами 05.12.2014
Ополчение 29.11.2014
Мой крымнаш. Мемуар 26.11.2014
Россия и Запад 24.11.2014
Банальное. Как ругают свою страну патриот и антипатриот 13.11.2014
Время любить Беларусь 11.11.2014
Русский Марш-2014 06.11.2014
Украинство как банальный расизм 03.11.2014
Наши капитулянты. 1 20.10.2014
Чебурашливое 04.10.2014
О жовтоблакитности 26.09.2014
Из старенького 21.09.2014
Немного об интервью Стрелкова 13.09.2014
Об освобождениях и освободителях 11.09.2014
Солдатские женщины 04.09.2014
Украинцы на каше 20.08.2014
Зачем США вырабатывают украинскую армию? 19.08.2014
Крым за деликатесы? 11.08.2014
Российско-украинские отношения 06.08.2014
31 июля проходила информация о регистрации НДП 02.08.2014
Национально -Демократическая Партия зарегистрирована 31.07.2014
На смерть соратника 20.07.2014
Почему некоторые писатели становятся политиками? 14.07.2014
О занудах 12.07.2014
Интеллектуал и народ 30.06.2014
"Это ничего не меняет" 21.06.2014
От улыбки хмурый день светлей 16.06.2014
О языке-2 16.06.2014
Смена информационной повестки 10.06.2014
О политике СУПа 08.06.2014
Константин Крылов: Америка — это такой большой пес, который может обо***ть весь земной шар 03.06.2014
Депортация как древний оплот украинства 26.05.2014
Блюстители незалэжности 25.05.2014
НДП. В Москве организован пункт сбора гуманитарной помощи для Юго-Востока 20.05.2014
У них - Скрипка, у нас - Макаревич. "Делайте выводы" 17.05.2014
Удивительно, как украинская политика меняет людей 16.05.2014
Мы сделали это 14.05.2014
Ничего не изменилось: украинская идея в 2010 году 11.05.2014
Прежде и теперь 10.05.2014
Русские не простят ликующих убийц 05.05.2014
Братский народы - разговоры в пользу нерусских 01.05.2014
Митинг 1 мая. Что там будет 30.04.2014
"Я человек завистливый. Но тут завидовать нечему" (с) 26.04.2014
Русская Весна в Москве! Первомайский митинг в поддержку русских на Украине и в России 22.04.2014
О самоорганизации 11.04.2014
Об использовании украинского языка в диалогах с русскоязычными 09.04.2014
Послание к Украинцам и приравненным к ним лицам (в вежливой и предельно доступной форме) 07.04.2014
Путин начал татаризацию Крыма. Захват Меджлисом Бахчисарайского Заповедника 04.04.2014
Разжалование либеральной оппозиции: взгляд со стороны 27.03.2014
Еще раз о Крымском вопросе 26.03.2014
Культурно-лингвистическое разрешение крымского вопроса 23.03.2014
Севастополь - русский город. Отлично. А Москва? 20.03.2014
Константин Крылов: Братья 17.03.2014
Про Путинский режим 13.03.2014
Украине нужно было переходить на латиницу 10.03.2014
Для чего нужны политики-пацифисты 07.03.2014
Крымские хроники: в НДП-СПб прошла встреча по итогам посещения Крыма 06.03.2014
О ввведении российских миротворческих сил в Россию 06.03.2014
О позиции по украинскому вопросу 04.03.2014
Официальное обращение НДП в связи с ситуацией на Украине 24.02.2014
Я бы с обид начинать не стал 21.02.2014
Ювелирная работа - выкручивать горелочки 19.02.2014
Русские националисты не хотят ничьей крови 29.01.2014
Из трёх славянских стран наиболее готова «в Европу» Белоруссия 25.01.2014
Единственное отличие Майдана от Болотной 22.01.2014
Вечный спор принадлежность к нации определяется "биологией" или "культурой" 19.01.2014
Эти люди никого не убили и бегут не на погром... 13.01.2014
Меня восхищает этот всепоглощающий интерес к крови предков 10.01.2014
По следам одного опроса. Кто такой "интеллектуал" в современной России? 09.01.2014
Миссианическое 03.01.2014
Евромайдан. Где то мы все это уже видели. 23.12.2013
Типовой разговор с либералом 20.12.2013
Украина - как содержанка 18.12.2013
"Сталинград" Бондарчука. Впечатления. 4 14.12.2013
"Сталинград" Бондарчука. Впечатления. 3 13.12.2013
"Сталинград" Бондарчука. Впечатления. 2 13.12.2013
"Сталинград" Бондарчука. Впечатления. 1 12.12.2013
Возвращение украденного 01.12.2013
Весёлые картинки 17.11.2013
Для тех, кто с нами: Москва 03.11.2013
Современное искусство – это искусство оскорблять чувства. 03.11.2013
Обращение ЦК НДП в связи с событиями в Волгограде 22.10.2013
Круглый стол русских национальных организаций 14.10.2013
Заявление ЦК НДП по поводу событий в Бирюлёво, связанных с убийством Егора Щербакова 13.10.2013
Россияне и русские 07.10.2013
Академическая прогулка 17 сентября 17.09.2013
О хороших и плохих народах 24.08.2013
Наброски к теме: Юрий Гагарин как политическая фигура 14.04.2013
Крайне банальное. О политических контактах 08.03.2013
Несколько слов на лестнице о Странных Моделях 29.01.2013
Официальное. Съезд НДП 06.09.2012
«В нормальной стране займемся гладиолусами» 24.08.2012
О речах губернатора Ткачёва 04.08.2012
Вести с полей 28.07.2012
Вышел из печати и поступил в продажу десятый номер "Вопросов Национализма" 25.07.2012
Круглый стол в "Особой букве" 29.06.2012
Банальное, чтобы не забывали 26.06.2012
По делу Белоусова 22.06.2012
Терминологическое. "Националисты" и "национальные организации" 22.06.2012
12 июня. Приглашаем в колонну национал-демократов! 04.06.2012
Банальное. "Почему на этом вашем хвалёном Западе не могут победить чёрную преступность?" 28.05.2012
А вы говорите - Стабфонд, Стабфонд 18.05.2012
Сеем разумное паки и паки 14.05.2012
Остановим неоколониализм в Сибири и на Дальнем Востоке! Обращение НДП 05.05.2012
Национально-Демократическая Партия в Калининграде 30.04.2012
Русские не нужны Российскому государству 28.04.2012
Помилован Сергей Мохнаткин 24.04.2012
Сергей Аракчеев в программе "Момент истины" 22.04.2012
Объявление. Русские прогулки 19.04.2012
Честный понедельник: Константин Крылов 30.03.2012
Первый шаг 25.03.2012
Официальное. Запись на открытое заседание оргкомитета Российской Национально -Демократической Партии 20.03.2012
Об оскорблении святынь 16.03.2012
Методы инквизиции – верх правового сознания по сравнению с методами отдела «Э» 15.03.2012
Националисты не покинули протестное движение 11.03.2012
К теме сакральных жертв 03.03.2012
"Только приватизация, только хардкор" 26.02.2012
О нацдемстве и национал-демократии 24.02.2012
Национал-демократия или извращённое имперство? 20.02.2012
Пора начать борьбу за власть 17.02.2012
Убийца должен сидеть! 13.02.2012
Казус Белова будет значимым фактором дискуссий о свободе слова в России 06.02.2012
Поддерживать такую власть нет оснований 01.02.2012
Торжественным тоном. "Говорю от себя, но за всех" 18.12.2011
А теперь прогони козла (с) 28.11.2011
С содержимым обвинения ознакомлен и смысла его не понял 14.11.2011
Праздник мне таки испортили 04.11.2011
О двух стульях 26.10.2011
В требовании хватит кормить Кавказ нет никакой ксенофобии 29.09.2011
К вопросу о "старом узбеке" 22.09.2011
Об Ураза-Байраме и "нехватке мечетей" 31.08.2011
Удар по харизме 25.08.2011
Чеченский боевик получил на 3 года меньше, чем Евгения Хасис 06.05.2011
Запрет ДПНИ приведет к радикализации русского национального движения 18.04.2011
Русские: «Увольте нас от такой России!» 08.04.2011
Ну пожалуйста, победите же нас, наконец! 14.03.2011
Вредная работа 06.03.2011
Социальная сеть. Русский стиль 16.12.2010
Перепись с казачком 13.10.2010
Мечеть в Текстильщиках может стать «горячей точкой» 24.09.2010
Никогда не разговаривайте без адвоката 14.09.2010
Бабушка-Европа держит инородцев под контролем 20.08.2010
Борис Громов – современная Мария-Антуанетта 02.07.2010
Владимир Николаевич Ширяев. Сгорел образцовый патриот 25.06.2010
Чеченская гордость. Хозяева над хозяевами? 16.06.2010
«Лидеров надо гасить, овцы сами разбредутся» 24.05.2010
Ксюша Собчак вынуждена страдать в Москве, ведь тут бабло 12.05.2010
Без сопромата 19.04.2010
«Вопросы национализма» — журнал для интеллектуалов 15.04.2010
В Параде победы обязательно должны принять участие сербы 07.04.2010
Надписи на стенах метро может сменить кровь 05.04.2010
Машина порядка в Америке работает, поэтому они усыновляют наших детей 03.03.2010
Отменить прописку сейчас — все равно, что отменить хлебные карточки в 42-м году 02.02.2010
Егор Тимуровича ждет Лаврентий Палыч Берия 16.12.2009
Кто не взрывал «Невский экспресс»: осторожные версии 30.11.2009
Лично от меня: об убийстве священника Даниила Сысоева 20.11.2009
Приговор «Черным ястребам» неудовлетворителен 08.10.2009
Об одном распространённом аргументе против русского национализма 13.04.2009
Взрыв памятника Ленину: кому это выгодно? 02.04.2009
К вопросу о поисках черной кошки в темной комнате 12.03.2009
Бедность как порок 11.03.2009
Не имейте дел с крокодилами, если вы сами не крокодил 20.01.2009
Освобождение Буданова - гуманный жест 26.12.2008
Семнадцать ответов о русском национализме 12.12.2008
Миграция: простые ответы на трудные вопросы 02.12.2008
Ну а что вы хотели? 19.11.2008
Никарагуа - не смешно 05.09.2008
Пора завязывать с "выгодной слабостью" 29.08.2008
Право на отчество 25.08.2008
Неподача Ходорковским прошения была бы знаковой 17.07.2008
Больше света 11.07.2008
О необходимости политического урегулирования вокруг Чечни 03.07.2008
У нас просто выровнялись шансы 01.07.2008

Источник: https://web.archive.org/web/20221210015711/http://www.rus-obr.ru/users/konstantin-krylov. 29 ноября 2024

continued

Синтаксис:

{{#invoke:Модуль:External data/new|continued
    | url = https://example.org
    | __next = field code (XPath, CSS, etc.)
    | (format string for data row)
    | field1 = (field code)
    ...
    | fieldn = (field code)
    | header = (format string for header)
    | footer = (format string for footer)
    | default = (format string to replace empty result set)
    | header template = (template for header)
    | footer template = (template for footer)
    | default template = (template to replace empty result set)
}}

Примеры

Wikicode Result
{{#invoke:External data/new|continued
    | url = https://www.apn.ru/index.php?do=authors&author=637
    | __encoding = windows-1251
    | __next = div#navi>em.bbcodes>a.attr(href)
    | {{!}}-
{{!}} [{{{div.left_cell>h2>a.attr(href)}}} {{{div.left_cell>h2>a}}}] {{!}}{{!}} {{{div.left_cell>ul>li:nth-of-type(2)}}}
    | __time = __time
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Без Крылова 16 май 2020, 08:40
Стать героем 20 апрель 2019, 19:53
[https://www.apn.ru/index.php?newsid=36623 �з огня да в полымя] 05 сентябрь 2017, 02:55
Украинский РєСЂРёР·РёСЃ: возможности РёВ СѓРіСЂРѕР·С‹ РґР»СЏВ СЂРѕСЃСЃРёР№СЃРєРѕРіРѕ бизнеса 24 июль 2014, 13:04
Акела промахнулся 07 март 2014, 12:31
Мы 31 май 2012, 12:58
Чего ждать от Путина? 20 март 2012, 20:37
Рви день 26 декабрь 2011, 13:02
Уроки Августа 23 август 2010, 13:09
Чем грозят предстоящие соборы? 27 январь 2009, 13:09
Жертвоприношение 24 июнь 2008, 12:56
Женитьба Путина, или Презумпция виновности 20 май 2008, 13:39
Помогут ли русским мародёры? 13 май 2008, 13:32
J'interroge 18 февраль 2008, 11:48
Национализм и империализм: прообраз политического будущего России 11 февраль 2008, 20:10

Источник: https://www.apn.ru/index.php?cstart=2&do=authors&author=637. 29 ноября 2024

{{#invoke:External data/new|continued
    | url = http://www.globalrus.ru/author/56614/
    | __format = HTML with XPath
    | __next =
    | {{!}}-
{{!}} [{{{//span[@class="author"]/a[@class="anncHeader"]/@href}}} {{{//span[@class="author"]/a[@class="anncHeader"]}}}] {{!}}{{!}} {{{//span[@class="author"]/a[@class="anncHeader"]/preceding-sibling::text()[1]}}}
    | __time = __time
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
[/comments/122504/ Take it easy, mr. Bush]
[/comments/120627/ Небольшие недоразумения между друзьями]
[/comments/119207/ Проза о паспорте]
[/comments/118421/ Неслиянные и нераздельные]
[/comments/109075/ Атлант расправляет плечи]
[/comments/106995/ Расти большим]
[/comments/104481/ Некрополитика]
[/comments/100362/ Вместо аплодисментов]
[/comments/98759/ После]
[/comments/94800/ Алле, это прачечная?]
[/comments/93419/ Рационализация]
[/all_actions/child/90901/ Демографическая трагедия]
[/comments/87132/ Нас решили держать в прихожей]
[/comments/86640/ В пролете]
[/comments/84400/ В Киеве мазохистов больше, чем садистов]
[/comments/83152/ Молчание Шеварднадзе]
[/all_discussions/georgia/83521/ Молчание Шеварднадзе]
[/comments/82011/ Потеря лица]
[/comments/80922/ Размышления о российском паспорте]
[/comments/78440/ Шаймиев толкает Россию к созданию унитарного государства]
[/comments/76949/ В следующем году в Киеве]
[/comments/75180/ Первый звонок]
[/opinions/74197/ Последние вопросы


] ||

[/all_discussions/georgia/73719/ О предполагаемой склонности Сергея Иванова к бессмысленному злодейству]
[/comments/72506/ Молча и стиснув зубы]
[/all_discussions/georgia/73734/ Слуга двух господ]
[/comments/71005/ Слуга двух господ]
[/comments/69659/ День гнева]
[/all_discussions/extr/67985/ Несколько слов в защиту Сорокина]
[/comments/68030/ Несколько слов в защиту Сорокина]
[/comments/67046/ Акела промахнулся]
[/all_discussions/extr/66589/ Прокаженные]
[/comments/66216/ Слова и вещи]
[/all_discussions/extr/63351/ Художника обидеть может каждый]
[/comments/61986/ Назло надменному соседу]
[/all_actions/child/59598/ Демографический кризис как праздник непослушания]
[/all_discussions/piter/57624/ S/R]
[/all_actions/amnesty/56614/ Знайки и буратины]

Источник: http://www.globalrus.ru/author/56614/. 29 ноября 2024

{{#invoke:External data/new|continued
    | url = https://politconservatism.ru/author/krylov
    | __format = HTML with XPath
    | __next = /html/body/main/div/nav/div/a[@class="next page-numbers"]/@href
    | {{!}}-
{{!}} [{{{//h2/a/@href}}} {{{//h2/a}}}] {{!}}{{!}} {{{//li[@class="post-date meta-wrapper"]/span/a}}}
    | __time = __time
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Генерал золотого карьера (часть 3) {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Всё хорошо, прекрасная маркиза {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Генерал золотого карьера: Ли Куан Ю и его государство. Часть вторая {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Генерал золотого карьера: Ли Куан Ю и его государство {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Уроки Трампа {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Отвлекающий маневр {{{//li[@class="post-date meta-wrapper"]/span/a}}}
«Контрреформация»: предыстория и послесловие {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Жизнь Ивана Ильина. Часть третья {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Жизнь Ивана Ильина. Часть вторая {{{//li[@class="post-date meta-wrapper"]/span/a}}}
Жизнь Ивана Ильина {{{//li[@class="post-date meta-wrapper"]/span/a}}}

Источник: https://politconservatism.ru/author/krylov. 29 ноября 2024

{{#invoke:External data/new|continued
    | url = https://web.archive.org/web/20221130095513/http://rulife.ru/old/name/author/39/
    | __format = HTML with XPath
    | __next = /html/body/main/div/nav/div/a[@class="next page-numbers"]/@href
    | {{!}}-
{{!}} [{{{//a[@class="anons2"]/@href}}} {{{///a[@class="anons2"]}}}] {{!}}{{!}}
    | __time = __time
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Кассандра
Умереть, погибнуть, издохнуть
Виноватые
Швайнехунд
Альфа-самцы
Том второй
Происхождение
Духовка
Мужик
День за днем
Долбаки
Достаточные люди
«М» и «Ж»
Что от нас останется
Девяносто третий год
Быдло
Москаль
С большой буквы и маленькой
Конец вашего лета
Хотим длиннее
Сам себе раб
В завязке
Непристойность
Не досталось им даже по пуле
Умняк
Самодуры
Уехать из Мариуполя
Русский дурдом
Идея Европы
Арион
Обезжиренные
Барды
Опыт о роскоши
Трактат о том, кто сверху
Пожилые
Место, обделенное жизнью
Добезцаря
Советское жилье
Еда в незнаемое
Хозяйничающий субъект
Дней наших семьдесят лет
Обсосанный лимон
Мертвая вода

Источник: https://web.archive.org/web/20221130095513/http://rulife.ru/old/name/author/39/. 29 ноября 2024

{{#invoke:External data/new|continued
    | url = https://web.archive.org/web/20221210015711/http://www.rus-obr.ru/users/konstantin-krylov
    | __format = text
    | __regex = %<a\s+href\s*=\s*"/web/\d{14}/(?<href>[^"]+)"[^>]*>(?<date>\d\d\.\d\d\.\d\d\d\d)\s+-\s+(?<title>[^<]+)</a>%
    | {{!}}-
{{!}} [{{{href}}} {{{title}}}] {{!}}{{!}} {{{date}}}
    | __time = __time
    | header = {{{!}} class="wikitable"
! Заглавие !! Дата
    | footer template = External Data/footer
}}
Заглавие Дата
Моноспектакль "Разговор по душам" 14.04.2016
Цвет 90-х 20.09.2015
И снова про украинство 09.09.2015
Вышиванка и косоворотка 07.09.2015
О Ксюше и туше 28.08.2015
Настоящий памятник Ленину 21.08.2015
Из вопрошальника 16.08.2015
Мы сожжем еду, а вам не дадим 04.08.2015
Гарри Поттер и тайная педагогика 30.07.2015
О сбыче мечт 13.07.2015
Про Грецию, если кому интересно 09.07.2015
Из фейсбука правильной девушки 01.07.2015
Оруэлл и национализм 26.06.2015
Принцип шиболета 22.06.2015
2 мая - день рождения украинской нации 03.05.2015
Олесь Бузина. Убийства в Киеве продолжаются 16.04.2015
Самарский Гражданский форум. Впечатления. Часть первая 12.04.2015
Русские-это слон, сидящий в клетке 01.04.2015
Про математику и Русский Мир 01.04.2015
Грузия сегодня 09.12.2014
Разница между русскими и украинцами 05.12.2014
Ополчение 29.11.2014
Мой крымнаш. Мемуар 26.11.2014
Россия и Запад 24.11.2014
Банальное. Как ругают свою страну патриот и антипатриот 13.11.2014
Время любить Беларусь 11.11.2014
Русский Марш-2014 06.11.2014
Украинство как банальный расизм 03.11.2014
Наши капитулянты. 1 20.10.2014
Чебурашливое 04.10.2014
О жовтоблакитности 26.09.2014
Из старенького 21.09.2014
Немного об интервью Стрелкова 13.09.2014
Об освобождениях и освободителях 11.09.2014
Солдатские женщины 04.09.2014
Украинцы на каше 20.08.2014
Зачем США вырабатывают украинскую армию? 19.08.2014
Крым за деликатесы? 11.08.2014
Российско-украинские отношения 06.08.2014
31 июля проходила информация о регистрации НДП 02.08.2014
Национально -Демократическая Партия зарегистрирована 31.07.2014
На смерть соратника 20.07.2014
Почему некоторые писатели становятся политиками? 14.07.2014
О занудах 12.07.2014
Интеллектуал и народ 30.06.2014
"Это ничего не меняет" 21.06.2014
От улыбки хмурый день светлей 16.06.2014
О языке-2 16.06.2014
Смена информационной повестки 10.06.2014
О политике СУПа 08.06.2014
Константин Крылов: Америка — это такой большой пес, который может обо***ть весь земной шар 03.06.2014
Депортация как древний оплот украинства 26.05.2014
Блюстители незалэжности 25.05.2014
НДП. В Москве организован пункт сбора гуманитарной помощи для Юго-Востока 20.05.2014
У них - Скрипка, у нас - Макаревич. "Делайте выводы" 17.05.2014
Удивительно, как украинская политика меняет людей 16.05.2014
Мы сделали это 14.05.2014
Ничего не изменилось: украинская идея в 2010 году 11.05.2014
Прежде и теперь 10.05.2014
Русские не простят ликующих убийц 05.05.2014
Братский народы - разговоры в пользу нерусских 01.05.2014
Митинг 1 мая. Что там будет 30.04.2014
"Я человек завистливый. Но тут завидовать нечему" (с) 26.04.2014
Русская Весна в Москве! Первомайский митинг в поддержку русских на Украине и в России 22.04.2014
О самоорганизации 11.04.2014
Об использовании украинского языка в диалогах с русскоязычными 09.04.2014
Послание к Украинцам и приравненным к ним лицам (в вежливой и предельно доступной форме) 07.04.2014
Путин начал татаризацию Крыма. Захват Меджлисом Бахчисарайского Заповедника 04.04.2014
Разжалование либеральной оппозиции: взгляд со стороны 27.03.2014
Еще раз о Крымском вопросе 26.03.2014
Культурно-лингвистическое разрешение крымского вопроса 23.03.2014
Севастополь - русский город. Отлично. А Москва? 20.03.2014
Константин Крылов: Братья 17.03.2014
Про Путинский режим 13.03.2014
Украине нужно было переходить на латиницу 10.03.2014
Для чего нужны политики-пацифисты 07.03.2014
Крымские хроники: в НДП-СПб прошла встреча по итогам посещения Крыма 06.03.2014
О ввведении российских миротворческих сил в Россию 06.03.2014
О позиции по украинскому вопросу 04.03.2014
Официальное обращение НДП в связи с ситуацией на Украине 24.02.2014
Я бы с обид начинать не стал 21.02.2014
Ювелирная работа - выкручивать горелочки 19.02.2014
Русские националисты не хотят ничьей крови 29.01.2014
Из трёх славянских стран наиболее готова «в Европу» Белоруссия 25.01.2014
Единственное отличие Майдана от Болотной 22.01.2014
Вечный спор принадлежность к нации определяется "биологией" или "культурой" 19.01.2014
Эти люди никого не убили и бегут не на погром... 13.01.2014
Меня восхищает этот всепоглощающий интерес к крови предков 10.01.2014
По следам одного опроса. Кто такой "интеллектуал" в современной России? 09.01.2014
Миссианическое 03.01.2014
Евромайдан. Где то мы все это уже видели. 23.12.2013
Типовой разговор с либералом 20.12.2013
Украина - как содержанка 18.12.2013
"Сталинград" Бондарчука. Впечатления. 4 14.12.2013
"Сталинград" Бондарчука. Впечатления. 3 13.12.2013
"Сталинград" Бондарчука. Впечатления. 2 13.12.2013
"Сталинград" Бондарчука. Впечатления. 1 12.12.2013
Возвращение украденного 01.12.2013
Весёлые картинки 17.11.2013
Для тех, кто с нами: Москва 03.11.2013
Современное искусство – это искусство оскорблять чувства. 03.11.2013
Обращение ЦК НДП в связи с событиями в Волгограде 22.10.2013
Круглый стол русских национальных организаций 14.10.2013
Заявление ЦК НДП по поводу событий в Бирюлёво, связанных с убийством Егора Щербакова 13.10.2013
Россияне и русские 07.10.2013
Академическая прогулка 17 сентября 17.09.2013
О хороших и плохих народах 24.08.2013
Наброски к теме: Юрий Гагарин как политическая фигура 14.04.2013
Крайне банальное. О политических контактах 08.03.2013
Несколько слов на лестнице о Странных Моделях 29.01.2013
Официальное. Съезд НДП 06.09.2012
«В нормальной стране займемся гладиолусами» 24.08.2012
О речах губернатора Ткачёва 04.08.2012
Вести с полей 28.07.2012
Вышел из печати и поступил в продажу десятый номер "Вопросов Национализма" 25.07.2012
Круглый стол в "Особой букве" 29.06.2012
Банальное, чтобы не забывали 26.06.2012
По делу Белоусова 22.06.2012
Терминологическое. "Националисты" и "национальные организации" 22.06.2012
12 июня. Приглашаем в колонну национал-демократов! 04.06.2012
Банальное. "Почему на этом вашем хвалёном Западе не могут победить чёрную преступность?" 28.05.2012
А вы говорите - Стабфонд, Стабфонд 18.05.2012
Сеем разумное паки и паки 14.05.2012
Остановим неоколониализм в Сибири и на Дальнем Востоке! Обращение НДП 05.05.2012
Национально-Демократическая Партия в Калининграде 30.04.2012
Русские не нужны Российскому государству 28.04.2012
Помилован Сергей Мохнаткин 24.04.2012
Сергей Аракчеев в программе "Момент истины" 22.04.2012
Объявление. Русские прогулки 19.04.2012
Честный понедельник: Константин Крылов 30.03.2012
Первый шаг 25.03.2012
Официальное. Запись на открытое заседание оргкомитета Российской Национально -Демократической Партии 20.03.2012
Об оскорблении святынь 16.03.2012
Методы инквизиции – верх правового сознания по сравнению с методами отдела «Э» 15.03.2012
Националисты не покинули протестное движение 11.03.2012
К теме сакральных жертв 03.03.2012
"Только приватизация, только хардкор" 26.02.2012
О нацдемстве и национал-демократии 24.02.2012
Национал-демократия или извращённое имперство? 20.02.2012
Пора начать борьбу за власть 17.02.2012
Убийца должен сидеть! 13.02.2012
Казус Белова будет значимым фактором дискуссий о свободе слова в России 06.02.2012
Поддерживать такую власть нет оснований 01.02.2012
Торжественным тоном. "Говорю от себя, но за всех" 18.12.2011
А теперь прогони козла (с) 28.11.2011
С содержимым обвинения ознакомлен и смысла его не понял 14.11.2011
Праздник мне таки испортили 04.11.2011
О двух стульях 26.10.2011
В требовании хватит кормить Кавказ нет никакой ксенофобии 29.09.2011
К вопросу о "старом узбеке" 22.09.2011
Об Ураза-Байраме и "нехватке мечетей" 31.08.2011
Удар по харизме 25.08.2011
Чеченский боевик получил на 3 года меньше, чем Евгения Хасис 06.05.2011
Запрет ДПНИ приведет к радикализации русского национального движения 18.04.2011
Русские: «Увольте нас от такой России!» 08.04.2011
Ну пожалуйста, победите же нас, наконец! 14.03.2011
Вредная работа 06.03.2011
Социальная сеть. Русский стиль 16.12.2010
Перепись с казачком 13.10.2010
Мечеть в Текстильщиках может стать «горячей точкой» 24.09.2010
Никогда не разговаривайте без адвоката 14.09.2010
Бабушка-Европа держит инородцев под контролем 20.08.2010
Борис Громов – современная Мария-Антуанетта 02.07.2010
Владимир Николаевич Ширяев. Сгорел образцовый патриот 25.06.2010
Чеченская гордость. Хозяева над хозяевами? 16.06.2010
«Лидеров надо гасить, овцы сами разбредутся» 24.05.2010
Ксюша Собчак вынуждена страдать в Москве, ведь тут бабло 12.05.2010
Без сопромата 19.04.2010
«Вопросы национализма» — журнал для интеллектуалов 15.04.2010
В Параде победы обязательно должны принять участие сербы 07.04.2010
Надписи на стенах метро может сменить кровь 05.04.2010
Машина порядка в Америке работает, поэтому они усыновляют наших детей 03.03.2010
Отменить прописку сейчас — все равно, что отменить хлебные карточки в 42-м году 02.02.2010
Егор Тимуровича ждет Лаврентий Палыч Берия 16.12.2009
Кто не взрывал «Невский экспресс»: осторожные версии 30.11.2009
Лично от меня: об убийстве священника Даниила Сысоева 20.11.2009
Приговор «Черным ястребам» неудовлетворителен 08.10.2009
Об одном распространённом аргументе против русского национализма 13.04.2009
Взрыв памятника Ленину: кому это выгодно? 02.04.2009
К вопросу о поисках черной кошки в темной комнате 12.03.2009
Бедность как порок 11.03.2009
Не имейте дел с крокодилами, если вы сами не крокодил 20.01.2009
Освобождение Буданова - гуманный жест 26.12.2008
Семнадцать ответов о русском национализме 12.12.2008
Миграция: простые ответы на трудные вопросы 02.12.2008
Ну а что вы хотели? 19.11.2008
Никарагуа - не смешно 05.09.2008
Пора завязывать с "выгодной слабостью" 29.08.2008
Право на отчество 25.08.2008
Неподача Ходорковским прошения была бы знаковой 17.07.2008
Больше света 11.07.2008
О необходимости политического урегулирования вокруг Чечни 03.07.2008
У нас просто выровнялись шансы 01.07.2008

Источник: https://web.archive.org/web/20221210015711/http://www.rus-obr.ru/users/konstantin-krylov. 29 ноября 2024


local get = mw.ext.externalData.getExternalData
local clone = mw.clone
local decode, new_url, validate = mw.text.decode, mw.uri.new, mw.uri.validate
local trim = mw.text.trim
local ustring = mw.ustring
local sub, gmatch, gsub, gsplit = ustring.sub, ustring.gmatch, ustring.gsub, mw.text.gsplit
local nbsp = ustring.char (160)
local concat = table.concat
local dump = mw.dumpObject
local set_property, subobject, ask, query = mw.smw.set, mw.smw.subobject, mw.smw.ask, mw.smw.getQueryResult

--[[
	Service functions
--]]
local function merge (...)
	local merged = {}
	for _, arg in ipairs {...} do
		for key, value in pairs (type (arg) == 'table' and arg or { arg } ) do
			merged [type (key) == 'number' and #merged + 1 or key] = value
		end
	end
	return merged
end

-- Because {unpack {1, 2}, 3} is counter-intuitive:
local function unpack_all (...)
	return unpack (merge (...))
end

local function set (table)
	local set = {}
	for _, value in pairs (table) do
		set [value] = true
	end
	return set
end

-- Standard Lua hashing does not work correctly:
local function hash_params (params)
	return concat (params, '\n')
end

local function absolute_url (url, base)
  	local parsed_url = new_url (decode (url))
  	local parsed_base = new_url (base)
  	for fragment, default in pairs {
  		protocol = 'https',
  		authority ='??',
  		hostPort = ''
  	} do
  		parsed_url [fragment] = parsed_url [fragment] or parsed_base [fragment] or default
  	end
	return tostring (parsed_url)
end

local function reduce_data_and_errors (data, errors, new_data, new_errors)
	return merge (data, new_data), merge (errors, new_errors)
end

local function url_extractor (fields)
	return function (url, data, errors)
		if #( errors or {} ) > 0 then
			return nil
		end
		local param_set = {}
		for _, field in ipairs (fields) do
			local values = data [field]
			for __, new_url in ipairs (type (values) == 'table' and values or { values }) do
				param_set [#param_set + 1] = { absolute_url (decode (new_url), url) }
			end
		end
		return param_set
	end
end

local function add_implicit_fields (fields, formats)
	local all_fields = clone (fields) or {}
	for _, format in pairs (formats) do
		for macro in format:gmatch '{{{(.-)}}}' do
			if not all_fields [macro] then
				all_fields [macro] = macro
			end
		end
	end
	return all_fields
end

local function expand (format, row)
	return gsub (format, '{{{(.-)}}}', row)
end

local function only_scalar (tbl)
	local scalar = {}
	for key, value in pairs (tbl) do
		if type (value) == 'string' or type (value) == 'number' then
			scalar [key] = value
		end
	end
	return scalar
end

local function expand_or_template (row, template, format_string, frame, default)
	return template and frame:expandTemplate{ title = template, args = only_scalar (row) }
		or format_string and expand (format_string, row)
		or default
end

--[[
	Main functions
--]]

local function fallbacks (func, validator, failure)
	return function (variants)
		for _, variant in ipairs (variants) do
			local returns = { func (unpack (variant)) }
			if validator and validator (unpack (returns)) or returns [1] then
				return unpack (returns)
			end
		end
		return failure or false
	end
end

local pages_limit = 50
local function multi_page (func, continuations, reduce)
	return function (...)
		local queue, processed, reduced = { {...} }, {}, { {}, {} }
		local pages = 0
		while #queue > 0 and pages < pages_limit do
			local params = table.remove (queue, 1)
			local hashed = hash_params (params)
			if not processed [hashed] then
				local returns = { func (unpack (params)) }
				processed [hashed] = true				
				pages = pages + 1
				-- Unfortunately, re-packing unpacked tables is buggy:
				-- reduced = { reduce (unpack (reduced), unpack (returns)) }
				reduced = { (reduce or reduce_data_and_errors) (unpack_all (reduced, returns)) }
				local new_params = continuations (unpack (params), unpack (returns))
				if new_params then
					for _, param_set in ipairs (new_params) do
						queue [#queue + 1] = param_set
					end
				end
			end
		end
		return unpack (reduced)
	end
end

local function scraper (connection, fields, further, constants)
	local connection = connection
	connection.data = clone (fields)
	for _, field in ipairs (further or {}) do
		connection.data [field] = field
	end
	return multi_page (function (urls)
		local data, errors = {}, {}
		for url in gsplit (urls, '%s+') do
			connection.url = url
			local add_data, add_errors = get (connection)
			if not add_errors then
				add_data = merge (constants, add_data, { __url = url })
				for i, row in ipairs (add_data) do
					add_data [i] = merge (constants, row, { __url = url })
				end
			end
			data, errors = merge (data, add_data), merge (errors, add_errors)
		end
		return data, errors
	end, url_extractor (further or {}))
end

local default_connection = {
	format		= 'HTML',
	encoding	= 'UTF-8',
	cache		= 86400,
	stale		= true,
	regex		= ''
}

local reserved = set {
	1,
	'template', 'header template', 'body template', 'footer template',
	'header', 'footer', 'default',
	'__format', '__next', '__prev', '__page', 'url'
}

local function is_reserved (key)
	return type (key) == 'string' and key:sub (1, 1) == '*'
	or reserved [key]
	or default_connection [key:sub (3)]
end
	
local function formatting_params (args)
	local formats, templates, params = {}, {}, {}			
	for arg, value in pairs (args) do
		if arg == 1 then
			formats.body = value
		elseif arg == 'template' then
			templates.body = value
		elseif arg == 'header' or arg == 'footer' or arg == 'default' then
			formats [arg] = value
		elseif type (arg) == 'string' and arg:sub (-9) == ' template' then
			templates [arg:sub (1, -10)] = value
		elseif type (arg) == 'string' and arg:sub (1, 1) == '*' then
			params [arg:sub (2)] = value
		end
	end
	return formats, templates, params
end

local function connection_params (args, default)
	local connection = clone (default)
	for arg, value in pairs (args) do
		if type (arg) == 'string' and arg:sub (1, 2) == '__' and default [arg:sub (3)] ~= nil then
			connection [arg:sub (3)] = value
		end
	end
	return connection
end
			
local function extraction_params (args)
	local fields, further, url = {}, {}, nil
	for arg, value in pairs (args) do
		if arg == '__next' or arg == '__prev' or arg == '__page' then
			if value ~= '' then
				further [#further + 1] = value
			end
		else
			if value ~= '' and not is_reserved (arg) then
				fields [arg] = value
			end
		end
	end
	return fields, further
end

local __next_label = 'следующие тексты'
local function strip_pre (pre)
	return pre and gsub( decode (sub (pre, 21, -7)), nbsp, ' ') or nil
end

local function extraction_params4task (task, context)
	local results = ask {
		'[[Scraping task::' .. task .. ']] [[Context::' .. context .. ']]',
		'?Semantics=semantics',
		'?Selector type=format',
		'?Parsing regex#-=regex',		
		'?Selector#-=selector',
		'?Context.Text encoding#-=encoding',
		links = 'none', mainlabel = '-'
	}
	if #( results or {} ) == 0 then
		return nil
	end
	local format, regex = results[1].format, strip_pre (results[1].regex)
	local encoding = results[1].encoding or ''
	local fields, further = {}, {}
	for _, line in ipairs (results) do
		if line.semantics then
			if line.semantics == __next_label then
				further [#further + 1] = strip_pre (line.selector)
			else
				fields [line.semantics] = strip_pre (line.selector)
			end
		end
	end
	return fields, further, encoding, format, regex
end

local function result_formatter (formats, templates, params, frame)
	return function (rows, errors)
		local lines = { --[==[ '<pre><nowiki>' .. dump {
			formats = formats,
			templates = templates,
			params = params,
			connection = connection,
			fields = fields,
			further = further
		} .. '</nowiki></pre>' ]==] }
		if #rows > 0 and #errors == 0 then
			lines [#lines + 1] = expand_or_template (merge (rows, params), templates.header, formats.header, frame)
			for _, row in ipairs (rows) do
				lines [#lines + 1] = expand_or_template (merge (row, params), templates.body, formats.body, frame, dump (row))
			end
			lines [#lines + 1] = expand_or_template (merge (rows, params), templates.footer, formats.footer, frame)
		else
			lines [#lines + 1] = expand_or_template (
				merge (rows, params),
				templates.default,
				formats.default or '<span class="error">' .. concat (errors) .. '</span>',
				frame
			)
		end

		return concat (lines, '\n')
	end
end

local function extract (url, connection, fields, further, constants, frame)
	local formats, templates, params = formatting_params (frame.args)
	fields = add_implicit_fields (fields, formats)
	local formatter = result_formatter (formats, templates, params, frame)
	local rows, errors = scraper (connection, fields, further, constants) (url)
	return formatter (rows, errors)
end

--[[
	Exported functions
--]]
return {
	continued = function (frame)
		local connection = connection_params (frame.args, default_connection)
		local fields, further = extraction_params (frame.args)
		local dbg = '' --'\n<pre><nowiki>' .. dump { fields = fields, further = further, connection = connection } .. '</nowiki></pre>\n'
		return dbg .. extract (frame.args.url, connection, fields, further, {}, frame)
	end,

	task = function (frame)
		local task, context = frame.args.task, frame.args.context
		local connection = connection_params (frame.args, default_connection)
		local fields, further, encoding, format, regex = extraction_params4task (task, context)
		connection.encoding = encoding or connection.encoding
		connection.format = format or connection.format
		connection.regex = regex or connection.regex
		local dbg = '' --'\n<pre><nowiki>' .. dump { fields = fields, further = further, connection = connection } .. '</nowiki></pre>\n'
		local constants = { __task = task, __context = context }
		return dbg .. extract (frame.args.url, connection, fields, further, constants, frame)
	end,
	
	multitask = function (frame)
		local task = frame.args.task
		local connection = connection_params (frame.args, default_connection)
		local parts = {}
		for context, url in pairs (frame.args) do
			if not is_reserved (context) and url:sub (1, 4) == 'http' then
				local fields, further, encoding, format, regex = extraction_params4task (task, context)
				connection.encoding = encoding or connection.encoding
				connection.format = format or connection.format
				connection.regex = regex or connection.regex
				local constants = { __task = task, __context = context }
				parts [#parts + 1] = extract (url, connection, fields, further, constants, frame)
			end
		end
		return concat (parts, '\n')
	end,

	describe = function (frame)
		local args = clone (frame.args)
		if frame:getParent() then
			args = merge (frame:getParent().args, args)
		end
		local context, task, format, regex = args.__context, args.__task, args.__format, args.__regex
		local report = { '* [[' .. context .. ']]' }
		if args.__encoding and args.__encoding ~= '' then
			set_property { ['Text encoding'] = args.__encoding }
			report [#report + 1] = '** Кодировка: ' .. args.__encoding
		end
		if args.__regex and args.__regex ~= '' then
			report [#report + 1] = '** Регулярное выражение: ' .. args.__regex
		end
		subobject {
			Context				= context,
			['Scraping task']	= task,		
			['Selector type']	= format,
			['Parsing regex']	= regex,
			Selector			= '__time',
			Semantics			= '__time'
		}
		for arg, value in pairs (args) do
			if arg:sub (1, 2) ~= '__' then
				subobject {
					Context				= context,
					['Scraping task']	= task,		
					['Selector type']	= format,
					['Parsing regex']	= regex,
					Selector			= value,
					Semantics			= arg
				}
				report [#report + 1] = '** ' .. arg .. ' = <code><nowiki>' .. value .. '</nowiki></code>'
			end
		end
		return frame:preprocess (concat (report, '\n'))
	end,
	trim_pipes = function (frame)
		return trim (frame.args.str:gsub ('|', ''))
	end,
	full_url = function (frame)
		return absolute_url (frame.args.url, frame.args.base)
	end
}
--[[
	To tesk multitask from console:
	=mw.dumpObject (p.task (mw.getCurrentFrame():newChild { title = 'Test', args = {context = 'АПН', task = 'тексты автора', url = 'https://www.apn.ru/index.php?do=authors&author=637', template = 'Статья-строка таблицы', ['*автор'] = 'Александр Машин', ['*издание'] = 'АПН', ['*традиция'] = 'да', ['*база'] = 'https://www.apn.ru/index.php?do=authors&author=637', ['footer template'] = 'External Data/footer', default = 'не найдено'}}))
--]]