2026-03-13 15:20:27 -05:00 | | | //+------------------------------------------------------------------+
|
2026-03-13 11:50:43 -05:00 | | | //| 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
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
2026-03-16 21:51:29 -05:00 | | | #include <TSN\\MQLArticles\\Utils\\Basic.mqh>
|
2026-03-16 17:06:27 -05:00 | | | #include <TSN\\EAFMod\\Language.mqh>
|
2026-03-13 11:50:43 -05:00 | | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
2026-03-20 21:40:41 -05:00 | | | //--- Idiomas
|
2026-03-13 11:50:43 -05:00 | | | #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
|
| | |
|
2026-03-20 21:40:41 -05:00 | | | //--- Features editor
|
| | | #resource "res\\feditor\\base_template.fgblc" as const string g_panel_feditor_basetemplate
|
| | | #resource "res\\feditor\\complex_features.fgblc" as const string g_panel_feditor_complexfeatures
|
| | | #resource "res\\feditor\\ict_features.fgblc" as const string g_panel_feditor_ictfeatures
|
| | |
|
2026-03-25 09:39:28 -05:00 | | | //--- Temaplates
|
| | | #resource "res\\templates\\move_files_template.json" as const string g_panel_template_movefiles
|
2026-03-25 09:59:08 -05:00 | | | #resource "res\\templates\\config_py.json" as const string g_panel_template_config_py
|
2026-03-25 09:39:28 -05:00 | | |
|
| | |
|
2026-03-13 11:50:43 -05:00 | | | //---
|
| | | // Este archivo se encarga de dwscragar los .ini en Conifg
|
| | |
|
2026-03-13 19:46:30 -05:00 | | | struct AiDataTaskRunnerConfigFile
|
| | | {
|
| | | string base_folder;
|
| | | bool comon_flag;
|
2026-03-14 07:39:48 -05:00 | | |
|
| | | AiDataTaskRunnerConfigFile()
|
| | | : comon_flag(true), base_folder("AiDataTaskRunner\\")
|
| | | {}
|
2026-03-13 19:46:30 -05:00 | | | } g_aidatatask_runner_config_g;
|
| | |
|
2026-03-25 09:39:28 -05:00 | | | //--- Common flag
|
2026-03-13 19:46:30 -05:00 | | | #define AIDATATASKRUNER_BASE_FOLDER (g_aidatatask_runner_config_g.base_folder)
|
2026-03-25 09:39:28 -05:00 | | |
|
| | | //--- Folders
|
2026-03-25 09:45:53 -05:00 | | | // En el path config se ubican lo de los ini para el panel
|
2026-03-13 11:50:43 -05:00 | | | #define AIDATATASKRUNER_PATH_CONFIG (AIDATATASKRUNER_BASE_FOLDER + "Config\\")
|
2026-03-25 09:45:53 -05:00 | | | // Task aqui se ubican csv de tareas que gurado del usuario o la configuracion del tab task
|
2026-03-14 07:39:48 -05:00 | | | #define AIDATATASKRUNER_PATH_TASK (AIDATATASKRUNER_BASE_FOLDER + "Task\\")
|
2026-03-25 09:45:53 -05:00 | | |
|
| | | // En feature editor se ubican todos los archivo FGBLC que guardo\uso el user
|
2026-03-20 21:40:41 -05:00 | | | #define AIDATATASKRUNER_PATH_FEATURES_EDITOR (AIDATATASKRUNER_BASE_FOLDER + "FeatureEditor\\")
|
| | | #define AIDATATASKRUNER_PATH_FEATURES_EDITOR (AIDATATASKRUNER_PATH_FEATURES_EDITOR + "My\\")
|
2026-03-25 09:45:53 -05:00 | | |
|
| | | // Aqui s eubican los chats de ia etc (TabAi)
|
2026-03-20 21:40:41 -05:00 | | | #define TABLLMAGENT_FOLDER_AI "AiAgent\\"
|
2026-03-25 09:59:08 -05:00 | | |
|
| | | // Aqui se ubican los templates como archivos json listos para usar del condig de py etc
|
2026-03-25 09:39:28 -05:00 | | | #define AIDATATASKRUNER_PATH_TEMPLATES (AIDATATASKRUNER_BASE_FOLDER + "Templates\\")
|
2026-03-13 19:46:30 -05:00 | | |
|
2026-03-13 11:50:43 -05:00 | | |
|
| | | //---
|
| | | #define AIDATATASKRUNNER_TOTAL_LANGUAGUE (3)
|
| | |
|
2026-03-13 11:58:57 -05:00 | | | //---
|
2026-03-13 19:46:30 -05:00 | | | #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)
|
2026-03-13 11:50:43 -05:00 | | |
|
| | | //---
|
2026-03-16 17:06:27 -05:00 | | | #define TASKRUNERAI_DEFUALT_LAN (AIDATATASKRUNNER_LAN_ES)
|
2026-03-13 19:46:30 -05:00 | | |
|
2026-03-13 15:20:27 -05:00 | | | //---
|
| | | string g_aidatatask_runner_langague_str[AIDATATASKRUNNER_TOTAL_LANGUAGUE]
|
| | | {
|
| | | "Español",
|
| | | "English",
|
| | | "Italiano"
|
| | | };
|
| | |
|
2026-03-13 11:50:43 -05:00 | | | //---
|
2026-03-16 17:06:27 -05:00 | | | LanguageBaseConfig g_aidatatask_runner_langague[AIDATATASKRUNNER_TOTAL_LANGUAGUE];
|
2026-03-13 11:50:43 -05:00 | | |
|
| | | //---
|
| | | enum ENUM_AIDATATASKRUNER_LANGUAGE
|
| | | {
|
| | | AIDATATASKRUNNER_LAN_ES = 0,
|
| | | AIDATATASKRUNNER_LAN_EN = 1,
|
| | | AIDATATASKRUNNER_LAN_IT = 2
|
| | | };
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | class CPanelAiDataTaskRunnerIns
|
| | | {
|
| | | private:
|
2026-03-20 21:40:41 -05:00 | | | static bool WriteInFile(const string path, const string& rescr);
|
2026-03-14 07:39:48 -05:00 | | | static void InitArrays();
|
2026-03-13 11:50:43 -05:00 | | |
|
| | | public:
|
| | | CPanelAiDataTaskRunnerIns(void) {}
|
| | | ~CPanelAiDataTaskRunnerIns(void) {}
|
| | |
|
| | | //---
|
| | | static bool Downlad();
|
| | | };
|
| | |
|
2026-03-14 07:39:48 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | 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;
|
| | | }
|
| | |
|
2026-03-13 11:50:43 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | static bool CPanelAiDataTaskRunnerIns::WriteInFile(const string path, const string &rescr)
|
| | | {
|
| | | //---
|
| | | ::GetLastError();
|
2026-03-25 09:39:28 -05:00 | | | const int fh = FileOpen(path, FILE_TXT | FILE_WRITE | AIDATATASK_RUNNER_COMON_FLAG, 0);
|
2026-03-13 11:50:43 -05:00 | | | if(fh == INVALID_HANDLE)
|
| | | {
|
| | | FastLog(FUNCION_ACTUAL, ERROR_TEXT, StringFormat("Fallo al abrir el archivo = %s, ultimo error = %d", path, ::GetLastError()));
|
| | | return false;
|
| | | }
|
| | |
|
| | | //---
|
2026-03-25 09:39:28 -05:00 | | | FileWrite(fh, rescr);
|
2026-03-13 11:50:43 -05:00 | | |
|
| | | //---
|
| | | FileClose(fh);
|
| | |
|
| | | //---
|
| | | return true;
|
| | | }
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | static bool CPanelAiDataTaskRunnerIns::Downlad(void)
|
| | | {
|
2026-03-14 07:39:48 -05:00 | | | //---
|
| | | InitArrays();
|
| | |
|
2026-03-13 11:50:43 -05:00 | | | //---
|
| | | const string file = AIDATATASKRUNER_PATH_CONFIG + "last_date.bin";
|
2026-03-13 15:20:27 -05:00 | | | if(FileIsExist(file, AIDATATASK_RUNNER_COMON_FLAG))
|
2026-03-13 11:50:43 -05:00 | | | {
|
| | | // 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");
|
| | | }
|
| | |
|
2026-03-13 19:46:30 -05:00 | | | //--- Instalacion de archivos
|
2026-03-13 11:50:43 -05:00 | | | 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;
|
| | | }
|
| | |
|
2026-03-25 09:39:28 -05:00 | | | //--- Folders
|
| | | // Task
|
2026-03-13 21:49:37 -05:00 | | | if(!CreateFolder(AIDATATASKRUNER_PATH_TASK, g_aidatatask_runner_config_g.comon_flag)) // Folder de utilidad por si el usuario crea tareas o guarda
|
2026-03-13 19:46:30 -05:00 | | | return false;
|
| | |
|
2026-03-25 09:39:28 -05:00 | | | // Folder ai
|
| | | if(!CreateFolder(g_aidatatask_runner_config_g.base_folder + TABLLMAGENT_FOLDER_AI, g_aidatatask_runner_config_g.comon_flag))
|
2026-03-16 21:51:29 -05:00 | | | return false;
|
| | |
|
2026-03-25 09:39:28 -05:00 | | |
|
| | |
|
2026-03-20 21:40:41 -05:00 | | | //--- Archivos relacioneanos a las features
|
2026-03-25 09:39:28 -05:00 | | | // Features editor
|
2026-03-20 21:40:41 -05:00 | | | if(!WriteInFile(AIDATATASKRUNER_PATH_FEATURES_EDITOR + "base_template.fgblc", g_panel_feditor_basetemplate))
|
| | | return false;
|
| | | if(!WriteInFile(AIDATATASKRUNER_PATH_FEATURES_EDITOR + "complex_features.fgblc", g_panel_feditor_complexfeatures))
|
| | | return false;
|
| | | if(!WriteInFile(AIDATATASKRUNER_PATH_FEATURES_EDITOR + "ict_features.fgblc", g_panel_feditor_ictfeatures))
|
| | | return false;
|
| | |
|
2026-03-25 09:39:28 -05:00 | | | //--- Templates
|
| | | if(!WriteInFile(AIDATATASKRUNER_PATH_TEMPLATES + "move_files_template.json", g_panel_template_movefiles))
|
| | | return false;
|
| | |
|
2026-03-25 09:59:08 -05:00 | | | if(!WriteInFile(AIDATATASKRUNER_PATH_TEMPLATES + "config_py.json", g_panel_template_config_py))
|
| | | return false;
|
2026-03-25 09:39:28 -05:00 | | |
|
| | |
|
| | |
|
| | |
|
2026-03-16 21:51:29 -05:00 | | |
|
2026-03-13 11:50:43 -05:00 | | | //--- Finalizamos creando
|
2026-03-13 11:58:57 -05:00 | | | const int fh = FileOpen(file, FILE_BIN | FILE_WRITE | AIDATATASK_RUNNER_COMON_FLAG);
|
2026-03-13 11:50:43 -05:00 | | | 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
|