Modul:ISBNsearch

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Formatiert eine ISBN zur Textsuche in Wikipedia. Zur Verwendung auf Wikipedia:ISBN-Suche bzw Spezial:ISBN-Suche.

Das in Artikeln verwendete Format entspricht nicht immer dem von Modul:URIutil mit formatISBN().

{{#invoke:ISBNsearch|main|isbn=MAGICNUMBER}}

Format Beispiel Spezial:ISBN-Suche {{#invoke:ISBNsearch|main|isbn=Beispiel}} Special:Search {{#invoke:URIutil|formatISBN|Beispiel}} Anmerkung
10 328001509X ISBN 328001509X ISBN 3-2* insource:/ISBN 3-2-?8-?0-?0-?1-?5-?0-?9-X/ Spezial:Suche/ISBN 3-2* insource:/ISBN 3-2-?8-?0-?0-?1-?5-?0-?9-X/ 3-280-01509-X
10 385962122X ISBN 385962122X ISBN 3-8* insource:/ISBN 3-8-?5-?9-?6-?2-?1-?2-?2-X/ Spezial:Suche/ISBN 3-8* insource:/ISBN 3-8-?5-?9-?6-?2-?1-?2-?2-X/ 3-85962-122-X
13 9783796519017 ISBN 9783796519017 ISBN 978-3* insource:/ISBN 978-3-?7-?9-?6-?5-?1-?901-7/ Spezial:Suche/ISBN 978-3* insource:/ISBN 978-3-?7-?9-?6-?5-?1-?901-7/ 978-3-7965-1901-7

local p = {}
local getArgs

function p.main(frame)
	if not getArgs then
		getArgs = require('Modul:Arguments').getArgs
	end
	return p._main(getArgs(frame))
end

function p._main(args)

    local isbn = args.isbn
    local n = mw.ustring.len( isbn );
    local searchf 

    if n == 10 then
    	local init = mw.ustring.sub( isbn,  1, 1 )
    	if init == "0" or init == "1" or init == "2"  or init == "3"  or init == "4"  or init == "5"  or init == "7" then
	        searchf = "ISBN " .. mw.ustring.sub( isbn,  1, 1 ) .. "-" .. mw.ustring.sub( isbn,  2, 2 ) .. "* "
        	searchf = searchf .. "insource:/ISBN "
    	    searchf = searchf .. mw.ustring.sub( isbn,  1, 1 ) .. "-"
    	else
    	    searchf = "ISBN " .. mw.ustring.sub( isbn,  1, 2 ) .. "* "
        	searchf = searchf .. "insource:/ISBN "
        	searchf = searchf .. mw.ustring.sub( isbn,  1, 1 ) .. ""
    	end
       	searchf = searchf .. mw.ustring.sub( isbn,  2, 2 ) .. "-?"
       	searchf = searchf .. mw.ustring.sub( isbn,  3, 3 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  4, 4 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  5, 5 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  6, 6 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  7, 7 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  8, 8 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  9, 9 ) .. "-"
        searchf = searchf .. mw.ustring.sub( isbn,  10, 10 ) .. ""
        searchf = searchf .. "/"
    end
    if n == 13 then
        searchf = "ISBN " .. mw.ustring.sub( isbn,  1, 3 ) .. "-" .. mw.ustring.sub( isbn,  4, 4 ) .. "* "
        searchf = searchf .. "insource:/ISBN "
        searchf = searchf .. mw.ustring.sub( isbn,  1, 1 ) .. ""
        searchf = searchf .. mw.ustring.sub( isbn,  2, 2 ) .. ""
        searchf = searchf .. mw.ustring.sub( isbn,  3, 3 ) .. "-"
        searchf = searchf .. mw.ustring.sub( isbn,  4, 4 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  5, 5 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  6, 6 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  7, 7 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  8, 8 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  9, 9 ) .. "-?"
        searchf = searchf .. mw.ustring.sub( isbn,  10, 10 ) .. ""
        searchf = searchf .. mw.ustring.sub( isbn,  11, 11 ) .. ""
        searchf = searchf .. mw.ustring.sub( isbn,  12, 12 ) .. "-"
        searchf = searchf .. mw.ustring.sub( isbn,  13, 13 ) .. ""

        searchf = searchf .. "/"
    end
	return searchf
end

return p