本页面为灰机的开放API官方文档。

综述

灰机基于MediaWiki 1.30.0 (1fc3253),支持MediaWiki内核所包含标准API,此部分文档可以在https://mediawiki.org找到,在此不再赘述。灰机内部所使用的网络API种类繁多,其中很多还处于不断变化调整的时期,灰机无法保证其稳定性。原则上,只有在此页列出的API才适用于生产环境。如果您的应用需要使用其他的数据,可联系我们。

endpoint

灰机API endpoint为/api.php。比如,请求冰与火之歌中文维基的数据,应将请求发送至https://asoiaf.huiji.wiki/api.php。如您需要返回json数据,可加上format=json,如需要xml,可以加上format=xml。

restful API

MediaWiki最新版本中除了传统的PHP API外,新增了restful API,主要用于Html和Wikitext的转换。详情请参阅:https://qmtxd.huijiwiki.com/api/rest_v1/

页面相关

统计数据

page action count


top pages

参数说明:

  • sitePrefix-pageId:站点的前缀和页面ID (必须)
  • type: edit, poll, comment, rate, view, upload其中之一 (必须)
  • fromDate:YYYY-MM-DD (可选,不指定默认起始)
  • toDate:YYYY-MM-DD(可选,不指定默认当前)
  • top:前多少个 (可选,不指定默认10)

站点相关

获得当前站点的属性

  • 示例:/api.php?action=query&meta=siteinfo&siprop=general

与MediaWiki内核中的同名方法参数一致,但是返回的数据中多了group、prefix、avatar、property、sysop、bureaucrat几条属性。

获得当前站点的统计

  • 示例:/api.php?action=query&meta=siteinfo&siprop=statistics

与MediaWiki内核中的同名方法参数一致,但是返回的数据中多了followers、rating、score、donate、donategoalmet几条属性

统计数据

site action count

top sites

参数说明:

  • sitePrefix:站点的前缀 例如魔戒-lotr 星露谷-xinglugu(必须)
  • type: edit, poll, comment, rate, view, upload其中之一 (必须)
  • fromDate:YYYY-MM-DD (可选,不指定默认起始)
  • toDate:YYYY-MM-DD(可选,不指定默认当前)
  • top:前多少个 (可选,不指定默认10)

用户相关

获得当前登录用户的属性

灰机版本 > 2.0.10

通过inprop参数传入需要获取的用户属性,每条属性用|分割。

inprop的可选值为:

          'protection',
          'talkid',
          'watched', # private
          'watchers', # private
          'visitingwatchers', # private
          'notificationtimestamp', # private
          'subjectid',
          'url',
          'readable', # private
          'preload',
          'displaytitle',
          'viewership',
          'editorship',
          'besteditors'

获得任意用户的属性

通过ususers参数传入目标用户的用户名,每个用户名用|分割。 通过usprop参数传入需要获取的用户属性,每条属性用|分割。

'blockinfo',
'groups',
'implicitgroups',
'rights',
'editcount',
'registration',
'emailable',
'gender',
'centralids',
'designation',
'avatar',
'gender',
'status',
'province',
'city',
'birthday',
'followingcount',
'followercount',
'stats',
'level',
'followingsites',
'context',

统计数据

user action count

top users

参数说明:

  • userId: 用户ID (必须)
  • type: edit, poll, comment, rate,upload 其中之一 (必须)
  • fromDate:YYYY-MM-DD (可选,不指定默认起始)
  • toDate:YYYY-MM-DD(可选,不指定默认当前)
  • sitePrefix:站点的前缀 例如魔戒-lotr 星露谷-xinglugu(可选,不指定默认灰机全站点)
  • category:页面的分类 (可选,不指定默认无)
  • top:前多少个 (可选,不指定默认10)

获得符合特定条件的用户集合

被关注

示例: /api.php?action=query&list=allhuijiusers&followedby=Reasno

关注某个用户

示例: /api.php?action=query&list=allhuijiusers&following=Reasno

关注某个站点

示例: /api.php?action=query&list=allhuijiusers&followingsite=asoiaf

avatar
avatar
Honestleaf
0

@Reasno @曾经的大师兄 #获得任意用户的属性这里似乎有问题,prop=huijiusers</code>并不存在,感觉应该用<code>meta=huijiuserinfo</code>?

1年
avatar
Reasno
1

应该是list=huijiusers

1年
avatar
Reasno
0

meta里只能获得当前用户的信息。

1年
avatar
Honestleaf
0

回复@Reasno:明白了

1年
avatar
Honestleaf
0

回复@Reasno: 另外,#获得任意用户的属性 -> 统计数据 -> “type: edit, poll, comment, rate,view 其中之一 (必须)” 这里的view似乎也不存在?应该是upload吧?

1年
avatar
Reasno
0

回复@Honestleaf:应该是

1年
avatar
Honestleaf
0

回复@Reasno: 这个统计会把机器人也包括进去,有没有直接滤掉机器人的办法?

1年