def Feeder(stock): ''' Feeder(list(stock)) -> last price and volume stock: list if stock codes ''' print 'Starting Systems' phantomJS = Conf().get('SYS', 'phantomJS') webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.User-Agent'] = 'Mozilla/5.0 (X11; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0' d = webdriver.PhantomJS(phantomJS) L = 'http://www.tadawul.com.sa' print 'Connecting...' d.get(L) stock_market_link = d.find_element_by_link_text('سوق الاسهم').click() all_stocks_link = d.find_element_by_link_text('جميع الأسهم').click() todays_all_stocks_link = d.find_element_by_link_text('جميع الأسهم اليوم').click() find_all = d.find_elements_by_class_name('calibri-12') print 'Fetching...' configGet = Config('Get') print stock for ii, i in zip(configGet.sections(), stock): print find_all[int(i)+15].text, ii, i if configGet.has_section(ii) == True: last_price = find_all[int(i)+15].text last_vol = find_all[int(i)+1].text SetLast('Price', last_price, ii) d.close()
def buy(self): stocks = GetList('All') my_stocks = GetConfig('code')[0] my_shares = GetConfig('shares')[1] config = Config('Get') buy_log = open('log/buy.log', 'a') code_list = npyscreen.Form(name = "Buy Code Or List",) pick = code_list.add(npyscreen.TitleFixedText, name = "Please choose an option",) option = code_list.add(npyscreen.TitleSelectOne, max_height =-2, value = [1,], name="Option", values = ["Tadawul Code","Choose From List"], scroll_exit=True) code_list.edit() if str(option.get_selected_objects()) == "['Choose From List']": list_ = npyscreen.Form(name = "Buy - List",) stock = list_.add(npyscreen.TitleSelectOne, max_height=30, value = [1,], name="Stocks", values = stocks, scroll_exit=True) shares = list_.add(npyscreen.TitleText, name = "Shares:",) price = list_.add(npyscreen.TitleText, name = "Price:",) date = list_.add(npyscreen.TitleDateCombo, name = "Date:") list_.edit() code = str(stock.get_selected_objects()) code_re = re.findall('[0-9]{1,}', code)[0] if re.findall('[\w]{1,}', code)[0] in config.sections(): section = re.findall('[\w]{1,}', code)[0] aval = Config('Get').get(section, 'shares') current_shares = int(aval) + int(shares.value) SetLast('Shares', current_shares, section) SetLast('Last_Buying_Price', price.value, section) SetLast('Last_Purchase_Date', date.value, section) else: SetConfig(stock_name=GetData(code=code_re, sector=TadawulStocks('All'))[0], code=code_re, shares=shares.value, last_buying_price=price.value, last_purchase_date=date.value, last_price=1) stock_code = code_re elif str(option.get_selected_objects()) == "['Tadawul Code']": code = npyscreen.Form(name = "Buy - List",) stock = code.add(npyscreen.TitleText, name = "Code:",) shares = code.add(npyscreen.TitleText, name = "Shares:",) price = code.add(npyscreen.TitleText, name = "Price:",) date = code.add(npyscreen.TitleDateCombo, name = "Date:",) code.edit() if re.findall('[\w]{1,}', GetData(code=stock.value, sector=TadawulStocks('All'))[0])[0] in config.sections(): section = re.findall('[\w]{1,}', GetData(code=stock.value, sector=TadawulStocks('All'))[0])[0] aval = Config('Get').get(section, 'shares') current_shares = int(aval) + int(shares.value) SetLast('Shares', current_shares, section) SetLast('Last_Buying_Price', price.value, section) SetLast('Last_Purchase_Date', date.value, section) else: SetConfig(stock_name=GetData(code=stock.value, sector=TadawulStocks('All'))[0], code=stock.value, shares=shares.value, last_buying_price=price.value, last_purchase_date=date.value, last_price=1) stock_code = stock.value total = float(shares.value) * float(price.value) string = "%s - You Bought %s shares of %s for %s SAR per share. %s SAR in total." %(date.value, shares.value, GetData(code=stock_code, sector=TadawulStocks('All'))[0], price.value, str(total)) buy_log.write(string+'\n') buy_log.close()