Difference between revisions of "Module:Data"
(Anime and manga releases (I need a better name for this)...) |
(Anime and manga series.) |
||
Line 23: | Line 23: | ||
local function normalize( arg ) | local function normalize( arg ) | ||
return type( arg ) == 'string' | return type( arg ) == 'string' | ||
− | and arg:lower() | + | and mw.text.trim( arg ):lower() |
:gsub( ' rare$', '' ) -- Remove " rare" at the end (and with a space before it). | :gsub( ' rare$', '' ) -- Remove " rare" at the end (and with a space before it). | ||
:gsub( ' ', '' ) -- Remove spaces. | :gsub( ' ', '' ) -- Remove spaces. | ||
:gsub( '%-', '' ) -- Remove dashes. | :gsub( '%-', '' ) -- Remove dashes. | ||
:gsub( '/', '' ) -- Remove slashes. | :gsub( '/', '' ) -- Remove slashes. | ||
+ | :gsub( ':', '' ) -- Remove semi-colon. | ||
+ | :gsub( '!', '' ) -- Remove exclamation mark. | ||
:gsub( "'", '' ) -- Remove apostrophe. | :gsub( "'", '' ) -- Remove apostrophe. | ||
+ | :gsub( 'the', '' ) -- Remove "the". CAREFUL here. TODO: Split this function by type of data. | ||
:gsub( 'north', '' ) -- Remove "north". | :gsub( 'north', '' ) -- Remove "north". | ||
:gsub( 'edition', '' ) -- Remove "edition". | :gsub( 'edition', '' ) -- Remove "edition". | ||
+ | :gsub( 'ygo', '' ) | ||
+ | :gsub( 'yugioh', '' ) | ||
or nil | or nil | ||
; | ; | ||
Line 107: | Line 112: | ||
-- @description Gets the anime and manga release abbreviation for «arg». «nil» if not found. | -- @description Gets the anime and manga release abbreviation for «arg». «nil» if not found. | ||
function D.getAnimeMangaRel( arg ) | function D.getAnimeMangaRel( arg ) | ||
− | return DATA. | + | return DATA.amRel[ normalize( arg ) ]; |
end | end | ||
Line 115: | Line 120: | ||
-- @description Gets the anime and manga release name for «arg». «nil» if not found. | -- @description Gets the anime and manga release name for «arg». «nil» if not found. | ||
function D.getAnimeMangaRelease( arg ) | function D.getAnimeMangaRelease( arg ) | ||
− | return DATA. | + | return DATA.amRelease[ D.getAnimeMangaRel( arg ) ]; |
end | end | ||
Line 132: | Line 137: | ||
function D.getRarity( arg ) | function D.getRarity( arg ) | ||
return DATA.rarity[ D.getR( arg ) ]; | return DATA.rarity[ D.getR( arg ) ]; | ||
+ | end | ||
+ | |||
+ | -- @name getAnimeS | ||
+ | -- @parameter {string} «arg» | ||
+ | -- @return {string|nil} Anime series code. | ||
+ | -- @description Gets the anime series code for «arg». «nil» if not found. | ||
+ | function D.getAnimeS( arg ) | ||
+ | return DATA.s.anime[ normalize( arg ) ]; | ||
+ | end | ||
+ | |||
+ | -- @name getAnimeSeries | ||
+ | -- @parameter {string} «arg» | ||
+ | -- @return {string|nil} Anime series name. | ||
+ | -- @description Gets the anime series name for «arg». «nil» if not found. | ||
+ | function D.getAnimeSeries( arg ) | ||
+ | return DATA.series.anime[ D.getAnimeS( arg ) ]; | ||
+ | end | ||
+ | |||
+ | -- @name getMangaS | ||
+ | -- @parameter {string} «arg» | ||
+ | -- @return {string|nil} Manga series code. | ||
+ | -- @description Gets the manga series code for «arg». «nil» if not found. | ||
+ | function D.getMangaS( arg ) | ||
+ | return DATA.s.manga[ normalize( arg ) ]; | ||
+ | end | ||
+ | |||
+ | -- @name getMangaSeries | ||
+ | -- @parameter {string} «arg» | ||
+ | -- @return {string|nil} Manga series name. | ||
+ | -- @description Gets the manga series name for «arg». «nil» if not found. | ||
+ | function D.getMangaSeries( arg ) | ||
+ | return DATA.series.manga[ D.getMangaS( arg ) ]; | ||
end | end | ||
Revision as of 00:46, 15 June 2018
- Data/Templates
- Data/data
- Data/doc
- Data/endpoints
- Data/loader
- Data/namespaces/anime
- Data/namespaces/anime/endpoints
- Data/namespaces/anime/static/release
- Data/namespaces/anime/static/release/data
- Data/namespaces/anime/static/series
- Data/namespaces/anime/static/series/data
- Data/namespaces/manga
- Data/namespaces/manga/endpoints
- Data/namespaces/manga/static/release
- Data/namespaces/manga/static/release/data
- Data/namespaces/manga/static/series
- Data/namespaces/manga/static/series/data
- Data/namespaces/videoGames
- Data/namespaces/videoGames/endpoints
- Data/namespaces/videoGames/static/name
- Data/namespaces/videoGames/static/name/data
- Data/namespaces/videoGames/static/release
- Data/namespaces/videoGames/static/release/data
- Data/sandbox
- Data/smw/cardType
- Data/smw/name
- Data/smw/releaseDate
- Data/smw/translatedName
- Data/static/edition
- Data/static/edition/data
- Data/static/language
- Data/static/language/data
- Data/static/medium
- Data/static/medium/data
- Data/static/rarity
- Data/static/rarity/data
- Data/static/region
- Data/static/region/data
- Data/static/release
- Data/static/release/data
-- <pre>
-- @name Data
-- @description Interface for Module:Database.
-- @notes Internal-only, so far.
-- @author [[User:Becasita]]
-- @contact [[User talk:Becasita]]
-------------------
-- Export variable:
-------------------
local D = {};
--------------
-- Load data:
--------------
local DATA = mw.loadData( 'Module:Database' );
----------------------
-- Internal functions:
----------------------
-- @name normalize
-- @description Normalize the input.
local function normalize( arg )
return type( arg ) == 'string'
and mw.text.trim( arg ):lower()
:gsub( ' rare$', '' ) -- Remove " rare" at the end (and with a space before it).
:gsub( ' ', '' ) -- Remove spaces.
:gsub( '%-', '' ) -- Remove dashes.
:gsub( '/', '' ) -- Remove slashes.
:gsub( ':', '' ) -- Remove semi-colon.
:gsub( '!', '' ) -- Remove exclamation mark.
:gsub( "'", '' ) -- Remove apostrophe.
:gsub( 'the', '' ) -- Remove "the". CAREFUL here. TODO: Split this function by type of data.
:gsub( 'north', '' ) -- Remove "north".
:gsub( 'edition', '' ) -- Remove "edition".
:gsub( 'ygo', '' )
:gsub( 'yugioh', '' )
or nil
;
end
-----------
-- Methods:
-----------
-- @name getRg
-- @parameter {string} «arg»
-- @return {string|nil} Region index.
-- @description Gets the region index for «arg». «nil» if not found.
function D.getRg( arg )
return DATA.rg[ normalize( arg ) ];
end
-- @name getRegion
-- @parameter {string} «arg»
-- @return {string|nil} Region name.
-- @description Gets the region name for «arg». «nil» if not found.
function D.getRegion( arg )
return DATA.region[ D.getRg( arg ) ];
end
-- @name getLn
-- @parameter {string} «arg»
-- @return {string|nil} Language index.
-- @description Gets the language index for «arg». «nil» if not found.
function D.getLn( arg )
return DATA.ln[ D.getRg( arg ) ];
end
-- @name getLanguage
-- @parameter {string} «arg»
-- @return {string|nil} Language name.
-- @description Gets the language name for «arg». «nil» if not found.
function D.getLanguage( arg )
return DATA.language[ D.getLn( arg ) ];
end
-- @name getEd
-- @parameter {string} «arg»
-- @return {string|nil} Edition abbreviation.
-- @description Gets the edition abbreviation for «arg». «nil» if not found.
function D.getEd( arg )
return DATA.ed[ normalize( arg ) ];
end
-- @name getEdition
-- @parameter {string} «arg»
-- @return {string|nil} Edition name.
-- @description Gets the edition name for «arg». «nil» if not found.
function D.getEdition( arg )
return DATA.edition[ D.getEd( arg ) ];
end
-- @name getRel
-- @parameter {string} «arg»
-- @return {string|nil} Release abbreviation.
-- @description Gets the release abbreviation for «arg». «nil» if not found.
function D.getRel( arg )
return DATA.rel[ normalize( arg ) ];
end
-- @name getRelease
-- @parameter {string} «arg»
-- @return {string|nil} Release name.
-- @description Gets the release name for «arg». «nil» if not found.
function D.getRelease( arg )
return DATA.release[ D.getRel( arg ) ];
end
-- @name getAnimeMangaRel
-- @parameter {string} «arg»
-- @return {string|nil} Anime and manga release abbreviation.
-- @description Gets the anime and manga release abbreviation for «arg». «nil» if not found.
function D.getAnimeMangaRel( arg )
return DATA.amRel[ normalize( arg ) ];
end
-- @name getAnimeMangaRelease
-- @parameter {string} «arg»
-- @return {string|nil} Anime and manga release name.
-- @description Gets the anime and manga release name for «arg». «nil» if not found.
function D.getAnimeMangaRelease( arg )
return DATA.amRelease[ D.getAnimeMangaRel( arg ) ];
end
-- @name getR
-- @parameter {string} «arg»
-- @return {string|nil} Rarity abbreviation.
-- @description Gets the rarity abbreviation for «arg». «nil» if not found.
function D.getR( arg )
return DATA.r[ normalize( arg ) ];
end
-- @name getRarity
-- @parameter {string} «arg»
-- @return {string|nil} Rarity name.
-- @description Gets the rarity name for «arg». «nil» if not found.
function D.getRarity( arg )
return DATA.rarity[ D.getR( arg ) ];
end
-- @name getAnimeS
-- @parameter {string} «arg»
-- @return {string|nil} Anime series code.
-- @description Gets the anime series code for «arg». «nil» if not found.
function D.getAnimeS( arg )
return DATA.s.anime[ normalize( arg ) ];
end
-- @name getAnimeSeries
-- @parameter {string} «arg»
-- @return {string|nil} Anime series name.
-- @description Gets the anime series name for «arg». «nil» if not found.
function D.getAnimeSeries( arg )
return DATA.series.anime[ D.getAnimeS( arg ) ];
end
-- @name getMangaS
-- @parameter {string} «arg»
-- @return {string|nil} Manga series code.
-- @description Gets the manga series code for «arg». «nil» if not found.
function D.getMangaS( arg )
return DATA.s.manga[ normalize( arg ) ];
end
-- @name getMangaSeries
-- @parameter {string} «arg»
-- @return {string|nil} Manga series name.
-- @description Gets the manga series name for «arg». «nil» if not found.
function D.getMangaSeries( arg )
return DATA.series.manga[ D.getMangaS( arg ) ];
end
----------
-- Return:
----------
return D;
-- </pre>