program-tv 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,6 +16,7 @@ module ProgramTV
16
16
  private
17
17
 
18
18
  def schedule(epg_name, url)
19
+ @additional_day = false
19
20
  page = Nokogiri::HTML(@agent.get(url).body)
20
21
  data = page.css(".main.col > table:last > tbody > tr").map do |e|
21
22
  {
@@ -28,7 +29,18 @@ module ProgramTV
28
29
  puts "Missing schedule for channel #{epg_name}"
29
30
  return
30
31
  end
31
- data[0..-2].each_with_index{ |element, i| element[:end] = data[i+1][:start] }
32
+ data[0..-2].each_with_index do |element, i|
33
+ element[:stop] = data[i+1][:start]
34
+ if element[:stop] < element[:start]
35
+ @additional_day = true
36
+ element[:stop] += 86400
37
+ elsif @additional_day
38
+ element[:start] += 86400
39
+ element[:stop] += 86400
40
+ end
41
+ element[:start] = element[:start].strftime("%Y%m%d%H%M%S %z")
42
+ element[:stop] = element[:stop].strftime("%Y%m%d%H%M%S %z")
43
+ end
32
44
  data.pop
33
45
  data
34
46
  end
@@ -39,9 +51,9 @@ module ProgramTV
39
51
  return nil unless time
40
52
  Time.new(Time.new.year,
41
53
  Time.new.month,
42
- Time.new.day,
54
+ Time.new.day + 1,
43
55
  time[1],
44
56
  time[2])
45
57
  end
46
58
  end
47
- end
59
+ end
@@ -14,7 +14,10 @@ module ProgramTV
14
14
  today_schedule = []
15
15
  if File.exist?(xml_path(schedule))
16
16
  File.open(xml_path(schedule), "r+") do |file|
17
- today_schedule = Hash.from_xml(file.read)[:tv][:programme]
17
+ today_schedule = Hash.from_xml(file.read)[:tv][:programme].map do |e|
18
+ e[:attributes][:title] = e[:title]
19
+ e[:attributes]
20
+ end
18
21
  end
19
22
  end
20
23
  File.open(xml_path(schedule), "w+") do |file|
@@ -35,11 +38,9 @@ module ProgramTV
35
38
  xml_builder.instruct! :xml, :encoding => "UTF-8"
36
39
  xml_builder.tv do |tv|
37
40
  schedule.each do |program|
38
- tv.programme do |p|
39
- p.title program[:title]
40
- p.channel program[:channel]
41
- p.start program[:start]
42
- p.end program[:end]
41
+ tv.programme :channel => program[:channel], :start => program[:start], :stop => program[:stop] do |p|
42
+ p.title program[:title], :lang => 'pl'
43
+ p.desc
43
44
  end
44
45
  end
45
46
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: program-tv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Maciej Walusiak
@@ -13,43 +14,49 @@ dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: builder
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: mechanize
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: nokogiri
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  description: Downloads TV channel schedule in XML format
@@ -68,26 +75,26 @@ files:
68
75
  homepage: https://github.com/Rabsztok/program-tv
69
76
  licenses:
70
77
  - GPL
71
- metadata: {}
72
78
  post_install_message:
73
79
  rdoc_options: []
74
80
  require_paths:
75
81
  - lib
76
82
  required_ruby_version: !ruby/object:Gem::Requirement
83
+ none: false
77
84
  requirements:
78
- - - '>='
85
+ - - ! '>='
79
86
  - !ruby/object:Gem::Version
80
87
  version: '0'
81
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
+ none: false
82
90
  requirements:
83
- - - '>='
91
+ - - ! '>='
84
92
  - !ruby/object:Gem::Version
85
93
  version: '0'
86
94
  requirements: []
87
95
  rubyforge_project:
88
- rubygems_version: 2.0.7
96
+ rubygems_version: 1.8.23
89
97
  signing_key:
90
- specification_version: 4
98
+ specification_version: 3
91
99
  summary: TV Channel parser
92
100
  test_files: []
93
- has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 68e09f44b1853d8116875621e117bd935a3dca0e
4
- data.tar.gz: 7eece625724d68feb428ed3d7faea8f070f79ade
5
- SHA512:
6
- metadata.gz: 442a702464d3cacda9cf4da4238a1f36f3e708f9c752c1bff15a969b5d3e62f907f477eef7d77055319e6b7f566a1af4c3da94df1b51a3482ebb13434322b071
7
- data.tar.gz: 4d20703fc27546ae8bd1d9294d30281f5b6d7a884647527557ddfc177b7845d0d806d5f26881cd3729c80639a55933cad9d6ddedff4586ee2275ad15ec4bc4a7