ruboty-chinachu 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0463199552ee7eb3ede9a449364db27a0118d0bc
4
- data.tar.gz: feb15bf71cf7e30cca3e81d883d4d435cc8a3dd8
3
+ metadata.gz: c409097b57434086036dda5a7450d76ac1011b40
4
+ data.tar.gz: 4fb1a2c12d52b89ef071e1cd5826a0e2f803dc1a
5
5
  SHA512:
6
- metadata.gz: 36f9e88d9621df86694df93a7bdc30826364c71039dedaf1ba0b9b6932c8173e8e1df33b428633dfb660e8096e7df7b5e6e2999ceab290490c5737013c778854
7
- data.tar.gz: 55771aea50111cc9be1d87bd47369304f5653e4dcac636d52f0b927eac65fcceb9c5f439e0b17edd8c7efa10bdb854f59453b910e4119587f5644ff0a129c4b7
6
+ metadata.gz: 06988a0e7c82c3f8a598362e9771e7a8bb06c05ca9746ded828a852d709734d02f66c6c9551ace8a5d74cc6e8efaf537dd4f56041cd55fb58776951f7bdfb50d
7
+ data.tar.gz: 55c8e068e5f0caa5ecc89dbc07b4c9d9ca9a45128805c1974739d5b0961b086d828ec403c5286b41aace46a4bad8b22a6abf974098461a142a6eb30c2d124f68
@@ -0,0 +1,17 @@
1
+ # 0.2.0
2
+
3
+ Feature
4
+
5
+ - Show channel list
6
+ - Show channel program schedule list
7
+ - Reserve program
8
+ - Delete reservation
9
+
10
+ Fix
11
+
12
+ - Turn capitals the first letter of a sentene
13
+ - Require Goraku up to 0.1.2
14
+
15
+ # 0.1.0
16
+
17
+ First release
data/README.md CHANGED
@@ -16,6 +16,15 @@ And then execute:
16
16
 
17
17
  $ bundle install
18
18
 
19
+ ## ENV
20
+
21
+ ```shell
22
+ CHINACHU_API_ENDPOINT - API endpont address you Chinachu server
23
+ CHINACHU_LOGIN - BASIC login name (Option: if you use BASIC Auth)
24
+ CHINACHU_PASSWORD - BASIC login pass (Option: if you use BASIC Auth)
25
+ CHINACHU_PROGRAM_FORMAT - Output program summary format string
26
+ ```
27
+
19
28
  ## Usage
20
29
 
