[Python] Castleville.py

Este código lo ideé en un tiempo que jugaba al Castleville, uno de los muchos juegos que circulan por Facebook. La idea en este script es bastante básica: Existe una página, http://www.trucoscastleville.com, en donde, además de publicar recompensas diarias, la gente publica solicitudes de aquellos elementos que necesitan para el juego. Cualquiera persona que haga clic sobre ellas, además de enviarle la recompensa a quien la solicito, la recibirá el mismo, por lo cual pensé en idear este script, que carga todas las url’s de recompensas en el navegador.
Consejo si decidís utilizarlo: instalad un complemento en el navegador que cierre automáticamente las pestañas tras un tiempo x inactivas, ya que si no aunque el codigo incluye un timer de 15 segundos entre apertura y apertura, os acabaréis encontrando con cientos de pestañas, bloqueando el navegador y posiblemente también el sistema.

import urllib, sgmllib
import subprocess
from sgmllib import SGMLParser
import webbrowser
import time


class URLLister(SGMLParser):
	def reset(self):
		SGMLParser.reset(self)
		self.urls = []
		self.urlsanitizada= []
	def start_a(self, attrs):
		href = [v for k, v in attrs if k=='href']
		if href:
			self.urls.extend(href)
	import urllib
if __name__ == "__main__":
	socket = urllib.urlopen("http://www.trucoscastleville.com/")
	parser = URLLister()
	parser.feed(socket.read())
	parser.close()
	socket.close()
	for url in parser.urls:
		if url not in parser.urlsanitizada:
			parser.urlsanitizada.append(url)
	
	
	for url in parser.urlsanitizada: 
		if url.find("http://www.trucoscastleville.com/2012") >= 0:
			if url.find("#comment-") == -1:
				if __name__ == "__main__":				
					socket2 = urllib.urlopen(url)
					parser2 = URLLister()
					parser2.feed(socket2.read())
					parser2.close()
					socket2.close()
					for url in parser2.urls:
						if url not in parser2.urlsanitizada:
							parser2.urlsanitizada.append(url)
					n=0
					for url in parser2.urlsanitizada: 
						if url.find("apps.facebook.com") >= 0:
							n=n+1
							webbrowser.open(url, new=2, autoraise=False)
							time.sleep(15)

1 comment for “[Python] Castleville.py

  1. JohnnyNef
    14/08/2013 at 21:04

    mm. tres interesant…

Deja un comentario