rubyVDRconvert 0.0.7 → 0.0.9

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.
@@ -2,35 +2,34 @@ require 'find'
2
2
 
3
3
  class FileDir
4
4
  def self.delete!(filedir)
5
- begin
6
- p filedir
7
- case Dir.exist?(filedir)
8
- when true
9
- begin
10
- Dir.rmdir(filedir)
11
- rescue
12
- Dir.foreach(filedir) { | entry |
13
- delete!(filedir + '/' + entry) unless (entry == ".") or (entry == "..")
14
- }
15
- retry
16
- end
17
- else
18
- File.delete(filedir)
19
- end
20
- rescue
21
- $stderr.puts "Failed to delete #{filedir}"
22
- end
5
+ begin
6
+ case Dir.exist?(filedir)
7
+ when true
8
+ begin
9
+ Dir.rmdir(filedir)
10
+ rescue
11
+ Dir.foreach(filedir) { | entry |
12
+ delete!(filedir + '/' + entry) unless (entry == ".") or (entry == "..")
13
+ }
14
+ retry
15
+ end
16
+ else
17
+ File.delete(filedir)
18
+ end
19
+ rescue
20
+ $stderr.puts "Failed to delete #{filedir}"
21
+ end
23
22
  end
24
23
  def self.mkdirtree(directory)
25
- begin
26
- Dir.mkdir(directory)
27
- rescue SystemCallError => ex
28
- parent = File.dirname(directory)
29
- # Prevent an endless loop
30
- return true if Dir.exist?(directory)
31
- raise ex if parent.length == '/'
32
- self.mkdirtree(parent)
33
- retry
34
- end
24
+ begin
25
+ Dir.mkdir(directory)
26
+ rescue SystemCallError => ex
27
+ parent = File.dirname(directory)
28
+ # Prevent an endless loop
29
+ return true if Dir.exist?(directory)
30
+ raise ex if parent.length == '/'
31
+ self.mkdirtree(parent)
32
+ retry
33
+ end
35
34
  end
36
35
  end
@@ -19,7 +19,7 @@ class Recording
19
19
  @timestamp = File.mtime(@directory + '/index')
20
20
  load_info
21
21
  determine_stream_type
22
- p "New recording: #{@friendly_name}"
22
+ puts "New recording: #{@friendly_name}"
23
23
  end
24
24
  def marshal_dump()
25
25
  [ @directory, @recording, @title, @subtitle, @friendly_name, @target_dir, @processed, @timestamp, @recording_time ]
@@ -37,10 +37,9 @@ class Recording
37
37
  end
38
38
  def delete!()
39
39
  @mutex.synchronize {
40
+ @recording.delete! if @recording
40
41
  @recording = nil
41
42
  GC.start
42
- p "Deleting....", self, @target_dir
43
- FileDir.delete!(@target_dir)
44
43
  }
45
44
  end
46
45
  def load_info()
@@ -53,10 +52,8 @@ class Recording
53
52
  case line[0..1]
54
53
  when 'T '
55
54
  @title = line[2..256].chomp
56
- p "Found title: #{@title}"
57
55
  when 'S '
58
56
  @subtitle = line[2..256].chomp
59
- p "Found subtitle: #{@subtitle}"
60
57
  when 'E '
61
58
  @recording_time = Time.at(line.split[2].to_i)
62
59
  end
@@ -81,7 +78,7 @@ class Recording
81
78
  end
82
79
  end
83
80
  def process!()
84
- p "Starting processing of #{@friendly_name}"
81
+ puts "Processing of #{@friendly_name} started..."
85
82
  @mutex.synchronize{
86
83
  @processed = true if @recording.process!
87
84
  }
@@ -2,21 +2,29 @@ require 'file_dir'
2
2
 
3
3
  class RecordingTS
4
4
  def initialize(recording)
5
- @parent = recording
5
+ @parent = recording
6
+ @target_file = nil
6
7
  end
7
8
  def process!()
