localp={}-- Возращает ID значения свойства (Qxxx)-- Аргументы: id элемента (Qxxx), id свойства (Pxxx)functionp.getValueId(frame)localentityId,propertyId=frame.args[1],frame.args[2]localstatements=mw.wikibase.getBestStatements(entityId,propertyId)ifstatementsandstatements[1]thenreturnstatements[1].mainsnak.datavalue.value.idendend-- Возращает имя категории, фильтруя вывод шаблонов {{wikidata/}}. Например: {{wikidata/p19}}, {{wikidata/p20}}-- Аргумент: номер свойства в названии шаблона ('p19' и т.п.)functionp.filterCategoryName(frame)locals=mw.getCurrentFrame():expandTemplate{title='wikidata/'..frame.args[1]}s=s:gsub('^.-(Категория:[^]]+).-$','%1')returnsend-- Логика проверки на наличие нужного значка для текущей страницы, может использоваться из других модулейfunctionp.checkBadgeImpl(badgeId)localentityId=mw.wikibase.getEntityIdForCurrentPage()ifnotentityIdthenreturnfalseendlocalbadges=mw.wikibase.getBadges(entityId,'ruwiki')for_,valueIdinipairs(badges)doifvalueId==badgeIdthenreturntrueendendreturnfalseend-- Проверяет на наличие нужного значка для текущей страницы и выводит штрафную категорию, если его нет-- Аргументы: id значка (Qxxx), название категории без пространства имёнfunctionp.checkBadge(frame)localbadgeId,penaltyCategory=frame.args[1],frame.args[2]ifp.checkBadgeImpl(badgeId)thenreturn''endreturn'[[Категория:'..penaltyCategory..']]'endreturnp