imagevenue 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,28 +1,23 @@
1
1
  module ImageVenue
2
2
  class Directory
3
3
  class << self
4
- def list_uri
5
- @list_uri ||= URI.parse(ImageVenue.base_url + '/view_dir.php')
6
- end
4
+ attr_accessor :debug
7
5
 
8
- def files_uri
9
- @files_uri ||= URI.parse(ImageVenue.base_url + '/process_get_dir_codes.php')
6
+ def debug?
7
+ (ImageVenue.debug? or self.debug) ? true : false
10
8
  end
11
9
 
12
- def files_format_key
13
- @files_format_key ||= 'poster'
14
- end
15
-
16
- def files_format_forum
17
- @files_format_forum ||= 'forum'
18
- end
19
-
20
- def files_format_website
21
- @files_format_website ||= 'webpage'
10
+ def puts_debug(*args)
11
+ if self.debug?
12
+ puts(*args)
13
+ return true
14
+ else
15
+ return false
16
+ end
22
17
  end
23
18
 
24
- def files_directory_key
25
- @files_directory_key ||= 'dir'
19
+ def list_uri
20
+ @list_uri ||= URI.parse(ImageVenue.base_url + '/view_dir.php')
26
21
  end
27
22
 
28
23
  def select_uri
@@ -49,218 +44,160 @@ module ImageVenue
49
44
  @delete_directory_key ||= 'delete_dir[]'
50
45
  end
51
46
 
52
- def cookie_directory_key
53
- @cookie_directory_key ||= 'cur_upload_dir'
47
+ def create_params(directory_name)
48
+ {
49
+ self.create_directory_key => directory_name
50
+ }
54
51
  end
55
- end
56
-
57
- attr_accessor :directories
58
- attr_accessor :directories_files
59
- attr_accessor :selected_directory
60
- attr_accessor :debug
61
52
 
62
- alias :selected :selected_directory
63
-
64
- def initialize
65
- self.directories = nil
66
- self.directories_files = {}
67
- self.selected_directory = nil
68
- return nil
69
- end
70
-
71
- def debug?
72
- (ImageVenue.debug or self.debug) ? true : false
73
- end
53
+ def delete_params(directory_name)
54
+ {
55
+ self.delete_directory_key => directory_name
56
+ }
57
+ end
74
58
 
75
- def puts_debug(*args)
76
- if self.debug?
77
- puts(*args)
78
- return true
79
- else
80
- return false
59
+ def select_params(directory_name)
60
+ {
61
+ self.select_directory_key => directory_name
62
+ }
81
63
  end
82
- end
83
64
 
84
- def list(reload=false)
85
- if self.directories.nil? or reload
86
- puts_debug "Trying to fetch directories ..."
87
- request = Net::HTTP::Get.new(self.class.list_uri.path)
88
- request.header['cookie'] = [ImageVenue.authenticate.cookie_as_string]
89
- response = Net::HTTP.start(self.class.list_uri.host, self.class.list_uri.port) do |http|
65
+ def list(connection=nil)
66
+ self.puts_debug "Trying to fetch directories ..."
67
+ request = Net::HTTP::Get.new(self.list_uri.path)
68
+ request.header['cookie'] = [connection.cookie_as_string]
69
+ response = Net::HTTP.start(self.list_uri.host, self.list_uri.port) do |http|
90
70
  http.request(request)
91
71
  end
92
72
  if response.is_a?(Net::HTTPSuccess)
73
+ directories = []
93
74
  hpricot = Hpricot(response.body)
94
- self.directories = hpricot.search('form:first').first.search('input[@type="radio"]').collect {|input| input['value']}
95
- puts_debug "Directories successfully fetched!"
96
- return self.directories
75
+ form = hpricot.search('form:first').first || Hpricot::Elem.new('')
76
+ form.search('input[@type="radio"]').each do |input|
77
+ directories << self.new(connection, input['value'], false)
78
+ end
79
+ self.puts_debug "Directories successfully fetched!"
80
+ return directories
97
81
  else
98
- puts_debug "Directories fetch failed!"
82
+ self.puts_debug "Directories fetch failed!"
99
83
  return false
100
84
  end
