grapevine: Trending topics for stuff you care about
Try as we might, even we, your humble Changeloggers, can’t cover all open source news. So what to do if you’re looking for your daily fix of Haskell news? Ben Johnson offers Grapevine, a Ruby server for aggregating messages, deriving trending topics, and sending out notifications.
In this initial release, Grapevine demonstrates using Twitter as a data source, GitHub repo languages as a filter, and Twitter to send out notifications of new topics. Or, in other words, you can now follow news in your programming niche thanks to Topsy, GitHub, and Twitter:
- GitHub JavaScript Aggregator
- GitHub Ruby Aggregator
- GitHub Python Aggregator
- GitHub Perl Aggregator
- GitHub C Aggregator
- GitHub PHP Aggregator
- GitHub Shell Aggregator
- GitHub Java Aggregator
- GitHub C++ Aggregator
- GitHub VimL Aggregator
- GitHub Objective-C Aggregator
- GitHub C# Aggregator
- GitHub Emacs Lisp Aggregator
- GitHub ActionScript Aggregator
- GitHub Haskell Aggregator
Installation and usage
If you want to run your own server, just install Grapevine as a gem:
gem install grapevine
Once installed, grapevine offers a command line interface to manage the server:
$ grapevine start
$ grapevine stop
$ grapevine restart
$ grapevine load
$ grapevine notify
$ grapevine show messages
$ grapevine show notifiers
$ grapevine show notifier [NAME]
$ grapevine show sources
$ grapevine show tags
$ grapevine show topics
$ grapevine show topic [NAME]
Grapevine uses a simple YAML-based config file to manage sources and notifiers:
twitter_consumer_key: YpHAA9xFYsdfruS06yk2Jvxy
twitter_consumer_secret: aMYXpyl4Sasdgg89xx4YD5asdfUwftkveuSfjtoDZlarJHR1ZHH
sources:
- name: my_github_source
type: twitter-github
frequency: 1h
notifiers:
- name: github_js
type: twitter
username: github_js
oauth_token: 1023929394-M8wtmerAMnI7ndH9x0ADzHTOsdfWOD0sxx9UsjvgcxNNx
oauth_token_secret: m6Ryi8h7Y6yBxa0x0ffsaWUybE2vrxx8a9sYFsgnDB9QFG
source: my_github_source
frequency: 1h30m
window: 6M
tags: [language:javascript]
- name: github_rb
type: twitter
username: github_rb
oauth_token: 310128260-VKGv2UDYMNF0x0A0fsfqZhsdf3QwxiMkd0xfa0sf3vv
oauth_token_secret: GAfa9xk6wyQ98mjXmXfrPN0as00sdfszxkStjxdzwTlEt
source: my_github_source
frequency: 2h
window: 8M
tags: [language:ruby]
Grapevine also supports Bit.ly to shorten links in outbound tweets. Just add your Bit.ly API creds to the config file:
bitly_username: johndoe
bitly_api_key: R_ae81e4e8ef7d10728725a57e90e1933
Got ideas for other sources and notifiers? Go ahead and fork the project.
Discussion
Sign in or Join to comment or subscribe