#!/usr/bin/python

# Email fetcher
# When you get an exception after upgrading Chrome, just run:
# pip install selenium --upgrade
# and download and unzip "chromedriver" to current directory.

import os
import shutil
import threading
import re
import time
from time import sleep
from selenium import webdriver, common
# ^ If not installed just run:
# sudo easy_install selenium

class sfAdminInterface:
	def __init__(self, browser):
		self.browser = browser
		self.browser.get('http://admin.sharefaith.com/landaadmin/Login.do')
		raw_input('Login please')
		
	def lookup(self, nameOrId):
		name = nameOrId.replace("\n", "").strip()
		elementuser = self.browser.find_elements_by_class_name('adminSearchBox')[0].send_keys( name + '\n')
		sleep(2)
		self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
		links = self.browser.find_elements_by_css_selector('#admin-body >fieldset >#formtable tbody tr a')
		
		if len( links ) == 1:
			links[0].click()
			self.waitFor( 'input[name="value(newlogin)"]' )
			emails = ''
			e1 = self.q( 'input[name="value(newlogin)"]' ).get_attribute( 'value' )
			if len(e1):
				emails = e1
			
			e2 = self.q( 'input[name="value(email2)"]' ).get_attribute( 'value' )
			if len(e2):
				emails += ', ' + e2
			
			e3 = self.q( 'input[name="value(email3)"]' ).get_attribute( 'value' )
			if len(e3):
				emails += ', ' + e3
			return emails
		else:
			print ('Nope')
			
	def waitFor(self, selector):
		#Wait up to 1 min?
		for i in range(60*2):
			try:
				self.q(selector)
				#No exception! exists
				return True
			except common.exceptions.NoSuchElementException, e:
				sleep(0.4)
		#Not found still?
		raise Exception('Not found '+selector)
		
	def q(self, selector):
		""" basically like querySelector() """
		return self.browser.find_element_by_css_selector(selector)
		
		
# End class defs, interactive code below:
if __name__ == '__main__':
	
	#admin = sfAdminInterface( webdriver.Firefox(webdriver.FirefoxProfile()) ) unsupported v47
	
	# Get chromedriver from https://sites.google.com/a/chromium.org/chromedriver/downloads
	#Assuming chromedriver in working directory and Chrome set up:
	os.environ["PATH"] += os.pathsep + os.getcwd()
	admin = sfAdminInterface( webdriver.Chrome('chromedriver') )
	
	print ("Paste ids/names, then enter 'done':")
	arr = []
	inline = raw_input('')
	while inline != 'done':
		arr.append( inline )
		inline = raw_input('')
	print arr
	for id in arr:
		print admin.lookup( id )
		sleep(2)
	
