[20:17:41] mario https://github.com/MarioFinale/PeriodiBOT/blob/Dev/GrillitusArchive.vb [20:17:46] ya, lo que pasa es que hoy hice una clase "template" y una función recursiva que extrae todas las plantillas de un texto [20:17:51] lineas 19 a 34 [20:18:01] lo probe con la plantilla de grillitus y varias más y funciona bien [20:18:18] la idea es no usar expresiones regulares, en su lugar usar la clase "Template" [20:18:20] bien, pero el regex no es necesario complicarlo [20:18:37] veo ahora [20:18:40] y el resultado tampoco [20:18:56] fijate en esta linea: [20:19:02] ' Dim Destiny = Regex.Match(template, "\| *Destino *=([^}|]*)").Groups(1).ToString().Trim() [20:19:09] https://github.com/MarioFinale/PeriodiBOT/blob/Dev/Template.vb [20:20:28] pero supongo que para usar el Template necesitaras primero extraer los datos del texto [20:20:34] usa otro método} [20:21:20] bien, otra cosa [20:21:22] Dim quarter As Integer = CInt((DateTime.Now.Month - 1) / 3 + 1) [20:21:27] va caracter por caracter, cuando comienza una plantilla el texto es loq ue viene hasta que los "{{" y "}}" sean iguales. luego evalua el interior de la plantilla llamando a la misma función para sacar plantillas internas [20:21:27] 10[1] 04https://es.wikipedia.org/wiki/Template:%22_y_%22 [20:21:29] ln 84 [20:22:05] Obtiene el semestre del mes actual [20:22:09] se supone que usas ese "quarter" para señalar los semestres [20:22:17] pero divides entre 3 ? [20:22:19] El mes - 1 dividido en 3 y eso + 1 [20:22:24] semestre = 6 meses [20:22:43] enero a junio = semestre 1 [20:22:52] Es trimestre [20:22:54] Bah [20:22:59] jajaja [20:23:08] SEM [20:23:16] vale, lo corrijo} [20:23:19] el 3 va por 2 [20:23:36] y por cierto, usas varios bloques de If Else [20:23:42] no deberias [20:24:06] yo puedo nombrar mi archivo "SEM MM AAAA DD" [20:24:13] que no tenga sentido es mi problema [20:24:50] recomiendo usar ArchivePageTitle = ArchivePageTitle.Replace("AAAA", Currentyear) y los demas sin bloques If [20:26:16] por cierto, si divides entre 3 quedan bloques de 4 meses, por lo que es cuatrimestre [20:26:42] si divides entre 2 quedan 6 bloques [20:26:45] bah cierto [20:26:51] tendrias que dividir entre 6 [20:26:53] es que estoiy acostumbrado a trabajar con quarter [20:27:08] pero dividido en 2 da bloques de 6 meses [20:27:34] dividido en 6* [20:28:04] (diciembre) 12 / 2 = 6 [20:28:15] semestre 6 ? [20:28:28] 12 / 6 = 2, segundo semestre [20:29:19] sip, error mio de nuevo [20:29:23] ya está [20:29:55] y lo del principio, cuando uses regex.match, no tomes el .value [20:30:11] toma el .group [20:30:29] .groups * [20:30:32] .Groups(1).ToString().Trim() [20:30:47] cada bloque entre parentesis sera un grupo [20:31:09] Para no hacer el replace luego [20:31:11] vale [20:31:34] claro, mas sencillo [20:31:46] ademas que no se necesita el ignorecase en esa plantilla [20:31:57] si [20:32:30] Lo tendré en cuenta, el problema es que esa sección entera se va jaja [20:33:21] la idea es tomar todas las plantillas de la página, buscar una con el título de "usuario:grillitus/archivar" y sacar todos los parámetros [20:33:33] vale, luego mirare como tratas el caso de Template [20:33:38] en base a esos hacer el archivado [20:34:05] ves el código o lo has compliado? [20:34:41] solo lo veo [20:34:52] ah, ok [20:36:54] no tengo programa para vb dese hace... el siglo pasado ! [20:38:26] otra cosa mas, cuando haces las pruebas de configuracion [20:38:28] If String.IsNullOrEmpty(GrillitusCfg(0)) Then [20:38:57] si no hay dias, se puede usar un valor por defecto (7 dias) [20:39:48] y si no hay ruta, se puede usar una ruta por defecto (Usuario discusión:NOMBRE/Archivo) [20:45:34] Hmm, sería bueno. Aunque se desviaría un poco del original. Por ejemplo si ingresan un parametro mal, el bot no lo reconocerá y archivará por defecto. Podría ser algo un poco catastrófico en hilos delicados que se mantienen, digamos 7 dias. [20:46:00] Y vb.net no es obsoleto, auqnue vb si [20:46:05] aunque* [20:46:24] y basic, pues se sigue usando pero en el ámbito industrial [20:46:46] lo de la ruta es lo unico que puede ser "problematico", lo de los dias es una politica [20:46:54] Me ha todaco ver controladores programables en BASIC (con los números de línea y todo) jaja. [20:47:14] Vale, entonces lo anoto. Pero eso va a la rama Dev [20:47:49] en Master está lo "estable" (aunque si hay un bug importante lo corrijo) [20:48:14] [quarter] [20:48:15] XD [20:48:20] exacto [20:48:32] :) [20:49:28] y lo de [20:49:29] If GrillitusCfg(0).Contains("DD") Then [20:49:36] tambien deberias corregirlo en el master [20:50:02] en teoria puedo usar cualquier combinacion de esos campos [20:51:32] Cuando genera la caja, dices? [20:51:54] cada vez que genera el nombre de archivo [20:52:19] El nombre de archivo se genera n la 136-144 [20:52:42] Fíjarse que en ingún otro lado se asigna un valor a ArchivePageTitle [20:52:43] si, pero en la caja estas asumiendo el nombre en el enlace [20:52:51] claro, entonces en la caja [20:53:07] Lo de la caja es el nombre, el enlace sigue siendo la variable [20:53:20] en ambos casos [20:53:37] cuando creas ArchivePageTitle [20:53:58] no tienes que comparar las opciones para ver si puso o no puso SEM o DD [20:54:30] tan solo reemplazas ArchivePageTitle = ArchivePageTitle.Replace(COMANDO, VALOR) [20:54:40] ya entiendo [20:54:44] .Replace(COMANDO2, VALOR2) .Replace(COMANDO3, VALOR3) [20:55:18] al final yo puedo poner mis archivos en... "Usuario discusión:Leoncastro/Mi caja del desastre DD AAAA SEM MM" [20:55:33] no me imagino porqué pero vale [20:55:41] Auqnue el no0mbre del enlae es mas complejo [20:55:44] enlace* [20:55:54] no tan complejo [20:55:56] Sería solo archivo de (fecha) y nada más entonces [20:56:06] deberia ser "Mi caja del desastre DD AAAA SEM MM" [20:57:05] osea "[[Usuario discusion:NombreUsuario/NOMBREARCHIVO | NOMBREARCHIVO ]] [20:57:05] 10[2] 04https://es.wikipedia.org/wiki/Usuario_discusion:NombreUsuario/NOMBREARCHIVO [20:57:29] pero si está configurado para archivar por año, igual crearía el nombre del enlace de la caja con los otros parámetros (dia mes semestre) por ejemplo [20:58:37] Ln 133: «If Not ArchivePageTitle.Contains("SEM") Then», no tiene sentido [20:59:24] "Mi caja del desastre DD AAAA SEM MM" no sabes si archiva por mes, por dia, por año o por semestre [20:59:38] va a generar un archivo diferente cada vez [21:00:15] Antes de eso verifica si la caja contiene el enlace al archivo [21:00:22] si no lo contiene crea el enlace} [21:01:01] pero ahora que me fijo [21:01:21] No tiene porque ser .tolower [21:03:11] reviso como solucionar el tema de el nombre del enlace [21:03:13] me tengo que ir [21:03:52] ok, creo que ya te di suficiente trabajo [21:03:58] :) [21:03:59] mejor [21:04:14] La idea es que quede más aceptable [21:04:32] que conste que cuando termines te voy a proponer alguna cosa mas [21:04:34] Por eso quería abrirlo, asi saber que mejorar y de paso aprender más. [21:04:37] Pues perfecto [21:05:11] https://es.wikipedia.org/w/index.php?title=Wikipedia%3ACartelera_de_acontecimientos&type=revision&diff=102468693&oldid=102091168 [21:05:12] Lo de hacerlo comunitario va en serio. Lo ideal sería ir añadiendo funciones comunitarias. [21:05:51] y me voy [21:05:54] nos leemos