imagevenue 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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