def update(logger): db = get_db() user = db.user stocklist = Stock.objects() for stock in stocklist: price = stocks.get_quote(stock.symbol) logger.info("Got latest price for {0}:{1}".format( stock.symbol, price ) ) try: stock.last_price = price stock.update(**{"set__last_price":price}) logger.info("Updated data for {0}:{1}\n".format( stock['name'], stock['last_price'] ) ) except Exception as e: logger.error("Error upating stock {}\n".format(stock['name'])) logger.error(e.message)
def find_stock(ticker): try: stock = Stock.objects(symbol=ticker)[0] return stock except: return False
def profile(): #stocklist = user.find() stocklist = Stock.objects() return render_template('profile.html', stocklist=stocklist, stocks=stocks)
from flask.ext.bootstrap import Bootstrap from models import Stock import stocks #from pymongo import MongoClient app = Flask(__name__) manager = Manager(app) bootstrap = Bootstrap(app) #mongo = MongoClient() #db = mongo.stock #stock = db.stock #user = db.user stocklist = Stock.objects() def find_stock(ticker): try: stock = Stock.objects(symbol=ticker)[0] return stock except: return False @app.route('/') def index(): return render_template('index.html') @app.route('/stock/<ticker>') def stock(ticker): return render_template('stock.html', ticker=ticker, quote=stock)
def fetchStocks(): connect('stockenex') with open('s3://stockenex/colorMap.json', 'r') as c: colorMap = json.load(c)[1] with open('s3://stockenex/stockDataFileCount.txt') as fc: fileCount = int(fc.readline()) Stock.objects.delete() for i in range(1, fileCount + 1): date = "" for line in open('s3://stockenex/stockData' + str(i) + '.csv'): if ('Symbol,"S, D","S, D"' in line or "Trade in Profit Range" in line): continue if "Date" in line: date = line.split(",")[1] #Date ,2020-05-06, continue lineInfo = line.split(',', 2) symbol = lineInfo[0] color = lineInfo[1].lower() if color == "cyan": color = "cyan3" if color in colorMap.keys(): color = colorMap[color] color = string.upper(color) if color == "#005F00" or color == "#1CAC78": color = "#1CAC78" elif color == "#1F75FE" or color == "#000080" or color == "#00D7AF": color = "#00D7AF" value = lineInfo[2] st = Stock(symbol=symbol) if Stock.objects(Q(symbol=symbol)): st = Stock.objects(Q(symbol=symbol)).first() if color == "#FCE883": st.slw = [] st.enwl = [] st.enwh = [] st.exwl = [] st.exwh = [] st.close = [] st.high = [] st.low = [] st.date = [] v = value LS = v.split(" ")[0] trend = v.split(" [ Enw=")[0].split('(')[1] enw = v.split("Enw= ")[1].split(" ")[0].split("(")[1].split(")")[0] exw = v.split("Exw= ")[1].split(" ")[0].split("(")[1].split(")")[0] if i > 3: slw = v.split("Slw= ")[1].split("]")[0] else: slw = v.split("Slw= ")[1].split(" ")[0].split("(")[1].split( ")")[0] close = v.split("Close=")[1].split(" ")[0] high = v.split("High=")[1].split(" ")[0] low = v.split("Low=")[1].split(" ")[0] st.value = v st.color = color st.trend = trend st.LS = LS st.date.append(date) st.enwl.append(float(enw.split("-")[0])) st.enwh.append(float(enw.split("-")[1])) st.exwl.append(float(exw.split("-")[0])) st.exwh.append(float(exw.split("-")[1])) if i > 3: st.slw.append(float(slw)) else: st.slw.append(float(slw.split("-")[0])) st.close.append(float(close)) st.high.append(float(high)) st.low.append(float(low)) st.save() disconnect()