module Abot::Info

Constants

VERSION

Public Class Methods

run() click to toggle source
# File lib/abot/info.rb, line 18
def run
  Info::OptionParser.instance do |parser|
    parser.program_name = 'abot-info'
    parser.version = Abot::Info::VERSION

    parser.separator ''
    parser.separator 'Application options:'

    parser.add_option(
      :template, '--template=TEMPLATE',
      'Шаблон (default || mobile)',
    )
    parser.add_option(
      :add, '--add=COLUMN1,COLUMN2,COLUMN3',
      "Добавить колонки:\n" \
      "                                     name: Названия монет\n" \
      "                                     name_mobile: Название монет(без изменения по дню)\n" \
      "                                     sell_up: Прибыль со сделки\n" \
      "                                     sell_price: Цена продажи\n" \
      "                                     max_price: Максимальная цена за 24ч.\n" \
      "                                     min_price: Минимальная цена за 24ч.\n" \
      "                                     current_price: Текущая цена\n" \
      "                                     next_average_price: Цена следующего усреднения\n" \
      "                                     current_quote: Текущая стоимость позиции, $\n" \
      "                                     buy_date: Дата покупки\n" \
      "                                     timer: Время с покупки\n" \
      "                                     current_profit: Текущая прибыль\n" \
      "                                     potential_profit: Потенциальная прибыль\n",
      "                                     current_price_perc_of_order: Текущая цена (подсчет процента от ордера за продажу)\n" \
      "                                     max_price_perc_of_order: Максимальная цена за 24ч (подсчет процента от ордера за продажу)\n" \
    )
    parser.add_option(
      :del, '--del=COLUMN1,COLUMN2,COLUMN3',
      "Удалить колонки:\n" \
      "                                     name: Названия монет\n" \
      "                                     name_mobile: Название монет(без изменения по дню)\n" \
      "                                     sell_up: Прибыль со сделки\n" \
      "                                     sell_price: Цена продажи\n" \
      "                                     max_price: Максимальная цена за 24ч.\n" \
      "                                     min_price: Минимальная цена за 24ч.\n" \
      "                                     current_price: Текущая цена\n" \
      "                                     next_average_price: Цена следующего усреднения\n" \
      "                                     current_quote: Текущая стоимость позиции, $\n" \
      "                                     buy_date: Дата покупки\n" \
      "                                     timer: Время с покупки\n" \
      "                                     current_profit: Текущая прибыль\n" \
      "                                     potential_profit: Потенциальная прибыль\n",
      "                                     current_price_perc_of_order: Текущая цена (подсчет процента от ордера за продажу)\n" \
      "                                     max_price_perc_of_order: Максимальная цена за 24ч (подсчет процента от ордера за продажу)\n"
    )
    parser.add_option(
      :db_path, '--db_path=DB_PATH',
      'Абсолютный путь до базы A-bot',
      required: true
    )
    parser.add_option(
      :symbols, '--symbols=SYMBOL1,SYMBOL2,SYMBOL3',
      'Пары для отображения курсов',
    )
  end.final!

  require_relative 'info/database_table'

  start_stats({ rate_coins: rate_coins, columns: columns })
end
start_stats(opts) click to toggle source
# File lib/abot/info.rb, line 84
def start_stats(opts)
  while true do
    begin
      table = Table.new(opts.merge({ account: binance_account })).generate

      system 'clear'
      puts table
    rescue StandardError => e
      puts "ERROR: #{e.message}"
    end

    sleep 10
  end
end

Private Class Methods

binance_account() click to toggle source
# File lib/abot/info.rb, line 125
def binance_account
  BinanceAccount.new(DatabaseTable::API_KEY, DatabaseTable::SECRET_KEY)
end
columns() click to toggle source
# File lib/abot/info.rb, line 109
def columns
  add = Info::OptionParser.instance.options[:add]&.split(',')&.map { |m| m.to_sym } || []
  del = Info::OptionParser.instance.options[:del]&.split(',')&.map { |m| m.to_sym } || []
  columns = case template
            when 'default'
              Table::HEADINGS_COINS_TABLE_DEFAULT
            when 'mobile'
              Table::HEADINGS_COINS_TABLE_MOBILE
            else
              []
            end
  columns += add
  columns -= del
  Table.last_columns_set(columns)
end
rate_coins() click to toggle source
# File lib/abot/info.rb, line 101
def rate_coins
  @rate_coins ||= Info::OptionParser.instance.options[:symbols]&.split(',') || []
end
template() click to toggle source
# File lib/abot/info.rb, line 105
def template
  @template ||= Info::OptionParser.instance.options[:template]
end