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.
- data/lib/megalith/essentials.rb +1 -0
- data/lib/megalith/scheme.rb +13 -10
- data/lib/megalith/version.rb +1 -1
- metadata +3 -3
data/lib/megalith/essentials.rb
CHANGED
data/lib/megalith/scheme.rb
CHANGED
@@ -9,9 +9,10 @@ class Megalith
|
|
9
9
|
attr_reader :key
|
10
10
|
|
11
11
|
def initialize(base_url, log, key)
|
12
|
-
|
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 =
|
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 =>
|
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=#{
|
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
|
-
|
207
|
-
|
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 =>
|
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=#{
|
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,
|
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,
|
246
|
+
Subject.new(@base_url, @log+1)
|
244
247
|
end
|
245
248
|
alias_method :prev, :prev_page
|
246
249
|
|
data/lib/megalith/version.rb
CHANGED
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.
|
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: -
|
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: -
|
58
|
+
hash: -4054981728964153712
|
59
59
|
requirements: []
|
60
60
|
rubyforge_project:
|
61
61
|
rubygems_version: 1.8.24
|