Exemplo n.º 1
0
def start_service():

    dispatcher = cherrypy.dispatch.RoutesDispatcher()
    conf = {'global': 
                {
                    'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
                    'tools.staticdir.root': os.path.dirname(os.path.abspath(__file__)),
                    'server.socket_host':'0.0.0.0'
                }, 
            
            '/' : 
                {
                    'request.dispatch' : dispatcher, 
                },
            '/css': 
                {
                    'tools.staticdir.on': True,
                    'tools.staticdir.dir': 'css'
                },
            '/js':
                {
                    'tools.staticdir.on': True,
                    'tools.staticdir.dir': 'js'
                },
            '/img':
                {
                    'tools.staticdir.on': True,
                    'tools.staticdir.dir': 'img'
                }
    }
    
    
    cherrypy.config.update(conf)
    app = cherrypy.tree.mount(None, config=conf)
    
    if os.path.isfile('HangmanDB.pickle'):
        print 'loading db'
        db = pickle.load(file('HangmanDB.pickle'))
    else:
        db = { 'games':{}, 'users':{}, 'emails_to_uids':{}, 'username_words_to_uids':{}, 'username_word_starts_to_uids':{}, 'events':[] }
    
    if 'ai' not in db['users']:
        db['users']['ai'] = { 'usermail':"*****@*****.**",
                              'hashed_pass' : 'ai',
                              'username': "******",
                              'friends': [],
                              'incoming_friend_requests':[],
                              'outgoing_friend_requests':[],
                              'profile_image' : 'watson.jpg'
                            }

    if 'events' not in db: db['events'] = list()
    
    #Overwrite DB for testing
    if len(sys.argv) > 1 and sys.argv[1] == '-d':
        db = createMockDB()
    
    page_handler = Page_Handler(db)
    game_handler = Game_Handler(db)
    account_handler = Account_Handler(db)

    thread.start_new_thread(auto_save, (db,))

    connect_page_handler_dispatches(dispatcher, page_handler)
    connect_game_handler_dispatches(dispatcher, game_handler)
    connect_account_handler_dispatches(dispatcher, account_handler)
    
    cherrypy.quickstart(app)
def letter_completes_word(letter):
	#try:
		if letter not in games['2']['correct_letters']:
			game_handler.guess_letter('2', letter)

			if letter in games['2']['correct_letters'] and games['2']['win'] == '2':
				print "> Letter in word, completes word: PASSED" 
			else:
				print "> Letter in word, completes word: FAILED"
	#except:
	#	print ">> Letter in word, completes word: FAILED"


if __name__ == "__main__":
    
    mockDB = createMockDB()
    
    global games
    global game_handler
    games = mockDB["games"]
    game_handler = Game_Handler(mockDB)
    
    letter_in_word("I")
    letter_not_in_word("P")
    letter_already_used("E")
    letter_completes_word("T")
    duplicate_phrase("TESTBADWORD")
    incorrect_phrase("TESTING")
    correct_phrase("TESTINGWORD")