8
- target_file = @parent.target_dir + "/#{@parent.friendly_name}.ts"
9
- FileDir.mkdirtree(@parent.target_dir)
10
- tf = File.new(target_file, 'wb:ascii-8bit')
11
- source_files = Dir.glob("#{@parent.directory}/*.ts")
12
- source_files.sort!
13
- source_files.each { | source_file |
14
- sf = File.new(source_file, 'rb:ascii-8bit')
15
- while not sf.eof?
16
- tf.write(sf.read(1*(2**20))) # Only read some bytes at once
17
- sleep(0.01) # Be friendly to other processes
18
- end
19
- sf.close
20
- }
9
+ @target_file = @parent.target_dir + "/#{@parent.friendly_name}.ts"
10
+ FileDir.mkdirtree(@parent.target_dir)
11
+ tf = File.new(@target_file, 'wb:ascii-8bit')
12
+ source_files = Dir.glob("#{@parent.directory}/*.ts")
13
+ source_files.sort!
14
+ source_files.each { | source_file |
15
+ sf = File.new(source_file, 'rb:ascii-8bit')
16
+ while not sf.eof?
17
+ tf.write(sf.read(1*(2**20))) # Only read some bytes at once
18
+ sleep(0.01) # Be friendly to other processes
19
+ end
20
+ sf.close
21
+ }
22
+ end
23
+ def delete!()
24
+ begin
25
+ puts "Removing file #{@target_file}"
26
+ File.delete(@target_file) if @target_file
27
+ rescue
28
+ end
21
29
  end
22
30
  end
@@ -1,21 +1,28 @@
1
1
  class RecordingVDR
2
2
  def initialize(recording)
3
- @parent = recording
3
+ @parent = recording
4
+ @target_file = nil
4
5
  end
5
6
  def process!()
6
- return false
7
- target_file = @parent.target_dir + "/#{@parent.friendly_name}.ts"
8
- FileDir.mkdirtree(@parent.target_dir)
9
- tf = File.new(target_file, 'wb:ascii-8bit')
10
- source_files = Dir.glob("#{@parent.directory}/*.ts")
11
- source_files.sort!
12
- source_files.each { | source_file |
13
- sf = File.new(source_file, 'rb:ascii-8bit')
14
- while not sf.eof?
15
- tf.write(sf.read(1*(2**20))) # Only read some bytes at once
16
- sleep(0.01) # Be friendly to other processes
17
- end
18
- sf.close
19
- }
7
+ return false
8
+ @target_file = @parent.target_dir + "/#{@parent.friendly_name}.ts"
9
+ FileDir.mkdirtree(@parent.target_dir)
10
+ tf = File.new(@target_file, 'wb:ascii-8bit')
11
+ source_files = Dir.glob("#{@parent.directory}/*.ts")
12
+ source_files.sort!
13
+ source_files.each { | source_file |
14
+ sf = File.new(source_file, 'rb:ascii-8bit')
15
+ while not sf.eof?
16
+ tf.write(sf.read(1*(2**20))) # Only read some bytes at once
17
+ sleep(0.01) # Be friendly to other processes
18
+ end
19
+ sf.close
20
+ }
21
+ end
22
+ def delete!()
23
+ begin
24
+ File.delete(@target_file) if @target_file
25
+ rescue
26
+ end
20
27
  end
21
28
  end
@@ -19,14 +19,13 @@ class Recordings
19
19
  found_directories << directory
20
20
  if @recordings_db[directory] == nil then
21
21
  # Found a new entry
22
- p directory
23
- p add(directory)
22
+ add(directory)
24
23
  end
25
24
  end
26
25
  end
27
26
  }
28
27
  @recordings_db.each { | recording |
29
- p recording.class, recording
28
+ puts "Removing recording: #{recording}"
30
29
  recording[1].delete! unless found_directories.include?(recording[1].directory)
31
30
  }
32
31
  end
@@ -47,11 +46,8 @@ class Recordings
47
46
  # TODO: Add a new recording that was found in the specified directory
48
47
  # Ensure that VDR has finished writing the recording by checking the mtime of the index file
49
48
  # Wait at least 30 seconds after VDR has finished
50
- p Time.now - File.mtime(directory + '/index')
51
49
  return false unless (Time.now - File.mtime(directory + '/index')) > 30
52
- p "Old enough... continuing."
53
50
  @recordings_db[directory] = Recording.new(directory)
54
51
  @recordings_db[directory].process!
55
- p @recordings_db[directory]
56
52
  end
57
53
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 7
9
- version: 0.0.7
8
+ - 9
9
+ version: 0.0.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Frank