Jump to content

API:所有图像

From mediawiki.org
This page is a translated version of the page API:Allimages and the translation is 100% complete.
MediaWiki版本:
1.13

GET 请求列出所有图像文件,按标题或时间戳排序。

该模块可用作生成器

API帮助文档

list=allimages (ai)

(main | query | allimages)
  • This module requires read rights.
  • This module can be used as a generator.
  • Source: MediaWiki
  • License: GPL-2.0-or-later

Enumerate all images sequentially.

Specific parameters:
Other general parameters are available.
aisort

Property to sort by.

One of the following values: name, timestamp
Default: name
aidir

The direction in which to list.

One of the following values: ascending, descending, newer, older
Default: ascending
aifrom

The image title to start enumerating from. Can only be used with aisort=name.

aito

The image title to stop enumerating at. Can only be used with aisort=name.

aicontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

aistart

The timestamp to start enumerating from. Can only be used with aisort=timestamp.

Type: timestamp (allowed formats)
aiend

The timestamp to end enumerating. Can only be used with aisort=timestamp.

Type: timestamp (allowed formats)
aiprop

Which file information to get:

timestamp
Adds timestamp for the uploaded version.
user
Adds the user who uploaded each file version. If the user has been revision deleted, a userhidden property will be returned.
userid
Add the ID of the user that uploaded each file version. If the user has been revision deleted, a userhidden property will be returned.
comment
Comment on the version. If the comment has been revision deleted, a commenthidden property will be returned.
parsedcomment
Parse the comment on the version. If the comment has been revision deleted, a commenthidden property will be returned.
canonicaltitle
Adds the canonical title of the file. If the file has been revision deleted, a filehidden property will be returned.
url
Gives URL to the file and the description page. If the file has been revision deleted, a filehidden property will be returned.
size
Adds the size of the file in bytes and the height, width and page count (if applicable).
dimensions
Alias for size.
sha1
Adds SHA-1 hash for the file. If the file has been revision deleted, a filehidden property will be returned.
mime
Adds MIME type of the file. If the file has been revision deleted, a filehidden property will be returned.
mediatype
Adds the media type of the file. If the file has been revision deleted, a filehidden property will be returned.
metadata
Lists Exif metadata for the version of the file. If the file has been revision deleted, a filehidden property will be returned.
commonmetadata
Lists file format generic metadata for the version of the file. If the file has been revision deleted, a filehidden property will be returned.
extmetadata
Lists formatted metadata combined from multiple sources. Results are HTML formatted. If the file has been revision deleted, a filehidden property will be returned.
bitdepth
Adds the bit depth of the version. If the file has been revision deleted, a filehidden property will be returned.
badfile
Adds whether the file is on the MediaWiki:Bad image list
Values (separate with | or alternative): badfile, bitdepth, canonicaltitle, comment, commonmetadata, dimensions, extmetadata, mediatype, metadata, mime, parsedcomment, sha1, size, timestamp, url, user, userid
Default: timestamp|url
aiprefix

Search for all image titles that begin with this value. Can only be used with aisort=name.

aiminsize

Limit to images with at least this many bytes.

Type: integer
aimaxsize

Limit to images with at most this many bytes.

Type: integer
aisha1

SHA1 hash of image. Overrides aisha1base36.

aisha1base36

SHA1 hash of image in base 36 (used in MediaWiki).

aiuser

Only return files where the last version was uploaded by this user. Can only be used with aisort=timestamp. Cannot be used together with aifilterbots.

Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
aifilterbots

How to filter files uploaded by bots. Can only be used with aisort=timestamp. Cannot be used together with aiuser.

One of the following values: all, bots, nobots
Default: all
aimime

Disabled due to miser mode.

Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
ailimit

How many images in total to return.

Type: integer or max
The value must be between 1 and 500.
Default: 10


示例

示例1:通过名称获取图像

GET请求

