无编辑摘要
无编辑摘要
 
(未显示同一用户的4个中间版本)
第28行: 第28行:
             if r.printouts[prop] then
             if r.printouts[prop] then
                 for k, t in ipairs(r.printouts[prop]) do
                 for k, t in ipairs(r.printouts[prop]) do
                     table.insert(p_values, t.fulltext)
                     table.insert(p_values, t.fulltext or t)
                 end
                 end
             end
             end
第36行: 第36行:
     end
     end
     return ret
     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
end


return p
return p