OSDN Git Service

scrap mmd3dcu
[tdcgexplorer/nimono-crawlers.git] / lib / location.rb
1 class Location < ActiveRecord::Base
2   has_many :arcs
3
4   def locked_path_pattern
5     case self.code
6     when 'mmd', 'mmd3dcu'
7       "upload\\.cgi\\?mode=dl&file=(\\d+)"
8     when 'mmdfile'
9       "\\?mode=pass&idd=(\\d+)"
10     end
11   end
12
13   def path_pattern
14     case self.code
15     when 'mmd', 'mmd3dcu'
16       "src/(\\w+)"
17     when 'mmdfile'
18       "\\?id=(\\d+)"
19     when 'mmdacc1'
20       "log/(\\w+)"
21     when 'mmdacc2'
22       "src/(\\w+)"
23     end
24   end
25
26   def generate_locked_arc_code(name)
27     case self.code
28     when 'mmd'
29       code = 'up%04d' % name.to_i
30     when 'mmdfile'
31       code = 'file%04d' % name.to_i
32     when 'mmd3dcu'
33       code = 'cu%04d' % name.to_i
34     end
35     code
36   end
37
38   def generate_arc_code_and_extname(name)
39     if md = /\.(.+)\z/.match(name)
40       extname = md[1]
41       code = File.basename(name, '.' + extname)
42     else
43       extname = nil
44       code = name.dup
45     end
46     case self.code
47     when 'mmd'
48       #
49     when 'mmdfile'
50       code = 'file%04d' % code.to_i
51     when 'mmdacc1'
52       code = 'mini%04d' % code.to_i
53     when 'mmdacc2'
54       code = code[3..-1]
55     when 'mmd3dcu'
56       code = 'cu%04d' % code[3..-1].to_i
57     end
58     [ code, extname ]
59   end
60
61   def create_arc(name, summary, size, date, origname, locked = false)
62     code, extname = generate_arc_code_and_extname(name)
63     arc = arcs.find_by_code(code)
64     if arc
65       puts "found code: #{code}"
66       return arc
67     end
68     puts "arcs.create code: #{code}"
69     arc = arcs.create(:code => code, :extname => extname, :summary => summary, :origname => origname, :locked => !!locked)
70   end
71
72   def update_arc(name, summary, size, date, origname, locked = false)
73     code, extname = generate_arc_code_and_extname(name)
74     arc = arcs.find_or_initialize_by_code(code)
75     puts "arc code: #{code}"
76     arc.update_attributes(:extname => extname, :summary => summary, :origname => origname, :locked => locked)
77   end
78 end