bin/subdb in subdb-0.1.1 vs bin/subdb in subdb-0.1.2
- old
+ new
@@ -1,85 +1,46 @@
#!/usr/bin/env ruby
+# Copyright (c) 2011 Wilker LĂșcio
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
require "rubygems"
$: << File.expand_path("../../lib", __FILE__)
+$: << File.expand_path("../../vendor/multipart-post", __FILE__)
require "subdb"
-files = []
-video_ext = Subdb::VIDEO_EXTENSIONS.join(",")
+files = Subdb::ClientUtils.scan_paths($*)
-$*.each do |path|
- if File.directory?(path)
- path = path.chomp("/")
- files = files.concat(Dir.glob("#{path}/**/*{#{video_ext}}"))
- else
- files << path if Subdb::VIDEO_EXTENSIONS.include?(File.extname(path))
+Subdb::ClientUtils.sync files, ["pt", "en"] do |action, arg|
+ case action
+ when :scan then puts "Scanning #{arg[0]} [#{arg[1] + 1}/#{files.length}]"
+ when :scanned then puts "Hash: #{arg.hash}"
+ when :remote then puts arg ? "Found with languages: #{arg}" : "No subtitle found"
+ when :uploading then puts "Local subtitle found and none on server, uploading..."
+ when :upload_ok then puts "Upload completed"
+ when :upload_failed then puts "Error on upload: #{arg[1]}"
+ when :downloading then puts "Download from remote..."
+ when :download_ok then puts "Download done"
+ when :download_not_found then puts "No version found for your language"
+ when :download_failed then puts "Error on download: #{arg[1]}"
+ when :scan_failed then puts "Error opening: #{arg}"
+ when :file_done then puts
end
-end
-
-files = files.sort
-
-languages = ["pt", "en"]
-i = 1
-
-for path in files
- base = File.dirname(path) + "/" + File.basename(path, File.extname(path))
- sub = nil
-
- for subext in Subdb::SUB_EXTESNIONS
- subpath = base + subext
-
- if File.exists?(subpath)
- sub = subpath
- break
- end
- end
-
- puts "Scanning #{path} [#{i}/#{files.length}]"
-
- begin
- subdb = Subdb.new(path)
- puts "Hash: #{subdb.hash}"
-
- remote = subdb.search
- puts (remote ? "Found with languages: #{remote}" : "No subtitle found")
-
- if sub and !remote
- puts "Local subtitle found and none on server, uploading..."
-
- begin
- subdb.upload(sub)
- puts "Upload completed"
- rescue
- puts "Error on upload: #{$!}"
- end
- end
-
- if !sub and remote
- puts "downloading from remote"
-
- begin
- downloaded = subdb.download(languages)
-
- if downloaded
- File.open(base + ".srt", "w") do |f|
- f << downloaded
- end
-
- puts "Download done ok"
- else
- puts "No version for your languages"
- end
- rescue
- puts "Error on download: #{$!}"
- end
- end
- rescue
- puts "Can't open: #{$!}"
- end
-
- puts
-
- i += 1
end