101
- else
102
- puts_debug "Directories from cache!"
103
- return self.directories
104
85
  end
105
86
  end
106
87
 
107
- def files(directory, reload=false)
108
- if self.directories_files[directory].nil? or reload
109
- puts_debug "Trying to fetch files from directory: '#{directory}' ..."
110
- request = Net::HTTP::Post.new(self.class.files_uri.path)
111
- request.form_data = self.files_params(directory)
112
- request.header['cookie'] = [ImageVenue.authenticate.cookie_as_string]
113
- response = Net::HTTP.start(self.class.files_uri.host, self.class.files_uri.port) do |http|
114
- http.request(request)
115
- end
116
- if response.is_a?(Net::HTTPSuccess)
117
- self.directories_files[directory] = ImageVenue::File.parse_forum_codes(response.body, directory)
118
- puts_debug "Files successfully fetched!"
119
- return self.directories_files[directory]
120
- else
121
- puts_debug "Files fetch failed!"
122
- return false
123
- end
124
- else
125
- puts_debug "Files from cache for directory: '#{directory}'"
126
- return self.directories_files[directory]
127
- end
88
+ attr_accessor :connection
89
+ attr_accessor :debug
90
+ attr_accessor :name
91
+
92
+ def initialize(connection, name, is_new=true)
93
+ self.connection = connection
94
+ self.name = name
95
+ @is_new = is_new
96
+ return nil
128
97
  end
129
98
 
130
- def files_params(directory)
131
- {
132
- self.class.files_format_key => self.class.files_format_forum,
133
- self.class.files_directory_key => directory
134
- }
99
+ def debug?
100
+ (self.class.debug? or self.debug) ? true : false
135
101
  end
136
102
 
137
- def select(directory, reselect=false)
138
- if directory != self.selected_directory or reselect
139
- puts_debug "Trying to select directory: '#{directory}'"
140
- request = Net::HTTP::Post.new(self.class.select_uri.path)
141
- request.form_data = self.select_params(directory)
142
- request.header['cookie'] = [ImageVenue.authenticate.cookie_as_string]
143
- response = Net::HTTP.start(self.class.select_uri.host, self.class.select_uri.port) do |http|
144
- http.request(request)
145
- end
146
- if response.is_a?(Net::HTTPFound) and not (response.header['Set-Cookie'].nil? or response.header['Set-Cookie'].empty?)
147
- self.selected_directory = directory
148
- ImageVenue.authenticate.cookie[self.class.cookie_directory_key] = directory
149
- puts_debug "Directory successfully selected!"
150
- return true
151
- else
152
- puts_debug "Directory select failed!"
153
- return false
154
- end
103
+ def puts_debug(*args)
104
+ if self.debug?
105
+ puts(*args)
106
+ return true
155
107
  else
156
- puts_debug "Directory already selected."
157
- return nil
108
+ return false
158
109
  end
159
110
  end
160
111
 
161
- def select_params(directory)
162
- {
163
- self.class.select_directory_key => directory
164
- }
112
+ def is_new?
113
+ @is_new
165
114
  end
166
115
 
167
- def create(directory, reload=false)
168
- unless self.list(reload).include?(directory)
169
- puts_debug "Trying to create directory: '#{directory}'"
116
+ def save(force=false, reload=false)
117
+ if force or self.connection.directories(reload).find {|dir| dir.name == self.name }.nil?
118
+ self.puts_debug "Trying to create directory: '#{self.name}'"
170
119
  request = Net::HTTP::Post.new(self.class.create_uri.path)
171
- request.form_data = self.create_params(directory)
172
- request.header['cookie'] = [ImageVenue.authenticate.cookie_as_string]
120
+ request.form_data = self.class.create_params(self.name)
121
+ request.header['cookie'] = [self.connection.cookie_as_string]
173
122
  response = Net::HTTP.start(self.class.create_uri.host, self.class.create_uri.port) do |http|
174
123
  http.request(request)
175
124
  end
176
125
  if response.is_a?(Net::HTTPSuccess) and not (response.header['Set-Cookie'].nil? or response.header['Set-Cookie'].empty?)