列出命名空间中的所有图像,从以Graffiti_000开头的文件开始。 将初始响应限制为仅前3个图像。

响应

{
    "batchcomplete": "",
    "continue": {
        "aicontinue": "Graffiti_BTER_0001.JPG",
        "continue": "-||"
    },
    "query": {
        "allimages": [
            {
                "name": "Graffiti_0001.JPG",
                "timestamp": "2006-10-26T01:48:05Z",
                "url": "https://upload.wikimedia.org/wikipedia/en/9/98/Graffiti_0001.JPG",
                "descriptionurl": "https://en.wikipedia.org/wiki/File:Graffiti_0001.JPG",
                "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=7624737",
                "ns": 6,
                "title": "File:Graffiti 0001.JPG"
            },
            {
                "name": "Graffiti_0002.JPG",
                "timestamp": "2006-10-26T02:03:40Z",
                "url": "https://upload.wikimedia.org/wikipedia/en/6/66/Graffiti_0002.JPG",
                "descriptionurl": "https://en.wikipedia.org/wiki/File:Graffiti_0002.JPG",
                "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=7624935",
                "ns": 6,
                "title": "File:Graffiti 0002.JPG"
            },
            {
                "name": "Graffiti_0003.JPG",
                "timestamp": "2006-10-26T08:05:08Z",
                "url": "https://upload.wikimedia.org/wikipedia/en/2/2b/Graffiti_0003.JPG",
                "descriptionurl": "https://en.wikipedia.org/wiki/File:Graffiti_0003.JPG",
                "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=7628426",
                "ns": 6,
                "title": "File:Graffiti 0003.JPG"
            }
        ]
    }
}

示例代码

Python

#!/usr/bin/python3

"""
    get_allimages_by_name.py

    MediaWiki API Demos
    List all images in the namespace, starting from files that begin with
    'Graffiti_000'. Limit the initial response to just the first three images.

    MIT License
"""

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "allimages",
    "aifrom": "Graffiti_000",
    "ailimit": "3"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

IMAGES = DATA["query"]["allimages"]

for img in IMAGES:
    print(img["title"])

PHP

<?php
/*
    get_allimages_by_name.php

    MediaWiki API Demos
    List all images in the namespace, starting from files that begin with 'Graffiti_000'. Limit the initial response to just the first three images. 

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "allimages",
    "aifrom" => "Graffiti_000",
    "ailimit" => "3"
];

$url = $endPoint . "?" . http_build_query( $params );

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );

$result = json_decode( $output, true );

foreach( $result["query"]["allimages"] as $k => $v ) {
    echo( $v["title"] . "\n" );
}

JavaScript

/*
    get_allimages_by_name.js

    MediaWiki API Demos
    List all images in the namespace, starting from files that begin with 'Graffiti_000'. Limit the initial response to just the first three images. 

    MIT License
*/

var url = "https://en.wikipedia.org/w/api.php"; 

var params = {
    action: "query",
    format: "json",
    list: "allimages",
    aifrom: "Graffiti_000",
    ailimit: "3"
};

url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});

