shared-media-api v0.10

shared-media-api is a MediaWiki Query API wrapper that easily gets Category and File information into simple PHP arrays. Fine-tuned for WikiMedia Commmons.

Example: get media files in a category

<?php

require('../../vendor/autoload.php');

use Attogram\SharedMedia\Api\Category;
use Attogram\SharedMedia\Api\Media;

// Get the first result from a search of the category namespace
$category = new Category();
$category->setResponseLimit(1);
$myCategory = $category->search('Albert Einstein');
if (empty($myCategory)) {
    print 'Category Not Found';
    return;
}
print_r($myCategory);

// Get the first 2 Media files in a category
$media = new Media();
$media->setResponseLimit(2);
$media->setPageid($myCategory[0]['pageid']);
$myMedias = $media->getMediaInCategory();
if (empty($myMedias)) {
    print 'Media Not Found';
    return;
}
foreach ($myMedias as $myMedia) {
    print_r($myMedia);
}
Array
(
    [0] => Array
        (
            [pageid] => 970886
            [ns] => 14
            [title] => Category:Albert Einstein
            [index] => 1
            [size] => 198
            [pages] => 3
            [files] => 177
            [subcats] => 18
            [hidden] => 
        )

)
Array
(
    [pageid] => 42335632
    [ns] => 6
    [title] => File:Einstein Lehrerdiplom Bauzeitung.jpg
    [imagerepository] => local
    [timestamp] => 2015-08-14T08:18:42Z
    [user] => Glunggenbauer
    [userid] => 5122073
    [size] => 497393
    [width] => 1078
    [height] => 749
    [thumburl] => https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Einstein_Lehrerdiplom_Bauzeitung.jpg/100px-Einstein_Lehrerdiplom_Bauzeitung.jpg
    [thumbwidth] => 100
    [thumbheight] => 69
    [thumbmime] => image/jpeg
    [url] => https://upload.wikimedia.org/wikipedia/commons/7/7a/Einstein_Lehrerdiplom_Bauzeitung.jpg
    [descriptionurl] => https://commons.wikimedia.org/wiki/File:Einstein_Lehrerdiplom_Bauzeitung.jpg
    [descriptionshorturl] => https://commons.wikimedia.org/w/index.php?curid=42335632
    [sha1] => 7550c9d6ba4f81a5f7494c1548786691cb6670d4
    [imagedescription] => Lehrerdiplome von Albert Einstein und Sinai Tschulok in der Schweizerischen Bauzeitung vom 4. August 1900
    [imagedescription.source] => commons-desc-page
    [datetimeoriginal] => 1900-08-04
    [datetimeoriginal.source] => commons-desc-page
    [artist] => <span lang="en">Unknown</span><a href="https://www.wikidata.org/wiki/Q4233718" title="wikidata:Q4233718"><img alt="wikidata:Q4233718" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/20px-Wikidata-logo.svg.png" width="20" height="11" srcset="https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/30px-Wikidata-logo.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/40px-Wikidata-logo.svg.png 2x" data-file-width="1050" data-file-height="590"></a>
    [artist.source] => commons-desc-page
    [licenseshortname] => Public domain
    [licenseshortname.source] => commons-desc-page
    [licenseshortname.hidden] => 
    [usageterms] => Public domain
    [usageterms.source] => commons-desc-page
    [usageterms.hidden] => 
    [attributionrequired] => false
    [attributionrequired.source] => commons-desc-page
    [attributionrequired.hidden] => 
    [restrictions] => 
    [restrictions.source] => commons-desc-page
    [restrictions.hidden] => 
    [mime] => image/jpeg
)
Array
(
    [pageid] => 45542076
    [ns] => 6
    [title] => File:Einstein Dissertation eth-30378-01.pdf
    [imagerepository] => local
    [timestamp] => 2015-12-10T04:59:46Z
    [user] => Drdoht
    [userid] => 734439
    [size] => 593056
    [width] => 827
    [height] => 1320
    [pagecount] => 20
    [thumburl] => https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Einstein_Dissertation_eth-30378-01.pdf/page1-100px-Einstein_Dissertation_eth-30378-01.pdf.jpg
    [thumbwidth] => 100
    [thumbheight] => 160
    [thumbmime] => image/jpeg
    [url] => https://upload.wikimedia.org/wikipedia/commons/f/fc/Einstein_Dissertation_eth-30378-01.pdf
    [descriptionurl] => https://commons.wikimedia.org/wiki/File:Einstein_Dissertation_eth-30378-01.pdf
    [descriptionshorturl] => https://commons.wikimedia.org/w/index.php?curid=45542076
    [sha1] => 176d25c8850c0b93bd598b37f4e06a0f97836f5b
    [imagedescription] => <p>Albert Einstein, Dissertation Zürich, 30. April 1905, abgedruckt in <a rel="nofollow" class="external text" href="http://zs.thulb.uni-jena.de/receive/jportal_jparticle_00125834">Annalen der Physik <b>324</b>, 289-305 (1906).</a>
</p>
    [imagedescription.source] => commons-desc-page
    [datetimeoriginal] => 1905-04-30
    [datetimeoriginal.source] => commons-desc-page
    [artist] => <bdi><a href="https://en.wikipedia.org/wiki/en:Albert_Einstein" class="extiw" title="w:en:Albert Einstein">Albert Einstein</a>
</bdi>
    [artist.source] => commons-desc-page
    [licenseshortname] => Public domain
    [licenseshortname.source] => commons-desc-page
    [licenseshortname.hidden] => 
    [usageterms] => Public domain
    [usageterms.source] => commons-desc-page
    [usageterms.hidden] => 
    [attributionrequired] => false
    [attributionrequired.source] => commons-desc-page
    [attributionrequired.hidden] => 
    [restrictions] => 
    [restrictions.source] => commons-desc-page
    [restrictions.hidden] => 
    [mime] => application/pdf
)
Build Status Maintainability Documentation Status

See more Examples