OSDN Git Service

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