fetch(url)
    .then(function(response){return response.json();})
    .then(function(response) {
        var images = response.query.allimages;
        for (var img in images) {
            console.log(images[img].title);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_allimages_by_name.js

	MediaWiki API Demos
	List all images in the namespace, starting from files that begin with 'Graffiti_000'.
	Limit the initial response to just the first three images.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'allimages',
		aifrom: 'Graffiti_000',
		ailimit: '3'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var images = data.query.allimages,
		img;
	for ( img in images ) {
		console.log( images[ img ].title );
	}
} );

示例2:通过日期获取图像

GET请求

列出命名空间中的所有图像,从2010-01-01 18:05:46 (UTC)开始。

响应

{
    "batchcomplete": "",
    "continue": {
        "aicontinue": "20100101190633|Ryan_Baker_12-30-2009.JPG",
        "continue": "-||"
    },
    "query": {
        "allimages": [
            {
                "name": "DramaQueenThatGirl.jpg",
                "timestamp": "2010-01-01T18:21:57Z",
                "url": "https://upload.wikimedia.org/wikipedia/en/1/17/DramaQueenThatGirl.jpg",
                "descriptionurl": "https://en.wikipedia.org/wiki/File:DramaQueenThatGirl.jpg",
                "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=25646192",
                "ns": 6,
                "title": "File:DramaQueenThatGirl.jpg"
            },
            {
                "name": "VS_in_viena_austria.JPG",
                "timestamp": "2010-01-01T18:42:49Z",
                "url": "https://upload.wikimedia.org/wikipedia/en/b/bd/VS_in_viena_austria.JPG",
                "descriptionurl": "https://en.wikipedia.org/wiki/File:VS_in_viena_austria.JPG",
                "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=25646382",
                "ns": 6,
                "title": "File:VS in viena austria.JPG"
            },
            {
                "name": "Vasanthamtv_channel.jpg",
                "timestamp": "2010-01-01T19:03:08Z",
                "url": "https://upload.wikimedia.org/wikipedia/en/1/18/Vasanthamtv_channel.jpg",
                "descriptionurl": "https://en.wikipedia.org/wiki/File:Vasanthamtv_channel.jpg",
                "descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=25626466",
                "ns": 6,
                "title": "File:Vasanthamtv channel.jpg"
            }
            ...
        ]
    }
}

示例代码

Python

#!/usr/bin/python3

"""
    get_allimages_by_date.py

    MediaWiki API Demos
    List all images in the namespace, starting from January 1, 2010,
    at 18:05:46 UTC.

    MIT License
"""

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "allimages",
    "aisort": "timestamp",
    "aistart": "2010-01-01T18:05:46Z"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

IMAGES = DATA["query"]["allimages"]

for img in IMAGES:
    print(img["title"])

PHP

<?php
/*
    get_allimages_by_date.php

    MediaWiki API Demos
    List all images in the namespace, starting from January 1, 2010, at 18:05:46 UTC.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "allimages",
    "aisort" => "timestamp",
    "aistart" => "2010-01-01T18:05:46Z"
];

$url = $endPoint . "?" . http_build_query( $params );

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );

$result = json_decode( $output, true );

foreach( $result["query"]["allimages"] as $k => $v ) {
    echo( $v["title"] . "\n" );
}

JavaScript

/*
    get_allimages_by_date.js

    MediaWiki API Demos
    List all images in the namespace, starting from January 1, 2010, at 18:05:46 UTC.

    MIT License
*/

var url = "https://en.wikipedia.org/w/api.php"; 

var params = {
    action: "query",
    format: "json",
    list: "allimages",
    aisort: "timestamp",
    aistart: "2010-01-01T18:05:46Z"
};

url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});

fetch(url)
    .then(function(response){return response.json();})
    .then(function(response) {
        var images = response.query.allimages;
        for (var img in images) {
            console.log(images[img].title);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_allimages_by_date.js

	MediaWiki API Demos
	List all images in the namespace, starting from January 1, 2010, at 18:05:46 UTC.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'allimages',
		aisort: 'timestamp',
		aistart: '2010-01-01T18:05:46Z'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var images = data.query.allimages,
		img;
	for ( img in images ) {
		console.log( images[ img ].title );
	}
} );

参数历史

  • v1.23: 启用aiprop=canonicaltitle, aiprop=commonmetadata, aiprop=extmetadata
  • v1.20: 启用aisort, aistart, aiend, aiuser, aifilterbots, aidir=newer, aidir=older
  • v1.18: 启用aimime, aiprop=mediatype
  • v1.17: 启用aiprop=userid, aiprop=parsedcomment
  • v1.14: 启用bitdepth

补充资料

  • 仅返回每个文件的最新版本。
  • 参见数据格式 ,了解有关如何正确为aisort=timestamps格式化日期的更多信息

参见