A simple client that implements MediaWiki's REST API.
To install:
go get https://github.com/Lakelimbo/mwgoCreate a new instance:
import "github.com/Lakelimbo/mwgo"
var wiki = mwgo.New(<--your url here-->)The URL must have the /rest.php/v1 attached to it (or whatever is your endpoint), otherwise it will not be able to send requests.
page, err := wiki.Page.GetPageBare("Venus")
if err != nil {
return err
}
licenseTitle := page.License.Title // "Creative Commons Attribution-Share Alike 4.0"
licenseURL := page.License.URL // https://creativecommons.org/licenses/by-sa/4.0/deed.en"page, err := wiki.Page.GetHTML("Venus", "view", false)
if err != nil {
return err
}
// now `page` has all of the HTML output as a stringlimit := 50
pages, err := wiki.Search.Pages("planet", limit)
if err != nil {
return err
}edit, err := wiki.History.GetRevisionBare(1234567890)
if err != nil {
return err
}filter := mwgo.PageHistoryParams{
OlderThan: 123,
NewerThan: 456,
Filter: "bot"
}
page, err := wiki.History.GetPageHistory("Venus", &filter)
if err != nil {
return err
}file, err := wiki.File.GetFile("File:UwU.png")
if err != nil {
return err
}
width := file.Width
duration := file.Duration // if it was an audio or video- core integration tests
- add ability to create and edit pages
- improve error handling
- add Wikidiff2 integration tests
- add older/larger Action API endpoints