Tasker Para hablar de todo lo relacionado con la aplicación tasker

Respuesta
 
Herramientas
  #1  
Viejo 18/01/14, 21:56:34
Array

[xs_avatar]
BlackBlex BlackBlex no está en línea
Miembro del foro
 
Fecha de registro: ago 2013
Mensajes: 57
Modelo de smartphone: Moto G 2015
Tu operador: Otra
Mover imagenes/videos de whatsapp a otra carpeta y ordenarlos

Basicamente hace eso, mueve las imagenes y videos del whatsapp a una carpeta.

Proceso tasker:
A1: Listar archivos [ Dir:WhatsApp/Media/WhatsApp Images/ Coincidir: Incluir Archivos Ocultos:Encendido Variable:%fileswhatsappimages ]
A2: Listar archivos [ Dir:WhatsApp/Media/WhatsApp Video/ Coincidir: Incluir Archivos Ocultos:Encendido Variable:%fileswhatsappvideos ]
A3: JavaScriptlet [ Código:var countfilesimages = fileswhatsappimages.length; var countfilesvideos = fileswhatsappvideos.length; Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ]
A4: For [ Variable:%fileswhatsappimagess Ítems:%fileswhatsappimages() ] Si (if) [ %countfilesimages > 1 ]
A5: Prueba [ Tipo:File Type Datos:%fileswhatsappimagess Almacenar Resultado en:%isfileimage ]
A6: Mover [ Desde:%fileswhatsappimagess A: DCIM/Whatsapp/WhatsApp Images Usar Root:Apagado ] Si (if) [ %isfileimage ~ file ]
A7: End For
A8: Esperar [ MS:0 Segundos:5 Minutos:0 Horas:0 Días:0 ]
A9: For [ Variable:%fileswhatsappvideos Ítems:%fileswhatsappvideos() ] Si (if) [ %countfilesvideos > 1 ]
A10: Prueba [ Tipo:File Type Datos:%fileswhatsappvideos Almacenar Resultado en:%isfilevideo ]
A11: Mover [ Desde:%fileswhatsappvideos A: DCIM/Whatsapp/WhatsApp Video Usar Root:Apagado ] Si (if) [ %isfilevideo ~ file ]
A12: End For

Y bueno no me quize quedar ahí, y complemente con que se ordenen por año y mes algo así:

Carpeta:2013
SubCarpeta:Enero
SubCarpeta:Mayo

Carpeta:2014
SubCarpeta:Septiembre
SubCarpeta:Noviembre

Proceso tasker:
A1: Listar archivos [ Dir: DCIM/Whatsapp/WhatsApp Images/ Coincidir: Incluir Archivos Ocultos:Encendido Variable:%fileswhatsappimages ]
A2: JavaScriptlet [ Código:var countfilesimages = fileswhatsappimages.length; var countfilesvideos = fileswhatsappvideos.length; Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ]
A3: For [ Variable:%fileswhatsappimagess Ítems:%fileswhatsappimages() ] Si (if) [ %countfilesimages > 1 ]
A4: Prueba [ Tipo:File Type Datos:%fileswhatsappimagess Almacenar Resultado en:%isfileimage ]
A5: Si (if) [ %isfileimage ~ file ]
A6: Separar variable [ Nombre:%fileswhatsappimagess Separador:/ Eliminar base:Apagado ]
A7: Establecer variable [ Nombre:%fileswhatsappimagesstemp A:%fileswhatsappimagess(<) Calcular:Apagado Añadir:Apagado ]
A8: Separar variable [ Nombre:%fileswhatsappimagesstemp Separador:- Eliminar base:Apagado ]
A9: Sección de Variable [ Nombre:%fileswhatsappimagesstemp2 Desde:1 Longitud:4 Encajar:Apagado Almacenar Resultado en:%fileswhatsappimagesstempyear ]
A10: Sección de Variable [ Nombre:%fileswhatsappimagesstemp2 Desde:5 Longitud:2 Encajar:Apagado Almacenar Resultado en:%fileswhatsappimagesstempmonth ]
A11: Sección de Variable [ Nombre:%fileswhatsappimagesstemp2 Desde:7 Longitud:2 Encajar:Apagado Almacenar Resultado en:%fileswhatsappimagesstempday ]
A12: Realizar tarea [ Nombre:Meses Parar:Apagado Prioridad:10 Parámetro 1 (%par1):%fileswhatsappimagesstempmonth Parámetro 2 (%par2): Devolver Valor de Variable:%fileswhatsappimagesstempmonth ]
A13: Prueba [ Tipo:File Type Datos: DCIM/Whatsapp/WhatsApp Images/%fileswhatsappimagesstempyear Almacenar Resultado en:%existdiryear Continuar Tarea Tras Error:Encendido ]
A14: Prueba [ Tipo:File Type Datos: DCIM/Whatsapp/WhatsApp Images/%fileswhatsappimagesstempyear/%fileswhatsappimagesstempmonth Almacenar Resultado en:%existdirmonth Continuar Tarea Tras Error:Encendido ]
A15: Si (if) [ %existdiryear !~ dir ]
A16: Crear directorio [ Dir: DCIM/Whatsapp/WhatsApp Images/%fileswhatsappimagesstempyear Crear todos:Apagado Usar Root:Apagado ] Si (if) [ %isfileimage ~ file ]
A17: Fin si (End if)
A18: Si (if) [ %existdirmonth !~ dir ]
A19: Crear directorio [ Dir: DCIM/Whatsapp/WhatsApp Images/%fileswhatsappimagesstempyear/%fileswhatsappimagesstempmonth Crear todos:Apagado Usar Root:Apagado ] Si (if) [ %isfileimage ~ file ]
A20: Fin si (End if)
A21: Mover [ Desde:%fileswhatsappimagess A: DCIM/Whatsapp/WhatsApp Images/%fileswhatsappimagesstempyear/%fileswhatsappimagesstempmonth/ Usar Root:Apagado ]
A22: Fin si (End if)
A23: End For

