program-tv 0.0.6 → 0.0.7
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.
- data/lib/program-tv/parser.rb +15 -3
- data/lib/program-tv/writer.rb +7 -6
- metadata +20 -13
- checksums.yaml +0 -7
data/lib/program-tv/parser.rb
CHANGED
@@ -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
|
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
|
data/lib/program-tv/writer.rb
CHANGED
@@ -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
|
40
|
-
p.
|
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.
|
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:
|
96
|
+
rubygems_version: 1.8.23
|
89
97
|
signing_key:
|
90
|
-
specification_version:
|
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
|