Categories
descargas megaupload mget programa script software libre

Actualización mget

Debido al rediseño de megaupload mget ha dejado de funcionar, el problema se debe específicamente a que el link de descarga ya no se identifica con el id downloadlink sino con la clase download_regular_usual, ademas el tiempo de espera ahora es de 60 segundos.

Por el momento no tengo como arreglar la versión para windows pero la de linux ya esta lista, solo hay que reemplazar el archivo antiguo y dar permisos de ejecución.

Categories
Canvas event html5 javascript programación script

Beta 2 de canvas-event disponible

Ya esta disponible la beta 2 de canvas-event, esta revisión cuenta con algunas mejoras y corrección de errores como:

  1. Posibilidad de adicionar una función a varios eventos simultáneamente
  2. Las figuras dibujadas dentro de un manejador de eventos ahora si se visualizan
  3. Los Objetos Line ahora también pueden ser arrastrados
  4. Los bordes redondeados ahora también funcionan en Opera
Espero que les sea tan útil como lo ha sido para mi.
Categories
bash descargas linux megaupload programación proxy script software libre

script: descarga automática de Megaupload

Aprovechando que estoy aprendiendo a programar en bash y que megaupload ahora no requiere llenar ningún captcha para realizar las descargas, decidí rescribir el anterior script (escrito en python) y agregarle nuevas características.

Ahora es posible indicar una URL (con la opcion -c) y el script extrae los links de Megaupload que encuentre, me parece una funcionalidad muy conveniente ya que con el anterior script era necesario copiar a mano todos los links a un archivo de texto, lo cual puede ser muy tedioso.

Otra funcionalidad es la de usar la dirección ip de los servidores para realizar las descargas, esto ayuda a saltarse algunos proxies que están configurados para bloquear paginas por nombres de dominio en lugar de direcciones ip XD.

El script ha sido probado con Ubuntu 10.10 que es el OS que uso actualmente, pero no creo que tengan problemas usándolo en otra distro, siempre y cuando tenga instalado wget que es el programa que usa para realizar las descargas.

Pueden descargarlo del siguiente enlace:

Luego le damos permisos de ejecución y lo copian en el directorio bin:

novatoz@sney2002:~$ chmod +x mget
novatoz@sney2002:~$ sudo cp mget /bin/

Espero les sea de utilidad, y si tienen alguna inquietud o sugerencia no duden en dejarla en los comentarios.

update: corregido error que impedía descargar archivos cuyos nombres contuvieran  caracteres no ascii, los cuales están codificados usando html entities, ejemplo:

# este link no apunta a ningún archivo
http://www465.megaupload.com/files/f4f4ab2163558f1f/Capacitación.mp4
# el link es valido al cambiar ó por ó
http://www465.megaupload.com/files/f4f4ab2163558f1f/Capacitación.mp4

ahora es necesario tener instalado w3m

Categories
bash dividir archivo hjsplit linux script

script bash para dividir archivos

Si usas linux y quieres dividir un archivo grande para luego unirlo en otra maquina usando cat o hjsplit este script puede servirte; para dividir el archivo podemos usar el comando split, pero hjsplit espera que los archivos estén numerados desde el 001 y split genera archivos empezando desde el 000.

solucion?, dividir el archivo y luego renombrar las partes generadas.

1. para saber cuantos archivos se generan, podemos dividir el archivo y ver en cuantas partes se divide usando la opcion verbose y wc:

parts=`split -d -b 50M -a 3 --verbose archivo-entrada archivo-salida | wc -l`

2. conociendo cuantos archivos se crearon, podemos renombrar los archivos empesando desde al ultimo:

while [ $parts -gt 0 ]; do
# sufijo del archivo
old_suf=`printf "%03d" "$(($parts-1))`
# sufijo nuevo
new_suf=`printf "%03d" "$parts"`
#renombramos archivo
mv "$1.$old_suf" "$1.$new_suf"
# disminuimos $parts
parts=$((parts-1))
done

el script completo lo pueden descargar desde el siguiente enlacce:

Solo tienen que dejarlo en la carpeta de nautilus-scripts (~/.gnome2/nautilus-scripts), darle permisos de ejecución y listo 🙂

P.D: este es el segundo script en bash de mas de 3 lineas que hago, así que si encuentran algún error me avisan para ir mejorando u_u

Categories
chorradas javascript programación python script Wingdings

Revertir guardado en Wingdings

El otro día me encontraba aburrido a mas no poder, cuando de pronto me llaman a hacerme la siguiente pregunta: Imaginen que tienen un documento y no quiere que nadie mas se entere de lo que contiene, nada mejor que guardar dicho documento con el tipo de letra Wingdings, el problema es revertir el proceso, aunque no lo crean es algo mas común de lo que párese, la única solución es ir reemplazando cada signo por el caracter original, un proceso algo tedioso si se decide hacer a mano, así que porque no crear un script (en python) que automatice el proceso.

