{"id":143,"date":"2012-04-30T14:21:44","date_gmt":"2012-04-30T13:21:44","guid":{"rendered":"http:\/\/www.jbahillo.com\/?page_id=143"},"modified":"2012-06-11T09:29:00","modified_gmt":"2012-06-11T08:29:00","slug":"pythoncastleville-py","status":"publish","type":"page","link":"https:\/\/www.jbahillo.com\/?page_id=143","title":{"rendered":"[Python] Castleville.py"},"content":{"rendered":"<p>Este c\u00f3digo lo ide\u00e9 en un tiempo que jugaba al Castleville, uno de los muchos juegos que circulan por Facebook. La idea en este script es bastante b\u00e1sica: Existe una p\u00e1gina, http:\/\/www.trucoscastleville.com, en donde, adem\u00e1s de publicar recompensas diarias, la gente publica solicitudes de aquellos elementos que necesitan para el juego. Cualquiera persona que haga clic sobre ellas, adem\u00e1s de enviarle la recompensa a quien la solicito, la recibir\u00e1 el mismo, por lo cual pens\u00e9 en idear este script, que carga todas las url&#8217;s  de recompensas en el navegador.<br \/>\nConsejo si decid\u00eds utilizarlo: instalad un complemento en el navegador que cierre autom\u00e1ticamente las pesta\u00f1as tras un tiempo x inactivas, ya que si no aunque el codigo incluye un timer de 15 segundos entre apertura y apertura, os acabar\u00e9is encontrando con cientos de pesta\u00f1as, bloqueando el navegador y posiblemente tambi\u00e9n el sistema.<\/p>\n<pre class=\"brush: python; gutter: true; first-line: 1; highlight: []; html-script: false\">import urllib, sgmllib\nimport subprocess\nfrom sgmllib import SGMLParser\nimport webbrowser\nimport time\n\n\nclass URLLister(SGMLParser):\n\tdef reset(self):\n\t\tSGMLParser.reset(self)\n\t\tself.urls = []\n\t\tself.urlsanitizada= []\n\tdef start_a(self, attrs):\n\t\thref = [v for k, v in attrs if k==&#039;href&#039;]\n\t\tif href:\n\t\t\tself.urls.extend(href)\n\timport urllib\nif __name__ == &quot;__main__&quot;:\n\tsocket = urllib.urlopen(&quot;http:\/\/www.trucoscastleville.com\/&quot;)\n\tparser = URLLister()\n\tparser.feed(socket.read())\n\tparser.close()\n\tsocket.close()\n\tfor url in parser.urls:\n\t\tif url not in parser.urlsanitizada:\n\t\t\tparser.urlsanitizada.append(url)\n\t\n\t\n\tfor url in parser.urlsanitizada: \n\t\tif url.find(&quot;http:\/\/www.trucoscastleville.com\/2012&quot;) &gt;= 0:\n\t\t\tif url.find(&quot;#comment-&quot;) == -1:\n\t\t\t\tif __name__ == &quot;__main__&quot;:\t\t\t\t\n\t\t\t\t\tsocket2 = urllib.urlopen(url)\n\t\t\t\t\tparser2 = URLLister()\n\t\t\t\t\tparser2.feed(socket2.read())\n\t\t\t\t\tparser2.close()\n\t\t\t\t\tsocket2.close()\n\t\t\t\t\tfor url in parser2.urls:\n\t\t\t\t\t\tif url not in parser2.urlsanitizada:\n\t\t\t\t\t\t\tparser2.urlsanitizada.append(url)\n\t\t\t\t\tn=0\n\t\t\t\t\tfor url in parser2.urlsanitizada: \n\t\t\t\t\t\tif url.find(&quot;apps.facebook.com&quot;) &gt;= 0:\n\t\t\t\t\t\t\tn=n+1\n\t\t\t\t\t\t\twebbrowser.open(url, new=2, autoraise=False)\n\t\t\t\t\t\t\ttime.sleep(15)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Este c\u00f3digo lo ide\u00e9 en un tiempo que jugaba al Castleville, uno de los muchos juegos que circulan por Facebook. La idea en este script es bastante b\u00e1sica: Existe una p\u00e1gina, http:\/\/www.trucoscastleville.com, en donde, adem\u00e1s de publicar recompensas diarias, la&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/www.jbahillo.com\/?page_id=143\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":21,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"page_fullwidth.php","meta":{"ep_exclude_from_search":false,"footnotes":""},"class_list":["post-143","page","type-page","status-publish","hentry"],"aioseo_notices":[],"jetpack_shortlink":"https:\/\/wp.me\/P74T96-2j","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/pages\/143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=143"}],"version-history":[{"count":7,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/pages\/143\/revisions"}],"predecessor-version":[{"id":403,"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=\/wp\/v2\/pages\/143\/revisions\/403"}],"wp:attachment":[{"href":"https:\/\/www.jbahillo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}