Extension:Cargo/Exporting data
You can export the data contained in Cargo to use by other systems. There are various ways to do it: via display formats, via the API, and through direct SQL querying.
Export display formats
Queries in Cargo include various display formats that can be used for exporting data: "csv", "json", "excel", "feed", "bibtex", "icalendar" and "zip". If you set one of these as the display format, you will simply see a link as the query result. Clicking on that link will download a file (provided by the page Special:CargoExport) to the user's computer, that holds that structured data. Any outside system can also directly access that URL, if it has access to the wiki.
bibtex
The "bibtex" format has the following parameters, all optional:
link text
- sets the text of the link (default is "View BibTeX", or the value at the pageMediaWiki:cargo-viewbibtex
)default entry type
- sets the default type of the BibTeX entries, e.g. article, book, booklet, etc. (default is "article")
In addition, you can set aliases for various queried fields in order to have them be included in the BibTeX output. The full set of handled aliases is: address, annote, author, booktitle, chapter, crossref, doi, edition, editor, howpublished, institution, journal, key, month, note, number, organization, pages, publisher, school, series, title, type, volume, year. A description for each field can be found here.
csv
The "csv" format has the following parameters, all optional:
delimiter
- sets the separator character (default is comma)link text
- sets the text of the link (default is "View CSV", or the value at the pageMediaWiki:cargo-viewcsv
)filename
- sets the name of the file that is downloaded (default is "results.csv")parse values
- if set, causes the text displayed to be parsed into HTML instead of kept as wikitext
excel
The "excel" format has the following parameters, all optional:
link text
- sets the text of the link (default is "View XLS", or the value at the pageMediaWiki:cargo-viewxls
)filename
- sets the name of the file that is downloaded (default is "results.xls")parse values
- if set, causes the text displayed to be parsed into HTML instead of kept as wikitext
feed
The "feed" format has the following parameters, all optional:
feed type
- sets the type of the feed; the set of allowed types is specified in $wgFeedClasses, and by default is "atom" or "rss" (default is "atom")link text
- sets the text of the link (default is "View Atom feed" or "View RSS feed", or the value at the pageMediaWiki:cargo-viewfeed
)feed title
- sets the feed'stitle
element (default is "News feed")feed description
- sets the feed'sdescription
(RSS) orsubtitle
(Atom) element
Additionally, the query can/should include the following fields:
_pageName
(mandatory) - sets the item'stitle
element (RSS/Atom)- the query must include at least one field of type Date or Datetime - the first Date/Datetime field sets the item's
pubDate
(RSS) orupdated
element description
(optional) - sets the item'sdescription
(RSS) orsummary
(Atom) element; if not set, the full wikitext of the specified page is usedurl
- sets the item'slink
element (RSS/Atom); if not set, the URL of the specified wiki page is usedauthor
(optional) - sets the item'sauthor
elementcomments
(optional) - sets the item'scomments
element (RSS only), which is meant to hold the URL of a page for comments relating to the itemid
(optional) - sets the item's unique ID; if not set, the URL of the wiki page is used
The feed item's guid
(RSS) or id
(Atom) element is set automatically to be a URL based on the wiki's URL plus the _pageName
.
icalendar
The "icalendar" format has the following parameters, all optional:
link text
— sets the text of the link (default is "View iCalendar", or the value at the pageMediaWiki:cargo-viewicalendar
)filename
— sets the name of the file that is downloaded (default is "export.ics")icalendar name
— name of the exported calendar (often displayed by calendar clients)icalendar description
— description of the exported calendar, can not contain any formatting
json
The "json" format has the following parameters, all optional:
link text
- sets the text of the link (default is "View JSON", or the value at the pageMediaWiki:cargo-viewjson
)parse values
- if set, causes the text displayed to be parsed into HTML instead of kept as wikitext
zip
The "zip" format creates a Zip file out of a set of files that have been uploaded to the wiki. It can be used either when querying such files directly (such as by querying the _fileData table), or querying a field that holds file names, such as a field called "Photo". If it's the latter, the field must be of type "File".
This format has the following parameters, both optional:
link text
— sets the text of the link (default is "Download ZIP", or the value at the pageMediaWiki:cargo-downloadzip
)filename
— sets the name of the file that is downloaded (default is "results.zip")
API
Cargo defines the "cargoquery" MediaWiki API action, which lets you call the equivalent of #cargo_query from an outside the wiki, returning the results in MediaWiki-specific JSON and XML formats. To see its usage syntax, search for "action=cargoquery" here.
Database querying
Finally, because Cargo stores its data in fairly simple database tables, you should be able to have other systems directly query its data using SQL, provided of course that they have access to that database. You can see an explanation of Cargo's data storage, including some special fields and tables, at Database storage details.