megalith 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,6 +16,7 @@ class Megalith
16
16
  end
17
17
 
18
18
  def send_req(url)
19
+ pp url
19
20
  uri = URI.parse(url)
20
21
 
21
22
  Net::HTTP.version_1_2
@@ -9,9 +9,10 @@ class Megalith
9
9
  attr_reader :key
10
10
 
11
11
  def initialize(base_url, log, key)
12
- @novel = fetch_novel(base_url, log, key)
12
+ relative_log = (log < 1) ? fetch_subjects(base_url).size : log
13
+ @novel = fetch_novel(base_url, relative_log, key)
13
14
  @base_url = base_url
14
- @log = (log < 1) ? fetch_subjects(base_url).first : log
15
+ @log = relative_log
15
16
  @key = key
16
17
  end
17
18
 
@@ -30,7 +31,7 @@ class Megalith
30
31
  :aft => aft,
31
32
  :author => Author.new(:name => meta[1], :email => meta[2], :website => meta[3]),
32
33
  :tags => meta[12].split(/[\s ]/),
33
- :log => log,
34
+ :log => relative_log,
34
35
  :key => key,
35
36
  :created_at => Time.at(key),
36
37
  :updated_at => Time.parse(meta[7]),
@@ -43,7 +44,7 @@ class Megalith
43
44
  :text_color => meta[10],
44
45
  :convert_newline => meta[11],
45
46
  :size => text.bytesize / 1024,
46
- :url => URI.join(base_url, "?mode=read&key=#{key}&log=#{log}").to_s,
47
+ :url => URI.join(base_url, "?mode=read&key=#{key}&log=#{relative_log}").to_s,
47
48
  :comments => comments
48
49
  }
49
50
  return novel
@@ -203,8 +204,10 @@ class Megalith
203
204
  end
204
205
 
205
206
  def fetch_subject(base_url, log)
206
- log = fetch_subjects(base_url).first if log < 1
207
- page = send_req(File.join(base_url, "sub", "subject#{(log < 1) ? "" : log}.txt"))
207
+ fs = fetch_subjects(base_url)
208
+ absolute_log = (fs.size <= log || log < 1) ? "" : log
209
+ relative_log = (log < 1) ? fs.size : log
210
+ page = send_req(File.join(base_url, "sub", "subject#{absolute_log}.txt"))
208
211
  subject = page.split("\n").map{|i| i.split("<>")}
209
212
 
210
213
  indexes = []
@@ -212,7 +215,7 @@ class Megalith
212
215
  key = index[0].gsub(/[^0-9]/, "").to_i
213
216
  comment_count, review_count = index[5].split("/")
214
217
  indexes << Index.new(base_url, {
215
- :log => log,
218
+ :log => relative_log,
216
219
  :key => key,
217
220
  :title => index[1],
218
221
  :author => index[2],
@@ -228,19 +231,19 @@ class Megalith
228
231
  :text_color => index[11],
229
232
  :convert_newline => index[12],
230
233
  :size => index[14].to_f,
231
- :url => URI.join(base_url, "?mode=read&key=#{key}&log=#{log}").to_s
234
+ :url => URI.join(base_url, "?mode=read&key=#{key}&log=#{absolute_log}").to_s
232
235
  })
233
236
  end
234
237
  return indexes.reverse
235
238
  end
236
239
 
237
240
  def next_page
238
- Subject.new(@base_url, (@log < 1) ? fetch_subjects(@base_url).last : @log)
241
+ Subject.new(@base_url, @log-1)
239
242
  end
240
243
  alias_method :next, :next_page
241
244
 
242
245
  def prev_page
243
- Subject.new(@base_url, (fetch_subjects(@base_url).size <= @log+1) ? 0 : @log)
246
+ Subject.new(@base_url, @log+1)
244
247
  end
245
248
  alias_method :prev, :prev_page
246
249
 
@@ -1,3 +1,3 @@
1
1
  class Megalith
2
- VERSION = "0.1"
2
+ VERSION = "0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: megalith
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -46,7 +46,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
46
46
  version: '0'
47
47
  segments:
48
48
  - 0
49
- hash: -666340655983279720
49
+ hash: -4054981728964153712
50
50
  required_rubygems_version: !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  version: '0'
56
56
  segments:
57
57
  - 0
58
- hash: -666340655983279720
58
+ hash: -4054981728964153712
59
59
  requirements: []
60
60
  rubyforge_project:
61
61
  rubygems_version: 1.8.24