Class: Ruby2ch::Dat

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby2ch/datparse.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ Dat

Returns a new instance of Dat.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ruby2ch/datparse.rb', line 6

def initialize(url)
  #http://uni.2ch.net/test/read.cgi/news/1322032301/l50
  #http://bg20.2ch.net/test/r.so/uni.2ch.net/news/1322032301/
  url_elements = url.split("/")
  @dat_url = "http://bg20.2ch.net/test/r.so/" + url_elements[2] + "/" + url_elements[5] + "/" + url_elements[6] + "/"
  @agent = Mechanize.new
  @page = @agent.get(@dat_url).body.toutf8

  @page = @page.split("\n").map{|res| dat_parse(res).flatten}.delete_if{|res| res == []}
  @page.map{|res| 
    res[6] = res[6].gsub("<>","").gsub("<br>","\n")
    unless res[5] == nil 
      res[5] = res[5].scan(/.*&gt;&gt;(\d+).*/).flatten[0]
      res[5] = ">>" + res[5] + res[6]
    else
      res[5] = res[6]
    end
    res.pop

  }
  @thre = @page.map{|res|
    {name: res[0],place: res[1], date: res[2], id: res[3], point: res[4],text: res[5]}
  }
end

Instance Attribute Details

#dat_urlObject

Returns the value of attribute dat_url.



41
42
43
# File 'lib/ruby2ch/datparse.rb', line 41

def dat_url
  @dat_url
end

#pageObject

Returns the value of attribute page.



41
42
43
# File 'lib/ruby2ch/datparse.rb', line 41

def page
  @page
end

Instance Method Details

#dat_parse(res) ⇒ Object



35
36
37
# File 'lib/ruby2ch/datparse.rb', line 35

def dat_parse(res)
  res_array = res.scan(/(^\S+)\<\/b\>(\(.*\))\<b\>\<\>\S*\<\>(.+)\sID:(\S+)\s*(BE.*)*\<\>\s(\<a.*\<\/a\>)*(.*)/)
end

#to_aObject



31
32
33
# File 'lib/ruby2ch/datparse.rb', line 31

def to_a
  @array = @page.split("\n")
end