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