打开主菜单
首页
随机
登录
设置
关于iFx Wiki
免责声明
iFx Wiki
搜索
查看“模块:SMWUtils”的源代码
←
模块:SMWUtils
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
此页面已被保护以防止编辑和其他操作。
您可以查看和复制此页面的源代码。
local p = {} function p.exists(query) return mw.smw.ask(query.."|limit=1") end function p.query_pages(query) local res = mw.smw.getQueryResult(query) local ret = {} for j, r in ipairs(res.results) do table.insert(ret, r.fulltext) end return ret end function p.query_page_properties(query, properties) local real_query = query for i, p in ipairs(properties) do real_query = real_query .. "|?" .. p end local res = mw.smw.getQueryResult(real_query) local ret = {} for i, r in ipairs(res.results) do local ans = {} local title = r.fulltext for j, prop in ipairs(properties) do local p_values = {} if r.printouts[prop] then for k, t in ipairs(r.printouts[prop]) do table.insert(p_values, t.fulltext or t) end end ans[prop] = p_values end table.insert(ret, {title=title, properties=ans}) end return ret end local QueryBuilder = {content = ""} function QueryBuilder:new() local n = {} setmetatable(n, QueryBuilder) self.__index = self return n end function QueryBuilder:cat(v) local n = self:new() n.content = self.content .. v return n end function QueryBuilder:bracket(t) return self:cat('[['..t..']] ') end function QueryBuilder:or_() return self:cat(' OR ') end function QueryBuilder:done() return self.content end function QueryBuilder:page(name) return self:bracket(name) end function QueryBuilder:category(name) return self:bracket("Category:"..name) end function QueryBuilder:exists(prop) return self:bracket(prop..'::+') end function QueryBuilder:property(prop, value) return self:bracket(prop..'::'..value) end function QueryBuilder:get_pages() return p.query_pages(self:done()) end function QueryBuilder:get_properties(properties) return p.query_properties(self:done(), properties) end p.QueryBuilder = QueryBuilder function p.query() return QueryBuilder:new() end return p
该页面使用的模板:
模块:SMWUtils/doc
(
查看源代码
)
返回至
模块:SMWUtils
。