class EngagingNetworks::Scrape::Client
Constants
- HOST
Attributes
password[RW]
username[RW]
Public Class Methods
new(username:, password:)
click to toggle source
# File lib/engaging_networks/scrape/client.rb, line 8 def initialize(username:, password:) self.username = username self.password = password end
Public Instance Methods
agent()
click to toggle source
# File lib/engaging_networks/scrape/client.rb, line 56 def agent @agent ||= ::Mechanize.new do |agent| agent.user_agent = 'Engaging Networks Ruby Gem' end end
build_form(id)
click to toggle source
# File lib/engaging_networks/scrape/client.rb, line 51 def build_form(id) # TODO some sort of API for building campaign forms "/ea-account/auth/action.menu.do?v=c:showBuild&ea-account.campaign.id=#{id}" end
create_campaign(name:, description:, ajax_enabled: true)
click to toggle source
# File lib/engaging_networks/scrape/client.rb, line 22 def create_campaign(name:, description:, ajax_enabled: true) login campaign_id = nil agent.get("https://#{HOST}/ea-account/auth/") do |page| new_campaign_form = agent.click(page.link_with(:text => /Create a Campaign/)) new_campaign_result = new_campaign_form.form_with(name: 'campaignForm') do |campaign| campaign.set_fields({'_f_0' => name, '_f_1' => description, '_f_2' => '2', # data capture type #'_f_3' => '3', # new campaign option is not show on new campaign form. 'dc_subtype' => 'DCF', 'dc_mem_val' => '', '_f_12' => '' }) campaign.radiobutton_with(:name => '_f_4').value = ajax_enabled ? 'true' : 'false' end.submit campaign_list = agent.click(new_campaign_result.link_with(:text => /Manage Campaigns/)) campaign_form = campaign_list.form_with(action: 'https://www.e-activist.com/ea-account/auth/campaign.jsp') campaign_id = campaign_form.field_with(name: 'ea.campaign.id').value end campaign_id end
login()
click to toggle source
# File lib/engaging_networks/scrape/client.rb, line 13 def login agent.get("https://#{HOST}/ea-account/index.jsp") do |page| page.form_with(name: 'accountLF') do |login| login.set_fields('_f_0' => username, '_f_1' => password) end.submit end end