OSDN Git Service

refactored
authornomeu <nomeu@nomeu.org>
Mon, 14 Jun 2010 05:31:39 +0000 (14:31 +0900)
committernomeu <nomeu@nomeu.org>
Mon, 14 Jun 2010 05:31:39 +0000 (14:31 +0900)
bin/load-thumbs.rb
lib/nicovideo.rb [new file with mode: 0644]

index 6a42f05..2cca089 100644 (file)
@@ -3,42 +3,7 @@
 $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
 require 'connection'
 require 'thumb'
-
-require 'open-uri'
-require 'erb'
-require 'rss'
-require 'rexml/document'
-
-class Nicovideo
-
-  def tag_search(tag_name)
-    video_ids = []
-    uri = "http://www.nicovideo.jp/tag/#{ERB::Util.u tag_name}?sort=f&rss=atom"
-    open(uri) do |f|
-      rss = RSS::Parser.parse(f)
-      rss.entries.each do |ent|
-        if md = %r(/watch/(.+?)\z).match(ent.link.href)
-          video_id = md[1]
-          video_ids.push video_id
-        end
-      end
-    end
-    video_ids
-  end
-
-  def get_thumbinfo(video_id)
-    uri = "http://ext.nicovideo.jp/api/getthumbinfo/#{video_id}"
-    open(uri) do |f|
-      doc = REXML::Document.new(f)
-      thumb = doc.root.elements['thumb']
-      video_id = thumb.elements['video_id'].text
-      db_thumb = Thumb.find_or_initialize_by_video_id(video_id)
-      db_thumb.title = thumb.elements['title'].text
-      db_thumb.description = thumb.elements['description'].text
-      db_thumb.save
-    end
-  end
-end
+require 'nicovideo'
 
 nv = Nicovideo.new
 
@@ -46,7 +11,11 @@ def nv.tag_search_and_get_thumbinfo(tag_name)
   video_ids = tag_search(tag_name)
   video_ids.each do |video_id|
     puts video_id
-    get_thumbinfo(video_id)
+    td = get_thumbinfo(video_id)
+    thumb = Thumb.find_or_initialize_by_video_id(td.video_id)
+    thumb.title = td.title
+    thumb.description = td.description
+    thumb.save
   end
 end
 
diff --git a/lib/nicovideo.rb b/lib/nicovideo.rb
new file mode 100644 (file)
index 0000000..7d84acf
--- /dev/null
@@ -0,0 +1,39 @@
+require 'open-uri'
+require 'erb'
+require 'rss'
+require 'rexml/document'
+
+class Nicovideo
+
+  def tag_search(tag_name)
+    video_ids = []
+    uri = "http://www.nicovideo.jp/tag/#{ERB::Util.u tag_name}?sort=f&rss=atom"
+    open(uri) do |f|
+      rss = RSS::Parser.parse(f)
+      rss.entries.each do |ent|
+        if md = %r(/watch/(.+?)\z).match(ent.link.href)
+          video_id = md[1]
+          video_ids.push video_id
+        end
+      end
+    end
+    video_ids
+  end
+
+  class ThumbData
+    attr_accessor :video_id, :title, :description
+  end
+
+  def get_thumbinfo(video_id)
+    td = ThumbData.new
+    uri = "http://ext.nicovideo.jp/api/getthumbinfo/#{video_id}"
+    open(uri) do |f|
+      doc = REXML::Document.new(f)
+      thumb = doc.root.elements['thumb']
+      td.video_id = thumb.elements['video_id'].text
+      td.title = thumb.elements['title'].text
+      td.description = thumb.elements['description'].text
+    end
+    td
+  end
+end