Para empezar tenemos que saber la correspondencia entre caracteres y signos, así que procedemos a abrir word e introducir los caracteres mas utilizados (letras mayúsculas y minúsculas, números, signos de puntuación, espacio) en una tipo de letra normal, con estos creamos una variable que llamaremos decode en nuestro código fuente, luego nuevamente en word cambiamos el tipo de letra por Wingdings y creamos otra variable que llamaremos encode, estas variables tienen que ser string unicode ya que los símbolos usados por la letra Wingdings son de lo mas raros; luego es cuestión de en un bucle ir reemplazando las coincidencias del caracter de encode en la posicion i con el carracter de decode en la misma posición. El script completo seria algo así:

#!/usr/bin/python
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# Por: Jhonatan sneyder Salguero Villa (sney2002@gmail.com)

import codecs
from os.path import split, splitext

def translate(path=""):
"""" Convertir texto en Wingdings a caracteres normales ""

text2decode = codecs.open(path, 'r', 'utf-8').read()

decode = u"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”?¿¡.,;():/*-+=&%$# @"
encode = u"”¿¡"

for i in range( len(decode) ):
text2decode = text2decode.replace( encode[i], decode[i] )

filename = splitext( split( path )[1] )[0]

file = codecs.open('resultado_%s.txt' % filename, 'wb', 'utf-8')

file.write( text2decode )

file.close()

if __name__ == "__main__":
import sys

try:
file = sys.argv[1]
translate( file )
except:
print "uso: translate /ruta/archivo"

Ahora solo hay que copiar en un editor de texto plano lo que desean convertir, guardarlo y ejecutar el script dándole la ruta al archivo. Si alguien se pregunta por que no utilice el método translate de string, la razón es que la función maketrans no acepta caracteres unicode.

El script tiene algunos defectos como el no manejar excepciones en caso que el archivo en path no exista, solo funciona con este tipo de letra y en cada iteración crear un nuevo string. Como siempre todas las criticas son bienvenidas.

Si no tienen instalado el interprete python, pueden usar este “codificador/decodificador” Wingdings XDDD, esta escrito en javascript así que si usan demasiado texto puede bloquearse.

Categories
descargas linux programación python script wallpaper

Fondo de escritorio cambiantes para ubuntu

El otro día convencí a un amigo para que se pasara a linux y entre las muchas preguntas que me empezaron a llegar por parte de él (todo sea por la causa), una era sobre como hacer un fondo de pantalla como esos que trae por defecto Ubuntu que cambian cada cierto tiempo, me dio mucha pena el no poder responder en el momento ya que no tenia ni idea de como funcionaba, así que me puse a la tarea y la verdad no era nada del otro mundo, solo un pequeño archivo xml que describe las transiciones de las imágenes; para ver como se estructura el archivo podemos ojear el que se encuentra en /usr/share/backgrounds/cosmos/background-1.xml.

Ahora que ya sabia como crear mis propios sliders, solo faltaba automatizar el proceso (flojo que soy), y como decidí hacer de python mi lenguaje por defecto XD, pues me puse a trabajar y esto fue lo que me salio, no es el súper programa pero intente hacerlo lo mas pythonista que pude, por favor si alguien lee esto y tiene mas conocimientos de python, se le agradecerán todos las criticas que me ayuden a mejorar u_u

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# Por: Jhonatan sneyder Salguero Villa (sney2002@gmail.com)
# Crear fondos de escritorio cambiantes
import sys, os

FORMAT = """
%(static_time).1f
%(current)s


%(transition_time).1f
%(current)s
%(next)s
"""


class BackgroundSlider():
EXTENSIONS = [".jpg", ".jpeg", ".png"]

def __init__(self, static_time = 1200):
self.xml_parts = [""]
self.static_time = static_time
self.path = os.getcwd()

def get_images(self, ext=EXTENSIONS):
""" Guardar archivos con extencion (jpg, jpeg, png) en self.images """
# Se puede especificar los archivos como argumentos
files = sys.argv[1:] or os.listdir(".")
# Filtrar imágenes
self.images = [os.path.join(os.getcwd(), img) for img in files if os.path.splitext(img)[1].lower() in ext]


def add_image(self, current, next, static_time, transition_time = 5):
""" Adicionar imagen al slider """
self.xml_parts.append( FORMAT % locals() )


def make_slider(self):
""" Crear archivo xml que define el slider """
images = self.images

# Todo termina donde empiesa U_U
images.append( images[0] )

for i in range( len(images)-1 ):
self.add_image(images[i], images[i+1], self.static_time)

self.xml_parts.append("
")


def save(self, filename = "background" ):
""" Guardar el slider """

xml = file(filename + ".xml", 'w')

try:
xml.write( "n".join(self.xml_parts) )

except IOError:
print "Error al Guardar el archivo. Intente de Nuevo"

finally:
xml.close()


if __name__ == "__main__":
slider = BackgroundSlider()

slider.get_images()

slider.make_slider()

slider.save()

Luego puse este archivo con los demás script de nautilus (~/.gnome2/nautilus-scripts) y ahora mi amigo cuando quiera un fondo de escritorio, solo selecciona las imágenes, click derecho crear wallpaper y listo. Si les interesa pueden bajar el script de este enlace: