首页 > 解决方案 > MediaWiki 的默认 EventStream 端点是什么?

问题描述

我正在本地建立一个基于 MediaWiki 的网站。它在 localhost 上与 Apache 一起运行。我想设置一些脚本来使用我的 wiki 事件流。

MediaTech 的文档显示了这样的示例:

import json
from sseclient import SSEClient as EventSource

url = 'https://stream.wikimedia.org/v2/stream/recentchange'
for event in EventSource(url):

    if event.event == 'message':

        try:

            change = json.loads(event.data)
        except ValueError:

            pass
        else:

            print('{user} edited {title}'.format(**change))

但我找不到任何关于新安装的默认流端点在哪里的信息。我没有设置任何子域或任何东西,我发现的所有示例都使用 WMF 流。

我需要连接到哪个端点才能使用我的 wiki 事件流?

谢谢!

标签: mediawikiwikipediawikipedia-apimediawiki-apipywikibot

解决方案


'https://stream.wikimedia.org/v2/stream/recentchange'流式传输所有维基媒体网站的所有最新更改。要获取单个 wiki 的最新更改,您必须通过返回的内容(例如通过'server_name'键)对其进行过滤。作为替代方案,您可以使用 Pywikibot 的eventstream实现:

import pywikibot
from pywikibot.eventstreams import site_rc_listener
site = pywikibot.Site('wikipedia:de')
for change in site_rc_listener(site, total=10):
    print('{type} on page {title} by {user}.'.format_map(change))

推荐阅读