mediawiki - 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 事件流?
谢谢!
解决方案
'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))
推荐阅读
- if-statement - 为什么我的 Lua if-else 不能正常工作?
- uwp - 如何在 UWP 中制作更好的折线图?
- vim - 带有日晒方案的术语颜色
- terminal - 我无法在 Windows 10 上卸载 cygwin
- python - 为什么下面的代码在输出中打印一个额外的零?
- python - SQL to Dataframe 不考虑空单元格
- c# - 如果 Main 是起点,您如何从静态 Main 调用非静态方法
- powerbi - 筛选器的 Power BI 日期范围自定义列
- javascript - 如何将jQuery添加到html
- salesforce - LWC 超级徽章第 14 步挑战