View Source Wiki.SiteMatrix (mediawiki_client v0.4.8)
Retrieves sites from a wiki farm with the SiteMatrix extension installed.
Summary
Functions
Get the Action API for a known site
Look up a single site by key
Assertive variant of get
.
Get all sites for a wiki farm.
Options
api
- Action API URL for a site participating in the farm. Defaults to https://meta.wikimedia.org/w/api.php.
Types
@type client_options() :: [ Wiki.Action.client_option() | {:api, binary()} | {:key_fun, (Wiki.SiteMatrix.Spec.t() -> any())} ]
@opaque sitematrix_state()
Functions
@spec action_api(String.t() | Wiki.SiteMatrix.Spec.t()) :: String.t()
Get the Action API for a known site
Wiki.SiteMatrix.new()
|> Wiki.SiteMatrix.get("enwiki")
|> Wiki.SiteMatrix.action_api()
# "https://en.wikipedia.org/w/api.php"
As a convenience, the site can be referenced as a bare string, in which case it will be looked up in the default Wikimedia farm. Note that this will be uncached and so inappropriate for most production use.
Wiki.SiteMatrix.action_api("dewiki")
Arguments
site
- Populated site structure.
Return value
Calculated Action API.
@spec get(sitematrix_state(), String.t()) :: {:ok, Wiki.SiteMatrix.Spec.t()} | {:error, any()}
Look up a single site by key
Arguments
sitematrix
- Result of Sitematrix.new()key
- The dbname (eg. "enwiki") or value of another key if specified as an option to new().
Return value
Site spec or error
@spec get!(sitematrix_state(), String.t()) :: Wiki.SiteMatrix.Spec.t()
Assertive variant of get
.
@spec get_all(sitematrix_state()) :: {:ok, [Wiki.SiteMatrix.Spec.t()]} | {:error, any()}
Get all sites for a wiki farm.
Arguments
sitematrix
- Result of Sitematrix.new()
Return value
List of site specifications.
@spec new(client_options()) :: sitematrix_state()
Options
api
- Action API URL for a site participating in the farm. Defaults to https://meta.wikimedia.org/w/api.php.key_fun
- Function on a site spec, returning the key to build a lookup with, later passed as thekey
argument toget
. Defaults to returning the site's:dbname
(eg. "enwiki").