All Projects → hatnote → Wikimon

hatnote / Wikimon

A WebSocket-oriented monitor for Wikipedia (also, wikimon, wikital monsters)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Wikimon

Megalodon
Mastodon, Pleroma and Misskey API client library for node.js and browser
Stars: ✭ 52 (-17.46%)
Mutual labels:  websockets
Wsdirector
All the world's a server, and all the men and women merely clients
Stars: ✭ 58 (-7.94%)
Mutual labels:  websockets
Squid
Declarative and Reactive Networking for Swift.
Stars: ✭ 61 (-3.17%)
Mutual labels:  websockets
Web Archives
A web archives reader
Stars: ✭ 52 (-17.46%)
Mutual labels:  wikipedia
Shinobi
☮️ 🇵🇸 Shinobi CE - The Free Open Source CCTV platform written in Node.JS (Camera Recorder - Security Surveillance Software - Restreamer
Stars: ✭ 1,099 (+1644.44%)
Mutual labels:  websockets
Muster
A universal data layer for components and services
Stars: ✭ 59 (-6.35%)
Mutual labels:  websockets
Socketshark
A WebSocket message router based on Python/Redis/asyncio
Stars: ✭ 51 (-19.05%)
Mutual labels:  websockets
Webconsole
Spigot plugin to manage your server remotely using a web interface
Stars: ✭ 62 (-1.59%)
Mutual labels:  websockets
Inlets
Cloud Native Tunnel, now inlets PRO
Stars: ✭ 8,420 (+13265.08%)
Mutual labels:  websockets
Karamel
Kafka Browser that supports standalone Kafka and Strimzi operator
Stars: ✭ 61 (-3.17%)
Mutual labels:  websockets
Websocket For Python
[Project on Hiatus] WebSocket client and server library for Python 2 and 3 as well as PyPy (ws4py 0.5.1)
Stars: ✭ 1,078 (+1611.11%)
Mutual labels:  websockets
Steamwebpipes
🚀 Pushes Steam changelists to WebSocket clients
Stars: ✭ 56 (-11.11%)
Mutual labels:  websockets
Lws Esp32 Factory
Libwebsockets ESP32 Factory Application
Stars: ✭ 60 (-4.76%)
Mutual labels:  websockets
Channelstream
Channelstream is a websocket communication server for web applications
Stars: ✭ 52 (-17.46%)
Mutual labels:  websockets
Php Forex Quotes
PHP Library for fetching realtime forex quotes.
Stars: ✭ 61 (-3.17%)
Mutual labels:  websockets
Django Channels React Multiplayer
turn based strategy game using django channels, redux, and react hooks
Stars: ✭ 52 (-17.46%)
Mutual labels:  websockets
Postgresql2websocket
Send PostgreSQL notifications over websockets
Stars: ✭ 58 (-7.94%)
Mutual labels:  websockets
Legislator
Interface to the Comparative Legislators Database
Stars: ✭ 62 (-1.59%)
Mutual labels:  wikipedia
Wikipedia ner
📖 Labeled examples from wiki dumps in Python
Stars: ✭ 61 (-3.17%)
Mutual labels:  wikipedia
Red5 Websocket
Websocket plug-in for Red5
Stars: ✭ 60 (-4.76%)
Mutual labels:  websockets

WikiMon

Watch the RecentChanges IRC feed with Python. Support for various WikiMedia projects and languages.

Usage

At the moment, WikiMon's primary usage pattern is broadcasting changes over WebSocket. If you'd simply like to consume these messages, feel free to point a WebSocket client (such as your browser or Autobahn) at http://wikimon.hatnote.com/en/.

If you'd like to run your own copy of WikiMon, install the requirements below, and run the monitor_websocket.py command as follows:

usage: monitor_websocket.py [-h] [--project PROJECT] [--lang LANG]
                            [--port PORT] [--debug] [--loglevel LOGLEVEL]

broadcast realtime edits to a Mediawiki project over websockets

optional arguments:
    -h, --help           show this help message and exit
    --project PROJECT
    --lang LANG
    --port PORT          listen port for websocket connections
    --debug
    --loglevel LOGLEVEL

Requirements

  • Twisted==13.0.0
  • autobahn==0.5.14
  • wapiti

Format

Here are a couple example messages, as broadcast over WebSocket:

{
  "action": "edit",
  "change_size": 19,
  "flags": "M",
  "hashtags": [],
  "is_anon": false,
  "is_bot": false,
  "is_minor": true,
  "is_new": false,
  "is_unpatrolled": false,
  "mentions": [],
  "ns": "User talk",
  "page_title": "User talk:Manxruler",
  "parent_rev_id": "775894803",
  "rev_id": "775894650",
  "summary": "/* The battle of Kristiansand (1940) */",
  "url": "https://en.wikipedia.org/w/index.php?diff=775894803&oldid=775894650",
  "user": "Carsten R D"
}

{
  "action": "edit",
  "change_size": -12,
  "flags": null,
  "geo_ip": {
    "city": "Salisbury",
    "country_name": "United States",
    "latitude": 38.3761,
    "longitude": -75.6086,
    "region_name": "Maryland"
  },
  "hashtags": [],
  "is_anon": true,
  "is_bot": false,
  "is_minor": false,
  "is_new": false,
  "is_unpatrolled": false,
  "mentions": [],
  "ns": "Main",
  "page_title": "Evanescence (Evanescence album)",
  "parent_rev_id": "775894800",
  "rev_id": "774995266",
  "summary": "/* Credits and personnel */ \"Personnel\" is sufficient",
  "url": "https://en.wikipedia.org/w/index.php?diff=775894800&oldid=774995266",
  "user": "71.200.123.192"
}

As you can see, the set of keys sent is always the same. Note that the flags key is redundant, as it is parsed out into is_minor, is_bot, is_unpatrolled, and is_new.

Geolocation

Geolocation is done in process, using maxmind's free dataset. See the GeoDB directory for more info.

See also

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].