41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/meetup_cli/scraper.rb', line 41
def self.list_meetup(activity)
url = activity.url
doc = Nokogiri::HTML(open(url))
activity.about = doc.css("div.group-description.runningText").css("p").text
activity.organiser = doc.css("span.text--bold.text--small")[0].text
activity.location = doc.css("ul.inlineblockList.inlineblockList--separated").css("span")[0].text
activity.total_members = doc.css("ul.inlineblockList.inlineblockList--separated").css("span")[1].text
activity.type_of_group = doc.css("ul.inlineblockList.inlineblockList--separated").css("span")[2].text
meetup = MeetupCli::Meetup.new
new_url = [url, "events"].join
session = Capybara::Session.new(:poltergeist)
session.visit(new_url)
upcoming = true
begin
session.first(".emptyEventCard").text
rescue
Capybara::ExpectationNotMet
upcoming = false
binding.pry
end
if upcoming == false
begin
meetup.name = session.first(".eventCardHead--title")['innerHTML']
meetup.time_object = session.first(".eventTimeDisplay-startDate span")['innerHTML']
binding.pry
meetup.venue = session.first(".venueDisplay").text
meetup.host = session.first(".text--secondary.text--tiny").text
meetup.about =session.first(".eventCard--MainContent div").text
meetup.attendees =session.first(".avatarRow--attendingCount").text
meetup.upcoming = true
rescue
Capybara::ExpectationNotMet
binding.pry
upcoming = false
end
else
binding.pry
meetup.upcoming = upcoming
end
binding.pry
activity.meetup = meetup
end
|