177
- self.selected_directory = directory
178
- self.directories.insert(0, directory)
179
- ImageVenue.authenticate.cookie[self.class.cookie_directory_key] = directory
180
- puts_debug "Directory successfully created!"
126
+ self.connection.selected_directory = self.name
127
+ self.puts_debug "Directory successfully created and selected!"
128
+ @is_new = false
181
129
  return true
182
130
  else
183
- puts_debug "Directory create failed!"
131
+ self.puts_debug "Directory create failed!"
184
132
  return false
185
133
  end
186
134
  else
187
- puts_debug "Directory already exists: '#{directory}'"
135
+ self.puts_debug "Directory already exists: '#{self.name}'"
188
136
  return nil
189
137
  end
190
138
  end
191
139
 
192
- def create_params(directory)
193
- {
194
- self.class.create_directory_key => directory
195
- }
196
- end
197
-
198
- def select_or_create(directory, reload=false, reselect=false)
199
- if self.list(reload).include?(directory)
200
- return self.select(directory, reselect)
201
- else
202
- return self.create(directory, false) # reload)
203
- end
204
- end
205
-
206
- def delete(directory, reload=false)
207
- if self.list(reload).include?(directory)
208
- puts_debug "Trying to delete directory: '#{directory}'"
140
+ def destroy(force=false, reload=false)
141
+ if force or not self.connection.directories(reload).find {|dir| dir.name == self.name }.nil?
142
+ self.puts_debug "Trying to delete directory: '#{self.name}'"
209
143
  request = Net::HTTP::Post.new(self.class.delete_uri.path)
210
- request.form_data = self.delete_params(directory)
211
- request.header['cookie'] = [ImageVenue.authenticate.cookie_as_string]
144
+ request.form_data = self.class.delete_params(self.name)
145
+ request.header['cookie'] = [self.connection.cookie_as_string]
212
146
  response = Net::HTTP.start(self.class.delete_uri.host, self.class.delete_uri.port) do |http|
213
147
  http.request(request)
214
148
  end
215
149
  if response.is_a?(Net::HTTPSuccess)
216
- if directory == self.selected_directory
217
- self.selected_directory = nil
218
- ImageVenue.authenticate.cookie.delete(self.class.cookie_directory_key)
150
+ if self.connection.selected_directory == self.name
151
+ self.connection.selected_directory = nil
219
152
  end
220
- self.directories.delete(directory)
221
- self.directories_files.delete(directory)
222
- puts_debug "Directory successfully deleted!"
153
+ self.puts_debug "Directory successfully deleted!"
154
+ @is_new = true
223
155
  return true
224
156
  else
225
- puts_debug "Directory delete failed!"
157
+ self.puts_debug "Directory delete failed!"
226
158
  return false
227
159
  end
228
160
  else
229
- puts_debug "Directory does not exist: '#{directory}'"
161
+ self.puts_debug "Directory does not exist: '#{self.name}'"
230
162
  return nil
231
163
  end
232
164
  end
233
165
 
234
- def delete_params(directory)
235
- {
236
- self.class.delete_directory_key => directory
237
- }
238
- end
239
-
240
- def delete_file(file, reload=false)
241
- directory = file.directory
242
- files = self.files(directory, reload)
243
- puts_debug "Trying to delete file '#{file.basename}' from directory '#{file.directory}' ..."
244
- if file.delete
245
- files.delete(file)
246
- puts_debug "File successfully deleted!"
247
- return true
166
+ def select(reselect=false)
167
+ if self.connection.selected_directory != self.name or reselect
168
+ self.puts_debug "Trying to select directory: '#{self.name}'"
169
+ request = Net::HTTP::Post.new(self.class.select_uri.path)
170
+ request.form_data = self.class.select_params(self.name)
171
+ request.header['cookie'] = [self.connection.cookie_as_string]
172
+ response = Net::HTTP.start(self.class.select_uri.host, self.class.select_uri.port) do |http|
173
+ http.request(request)
174
+ end
175
+ if response.is_a?(Net::HTTPFound) and not (response.header['Set-Cookie'].nil? or response.header['Set-Cookie'].empty?)
176
+ self.connection.selected_directory = self.name
177
+ self.puts_debug "Directory successfully selected!"
178
+ return true
179
+ else
180
+ self.puts_debug "Directory select failed!"
181
+ return false
182
+ end
248
183
  else
249
- puts_debug "File delete failed!"
250
- return false
184
+ self.puts_debug "Directory already selected."
185
+ return nil
251
186
  end
252
187
  end
253
188
 
254
- def clear(directory=nil)
255
- if directory.nil?
256
- self.directories = []
257
- self.directories_files = {}
258
- puts_debug "Directories cache cleared!"
189
+ def files(reload=false)
190
+ if reload or @files.nil?
191
+ @files = ImageVenue::File.list(self)
259
192
  else
260
- self.directories_files.delete(directory)
261
- puts_debug "Directory's `#{directory}` cache cleared!"
193
+ self.puts_debug "Files from cache for directory: '#{self.name}'"
262
194
  end
263
- return true
195
+ return @files
196
+ end
197
+
198
+ def clear_cache
199
+ @files = nil
200
+ self.puts_debug "Directory's cache cleared."
264
201
  end
265
202
  end
266
203
  end
@@ -1,25 +1,115 @@
1
1
  module ImageVenue
2
2
  class File
3
3
  class << self
4
- def parse_upload(response_body)
5
- hpricot = Hpricot(response_body)
6
- textareas = hpricot.search('textarea')
7
- image_url = textareas[0].inner_text.strip
8
- file = self.new(image_url, ImageVenue.directory.selected)
9
- return file
4
+ attr_accessor :debug
5
+
6
+ def debug?
7
+ (ImageVenue.debug? or self.debug) ? true : false
10
8
  end
11
9
 
12
- def parse_forum_codes(response_body, directory)
10
+ def puts_debug(*args)
11
+ if self.debug?
12
+ puts(*args)
13
+ return true
14
+ else
15
+ return false
16
+ end
17
+ end
18
+
19
+ def parse_forum_codes(directory, response_body)
13
20
  files = []
21
+ self.puts_debug "Parsing Forum-Codes ..."
14
22
  hpricot = Hpricot(response_body)
15
- image_urls = hpricot.search('p:last').last.inner_text.scan(/\[URL=(.+?)\]/i).flatten
16
- image_urls.each do |image_url|
17
- file = self.new(image_url, directory)
18
- files.push(file)
23
+ urls = hpricot.search('p:last').last.inner_text.scan(/\[URL=(.+?)\]/i).flatten
24
+ urls.each do |url|
25
+ self.puts_debug "Found URL: `#{url}`"
26
+ files << self.new(directory, nil, nil, url, false)
19
27
  end
20
28
  return files
21
29
  end
22
30
 
31
+ def list_uri
32
+ @list_uri ||= URI.parse(ImageVenue.base_url + '/process_get_dir_codes.php')
33
+ end
34
+
35
+ def list_format_key
36
+ @list_format_key ||= 'poster'
37
+ end
38
+
39
+ def list_format_forum
40
+ @list_format_forum ||= 'forum'
41
+ end
42
+
43
+ def list_format_website
44
+ @list_format_website ||= 'webpage'
45
+ end
46
+
47
+ def list_directory_key
48
+ @list_directory_key ||= 'dir'
49
+ end
50
+
51
+ def upload_uri
52
+ @upload_uri ||= URI.parse(ImageVenue.base_url + '/upload.php')
53
+ end
54
+
55
+ def upload_action_key
56
+ @upload_action_key ||= 'action'
57
+ end
58
+
59
+ def upload_user_key
60
+ @upload_user_key ||= 'user_id'
61
+ end
62
+
63
+ def upload_file_key
64
+ @upload_file_key ||= 'userfile[]'
65
+ end
66
+
67
+ def upload_directory_key
68
+ @upload_directory_key ||= 'upload_dir'
69
+ end
70
+
71
+ def upload_content_key
72
+ @upload_content_key ||= 'imgcontent'
73
+ end
74
+
75
+ def upload_content_safe
76
+ @upload_content_safe ||= 'safe'
77
+ end
78
+ alias :upload_content_family :upload_content_safe
79
+
80
+ def upload_content_notsafe
81
+ @upload_content_notsafe ||= 'notsafe'
82
+ end
83
+ alias :upload_content_adult :upload_content_notsafe
84
+
85
+ def upload_interlink_key
86
+ @upload_interlink_key ||= 'interlinkimage'
87
+ end
88
+
89
+ def upload_interlink_yes
90
+ @upload__interlink_yes ||= 'interlinkyes'
91
+ end
92
+
93
+ def upload_interlink_no
94
+ @upload__interlink_no ||= 'interlinkno'
95
+ end
96
+
97
+ def upload_resize_key
98
+ @upload_resize_key ||= 'img_resize'
99
+ end
100
+
101
+ def upload_maximum_files
102
+ @upload_maximum_files ||= 10
103
+ end
104
+
105
+ def upload_maximum_size
106
+ @upload_maximum_size ||= 3 * 1024 * 1024 # 3 MByte
107
+ end
108
+
109
+ def upload_image_types
110
+ @upload_image_types ||= ['jpeg', 'jpg']
111
+ end
112
+
23
113
  def delete_uri
24
114
  @delete_uri ||= URI.parse(ImageVenue.base_url + '/manage_files.php')
25
115
  end
@@ -36,23 +126,75 @@ module ImageVenue
36
126
  @delete_submit_value ||= 'Delete'
37
127
  end
38
128
 
39
- def cookie_view_directory
40
- @cookie_view_directory ||= 'view_dir'
129
+ def upload_file_params(file)
130
+ {
131
+ self.upload_file_key => file
132
+ }
133
+ end
134
+
135
+ def upload_form_params(directory, content_safe=false, interlink=false, resize=nil)
136
+ return {
137
+ self.upload_action_key => '1',
138
+ self.upload_directory_key => directory.name,
139
+ self.upload_user_key => directory.connection.cookie[directory.connection.class.cookie_user_key],
140
+ self.upload_content_key => (content_safe) ? self.upload_content_safe : self.upload_content_notsafe,
141
+ self.upload_interlink_key => (interlink) ? self.upload_interlink_yes : self.upload_interlink_no,
142
+ self.upload_resize_key => resize || ''
143
+ }
144
+ end
145
+
146
+ def delete_params(file_name)
147
+ {
148
+ self.delete_submit_key => self.delete_submit_value,
149
+ self.delete_file_key => file_name
150
+ }
151
+ end
152
+
153
+ def list(directory)
154
+ self.puts_debug "Trying to fetch files from directory: '#{directory.name}' ..."
155
+ request = Net::HTTP::Post.new(self.list_uri.path)
156
+ request.form_data = self.find_params(directory.name)
157
+ request.header['cookie'] = [directory.connection.cookie_as_string]
158
+ response = Net::HTTP.start(self.list_uri.host, self.list_uri.port) do |http|
159
+ http.request(request)
160
+ end
161
+ if response.is_a?(Net::HTTPSuccess)
162
+ files = self.parse_forum_codes(directory, response.body)
163
+ self.puts_debug "Files successfully fetched!"
164
+ return files
165
+ else
166
+ self.puts_debug "Files fetch failed!"
167
+ return false
168
+ end
169
+ end
170
+
171
+ def find_params(directory_name)
172
+ {
173
+ self.list_format_key => self.list_format_forum,
174
+ self.list_directory_key => directory_name
175
+ }
41
176
  end
42
177
  end
43
178
 
44
- attr_accessor :directory
45
- attr_accessor :image_url
179
+ attr_accessor :content_type
46
180
  attr_accessor :debug
181
+ attr_accessor :directory
182
+ attr_accessor :io
183
+ attr_accessor :name
184
+ attr_accessor :url
47
185
 
48
- def initialize(image_url, directory=nil)
186
+ def initialize(directory, name=nil, io=nil, url=nil, is_new=true)
187
+ self.content_type = 'image/jpeg'
49
188
  self.directory = directory
50
- self.image_url = image_url
189
+ self.name = name
190
+ self.io = io
191
+ self.url = url
192
+ @is_new = is_new
51
193
  return nil
52
194
  end
53
195
 
54
196
  def debug?
55
- (ImageVenue.debug or self.debug) ? true : false
197
+ (self.class.debug? or self.debug) ? true : false
56
198
  end
57
199
 
58
200
  def puts_debug(*args)
@@ -64,90 +206,130 @@ module ImageVenue
64
206
  end
