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

Respuesta
 
Herramientas
  #1  
Viejo 13/06/13, 03:20:39
Array

[xs_avatar]
ATaskREADOS ATaskREADOS no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Mensajes: 180
Tu operador: Otra

Tasker para principiantes. Lección 4. El procesamiento de datos en variables

Con autorización expresa del autor, este artículo es una traducción del original ubicado en
http://www.pocketables.com/2012/09/b...rocessing.html
Beguinners guide to Tasker, by Andreas Ødegård
Original Copyright @ 2006-2012 CrowdGather. All rights reserved
Tasker para principiantes. Lección 4: El procesamiento de datos en variables.

a01-tasker-data-processing-608x323.jpg

Una vez vistos los conceptos básicos, las variables en general y las escenas ( http://www.htcmania.com/showthread.php?p=8821039 ), es el momento de profundizar en algo un poco más específico: Procesamiento de datos utilizando variables. Es más bien una característica implícita de los temas anteriores, pero también es (en mi opinión) una de las características más poderosas de Tasker.

¿Procesamiento de datos en variables?

En cierto modo estoy inventando esta expresión, pero es un buen término para referirnos a este aspecto de Tasker. Mediante el procesamiento de datos en variables me refiero a cómo se puede trabajar con los datos almacenados en las variables, extraer información de ello, creando sus propios contextos, y así sucesivamente y así sucesivamente. En mi Tasker tengo varios perfiles y tareas que utilizan esta característica, y algunos de ellos han sido publicados antes. El locutor de eventos del calendario y el sistema de anuncios meteorológicos son ejemplos de procesamiento de datos variables. Se trata de tomar algunos datos -texto, en otras palabras- y trabajar con ellos hasta que usted consigue lo que necesita.

Fuentes de datos

Para entender realmente el poder de procesamiento de datos variables primero tiene que darse cuenta de cuántas posibles fuentes de datos hay por ahí. Más o menos cualquier cosa que se almacena en forma de texto se puede utilizar en Tasker, si se sabe manejar. Son fuentes potenciales de datos las páginas web, los datos del calendario, los documentos de texto, etc. Si ve algún texto, lo más probable es que pueda utilizarlo en Tasker, es así de simple. Los datos meteorológicos, noticias locales, fases lunares, horóscopos, artículos, lo que sea. ¿Quiere crear un perfil que se active cuando su horóscopo cite la palabra dinero? No hay problema.

También es importante entender la diferencia entre lo que ve y lo que un ordenador ve. Una página web es vista por el ordenador como texto puro, una mezcla de referencias a imágenes, textos, normas sobre cómo diseñar la página, etc. En la mayoría de navegadores, pulsar CTRL+U nos lleva al “código fuente” de la página, lo que mostrará lo que el ordenador ve: la página web en forma de texto puro. El caos de texto que te saluda cuando nos fijamos en la fuente puede ser aterrador al principio, pero como se verá más abajo, también puede ser de gran utilidad.

La lectura de datos en variables

La primera parte de cualquier sistema basado en fuentes de datos externas es poner los datos en una variable, para que podamos trabajar con ella. Hay muchas maneras de hacer esto, pero algunas de las acciones más relevantes son Leer-archivo, HTTP-Get, Captar-voz y Consulta-de-variable. Sin embargo, en los ejemplos nos centraremos en los datos recopilados con HTTP-Get, ya que es el más difícil de trabajar, y el más poderoso.
  • Leer-archivo lee un archivo almacenado en la memoria interna y coloca su texto en una variable.
  • HTTP-Get se utiliza para obtener (el texto de origen de) una página web y colocar su texto en la variable %HTTPD.
  • Captar-voz se usa para escuchar para la entrada de voz, que luego se convierte en texto y se almacena en la variable %VOZ. Esta es la base de un asistente de voz casero como mi Nelly.
  • Consulta-de-variable muestra un cuadro de diálogo pidiendo un valor variable. Excelente para cosas como entradas rápidas para la lista de tareas pendientes, tareas relacionadas con contabilidad, archivo, etc.
HTTP Get

HTTP Get (que se encuentra en la categoría de acciones de Red) es quizás la acción de recogida de datos más versátil, ya que le permite cargar páginas web en variables. Pero tiene sus peculiaridades. En teoría, se carga el contenido de la página web en la variable incorporada (interna) %HTTPD. Sin embargo, en algunos dispositivos, como el mío, %HTTPD simplemente no contiene los datos correctos (o cualquier otro dato) después de usar HTTP Get. En estos casos, una solución excelente es usar HTTP Get con la opción de guardar el resultado en un Archivo-de-salida, seguida de otra acción Leer-archivo que pase el texto a una variable. Esto se verá así en varios ejemplos a continuación, aunque debo señalar que la forma correcta de hacer las cosas (cuando funciona bien) es el uso simple de HTTP Get para llenar directamente la variable %HTTPD. Por otra parte, para trabajar libremente con los datos, normalmente necesitaremos tenerlos en variables de usuario, lo que significa tener que copiar el contenido de %HTTPD a otra variable, y eso también son dos acciones, igual que si utilizamos HTTP Get y luego Leer-archivo.

En la pantalla de configuración de HTTP-Get, verá varios campos, los dos primeros son del servidor: Puerto y Ruta. Como regla general, en la casilla del Puerto pondremos el dominio (como por ejemplo .COM) y cualquier otra cosa que le preceda; y el resto en la casilla de Ruta. Por ejemplo, la URL
http://www.pocketables.com2012/09/beginners-guide-to-tasker-part-3-scenes.html
Se dividiría en estos dos campos:
Servidor: Puerto: http://www.pocketables.com

Ruta de acceso: 2012/09/beginners-guide-to-tasker-part-3-scenes.html
En teoría, tras ejecutar la acción, el contenido de esa URL debe quedar en %HTTPD. Si eso no ocurre, utilice el campo Archivo-de-salida para guardar el texto en un archivo (por ejemplo pocketables.txt) y luego use la acción Leer-archivo para obtener la información de ese archivo.

Herramientas de procesamiento de datos

Una vez que tenemos los datos en una variable, comenzaremos con el trabajo para utilizarlos. A menudo, especialmente si carga las páginas web enteras en una variable, la variable se convierte en un barullo de texto. Siempre es una buena idea hacer estas configuraciones de Tasker delante de un ordenador, de modo que usted pueda tener el texto completo delante. Si está trabajando con una página web, por ejemplo, es buena idea tener el código fuente (CTRL+U) de la página a la vista, para obtener una mejor perspectiva de lo que hay en la variable de Tasker. Vas a verme hacer esto en el vídeo del ejemplo 2.

A continuación voy a explicar algunas de las herramientas más comunes que se utilizan trabajando con datos. Todas son acciones que manipulan el contenido de una variable, y como tales, se encuentran en la categoría de variable. No voy a describir todas las posibilidades, pero sí las más importantes.

Separar-variable
a02-variablesplit.jpg
Felicidades, usted acaba de conocer la acción más importante que existe para este tipo de configuración de Tasker. Separar-Variable bien podría llamarse Rebanar-variable o Despiezar-variable, porque lo que hace es que separa el contenido de una variable en partes más pequeñas. Cuenta con dos campos de configuración relativamente simples: Nombre y Separador. Nombre es el nombre de la variable que desea cortar en trozos, y Separador es el carácter o expresión que se usa como referencia para dividir el contenido de la variable.

Por ejemplo, digamos que usted tiene una variable %Aficiones que contiene el texto "fútbol,hockey,natación".

En ese caso, usar una coma (,) como separador, hará que la "motosierra" se dirija a todas las comas y cortará el texto en esos puntos. Los separadores se destruyen en el proceso. Esto crea nuevas variables derivadas de la original y que están numeradas, conteniendo cada una un trozo del texto inicial. En el caso del ejemplo, se llega a las siguientes variables:
%Aficiones1: fútbol
%Aficiones2: hockey
%Aficiones3: natación
Usted acaba de utilizar las comas como puntos para separar una sola variable en pequeñas partes individuales. Este método es el alfa y el omega del procesamiento de datos en variables. Al elegir los separadores correctos puedes cortar variables enormes que contienen las páginas web enteras, obteniendo trozos más pequeños y manejables que contienen sólo la información que necesitamos. Puede separar una página web meteorológica para obtener solo el pronóstico del tiempo, o separar un sitio de noticias para usar los titulares.

Aquí es donde resulta útil todo el texto "raro" que hay en una página web. Con mucha frecuencia podemos usar como separadores las etiquetas que se utilizan para asignar formato a partes específicas de una página web, lo que nos permite coger de la página web las partes que nos interesan. Encontrar un buen separador es algo fácil si se tiene la fuente en un ordenador junto con CTRL+F (buscar texto en la página).

Como ejemplo, echemos un vistazo a pocketables.com. Supongamos que queremos crear una lista de los artículos que aparecen en su página principal, con los títulos y sus enlaces. Cargamos la página en la variable %Pocketables. Poniendo esa fuente en un navegador (que es también lo que hay en %Pocketables), vemos cómo cada artículo aparece en el código fuente:
a03-pcom1.jpg
Las etiquetas (como <h3>) que hay en ese texto son las que le dicen al navegador cómo mostrar la página normalmente. Tasker ve este código cuando se carga una página web en una variable como esta. Todo lo cual es una ventaja, ya que podemos utilizar estas etiquetas como separadores.

En este caso, vemos que el enlace a cada artículo está inmediatamente precedido por <h3><a href=". Pulsando CTRL+F en un navegador de ordenador, y usando la búsqueda de <h3><a href=" en el código fuente, veremos que hay sólo 10 apariciones, lo que significa que sólo se usa antes de cada uno de los diez artículos en la página principal. Si hubiera 20, se puede suponer que fue utilizada dos veces para cada artículo. Si hubiera 175, podríamos suponer que fue utilizado con otro criterio. Queremos que el separador sea lo más exclusivo posible, y en este caso, <h3><a href=" nos daría 11 variables "secundarias" (la primera sub-variable contendría lo que hay antes de la primera aparición del separador, y por lo tanto el número de variables secundarias será uno más que el número de apariciones del separador).

Así, la variable %Pocketables4 contiene todo el texto entre las apariciones <h3><a href=" número 4 y <h3><a href=" número 5. Como se puede ver en la imagen de arriba, esto sigue siendo un texto mucho mayor de lo que queremos:
a04-pcom2.jpg
Sin embargo, como se puede ver, la dirección URL es seguida inmediatamente por " title =". Esto significa que... si cada variable hija se divide de nuevo utilizando este separador, la primera de las variables hija de segunda generación contendrá la URL, y sólo la URL. Un ejemplo de este tipo de variable sería %Pocketables41. Esta no es la variable hija número 41, sino más bien la primera variable hija de la variable %Pocketables4.

%Pocketables42 contendrá entonces todo lo que hay después de " title =" hasta el final de la original %Pocketables4. Esta variable comienza con el título del artículo, y luego añade un montón de "basura" final. Usando el mismo método que hemos hecho para obtener la URL, separamos %Pocketables42 utilizando el separador "> , que es el texto que va a continuación del título. Estamos entonces a la izquierda con un hijo de tercera generación, %Pocketables421, que contiene sólo el título del artículo.

En resumen, he aquí un fragmento de código con las partes pertinentes resaltados. Los tres fragmentos de texto rojo son los distintos separadores usados, el azul es el hijo de segunda generación (%Pocketables41 en el ejemplo), y púrpura/rosa es el hijo de tercera generación (%Pocketables421). El texto al final es sólo una versión abreviada de toda la basura que hemos cortado.
<h3><a href="http://www.pocketables.com/2012/09/tv-show-favs-for-android-hits-version-3-0.html" title="TV Show Favs para Android accesos versión 3.0">TV Show Favs para Android accesos versión 3.0</a></h3>
Al utilizar este método de división simple, se van cortando los datos en los trozos adecuados y se obtienen variables que se pueden utilizar directamente en otra parte. Por ejemplo, podría tener una acción Abrir-URL con %Pocketables41 en el campo de dirección URL y una acción Decir con %Pocketables421 en el campo de texto: de esa forma Tasker abre una URL al tiempo que vocaliza el título de la página que está abriendo.

En este caso, usted tendría que hacer este proceso de división 10 veces con el fin de obtener separadamente la información de los 10 artículos referenciados en la página. Esto supone una gran cantidad de acciones y una gran cantidad de variables, y conviene recordar que cada división crea variables que usted no necesita. Por lo tanto, es aconsejable utilizar las variables locales (letras minúsculas) para este tipo de trabajo, para no abrumar innecesariamente la lista de variables de Tasker. He utilizado variables globales en el ejemplo, que podría ser adecuado si es necesario usar esas variables en otras tareas, pero hay que ser conscientes de los efectos secundarios y tomar una decisión adecuada.

Debo señalar que es posible automatizar el proceso de división de múltiples variables múltiples veces, utilizando bucles que usen una acción para cada variable específica. Esto se hace mediante el uso de matrices, que son esencialmente variables básicas con variables hijas. La variable %Pocketables anterior es una matriz que contiene %Pocketables1, %Pocketables2, y así sucesivamente. Tras eso, es posible especificar un conjunto de acciones que se ejecutarán para cada variable de la matriz, como por ejemplo, todos los hijos de %Pocketables. Sin embargo, no voy a entrar ahora en el uso detallado de matrices, que podría complicar más un asunto que ya es complejo. Mi consejo es seguir con el "método manual" hasta que se haya dominado. Además, a menos que usted está usando una exagerada cantidad de variables, el método manual a menudo puede ser más fácil para entender lo que se está haciendo.

También debe tenerse en cuenta que si se divide en más de 10 partes, las variables de segunda generación comenzarán a tener el mismo nombre que las variables de la primera generación. Por ejemplo, %Pocketables11 puede ser el hijo 11 (undécimo) de %Pocketables o puede ser el primer hijo de %Pocketables1. Si la variable %Pocketables11 de la primera generación es importante, usted no querrá que su valor sea sobrescrito al crear la variable de segunda generación %Pocketables11.

A menudo es complejo hacer un seguimiento de todas las variables hijo, por lo que se debe jugar cuidadosamente con los separadores utilizados para las divisiones. A veces es más prudente separar varias veces con el fin de crear variables hijas bien numeradas en vez de tratar de obtener el resultado en pocas divisiones. Así, en el ejemplo anterior, para obtener el título se podría haber utilizado el separador " title=" , que precede directamente al título que buscamos. Sin embargo (en el momento de escribir estas líneas) ese separador aparece 99 veces lo cual es un problema porque genera 100 variables hijas de primera generación. Esto no sólo es más difícil de tratar que un esquema de nombres estático, además resulta que algunos de los separadores comunes en las páginas web a menudo varían en número según la página se actualiza, lo que complica mucho más el asunto. El esquema de nomenclatura creado en el ejemplo no tiene este problema.

Como he dicho, mientras se está trabajando con esto, es una buena idea tener abierta en el ordenador una versión del texto que se está dividiendo. Eso, combinado con CTRL+F para buscar texto hace que sea mucho más fácil "cortar por los lugares correctos".

Sección-de-variable
a05-variablesection.jpg
La acción Separar-variable puede ser la herramienta más importante para este tipo de trabajo, pero no es la única. Otra gran ayuda es la acción Sección-de-variable, que está diseñada para obtener una parte específica de una variable y tirar el resto por la ventana virtual. Por desgracia no funciona en base a separadores, sino en números de caracteres.

La pantalla de configuración de Sección-de-variable dispone de cinco opciones a considerar. La primera es el Nombre, que es simplemente el nombre de la variable que desea seccionar. El segundo es Desde, que indica a partir de cuál número de carácter hay que comenzar a extraer el resultado; por ejemplo, si desea omitir las tres primeras letras de una variable, hay que poner 4 aquí. La Longitud establece el número de caracteres que se van a incluir en el corte; por ejemplo, elegir 7 caracteres permitiría extraer la palabra "manzana" completa. La opción Encajar hace que la longitud del texto seleccionado se reduzca automáticamente en el caso de que se acabe el contenido de la variable antes de lo previsto, como por ejemplo si se tratan de extraer diez caracteres cuando la variable solo contiene cinco; lo cual es muy conveniente si no sabemos de antemano la longitud del texto inicial. Por último, Almacenar-resultado-en permite guardar el resultado en una variable diferente a la que tenía el texto original.

Bien pero ¿para qué sirve esta función? Es excelente para eliminar caracteres innecesarios que están al principio de las variables. A menudo esto ocurre porque resulta imposible separar las variables por la razón de que esos textos son distintos en cada aparición, o bien porque habría que usar un separador de aparición tan frecuente que también fragmentaría datos que no queremos separar.

Por ejemplo, digamos que usted desea obtener el tiempo (horas y minutos) de una variable cuyo contenido sea de este tipo:
13:30:52.000-04:00
Claro, usted podría separar utilizando los dos puntos como separador, pero eso también separa los minutos de las horas. Usted podría terminar con las variables en forma de %tiempoparcial1, %tiempoparcial2 y %tiempoparcial3, que contendrían respectivamente 13 , 30 y 52.000-04, respectivamente. Luego se podría volver a montar el tiempo con una acción Establecer-variable, %tiempoparcialx a %tiempoparcial1:%tiempoparcial2, y así se terminaría con un % tiempoparcialx que contendría 13:30.

O bien se puede usar directamente la acción Sección-de-variable a partir del 1 carácter con una longitud 5 y así se obtiene 13:30 de inmediato.

En muchos casos, la Sección-de-variable es una alternativa a Separar-variable, pero es una alternativa que a menudo le puede ahorrar un montón de trabajo. Debe saber que es otra opción que puede ser muy útil.

Buscar-y-reemplazar
a06-variablesr.jpg
La acción Buscar-y-reemplazar es una característica relativamente nueva, y tengo sentimientos encontrados respecto a ella. En teoría, debería ser muy útil reemplazando fragmentos de variables en diferentes circunstancias. En la práctica, se trata de una característica que francamente todavía está en fase beta.

El primer problema es que no utiliza el sistema estandarizado de Tasker para coincidencia de patrones, sino que utiliza expresiones regulares reales. Así, para utilizar un comodín no hay que poner * , sino .* (hay que añadir un punto justo antes del asterisco). Esto será una complicación grave si está acostumbrado a la coincidencia de patrones para las condiciones Si(If), y no tiene experiencia usando expresiones regulares reales.

[Nota del traductor: he dudado si debía omitir el siguiente párrafo, y finalmente decido mantenerlo en el documento por fidelidad al texto original (escrito en septiembre de 2012) pero en realidad el párrafo ha quedado obsoleto y por eso le he degradado el color. En noviembre de 2012, el desarrollador de Tasker actualizó a la versión 1.3 y ahí resolvió lo que el autor de este documento menciona a continuación como “segundo problema”. Ya no hay tal “segundo problema” ni para esa versión ni para las siguientes]
El segundo problema es que Buscar-y-reemplazar no es compatible con variables. Si usted tiene una variable y dentro de ella pretende buscar las coincidencias con el contenido de otra variable, no funcionará: Tasker no usará el contenido de la segunda variable sino que utilizará directamente su nombre como si se tratase de cualquier otro texto. Según el desarrollador de Tasker esto está en la lista de tareas para arreglar desde hace varios meses, pero todavía no ha sido resuelto.

En pocas palabras, en este momento la acción Buscar-y-reemplazar es como el patito feo de la caja de herramientas de Tasker, y todavía está pendiente de convertirse en un hermoso cisne. Debido a esto, yo no quiero perder mucho tiempo con este asunto, pero te daré un pequeño ejemplo de cómo se puede usar en algunos casos.

En el anterior ejemplo de la página principal de Pocketables, obtuvimos la URL mediante la división en múltiples ocasiones. Usted podría conseguir lo mismo usando Reemplazar Buscar variables y la cadena de búsqueda siguientes:
<h3><a href=".*"
Esta sería la búsqueda de cualquier mención de <h3><a href=", seguido del comodín no-estándar (.*), y terminando con un ". Esto devuelve resultados (variables para cada situación) del tipo siguiente:
<h3><a href="http://www.pocketables.com/2012/09/tv-show-favs-for-android-hits-version-3-0.html"
El comodín equivale aquí a la dirección URL, que hemos "cercado" al colocar un comodín en la cadena entre dos piezas que lo delimitan. Tenemos que usar<h3><a href=" aquí con el fin de capturar las direcciones URL que están a continuación (no todas las URL en el código), y " es necesario para detener la inclusión de absolutamente todo lo que sigue a la URL. Así, nos encontramos con alguna información basura en el comienzo y el final. Podemos usar Sección-de-variable a partir del carácter 1 con una longitud de 13 para deshacerse del principio, pero debido a la longitud variable de la URL, es necesario Buscar-y-reemplazar o bien Separar-variable usando el separador " para deshacerse de él. Por lo tanto, nos quedamos con tres acciones de todos modos, lo que significa que no es infinitamente superior a Separar-variable. Personalmente yo uso Separar-variable casi exclusivamente, porque al menos sé dónde lo tengo en lo que respecta a la sintaxis de coincidencia de patrón y el soporte de variables.

[Este artículo continuará en otro mensaje, en http://www.htcmania.com/showthread.php?p=9099208 ]
__________________
ATaskREADOS somos el equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Para cualquier asunto relacionado con el foro, puedes escribirnos a [email protected]

Última edición por ATaskREADOS Día 30/06/13 a las 23:28:10.
Responder Con Cita
Los siguientes 6 usuarios han agradecido a ATaskREADOS su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 13/06/13, 03:40:45
Array

[xs_avatar]
ATaskREADOS ATaskREADOS no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Mensajes: 180
Tu operador: Otra

Tasker para principiantes. Lección 4: El procesamiento de datos en variables.
[Esto es continuación de otro mensaje previo, en http://www.htcmania.com/showthread.php?p=9099161 ]

Ejemplo 1: Previsión del tiempo

Preparación

Esta es la versión “how-to” (cómo hacerlo) de la tarea que publiqué en este otro artículo ( http://www.pocketables.com/2012/07/tasker-task-that-speaks-the-weather-forecast-download.html ) y que dice el pronóstico del tiempo. Originalmente fue publicado como una tarea lista para ser descargada por cualquiera sin entender cómo trabaja, pero ahora voy a usar este ejemplo para explicar cómo funciona en todo detalle.

Descargue la tarea con el enlace que hay más abajo. Hay dos versiones disponibles, una descarga directa .XML y una versión comprimida ZIP. En algunos dispositivos, puede ir a esa página con el navegador, hacer una pulsación larga en la descarga .XML, seleccionar "guardar enlace", abrirlo una vez descargado y, a continuación, seleccione abrirlo con Tasker. Si eso no funciona, descargue el .zip y descomprímalo de forma manual en la carpeta Tasker/tasks. Los resultantes son idénticos utilizando ambos métodos.



Luego, en Tasker, una pulsación larga en la pestaña de Tareas, y elija Importar. Seleccione la tarea Weather.

Abra la tarea y busque la acción HTTP Get. En el campo Ruta, sustituya el dato YYYYYYY por su ubicación. Esto puede ser un código postal de EE.UU., Estado/Ciudad o País/Ciudad. Ejemplos de ello son 90210, CA/San_Francisco y Norway/Hamar - incluyendo las barras. A continuación, cambie XXXXXXXXX por una clave de API Wunderground. Usted puede obtener una clave de forma gratuita mediante la firma de Wunderground: http://www.wunderground.com/weather/api

Esto no va a funcionar sin la obtención de su propia clave API. Números aleatorios o cualquiera de los ejemplos utilizados aquí no van a servir en la vida real.

Asegúrese de que no hay espacios u otras "irregularidades" al insertar el API. El campo Ruta resultante debe ser algo así:

api123a123b123c/conditions/forecast/qNorway/Hamar.xml

El texto en negrita indica las partes que debe reemplazar.
Por último, entra en la acción Decir, haga clic en la lupa al lado del motor de voz y seleccione un motor de texto a voz que tenga instalado.

Tarea de descarga

b01-weatherxml-175x175.png
Descarga:Weather.tsk.xml

b02-weatherzip-175x175.png
Descarga:Weather.tsk.xml.zip

Explicación

Acciones 1-2:
Los datos del tiempo están disponibles en línea en formato XML, que podemos tener en nuestras manos utilizando http-Get. Como he explicado antes, prefiero hacer HTTP-Get en un archivo local y luego leer en una variable con la acción Leer-archivo en lugar de utilizar la variable %HTTPD generada por HTTP-Get. Tras la acción 2, el resultado es que usted tiene una variable %Weather que contiene todo en el archivo XML.

Acción 3:
Esta es la primera acción Separar-variable. Para entender este punto, usted debe tener el archivo XML abierto en un navegador completo (o editor de texto) con el fin de ser capaz de ver lo que hay en ese archivo. Si al abrir en el navegador aparece un mensaje RSS, pruebe a pulsar CTRL+U (mostrar fuente) en la página.

El separador usado por primera vez aquí es <fcttext><![CDATA[ . Este separador es elegido para llegar lo más cerca posible de la descripción del tiempo, lo que verás si buscamos en el texto de origen. Tenga en cuenta que algunos navegadores "organizan" las etiquetas de tal modo que no será capaz de encontrar este separador específico mediante la búsqueda. Si eso ocurre, busque sólo la primera parte del separador (hasta >), o simplemente vea la siguiente captura de pantalla (haga clic para ampliar la imagen):

Como se puede ver, el primer pronóstico sigue inmediatamente después de este separador. Esto significa que la variable %Weather2 contendrá la previsión y añadirá un montón de texto-basura, mientras que %Weather1 es todo el texto basura previo a la división.

Pero eso no es todo. Puesto que todas las previsiones se "etiquetan" de la misma manera, también se crearán %Weather3, %Weather4 y así sucesivamente. Estos contienen datos del tiempo para períodos futuros, de forma similar a como %Weather2 contiene la previsión del próximo período. Una vez más, %Weather1 es sólo texto basura.

Nota: Si no desea la previsión con el sistema imperial sino con el sistema métrico, utilice el separador <fcttext_metric><![CDATA[ . Esto hará que se usen unidades como kmh en lugar de mph. Usted puede ver la lógica de esto estudiando la captura de pantalla anterior.

Acciones 4-5:
Se trata de dos acciones Separar-variable usando ]]> como separador, una para %Weather2 y otra para %Weather3. Simplemente cortan el texto basura que hay al final de estas variables, dejando en ellas el pronóstico del tiempo y nada más. Esta versión particular de la tarea utiliza la información de pronóstico para los dos próximos períodos, y por eso estamos limpiando %Weather2 y %Weather3, pero no necesitamos limpiar %Weather4 ni otras variables siguientes. Si desea más períodos, sólo tiene que añadir más acciones Separar-variables como éstas para obtener más variables %WeatherX, y utilizar sus primogénitos %WeatherX1 en acciones Decir, al final de la tarea.

Acciones 6-10:
Técnicamente, ya está recibiendo la información del tiempo después de las acciones 4-5. A continuación, tiene %Weather21 y %Weather31 que puede usar como quieras, ya sea en una acción Decir para dar un pronóstico hablado o tal vez para enviar a un widget Minimalistic Text para mostrar en alguna parte. Sin embargo, las acciones 6-10 son para averiguar si la segunda de las dos previsiones futuras es por la noche o por la mañana. Esto es básicamente una característica de lujo que no es estrictamente necesaria, pero la he añadido originalmente para hacer todo más "profesional". Utiliza también Separar-variable, así que voy a explicar cómo funciona.

La acción 6 copia el contenido de %Weather2 en una nueva variable, %Nforecast. Vamos a separar %Weather2 con nuevos separadores, y no queremos sobrescribir las variables hijas ya existentes, por lo que estamos haciendo una copia para evitar este problema.

La acción 7 es Separar-variable para %Nforecast con <title> como el separador. Recuerde que %Weather2% (del que es copia %Nforecast) es ya un hijo, por lo que hay que buscar el separador en una parte ya limitada del documento original. Por lo tanto, sólo hay un <title> en %Nforecast, a pesar de que hay muchos en el texto fuente original. A continuación, para mostrarlo, he marcado de rojo las partes que no están en %Nforecast.
b03-action7.jpg
Esto se traduce en una división de %Nforecast2 que contiene el título del segundo período de pronóstico, así como un cubo de basura al final, tras </title>.
La acción 8 elimina de %Nforecast2 este </title> por división. Esto crea una %Nforecast21, que contiene el título del segundo período de pronóstico.

La acción 9 crea una variable %Nextforecast y lo establece en "tomorrow" (mañana).

La acción 10 sobrescribe la variable creada en acción 9 con el texto " tonight" (esta noche) Si(IF) %Nforecast21 coincide con *night*/*Night*. Esto significa que si el título del segundo período del pronóstico contiene la palabra "night" (noche), el valor de %Nextforecast será " tonight". Si no contiene esa palabra, permanecerá el valor establecido en la acción 9 ("tomorrow").

Al final de estas cinco acciones, tenemos una variable que puede ser "tomorrow" (mañana) o "tonight" (esta noche), dependiendo de si el segundo período de pronóstico es la noche que viene o la siguiente mañana. Si la tarea se ejecuta a primeras horas del día, el primer período de pronóstico será para ese día, y el segundo será para esa noche. Si se ejecuta al atardecer, el primer período de pronóstico será aquella noche, y el segundo a la mañana siguiente. %Nextforecast nos permite saber cuál de los dos tenemos cada vez.

Acción 11:
Esta es la acción Decir que en realidad nos muestra el pronóstico hablado. El texto es:

Weather forecast for today is %Weather21. Weather forecast for %Nextforecast is %Weather31 (El pronóstico del tiempo para hoy es %Weather21. El pronóstico del tiempo para %Nextforecast es %Weather31).

Esta acción Decir contiene tres variables. Dos son los pronósticos del tiempo que recibimos de la línea de XML, mientras que el último, %Nextforecast, cambia el texto para especificar correctamente cual es el periodo al que se refiere el segundo pronóstico.

Como he dicho, sin embargo, usted puede fácilmente saltar las acciones de 6-10. Sólo se pierde la capacidad para especificar correctamente a qué se refiere el segundo pronóstico, lo cual no será importante para algunos - y probablemente no lo será si usted está usando esta información en un widget. Sin embargo, es un buen ejemplo, ya que utiliza los datos de la fuente XML original como una condición Si(If), y no sólo como una fuente de información. Usted también podría usar algo así en un contexto de tipo Valor-de-variable, que tiene un montón de usos en situaciones en las que la variable en cuestión no es sólo de día/noche.

Por supuesto, en este ejemplo también se extrajo la información a usar, el propio pronóstico del tiempo. El método es básicamente el mismo, no importa lo que hagas, sólo tienes que saber dónde cortar un texto de origen para conseguir lo que quieres.

Ejemplo 2: Obtención de noticias locales

Este ejemplo se origina a partir de una solicitud de ayuda en nuestros foros, donde un miembro del foro quería crear una tarea que obtendría sus noticias locales y las leería. La receta es la misma que ya he mostrado, pero ya que esta es una tarea que tenía que crear desde cero, activé el software de captura de pantalla tanto en mi teléfono como en el PC para grabar lo que estaba haciendo mientras narraba al mismo tiempo. Debe ayudar a visualizar este artículo en su totalidad, así como mostrar un truco con el uso de una acción de Flash como una "herramienta de depuración" al crear este tipo de tareas. El vídeo está a continuación.




El sitio web utilizado como una fuente de este tiempo es éste . Echar un vistazo a la fuente reveló que el mejor separador para empezar es <h2>, que no precederá inmediatamente a los titulares buscados, pero tiene la ventaja de no ser poco utilizado en el texto.

Tras la primera división obtenemos la variables %lbnews1, %lbnews2, %lbnews3 y así sucesivamente; %lbnews2 y siguientes contienen los titulares –y también algo de basura. Dividiendo % lbnews2 con el separador "> queda el título al principio de la variable %lbnews22, pero todavía lleva un poco de basura al final. Otra división sobre %lbnews22 usando el separador </a> nos deja con una variable %lbnews221 conteniendo sólo el titular buscado, que puede ser utilizado directamente en acciones dentro de la misma tarea, o transferidos a una variable global para utilizarlo en otros lugares.

Dado que la división inicial creado varios hijos que compartan el mismo formato que %lbnews2, sólo con un artículo diferente, podemos copiar las acciones de división de %lbnews2 y %lbnews22%, y simplemente reemplazar las variables con %lbnews3 y %lbnews32, respectivamente. Tras eso tendremos %lbnews321, que contiene el segundo titular -y nada más. Copiar de nuevo y hacer lo mismo con el número 4 nos daría el titular tercero en %lbnews421, y así sucesivamente para todos los titulares que se deseen. Cada titular estará en su propia variable puede ser utilizado en una acción Decir u otra.

Como he dicho antes, hay maneras de automatizar esto más allá de copiar manualmente las acciones para cada hijo, pero en aras de la simplicidad no voy a entrar en eso.

Tarea de descarga:
Las descargas a continuación contienen la tarea final con 5 variables-titulares completos. Se puede editar para cambiar el número de titulares si fuera necesario. Siga las mismas instrucciones del ejemplo 1 para descargar e importar esto en Tasker. La acción final, que es un decir, tiene que modificarse para especificar un motor de voz diferente si el motor Amy UK Inglés Ivona que estoy usando para mi texto a voz no está instalado.

b04-lpnews-xml-qr-175x175.png
Descarga:Lpnews.tsk.xml

b05-lpnews-zip-qr-175x175.png
Descarga:Lpnews.tsk.xml.zip

Ejemplo 3: Locutor de eventos del calendario de Google

Esta es otra tarea similar. Esta vez obtiene datos de Google Calendar aprovechando la capacidad de Google Calendar para acceder a la agenda con un enlace web, en formato XML. Al igual que con el ejemplo 1, te voy a dar una tarea que se puede descargar e importar y, a continuación, voy a explicar cómo funciona.

Preparación
Descargar la tarea de la parte inferior del artículo. Hay cuatro versiones disponibles: descargas directas XML y versión comprimida para cada una de las dos versiones de tareas básicas, DDMM y MMDD. La versión básica que se necesita depende del formato de fecha que se tenga establecido. Esta tarea sólo funciona con los formatos de fecha DD/MM/AAAA y MM/DD/AAAA. Esto está establecido en la configuración del sistema del dispositivo, en la sección de fecha y hora. Se tiene que utilizar uno de los dos indicados, o no funcionará. Si usted lee 12/07/2012 como 12 de julio, necesita establecer MM/DD/AAAA. Si lo lee como 07 de diciembre, utilice DD/MM/AAAA.

Siga las instrucciones que aparecen en el ejemplo 1 sobre cómo descargar e importar la tarea.



Una vez importado, abra la tarea, vaya a la acción HTTP Get. En el campo Ruta, verá XXXX y YYYY como parte de la ruta:

calendar/feeds/XXXX%40gmail.com/private-YYYY/full?singleevents=true&futureevents=true&orderby=s tarttime&sortorder=ascending&max-results=1

Hay dos cosas que tiene que cambiar. XXXX necesita ser reemplazado con su nombre de usuario de Google, por ejemplo, "fulano" si su correo electrónico de acceso para Google es [email protected]. Si su dirección de correo electrónico de Google no termina en @gmail.com, también hay que cambiar lo que sigue al %40 con lo que sea el dominio de su correo electrónico. Ejemplos:

calendar/feedsfulano%40gmail.com/private-YYYY/full?singleevents=true&futureevents=true&orderby=s tarttime&sortorder=ascending&max-results=1

calendar/feedsfulano%40googlemail.com/private-YYYY/full?singleevents=true&futureevents=true&orderby=s tarttime&sortorder=ascending&max-results=1

YYYY necesita ser reemplazado con una clave de acceso privado para el calendario de Google. Para conseguir esta clave hay que empezar por ir a la página web de Google Calendar. Entre en la configuración, haga clic en la ficha Calendarios y elija el calendario que desea utilizar. En la parte inferior de la pantalla de calendario, haga clic en el botón naranja XML que está junto al rótulo Dirección Privada. Debe obtener un cuadro emergente con una dirección URL similar a la siguiente:

https://www.google.com/calendar/feeds/fulano%40gmail.com/private- 1234567812345678/basic

La clave de acceso es la parte que se destaca en negrita. Debe copiar esto en lugar de YYYY, en el campo Ruta de Tasker. Un ejemplo de una ruta acabada sería:

calendar/feedsfulano%40gmail.com/private-1234567812345678/full?singleevents=true&futureevents=true&orderby=s tarttime&sortorder=ascending&max-results=1

Guardar los cambios realizados en la acción HTTP Get y luego buscar la acción Decir del final. Seleccione un motor de voz que tenga instalado en su dispositivo.

Nota: Calendarios (de Google Calendar) creados recientemente utilizan un formato diferente, con una dirección de correo electrónico [email protected] en la URL. Esta tarea ha sido probada para funcionar con el nuevo formato, pero es necesario especificar tanto a la dirección de correo electrónico como la clave del botón XML mencionado anteriormente.

Tarea de descarga

b06-ddmm-xml-175x175.png
Descargar (DDMM, xml.):CalendarDDMM.tsk.xml

b07-ddmm-zip-175x175.png
Descargar (DDMM, zip.):CalendarDDMM.tsk.xml.zip

b08-mmdd-xml-175x175.png
Descargar (MMDD, xml.):CalendarMMDD.tsk.xml

b09-mmdd-zip-175x175.png
Descargar (MMDD, zip.):CalendarMMDD.tsk.xml.zip

Explicación

Esta tarea se hizo a demanda para un propósito muy específico: Leer el próximo evento del calendario, si es del mismo día. Esto significa que no voy a enumerar varios eventos, aunque se podría utilizar un método similar cambiando la URL de origen.
Acciones 1-2:
Lee los datos en una variable, como antes.

Acción 3:
Copia la variable en otra variable, ya que va a ser su división en múltiples ocasiones. Lo hicimos antes también, con otra variable.

Acción 4:
Hace una división de la variable %Ceventdate, que es la copia de los datos de la agenda de origen, utilizando como separador startTime='. Esto delimita la fecha y hora de inicio del evento. Por tanto, esa información queda a la derecha de la primera división, en %Ceventdate2.

Acción 5:
Copia el valor de %Ceventdate2 en una nueva variable, %Eventdate. Al igual que antes, esto se debe a que vamos a utilizar múltiples fragmentos de variables, y no quiero perder el contenido original.

Acción 6:
Divide la recién creada copia de %Ceventdate2, %Eventdate utilizando el separador (guión). %Eventdate contiene datos en el formato 2012-09-12T21:30:00.000+02:00, lo que significa que la división con un guión pone el año en su propia variable, el mes en su propia variable, y en otra variable pone el día del mes añadiendo un poco de texto basura al final.

Acción 7:
Esto divide %Eventdate3, que es el tercer hijo de la acción 6 (el que tenía el día del mes, más basura), utilizando la T como separador. Esto es puramente para limpiar esa última variable de la acción 6, eliminando la basura.

Acción 8:
Crea una variable %Samedayevent y establece su valor a "no." Esto es para asegurarse de que el valor predeterminado de esta variable es "no", en caso de que la condición Si(If) en acción 9 no se cumpla. Previene que esta variable arrastre valores resultantes de ocasiones anteriores en que se haya ejecutado la tarea.

Acción 9:
Sobrescribe el valor de la variable creada en la acción 8 en "yes" si la fecha coincide con %Eventdate31-%Eventdate2-%Eventdate1. Esto requiere un poco de explicación para dejar claro lo que se pretende.

%DATE es una variable insoportada de Tasker que contiene la fecha. Está en un formato específico, lo mismo que la configuración del sistema del dispositivo - por lo tanto ¿por qué hay varias versiones de la tarea según el formato de fecha utilizado? %Eventdate31-%Eventdate2-%Eventdate1 contienen el día, mes y año que se obtuvieron en las acciones 6-7 y reorganiza esa información para que coincida con el formato que tiene %DATE. De esta manera, estamos en condiciones de comparar la fecha actual (%DATE), con la fecha del próximo evento, a pesar de que originalmente están en formatos diferentes!

Después de la acción 9, tenemos una variable %Samedayevent que es o "no" (si la condición Si(If) en el 9 no se cumplió) o "yes" (si es que se cumplió). Esta variable es una configuración que usaremos más adelante para controlar si la acción Decir debe mencionar el siguiente evento. Tenga en cuenta que, como he dicho, esta tarea se creó originalmente para alguien que quería esta característica específica. Muchas personas preferirán que se muestre el evento siguiente, sin importarles que sea de otro día. Sin embargo, es un gran ejemplo de cómo se puede procesar un lío de datos para adaptarlos al mismo formato que utiliza Tasker.

Acción 10:
Ya hemos terminado con las acciones que servían para comprobar si el evento es en el mismo día. Hemos estado trabajando con otra variable para obtener la fecha del evento, y ahora volvemos a la variable %Calendar original, que habíamos reservado desde el principio. No creo que hubiera importado si no la hubiéramos copiado desde el principio, pero siempre es una buena práctica hacerlo para estar seguro.

La acción 10 hace Separar-variable sobre %Calendario con el separador <title type='text'> . Este es el texto que precede inmediatamente el título del evento, y aunque no es único (se usa una vez antes en el texto original), está bien para aprovechar este tiempo porque siempre tendremos sólo una aparición de ese texto antes de la que queremos. Eso sólo significa que en lugar de utilizar el hijo %Calendar2, usamos %Calendar3.

Acción 11:
De nuevo hacemos Separar-variable %Calendar3 con el separador </title>. Esto es sólo para la limpieza de la basura en el texto final de %Calendar3, un procedimiento que hemos usado muchas veces a estas alturas.

Acción 12:
Divide la variable %Ceventdate2 con el separador T . No hemos utilizado la "familia" %Ceventdate aún, pero todavía está ahí para lo que necesitemos. Esta vez estamos después de la hora, no la fecha, por lo que estamos empezando de nuevo. La razón por la que copió %Ceventdate2 a una nueva variable en la acción 5 iba a ser capaz de hacerlo ahora.

%Ceventdate2 es idéntica a la %Eventdate original, por lo que su valor empieza con datos en el formato 2012-09-12T21:30:00.000+02:00. Creo que podríamos haber utilizado %Eventdate32 directamente en lugar de empezar de nuevo desde este momento con %Ceventdate2, pero la tarea original fue hecha con un poco de prisa, y no quiero cambiar la tarea en este ejemplo para mantenerla igual a la que se descargaba antes. Es difícil hacer un seguimiento de todas estas variables hijo, y a veces se las confunde. Por eso es mejor prevenir que curar.

Acción 13:
Un ejemplo real de Sección-de-variable aplicado a %Ceventdate22, que ahora contiene datos en el formato 21:30:00.000+02:00*basura*, donde sólo nos interesan 5 caracteres. Eso significa que obtenemos las horas, los dos puntos, y los minutos - el tiempo, en otras palabras. Esta es una buena aplicación de la acción Sección-de-variable mencionada arriba, y nos evita tener que volver a montar el tiempo como se hubiera tenido que hacer si antes hubiéramos dividido con los dos puntos.

Acción 14-15:
Estas dos acciones establecen la variable %nextEvent a cualquiera "Su primera cita es hoy %Calendar31 a las %Ceventdate22" o "No tiene citas programadas para hoy", dependiendo del valor de %Samedayevent, lo que puede ser "Yes" o "no" . Todo esto es un poco redundante, ya que podíamos haber puesto las acciones 8-9 aquí para que lo hicieran directamente, pero de nuevo la culpa es de las prisas con que se hizo la tarea.

Acción 16:
La acción final que culmina las 15 anteriores. Simplemente nos Dice el valor de nextEvent%, que se establece en las dos acciones anteriores. El resultado es que tiene un mensaje para un día sin citas, y por supuesto, para los otros días dice el mensaje dinámico con el título del evento y el momento.

Esta tarea es larga y complicada, debido al uso de diferentes mensajes para diferentes situaciones (evento / ningún caso). Sin esta característica, habría sido un asunto de dividir el título del evento, el cual es bastante simple (acciones 10-12, básicamente). A menudo los pequeños detalles son los que llevan tiempo, como este ejemplo demuestra, y a veces eso es una molestia adicional que no vale la pena para algunas personas.

En conclusión
Ser capaz de procesar datos variables en Tasker abre un montón de posibilidades, pero también hay que trabajar mucho en el seguimiento de las variables cuando se está dividiendo a diestra y siniestra. Hay que mantener la cabeza fría, tener abierto el código del texto como referencia, y usar la depuración mediante una acción de Flash (ver ejemplo 2) son cosas esenciales para alcanzar el objetivo sin volverse loco en el proceso.

En la siguiente parte de la guía voy a cubrir algunos consejos y trucos en la utilización de Tasker, cosas que en realidad no se parecen naturales, y que no fueron incluidos en ninguna de las partes anteriores, pero que merecen ser mencionados. Más adelante en la serie que voy a hacer otras partes dedicadas a ejemplos de todo tipo, así que si tiene un perfil o una tarea que no es capaz de resolver, hágamelo saber y quizá podría convertirlo en ejemplo de otro artículo, al igual que ocurrió con el ejemplo 2 de este artículo.

-----------------------------
Con autorización expresa del autor, este artículo es una traducción del original ubicado en
http://www.pocketables.com/2012/09/b...rocessing.html
Beguinners guide to Tasker, by Andreas Ødegård
Original Copyright @ 2006-2012 CrowdGather. All rights reserved
------------------------

Firmado: Caravantes


__________________
ATaskREADOS somos el equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Para cualquier asunto relacionado con el foro, puedes escribirnos a [email protected]

Última edición por ATaskREADOS Día 30/06/13 a las 23:28:29.
Responder Con Cita
Los siguientes 3 usuarios han agradecido a ATaskREADOS su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #3  
Viejo 13/06/13, 04:05:15
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
En el Ejemplo 3, Andreas nos dice cómo obtener información de los eventos que tenemos en el calendario de Google. He probado ese sistema y no me ha funcionado. Pero he dado algunas vueltas al asunto, siguiendo las pistas de ese ejemplo, y finalmente he conseguido encontrar una variante que me ha funcionado perfectamente. A continuación explico los detalles.

Hay que empezar por ir a la página web de Google Calendar. A continuación entrar en la configuración, hacer clic en la ficha Calendarios, y elegir el calendario que se desea utilizar. En la parte inferior de la pantalla del calendario hay un rótulo DIRECCIÓN PRIVADA y junto a él hay un botón naranja XML sobre el que hay que hacer clic. Se abre un cuadro emergente con una dirección URL similar a la siguiente:

Código:
https://www.google.com/calendar/feeds/fulano%40gmail.com/private-1234567812345678/basic
Con esa URL conseguimos un acceso RSS al calendario. El problema es que esa información probablemente esté desordenada. Para obtener los próximos eventos, a esa URL hay que añadirle lo siguiente

Código:
?singleevents=true&futureevents=true&orderby=starttime&sortorder=ascending
Obteniendo en total una URL del tipo siguiente

Código:
https://www.google.com/calendar/feeds/fulano%40gmail.com/private-1234567812345678/basic?singleevents=true&futureevents=true&orderby=starttime&sortorder=ascending
Usando esa URL obtenemos las referencias de los próximos 25 eventos del calendario. Si se desea cambiar el número de eventos se puede añadir todavía algo más:

Código:
&max-results=85
indicando el número de entradas RSS que obtendremos como resultado. Se puede poner ahí la cifra que se quiera. El conjunto completo quedaría así:

Código:
https://www.google.com/calendar/feeds/fulano%40gmail.com/private-1234567812345678/basic?singleevents=true&futureevents=true&orderby=starttime&sortorder=ascending&max-results=1
Y ya está. Con esto, Tasker puede acceder a los próximos eventos del calendario. El artículo previo ofrece el resto de pistas para manejar esa información y extraer los datos que necesitemos.

Queridos dummies, eso es todo por hoy
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker

Última edición por Caravantes Día 22/06/13 a las 21:52:12.
Responder Con Cita
Los siguientes 4 usuarios han agradecido a Caravantes su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #4  
Viejo 10/08/13, 09:10:53
Array

[xs_avatar]
z3us z3us no está en línea
Usuario muy activo
 
Fecha de registro: ago 2010
Localización: Gijón / Madrid
Mensajes: 2,301
Modelo de smartphone: Note 3
Tu operador: Amena
¿sabéis de alguna fuente para sacar fácilmente la hora de salida y puesta del sol?
Responder Con Cita
  #5  
Viejo 28/10/13, 23:38:48
Array

[xs_avatar]
tonytower tonytower no está en línea
Miembro del foro
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Mensajes: 73
Modelo de smartphone: Elephone p8000
Tu operador: Vodafone
mira en este enlace

http://www.windguru.cz/es/index.php?sc=9459

Supongo que no debe ser demasiado complicado sacarlo de ahí...
Responder Con Cita
  #6  
Viejo 12/08/14, 01:11:54
Array

[xs_avatar]
Mx WaR HaBiB Mx WaR HaBiB no está en línea
Usuario muy activo
 
Fecha de registro: mar 2014
Localización: Dream Planet
Mensajes: 875
Modelo de smartphone: Galaxy Note 3
Tu operador: Movistar
alguien podría subir nuevamente los Link de descarga pues todos están caídos y la verdad me gustaría trabajar bajo este método y probar los perfiles que subió el creador del tema en http://www.pocketables.com/2012/09/b...rocessing.html

ya que ni en la pagina oficial del tema se encuentra ;(
Responder Con Cita
  #7  
Viejo 12/08/14, 01:46:28
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Mx te a que link te refieres? Que descarga?
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 12/08/14, 02:47:16
Array

[xs_avatar]
Mx WaR HaBiB Mx WaR HaBiB no está en línea
Usuario muy activo
 
Fecha de registro: mar 2014
Localización: Dream Planet
Mensajes: 875
Modelo de smartphone: Galaxy Note 3
Tu operador: Movistar
Post

 Cita: Originalmente Escrito por mlesir Ver Mensaje
Mx te a que link te refieres? Que descarga?
a los que vienen en el tutorial que ponen Ejemplos de los perfiles y la manipulacion que realizan con las variables, y viene con link de descarga los cuales ya no están disponibles

Gracias por tu pronta respuesta de antemano
Responder Con Cita
  #9  
Viejo 12/08/14, 02:55:38
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Puff! Son de Dropbox normal q ya no estén. Tiene ya un tiempo el artículo y el autor, el maestro de maestros, ya no publica nada.
Si lo que quieres son ejemplos quizá tengas más suerte buscando en google. Quizá encuentres algo en la wiki de tasker, ahí se encuentran perfiles en xml. Suerte.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 12/08/14, 16:18:39
Array

[xs_avatar]
Mx WaR HaBiB Mx WaR HaBiB no está en línea
Usuario muy activo
 
Fecha de registro: mar 2014
Localización: Dream Planet
Mensajes: 875
Modelo de smartphone: Galaxy Note 3
Tu operador: Movistar
Post

 Cita: Originalmente Escrito por mlesir Ver Mensaje
Puff! Son de Dropbox normal q ya no estén. Tiene ya un tiempo el artículo y el autor, el maestro de maestros, ya no publica nada.
Si lo que quieres son ejemplos quizá tengas más suerte buscando en google. Quizá encuentres algo en la wiki de tasker, ahí se encuentran perfiles en xml. Suerte.
Nadie del sub-foro los tiene para compartirlos?

Yo agradeceria mucho a quien lo resuba o los comparta aún sea por los comentarios!..

Responder Con Cita
  #11  
Viejo 03/12/14, 22:44:24
Array

[xs_avatar]
geek1 geek1 no está en línea
Miembro del foro
 
Fecha de registro: ago 2011
Mensajes: 144
Modelo de smartphone: iphone 6s
Tu operador: Vodafone
yo tengo algo que hace lo del calendario. es mejorable pero funciona.

https://drive.google.com/file/d/0B9c...FHVUtUZms/view

ya de paso, si alguien lo quiere probar, lo que me hace raro es que en la instrucción 10, hay un blucle For [ Variable:%calfor Ítems:%cal(1:25) ] que me da la sensación que recorre los eventos, pero... ¿por que 25? ¿sería posible saber antes del for cuantos eventos hay en un calendario? Intento arreglarlo en plan chapuza modificando el for y por ejemplo sustituyendo por un 30 y ya no me funciona, y es curioso por que mi calendario tiene más de 30 eventos. Buf, no se si me he explicado.

Bueno, por un lado, espero que os sirva de ayuda y por otro, que me podáis ayudar.

Saludos
__________________

Última edición por geek1 Día 03/12/14 a las 22:58:59. Razón: añadir duda y evitar nuevo post
Responder Con Cita
Gracias de parte de:
Respuesta

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



Hora actual: 00:20:22 (GMT +2)



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

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