|
|
Line 44: |
Line 44: |
| end | | end |
| return mMessageBox.main('mbox', boxArgs) | | return mMessageBox.main('mbox', boxArgs) |
| end
| |
|
| |
| local function renderTrackingCategories(args, tStyles, titleObj)
| |
| if yesno(args.nocat) then
| |
| return ''
| |
| end
| |
|
| |
| local cfg = getConfig()
| |
|
| |
| local cats = {}
| |
|
| |
| -- Error category
| |
| if #tStyles < 1 and cfg['error_category'] then
| |
| cats[#cats + 1] = cfg['error_category']
| |
| end
| |
|
| |
| -- TemplateStyles category
| |
| titleObj = titleObj or mw.title.getCurrentTitle()
| |
| if (titleObj.namespace == 10 or titleObj.namespace == 828)
| |
| and not cfg['subpage_blacklist'][titleObj.subpageText]
| |
| then
| |
| local category = args.category or cfg['default_category']
| |
| if category then
| |
| cats[#cats + 1] = category
| |
| end
| |
| if not yesno(args.noprotcat) and (cfg['protection_conflict_category'] or cfg['padlock_pattern']) then
| |
| local currentProt = titleObj.protectionLevels["edit"] and titleObj.protectionLevels["edit"][1] or nil
| |
| local addedLevelCat = false
| |
| local addedPadlockCat = false
| |
| for i, ts in ipairs(tStyles) do
| |
| local tsTitleObj = mw.title.new(ts)
| |
| local tsProt = tsTitleObj.protectionLevels["edit"] and tsTitleObj.protectionLevels["edit"][1] or nil
| |
| if cfg['padlock_pattern'] and tsProt and not addedPadlockCat then
| |
| local content = tsTitleObj:getContent()
| |
| if not content:find(cfg['padlock_pattern']) then
| |
| cats[#cats + 1] = cfg['missing_padlock_category']
| |
| addedPadlockCat = true
| |
| end
| |
| end
| |
| if cfg['protection_conflict_category'] and currentProt and tsProt ~= currentProt and not addedLevelCat then
| |
| currentProt = cfg['protection_hierarchy'][currentProt] or 0
| |
| tsProt = cfg['protection_hierarchy'][tsProt] or 0
| |
| if tsProt < currentProt then
| |
| addedLevelCat = true
| |
| cats[#cats + 1] = cfg['protection_conflict_category']
| |
| end
| |
| end
| |
| end
| |
| end
| |
| end
| |
| for i, cat in ipairs(cats) do
| |
| cats[i] = string.format('[[Category:%s]]', cat)
| |
| end
| |
| return table.concat(cats)
| |
| end | | end |
|
| |
|
Line 109: |
Line 55: |
| local tStyles = mTableTools.compressSparseArray(args) | | local tStyles = mTableTools.compressSparseArray(args) |
| local box = renderBox(tStyles) | | local box = renderBox(tStyles) |
| local trackingCategories = renderTrackingCategories(args, tStyles)
| |
| return box .. trackingCategories
| |
| end | | end |
|
| |
|