main.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. use tracing::{error, info};
  2. use crate::export::html::ExportExchangeTickerInfo;
  3. use crate::utils::logs;
  4. pub mod binance_swap;
  5. pub mod gate_swap;
  6. pub mod utils;
  7. pub mod http;
  8. pub mod struct_standard;
  9. pub mod export;
  10. pub mod handle_ticker;
  11. #[tokio::main]
  12. async fn main() {
  13. logs::init_log_with_info();
  14. let config = utils::utils::get_config_info("./config.toml");
  15. if http::proxy::ParsingDetail::http_enable_proxy(config.proxy_address) {
  16. info!("检测有代理配置,配置走代理");
  17. }
  18. let symbol = config.symbol;
  19. let start_at = config.range_time[0].clone();
  20. let end_at = config.range_time[1].clone();
  21. let export_path = if config.export_path == "" { None } else { Option::from(config.export_path.as_str()) };
  22. let export_name = if config.export_name == "" { None } else { Option::from(config.export_name.as_str()) };
  23. let mut exchange_list = vec![];
  24. for exchange in config.exchanges {
  25. let exchange_up = exchange.to_uppercase();
  26. let exchange_result = match exchange_up.as_str() {
  27. "BINANCE" => {
  28. let ticker_info = handle_ticker::get_binance_ticker_info(&symbol, &start_at, &end_at).await;
  29. ExportExchangeTickerInfo {
  30. name: exchange.to_string(),
  31. ticker_info,
  32. }
  33. }
  34. "GATE" => {
  35. let ticker_info = handle_ticker::get_gate_ticker_info(&symbol, &start_at, &end_at).await;
  36. ExportExchangeTickerInfo {
  37. name: exchange.to_string(),
  38. ticker_info,
  39. }
  40. }
  41. _ => {
  42. error!("交易所输入错误!");
  43. panic!("交易所输入错误!")
  44. }
  45. };
  46. exchange_list.push(exchange_result);
  47. }
  48. export::html::export_html(exchange_list, &symbol, &start_at, &end_at, export_path, export_name);
  49. }