megalith 0.1 → 0.2

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.
@@ -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