|
MediaWiki
master
|
A foreign repository with a remote MediaWiki with an API thingy. More...


Public Member Functions | |
| __construct ($info) | |
| canCacheThumbs () | |
| Are we locally caching the thumbnails? More... | |
| enumFiles ($callback) | |
| fetchImageQuery ($query) | |
| fileExistsBatch (array $files) | |
| findBySha1 ($hash) | |
| getApiUrl () | |
| getFileProps ($virtualUrl) | |
| getImageInfo ($data) | |
| getInfo () | |
| Get information about the repo - overrides/extends the parent class's information. More... | |
| getThumbError ($name, $width=-1, $height=-1, $otherParams= '', $lang=null) | |
| getThumbUrl ($name, $width=-1, $height=-1, &$result=null, $otherParams= '') | |
| getThumbUrlFromCache ($name, $width, $height, $params="") | |
| Return the imageurl from cache if possible. More... | |
| getZonePath ($zone) | |
| Get the local directory corresponding to one of the basic zones. More... | |
| getZoneUrl ($zone, $ext=null) | |
| httpGetCached ($target, $query, $cacheTTL=3600) | |
| HTTP GET request to a mediawiki API (with caching) More... | |
| newFile ($title, $time=false) | |
| Per docs in FileRepo, this needs to return false if we don't support versioned files. More... | |
Public Member Functions inherited from FileRepo | |
| __construct (array $info=null) | |
| backendSupportsUnicodePaths () | |
| canTransformVia404 () | |
| Returns true if the repository can transform files via a 404 handler. More... | |
| checkRedirect (Title $title) | |
| Checks if there is a redirect named as $title. More... | |
| cleanDir ($dir) | |
| Deletes a directory if empty. More... | |
| cleanupBatch (array $files, $flags=0) | |
| Deletes a batch of files. More... | |
| cleanupDeletedBatch (array $storageKeys) | |
| Delete files in the deleted directory if they are not referenced in the filearchive table. More... | |
| concatenate (array $srcPaths, $dstPath, $flags=0) | |
| Concatenate a list of temporary files into a target file location. More... | |
| delete ($srcRel, $archiveRel) | |
| Move a file to the deletion archive. More... | |
| deleteBatch (array $sourceDestPairs) | |
| Move a group of files to the deletion archive. More... | |
| enumFiles ($callback) | |
| Call a callback function for every public regular file in the repository. More... | |
| fileExists ($file) | |
| Checks existence of a a file. More... | |
| fileExistsBatch (array $files) | |
| Checks existence of an array of files. More... | |
| findBySha1 ($hash) | |
| Get an array or iterator of file objects for files that have a given SHA-1 content hash. More... | |
| findBySha1s (array $hashes) | |
| Get an array of arrays or iterators of file objects for files that have the given SHA-1 content hashes. More... | |
| findFile ($title, $options=[]) | |
| Find an instance of the named file created at the specified time Returns false if the file does not exist. More... | |
| findFileFromKey ($sha1, $options=[]) | |
| Find an instance of the file with this key, created at the specified time Returns false if the file does not exist. More... | |
| findFiles (array $items, $flags=0) | |
| Find many files at once. More... | |
| findFilesByPrefix ($prefix, $limit) | |
| Return an array of files where the name starts with $prefix. More... | |
| freeTemp ($virtualUrl) | |
| Remove a temporary file or mark it for garbage collection. More... | |
| getBackend () | |
| Get the file backend instance. More... | |
| getDeletedHashPath ($key) | |
| Get a relative path for a deletion archive key, e.g. More... | |
| getDescriptionRenderUrl ($name, $lang=null) | |
| Get the URL of the content-only fragment of the description page. More... | |
| getDescriptionStylesheetUrl () | |
| Get the URL of the stylesheet to apply to description pages. More... | |
| getDescriptionUrl ($name) | |
| Get the URL of an image description page. More... | |
| getDisplayName () | |
| Get the human-readable name of the repo. More... | |
| getErrorCleanupFunction () | |
| Get a callback function to use for cleaning error message parameters. More... | |
| getFileProps ($virtualUrl) | |
| Get properties of a file with a given virtual URL/storage path. More... | |
| getFileSha1 ($virtualUrl) | |
| Get the sha1 (base 36) of a file with a given virtual URL/storage path. More... | |
| getFileSize ($virtualUrl) | |
| Get the size of a file with a given virtual URL/storage path. More... | |
| getFileTimestamp ($virtualUrl) | |
| Get the timestamp of a file with a given virtual URL/storage path. More... | |
| getHashLevels () | |
| Get the number of hash directory levels. More... | |
| getHashPath ($name) | |
| Get a relative path including trailing slash, e.g. More... | |
| getInfo () | |
| Return information about the repository. More... | |
| getLocalCacheKey () | |
| Get a key for this repo in the local cache domain. More... | |
| getLocalCopy ($virtualUrl) | |
| Get a local FS copy of a file with a given virtual URL/storage path. More... | |
| getLocalReference ($virtualUrl) | |
| Get a local FS file with a given virtual URL/storage path. More... | |
| getName () | |
| Get the name of this repository, as specified by $info['name]' to the constructor. More... | |
| getNameFromTitle (Title $title) | |
| Get the name of a file from its title object. More... | |
| getReadOnlyReason () | |
| Get an explanatory message if this repo is read-only. More... | |
| getRootDirectory () | |
| Get the public zone root storage directory of the repository. More... | |
| getSharedCacheKey () | |
| Get a key on the primary cache for this repository. More... | |
| getTempHashPath ($suffix) | |
| Get a relative path including trailing slash, e.g. More... | |
| getTempRepo () | |
| Get a temporary private FileRepo associated with this repo. More... | |
| getThumbScriptUrl () | |
| Get the URL of thumb.php. More... | |
| getUploadStash (User $user=null) | |
| Get an UploadStash associated with this repo. More... | |
| getVirtualUrl ($suffix=false) | |
| Get a URL referring to this repository, with the private mwrepo protocol. More... | |
| getZonePath ($zone) | |
| Get the storage path corresponding to one of the zones. More... | |
| getZoneUrl ($zone, $ext=null) | |
| Get the URL corresponding to one of the four basic zones. More... | |
| hasSha1Storage () | |
| Returns whether or not storage is SHA-1 based. More... | |
| invalidateImageRedirect (Title $title) | |
| Invalidates image redirect cache related to that image Doesn't do anything for repositories that don't support image redirects. More... | |
| isLocal () | |
| Returns true if this the local file repository. More... | |
| makeUrl ($query= '', $entry= 'index') | |
| Make an url to this repo. More... | |
| nameForThumb ($name) | |
| Get the portion of the file that contains the origin file name. More... | |
| newFatal ($message) | |
| Create a new fatal error. More... | |
| newFile ($title, $time=false) | |
| Create a new File object from the local repository. More... | |
| newGood ($value=null) | |
| Create a new good result. More... | |
| paranoidClean ($param) | |
| Path disclosure protection function. More... | |
| passThrough ($param) | |
| Path disclosure protection function. More... | |
| publish ($src, $dstRel, $archiveRel, $flags=0, array $options=[]) | |
| Copy or move a file either from a storage path, virtual URL, or file system path, into this repository at the specified destination location. More... | |
| publishBatch (array $ntuples, $flags=0) | |
| Publish a batch of files. More... | |
| quickCleanDir ($dir) | |
| Deletes a directory if empty. More... | |
| quickImport ($src, $dst, $options=null) | |
| Import a file from the local file system into the repo. More... | |
| quickImportBatch (array $triples) | |
| Import a batch of files from the local file system into the repo. More... | |
| quickPurge ($path) | |
| Purge a file from the repo. More... | |
| quickPurgeBatch (array $paths) | |
| Purge a batch of files from the repo. More... | |
| resolveVirtualUrl ($url) | |
| Get the backend storage path corresponding to a virtual URL. More... | |
| store ($srcPath, $dstZone, $dstRel, $flags=0) | |
| Store a file to a given destination. More... | |
| storeBatch (array $triplets, $flags=0) | |
| Store a batch of files. More... | |
| storeTemp ($originalName, $srcPath) | |
| Pick a random name in the temp zone and store a file to it. More... | |
| streamFile ($virtualUrl, $headers=[]) | |
| Attempt to stream a file with the given virtual URL/storage path. More... | |
| streamFileWithStatus ($virtualUrl, $headers=[], $optHeaders=[]) | |
| Attempt to stream a file with the given virtual URL/storage path. More... | |
| supportsSha1URLs () | |
| Returns whether or not repo supports having originals SHA-1s in the thumb URLs. More... | |
| validateFilename ($filename) | |
| Determine if a relative path is valid, i.e. More... | |
Static Public Member Functions | |
| static | getUserAgent () |
| The user agent the ForeignAPIRepo will use. More... | |
| static | httpGet ($url, $timeout= 'default', $options=[]) |
| Like a Http:get request, but with custom User-Agent. More... | |
Static Public Member Functions inherited from FileRepo | |
| static | isVirtualUrl ($url) |
| Determine if a string is an mwrepo:// URL. More... | |
Public Attributes | |
| const | VERSION = "2.1" |
Public Attributes inherited from FileRepo | |
| int | $descriptionCacheExpiry |
| bool | $fetchDescription |
| Whether to fetch commons image description pages and display them on the local wiki. More... | |
| const | DELETE_SOURCE = 1 |
| const | NAME_AND_TIME_ONLY = 1 |
| const | OVERWRITE = 2 |
| const | OVERWRITE_SAME = 4 |
| const | SKIP_LOCKING = 8 |
Protected Member Functions | |
| assertWritableRepo () | |
Protected Member Functions inherited from FileRepo | |
| assertWritableRepo () | |
| Throw an exception if this repo is read-only by design. More... | |
| enumFilesInStorage ($callback) | |
| Call a callback function for every public file in the repository. More... | |
| getZoneLocation ($zone) | |
| The the storage container and base path of a zone. More... | |
| initDirectory ($dir) | |
| Creates a directory with the appropriate zone permissions. More... | |
| initZones ($doZones=[]) | |
| Check if a single zone or list of zones is defined for usage. More... | |
| resolveToStoragePath ($path) | |
| If a path is a virtual URL, resolve it to a storage path. More... | |
Static Protected Member Functions | |
| static | getIIProps () |
Static Protected Member Functions inherited from FileRepo | |
| static | getHashPathForLevel ($name, $levels) |
Protected Attributes | |
| int | $apiThumbCacheExpiry = 86400 |
| Check back with Commons after this expiry. More... | |
| int | $fileCacheExpiry = 2592000 |
| Redownload thumbnail files after this expiry. More... | |
| $fileFactory = [ 'ForeignAPIFile', 'newFromTitle' ] | |
| array | $mFileExists = [] |
Protected Attributes inherited from FileRepo | |
| int | $abbrvThreshold |
| File names over this size will use the short form of thumbnail names. More... | |
| string | $articleUrl |
| Equivalent to $wgArticlePath, e.g. More... | |
| FileBackend | $backend |
| int | $deletedHashLevels |
| The number of directory levels for hash-based division of deleted files. More... | |
| string | $descBaseUrl |
| URL of image description pages, e.g. More... | |
| string | $favicon |
| The URL of the repo's favicon, if any. More... | |
| array | $fileFactory = [ 'UnregisteredLocalFile', 'newFromTitle' ] |
| callable Override these in the base class More... | |
| array | $fileFactoryKey = false |
| callable|bool Override these in the base class More... | |
| int | $hashLevels |
| The number of directory levels for hash-based division of files. More... | |
| bool | $hasSha1Storage = false |
| bool | $initialCapital |
| Equivalent to $wgCapitalLinks (or $wgCapitalLinkOverrides[NS_FILE], determines whether filenames implicitly start with a capital letter. More... | |
| bool | $isPrivate |
| Whether all zones should be private (e.g. More... | |
| array | $oldFileFactory = false |
| callable|bool Override these in the base class More... | |
| array | $oldFileFactoryKey = false |
| callable|bool Override these in the base class More... | |
| string | $pathDisclosureProtection = 'simple' |
| May be 'paranoid' to remove all parameters from error messages, 'none' to leave the paths in unchanged, or 'simple' to replace paths with placeholders. More... | |
| string | $scriptDirUrl |
| URL of the MediaWiki installation, equivalent to $wgScriptPath, e.g. More... | |
| string | $scriptExtension |
| Script extension of the MediaWiki installation, equivalent to the old $wgScriptExtension, e.g. More... | |
| bool | $supportsSha1URLs = false |
| string | $thumbScriptUrl |
| URL of thumb.php. More... | |
| string | $thumbUrl |
| The base thumbnail URL. More... | |
| bool | $transformVia404 |
| Whether to skip media file transformation on parse and rely on a 404 handler instead. More... | |
| bool | $url |
| Public zone URL. More... | |
| array | $zones = [] |
| Map of zones to config. More... | |
Static Protected Attributes | |
| static | $imageInfoProps |
| List of iiprop values for the thumbnail fetch queries. More... | |
Private Attributes | |
| array | $mQueryCache = [] |
A foreign repository with a remote MediaWiki with an API thingy.
Example config:
$wgForeignFileRepos[] = array( 'class' => 'ForeignAPIRepo', 'name' => 'shared', 'apibase' => 'https://en.wikipedia.org/w/api.php', 'fetchDescription' => true, // Optional 'descriptionCacheExpiry' => 3600, );
Definition at line 41 of file ForeignAPIRepo.php.
| ForeignAPIRepo::__construct | ( | $info | ) |
| array | null | $info |
Definition at line 72 of file ForeignAPIRepo.php.
References $wgLocalFileRepo, canCacheThumbs(), and global.
|
protected |
| MWException |
Definition at line 595 of file ForeignAPIRepo.php.
| ForeignAPIRepo::canCacheThumbs | ( | ) |
Are we locally caching the thumbnails?
Definition at line 457 of file ForeignAPIRepo.php.
Referenced by __construct(), and getThumbUrlFromCache().
| ForeignAPIRepo::enumFiles | ( | $callback | ) |
| callable | $callback |
| MWException |
Definition at line 588 of file ForeignAPIRepo.php.
| ForeignAPIRepo::fetchImageQuery | ( | $query | ) |
| array | $query |
Definition at line 189 of file ForeignAPIRepo.php.
References $query, $wgLanguageCode, FormatJson\decode(), global, and httpGetCached().
Referenced by fileExistsBatch(), findBySha1(), getThumbError(), and getThumbUrl().
| ForeignAPIRepo::fileExistsBatch | ( | array | $files | ) |
| array | $files |
Definition at line 126 of file ForeignAPIRepo.php.
References as, fetchImageQuery(), FileBackend\isStoragePath(), and wfWarn().
| ForeignAPIRepo::findBySha1 | ( | $hash | ) |
| string | $hash |
Definition at line 236 of file ForeignAPIRepo.php.
References $ret, as, fetchImageQuery(), ForeignAPIFile\getProps(), Title\makeTitle(), and NS_FILE.
| ForeignAPIRepo::getApiUrl | ( | ) |
| ForeignAPIRepo::getFileProps | ( | $virtualUrl | ) |
|
staticprotected |
| ForeignAPIRepo::getImageInfo | ( | $data | ) |
| array | $data |
Definition at line 216 of file ForeignAPIRepo.php.
References as.
Referenced by getThumbError(), and getThumbUrl().
| ForeignAPIRepo::getInfo | ( | ) |
Get information about the repo - overrides/extends the parent class's information.
Definition at line 475 of file ForeignAPIRepo.php.
References $query, FormatJson\decode(), getApiUrl(), and httpGetCached().
| ForeignAPIRepo::getThumbError | ( | $name, | |
$width = -1, |
|||
$height = -1, |
|||
$otherParams = '', |
|||
$lang = null |
|||
| ) |
| string | $name | |
| int | $width | |
| int | $height | |
| string | $otherParams | |
| string | $lang | Language code for language of error |
Definition at line 294 of file ForeignAPIRepo.php.
References $lang, $name, fetchImageQuery(), FileRepo\getDisplayName(), getImageInfo(), and wfDebug().
| ForeignAPIRepo::getThumbUrl | ( | $name, | |
$width = -1, |
|||
$height = -1, |
|||
| & | $result = null, |
||
$otherParams = '' |
|||
| ) |
| string | $name | |
| int | $width | |
| int | $height | |
| array | $result | Out parameter that will be changed by the function. |
| string | $otherParams |
Definition at line 265 of file ForeignAPIRepo.php.
References $name, fetchImageQuery(), getImageInfo(), and wfDebug().
Referenced by getThumbUrlFromCache().
| ForeignAPIRepo::getThumbUrlFromCache | ( | $name, | |
| $width, | |||
| $height, | |||
$params = "" |
|||
| ) |
Return the imageurl from cache if possible.
If the url has been requested today, get it from cache Otherwise retrieve remote thumb url, check for local file.
| string | $name | Is a dbkey form of a title |
| int | $width | |
| int | $height | |
| string | $params | Other rendering parameters (page number, etc) from handler's makeParamString. |
Definition at line 334 of file ForeignAPIRepo.php.
References FileRepo\$backend, $cache, $name, $params, canCacheThumbs(), FileBackend\fileExists(), FileRepo\getBackend(), FileBackend\getFileTimestamp(), FileRepo\getHashPath(), FileRepo\getLocalCacheKey(), ObjectCache\getMainWANInstance(), getThumbUrl(), getZonePath(), getZoneUrl(), FileBackend\prepare(), FileBackend\quickCreate(), FileRepo\validateFilename(), and wfDebug().
|
static |
The user agent the ForeignAPIRepo will use.
Definition at line 465 of file ForeignAPIRepo.php.
References Http\userAgent().
Referenced by httpGet().
| ForeignAPIRepo::getZonePath | ( | $zone | ) |
Get the local directory corresponding to one of the basic zones.
| string | $zone |
Definition at line 444 of file ForeignAPIRepo.php.
Referenced by getThumbUrlFromCache().
| ForeignAPIRepo::getZoneUrl | ( | $zone, | |
$ext = null |
|||
| ) |
| string | $zone | |
| string | null | $ext | Optional file extension |
Definition at line 428 of file ForeignAPIRepo.php.
References $ext, FileRepo\$thumbUrl, and FileRepo\$url.
Referenced by getThumbUrlFromCache().
|
static |
Like a Http:get request, but with custom User-Agent.
| string | $url | |
| string | $timeout | |
| array | $options |
Definition at line 511 of file ForeignAPIRepo.php.
References $options, $req, $status, FileRepo\$url, MWHttpRequest\factory(), getUserAgent(), PROTO_HTTP, wfDebug(), and wfExpandUrl().
Referenced by httpGetCached().
| ForeignAPIRepo::httpGetCached | ( | $target, | |
| $query, | |||
$cacheTTL = 3600 |
|||
| ) |
HTTP GET request to a mediawiki API (with caching)
| string | $target | Used in cache key creation, mostly |
| array | $query | The query parameters for the API request |
| int | $cacheTTL | Time to live for the memcached caching |
Definition at line 553 of file ForeignAPIRepo.php.
References $query, FileRepo\$url, FileRepo\getLocalCacheKey(), ObjectCache\getMainWANInstance(), httpGet(), FileRepo\makeUrl(), use, and wfAppendQuery().
Referenced by fetchImageQuery(), and getInfo().
| ForeignAPIRepo::newFile | ( | $title, | |
$time = false |
|||
| ) |
|
protected |
Check back with Commons after this expiry.
Definition at line 58 of file ForeignAPIRepo.php.
|
protected |
Redownload thumbnail files after this expiry.
Definition at line 61 of file ForeignAPIRepo.php.
|
protected |
Definition at line 56 of file ForeignAPIRepo.php.
|
staticprotected |
List of iiprop values for the thumbnail fetch queries.
Definition at line 51 of file ForeignAPIRepo.php.
|
protected |
Definition at line 64 of file ForeignAPIRepo.php.
|
private |
Definition at line 67 of file ForeignAPIRepo.php.
| const ForeignAPIRepo::VERSION = "2.1" |
Definition at line 45 of file ForeignAPIRepo.php.