[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.

01import urllib, sgmllib
02import subprocess
03from sgmllib import SGMLParser
04import webbrowser
05import time
06 
07 
08class URLLister(SGMLParser):
09    def reset(self):
10        SGMLParser.reset(self)
11        self.urls = []
12        self.urlsanitizada= []
13    def start_a(self, attrs):
14        href = [v for k, v in attrs if k=='href']
15        if href:
16            self.urls.extend(href)
17    import urllib
18if __name__ == "__main__":
19    socket = urllib.urlopen("http://www.trucoscastleville.com/")
20    parser = URLLister()
21    parser.feed(socket.read())
22    parser.close()
23    socket.close()
24    for url in parser.urls:
25        if url not in parser.urlsanitizada:
26            parser.urlsanitizada.append(url)
27     
28     
29    for url in parser.urlsanitizada:
30        if url.find("http://www.trucoscastleville.com/2012") >= 0:
31            if url.find("#comment-") == -1:
32                if __name__ == "__main__":               
33                    socket2 = urllib.urlopen(url)
34                    parser2 = URLLister()
35                    parser2.feed(socket2.read())
36                    parser2.close()
37                    socket2.close()
38                    for url in parser2.urls:
39                        if url not in parser2.urlsanitizada:
40                            parser2.urlsanitizada.append(url)
41                    n=0
42                    for url in parser2.urlsanitizada:
43                        if url.find("apps.facebook.com") >= 0:
44                            n=n+1
45                            webbrowser.open(url, new=2, autoraise=False)
46                            time.sleep(15)

1 comment for “[Python] Castleville.py

Deja un comentario