rubyVDRconvert 0.0.7 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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