1
0
mirror of https://github.com/danbee/tubefeed synced 2025-03-04 08:39:11 +00:00

Initial commit.

This commit is contained in:
Dan Barber 2013-01-24 10:52:32 +00:00
commit 83a78fde6d
7 changed files with 229 additions and 0 deletions

13
Gemfile Normal file
View File

@ -0,0 +1,13 @@
source :rubygems
gem 'sinatra'
gem 'sinatra-jsonp'
gem 'foreman'
group :development do
gem 'shotgun'
end
group :production do
gem 'thin'
end

36
Gemfile.lock Normal file
View File

@ -0,0 +1,36 @@
GEM
remote: http://rubygems.org/
specs:
daemons (1.1.9)
eventmachine (1.0.0)
foreman (0.61.0)
thor (>= 0.13.6)
multi_json (1.3.7)
rack (1.5.0)
rack-protection (1.3.2)
rack
shotgun (0.9)
rack (>= 1.0)
sinatra (1.3.3)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
sinatra-jsonp (0.4.1)
multi_json (~> 1.3.7)
sinatra (~> 1.0)
thin (1.5.0)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.17.0)
tilt (1.3.3)
PLATFORMS
ruby
DEPENDENCIES
foreman
shotgun
sinatra
sinatra-jsonp
thin

6
config.ru Normal file
View File

@ -0,0 +1,6 @@
require 'bundler'
Bundler.setup
require './tubefeed'
run Tubefeed

1
data/now.json Normal file
View File

@ -0,0 +1 @@
{"response":{"lines":[{"name":"Bakerloo","id":"bakerloo","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 13:43:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Central","id":"central","status":"good service","messages":[],"status_starts":"Wed, 23 Jan 2013 14:09:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Circle","id":"circle","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 11:50:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"District","id":"district","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 11:29:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"DLR","id":"docklands","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 08:33:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"H'smith & City","id":"hammersmithcity","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 01:35:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Jubilee","id":"jubilee","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 09:39:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Metropolitan","id":"metropolitan","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 12:39:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Northern","id":"northern","status":"good service","messages":[],"status_starts":"Wed, 23 Jan 2013 10:18:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Overground","id":"overground","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 15:02:02 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Piccadilly","id":"piccadilly","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 07:02:02 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Victoria","id":"victoria","status":"minor delays","messages":["Minor delays while we fix a signal failure at Highbury & Islington."],"status_starts":"Wed, 23 Jan 2013 16:24:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"},{"name":"Waterloo & City","id":"waterloocity","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 19:58:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 16:31:31 +0000"}]}}

1
data/tomorrow.json Normal file
View File

@ -0,0 +1 @@
{"response":{"lines":[{"name":"Bakerloo","id":"bakerloo","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 13:43:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Central","id":"central","status":"minor delays","messages":["Minor delays between Leytonstone and Epping while we fix a signal failure at Loughton."],"status_starts":"Wed, 23 Jan 2013 17:37:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Circle","id":"circle","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 11:50:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"District","id":"district","status":"minor delays","messages":["Minor delays following a person ill on a train at Mile End."],"status_starts":"Wed, 23 Jan 2013 17:49:02 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"DLR","id":"docklands","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 08:33:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"H'smith & City","id":"hammersmithcity","status":"minor delays","messages":["Minor delays following a person ill on a train at Mile End."],"status_starts":"Wed, 23 Jan 2013 17:49:02 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Jubilee","id":"jubilee","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 09:39:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Metropolitan","id":"metropolitan","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 12:39:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Northern","id":"northern","status":"good service","messages":[],"status_starts":"Wed, 23 Jan 2013 10:18:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Overground","id":"overground","status":"good service","messages":[],"status_starts":"Tue, 22 Jan 2013 15:02:02 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Piccadilly","id":"piccadilly","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 07:02:02 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Victoria","id":"victoria","status":"severe delays","messages":["Severe delays due to an earlier signal failure at Highbury & Islington. Tickets will be accepted on First Capital Connect (Great Northern), Greater Anglia, Southeastern trains and London buses."],"status_starts":"Wed, 23 Jan 2013 17:19:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"},{"name":"Waterloo & City","id":"waterloocity","status":"good service","messages":[],"status_starts":"Mon, 21 Jan 2013 19:58:01 +0000","status_ends":"","status_requested":"Wed, 23 Jan 2013 17:49:06 +0000"}]}}

150
data/weekend.json Normal file
View File

@ -0,0 +1,150 @@
{
"response":{
"lines":[
{
"name":"Bakerloo",
"id":"bakerloo",
"status":"good service",
"messages":[
],
"status_starts":"Mon, 21 Jan 2013 13:43:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Central",
"id":"central",
"status":"good service",
"messages":[
],
"status_starts":"Wed, 23 Jan 2013 14:09:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Circle",
"id":"circle",
"status":"special service",
"messages":[
],
"status_starts":"Tue, 22 Jan 2013 11:50:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"District",
"id":"district",
"status":"major delays",
"messages":[
"MONUMENT AND BANK STATIONS: Please avoid using Monument Station to interchange with services from Bank.",
"DISTRICT LINE: Sunday 1 March, suspended between Ealing Broadway and Hammersmith."
],
"status_starts":"Tue, 22 Jan 2013 11:29:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"DLR",
"id":"docklands",
"status":"good service",
"messages":[
],
"status_starts":"Tue, 22 Jan 2013 08:33:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"H'smith & City",
"id":"hammersmithcity",
"status":"good service",
"messages":[
],
"status_starts":"Tue, 22 Jan 2013 01:35:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Jubilee",
"id":"jubilee",
"status":"good service",
"messages":[
],
"status_starts":"Mon, 21 Jan 2013 09:39:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Metropolitan",
"id":"metropolitan",
"status":"good service",
"messages":[
],
"status_starts":"Mon, 21 Jan 2013 12:39:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Northern",
"id":"northern",
"status":"part closure",
"messages":[
],
"status_starts":"Wed, 23 Jan 2013 10:18:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Overground",
"id":"overground",
"status":"good service",
"messages":[
],
"status_starts":"Tue, 22 Jan 2013 15:02:02 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Piccadilly",
"id":"piccadilly",
"status":"good service",
"messages":[
],
"status_starts":"Mon, 21 Jan 2013 07:02:02 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Victoria",
"id":"victoria",
"status":"good service",
"messages":[
],
"status_starts":"Mon, 21 Jan 2013 19:31:02 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
},
{
"name":"Waterloo & City",
"id":"waterloocity",
"status":"good service",
"messages":[
],
"status_starts":"Mon, 21 Jan 2013 19:58:01 +0000",
"status_ends":"",
"status_requested":"Wed, 23 Jan 2013 14:53:42 +0000"
}
]
}
}

22
tubefeed.rb Normal file
View File

@ -0,0 +1,22 @@
require 'sinatra'
require 'sinatra/jsonp'
require 'json'
class Tubefeed < Sinatra::Base
helpers Sinatra::Jsonp
get '/now.json' do
data = JSON.parse(File.read("data/now.json"))
JSONP data
end
get '/tomorrow.json' do
data = JSON.parse(File.read("data/tomorrow.json"))
JSONP data
end
get '/weekend.json' do
data = JSON.parse(File.read("data/weekend.json"))
JSONP data
end
end