simple_pvr 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +1 -4
- data/Gemfile.lock +72 -61
- data/README.md +51 -33
- data/bin/pvr_server +14 -6
- data/changelog.txt +11 -0
- data/development_server +14 -6
- data/features/channel_overview.feature +1 -1
- data/features/recordings.feature +30 -0
- data/features/step_definitions/pvr_steps.rb +34 -0
- data/features/support/env.rb +1 -2
- data/features/support/paths.rb +2 -0
- data/lib/simple_pvr.rb +2 -0
- data/lib/simple_pvr/model/database_initializer.rb +8 -0
- data/lib/simple_pvr/model/programme.rb +12 -2
- data/lib/simple_pvr/model/programme_actor.rb +14 -0
- data/lib/simple_pvr/model/programme_category.rb +14 -0
- data/lib/simple_pvr/model/programme_director.rb +13 -0
- data/lib/simple_pvr/model/programme_presenter.rb +13 -0
- data/lib/simple_pvr/model/recording.rb +12 -0
- data/lib/simple_pvr/programme_icon_fetcher.rb +15 -0
- data/lib/simple_pvr/pvr_initializer.rb +4 -4
- data/lib/simple_pvr/recorder.rb +4 -3
- data/lib/simple_pvr/recording_manager.rb +44 -24
- data/lib/simple_pvr/recording_planner.rb +3 -3
- data/lib/simple_pvr/scheduler.rb +12 -4
- data/lib/simple_pvr/server/base_controller.rb +12 -13
- data/lib/simple_pvr/server/channels_controller.rb +5 -5
- data/lib/simple_pvr/server/programmes_controller.rb +2 -2
- data/lib/simple_pvr/server/schedules_controller.rb +4 -4
- data/lib/simple_pvr/server/secured_controller.rb +71 -0
- data/lib/simple_pvr/server/shows_controller.rb +13 -8
- data/lib/simple_pvr/server/status_controller.rb +1 -1
- data/lib/simple_pvr/server/upcoming_recordings_controller.rb +1 -1
- data/lib/simple_pvr/version.rb +1 -1
- data/lib/simple_pvr/xmltv_reader.rb +37 -4
- data/public/css/typeahead.js-bootstrap.css +83 -0
- data/public/index.html +45 -37
- data/public/js/angular/http-auth-interceptor.js +122 -0
- data/public/js/app.js +4 -37
- data/public/js/controllers.js +22 -14
- data/public/js/directives.js +102 -0
- data/public/js/filters.js +0 -31
- data/public/js/services.js +64 -0
- data/public/js/typeahead/typeahead.min.js +7 -0
- data/public/partials/about.html +15 -13
- data/public/partials/channels.html +41 -36
- data/public/partials/programme.html +20 -4
- data/public/partials/programmeListing.html +14 -13
- data/public/partials/schedule.html +91 -86
- data/public/partials/schedules.html +28 -16
- data/public/partials/search.html +10 -11
- data/public/partials/show.html +26 -9
- data/public/partials/shows.html +5 -6
- data/public/partials/status.html +1 -1
- data/public/templates/loginDialog.html +30 -0
- data/public/templates/logoutLink.html +1 -0
- data/public/templates/titleSearch.html +5 -3
- data/simple_pvr.gemspec +6 -4
- data/spec/resources/dummyImage.png +1 -0
- data/spec/resources/programmes-with-categories.xmltv +27 -0
- data/spec/resources/programmes-with-credits.xmltv +24 -0
- data/spec/resources/programmes-with-icons.xmltv +25 -0
- data/spec/resources/programmes-with-presenters.xmltv +19 -0
- data/spec/resources/{programs-without-icon.xmltv → programmes-without-icon.xmltv} +0 -0
- data/spec/resources/{programs.xmltv → programmes.xmltv} +0 -4
- data/spec/simple_pvr/ffmpeg_spec.rb +24 -22
- data/spec/simple_pvr/hdhomerun_spec.rb +69 -67
- data/spec/simple_pvr/model/channel_spec.rb +101 -101
- data/spec/simple_pvr/model/programme_spec.rb +104 -104
- data/spec/simple_pvr/model/schedule_spec.rb +74 -74
- data/spec/simple_pvr/programme_icon_fetcher_spec.rb +25 -0
- data/spec/simple_pvr/pvr_initializer_spec.rb +40 -38
- data/spec/simple_pvr/recorder_spec.rb +37 -26
- data/spec/simple_pvr/recording_manager_spec.rb +160 -133
- data/spec/simple_pvr/recording_planner_spec.rb +213 -211
- data/spec/simple_pvr/scheduler_spec.rb +189 -172
- data/spec/simple_pvr/server/secured_controller_spec.rb +118 -0
- data/spec/simple_pvr/xmltv_reader_spec.rb +89 -41
- data/test/karma.conf.js +7 -4
- data/test/unit/filtersSpec.js +0 -36
- metadata +79 -63
- data/public/css/bootstrap-responsive.min.css +0 -9
- data/public/css/bootstrap.min.css +0 -9
- data/public/img/glyphicons-halflings-white.png +0 -0
- data/public/img/glyphicons-halflings.png +0 -0
- data/public/js/angular/angular-resource.min.js +0 -10
- data/public/js/angular/angular.min.js +0 -162
- data/public/js/bootstrap/bootstrap.min.js +0 -6
- data/public/js/jquery/jquery.min.js +0 -5
- data/test/lib/angular/angular-mocks.js +0 -1768
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 84772c897136fb2024af2906037ff0d6792af853
|
4
|
+
data.tar.gz: 4f10984bc033e0fdb86228cd7f61481087927129
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ebc54083f8e67bac789cf45b67037ad8fef92f23b86036a936b037803f0155c5fce2bc10d13b1525572eba4988f3aae71cd7827f00b2b659a55b5e88b465a964
|
7
|
+
data.tar.gz: 19bf485868ef7a76cf4d26c9fbc46240fb458a0445e886e732c83f58568a0cda2d3bd3ff3f84256d8f8ec762ba0f494a16a6bf0c514166d00312f8fae5ea3b80
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,37 +1,39 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
simple_pvr (1.
|
4
|
+
simple_pvr (1.1.0)
|
5
5
|
activesupport (~> 3.2)
|
6
6
|
data_mapper (~> 1.2)
|
7
7
|
dm-sqlite-adapter (~> 1.2)
|
8
8
|
nokogiri (~> 1.5)
|
9
|
-
puma (~>
|
9
|
+
puma (~> 2.7)
|
10
10
|
sinatra (~> 1.3)
|
11
11
|
|
12
12
|
GEM
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
|
-
activesupport (3.2.
|
16
|
-
i18n (~> 0.6)
|
15
|
+
activesupport (3.2.16)
|
16
|
+
i18n (~> 0.6, >= 0.6.4)
|
17
17
|
multi_json (~> 1.0)
|
18
|
-
addressable (2.
|
19
|
-
bcrypt-ruby (3.
|
20
|
-
builder (3.
|
21
|
-
capybara (2.0
|
18
|
+
addressable (2.3.5)
|
19
|
+
bcrypt-ruby (3.1.2)
|
20
|
+
builder (3.2.2)
|
21
|
+
capybara (2.2.0)
|
22
22
|
mime-types (>= 1.16)
|
23
23
|
nokogiri (>= 1.3.3)
|
24
24
|
rack (>= 1.0.0)
|
25
25
|
rack-test (>= 0.5.4)
|
26
|
-
|
27
|
-
xpath (~> 1.0.0)
|
26
|
+
xpath (~> 2.0)
|
28
27
|
childprocess (0.3.9)
|
29
28
|
ffi (~> 1.0, >= 1.0.11)
|
30
|
-
|
29
|
+
cliver (0.3.2)
|
30
|
+
coderay (1.1.0)
|
31
|
+
cucumber (1.3.10)
|
31
32
|
builder (>= 2.1.2)
|
32
33
|
diff-lcs (>= 1.1.3)
|
33
|
-
gherkin (~> 2.
|
34
|
-
|
34
|
+
gherkin (~> 2.12)
|
35
|
+
multi_json (>= 1.7.5, < 2.0)
|
36
|
+
multi_test (>= 0.0.2)
|
35
37
|
data_mapper (1.2.0)
|
36
38
|
dm-aggregates (~> 1.2.0)
|
37
39
|
dm-constraints (~> 1.2.0)
|
@@ -42,15 +44,15 @@ GEM
|
|
42
44
|
dm-transactions (~> 1.2.0)
|
43
45
|
dm-types (~> 1.2.0)
|
44
46
|
dm-validations (~> 1.2.0)
|
45
|
-
data_objects (0.10.
|
47
|
+
data_objects (0.10.13)
|
46
48
|
addressable (~> 2.1)
|
47
|
-
diff-lcs (1.
|
49
|
+
diff-lcs (1.2.5)
|
48
50
|
dm-aggregates (1.2.0)
|
49
51
|
dm-core (~> 1.2.0)
|
50
52
|
dm-constraints (1.2.0)
|
51
53
|
dm-core (~> 1.2.0)
|
52
|
-
dm-core (1.2.
|
53
|
-
addressable (~> 2.
|
54
|
+
dm-core (1.2.1)
|
55
|
+
addressable (~> 2.3)
|
54
56
|
dm-do-adapter (1.2.0)
|
55
57
|
data_objects (~> 0.10.6)
|
56
58
|
dm-core (~> 1.2.0)
|
@@ -79,66 +81,75 @@ GEM
|
|
79
81
|
uuidtools (~> 2.1)
|
80
82
|
dm-validations (1.2.0)
|
81
83
|
dm-core (~> 1.2.0)
|
82
|
-
do_sqlite3 (0.10.
|
83
|
-
data_objects (= 0.10.
|
84
|
-
eventmachine (1.0.3)
|
84
|
+
do_sqlite3 (0.10.13)
|
85
|
+
data_objects (= 0.10.13)
|
85
86
|
fastercsv (1.5.5)
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
nokogiri (1.
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
87
|
+
ffi (1.9.3)
|
88
|
+
gherkin (2.12.2)
|
89
|
+
multi_json (~> 1.3)
|
90
|
+
i18n (0.6.9)
|
91
|
+
json (1.8.1)
|
92
|
+
json_pure (1.8.1)
|
93
|
+
method_source (0.8.2)
|
94
|
+
mime-types (2.0)
|
95
|
+
mini_portile (0.5.2)
|
96
|
+
multi_json (1.8.2)
|
97
|
+
multi_test (0.0.2)
|
98
|
+
nokogiri (1.6.0)
|
99
|
+
mini_portile (~> 0.5.0)
|
100
|
+
poltergeist (1.5.0)
|
101
|
+
capybara (~> 2.1)
|
102
|
+
cliver (~> 0.3.1)
|
103
|
+
multi_json (~> 1.0)
|
104
|
+
websocket-driver (>= 0.2.0)
|
105
|
+
pry (0.9.12.4)
|
106
|
+
coderay (~> 1.0)
|
107
|
+
method_source (~> 0.8)
|
108
|
+
slop (~> 3.4)
|
109
|
+
puma (2.7.1)
|
110
|
+
rack (>= 1.1, < 2.0)
|
111
|
+
rack (1.5.2)
|
112
|
+
rack-protection (1.5.1)
|
106
113
|
rack
|
107
114
|
rack-test (0.6.2)
|
108
115
|
rack (>= 1.0)
|
109
|
-
rake (10.0
|
110
|
-
rspec (2.
|
111
|
-
rspec-core (~> 2.
|
112
|
-
rspec-expectations (~> 2.
|
113
|
-
rspec-mocks (~> 2.
|
114
|
-
rspec-core (2.
|
115
|
-
rspec-expectations (2.
|
116
|
-
diff-lcs (
|
117
|
-
rspec-mocks (2.
|
118
|
-
rubyzip (
|
119
|
-
selenium-webdriver (2.
|
116
|
+
rake (10.1.0)
|
117
|
+
rspec (2.14.1)
|
118
|
+
rspec-core (~> 2.14.0)
|
119
|
+
rspec-expectations (~> 2.14.0)
|
120
|
+
rspec-mocks (~> 2.14.0)
|
121
|
+
rspec-core (2.14.7)
|
122
|
+
rspec-expectations (2.14.4)
|
123
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
124
|
+
rspec-mocks (2.14.4)
|
125
|
+
rubyzip (1.1.0)
|
126
|
+
selenium-webdriver (2.38.0)
|
120
127
|
childprocess (>= 0.2.5)
|
121
128
|
multi_json (~> 1.0)
|
122
|
-
rubyzip
|
129
|
+
rubyzip (~> 1.0)
|
123
130
|
websocket (~> 1.0.4)
|
124
|
-
sinatra (1.
|
131
|
+
sinatra (1.4.4)
|
125
132
|
rack (~> 1.4)
|
126
|
-
rack-protection (~> 1.
|
127
|
-
tilt (~> 1.3, >= 1.3.
|
133
|
+
rack-protection (~> 1.4)
|
134
|
+
tilt (~> 1.3, >= 1.3.4)
|
135
|
+
slop (3.4.7)
|
128
136
|
stringex (1.5.1)
|
129
|
-
tilt (1.
|
130
|
-
uuidtools (2.1.
|
137
|
+
tilt (1.4.1)
|
138
|
+
uuidtools (2.1.4)
|
131
139
|
websocket (1.0.7)
|
132
|
-
|
140
|
+
websocket-driver (0.3.1)
|
141
|
+
xpath (2.0.0)
|
133
142
|
nokogiri (~> 1.3)
|
134
143
|
|
135
144
|
PLATFORMS
|
136
145
|
ruby
|
137
146
|
|
138
147
|
DEPENDENCIES
|
139
|
-
capybara (~> 2.
|
140
|
-
cucumber (~> 1.
|
141
|
-
poltergeist (~> 1.
|
148
|
+
capybara (~> 2.2)
|
149
|
+
cucumber (~> 1.3)
|
150
|
+
poltergeist (~> 1.5)
|
151
|
+
pry
|
142
152
|
rake (>= 10.0.0)
|
143
153
|
rspec (~> 2.11)
|
154
|
+
selenium-webdriver
|
144
155
|
simple_pvr!
|
data/README.md
CHANGED
@@ -2,19 +2,22 @@ SimplePVR-Ruby-backend
|
|
2
2
|
======================
|
3
3
|
A really, really simple PVR (Personal Video Recorder) system which only supports the
|
4
4
|
[HDHomeRun network tuners](http://www.silicondust.com/). It's written in Ruby and is highly hackable. If
|
5
|
-
you don't want to hack it, but just want a solid PVR
|
5
|
+
you don't want to hack it, but just want a solid PVR, no worries: It's dead-simple to use.
|
6
6
|
|
7
|
-
SimplePVR does not contain its own player, but currently provides an XBMC plug-in
|
8
|
-
|
9
|
-
|
7
|
+
SimplePVR does not contain its own player, but currently provides an XBMC plug-in. Apart from that, all
|
8
|
+
recordings are stored in a simple directory structure (see below for an explanation), so that you can just
|
9
|
+
point your favorite player to the recordings.
|
10
|
+
|
11
|
+
Wanna see what it looks like? [Take a look at the Wiki.](https://github.com/olefriis/simplepvr-backend-ruby/wiki)
|
10
12
|
|
11
13
|
Why?
|
12
14
|
====
|
13
|
-
MythTV stopped working for me and my HDHomeRun box in the 0.25 release.
|
14
|
-
of merits, I just have no idea what to do when it stops working
|
15
|
+
MythTV stopped working for me and my HDHomeRun box in the 0.25 release. Even though MythTV has loads
|
16
|
+
of merits, I just have no idea what to do when it stops working. I was not in control of my media center.
|
15
17
|
|
16
18
|
During the last couple of years, I have spent a substantial amount of time on bugs that suddenly appeared
|
17
|
-
in MythTV and suddenly went away. I really don't like using systems this brittle.
|
19
|
+
in MythTV and suddenly went away. I really don't like using systems this brittle. My wife got frustrated
|
20
|
+
too, which is unfortunate as well...
|
18
21
|
|
19
22
|
So I wanted to create a really simple PVR in Ruby, making it possible for others to hack away and have
|
20
23
|
fun while recording TV shows for the rest of the family.
|
@@ -30,13 +33,13 @@ Installation
|
|
30
33
|
First of all, you need a computer and an HDHomeRun tuner box. On your computer, you need to have the
|
31
34
|
"hdhomerun_config" tool on the path.
|
32
35
|
|
33
|
-
You need Ruby
|
36
|
+
You need Ruby 2.0.0 or newer. When that's in place, simply run this from the command line:
|
34
37
|
|
35
38
|
gem install simple_pvr
|
36
39
|
|
37
40
|
It might not always be completely straightforward... simple_pvr uses DataMapper, which in turn relies on
|
38
41
|
bcrypt-ruby, which compiles some native stuff. So on MacOS, you need to install XCode and its command-line
|
39
|
-
utilities, or get "make" in some other way. On Linux, it should just work.
|
42
|
+
utilities, or get "make" in some other way. On Linux, it should just work. There's no Windows support.
|
40
43
|
|
41
44
|
If you'd like thumbnails for the recorded shows and ability to transcode recordings to WebM (so you can view
|
42
45
|
them directly in your browser), you need FFMPEG on the command-line. Install it using MacPorts, Homebrew,
|
@@ -53,7 +56,16 @@ URL to the outside world, you'd better supply a username and password:
|
|
53
56
|
|
54
57
|
username=me password=secret pvr_server
|
55
58
|
|
56
|
-
This will secure the application with Basic HTTP Authentication.
|
59
|
+
This will secure the application with Basic HTTP Authentication. However, everything is sent in clear text. If
|
60
|
+
you're worried about your PVR data, you should create an SSL certificate (see
|
61
|
+
[https://devcenter.heroku.com/articles/ssl-certificate-self](this description), for example) and supply the key
|
62
|
+
and certificate paths when starting the server:
|
63
|
+
|
64
|
+
username=me password=secret key=server.key cert=server.crt pvr_server
|
65
|
+
|
66
|
+
You can also supply the `port` variable, in case you want to expose the server on another port than 4567:
|
67
|
+
|
68
|
+
username=me password=secret key=server.key cert=server.crt port=8443 pvr_server
|
57
69
|
|
58
70
|
XMLTV
|
59
71
|
=====
|
@@ -76,21 +88,26 @@ Or, if you've secured your web server with Basic HTTP Authentication like I told
|
|
76
88
|
|
77
89
|
curl -d "" -u me:secret localhost:4567/api/schedules/reload
|
78
90
|
|
91
|
+
If you've been really good and enabled HTTPS, you should specify that (here we're also running on port 8443, and
|
92
|
+
we've disabled curl's SSL validation, since we're running with a self-signed certificate...):
|
93
|
+
|
94
|
+
curl -d "" -u me:secret --insecure https://localhost:8443/api/schedules/reload
|
95
|
+
|
79
96
|
Recordings
|
80
97
|
==========
|
81
98
|
The recordings are laid out like this, from the directory where you ran pvr_server:
|
82
99
|
|
83
100
|
* recordings/
|
84
101
|
* Borgias/
|
85
|
-
*
|
86
|
-
*
|
102
|
+
* 1331214600/
|
103
|
+
* 1333893000/
|
87
104
|
* Sports news/
|
88
|
-
*
|
89
|
-
*
|
90
|
-
*
|
105
|
+
* 1331387400/
|
106
|
+
* 1331473800/
|
107
|
+
* 1331560200/
|
91
108
|
* ...
|
92
109
|
|
93
|
-
|
110
|
+
The numbers on the directories are simply time stamps. Inside these numbered directories are these files:
|
94
111
|
|
95
112
|
* stream.ts: The actual stream. Let VLC or another media player show these for you.
|
96
113
|
* hdhomerun_save.log: The output from the actual recording command.
|
@@ -100,18 +117,16 @@ Inside the numbered directories are these files:
|
|
100
117
|
|
101
118
|
XBMC Plug-In
|
102
119
|
============
|
103
|
-
There's a
|
104
|
-
|
120
|
+
There's a simple XBMC plug-in for SimplePVR which enables you to easily watch your recordings, see
|
121
|
+
metadata, and delete watched recordings. See
|
122
|
+
[the home page](https://github.com/olefriis/simplepvr-frontend-xbmc) for more information.
|
105
123
|
|
106
124
|
Future?
|
107
125
|
=======
|
108
126
|
This projects needs to be a nice, readable, hackable, tested system. No pull requests are
|
109
127
|
accepted that violate this.
|
110
128
|
|
111
|
-
|
112
|
-
stable in the long run on my own setup, and if so, I'll mark it as 1.0.0.
|
113
|
-
|
114
|
-
There is lots of stuff I'd like to do after that, but I have no deadline - which means that pull
|
129
|
+
There is lots of stuff I'd like to do, but I have no deadline - which means that pull
|
115
130
|
requests are the only means you have for speeding things up. This includes:
|
116
131
|
|
117
132
|
* Web interface:
|
@@ -128,7 +143,6 @@ requests are the only means you have for speeding things up. This includes:
|
|
128
143
|
* XMLTV import:
|
129
144
|
* Let SimplePVR itself fetch XMLTV URLs at specified times of day.
|
130
145
|
* Set-up of matching XMLTV IDs to channels could make good use of a GUI.
|
131
|
-
* Parse and make use of programme icons etc.
|
132
146
|
* Searching for tuners and scanning for channels would be nice through the web GUI.
|
133
147
|
* Saving with the hdhomerun_config command is done through a shell script, so we can shut it down properly. I'd
|
134
148
|
like a simpler solution, but haven't found anything that works both on OS X and Linux.
|
@@ -138,18 +152,22 @@ Some features would be cool to have, but I don't have a personal need for them,
|
|
138
152
|
happen if *you* implement them and send me a pull request. Besides, some of them I have no clue how
|
139
153
|
to implement...
|
140
154
|
|
141
|
-
*
|
142
|
-
*
|
143
|
-
*
|
155
|
+
* A logo!
|
156
|
+
* Some kind of live TV through an XBMC PVR plug-in.
|
157
|
+
* Plug-ins for other media systems than XBMC.
|
144
158
|
* Commercial detection.
|
159
|
+
* Intelligent planning of recordings, taking into account re-runs etc.
|
145
160
|
* Record multiple programmes on same multiplex, so we are not restricted to only recording two
|
146
161
|
programmes at once.
|
162
|
+
* More complete XMLTV parser.
|
163
|
+
* Windows support.
|
164
|
+
* Support for other tuners than HDHomeRun.
|
147
165
|
|
148
166
|
Development
|
149
167
|
===========
|
150
168
|
You need the following installed:
|
151
169
|
|
152
|
-
* Ruby
|
170
|
+
* Ruby 2.0 or newer.
|
153
171
|
* [Bundler](http://gembundler.com/).
|
154
172
|
* [Karma](http://karma-runner.github.com/0.8/index.html).
|
155
173
|
* [PhantomJS](http://phantomjs.org/) - and the phantomjs executable must be on your path.
|
@@ -172,13 +190,12 @@ If you want to keep Karma running and let it execute whenever a file changes, ru
|
|
172
190
|
|
173
191
|
karma start test/karma.conf.js
|
174
192
|
|
175
|
-
The specs currently use
|
176
|
-
|
177
|
-
capybara_driver=poltergeist rake test:features
|
193
|
+
The specs currently use Poltergeist to drive PhantomJS, but you can let Selenium drive Firefox instead:
|
178
194
|
|
179
|
-
|
195
|
+
capybara_driver=selenium rake test:features
|
180
196
|
|
181
|
-
To create the gem, make sure that lib/simple_pvr/version.rb
|
197
|
+
To create the gem, make sure that lib/simple_pvr/version.rb and changelog.txt are up-to-date, commit
|
198
|
+
everything and run:
|
182
199
|
|
183
200
|
rake build
|
184
201
|
|
@@ -189,4 +206,5 @@ the automatic tests, right?), and execute
|
|
189
206
|
|
190
207
|
...which will release the gem to rubygems.org.
|
191
208
|
|
192
|
-
I'm trying to make Travis CI like SimplePVR, but it's not easy
|
209
|
+
I'm trying to make Travis CI like SimplePVR, but it's not easy... tests run fine on my own and several
|
210
|
+
other machines, but fail on Travis: [![Build Status](https://travis-ci.org/olefriis/simplepvr-backend-ruby.png)](https://travis-ci.org/olefriis/simplepvr-backend-ruby)
|
data/bin/pvr_server
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'puma/cli'
|
4
4
|
require 'simple_pvr'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
port = ENV['port'] || 4567
|
7
|
+
key = ENV['key']
|
8
|
+
cert = ENV['cert']
|
9
|
+
use_ssl = key && cert
|
10
|
+
|
11
|
+
if use_ssl
|
12
|
+
bind_url = "ssl://0.0.0.0:#{port}?key=#{key}&cert=#{cert}"
|
13
|
+
else
|
14
|
+
puts 'Consider setting up SSL by specifying key and cert. Please consult the documentation.'
|
15
|
+
bind_url = "tcp://0.0.0.0:#{port}"
|
16
|
+
end
|
17
|
+
|
18
|
+
Puma::CLI.new([SimplePvr::PvrInitializer.rackup_file_path, '--bind', bind_url]).run
|
data/changelog.txt
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
1.1.0
|
2
|
+
- Proper log-in dialog, instead of the browser's own HTTP Basic Authentication dialog.
|
3
|
+
- Updated to Twitter Bootstrap 3 (and newer versions of other JS libraries).
|
4
|
+
- Using CDNs for most of the JavaScript, reducing the size of the gem.
|
5
|
+
- Possibility to run server in HTTPS.
|
6
|
+
- More extensive use of XMLTV data: categories, actors, directors, images, etc.
|
7
|
+
- Recording subdirectories now use timestamps as names instead of a sequence, since XBMC
|
8
|
+
would get a little bit confused with new recordings in old directories.
|
9
|
+
|
10
|
+
1.0.0
|
11
|
+
- Initial release. Everything is working nicely.
|
data/development_server
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'puma/cli'
|
4
4
|
require File.dirname(__FILE__) + '/lib/simple_pvr'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
port = ENV['port'] || 4567
|
7
|
+
key = ENV['key']
|
8
|
+
cert = ENV['cert']
|
9
|
+
use_ssl = key && cert
|
10
|
+
|
11
|
+
if use_ssl
|
12
|
+
bind_url = "ssl://0.0.0.0:#{port}?key=#{key}&cert=#{cert}"
|
13
|
+
else
|
14
|
+
puts 'Consider setting up SSL by specifying key and cert. Please consult the documentation.'
|
15
|
+
bind_url = "tcp://0.0.0.0:#{port}"
|
16
|
+
end
|
17
|
+
|
18
|
+
Puma::CLI.new([SimplePvr::PvrInitializer.rackup_file_path, '--bind', bind_url]).run
|