Bot & Automation
Treding Forex Ai
/root/hermes-projects/Treding Forex Ai
dist/src/index.js
text
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const app_1 = require("./app");
const env_1 = require("./config/env");
async function main() {
console.log("[startup] Memulai inisialisasi bot...");
const components = (0, app_1.createAppComponents)();
console.log("[startup] Komponen aplikasi berhasil dimuat.");
const bot = (0, app_1.createBot)();
console.log("[startup] Objek bot berhasil dibuat.");
const autoTradingService = (0, app_1.createAutoTradingService)(components, bot);
console.log("[startup] AutoTradingService berhasil diinisialisasi.");
(0, app_1.registerBot)(bot, components, autoTradingService);
console.log("[startup] Handlers bot berhasil diregistrasi.");
console.log("[startup] Menghapus webhook lama...");
await bot.telegram.callApi("deleteWebhook", { drop_pending_updates: true });
console.log("[startup] Webhook lama berhasil dihapus.");
console.log("[startup] Mengaktifkan AutoTradingService...");
autoTradingService.start();
console.log("[startup] AutoTradingService aktif.");
console.log("[startup] Memulai koneksi long-polling ke Telegram...");
bot.launch({ dropPendingUpdates: true }).catch((err) => {
console.error("[startup] Gagal meluncurkan bot Telegraf:", err);
});
console.log("[startup] Koneksi Telegraf berjalan.");
console.log(`${env_1.env.botDisplayName} aktif dalam mode ${env_1.env.tradingMode}.`);
process.once("SIGINT", () => {
autoTradingService.stop();
bot.stop("SIGINT");
});
process.once("SIGTERM", () => {
autoTradingService.stop();
bot.stop("SIGTERM");
});
}
main().catch((error) => {
const message = error instanceof Error ? error.message : "Unknown startup error";
console.error(`Startup failed: ${message}`);
process.exitCode = 1;
});