202 lines
6.6 KiB
MQL5
202 lines
6.6 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| Main.mqh |
|
|
//| Copyright 2025, Niquel Mendoza. |
|
|
//| https://www.mql5.com/es/users/nique_372 |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2025, Niquel Mendoza."
|
|
#property link "https://www.mql5.com/es/users/nique_372"
|
|
#property strict
|
|
|
|
#ifndef AIDATATASKRUNNER_FILEINSTALER_MAIN_MQH
|
|
#define AIDATATASKRUNNER_FILEINSTALER_MAIN_MQH
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#include <TSN\\MQLArticles\\Utils\\Basic.mqh>
|
|
#include <TSN\\EAFMod\\Language.mqh>
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#resource "res\\language_en.txt" as const string g_panelict_dep_language_en
|
|
#resource "res\\language_es.txt" as const string g_panelict_dep_language_es
|
|
#resource "res\\language_it.txt" as const string g_panelict_dep_language_it
|
|
|
|
//---
|
|
// Este archivo se encarga de dwscragar los .ini en Conifg
|
|
|
|
struct AiDataTaskRunnerConfigFile
|
|
{
|
|
string base_folder;
|
|
bool comon_flag;
|
|
|
|
AiDataTaskRunnerConfigFile()
|
|
: comon_flag(true), base_folder("AiDataTaskRunner\\")
|
|
{}
|
|
} g_aidatatask_runner_config_g;
|
|
|
|
//---
|
|
#define AIDATATASKRUNER_BASE_FOLDER (g_aidatatask_runner_config_g.base_folder)
|
|
#define AIDATATASKRUNER_PATH_CONFIG (AIDATATASKRUNER_BASE_FOLDER + "Config\\")
|
|
#define AIDATATASKRUNER_PATH_TASK (AIDATATASKRUNER_BASE_FOLDER + "Task\\")
|
|
|
|
|
|
//---
|
|
#define AIDATATASKRUNNER_TOTAL_LANGUAGUE (3)
|
|
|
|
//---
|
|
#define AIDATATASK_RUNNER_COMON_FLAG (g_aidatatask_runner_config_g.comon_flag ? FILE_COMMON : 0)
|
|
#define AIDATATASK_RUNNER_FSD_COMON_FLAG (g_aidatatask_runner_config_g.comon_flag ? FSD_COMMON_FOLDER : 0)
|
|
|
|
//---
|
|
#define TASKRUNERAI_DEFUALT_LAN (AIDATATASKRUNNER_LAN_ES)
|
|
|
|
//---
|
|
string g_aidatatask_runner_langague_str[AIDATATASKRUNNER_TOTAL_LANGUAGUE]
|
|
{
|
|
"Español",
|
|
"English",
|
|
"Italiano"
|
|
};
|
|
|
|
//---
|
|
LanguageBaseConfig g_aidatatask_runner_langague[AIDATATASKRUNNER_TOTAL_LANGUAGUE];
|
|
|
|
//---
|
|
enum ENUM_AIDATATASKRUNER_LANGUAGE
|
|
{
|
|
AIDATATASKRUNNER_LAN_ES = 0,
|
|
AIDATATASKRUNNER_LAN_EN = 1,
|
|
AIDATATASKRUNNER_LAN_IT = 2
|
|
};
|
|
|
|
//---
|
|
#define TABLLMAGENT_FOLDER_AI "AiAgent\\"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
class CPanelAiDataTaskRunnerIns
|
|
{
|
|
private:
|
|
static bool WriteInFile(const string path, const string& rescr);
|
|
static void InitArrays();
|
|
|
|
public:
|
|
CPanelAiDataTaskRunnerIns(void) {}
|
|
~CPanelAiDataTaskRunnerIns(void) {}
|
|
|
|
//---
|
|
static bool Downlad();
|
|
};
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
static void CPanelAiDataTaskRunnerIns::InitArrays(void)
|
|
{
|
|
//---
|
|
g_aidatatask_runner_langague[AIDATATASKRUNNER_LAN_ES].base_file = AIDATATASKRUNER_PATH_CONFIG + "language_es.ini";
|
|
g_aidatatask_runner_langague[AIDATATASKRUNNER_LAN_ES].content = g_panelict_dep_language_es;
|
|
|
|
g_aidatatask_runner_langague[AIDATATASKRUNNER_LAN_EN].base_file = AIDATATASKRUNER_PATH_CONFIG + "language_en.ini";
|
|
g_aidatatask_runner_langague[AIDATATASKRUNNER_LAN_EN].content = g_panelict_dep_language_en;
|
|
|
|
g_aidatatask_runner_langague[AIDATATASKRUNNER_LAN_IT].base_file = AIDATATASKRUNER_PATH_CONFIG + "language_it.ini";
|
|
g_aidatatask_runner_langague[AIDATATASKRUNNER_LAN_IT].content = g_panelict_dep_language_it;
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
static bool CPanelAiDataTaskRunnerIns::WriteInFile(const string path, const string &rescr)
|
|
{
|
|
//---
|
|
string arr[];
|
|
const int t = StringSplit(rescr, '\n', arr);
|
|
if(t == -1)
|
|
{
|
|
FastLog(FUNCION_ACTUAL, ERROR_TEXT, "Falo al hacer split al resrc");
|
|
return false;
|
|
}
|
|
//ArrayPrint(arr);
|
|
|
|
//---
|
|
::GetLastError();
|
|
const int fh = FileOpen(path, FILE_TXT | FILE_WRITE | AIDATATASK_RUNNER_COMON_FLAG);
|
|
if(fh == INVALID_HANDLE)
|
|
{
|
|
FastLog(FUNCION_ACTUAL, ERROR_TEXT, StringFormat("Fallo al abrir el archivo = %s, ultimo error = %d", path, ::GetLastError()));
|
|
return false;
|
|
}
|
|
|
|
//---
|
|
for(int i = 0; i < t; i++)
|
|
{
|
|
StringTrimRight(arr[i]);
|
|
FileWrite(fh, arr[i]);
|
|
}
|
|
|
|
//---
|
|
FileClose(fh);
|
|
|
|
//---
|
|
return true;
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
static bool CPanelAiDataTaskRunnerIns::Downlad(void)
|
|
{
|
|
//---
|
|
InitArrays();
|
|
|
|
//---
|
|
const string file = AIDATATASKRUNER_PATH_CONFIG + "last_date.bin";
|
|
if(FileIsExist(file, AIDATATASK_RUNNER_COMON_FLAG))
|
|
{
|
|
// Ya existe
|
|
FastLog(FUNCION_ACTUAL, WARNING_TEXT, "The ini files have already been created");
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
FastLog(FUNCION_ACTUAL, WARNING_TEXT, "Creating init files for the panel");
|
|
}
|
|
|
|
//--- Instalacion de archivos
|
|
for(int i = 0; i < AIDATATASKRUNNER_TOTAL_LANGUAGUE; i++)
|
|
{
|
|
if(!WriteInFile(g_aidatatask_runner_langague[i].base_file, g_aidatatask_runner_langague[i].content))
|
|
return false;
|
|
}
|
|
|
|
//---
|
|
if(!CreateFolder(AIDATATASKRUNER_PATH_TASK, g_aidatatask_runner_config_g.comon_flag)) // Folder de utilidad por si el usuario crea tareas o guarda
|
|
return false;
|
|
|
|
//---
|
|
if(!CreateFolder(g_aidatatask_runner_config_g.base_folder + TABLLMAGENT_FOLDER_AI,
|
|
g_aidatatask_runner_config_g.comon_flag))
|
|
return false;
|
|
|
|
|
|
//--- Finalizamos creando
|
|
const int fh = FileOpen(file, FILE_BIN | FILE_WRITE | AIDATATASK_RUNNER_COMON_FLAG);
|
|
if(fh == INVALID_HANDLE)
|
|
{
|
|
FastLog(FUNCION_ACTUAL, ERROR_TEXT, StringFormat("Fallo al abrir el archivo = %s, ultimo error = %d", file, ::GetLastError()));
|
|
return false;
|
|
}
|
|
|
|
FileWriteLong(fh, long(TimeCurrent()));
|
|
FileClose(fh);
|
|
|
|
//---
|
|
return true;
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
#endif // AIDATATASKRUNNER_FILEINSTALER_MAIN_MQH
|