def render_defaults(feedback): defaults, types = plumb.GetDefaults(False) tradier_key_warning = "" if ("tradier key" in defaults): if (defaults['tradier key'] == "" or defaults['tradier key'] == "demo"): tradier_key_warning = "Remember to obtain your lifetime API key from tradier, this is needed for getting the market calendar and quotes" IEX_key_warning = "" if ("IEX key" in defaults): if (defaults['IEX key'] == "" or defaults['IEX key'] == "demo"): IEX_key_warning = "Remember to obtain your lifetime API key from IEX cloud, this is needed for getting company ticker information" coin_key_warning = "" if ("coin key" in defaults): if (defaults['coin key'] == "" or defaults['coin key'] == "demo"): coin_key_warning = "Remember to obtain your lifetime API key from coin market cap, this is needed for getting cryptocoin information" table, column_options, name_options, folder_options = plumb.PrintDefaults( False) hide_folder = "" if (name_options == ""): hide_folder = "hidden" notes, initialize_day = plumb.GetAIMNotes(10, False) if os.name == 'nt': pid = plumb.get_pid("poll_stocks.py") else: pid = plumb.get_pid("folder_daemon.py") daemon_check = "" daemon_color = "green;" daemon_action = "" if (pid == []): daemon_check = "WARNING: stock polling is not running, your stocks are not updating, please start" daemon_color = "red;" daemon_action = "start" else: daemon_check = "stock polling is running on pid: {0}".format(pid[0]) daemon_action = "restart" daemon_table, status = plumb.PrintDaemon("all", False) daemon_info = "" checkOpen = plumb.Holiday(False) if checkOpen: if (checkOpen['status'] == "closed"): daemon_info = checkOpen['description'] else: daemon_info = "{0}, Last active status: {1}".format( checkOpen['description'], status) return (render_template('defaults.html', table=table, feedback=feedback, column_options=column_options, notes=notes, daemon_table=daemon_table, daemon_check=daemon_check, daemon_color=daemon_color, daemon_info=daemon_info, daemon_action=daemon_action, name_options=name_options, folder_options=folder_options, hide_folder=hide_folder, tradier_key_warning=tradier_key_warning, IEX_key_warning=IEX_key_warning, coin_key_warning=coin_key_warning))
def render_index(feedback): if os.name == 'nt': pid = plumb.get_pid("poll_stocks.py") else: pid = plumb.get_pid("folder_daemon.py") if (pid == []): if os.name == 'nt': plumb.run_script("poll_stocks.py") else: plumb.run_script("./folder_daemon.py") if (feedback == ""): feedback = "stock polling started" l, table, db = plumb.Look(False) trends, lives, percents = plumb.AllocationTrends(False) notes, initialize_day = plumb.GetAIMNotes(10, False) post_display = "post" initialize_prompt = "" if db == {} or initialize_day: post_display = "initialize" initialize_prompt = "You may reinitialize until tomorrow to make sure you have your portfolio balances the way you want." post_background = "" if not initialize_day: if "market order" in db: if (db['market order'] > 0): post_background = "background: blue;" post_display = "buy" if (db['market order'] < 0): post_background = "background: green;" post_display = "sell" balance_list = "" initial_value = "" profit_value = "" profit_percent = "" if "percent list" in l: balance_list = l['percent list'] initial_value = l['initial value'] profit_value = l['profit value'] profit_percent = l['profit percent'] return render_template('index.html', table=table, balance_list=balance_list, initial_value=initial_value, profit_value=profit_value, profit_percent=profit_percent, notes=notes, feedback=feedback, post_display=post_display, post_background=post_background, initialize_prompt=initialize_prompt, trends=trends, lives=lives, percents=percents)
def main(argv): verbose = False test = False quote = "" symbol = "" key = "" item = "" printout = False zap = False log = "" when = False get = False run = False daemon = False kill = False crypto = False try: opts, args = getopt.getopt(argv, "rdkgwl:zcpi:k:hvts:q:", [ "help", "verbose", "test", "quote=", "key=", "symbol=", "item=", "print", "zap", "log=", "when", "get", "run", "daemon", "kill", "crypto" ]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for o, a in opts: if o in ("-v", "--verbose"): verbose = True elif o in ("-t", "--test"): test = True elif o in ("-g", "--get"): get = True elif o in ("-r", "--run"): run = True elif o in ("-d", "--daemon"): daemon = True elif o in ("-c", "--crypto"): crypto = True elif o in ("-k", "--kill"): kill = True elif o in ("-w", "--when"): when = True elif o in ("-z", "--zap"): zap = True elif o in ("-p", "--print"): printout = True elif o in ("-h", "--help"): usage() exit() elif o in ("-i", "--item"): item = a elif o in ("-q", "--quote"): quote = a.upper() elif o in ("-s", "--symbol"): symbol = a.upper() elif o in ("-k", "--key"): key = a elif o in ("-l", "--log"): log = a.lower() else: assert False, "unhandled option" if (test): testResult = plumb.TestDefaults(False, verbose) print(testResult) exit() if (key > "" and item > ""): if item > "": result = plumb.UpdateDefaultItem(key, item, verbose) if (result): print("saved.") else: print("failed.") else: print("you must use --item switch with the --key switch") exit() if (quote > "" and not crypto): quoteResult = plumb.QuoteTradier(quote, verbose) pprint.pprint(quoteResult) exit() if (symbol > "" and not crypto): companyResult = plumb.Company(symbol, verbose) pprint.pprint(companyResult) exit() if (quote > "" and crypto): quoteResult = plumb.QuoteCrypto(quote, verbose) pprint.pprint(quoteResult) exit() if (symbol > "" and crypto): companyResult = plumb.CryptoCompany(symbol, verbose) pprint.pprint(companyResult) exit() if (printout): printResult, column_options, name_options, folder_options = plumb.PrintDefaults( verbose) pprint.pprint(printResult) pprint.pprint(column_options) pprint.pprint(folder_options) pprint.pprint(name_options) exit() if (zap): endResult = plumb.ResetDefaults(verbose) if (endResult): print("saved.") else: print("failed.") exit() if (run): if os.name == 'nt': runResult = plumb.run_script("poll_stocks.py") else: runResult = plumb.run_script("./folder_daemon.py") exit() if (daemon): if os.name == 'nt': checkResult = plumb.get_pid("poll_stocks.py") else: checkResult = plumb.get_pid("folder_daemon.py") if (checkResult != []): log = "stock polling app is running at pid: {0}".format( checkResult) print(log) else: print("stock polling app is not running") exit() if (kill): if os.name == 'nt': checkResult = plumb.get_pid("poll_stocks.py") else: checkResult = plumb.get_pid("folder_daemon.py") if (checkResult != []): plumb.kill_pid(checkResult[0]) else: print("stock polling app is not running") exit() if (log > ""): logResult, status = plumb.PrintDaemon(log, verbose) if (logResult > ""): pprint.pprint(logResult) else: print("failed.") print("last status: {0}".format(status)) exit() if (when): whenResult = plumb.Holiday(verbose) if (whenResult): pprint.pprint(whenResult) else: print("failed.") exit() if (get): getResult, types = plumb.GetDefaults(verbose) if (getResult): pprint.pprint(getResult) else: print("failed.") exit() usage()