OSDN Git Service

create pmx entries
authornomeu <nomeu@users.sourceforge.jp>
Sat, 2 Feb 2013 20:14:53 +0000 (05:14 +0900)
committernomeu <nomeu@users.sourceforge.jp>
Sat, 2 Feb 2013 20:14:53 +0000 (05:14 +0900)
app/models/arc.rb
bin/scrap-3dcu-pmx.rb [new file with mode: 0644]
bin/scrap-bowl-pmx.rb [new file with mode: 0644]

index 072b4b5..ea13b62 100644 (file)
@@ -28,4 +28,20 @@ class Arc < ActiveGroonga::Base
       end
     end
   end
+
+  def create_pmx_entries(path)
+    archiver = Archivers.load(path, extname)
+    unless archiver
+      puts "archiver not found: #{path}"
+      return
+    end
+    archiver.each_entry do |ent|
+      case ent
+      when /\.pmx\z/
+        puts [ code, ent ].join(' ')
+        pmds = Pmd.select { |rec| rec.arc == code && rec.path == ent }
+        pmds.count != 0 || Pmd.create(:arc => code, :path => ent)
+      end
+    end
+  end
 end
diff --git a/bin/scrap-3dcu-pmx.rb b/bin/scrap-3dcu-pmx.rb
new file mode 100644 (file)
index 0000000..782ac34
--- /dev/null
@@ -0,0 +1,22 @@
+#!ruby
+# encoding: utf-8
+$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
+$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../app/models')
+require 'connection'
+require 'site'
+require 'arc'
+require 'pmd'
+require 'vmd'
+require 'x'
+require 'thumb'
+require 'bowl'
+
+Dir.glob("/Volumes/uploader/arc/mmd3dcu/MMD*.*") do |ent|
+  basename = File.basename(ent)
+  md = /\AMMD(\d+)/.match(basename)
+  number = md[1].to_i
+  code = "cu%04d" % number
+  arc = Arc.find(code)
+  next unless arc
+  arc.create_pmx_entries(ent)
+end
diff --git a/bin/scrap-bowl-pmx.rb b/bin/scrap-bowl-pmx.rb
new file mode 100644 (file)
index 0000000..ee3b8c2
--- /dev/null
@@ -0,0 +1,22 @@
+#!ruby
+# encoding: utf-8
+$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
+$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../app/models')
+require 'connection'
+require 'site'
+require 'arc'
+require 'pmd'
+require 'vmd'
+require 'x'
+require 'thumb'
+require 'bowl'
+
+Dir.glob("/Volumes/uploader/arc/mmdbowl/dl*.*") do |ent|
+  basename = File.basename(ent)
+  md = /\Adl(\d+)/.match(basename)
+  number = md[1].to_i
+  code = "bo%04d" % number
+  arc = Arc.find(code)
+  next unless arc
+  arc.create_pmx_entries(ent)
+end