65
207
  end
66
208
 
67
- def image_io
68
- if @image_io.nil?
69
- puts_debug "Trying to fetch image data ..."
70
- image_html = open(self.image_url)
71
- image_uri = URI.parse(self.image_url)
72
- image_uri.path = '/' + Hpricot(image_html).search('img[@id="thepic"]:first').first['src']
73
- @image_io = open(image_uri)
74
- puts_debug "Image data successfully fetched!"
209
+ def is_new?
210
+ @is_new
211
+ end
212
+
213
+ def save(reselect=false, content_safe=false, interlink=false, resize=nil)
214
+ self.directory.select(reselect)
215
+ self.puts_debug "Trying to upload file `#{self.name}` to directory `#{self.directory.name}` ..."
216
+ request = Net::HTTP::Post.new(self.class.upload_uri.path)
217
+ request.set_multipart_data(self.class.upload_file_params(self), self.class.upload_form_params(self.directory, content_safe, interlink, resize))
218
+ request.header['cookie'] = [self.directory.connection.cookie_as_string]
219
+ response = Net::HTTP.start(self.class.upload_uri.host, self.class.upload_uri.port) do |http|
220
+ http.request(request)
221
+ end
222
+ if response.is_a?(Net::HTTPSuccess)
223
+ self.url = Hpricot(response.body).search('textarea').first.inner_text.strip
224
+ self.puts_debug "File successfully uploaded!"
225
+ @is_new = false
226
+ return true
227
+ else
228
+ self.puts_debug "File upload failed!"
229
+ return false
230
+ end
231
+ end
232
+
233
+ def destroy()
234
+ self.puts_debug "Trying to delete file `#{self.name}` from directory `#{self.directory.name}` ..."
235
+ request = Net::HTTP::Post.new(self.class.delete_uri.path)
236
+ request.form_data = self.class.delete_params(self.name)
237
+ self.directory.connection.view_directory = self.directory.name
238
+ request.header['cookie'] = [self.directory.connection.cookie_as_string]
239
+ response = Net::HTTP.start(self.class.delete_uri.host, self.class.delete_uri.port) do |http|
240
+ http.request(request)
241
+ end
242
+ self.directory.connection.view_directory = nil
243
+ if response.is_a?(Net::HTTPSuccess)
244
+ self.puts_debug "File `#{self.name}` successfully deleted!"
245
+ @is_new = true
246
+ return true
247
+ else
248
+ self.puts_debug "File `#{self.name}` delete failed!"
249
+ return false
250
+ end
251
+ end
252
+
253
+ def name
254
+ @name ||= $1 if self.url =~ /image=(.+)$/
255
+ @name
256
+ end
257
+
258
+ def base_name
259
+ @base_name ||= Kernel::File.basename(self.name)
260
+ end
261
+
262
+ def real_name
263
+ @real_name ||= $1+$2 if self.name =~ /^\d+_(.*)_\d+_\d+\w{2}(\.\w{2,3})$/
264
+ end
265
+
266
+ def large_io(reload=false)
267
+ if @large_io.nil? or reload
268
+ self.puts_debug "Trying to fetch large image data from `#{self.url}` ..."
269
+ self.large_url(false)
270
+ @large_io = open(@large_url)
271
+ self.puts_debug "Image data successfully fetched!"
75
272
  else
76
- puts_debug "Image data from cache!"
273
+ @large_io.rewind
274
+ self.puts_debug "Image data from cache!"
77
275
  end
78
- return @image_io
276
+ return @large_io
277
+ end
278
+
279
+ def large_url(reload=false)
280
+ if reload or @large_url.nil?
281
+ self.puts_debug "Trying to fetch large image URL from `#{self.url}` ..."
282
+ html = open(self.url)
283
+ img = Hpricot(html).search('img[@id="thepic"]:first').first
284
+ uri = URI.parse(self.url)
285
+ uri.path = '/' + img.attributes.find {|key, value| key =~ /^src$/i}.last
286
+ @large_url = uri.to_s
287
+ self.puts_debug "Large image URL successfully fetched!"
288
+ else
289
+ self.puts_debug "Large image URL from cache!"
290
+ end
291
+ return @large_url
79
292
  end
