miércoles, 29 de junio de 2011

Resetear clave de usuarios de mediaWiki

Cuantas veces no les ha pasado que olvidan la clave de mediawiki, bueno a mi me pasa muy seguido, aunque no tanto como a mis compañeros de trabajos.

Aquí un simple sql(mysql) para poder cambiar el password por base de datos



UPDATE user SET user_password = MD5(CONCAT(user_id, '-', MD5('NEWPASS')))
WHERE user_id =1

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

miércoles, 8 de junio de 2011

Vista para mobiles de blogger

hoy me sorprendido al ver la configuracion de blogger, ahora existe la opcion de configurar un template para la vista desde mobiles, ahora solo se puede activar o desactivar esta opcion, este template no es configurable todavia.

aqui una imagen de como se ve este blog en mi iphone:




Lee este post en Ingles

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

martes, 7 de junio de 2011

Comida Peruda

Yo y mi señora somos fanaticos de la comida peruana, para mi y mucha gente esta es una de las mejoras cocinas del mundo(aunque yo no conozco mucho de comidas)

ayercon mi señora fuismos a comer al "aji seco", ubicado en San Pablo #2596,Santiago.

Bueno , las fotos a continuación

Antes





Despues






Lee este post en ingles
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

lunes, 6 de junio de 2011

buscando autos con python y chileautos

Un compañero de trabajo paul beltran anda en busqueda de un toyota yaris, pero como muchos saben este es un auto muy cotizado, y cuando llega a llamar ya el auto se vendio.

Yo le dije que usara buskautos , ya que ellos por cada publicacion de autos, envian un tweet a todos sus seguidores en twitter.

Por ultimo me parecio bastante interesante, tratar de hacer una aplicacion que busque autos en la pagina de chileautos y encontrar las publicaciones nuevas. esto se puede hacer, por que los parametros de busqueda en su sitio son pasados por las urls.

Bueno aqui el buscador.



##
## python buscador.py
##
import urllib, os, re, getpass, smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE
import os.path


current_path = "D:\\buscardorDeAutos\\yaris"
xml_dir = current_path + "\\xmlFiles\\"
URL = "http://www2.chileautos.cl/cemagic.asp?pag=1&dea=50&sort=vcrec&ciudad=37&tipo=TODOS&modelo=yaris&ai=1928&af=2011&pi=4000000&pf=5000000&disp=1&formulario=Busqueda_Avanzada";

mail_to = ['vhspiceros@gmail.com','paulbeltran@gmail.com']
mail_subject = '[toyota Yaris] Nueva publicacion en chileautos!!'

def create_ditectory():
if os.path.isdir(xml_dir) == False:
os.mkdir(xml_dir)

def save_url(filename):
os.chdir(xml_dir)
dirs = os.listdir(xml_dir)
urllib.urlretrieve(URL,filename)

def get_content_file(filename):
try:
f = open(filename, "r")
content = f.read()
f.close()
return content
except:
return ""

def filter_content(filename):
content = get_content_file(filename)

beginWord = "<table align='center' border=1 class=\"tbl_Principal\">"
endWord = "<div class='prevnextlinks'>"

content = content[content.find(beginWord):len(content)] ##sacamos el inicio del documento
content = content[0:content.find(endWord)]
return content

def save_file(filename,content):
f = open(filename, "w")
f.write(content)
f.close()

def path_Filename():
dirs = os.listdir(xml_dir)
return xml_dir + str(len(dirs))+'.html'

def path_previus_Filename():
dirs = os.listdir(xml_dir)
return xml_dir + str(len(dirs)-1)+'.html'

def get_id_cars(content):
# TODO: hacer que traiga el precio, para ver variaciones de precio.
return re.findall("codauto\x3D([0-9]*)",content)

def get_diferences(previus,actual):
dif = []
for x in actual:
if x not in previus:
dif.append(x)
return dif

def send_mail(diff):
sender = smtplib.SMTP('smtp.gmail.com')
sender.ehlo()
sender.starttls()
usuario_gmail = 'vhspiceros'
sender.login(usuario_gmail, "******")

msg = MIMEMultipart()
msg['Subject'] = mail_subject
msg['From'] = "vhspiceros@gmail.com"
msg['To'] = COMMASPACE.join(mail_to)


list = ["http://www3.chileautos.cl/auto.asp?codauto=" + x for x in diff]
body = "< br />".join(list)


part1 = MIMEText(body, 'html')
msg.attach(part1)

sender.sendmail(msg['From'], msg['To'],msg.as_string() )
sender.close()


def main():
create_ditectory()
filename = path_Filename()
previus_Filename = path_previus_Filename()
save_url(filename)
content = filter_content(filename)
save_file(filename,content)

previus_content = get_content_file(previus_Filename);

previues_cars = get_id_cars(previus_content)
actual_cars = get_id_cars(content)

dif = get_diferences(previues_cars,actual_cars)
if len(dif) > 0:
send_mail(dif)

if __name__ == "__main__":
main()



A esta aplicacion se le pueden hacer mejoras obviamente, pero ya envia por correo con los links de las nuevas publicaciones, en el futuro se podria hacer que detecte los aumentos o disminuciones de precios.


Ya terminado este desarrollo, que es bastante ocioso la vedad, ahora solo me queda configurarlo en el "programador de tareas" de windows para que se ejecute unas 2 veces al dia :D.


Ahora mi amigo paul, podrá ser uno de los primeros en enterarse cuando se publique un nuevo auto :D.






--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com