• Stars
    star
    962
  • Rank 47,317 (Top 1.0 %)
  • Language
    JavaScript
  • License
    Creative Commons ...
  • Created about 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

tweet about anonymous Wikipedia edits from particular IP address ranges

anon

Build Status Gitter chat

anon will watch Wikipedia for anonymous edits from a set of named IP ranges and will tweet when it notices one. It was inspired by @parliamentedits and was used to make @congressedits available until the account was suspended by Twitter in 2018. An archive of the @congressedits tweets up until that point is available. For more about why the @congressedits accounts was suspended see this article from The Wikipedian. anon is now being used by a community of users to post selected Wikipedia edits to Twitter.

anon can also send updates on GNU Social / Mastodon (see below)

Run

To run anon you will need to:

  1. install Node (v6 or higher)
  2. git clone https://github.com/edsu/anon.git
  3. cd anon
  4. npm install
  5. cp config.json.template config.json
  6. add twitter credentials for your bot to config.json (make sure the Twitter app you create has read/write permission so it can tweet)
  7. add IP ranges/names to config.json
  8. modify status template if desired
  9. `./anon.js

IP Ranges

You will notice in the example config.json.template that you can configure ip address ranges using a netmask:

"143.231.0.0/16"

or with an array of start/end IP addresses:

["143.231.0.0", "143.231.255.255"]

These two are equivalent, but the former is a bit faster, and easier to read. The latter is convenient if your range is difficult to express using a netmask.

If you would like your configuration file to reference the IP addresses in the external file just use the filename. So instead of:

{
  "nick": "anon1234",
  "accounts": [
    {
      "consumer_key": "",
      "consumer_secret": "",
      "access_token": "",
      "access_token_secret": "",
      "template": "{{page}} Wikipedia article edited anonymously from {{name}} {{&url}}",
      "ranges": {
        "Home Network": [
          ["192.168.1.1", "192.168.255.255"]
        ]
      }
    }
  ]
}

you would have:

{
  "nick": "anon1234",
  "accounts": [
    {
      "consumer_key": "",
      "consumer_secret": "",
      "access_token": "",
      "access_token_secret": "",
      "template": "{{page}} Wikipedia article edited anonymously from {{name}} {{&url}}",
      "ranges": "ranges.json"
    }
  ]
}

Mastodon

If you want to send messages on Mastodon you'll need to create an application and then get an access token for the account you want to send on. A utility is included to help you do that:

npm run mastodon

Debugging

If you would like to test without tweeting you can run anon with the --noop flag, which will cause the tweet to be written to the console but not actually sent to Twitter.

./anon.js --noop

If you would like to see all the change activity (URLs for each change) to test that it is actually listening, use the --verbose flag:

./anon.js --verbose

Alternate Configuration Files

By default anon will look for a config.json file in your current working directory. If you would like to specify the location of the configuration file, use the --config parameter:

./anon.js --config test.config

With Docker

Build image

  1. git clone the repo
  2. cd anon
  3. docker build . -t anon

Run image

  1. create your config.json file
  2. docker run -v $PWD/config.json:/opt/anon/config.json anon

Develop

There is not much to anon but there is a small test suite, which might come in handy if you want to add functionality.

npm test

Which Wikipedias?

anon uses the wikichanges module to listen to 38 language Wikipedias. wikichanges achieves this by logging in to the Wikimedia IRC server and listening to the recent changes channels for each Wikipedia. So if you plan on running wikichanges be sure your network supports IRC (it can sometimes be blocked).

Here are the Wikipedias that it currently supports:

Additionally, the following miscellaneous Wikimedia sites:

If you would like to have another one added please add a ticket to the wikichanges issue tracker.

Community

Below is a list of known anon instances. Please feel free to add, in an alphabetic order, your own by sending a pull request.

License:

  • CC0 public domain dedication

More Repositories

1

pymarc

process MARC records from Python
Python
252
star
2

wikistream

displays edit activity on wikipedia
JavaScript
233
star
3

microdata

python library for extracting html microdata
Python
165
star
4

etudier

Extract a citation network from Google Scholar
HTML
143
star
5

feediverse

Send RSS/Atom feeds to Mastodon
Python
102
star
6

wikichanges

a NodeJS library for monitoring changes on Wikipedia sites
JavaScript
71
star
7

rdflib-microdata

an rdflib plugin to parse html5 microdata
Python
53
star
8

dedoop

recursively deduplicate a directory and write its contents to a new directory while remembering the old paths
Python
48
star
9

opensearch

A python opensearch client
Python
44
star
10

wikipulse

a gauge widget to display wikipedia activity
JavaScript
41
star
11

linkypedia

a web based tool to monitor how your website content is used in wikipedia
Python
37
star
12

wikidata_suggest

a CLI suggestion tool for Wikidata entities
Python
29
star
13

lod-graph

A protovis visualization of the linked open data cloud.
JavaScript
26
star
14

fondz

fondz is a tool for auto-generating an "archival description" from a bag or series of bags.
JavaScript
25
star
15

bagweb

mirror a website, put it in a bag
Shell
24
star
16

wikigeo

JavaScript library for getting geojson from the Wikipedia API
CoffeeScript
22
star
17

dflat

an implementation of the dflat and redd specifications from CDL for versioning of digital objects
Python
19
star
18

www-wikipedia

Simple Perl client for grabbing content out of Wikipedia
Perl
18
star
19

earls

display urls being tweeted with an event hashtag
JavaScript
18
star
20

ici

Edit Wikipedia Pages Near You
JavaScript
16
star
21

nytimestream

NYTimes Newswire API as a stream using node.js
JavaScript
14
star
22

wikitweets

see tweets that reference wikipedia articles
JavaScript
14
star
23

geonames-localsolr

A little project to help bootstrap a local-solr instance with geonames data.
Python
12
star
24

empirical-cloud

a little demo visualization of owl:sameAs links in billion triple challenge data
JavaScript
12
star
25

itstimeihadsometimealone

Some code to examine and modify your experience of Twitter.
Python
11
star
26

warc

warc library for golang
Go
11
star
27

ptree

minimal PairTree implementation
Python
11
star
28

botnet-retweets

Exploring retweets by Twitter bot-nets.
Python
11
star
29

xkcd2347

Get dependencies for a project on GitHub.
Python
11
star
30

skosdict

turn a SKOS concept scheme into a simple JSON dictionary
Python
11
star
31

spn

Playing around with SavePageNow data.
Jupyter Notebook
10
star
32

dewey-crawler

simplistic crawler and serializer for linked data at dewey.info
Python
10
star
33

creepy-polaroid

display an image for where you are using HTML, JavaScript and Google
10
star
34

paperbot

Twitter bot for Chronicling America
Python
9
star
35

wikitrends

see most viewed wikipedia articles
JavaScript
9
star
36

whrss

scrape White House Blog to generate RSS until it starts working again
Python
9
star
37

saa-glossary

structured data scraped from A Glossary of Archival and Records Terminology
Python
9
star
38

storycorps-meta

collect public storycorps metadata and save as json-ld
Python
8
star
39

ocropy

minimalist wrapper around ocropus for generating hOCR documents from images
Python
8
star
40

bisac

top level BISAC subject vocabulary
Python
8
star
41

multiverse

A JavaScript library for writing generative text in HTML.
HTML
8
star
42

lcco

Converts a textual representation of the Library of Congress Classification Outline into SKOS/RDF and makes it available on the Web in a hierarchical viewer.
Python
8
star
43

cscw-pandoc

Turn your Pandoc Markdown into a CSCW PDF
TeX
8
star
44

trump-archive-wayback

A dataset of Trump Tweet IDs and their Wayback Machine information
Python
7
star
45

metaweb

get metadata for a web page
JavaScript
7
star
46

lcsh-subset

create a subset view of LCSH
Python
7
star
47

opinions

watch SCOTUS opinions for URLs
Python
7
star
48

dev8d-linked-data

some experiments with linked data available from the dev8d conference
Python
7
star
49

fastcat

navigate wikipedia categories quickly in a local redis instance
Python
7
star
50

libweb

extract library homepage urls from LIBWEB
Python
7
star
51

wplinks

utility to get a list of Wikipedia articles that point at a particular website
Python
7
star
52

mediatypes

A project that harvests media type information from the IANA registry, and publishes information as linked data using the Google App Engine.
Python
6
star
53

notebooks

Some random Jupyter notebooks.
Jupyter Notebook
6
star
54

lastcloud

imperfect html/javascript hack to look up musicians you like on soundcloud
JavaScript
6
star
55

json2xml

simplistic json -> xml converter
Python
6
star
56

europeana-crawler

a simple crawler of the RDFa in Europeana
Python
6
star
57

alto-words

simplistic calculation of the ratio of dictionary words to all words in a METS Alto OCR file
Python
6
star
58

highscores

Displays retro arcade game highscores for original cataloging performed today using OCLC's Worldcat Live API.
JavaScript
6
star
59

dpla-map

a simple pure html/javascript DPLA/GoogleMap mashup
JavaScript
6
star
60

anselm

A Visual Studio Code plugin for qualitative coding using Markdown
JavaScript
6
star
61

metatweet

A bot for monitoring the structure of JSON in tweets from the sample stream.
Python
5
star
62

summoner

work with the Serial Solutions Summon API from Python
Python
5
star
63

lc-findingaids

JavaScript
5
star
64

luckysocial

googles for a name and looks for social links in the first result
Python
5
star
65

chronam-widget

view on NDNP content using just HTML/JavaScript and the Chronicling America API
JavaScript
5
star
66

wikipediarevs

A commandline utility for downloading the revision history for one or more Wikipedi articles.
Python
5
star
67

google-count

hack to count google hits
Python
5
star
68

google-the-poem

An epic poem generated using Google auto-complete
JavaScript
5
star
69

lastweet

Update Twitter & Mastodon with your LastFM history.
Python
5
star
70

jekyll-wikidata

A Jekyll plugin for Wikidata.
CSS
5
star
71

data-gov-uk-harvester

tiny little project to harvest rdfa metadata from data.gov.uk
Python
5
star
72

congresseditors

the code that runs the @congresseditors twitter bot
CoffeeScript
5
star
73

aotycmp

hack to see what well reviewed albums-of-the-year are available on Spotify and Rdio
Python
5
star
74

lochief

A linked-data version of kochief
5
star
75

voyage

display a stream of circulation activity for a Voyager ILS
CoffeeScript
4
star
76

vine-tweets

Working with the Vine-Tweets dataset.
Jupyter Notebook
4
star
77

diary

Silly GPT-n experiment
TypeScript
4
star
78

skos_wikidata

match a SKOS concept scheme to Wikidata from the command line
Python
4
star
79

fakepremis

fake premis event twitter bot
Python
4
star
80

subjects-here

An HTML5 experiment that uses OCLC's mapFast to lookup subjects for your current location.
JavaScript
4
star
81

zhang-webarchiving

Notes for my talk about Web Archiving to Jane Zhang's Digital Curation class.
4
star
82

muldicat

tool to generate SKOS for the Multilingual Dictionary of Cataloging Terms and Concepts
Python
4
star
83

worksvenn

generate a Venn diagram for LibraryThing, OCLC and OpenLibrary FRBRization services
Python
4
star
84

wikicites

get a stream of recent citations from wikipedia
CoffeeScript
4
star
85

journos

simple example of looking for journalists in twitter stream
Jupyter Notebook
4
star
86

ead-finder

use Google to find public EAD XML documents
JavaScript
4
star
87

papvc-topicmodel

Jupyter Notebook
4
star
88

id

LCSH SKOS webapp
Python
4
star
89

databib-metadata

example html/metadata examples for databib
Shell
4
star
90

oai2pairtree

command line utility to dump records in an oai-pmh repository as xml in a pairtree
Python
4
star
91

congressedits-archive

a snapshot of the @congressedits twitter archive
JavaScript
4
star
92

jackattack

Collecting & visualizing tweets directed at @jack and @yoyoel
Python
3
star
93

apostrophe

"But I got the crystal ball", he said, and held it to the light.
Python
3
star
94

emailz

turn mboxen into rdf, and visualize w/ d3
Python
3
star
95

warc-analyzer

A client-side web application for analyzing WARC data.
JavaScript
3
star
96

imls-cdx

working files, data, notebooks for museum group at Archives Unleashed DC
Jupyter Notebook
3
star
97

inst341

Jupyter Notebook
3
star
98

webarchives

see if a URL is available in a web archive somewhere on the web
Python
3
star
99

americanarchivist

metadata extractor for The American Archivist
Python
3
star
100

json-intro

Short, gentle introductions to JSON for the aspiring programmer.
3
star