MediaWiki REL1_33
|
A foreign repository with a remote MediaWiki with an API thingy. More...
Public Member Functions | |
__construct ( $info) | |
canCacheThumbs () | |
Are we locally caching the thumbnails? | |
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. | |
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. | |
getZonePath ( $zone) | |
Get the local directory corresponding to one of the basic zones. | |
getZoneUrl ( $zone, $ext=null) | |
httpGetCached ( $target, $query, $cacheTTL=3600) | |
HTTP GET request to a mediawiki API (with caching) | |
newFile ( $title, $time=false) | |
Per docs in FileRepo, this needs to return false if we don't support versioned files. | |
Public Member Functions inherited from FileRepo | |
__construct (array $info=null) | |
backendSupportsUnicodePaths () | |
canTransformVia404 () | |
Returns true if the repository can transform files via a 404 handler. | |
checkRedirect (Title $title) | |
Checks if there is a redirect named as $title. | |
cleanDir ( $dir) | |
Deletes a directory if empty. | |
cleanupBatch (array $files, $flags=0) | |
Deletes a batch of files. | |
cleanupDeletedBatch (array $storageKeys) | |
Delete files in the deleted directory if they are not referenced in the filearchive table. | |
concatenate (array $srcPaths, $dstPath, $flags=0) | |
Concatenate a list of temporary files into a target file location. | |
delete ( $srcRel, $archiveRel) | |
Move a file to the deletion archive. | |
deleteBatch (array $sourceDestPairs) | |
Move a group of files to the deletion archive. | |
fileExists ( $file) | |
Checks existence of a file. | |
findBySha1s (array $hashes) | |
Get an array of arrays or iterators of file objects for files that have the given SHA-1 content hashes. | |
findFile ( $title, $options=[]) | |
Find an instance of the named file created at the specified time Returns false if the file does not exist. | |
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. | |
findFiles (array $items, $flags=0) | |
Find many files at once. | |
findFilesByPrefix ( $prefix, $limit) | |
Return an array of files where the name starts with $prefix. | |
freeTemp ( $virtualUrl) | |
Remove a temporary file or mark it for garbage collection. | |
getBackend () | |
Get the file backend instance. | |
getDeletedHashPath ( $key) | |
Get a relative path for a deletion archive key, e.g. | |
getDescriptionRenderUrl ( $name, $lang=null) | |
Get the URL of the content-only fragment of the description page. | |
getDescriptionStylesheetUrl () | |
Get the URL of the stylesheet to apply to description pages. | |
getDescriptionUrl ( $name) | |
Get the URL of an image description page. | |
getDisplayName () | |
Get the human-readable name of the repo. | |
getErrorCleanupFunction () | |
Get a callback function to use for cleaning error message parameters. | |
getFileSha1 ( $virtualUrl) | |
Get the sha1 (base 36) of a file with a given virtual URL/storage path. | |
getFileSize ( $virtualUrl) | |
Get the size of a file with a given virtual URL/storage path. | |
getFileTimestamp ( $virtualUrl) | |
Get the timestamp of a file with a given virtual URL/storage path. | |
getHashLevels () | |
Get the number of hash directory levels. | |
getHashPath ( $name) | |
Get a relative path including trailing slash, e.g. | |
getLocalCacheKey () | |
Get a key for this repo in the local cache domain. | |
getLocalCopy ( $virtualUrl) | |
Get a local FS copy of a file with a given virtual URL/storage path. | |
getLocalReference ( $virtualUrl) | |
Get a local FS file with a given virtual URL/storage path. | |
getName () | |
Get the name of this repository, as specified by $info['name]' to the constructor. | |
getNameFromTitle (Title $title) | |
Get the name of a file from its title object. | |
getReadOnlyReason () | |
Get an explanatory message if this repo is read-only. | |
getRootDirectory () | |
Get the public zone root storage directory of the repository. | |
getSharedCacheKey () | |
Get a key on the primary cache for this repository. | |
getTempHashPath ( $suffix) | |
Get a relative path including trailing slash, e.g. | |
getTempRepo () | |
Get a temporary private FileRepo associated with this repo. | |
getThumbProxySecret () | |
Get the secret key for the proxied thumb service. | |
getThumbProxyUrl () | |
Get the URL thumb.php requests are being proxied to. | |
getThumbScriptUrl () | |
Get the URL of thumb.php. | |
getUploadStash (User $user=null) | |
Get an UploadStash associated with this repo. | |
getVirtualUrl ( $suffix=false) | |
Get a URL referring to this repository, with the private mwrepo protocol. | |
hasSha1Storage () | |
Returns whether or not storage is SHA-1 based. | |
invalidateImageRedirect (Title $title) | |
Invalidates image redirect cache related to that image Doesn't do anything for repositories that don't support image redirects. | |
isLocal () | |
Returns true if this the local file repository. | |
makeUrl ( $query='', $entry='index') | |
Make an url to this repo. | |
nameForThumb ( $name) | |
Get the portion of the file that contains the origin file name. | |
newFatal ( $message) | |
Create a new fatal error. | |
newGood ( $value=null) | |
Create a new good result. | |
paranoidClean ( $param) | |
Path disclosure protection function. | |
passThrough ( $param) | |
Path disclosure protection function. | |
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. | |
publishBatch (array $ntuples, $flags=0) | |
Publish a batch of files. | |
quickCleanDir ( $dir) | |
Deletes a directory if empty. | |
quickImport ( $src, $dst, $options=null) | |
Import a file from the local file system into the repo. | |
quickImportBatch (array $triples) | |
Import a batch of files from the local file system into the repo. | |
quickPurge ( $path) | |
Purge a file from the repo. | |
quickPurgeBatch (array $paths) | |
Purge a batch of files from the repo. | |
resolveVirtualUrl ( $url) | |
Get the backend storage path corresponding to a virtual URL. | |
store ( $srcPath, $dstZone, $dstRel, $flags=0) | |
Store a file to a given destination. | |
storeBatch (array $triplets, $flags=0) | |
Store a batch of files. | |
storeTemp ( $originalName, $srcPath) | |
Pick a random name in the temp zone and store a file to it. | |
streamFile ( $virtualUrl, $headers=[]) | |
Attempt to stream a file with the given virtual URL/storage path. | |
streamFileWithStatus ( $virtualUrl, $headers=[], $optHeaders=[]) | |
Attempt to stream a file with the given virtual URL/storage path. | |
supportsSha1URLs () | |
Returns whether or not repo supports having originals SHA-1s in the thumb URLs. | |
validateFilename ( $filename) | |
Determine if a relative path is valid, i.e. | |
Static Public Member Functions | |
static | getUserAgent () |
The user agent the ForeignAPIRepo will use. | |
static | httpGet ( $url, $timeout='default', $options=[], &$mtime=false) |
Like a Http:get request, but with custom User-Agent. | |
Static Public Member Functions inherited from FileRepo | |
static | isVirtualUrl ( $url) |
Determine if a string is an mwrepo:// URL. | |
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. | |
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 | |
enumFilesInStorage ( $callback) | |
Call a callback function for every public file in the repository. | |
getZoneLocation ( $zone) | |
The the storage container and base path of a zone. | |
initDirectory ( $dir) | |
Creates a directory with the appropriate zone permissions. | |
initZones ( $doZones=[]) | |
Check if a single zone or list of zones is defined for usage. | |
resolveToStoragePath ( $path) | |
If a path is a virtual URL, resolve it to a storage path. | |
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. | |
int | $fileCacheExpiry = 2592000 |
Redownload thumbnail files after this expiry. | |
$fileFactory = [ ForeignAPIFile::class, 'newFromTitle' ] | |
array | $mFileExists = [] |
Protected Attributes inherited from FileRepo | |
int | $abbrvThreshold |
File names over this size will use the short form of thumbnail names. | |
string | $articleUrl |
Equivalent to $wgArticlePath, e.g. | |
FileBackend | $backend |
int | $deletedHashLevels |
The number of directory levels for hash-based division of deleted files. | |
string | $descBaseUrl |
URL of image description pages, e.g. | |
string | $favicon |
The URL of the repo's favicon, if any. | |
array | $fileFactory = [ UnregisteredLocalFile::class, 'newFromTitle' ] |
callable Override these in the base class | |
array | $fileFactoryKey = false |
callable|bool Override these in the base class | |
int | $hashLevels |
The number of directory levels for hash-based division of files. | |
bool | $hasSha1Storage = false |
bool | $initialCapital |
Equivalent to $wgCapitalLinks (or $wgCapitalLinkOverrides[NS_FILE], determines whether filenames implicitly start with a capital letter. | |
bool | $isPrivate |
Whether all zones should be private (e.g. | |
array | $oldFileFactory = false |
callable|bool Override these in the base class | |
array | $oldFileFactoryKey = false |
callable|bool Override these in the base class | |
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. | |
string | $scriptDirUrl |
URL of the MediaWiki installation, equivalent to $wgScriptPath, e.g. | |
bool | $supportsSha1URLs = false |
string | $thumbProxySecret |
Secret key to pass as an X-Swift-Secret header to the proxied thumb service. | |
string | $thumbProxyUrl |
URL of where to proxy thumb.php requests to. | |
string | $thumbScriptUrl |
URL of thumb.php. | |
string | $thumbUrl |
The base thumbnail URL. | |
bool | $transformVia404 |
Whether to skip media file transformation on parse and rely on a 404 handler instead. | |
string false | $url |
Public zone URL. | |
WANObjectCache | $wanCache |
array | $zones = [] |
Map of zones to config. | |
Static Protected Attributes | |
static | $imageInfoProps |
List of iiprop values for the thumbnail fetch queries. | |
Private Attributes | |
string | $mApiBase |
A foreign repository with a remote MediaWiki with an API thingy.
Example config:
$wgForeignFileRepos[] = [ 'class' => ForeignAPIRepo::class, '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, and(), and canCacheThumbs().
|
protected |
MWException |
Reimplemented from FileRepo.
Definition at line 597 of file ForeignAPIRepo.php.
ForeignAPIRepo::canCacheThumbs | ( | ) |
Are we locally caching the thumbnails?
Definition at line 458 of file ForeignAPIRepo.php.
Referenced by __construct(), and getThumbUrlFromCache().
ForeignAPIRepo::enumFiles | ( | $callback | ) |
callable | $callback |
MWException |
Reimplemented from FileRepo.
Definition at line 590 of file ForeignAPIRepo.php.
ForeignAPIRepo::fetchImageQuery | ( | $query | ) |
array | $query |
Definition at line 189 of file ForeignAPIRepo.php.
References $data, $query, $wgLanguageCode, and(), and httpGetCached().
Referenced by fileExistsBatch(), findBySha1(), getThumbError(), and getThumbUrl().
ForeignAPIRepo::fileExistsBatch | ( | array | $files | ) |
string[] | $files |
Reimplemented from FileRepo.
Definition at line 126 of file ForeignAPIRepo.php.
References $data, $f, $file, and(), fetchImageQuery(), FileBackend\isStoragePath(), and wfWarn().
ForeignAPIRepo::findBySha1 | ( | $hash | ) |
string | $hash |
Reimplemented from FileRepo.
Definition at line 236 of file ForeignAPIRepo.php.
References $ret, and(), fetchImageQuery(), ForeignAPIFile\getProps(), and NS_FILE.
ForeignAPIRepo::getApiUrl | ( | ) |
Definition at line 102 of file ForeignAPIRepo.php.
References $mApiBase.
Referenced by getInfo().
ForeignAPIRepo::getFileProps | ( | $virtualUrl | ) |
string | $virtualUrl |
Reimplemented from FileRepo.
Definition at line 181 of file ForeignAPIRepo.php.
|
staticprotected |
ForeignAPIRepo::getImageInfo | ( | $data | ) |
array | $data |
Definition at line 216 of file ForeignAPIRepo.php.
Referenced by getThumbError(), and getThumbUrl().
ForeignAPIRepo::getInfo | ( | ) |
Get information about the repo - overrides/extends the parent class's information.
Reimplemented from FileRepo.
Definition at line 476 of file ForeignAPIRepo.php.
References $data, $query, and(), getApiUrl(), and httpGetCached().
ForeignAPIRepo::getThumbError | ( | $name, | |
$width = -1, | |||
$height = -1, | |||
$otherParams = '', | |||
$lang = null ) |
string | $name | |
int | $width | |
int | $height | |
string | $otherParams | |
string | null | $lang | Language code for language of error |
Definition at line 294 of file ForeignAPIRepo.php.
References $data, $lang, and(), fetchImageQuery(), FileRepo\getDisplayName(), getImageInfo(), and wfDebug().
ForeignAPIRepo::getThumbUrl | ( | $name, | |
$width = -1, | |||
$height = -1, | |||
& | $result = null, | ||
$otherParams = '' ) |
string | $name | |
int | $width | |
int | $height | |
array | null | &$result | Output-only parameter, guaranteed to become an array |
string | $otherParams |
Definition at line 265 of file ForeignAPIRepo.php.
References $data, and(), 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 $apiThumbCacheExpiry, FileRepo\$backend, $name, $params, and(), canCacheThumbs(), FileBackend\fileExists(), FileRepo\getBackend(), FileBackend\getFileTimestamp(), FileRepo\getHashPath(), FileRepo\getLocalCacheKey(), getThumbUrl(), getZonePath(), getZoneUrl(), httpGet(), FileBackend\prepare(), FileBackend\quickCreate(), FileRepo\validateFilename(), and wfDebug().
|
static |
The user agent the ForeignAPIRepo will use.
Definition at line 466 of file ForeignAPIRepo.php.
References Http\userAgent(), and VERSION.
ForeignAPIRepo::getZonePath | ( | $zone | ) |
Get the local directory corresponding to one of the basic zones.
string | $zone |
Reimplemented from FileRepo.
Definition at line 445 of file ForeignAPIRepo.php.
References and().
Referenced by getThumbUrlFromCache().
ForeignAPIRepo::getZoneUrl | ( | $zone, | |
$ext = null ) |
string | $zone | |
string | null | $ext | Optional file extension |
Reimplemented from FileRepo.
Definition at line 429 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 | |
int | bool | &$mtime | Resulting Last-Modified UNIX timestamp if received |
Definition at line 513 of file ForeignAPIRepo.php.
References $options, $req, FileRepo\$url, and(), PROTO_HTTP, wfDebug(), wfExpandUrl(), and wfTimestamp().
Referenced by getThumbUrlFromCache(), and 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 561 of file ForeignAPIRepo.php.
References $html, $query, FileRepo\$url, and(), FileRepo\getLocalCacheKey(), httpGet(), FileRepo\makeUrl(), 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.
Referenced by getThumbUrlFromCache().
|
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.
|
private |
Definition at line 67 of file ForeignAPIRepo.php.
Referenced by getApiUrl().
|
protected |
Definition at line 64 of file ForeignAPIRepo.php.
const ForeignAPIRepo::VERSION = "2.1" |
Definition at line 45 of file ForeignAPIRepo.php.
Referenced by getUserAgent().