Skip to content
This repository has been archived by the owner on Jun 6, 2019. It is now read-only.
/ HashBus Public archive

A Twitter leaderboard. A demo of messaging and distributed apps built with love and NServiceBus

License

Notifications You must be signed in to change notification settings

Particular/HashBus

Repository files navigation

Prerequisites

  • MongoDB
  • SQL Server
    • You must create the database before running the apps (see the connection string in the config files)

HashBus.Twitter.Monitor configuration [Optional]

The HashBus.Twitter.Monitor.Simulator allows testing of most HashBus functionality without using the public Twitter API. In order to run against the public Twitter API the following steps are required:

  • Go to https://apps.twitter.com/ and create a new application;
  • On the machine where the HashBus.Twitter.Monitor needs to run, create the following environment variables:
    • HASHBUS_TWITTER_CONSUMER_KEY: Twitter app consumer key
    • HASHBUS_TWITTER_CONSUMER_SECRET: Twitter app consumer secret
    • HASHBUS_TWITTER_ACCESS_TOKEN: Twitter app access token
    • HASHBUS_TWITTER_ACCESS_TOKEN_SECRET: Twitter app token secret

Web API

The web API is hosted at http://hashbus-demo.cloudapp.net:8080/

Available resources are:

  • http://hashbus-demo.cloudapp.net:8080/top-tweeters-retweeters/{track}
  • http://hashbus-demo.cloudapp.net:8080/top-tweeters/{track}
  • http://hashbus-demo.cloudapp.net:8080/top-retweeters/{track}
  • http://hashbus-demo.cloudapp.net:8080/most-mentioned/{track}
  • http://hashbus-demo.cloudapp.net:8080/most-retweeted/{track}
  • http://hashbus-demo.cloudapp.net:8080/most-hashtagged/{track}

A 'track' is a Twitter search term. At the time of writing, the HashBus Twitter monitor is running for the #BuildStuffLT hashtag.

Here comes the funky thing. There is a bug in Nancy which prevents a # (hash/pound) sign from being used in a URL, even if URL encoded. For this reason we use a special character sequence 해시 to represent #. (해시 means "hash" in Korean!)

Thus, example URL's for #BuildStuffLT are:

These URL's will give you a leaderboard object which looks like this:

{
	"entries": [{
		"position": 1,
		"id": 1351703234,
		"idStr": "1351703234",
		"name": "Build Stuff 2015 LT",
		"screenName": "BuildStuffLT",
		"count": 28
	},
	{
		"position": 2,
		"id": 15528065,
		"idStr": "15528065",
		"name": "Malk’Zameth",
		"screenName": "malk_zameth",
		"count": 16
	},
	{
		"position": 3,
		"id": 183551266,
		"idStr": "183551266",
		"name": "Daniel Lee",
		"screenName": "danlimerick",
		"count": 15
	},
	{
		"position": 4,
		"id": 235599885,
		"idStr": "235599885",
		"name": "Peter Even",
		"screenName": "petervaneven",
		"count": 14
	},
	{
		"position": 5,
		"id": 22696598,
		"idStr": "22696598",
		"name": "Mauro Servienti",
		"screenName": "mauroservienti",
		"count": 10
	},
	{
		"position": 6,
		"id": 2511419816,
		"idStr": "2511419816",
		"name": "Jean-François Saguin",
		"screenName": "jfsaguin",
		"count": 9
	},
	{
		"position": 7,
		"id": 161837846,
		"idStr": "161837846",
		"name": "Bouillier Clément",
		"screenName": "clem_bouillier",
		"count": 7
	},
	{
		"position": 8,
		"id": 14128651,
		"idStr": "14128651",
		"name": "Grégory Weinbach",
		"screenName": "gweinbach",
		"count": 7
	},
	{
		"position": 9,
		"id": 8885582,
		"idStr": "8885582",
		"name": "Rui Carvalho",
		"screenName": "rhwy",
		"count": 6
	},
	{
		"position": 10,
		"id": 2375271441,
		"idStr": "2375271441",
		"name": "Ernestas Kardzys",
		"screenName": "ErnestasKardzys",
		"count": 6
	}],
	"count": 310,
	"since": "2015-11-17T16:17:41.0000000Z"
}

About

A Twitter leaderboard. A demo of messaging and distributed apps built with love and NServiceBus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages