Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:File/doc: Difference between revisions

From Neodyland Wiki
m From Wikitext: new method "fileExistsRelaxed"
 
(18 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== Scope ==
== Scope ==
File title and file information. If the code here grows beyond a border line, this should be converted to an interface and the processing code should be outsourced.
File title and file information. If the code here grows beyond a border line, this should be converted to an interface and the processing code should be outsourced.{{Clarify|date=October 2024}}


== Usage ==
== Usage ==
Note that an error is thrown, if the title can't be constructed (e.g. a title containing invalid characters is supplied) or meta data isn't available (e.g. due to missing file or extraction error).
Note that an error is thrown if the title can't be constructed (e.g. a title containing invalid characters is supplied) or metadata isn't available (e.g. due to missing file or extraction error). It is your responsibility to catch them; in Lua through <code>pcall()</code>; from Wikitext as <code><nowiki>{{#iferror: {{#invoke:File|function|file=File:P%bar]baz.qqq}} | meaningful message}}</nowiki></code>.


=== From Wikitext ===
=== From Wikitext ===
Search ({{key press|Ctrl|F}}) for <code>@exports</code>.
:Examples:
::<code><nowiki>{{#invoke:File|extension|file=File:Test.jpg}}</nowiki></code> → <code>{{#invoke:File|extension|file=File:Test.jpg}}</code>
::<code><nowiki>{{#invoke:File|width|file=File:Test.jpg}}</nowiki></code> → <code>{{#invoke:File|width|file=File:Test.jpg}}</code>
::<code><nowiki>{{#invoke:File|size|file=File:Test.jpg}}</nowiki></code> → <code>{{#invoke:File|size|file=File:Test.jpg}}</code>
::<code><nowiki>{{#invoke:File|mime|file=File:Test.jpg}}</nowiki></code> → <code>{{#invoke:File|mime|file=File:Test.jpg}}</code> '''deprecated'''
::<code><nowiki>{{#invoke:File|mimeType|file=File:Test.jpg}}</nowiki></code> → <code>{{#invoke:File|mimeType|file=File:Test.jpg}}</code>
::<code><nowiki>{{#invoke:File|dateWorkCreated|file=File:Ballot-sprite.png}}</nowiki></code> → <code>{{#invoke:File|dateWorkCreated|file=File:Ballot-sprite.png}}</code>
::<code><nowiki>{{#invoke:File|fileExists|file=File:Ballot-sprite.png}}</nowiki></code> → <code>{{#invoke:File|fileExists|file=File:Ballot-sprite.png}}</code>
::<code><nowiki>{{#invoke:File|fileExistsRelaxed|file=File:Ba[!#llot-sprite.png}}</nowiki></code> → <code>{{#invoke:File|fileExistsRelaxed|file=File:Ba[!#llot-sprite.png}}</code>


=== From Lua ===
Examples:
<source lang="Lua">
:<code><nowiki>{{#invoke:File|woExtension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|woExtension|file=File:Test.C.JpeG}}</code>
local file = require( 'Module:File' )
:<code><nowiki>{{#invoke:File|extension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|extension|file=File:Test.C.JpeG}}</code>
local fileObj = file.File( 'File:Test.svg' )
:<code><nowiki>{{#invoke:File|csExtension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|csExtension|file=File:Test.C.JpeG}}</code>
local withoutExtension = fileObj.woExtension()
:<code><nowiki>{{#invoke:File|mime|file=File:DOESNOTEXIST-0a8de8c83.Png}}</nowiki></code> → <code>{{#invoke:File|mime|file=File:DOESNOTEXIST-0a8de8c83.Png}}</code> '''deprecated (but works even if the file does not exist and has no metadata)'''
-- withoutExtension is now 'Test'
:<code><nowiki>{{#invoke:File|mimeType|file=File:DOESNOTEXIST-0a8de8c83.Png}}</nowiki></code> → <code>{{#invoke:File|mimeType|file=File:DOESNOTEXIST-0a8de8c83.Png}}</code> '''preferred (but will not work if the file does not exist to parse its metadata)'''
:<code><nowiki>{{#invoke:File|fileExists|file=File:Commons-logo.png}}</nowiki></code> → <code>{{#invoke:File|fileExists|file=File:Commons-logo.png}}</code>
:<code><nowiki>{{#invoke:File|fileExists|file=File:DOESNOTEXIST-0a8de8c83.png}}</nowiki></code> → <code>{{#invoke:File|fileExists|file=File:DOESNOTEXIST-0a8de8c83.png}}</code>
:<code><nowiki>{{#invoke:File|fileExistsRelaxed|file=File:Ba[!#llot-sprite.png}}</nowiki></code> → <code>{{#invoke:File|fileExistsRelaxed|file=File:Ba[!#llot-sprite.png}}</code>


local exists = fileObj.metadata().exists
:<code><nowiki>{{#invoke:File|width|file=File:Commons-logo.png}}</nowiki></code> → <code>{{#invoke:File|width|file=File:Commons-logo.png}}</code>
if exists then
:<code><nowiki>{{#invoke:File|height|file=File:Commons-logo.png}}</nowiki></code> → <code>{{#invoke:File|height|file=File:Commons-logo.png}}</code>
  mw.log( fileObj.metadata().width )
:<code><nowiki>{{#invoke:File|dimensions|file=File:Commons-logo.png}}</nowiki></code> → <code>{{#invoke:File|dimensions|file=File:Commons-logo.png}}</code>
end
:<code><nowiki>{{#invoke:File|size|file=File:Commons-logo.png}}</nowiki></code> → <code>{{#invoke:File|size|file=File:Commons-logo.png}}</code>
</source>
 
 
 
<includeonly>[[Category:Modules for general use]]</includeonly>

Latest revision as of 03:02, 26 October 2024

Scope

edit

File title and file information. If the code here grows beyond a border line, this should be converted to an interface and the processing code should be outsourced.[Please clarify – October 2024]

Usage

edit

Note that an error is thrown if the title can't be constructed (e.g. a title containing invalid characters is supplied) or metadata isn't available (e.g. due to missing file or extraction error). It is your responsibility to catch them; in Lua through pcall(); from Wikitext as {{#iferror: {{#invoke:File|function|file=File:P%bar]baz.qqq}} | meaningful message}}.

From Wikitext

edit

Examples:

{{#invoke:File|woExtension|file=File:Test.C.JpeG}}File:Test.C
{{#invoke:File|extension|file=File:Test.C.JpeG}}jpeg
{{#invoke:File|csExtension|file=File:Test.C.JpeG}}JpeG
{{#invoke:File|mime|file=File:DOESNOTEXIST-0a8de8c83.Png}}image/png deprecated (but works even if the file does not exist and has no metadata)
{{#invoke:File|mimeType|file=File:DOESNOTEXIST-0a8de8c83.Png}} preferred (but will not work if the file does not exist to parse its metadata)
{{#invoke:File|fileExists|file=File:Commons-logo.png}}true
{{#invoke:File|fileExists|file=File:DOESNOTEXIST-0a8de8c83.png}}
{{#invoke:File|fileExistsRelaxed|file=File:Ba[!#llot-sprite.png}}
{{#invoke:File|width|file=File:Commons-logo.png}}114
{{#invoke:File|height|file=File:Commons-logo.png}}153
{{#invoke:File|dimensions|file=File:Commons-logo.png}}114 × 153
{{#invoke:File|size|file=File:Commons-logo.png}}5557



Contents
Cookies help us deliver our services. By using our services, you agree to our use of cookies.