ホーム
おまかせ表示
ログイン
設定
脳科学辞典について
免責事項
脳科学辞典
検索
モジュール:Fileのソースを表示
←
モジュール:File
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
-- Module for handling Media files (Origin: Wikimedia Commons) require('strict') -- ================================================== -- === helper Lookup table ========================== -- ================================================== local extensionMap = { -- File types with full support in Commons (See [[c:Commons:File types]]). DJVU = 'image/vnd.djvu', FLAC = 'audio/x-flac', GIF = 'image/gif', JPEG = 'image/jpeg', JPG = 'image/jpeg', MID = 'audio/midi', MP3 = 'audio/mpeg', OGA = 'audio/ogg', OGG = 'audio/ogg', OGV = 'video/ogg', PDF = 'application/pdf', PNG = 'image/png', SVG = 'image/svg+xml', TIF = 'image/tiff', TIFF = 'image/tiff', WEBM = 'video/webm', WAV = 'audio/x-wav', XCF = 'image/xcf', -- Other file types with restrictions (not accepted in standard uploads on Commons but in 'User:' namespace). -- They could be supported in Wiki pages by embedding their content in an <pre> or <source> elements. CSS = 'text/css', CSV = 'text/csv', JS = 'application/javascript', JSON = 'application/json', TXT = 'text/plain', XML = 'application/xml', -- Only generated by MediaWiki on output of some queries, restricted in all uploads. GZ = 'application/gzip', -- delivered only only for some wiki results ZIP = 'application/zip', -- delivered only for some wiki data exports -- Other file types not supported and to convert (a few of them may be in special administration namespaces). DOC = 'application/msword', -- please convert to PDF, DJVU, or Wiki F4V = 'video/mpeg', -- (deprecated, replaced by MP4) please convert to OGV or WEBM FLV = 'video/x-flv', -- (deprecated, replaced by MP4) please convert to OGV or WEBM ICO = 'image/vnd.microsoft.icon', -- used in MediaWiki resources for 'website icons' MP4 = 'video/mp4', QT = 'video/quicktime', -- (deprecated, replaced by MP4) please convert to OGV or WEBM RA = 'audio/vnd.rn-realaudio', -- (deprecated, replaced by MP3) please convert to OGA SWF = 'video/x-flv', -- (deprecated, replaced by MP4) please convert to OGV or WEBM WMA = 'audio/x-ms-wma', -- please convert to OGA WMV = 'video/x-ms-wmv', -- please convert to OGV or WEBM XLS = 'application/vnd.ms-excel', -- please convert to PDF, DJVU, or Wiki } -- ================================================== -- === Local functions ============================== -- ================================================== local function filename(frame) return frame.args[1] or frame.args["file"] or frame.args["title"] end local function getMetadata(frame) local fname = filename(frame) local title if fname then title = mw.title.new(fname, 6) else title = mw.title.getCurrentTitle() end if title then return title.file else return {exists=false} end end -- ================================================== -- === External functions =========================== -- ================================================== local p = {} -- p.csExtension("Foo.bar.svg") -- @return "svg" function p.csExtension(frame) local fname = filename(frame) or mw.title.getCurrentTitle().text local parts = mw.text.split(fname, '.', true) if #parts>1 then return parts[#parts] else return '' end end function p.extension(frame) return p.csExtension(frame):lower() end function p.extensionUpper(frame) return p.csExtension(frame):upper() end -- p.woExtension("Foo.bar.svg") -- @return "Foo.bar" -- Original author: Bawolff at [[Module:FileName]] function p.woExtension(frame) local fname = filename(frame) or mw.title.getCurrentTitle().text local parts = mw.text.split(fname , '.', true) local upTo = #parts - 1 if upTo == 0 then upTo = 1 end return table.concat(parts, '.', 1, upTo) end function p.mime(frame) local meta = getMetadata(frame) if meta.exists then return meta.mimeType else return extensionMap[p.extensionUpper(frame)] or 'unknown' end end function p.mimeType(frame) return getMetadata(frame).mimeType end function p.fileExists(frame) return getMetadata(frame).exists or '' end -- This one won't throw errors at you function p.fileExistsRelaxed(frame) local ok, metadata = pcall(getMetadata(frame)) if ok then return metadata.exists or '' else return '' end end function p.maxthumb(frame) -- Limits in megapixels are currently stored in Commons templates, they could be in this module. -- There may be more limits for other supported mime types (djvu, flac, ogv, pdf, svg, webm, xcf). local maxthumbMap = { ['image/gif'] = 1000, ['image/png' ] = 2500, -- see Template:LargePNG/limit ['image/tiff'] = 1000, -- see Template:LargeTIFF/limit } local mime = p.mime(frame) return maxthumbMap[mime] or 'unknown @Module:File' end function p.dateWorkCreated(frame) return '' -- no longer supported end function p.width(frame) return getMetadata(frame).width end function p.height(frame) return getMetadata(frame).height end function p.dimensions(frame) local d = getMetadata(frame) if d.exists then return d.width .. ' × ' .. d.height else return '' end end function p.size(frame) return getMetadata(frame).size end function p.pageCount(frame) local pages = getMetadata(frame).pages or {1} return #pages end return p
このページで使用されているテンプレート:
モジュール:File/doc
(
ソースを閲覧
)
モジュール:File
に戻る。