Class: RubyHackernews::CommentService
- Inherits:
-
Object
- Object
- RubyHackernews::CommentService
show all
- Includes:
- MechanizeContext
- Defined in:
- lib/ruby-hackernews/services/comment_service.rb
Instance Method Summary
collapse
#[], #agent, agent=, #authenticated?, #require_authentication
Instance Method Details
6
7
8
9
|
# File 'lib/ruby-hackernews/services/comment_service.rb', line 6
def (page)
table = page.search("table")[3]
return (table)
end
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/ruby-hackernews/services/comment_service.rb', line 17
def (table)
= []
target =
current_level = 0
table.search("table/tr").select do |tr|
tr.search("span.comment").inner_html != "[deleted]"
end.each do |tr|
= (tr)
level = tr.search("img[@src='http://ycombinator.com/images/s.gif']").first['width'].to_i / 40
difference = current_level - level
(difference + 1).times do
target = target.kind_of?() && target.parent ? target.parent :
end
current_level = level
target <<
target =
end
return
end
|
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/ruby-hackernews/services/comment_service.rb', line 37
def (pages = 1, url = ConfigurationService.)
parser = EntryPageParser.new(agent.get(url))
= []
pages.times do
lines = parser.get_lines
lines.each do |line|
<< (line)
end
next_url = parser.get_next_url || break
parser = EntryPageParser.new(agent.get(next_url))
end
return
end
|
11
12
13
14
15
|
# File 'lib/ruby-hackernews/services/comment_service.rb', line 11
def (user)
page = agent.get(ConfigurationService.base_url + "threads?id=#{user.name}")
table = page.search("table")[2]
return (table)
end
|
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/ruby-hackernews/services/comment_service.rb', line 51
def (element)
text = ""
element.search("span.comment").first.children.each do |ch|
text = ch.inner_html.gsub(/<.{1,2}>/,"")
end
= element.search("span.comhead").first
voting = VotingInfoParser.new(element.search("td/center/a"), ).parse
user_info = UserInfoParser.new().parse
reply_link = element.search("td[@class='default']/p//u//a").first
reply_url = reply_link['href'] if reply_link
return .new(text, voting, user_info, reply_url)
end
|
64
65
66
67
68
69
70
|
# File 'lib/ruby-hackernews/services/comment_service.rb', line 64
def (page_url, )
require_authentication
form = agent.get(page_url).forms.first
form.text =
form.submit
return true
end
|