Home
Random
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Sandbox/WikiJunkie
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- Beta functions getname2 and getinternal links local p = {} local function loadwikinames() local wikinames = {} wikinames[1] = "wikisource" wikinames[2] = "wikibooks" wikinames[3] = "wikinews" wikinames[4] = "wikiquote" wikinames[5] = "wikivoyage" wikinames[6] = "wiki" return wikinames end function p.getname(frame) local name=mw.wikibase.getEntityIdForTitle(frame.args[1]) if name == "" or name == nil then return "" end return name end function p.getname2(frame) local names=frame.args[1] local name = "" local image = "" local items = {} local index = 1 local id = "" local latitude = '' local longitude = '' local marker = '' local entity = '' local data = "" local separator = '\n' local lang = '' local wiki = '' local wikiname = '' for str in string.gmatch(names,"([^"..separator.."]+)") do if str ~= nil and str ~= "" then str = string.gsub(str,"^%s+","") str = string.gsub(str,"%s+$","") if str ~= "" then items[index] = str index = index + 1 end end end for i=1,#items do name = items[i] id = "" wikiname = '' id=mw.wikibase.getEntityIdForTitle(items[i]) if id == nil then id = '' end if id ~= nil and id ~= '' then entity = mw.wikibase.getEntityObject(id) if entity == nil then latitude = "" longitude = "" end local claims = entity.claims if claims == nil then latitude = "" longitude = "" end -- if claims.P625 ~= nil then if pcall(function () t =claims.P625 end ) then if pcall(function () t =entity.claims.P625[1].mainsnak.datavalue.value.latitude end ) then latitude = entity.claims.P625[1].mainsnak.datavalue.value.latitude else latitude = "" end if pcall(function () t =entity.claims.P625[1].mainsnak.datavalue.value.longitude end ) then longitude = entity.claims.P625[1].mainsnak.datavalue.value.longitude else longitude = "" end end -- if claims.P18 ~= nil then -- image = entity.claims.P18[1].mainsnak.datavalue.value -- if image == nil then -- image = "" -- -- Replace above due to error of getting a nil value -- Lua error in line 3210: attempt to index field 'datavalue' (a nil value). image="" if pcall(function () t =claims.P625 end ) then if pcall(function () t =entity.claims.P18[1].mainsnak.datavalue.value end ) then image = entity.claims.P18[1].mainsnak.datavalue.value else image = "" end end end wikiname = "" lang = mw.language.getContentLanguage(id).code wiki = lang .. "wiki" if pcall(function()t1 = entity:getSitelink("wiki") end) then wikiname = entity:getSitelink(wiki) or "" else wikiname = "" end if id == "" then wikiname = "" end if id ~= nil and id ~= "" then name = "[[" .. name .. "]]" end marker = '* {{see | name=' .. name .. " | lat=" .. latitude .. " | long=" .. longitude .. " | image=" .. image .. " | wikipedia=" .. wikiname .. " | wikidata=" .. id .. "}}" data = data .. marker .. "\n" marker = '' name = '' latitude = '' longitude = '' image= '' id = '' wikiname = '' end return data end -- Load a page and scan it for internal links function p.getinternallinks(frame) local page = frame.args[1] or "Main Page" local title = mw.title.new(page) local displayactual = frame.args['option'] or "yes" if title == nil then return end if title.id == 0 then return "Page does not exist!" end local data = title:getContent() if data == nil or data == "" then return end local tt = {} local count = 0 local output = "" local separator = "@@@@@" local newstr = "" data = string.gsub(data,"\n","@@@@@") --change \n to separator @@@@@ data = string.gsub(data,"@","BULLET") --because I use @@@@@ as a separator changing @ to BULLET data = string.gsub(data,"%s+"," ") --change multiple spaces to a space data = string.gsub(data,"%[%[","@@@@@[[") --change [[ to separator @@@@@[[ data = string.gsub(data,"%]%]","]]@@@@@") --change ]] to separator ]]@@@@@ data = string.gsub(data,"@@@@@@@@@@","@@@@@") --change ]] to separator ]]@@@@@ for str in string.gmatch(data,"([^"..separator.."]+)") do if str ~= nil and str ~= "" then -- Get rid of File,file,Image,image str = string.gsub(str,"%[%[[fF]ile.*",'') str = string.gsub(str,"%[%[[iI]mage.*",'') str = string.gsub(str,'%s*$','') -- drop ending space str = string.gsub(str,'^%s+','') if string.find(str, '^%[%[') == 1 then -- Key is to have [[ at beginning str = string.gsub(str,'%_'," ") str = string.gsub(str,'%%2C',",") str = string.gsub(str,'%s+%|%s+','|') str = string.gsub(str,'%[%[%#','[[' .. page .. '#') -- Display only actual link make it an option if displayactual == "yes" then str = string.gsub(str,"%|.*%]%]","]]") end count = count + 1 -- localstr = str.gsub(str,'^.*|','') localstr = str.gsub(str,'|.*','') localstr = string.upper (localstr) tt[count] = localstr .. "@-@" .. str end end end table.sort(tt) local previous = "" for key,value in pairs(tt) do value = string.gsub(value,'^.*@-@','') if value ~= previous then output = output .. value .. " -- " end previous = value end output = string.gsub(output,"BULLET","@") output = string.gsub(output," -- $","") return output end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Sandbox/WikiJunkie/doc
(
edit
)