Packages
API client library for any MediaWiki-based site, such as Wikipedia or Wikimedia Commons. Provides the Action API, realtime feed ingestion, and ORES scoring.
Current section
Files
Jump to
Current section
Files
lib/rest.ex
defmodule Wiki.Rest do
@moduledoc """
Streamlined interface for reading pages and fetching basic information.
See upstream references:
- https://www.mediawiki.org/wiki/Parsoid/API
- https://www.mediawiki.org/wiki/Specs/HTML
- https://www.mediawiki.org/wiki/Special:MyLanguage/API:REST_API
- https://www.mediawiki.org/wiki/API:REST_API/Reference
- https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:REST_API
Older backend:
- https://www.mediawiki.org/wiki/Wikimedia_REST_API
"""
@doc """
Fetch rendered page HTML with RDFa annotations.
```
Wiki.Rest.page_html(:enwiki, "Earth")
```
"""
def page_html(site, title, _revision \\ nil) do
Wiki.SiteMatrix.get!(site)
|> rest_url("/page/#{title}/html")
|> Tesla.get!()
end
def page_images(site, title) do
Wiki.SiteMatrix.get!(site)
|> rest_url("/page/#{title}/links/media")
|> Tesla.get!()
end
defp rest_url(site, path) when is_struct(site, Wiki.SiteMatrix.Spec) do
"#{site.base_url}/w/rest.php/v1#{path}"
end
end