21
30
  ```shell
@@ -10,7 +10,7 @@ module Ruboty
10
10
  end
11
11
 
12
12
  def chinachu_options
13
- opts = {api_endpoint: ENV['CHINACHU_API_ENDPOINT']}
13
+ opts = {api_endpoint: ENV['CHINACHU_API_ENDPOINT'], raise_error: true}
14
14
  return opts unless ENV['CHINACHU_LOGIN'] || ENV['CHINACHU_PASSWORD']
15
15
  opts[:login] = ENV['CHINACHU_LOGIN']
16
16
  opts[:password] = ENV['CHINACHU_PASSWORD']
@@ -0,0 +1,38 @@
1
+ module Ruboty
2
+ module Chinachu
3
+ module Actions
4
+ class Program < Base
5
+
6
+ def reserve
7
+ begin
8
+ chinachu.reserve_program(program_id)
9
+ program = chinachu.program(program_id)
10
+ message.reply("Reserved #{summary(program, PROGRAM_FORMAT)}")
11
+ rescue Goraku::Status409
12
+ message.reply("Id #{program_id} already reserved")
13
+ rescue
14
+ message.reply("Reserve #{program_id} faild")
15
+ end
16
+ end
17
+
18
+ def delete_reservation
19
+ begin
20
+ program = chinachu.reserves_program(program_id)
21
+ chinachu.delete_reserved_program(program_id)
22
+ message.reply("Delete reservation #{summary(program, PROGRAM_FORMAT)}")
23
+ rescue Goraku::Status404
24
+ message.reply("Id #{program_id} is not reserved")
25
+ rescue
26
+ message.reply("Delete reservation #{program_id} faild")
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def program_id
33
+ message[:program_id]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -8,11 +8,40 @@ module Ruboty
8
8
  message.reply(broadcasting.map { |p| summary(p, PROGRAM_FORMAT) }.join("\n"), code: true)
9
9
  end
10
10
 
11
+ def list_channels
12
+ message.reply(channels.join("\n"), code: true)
13
+ end
14
+
15
+ def list_schedule
16
+ current = Time.now
17
+ after_twenty_four_hour = current + (60 * 60 * 24)
18
+ begin
19
+ programs = schedules.select do |program|
20
+ start_at = Time.at(program.start / 1000)
21
+ current < start_at && start_at < after_twenty_four_hour
22
+ end
23
+ message.reply(programs.map { |p| summary(p, PROGRAM_FORMAT) }.join("\n"), code: true)
24
+ rescue
25
+ end
26
+ end
27
+
11
28
  private
12
29
 
13
30
  def broadcasting
14
31
  chinachu.schedule_broadcasting
15
32
  end
33
+
34
+ def channels
35
+ chinachu.schedule.map { |s| "id:#{s.id} - #{s.name}" }
36
+ end
37
+
38
+ def schedules
39
+ chinachu.schedule_channel_programs(channel_id)
40
+ end
41
+
42
+ def channel_id
43
+ message[:channel_id]
44
+ end
16
45
  end
17
46
  end
18
47
  end
@@ -1,5 +1,5 @@
1
1
  module Ruboty
2
2
  module Chinachu
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -2,20 +2,25 @@ require 'ruboty/chinachu/actions/reserves'
2
2
  require 'ruboty/chinachu/actions/schedule'
3
3
  require 'ruboty/chinachu/actions/recording'
4
4
  require 'ruboty/chinachu/actions/recorded'
5
+ require 'ruboty/chinachu/actions/program'
5
6
 
6
7
  module Ruboty
7
8
  module Handlers
8
9
  class Chinachu < Ruboty::Handlers::Base
9
10
 
10
- env :CHINACHU_API_ENDPOINT, "chinachu api endpoint"
11
+ env :CHINACHU_API_ENDPOINT, "Chinachu api endpoint"
11
12
  env :CHINACHU_LOGIN, "Login name for Chinachu server's basic authentication", optional: true
12
13
  env :CHINACHU_PASSWORD, "Login pass for Chinachu server's basic authentication", optional: true
13
- env :CHINACHU_PROGRAM_FORMAT, "program output string format", optional: true
14
+ env :CHINACHU_PROGRAM_FORMAT, "Program output string format", optional: true
14
15
 
15
- on( /list reserved/, name: :daily_reservation_list, description: "show today's reservations list")
16
- on( /list broadcasting/, name: :list_broadcasting, description: "broadcasting programs")
17
- on( /list recording/, name: :list_recording, description: "recording programs")
18
- on( /list recorded/, name: :list_recorded, description: "recorded programs in this 24 hours")
16
+ on( /list reserved/, name: :daily_reservation_list, description: "Show today's reservations list")
17
+ on( /list broadcasting/, name: :list_broadcasting, description: "Broadcasting programs")
18
+ on( /list recording/, name: :list_recording, description: "Recording programs")
19
+ on( /list recorded/, name: :list_recorded, description: "Recorded programs in this 24 hours")
20
+ on( /list channel/, name: :list_channel, description: "Show all channel list")
21
+ on( /list program schedule (?<channel_id>.+)/, name: :list_schedule, description: "Show today's channel schedule")
22
+ on( /reserve program (?<program_id>.+)/, name: :reserve, description: "Reserve Program")
23
+ on( /delete reservation (?<program_id>.+)/, name: :delete_reservation, description: "Delete reserved Program")
19
24
 
20
25
  def daily_reservation_list(message)
21
26
  Ruboty::Chinachu::Actions::Reserves.new(message).call
@@ -32,6 +37,22 @@ module Ruboty
32
37
  def list_recorded(message)
33
38
  Ruboty::Chinachu::Actions::Recorded.new(message).call
34
39
  end
40
+
41
+ def list_channel(message)
42
+ Ruboty::Chinachu::Actions::Schedule.new(message).list_channels
43
+ end
44
+
45
+ def list_schedule(message)
46
+ Ruboty::Chinachu::Actions::Schedule.new(message).list_schedule
47
+ end
48
+
49
+ def reserve(message)
50
+ Ruboty::Chinachu::Actions::Program.new(message).reserve
51
+ end
52
+
53
+ def delete_reservation(message)
54
+ Ruboty::Chinachu::Actions::Program.new(message).delete_reservation
55
+ end
35
56
  end
36
57
  end
37
58
  end
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.require_paths = ["lib"]
18
18
 
19
19
  spec.add_runtime_dependency "ruboty", "~> 1.2"
20
- spec.add_runtime_dependency "goraku", "~> 0.0"
20
+ spec.add_runtime_dependency "goraku", "~> 0.1.2"
21
21
  spec.add_development_dependency "bundler", "~> 1.10"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
  spec.add_development_dependency "rspec"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboty-chinachu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kinoshita.Yasuhiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-14 00:00:00.000000000 Z
11
+ date: 2015-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruboty
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.0'
33
+ version: 0.1.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.0'
40
+ version: 0.1.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -118,6 +118,7 @@ files:
118
118
  - ".gitignore"
119
119
  - ".rspec"
120
120
  - ".travis.yml"
121
+ - CHANGELOG.md
121
122
  - CODE_OF_CONDUCT.md
122
123
  - Gemfile
123
124
  - LICENSE.md
@@ -125,6 +126,7 @@ files:
125
126
  - Rakefile
126
127
  - lib/ruboty/chinachu.rb
127
128
  - lib/ruboty/chinachu/actions/base.rb
129
+ - lib/ruboty/chinachu/actions/program.rb
128
130
  - lib/ruboty/chinachu/actions/recorded.rb
129
131
  - lib/ruboty/chinachu/actions/recording.rb
130
132
  - lib/ruboty/chinachu/actions/reserves.rb