Seria lo mismo para los videos solo que cambiando las rutas y variables.

Y la tarea mes (que se usa en el de ordenar)
A1: Array Push [ Nombre:%month Posición:1 Valor:Enero Rellenar Espacios:Apagado ]
A2: Array Push [ Nombre:%month Posición:2 Valor:Febrero Rellenar Espacios:Apagado ]
A3: Array Push [ Nombre:%month Posición:3 Valor:Marzo Rellenar Espacios:Apagado ]
A4: Array Push [ Nombre:%month Posición:4 Valor:Abril Rellenar Espacios:Apagado ]
A5: Array Push [ Nombre:%month Posición:5 Valor:Mayo Rellenar Espacios:Apagado ]
A6: Array Push [ Nombre:%month Posición:6 Valor:Junio Rellenar Espacios:Apagado ]
A7: Array Push [ Nombre:%month Posición:7 Valor:Julio Rellenar Espacios:Apagado ]
A8: Array Push [ Nombre:%month Posición:8 Valor:Agosto Rellenar Espacios:Apagado ]
A9: Array Push [ Nombre:%month Posición:9 Valor:Septiembre Rellenar Espacios:Apagado ]
A10: Array Push [ Nombre:%month Posición:10 Valor:Octubre Rellenar Espacios:Apagado ]
A11: Array Push [ Nombre:%month Posición:11 Valor:Noviembre Rellenar Espacios:Apagado ]
A12: Array Push [ Nombre:%month Posición:12 Valor: Diciembre Rellenar Espacios:Apagado
A13: Devolver [ Valor:%month(%par1) Parar:Encendido ]

Y basicamente es todo.

Solo una duda ¿Se podria mejorar el codigo? (Optimizarlo)

Última edición por BlackBlex Día 19/01/14 a las 04:15:42. Razón: Corrigo pasando variables globales a locales.
Responder Con Cita
Los siguientes 3 usuarios han agradecido a BlackBlex su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 19/01/14, 01:02:49
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por BlackBlex Ver Mensaje
Mover imagenes/videos de whatsapp a otra carpeta y ordenarlos
Eso es muy interesante, gracias. Hay algunas cosas que no entiendo bien...

En las dos primeras acciones obtienes la lista de los archivos de las dos clases: imágenes y vídeos respectivamente.
A continuación usas una acción JavaScriptlet (no entiendo nada de JS) que parece servir para contar los archivos de cada clase.
Y luego haces un bucle FOR para mover cada archivo, pero eso solo lo haces si el contador de archivos es superior a 1. ¿Qué pasa cuando tienes UN único archivo? ¿No te interesa moverlo? ¿Por qué?

En la segunda tarea no entiendo para qué sirve la acción A11. Ahí se crea la variable %filesWhatsappImagessTempDay pero luego parece que no se utiliza en ningún lado. ¿?

En la tercera tarea (Meses) también hay cosas que me sorprenden. La primera vez que se ejecuta la tarea, las 12 primeras acciones rellenan todas las variables:
- %Month(1) = Enero
- %Month(2) = Febero
etc.
Puesto que son variables globales, permanecen tras la ejecución. Y por eso, en las siguientes ejecuciones, esas 12 acciones repiten lo mismo, sin añadir nada nuevo ni modificar nada. Por tanto, creo que sería más eficiente que la tarea saltara directamente a la acción 13 si se cumple la condición %Month(1) ~ Enero (u otra condición que compruebe alguna de esas variables)
Por otro lado, si esa subtarea Meses ya se ha ejecuado alguna vez, desde la propia tarea principal se podría utilizar directamente el valor %Month(%filesWhatsappImagessTempMonth), sin necesiad de volver a ejecutar la subtarea.

Por contra, el esquema con el que has planteado esa subtarea Meses puede tener su lógica si utilizara variables locales (para no acumular variables globales innecesarias); o sea que puede ser un buen planteamiento si cambias todas las variables %Month a minúsculas.

En las otras dos tareas también hay bastantes variables globales que me parecen prescindibles:
%filesWhatsappImagess
%isFileImage
%filesWhatsappVideoss
%isFileVideo
%filesWhatsappImagessTemp
%filesWhatsappImagessTempYear
%filesWhatsappImagessTempMonth
%filesWhatsappImagessTempDay
%existDirYear
%existDirMonth
Creo que todo funcionaría igual si fueran variables locales y así no se acumularían variables permanentes innecesarias.

Para terminar no nos has dicho nada sobre el perfil/contexto que ejecuta estas tareas. ¿Con qué frecuencia se ejecutan? ¿Una vez al día? ¿Al cerrar Whatsapp? ¿Tras recibir cada mensaje? ¿Con un widget?
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 19/01/14, 03:38:13
Array

[xs_avatar]
BlackBlex BlackBlex no está en línea
Miembro del foro
 
Fecha de registro: ago 2013
Mensajes: 57
Modelo de smartphone: Moto G 2015
Tu operador: Otra
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Eso es muy interesante, gracias. Hay algunas cosas que no entiendo bien...

En las dos primeras acciones obtienes la lista de los archivos de las dos clases: imágenes y vídeos respectivamente.
A continuación usas una acción JavaScriptlet (no entiendo nada de JS) que parece servir para contar los archivos de cada clase.
Y luego haces un bucle FOR para mover cada archivo, pero eso solo lo haces si el contador de archivos es superior a 1. ¿Qué pasa cuando tienes UN único archivo? ¿No te interesa moverlo? ¿Por qué?
El único archivo en mi caso seria una carpeta llamada send, y es por eso que no la cuento, ya que por el momento no tengo interes en que se guarde

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
En la segunda tarea no entiendo para qué sirve la acción A11. Ahí se crea la variable %filesWhatsappImagessTempDay pero luego parece que no se utiliza en ningún lado. ¿?
En efectivo, no se usa la variable, simplemente la creo por si en un futuro se me meta la loca idea de ordenarlo por día XD.

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
En la tercera tarea (Meses) también hay cosas que me sorprenden. La primera vez que se ejecuta la tarea, las 12 primeras acciones rellenan todas las variables:
- %Month(1) = Enero
- %Month(2) = Febero
etc.
Puesto que son variables globales, permanecen tras la ejecución. Y por eso, en las siguientes ejecuciones, esas 12 acciones repiten lo mismo, sin añadir nada nuevo ni modificar nada. Por tanto, creo que sería más eficiente que la tarea saltara directamente a la acción 13 si se cumple la condición %Month(1) ~ Enero (u otra condición que compruebe alguna de esas variables)
Por otro lado, si esa subtarea Meses ya se ha ejecuado alguna vez, desde la propia tarea principal se podría utilizar directamente el valor %Month(%filesWhatsappImagessTempMonth), sin necesiad de volver a ejecutar la subtarea.
Bueno para serte sincero nunca me fije como tasker maneja las variables, y pues me pase por alto, que en ese caso Tasker las maneja para globales.

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Por contra, el esquema con el que has planteado esa subtarea Meses puede tener su lógica si utilizara variables locales (para no acumular variables globales innecesarias); o sea que puede ser un buen planteamiento si cambias todas las variables %Month a minúsculas.
Creo que optare por eso cambiarlo a minusculas la variable ya que no tengo interes de que guarde la variable %month


 Cita: Originalmente Escrito por Caravantes Ver Mensaje
En las otras dos tareas también hay bastantes variables globales que me parecen prescindibles:
%filesWhatsappImagess
%isFileImage
%filesWhatsappVideoss
%isFileVideo
%filesWhatsappImagessTemp
%filesWhatsappImagessTempYear
%filesWhatsappImagessTempMonth
%filesWhatsappImagessTempDay
%existDirYear
%existDirMonth
Creo que todo funcionaría igual si fueran variables locales y así no se acumularían variables permanentes innecesarias.
Tienes razón, la verdad desconocia que así tomaba las variables Tasker, siempre estaba acostumbrado a usar camel case (no se si lo haz escuchado) al escribir las variables, lo corregire.

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Para terminar no nos has dicho nada sobre el perfil/contexto que ejecuta estas tareas. ¿Con qué frecuencia se ejecutan? ¿Una vez al día? ¿Al cerrar Whatsapp? ¿Tras recibir cada mensaje? ¿Con un widget?
Perdon se me olvido comentarlo, el perfil lo puse para que se ejecute una vez al día a las 4:00 de la mañana.

Gracias por las observaciones y las correciones, actualizare el tema.
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 09:32:43 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /