Interested Article - Последние запуски Falcon 9
sigourney
- 2020-01-25
- 1
Этот модуль оценён как
готовый к использованию
. Предполагается, что все баги устранены и он готов для широкого использования. Его можно указывать на справочных страницах и рекомендовать к использованию новым участникам. Для его изменения и тестирования, пожалуйста,
используйте песочницу
.
|
Реализация шаблона {{ Последние запуски Falcon 9 }} , см. его документацию.
local p = {} function p.main(frame) local getArgs = require('Модуль:Arguments').getArgs local args = getArgs(frame) local currentYear = os.date('*t')['year'] local launchCount = args[1] or 10 local showUpTo = args[2] or currentYear --'декабрь 2016' local title = mw.title.new('Список запусков ракеты-носителя Falcon 9', '') local fullContent = title:getContent() local pattern = '|%- *id="[^"]+" *style="background:[^"]+"\n| *rowspan="?3"? *| *(%d+) *' local lastLaunchNumber if fullContent:match(pattern) then --чтобы избежать превышения времени выполнения скрипта в случае ненахождения фрагмента lastLaunchNumber = fullContent:match('.*' .. pattern) end if lastLaunchNumber then local firstLaunchNumber = lastLaunchNumber - launchCount + 1 --mw.log(firstLaunchNumber) patternToFormat = '(|%%- *id="[^"]+" *style="background:[^"]+" *\n| *rowspan="?3"? *| *' .. firstLaunchNumber .. '.*|[ %%w]*%s.-)\n\n' content = mw.ustring.match(fullContent, string.format(patternToFormat, showUpTo)) if not content and showUpTo ~= currentYear then content = mw.ustring.match(fullContent, string.format(patternToFormat, currentYear)) end if not content then content = mw.ustring.match(fullContent, string.format(patternToFormat, currentYear+1)) end if content then content = content:gsub('</?onlyinclude>', '') return frame:preprocess(content) else return '' end else return '' end end return p
sigourney
- 2020-01-25
- 1