#!/usr/bin/env python # -*- coding: utf-8 -*- import mechanize, cookielib, re class akinator(): def irc_cb(self, game_in_progress, opturl): def info(page): qinfo = re.findall('Question (.*?) :
(.*?)', page) return qinfo def getopts(page): opts = re.findall("(.*?)", page) return opts def result(page): answer = re.findall('I think of (.*?)
', page) return "I think of " + answer[0] br = mechanize.Browser() cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.set_handle_equiv(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] if game_in_progress is False: r = br.open('http://en.akinator.com/mobile/new_session.php') page = br.response().read() return info(page), getopts(page) if game_in_progress is True and opturl: r = br.open(opturl) page = br.response().read() if 'I think of' in page: return result(page), getopts(page) elif "Click on your character if it belongs to the following list" in page: return "You win!" elif "Yippee, I guessed one more time!." in page: return "Akinator wins!" else: return info(page), getopts(page)