80
293
 
81
294
  def thumbnail_io
82
295
  if @thumbnail_io.nil?
83
- puts_debug "Trying to fetch thumbnail data ..."
296
+ self.puts_debug "Trying to fetch thumbnail data ..."
84
297
  @thumbnail_io = open(self.thumbnail_url)
85
- puts_debug "Thumbnail data successfully fetched!"
298
+ self.puts_debug "Thumbnail data successfully fetched!"
86
299
  else
87
- puts_debug "Thumbnail data from cache!"
300
+ self.puts_debug "Thumbnail data from cache!"
88
301
  end
89
302
  return @thumbnail_io
90
303
  end
91
304
 
92
305
  def thumbnail_url
93
- if @thumbnail_url.nil? and self.image_url =~ /_(\d+)lo/
94
- @thumbnail_url = self.image_url.gsub('img.php?image=', "loc#{$1}/th_")
306
+ if @thumbnail_url.nil? and self.url =~ /_(\d+)lo/
307
+ @thumbnail_url = self.url.gsub('img.php?image=', "loc#{$1}/th_")
95
308
  end
96
309
  return @thumbnail_url
97
310
  end
98
311
 
99
312
  def thumbnail_for_board_upper
100
- @thumbnail_for_board_upper ||= "[URL=#{self.image_url}][IMG]#{self.thumbnail_url}[/IMG][/URL]"
313
+ @thumbnail_for_board_upper ||= "[URL=#{self.url}][IMG]#{self.thumbnail_url}[/IMG][/URL]"
101
314
  end
102
315
 
103
316
  def thumbnail_for_board_lower
104
- @thumbnail_for_board_lower ||= "[url=#{self.image_url}][img]#{self.thumbnail_url}[/img][/url]"
317
+ @thumbnail_for_board_lower ||= "[url=#{self.url}][img]#{self.thumbnail_url}[/img][/url]"
105
318
  end
106
319
 
107
320
  def thumbnail_for_website
108
- @thumbnail_for_website ||= "<a href=\"#{self.image_url}\" target=_blank><img src=\"#{self.thumbnail_url}\" border=\"0\"></a>"
109
- end
110
-
111
- def basename
112
- @basename ||= $1 if self.image_url =~ /image=(.+)$/
321
+ @thumbnail_for_website ||= "<a href=\"#{self.url}\" target=_blank><img src=\"#{self.thumbnail_url}\" border=\"0\"></a>"
113
322
  end
114
323
 
115
- def clear
116
- @image_io = nil
324
+ def clear_cache
325
+ @large_io = nil
326
+ @large_url = nil
117
327
  @thumbnail_io = nil
118
328
  @thumbnail_url = nil
119
329
  @thumbnail_for_board_upper = nil
120
330
  @thumbnail_for_board_lower = nil
121
331
  @thumbnail_for_website = nil
122
- @basename = nil
123
- puts_debug "File's `#{self.basename}` cache cleared!"
124
- return true
125
- end
126
-
127
- def delete
128
- puts_debug "Trying to delete file `#{self.basename}` from directory `#{self.directory}` ..."
129
- request = Net::HTTP::Post.new(self.class.delete_uri.path)
130
- request.form_data = self.delete_params
131
- ImageVenue.authenticate.cookie[self.class.cookie_view_directory] = self.directory
132
- request.header['cookie'] = [ImageVenue.authenticate.cookie_as_string]
133
- response = Net::HTTP.start(self.class.delete_uri.host, self.class.delete_uri.port) do |http|
134
- http.request(request)
135
- end
136
- ImageVenue.authenticate.cookie.delete(self.class.cookie_view_directory)
137
- if response.is_a?(Net::HTTPSuccess)
138
- puts_debug "File `#{self.basename}` successfully deleted!"
139
- return true
140
- else
141
- puts_debug "File `#{self.basename}` delete failed!"
142
- return false
143
- end
144
- end
145
-
146
- def delete_params
147
- {
148
- self.class.delete_submit_key => self.class.delete_submit_value,
149
- self.class.delete_file_key => self.basename
150
- }
332
+ self.puts_debug "File's cache cleared."
151
333
  end
152
334
  end
153
335
  end