Just a Tuesday Night
(Tuesday, February 10, 2009, at 10:37 PM)
#INSERT INTO `member` (`id`, `first_name`, `middle_name`, `last_name`, `company`, `position`, `address_1`, `address_2`, `city`, `state`, `zip`, `phone_main`, `phone_main_ext`, `email`, `membership_date`, `interests`, `expertise`) VALUES
require 'rubygems'
require 'hpricot'
require 'open-uri'
class Member
attr_accessor :id, :first_name, :middle_name, :last_name, :company, :position, :address_1, :address_2, :city, :state, :zip, :phone_main, :phone_main_ext, :email, :membership_date, :interests, :expertise, :member_array, :final_array, :data
def first_user_name(data)
member_data = data
first_user_name = member_data[1].scan(/<b>.*\,\s(.*?\s)/)[0][0].strip
if first_user_name == nil
first_user_name = "NULL"
end
return first_user_name
end
def middle_user_name(data)
member_data = data
middle_user_name = member_data[1].scan(/<b>.*\,\w*\s(.*?\s)\-\s/)[0][0].strip.split(' ')[1]
if middle_user_name != nil
middle_user_name = middle_user_name.downcase.capitalize
else middle_user_name = "NULL"
end
return middle_user_name
end
def last_user_name(data)
member_data = data
last_user_name = member_data[1].scan(/<b>(.*?)\,/)[0][0].strip
if last_user_name == nil
last_user_name = "NULL"
end
return last_user_name
end
def company_user(data)
member_data = data
company_name = member_data[3].scan(/Company: (.*?)<br \/>/)[0][0].strip
if company_name == nil || company_name.size < 1
company_name = "NULL"
end
return company_name
end
def position_user(data)
member_data = data
user_position = member_data[2].scan(/Position: (.*?)<br \/>/)[0][0].strip
if user_position == nil || user_position.size < 1
user_position = "NULL"
end
return user_position
end
def address_1_user(data)
member_data = data
user_address_1 = member_data[4].strip.sub("<br />", "")
if user_address_1 == nil || user_address_1.size < 1
user_address_1 = "NULL"
end
return user_address_1
end
def address_2_user
# puts "NULL"
# return "NULL"
member_data = data
user_address_2 = member_data[5].strip.sub("<br />", "")
if user_address_2 == nil || user_address_2.size < 1 || user_address_2.include?("MT")
user_address_2 = "NULL"
end
return user_address_2
end
def city_user(data)
member_data = data
if member_data[5].include?("MT") || member_data[5].include?("NE")#Chadron
city_name = member_data[5].scan(/(.*?)\,/)[0][0].strip
elsif member_data[6].include?("MT") || member_data[6].include?("NY") || member_data[6].include?("CO")#Glens Falls, Trinidad
city_name = member_data[6].scan(/(.*?)\,/)[0][0].strip
else city_name = member_data[7].scan(/(.*?)\,/)[0][0].strip
if city_name == nil
city_name = "NULL"
end
end
return city_name
end
def state_users(data)
member_data = data
if member_data[5].include?("NE")
state_name = "NE"
elsif member_data[6].include?("NY")
state_name = "NY"
elsif member_data[6].include?("CO")
state_name = "CO"
else state_name = "MT"
end
return state_name
end
def zip_user(data)
member_data = data
if member_data[5].include?("NE")
zip_name = member_data[5].scan(/NE (\d*)/)[0][0]
elsif member_data[5].include?("MT")
zip_name = member_data[5].scan(/MT (\d*)/)[0][0]
elsif member_data[6].include?("NY")
zip_name = member_data[6].scan(/NY (\d*)/)[0][0]
elsif member_data[6].include?("CO")
zip_name = member_data[6].scan(/CO (\d*)/)[0][0]
elsif member_data[6].include?("MT")
zip_name = member_data[6].scan(/MT (\d*)/)[0][0]
elsif member_data[7].include?("MT")
zip_name = member_data[7].scan(/MT (\d*)/)[0][0]
else zip_name = "NULL"
end
return zip_name
end
def phone_main_user(data)
member_data = data
if member_data[(member_data.length - 2)].scan(/(\d\d\d[\s|\-].*?)\</)[0] != nil
phone = member_data[(member_data.length - 2)].scan(/(\d\d\d[\s|\-].*?)\</)[0][0]
else phone = "NULL"
end
return phone
end
def phone_main_ext_user(data)
member_data = data
if member_data[(member_data.length - 2)].include?("x")
phone_ext = member_data[(member_data.length - 2)].scan(/'x'\s\d\d\d/)[0]
else phone_ext = "NULL"
end
return phone_ext
end
def email_user(data)
member_data = data.last
if member_data.scan(/href\=\"(.*?)\"/)[0][0] != nil
email_for_user = member_data.scan(/href\=\"mailto\:(.*?)\"/)[0][0]
end
return email_for_user
end
def membership_user(data)
member_data = data
if member_data[1].scan(/\d\d\d\d/)[0] != nil
date = member_data[1].scan(/\d\d\d\d/)[0].to_s + "-01-01 13:57:49"
elsif date == nil
date = "NULL"
end
return date
end
def interests_user
return "NULL"
end
def expertise_user
return "NULL"
end
def run_hpricot_parse
doc = Hpricot(open("http://leadershipmontana.org/site/memberslist/index.html"))
page = (doc/'div')[6]
big_array = []
@member_array = []
(page/'table'/'tr'/'td').each do |x|
big_array << x.inner_html
end
3.upto(big_array.length) do |x|
if x.to_f%2 == 1
@member_array << big_array[x]
print big_array[x]
end
end
ident = 0
$final_array = []
@member_array.delete_at(169)
@member_array.each do |user|
ident = ident + 1
individual(ident, user)
end
end
def individual(ident, user)
user = user
scratch = []
member = Member.new
member.data = user.split(/\n/)
member.id = ident
scratch << member.id
member.first_name = member.first_user_name(member.data)
scratch << member.first_name
member.middle_name = member.middle_user_name(member.data)
scratch << member.middle_name
member.last_name = member.last_user_name(member.data)
scratch << member.last_name
member.company = member.company_user(member.data)
scratch << member.company
member.position = member.position_user(member.data)
scratch << member.position
member.address_1 = member.address_1_user(member.data)
scratch << member.address_1
member.address_2 = member.address_2_user
scratch << member.address_2
member.city = member.city_user(member.data)
scratch << member.city
member.state = member.state_users(member.data)
scratch << member.state
member.zip = member.zip_user(member.data)
scratch << member.zip
member.phone_main = member.phone_main_user(member.data)
scratch << member.phone_main.strip
member.phone_main_ext = member.phone_main_ext_user(member.data)
scratch << member.phone_main_ext
member.email = member.email_user(member.data)
scratch << member.email
member.membership_date = member.membership_user(member.data)
scratch << member.membership_date
member.interests = member.interests_user
scratch << member.interests
member.expertise = member.expertise_user
scratch << member.expertise
$final_array << member
print "("
0.upto(16) do |x|
if scratch[x] != "NULL" && scratch[x].class == String
print "'", scratch[x], "', "
elsif x == 16
print scratch.last
else print scratch[x], ", "
end
end
print "),\n"
end
def pack_together
end
def print_list_of_members
end
print "class initialized"
a = Member.new
a.run_hpricot_parse
end
Back