Archivo

Entradas Etiquetadas ‘greasemonkey’

La web a mi gusto: Descargar contenidos de Moodle rápidamente

Viernes, 12 de Febrero de 2010 admin Sin comentarios

Quiero continuar con una serie de posts que llevarán una temática parecida: muchas páginas web funcionan de una forma fija, pero a mí me incomoda bastante esa forma de funcionar, pero como necesito cubrir mis necesidades, intento que funcionen como yo quiero.
Tras esa gran descripción, quiero introducir mi problema:
Moodle es un sistema ampliamente aceptado como solución web académica, tiene muchas opciones y está muy bien, personalmente, en la Universidad, los profesores cuelgan apuntes, ejercicios y más material a la web, lo malo es que cuando llego a una página, me gusta descargar a mi disco duro todos los contenidos (pdfs, documentos, etc), y para ello invierto mucho tiempo.
Para ello viene bien una extensión para Firefox: Chickenfoot, también podemos utilizar Greasemonkey (también hay extensiones para IE y Safari).

Sin más preámbulos, el script utilizado para que Moodle descargue los contenidos más rápido es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var alltags = new Array();

function detecta_pdf(cont)
{
  var url_match = /https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
  var contenido=cont.match(url_match);
  document.location=contenido[0];
}

function pdfplay(que)
{
  var cont=que.innerHTML;
  que.innerHTML='';
  detecta_pdf(cont);  
}

function CogeElementoPorClase(tipo, clase, quehacer)
{
  var alltags=document.getElementsByTagName(tipo);

  for (i=0; i<alltags.length; i++)
  {
    if (alltags[i].className==clase)
    {
    quehacer(alltags[i]);
    }
  }
}

CogeElementoPorClase('div', 'resourcepdf', pdfplay);

La función CogeElementoPorClase() es la misma que utilicé en este post anterior para modificar la web de mi proveedor de hosting.

Tras ello debemos crear un trigger, es decir será el evento con el que se disparará automáticamente el script que acabamos de hacer; por ejemplo, para la Universidad de Málaga podemos decir que el script se dispare cuando la página a la que accedemos sea: http://*.cv.uma.es/mod/resource/view.php?id=*.

En principio el script fue pensado para los PDFs (el acrobat reader tarda bastante en abrirse cuando tienes que abrir más de 10 PDFs), pero puede servir para cualquier contenido. Por otra parte, aunque no está muy optimizado (la necesidad me llevó a hacer el script rápidamente) espero que os sea útil.

¡La web a mi gusto!

Viernes, 21 de Agosto de 2009 blakeyed Sin comentarios

A menudo, encontramos páginas web que pueden no ser compatibles con el navegador que estamos utilizando, o el sistema operativo en el que nos encontramos. Por ejemplo, últimamente, estoy usando Firefox 3.5 sobre Gentoo GNU/Linux. Es normal encontrarse webs diseñadas para Internet Explorer, o incluso puede que por las tipografías utilizadas no encajen bien en nuestro sistema.

En mi caso, hay una web que visito muy a menudo, y es la de mi proveedor de hosting en la que a veces, por ejemplo cuando quiero mandar un ticket; me veo obligado a utilizar el scroll horizontal, ya que al no especificar el ancho del textarea como propiedad en el CSS, lo han hecho en caracteres (con la propiedad COLS); veo un textarea mucho más grande que mi pantalla y cuando quiero revisar el mensaje que estoy mandando tengo que desplazarme constantemente de derecha a izquierda.

La solución fácil, sería que ellos cambiaran la forma en la que dimensionan el textarea, pero hay multitud de ocasiones en las que eso no se puede pedir. Tenemos el ejemplo del Manifiesto de Apoyo al autónomo de Punto Radio; la página, internamente está muy mal diseñada, y tras varios emails con el webmaster y éste decirme que la página no fallaba (la solución sería añadir un estilo a los input text del nombre y los apellidos, y ahí especificar el tamaño en pixels, se seguiría viendo igual en todas partes).
Punto Radio
Pero para nosotros y para andar por casa, vamos a utilizar el DOM Inspector (en el menú Herramientas), desde el que, como vemos más abajo hemos podido modificar la propiedad size de los input text en cuestión. (Para seleccionar el textbox pulsamos en el botón de arriba a la izquierda de la nueva ventana y luego pinchamos sobre el elemento dentro de la página; tras ello nos dejará seleccionar y modificar las propiedades con el botón derecho).
Punto Radio - Ahora se ve bien

Esto está bien para una web que vas a visitar una vez nada más. Pero hay veces que tienes que visitar una web de este tipo muchas veces, y es en este punto cuando tenemos que recurrir a extensiones como Chickenfoot o GreaseMonkey; estos dos, nos permiten ejecutar código javascript y dispararlo en un momento determinado, por ejemplo, al entrar en una web.

Para eso hice este script, que voy a utilizar para cuando tenga que enviar un ticket a mi proveedor de hosting:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var alltags = new Array();

function redimensionalo(que)
{
    que.style.width='600px';
}

function CogeElementoPorClase(tipo, clase, quehacer)
{
  var alltags=document.getElementsByTagName(tipo);

  for (i=0; i<alltags.length; i++)
  {
    if (alltags[i].className==clase)
    {
    quehacer(alltags[i]);
    }
  }
}

CogeElementoPorClase('textarea', 'ClaseTextarea', redimensionalo);

El script, cogerá el textarea que tenga la clase ‘ClaseTextarea’ y llamará a la función redimensionalo que modificará su ancho y le establecerá 600px (como el elemento no tiene id no podemos utilizar getElementById). Gracias a una de las dos extensiones que mencioné antes, podremos hacer que ese script se ejecute nada más entrar en la sección de tickets de mi proveedor.

Aunque no termina todo ahí, podemos automatizar muchas acciones con estos dos programas, extraer información, hacer clicks en ciertas zonas de las páginas, etc; muchas veces necesitamos hacer tareas repetidas veces y estas extensiones pueden solucionarnos el día.

Visita otras webs de la red

Easy AdSense by Unreal