Giter Club home page Giter Club logo

anon's Introduction

anon

Build Status Gitter chat

This little coffee script will watch Wikipedia for edits from a set of named IP ranges and will tweet when it notices one. It was inspired by @parliamentedits and is used to make @congressedits available.

If you are curious the default IP ranges for the US Congress in the config.json.template file came from GovTrack. You can learn more about the significance of Congressional edits to Wikipedia here and here.

Running

To run anon you will need to:

  1. install Node
  2. npm install -g coffee-script
  3. git clone https://github.com/edsu/anon.git
  4. cd anon
  5. npm install
  6. cp config.json.template config.json
  7. add twitter credentials for your bot to config.json (make sure the Twitter app you create has read/write permission so it can tweet)
  8. add IP ranges/names to config.json
  9. modify status template if desired
  10. ./anon.coffee (you may want to run this in a screen or tmux session)
  11. have some ☕ and wait

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.

Transparency

If you end up running an anon bot we would love to document the IP address ranges you use for transparency purposes. Please add your config file without the Twitter auth keys to the conf directory. Name the file using your Twitter account, e.g. for congressedits

conf/congressedits.json

You can use a service like ARIN Online to look up IP address ranges by organization name.

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.coffee --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.coffee --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.coffee --config test.config

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:

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

License:

  • CC0 public domain dedication

anon's People

Contributors

edsu avatar chrisrodrigue avatar komachi avatar cbeer avatar jarib avatar stefan2904 avatar ruebot avatar chrismeller avatar konklone avatar mbklein avatar brianfit avatar drichert avatar dbs avatar scronide avatar mjgiarlo avatar ineffyble avatar cananoni avatar iewatch avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.