def mamage_version(self, value): """Version of the output""" term.pos(16, 3) term.write(value["system"]) term.pos(16, 10) term.write(value["version"])
def banner(self): term.clear() term.pos(1, 1) banner = pyfiglet.figlet_format("ZYDRA", font="epic").replace( "\n", "\n\t\t", 7) cprint("\r\n\t" + "@" * 61, "blue", end="") cprint("\n\t\t" + banner + "\t\tAuthor : Hamed Hosseini", "blue", attrs=['bold']) cprint("\t" + "@" * 61 + "\n", "blue")
def end_time(self): self.stop = True end_time_show = time.asctime() end_time = time.monotonic() execution_time = (timedelta(seconds=end_time - self.start_time)) print(self.blue("End time ==> ") + self.white(end_time_show)) print( self.blue("Execution time ==> ") + self.white(str(execution_time)) + "\n") term.saveCursor() term.pos(7, 15) term.writeLine("ok", term.green, term.blink) term.restoreCursor() exit(0)
def banner(self): term.clear() term.pos(1, 1) # check if font "epic" exists on this system # sudo wget http://www.figlet.org/fonts/epic.flf -O /usr/share/figlet/epic.flf bannerfont = "epic" if os.path.exists( '/usr/share/figlet/epic.flf') else "banner" banner = pyfiglet.figlet_format("ZYDRA", font=bannerfont).replace( "\n", "\n\t\t", 7) cprint("\r\n\t" + "@" * 61, "blue", end="") cprint("\n\t\t" + banner + "\t\tAuthor : Hamed Hosseini", "blue", attrs=['bold']) cprint("\t" + "@" * 61 + "\n", "blue")
class Cursor: save = trm.saveCursor restore = trm.restoreCursor() up = lambda self, n: trm.up(n) pos = lambda self, r, c: trm.pos(r, c) down = lambda self, n: trm.down(n) home = lambda self: trm.homePos()
def volume(min_vol=1000.0, limit=20, exchange='BTC'): """ Show an desc volume sorted symbol list for 1 minute time-frame (useful to detect rising markets) :param float min_vol: volume filter cutoff value (default 1000.0 BTC) :param int limit: limit markets list :param str exchange: exchange used (default BTC) """ tickers = api.get_tickers(market=exchange).query( 'quoteVolume > {}'.format(min_vol)) tickers = tickers.sort_values('quoteVolume', ascending=False).T if len(tickers) > limit: tickers = tickers[:limit] table_data = list() tf = '1m' for num, ts in enumerate(tickers.keys()): if num == 0: trm.clear() trm.pos(1, 1), trm.clearLine() echo('({:d}/{:d}) Loading {} ...\n'.format(num + 1, len(tickers.columns), ts)) ohlc = api.get_ohlc(ts, timeframe=tf) # type: pd.DataFrame ohlc['qvolume'] = ohlc['close'] * ohlc['volume'] if (ohlc['qvolume'] > min_vol)[-3:].all(): continue tickers[ts]['ohlc'] = ohlc last = '{:9.8f}'.format(tickers[ts]['last']) table_data.append([ ts, tickers[ts]['ohlc']['qvolume'][-1], tickers[ts]['ohlc']['qvolume'][-2], last ]) print( tabulate(table_data, headers=VOLUME_HEADERS, numalign='right', floatfmt='.3f')) # disable_numparse=[3]))
def mamage_system(self, value): """System output format""" day, now = time.strftime("%Y-%m-%d %H:%M:%S").split() course_pid = psutil.pids() course_count = 0 for i in course_pid: course_count = course_count + 1 term.pos(2, 4) term.write("USER: "******"username"])) term.pos(2, 16) term.write("T: " + str(value["terminal"])) term.pos(2, 28) term.write("-") term.pos(2, 33) term.write("Process: " + str(course_count)) term.pos(2, 48) term.write("-") term.pos(2, 53) term.write("BootTime: " + str(value["BootTime"])) term.pos(4, 4) term.write("HOST: " + str(value["hostname"])) term.pos(4, 28) term.write("-") term.pos(4, 32) term.write("Sec: " + str(now)) term.pos(4, 48) term.write("-") term.pos(4, 53) term.write("LogiTime: " + str(value["started"])) term.pos(2, 3)
wLn = trm.writeLine symbol = 'TRX/BTC' while True: raw = api.get_trades(symbol, limit=100) trades = raw.query('amount != 1.0') sells = trades.loc[trades.side == "sell"] buys = trades.loc[trades.side == "buy"] num_sells = len(sells) num_buys = len(buys) if num_sells > num_buys: sells = sells[-num_buys:] else: buys = buys[-num_sells:] trm.clear(), trm.pos(1, 1) # print(buys.tail(3)) sells_index = trades.side == "sell" datos_precios = (trades['price'] * sells_index.apply(lambda x: -1.0 if x else 1.0) ) # type: pd.Series datos_volumen = (trades['cost'] * sells_index.apply(lambda x: -1.0 if x else 1.0) ) # type: pd.Series buy_cost = pd.DataFrame(buys['cost'].values, columns=['close'], index=buys.index) buy_price = pd.DataFrame(sells['price'].values, columns=['close'],
cols = ['price', 'amount'] pd.options.display.precision = 8 exchange = 'BTC' coin = 'ETN' symbol = '{}/{}'.format(coin, exchange) # book = api.fetch_order_book(symbol, limit=10) # # asks, bids = book['asks'], book['bids'] # df_asks = pd.DataFrame(asks, columns=cols) # df_bids = pd.DataFrame(bids, columns=cols) tm.sleep(.25), trm.clear(), trm.pos(1, 1) api = cryptopia() while True: try: sep = lambda: trm.writeLine(trm.center('-' * 80), trm.dim, trm.cyan) book = api.fetch_order_book(symbol, limit=5) asks, bids = book['asks'], book['bids'] df_asks = pd.DataFrame(asks, columns=cols) df_bids = pd.DataFrame(bids, columns=cols) df_asks['amount'] = df_asks['amount'].apply( lambda v: '{: >16.2f}'.format(v)) df_asks['price'] = df_asks['price'].apply( lambda v: '{: >16.8f}'.format(v)) df_bids['amount'] = df_bids['amount'].apply( lambda v: '{: >16.2f}'.format(v))
def header(self): """Frame structure format output""" # upper part bold = term.format("#", term.bold) frame_up = bold.ljust(100, "=") frame_up_format = term.format(frame_up) term.write(frame_up_format+bold) # center section 1 term.pos(3, 0) frame_three = term.format("+".ljust(87, "-")) term.write(frame_three+"+") # center section 2 term.pos(5, 0) frame_five = term.format("+".ljust(87, "-")) term.write(frame_five+"+") # center section 3 frame_centre1 = "+".ljust(87, "=") term.pos(15, 0) term.write(frame_centre1+"+") # center section 4 frame_centre2 = "+".ljust(59, "=") term.pos(17, 0) term.write(frame_centre2) term.pos(17, 88) term.write("|", term.bold) # Producer information kevin = "Kevin.Xiang" term.pos(16, 47) term.write(kevin) # next part frame_down = bold.ljust(100, "=") term.pos(39, 0) term.write(frame_down+bold) # border style for i1 in range(7, 14): term.pos(i1, 26) term.write("|") for i2 in range(16, 39): term.pos(i2, 60) term.write("|", term.bold) # Border output style IO term.pos(16, 61) frame_back = term.format("".rjust(27, " "), term.bgwhite) term.write(frame_back) term.pos(16, 71) frame_network = term.format("NETWORK", term.black, term.bgwhite) term.write(frame_network) term.pos(27, 61) term.write(frame_back) term.pos(27, 73) frame_disk = term.format("DISK", term.black, term.bgwhite) term.write(frame_disk) # Process output style term.pos(18, 0) space = "".center(4, " ") frame = term.format(" USER" + space + "PID" + space + "CPU%" + space + "MEM%" + space + "THRE" + space + "NAME", term.bold) term.write(frame) # Border output style list_down = [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38] for i3 in list_down: term.pos(i3, 0) term.write("|", term.bold) term.pos(i3, 88) term.write("|", term.bold)
def mamage_diskio(self, value): """Disk IO output format""" term.pos(31, 68) term.clearLineFromPos() term.write("Read: " + str(round(value["read"], 2)) + " KB") term.pos(31, 88) term.write("|", term.bold) term.pos(32, 68) term.clearLineFromPos() term.write("Wrtn: " + str(round(value["write"], 2)) + " KB") term.pos(32, 88) term.write("|", term.bold) term.pos(33, 68) term.write("Rsec: " + str(value["read_count"])) term.pos(34, 68) term.write("Wsec: " + str(value["write_count"])) term.pos(35, 69) term.write("Tps: " + str(value["tps"])) term.pos(32, 68)
def mamage_process(self, value): """Process output format""" value = value["key"] count = 19 # Loop outputs each process for v in value: term.pos(count, 3) term.write(v["user"]) term.pos(count, 11) term.write(str(v["pid"])) term.pos(count, 18) term.write(str(v["cpu"])) term.pos(count, 26) term.write(str(round(v["memory"], 2))) term.pos(count, 34) term.write(str(v["threads"])) term.pos(count, 42) term.write(str(v["name"])) count = count + 1 term.pos(18, 4)
def mamage_network(self, value): """Network output format""" term.pos(20, 68) term.clearLineFromPos() term.write("TX: " + str(round(value["send"], 2)) + " KB") term.pos(20, 88) term.write("|", term.bold) term.pos(21, 68) term.clearLineFromPos() term.write("RX: " + str(round(value["recv"], 2)) + " KB") term.pos(21, 88) term.write("|", term.bold) term.pos(22, 67) term.write("TXP: " + str(value["packets_sent"])) term.pos(23, 67) term.write("TXP: " + str(value["packets_recv"])) term.pos(20, 68)
def run(self): """Enable multithreading to complete tasks""" global flag flag = True thread_get = threading.Thread( target=Manage("get").mamage_get) thread_cpu = threading.Thread( target=Manage("frames_cpu").mamage_put) thread_memory = threading.Thread( target=Manage("frames_memory").mamage_put) thread_swap = threading.Thread( target=Manage("frames_swap").mamage_put) thread_disk = threading.Thread( target=Manage("frames_disk").mamage_put) thread_diskio = threading.Thread( target=Manage("frames_diskio").mamage_put) thread_system = threading.Thread( target=Manage("frames_system").mamage_put) thread_network = threading.Thread( target=Manage("frames_network").mamage_put) thread_version = threading.Thread( target=Manage("frames_version").mamage_put) thread_process = threading.Thread( target=Manage("frames_process").mamage_put) thread_process.start() thread_cpu.start() thread_memory.start() thread_swap.start() thread_disk.start() thread_diskio.start() thread_network.start() thread_system.start() thread_version.start() thread_get.start() # Short execution framewor frames = Frames() time.sleep(1) term.clear() term.pos(1, 0) frames.header() term.pos(2, 0) time.sleep(3) # Judge the input and exit fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) tty.setraw(sys.stdin.fileno()) quit = sys.stdin.read(1) termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) if len(quit) == 1: flag = False time.sleep(1) que.queue.clear() # Reduction of the cursor os.system("echo -e \033[?25h") term.pos(1, 0) term.clear()
def paint(paint_map): term.clear() for pos, value in paint_map.items(): term.pos(pos[0] + 20, pos[1] + 20) term.write('#' if value == 1 else ' ')
def mamage_disk(self, value): """Disk output format""" term.pos(13, 3) term.write("Disk", term.bold) term.pos(13, 8) total = (value["used"]/value["total"]) * 100 percent = ("%s%%" % (int(total))) term.write("[%-10s]%s" % ("|" * int(total/10), percent)) term.pos(13, 30) term.write("-Disk-", term.bold) term.pos(13, 39) term.write("total: %s GB" % (int(value["total"]))) term.pos(13, 55) term.write("used: %s GB" % (int(value["used"]))) term.pos(13, 70) term.write("free: %s GB" % (int(value["free"]))) term.pos(13, 3)
def mamage_swap(self, value): """Swap output format""" term.pos(11, 3) term.write("Swap", term.bold) term.pos(11, 8) # Determine if the value is 0 and the exception is caught try: total = (int(value["used"])/int(value["total"])) * 100 except ZeroDivisionError: total = 0 percent = ("%s%%" % (int(total))) term.write("[%-10s]%s" % ("|" * int(total/10), percent)) term.pos(11, 30) term.write("-Swap-", term.bold) term.pos(11, 39) term.write("total: %s MB" % (int(value["total"]))) term.pos(11, 55) term.write("used: %s MB" % (int(value["used"]))) term.pos(11, 70) term.write("free: %s MB" % (int(value["free"]))) term.pos(12, 41) term.write("sin: %s MB" % (int(value["sin"]))) term.pos(12, 55) term.write("sout: %s MB" % (int(value["sout"]))) term.pos(12, 70) term.write("perc: %s %%" % (str(value["percent"]))) term.pos(11, 3)
def mamage_memory(self, value): """Memory output format""" term.pos(9, 4) term.write("Mem", term.bold) term.pos(9, 8) total = (value["used"]/value["total"]) * 100 percent = ("%s%%" % (int(total))) term.write("[%-10s]%s" % ("|" * int(total/10), percent)) term.pos(9, 30) term.write("-MEM-", term.bold) term.pos(9, 39) term.write("total: %s MB" % (int(value["total"]))) term.pos(9, 55) term.write("used: %s MB" % (int(value["used"]))) term.pos(9, 70) term.write("free: %s MB" % (int(value["free"]))) term.pos(10, 39) term.write("activ: %s MB" % (int(value["active"]))) term.pos(10, 55) term.write("buff: %s MB" % (int(value["buffers"]))) term.pos(10, 70) term.write("cach: %s MB" % (int(value["cached"]))) term.pos(9, 4)
def mamage_cpu(self, value): """CPU output format""" term.pos(7, 4) term.write("CPU", term.bold) term.pos(7, 19) term.write(" ") term.pos(7, 8) # Output progress bar percent = ("%s%%" % (int(value["total"]))) term.write("[%-10s]%s" % ("|" * int(value["total"]/10), percent)) term.pos(7, 30) term.write("-CPU-", term.bold) term.pos(7, 45) term.write(" ") term.pos(7, 39) term.write("total: %s %%" % (round(value["total"], 1))) term.pos(7, 60) term.write(" ") term.pos(7, 55) term.write("used: %s %%" % (round(value["user"], 1))) term.pos(7, 75) term.write(" ") term.pos(7, 70) term.write("syst: %s %%" % (round(value["system"], 1))) term.pos(8, 45) term.write(" ") term.pos(8, 39) term.write("iowai: %s %%" % (round(value["iowait"], 1))) term.pos(8, 60) term.write(" ") term.pos(8, 55) term.write("nice: %s %%" % (round(value["nice"], 1))) term.pos(8, 75) term.write(" ") term.pos(8, 70) term.write("nice: %s %%" % (round(value["idle"], 1))) term.pos(7, 4)