def get(self): stock_type = 'sii' last_update_time = db_sys_status.get_update_time("MonthlyRevenue") current_time = datetime.now() result = mopstwse.get_historical_revenue(stock_type, last_update_time) for i in xrange(len(result.totaldata)): company_data = result.totaldata[i] try: #db_company_info.insert_info(code=company_data[1], classification=company_data[0], company_name=company_data[2]) db_monthly_revenue.insert_info(code=company_data[1], date_time=last_update_time, month_revenue=int(company_data[3]), last_month_revenue=int(company_data[4]), month_revenue_last_year=int(company_data[5]), percent_month_revenue=company_data[6], percent_month_revenue_last_year=company_data[7], month_cumulative_revenue=int(company_data[8]), month_cumulative_revenue_last_year=int(company_data[9]), percent_month_cumulative_revenue=company_data[10]) except: print company_data raise db_sys_status.update_module_time("MonthlyRevenue", current_time) self.response.write("[%s] Update MonthlyRevenue to database successfully!<br>" % datetime.strftime(current_time, '%m/%d/%Y %I:%M:%S'))
def get(self): last_update_time = db_sys_status.get_update_time("CompanyInfo") current_time = datetime.now() market_type = ["sii", "otc"] with open(os.path.join(self.folder_path, "StockInfoLoader", "stock_type_list.csv")) as csvfile: reader = csv.DictReader(csvfile) for row in reader: for i in xrange(len(market_type)): result = stockinfotwse.get_info(market_type[i], row['no']) for j in xrange(len(result)): info = result[j] db_company_info.update_info(code=info.code, market_type=market_type[i], classification=row['class'].decode('utf8'), company_name=info.company_name.decode('utf8'), company_address=info.company_address.decode('utf8'), company_tel=info.company_tel.decode('utf8'), company_open_date=info.company_open_date.decode('utf8'), company_listing_date=info.company_listing_date.decode('utf8'), company_capital=info.company_capital.decode('utf8')) logger.debug("Insert data %s:%s into db_company_info" % (market_type[i], info.code)) db_sys_status.update_module_time("CompanyInfo", current_time) self.response.write("[%s] Update CompanyInfo to database successfully!<br>" % datetime.strftime(current_time, '%m/%d/%Y %I:%M:%S'))
def get(self): last_update_time = db_sys_status.get_update_time("StockPrice") current_time = datetime.now() for stock_code in db_company_info.get_code_list(): tw_stock_code = stock_code + ".tw" code_last_time = db_stock_price.get_last_date(stock_code) if code_last_time: result = ystockquote.get_historical_prices(tw_stock_code, start_date=datetime.strftime(code_last_time, '%Y%m%d'), end_date=datetime.strftime(current_time, '%Y%m%d')) else: result = ystockquote.get_historical_prices(tw_stock_code, start_date=datetime.strftime(last_update_time, '%Y%m%d'), end_date=datetime.strftime(current_time, '%Y%m%d')) for record in result[1:]: db_stock_price.update_price(code=stock_code, date_time=datetime.strptime(record[0], '%Y-%m-%d'), open_price=float(record[1]), high_price=float(record[2]), low_price=float(record[3]), close_price=float(record[4]), price_change=0.0, volume=int(record[5])) logger.debug("Insert record date=%s, code=%s into db_stock_price" % (datetime.strptime(record[0], '%Y-%m-%d'), stock_code)) db_sys_status.update_module_time("StockPrice", current_time) self.response.write("[%s] Update MarketPrice to database successfully!<br>" % datetime.strftime(current_time, '%m/%d/%Y %I:%M:%S'))