示例#1
0
    def post(self):
        username = self.get_argument('username')
        item_id = self.get_argument('item_id')
        try: file1 = self.request.files['file'][0]
        except: file1 = None
        final_string = ''
        session = Session()
        try:
            user = dbutils.get_or_create(session, User, username=username)
            item = dbutils.get_or_create(session, Item, item_id=item_id)
            item_completion = dbutils.get_or_create(session, ItemCompletion, item_id=item.id, user_id=user.id)

            if file1 is not None:
                original_fname = file1['filename']

                extension = os.path.splitext(original_fname)[1]
                final_filename = item_id + extension
                if not os.path.exists("./uploads"):
                    os.makedirs("./uploads")
                if not os.path.exists("./uploads/%s" % username):
                    os.makedirs("./uploads/%s" % username)
                output_file = open("./uploads/" + username + "/" + final_filename, 'wb')
                output_file.write(file1['body'])
                item_completion.file_path = "uploads/" + username + "/" + final_filename

            session.add(item_completion)
            session.commit()
            final_string = "You have crossed item " + item_id + " off your bucket list!"
        except Exception, e:
            session.rollback()
            logger.exception(e)
            final_string = "Oops!  Something went wrong.  Please try again"
示例#2
0
def populate_powerups():
    session = Session()
    
    dbl_shot_pwr = get_or_create(session, Powerup, title='double_shot', cost=DOUBLE_SHOT_PRICE, description="Double the number of shots you can fire in 24 hours")
    reload_pwr = get_or_create(session, Powerup, title='fast_reload', cost=FAST_RELOAD_PRICE, description="Half the time it takes to fire again")
    bdy_dbl_pwr = get_or_create(session, Powerup, title='body_double', cost=BODY_DOUBLE_PRICE, description="Have a body double take a shot meant for you")
    session.commit()
示例#3
0
 def add_game_master(self, user=None, user_id=None):
     if user is None and user_id is None:
         raise Exception("No user or user_id found")
     elif user is not None and user in self.user_list:
         get_usergame(user.username, self.id).is_game_master = True
     elif user is not None and user not in self.user_list:
         self.add_user(user, True)
     elif user_id is not None:
         get_or_create(Session(), UserGame, user_id=user_id, game_id=self.id)
示例#4
0
文件: models.py 项目: sosso/eashl
 def __init__(self, game_id, club_id, position, points, hits, username):
     self.user_id = get_or_create(Session(), User, username=username).id  
     self.game_id = game_id
     self.club_id = club_id
     self.position = position
     self.points = points
     self.hits = hits
 def post(self):
     username = self.get_argument('username')
     game_id = self.get_argument('game_id')
     session = Session()
     try:
         user = dbutils.get_or_create(session, User, username=username)
     except Exception, e:
         session.rollback()
         final_string = "Oops!  Something went wrong.  Please try again"
示例#6
0
def process_game(game, dt_stamp, session):
    logger = logging.getLogger('process_game')
    left_team_id, right_team_id = get_team_ids(game)
    left_team_names, right_team_names = get_team_names(game)
    game_info = get_game_info(game, left_team_id)
    left_logo, right_logo = get_logos(game, left_team_names[0], right_team_names[0])
    logger.debug('game processing: %s' % simplejson.dumps(game_info))
    if len(session.query(Game).filter_by(ea_id=game_info['id']).all()) == 0:  # new game
        left_club = get_or_create(session, Club, False, ea_id=left_team_id, name=left_team_names[0], abbr=left_team_names[1])
        right_club = get_or_create(session, Club, False, ea_id=right_team_id, name=right_team_names[0], abbr=right_team_names[1])
        logger.info('New Game: %s vs %s' %(left_club.name, right_club.name))
        left_club.update_logo(left_logo)
        right_club.update_logo(right_logo)
        game = get_or_create(session, Game, \
                              ea_id=game_info['id'], club_1_id=left_club.id, \
                              club_1_score=game_info['score'][0], \
                              club_2_id=right_club.id, club_2_score=game_info['score'][1],\
                              time=game_info['time'], ea_page_timestamp=dt_stamp)
        ranks = [get_rank_info(club) for club in [left_club, right_club]]
        game.update_rank_info(ranks)
        match_detail_html = requests.get(game_info['url']).content
        match_detail_soup = BeautifulSoup(match_detail_html)
        try:    
            left_team_stats, right_team_stats = get_team_stats(match_detail_soup)
        except ValueError as e:
            return
        try:
            for player in left_team_stats:
                usergame= UserGame(username=player['player_name'], game_id=game.id, \
                                  club_id=left_club.id, position=player['Position'], points=player['Points'], \
                                  hits=player['Total Number of Hits'])
                session.add(usergame)
                session.flush()
            for player in right_team_stats:
                usergame = UserGame(username=player['player_name'], game_id=game.id, \
                                      club_id=right_club.id, position=player['Position'], points=player['Points'], \
                                      hits=player['Total Number of Hits'])
                session.add(usergame)
                session.flush()
        except Exception as e:
            session.rollback()
            logger.exception(e)
    else:
        logger.debug('Game already processed')
示例#7
0
    def get(self):
        username = self.get_argument('username')

        session = Session()
        try:
            user = dbutils.get_or_create(session, User, username=username)
            final_string = "User creation successful!"
        except Exception, e:
            session.rollback()
            final_string = "User creation failed."
示例#8
0
    def get(self):
        item_id = self.get_argument('itemid')
        description = self.get_argument('description', '')

        session = Session()
        try:
            item = dbutils.get_or_create(session, Item, item_id=item_id)
            item.description = description
            session.add(item)
            session.flush()
            session.commit()
            finish_string = "Item added"
#            completed_items = session.Query(ItemCompletion).filter()
        except Exception, e:
            session.rollback()
            finish_string = "Item not added"
示例#9
0
    def get(self):
        username = self.get_argument('username')

        session = Session()
        try:
            user = dbutils.get_or_create(session, User, username=username)
            item_array = []
            for item_completion in user.completed_items:
                item = item_completion.item
                info_dict = item.serialize()
                if item_completion.file_path is not None:
                    info_dict['image'] = item_completion.file_path
                else:
                    info_dict['image'] = ''
                item_array.append(info_dict)
#            completed_items = session.Query(ItemCompletion).filter()
        except Exception, e:
            session.rollback()
示例#10
0
def process_game(game_id):
    game_url = base_game_details_url % game_id
    game_req = urllib2.Request(game_url, None, headers)
    try:
        game_result_html = urllib2.urlopen(game_req, None, 30).read()
        game_soup = BeautifulSoup(game_result_html)
        our_stats = game_soup.find('div', {"class":'yui-u first'})
        guys_who_played = our_stats.findAll('a', {"title":lambda x: x and x.startswith('View'), "class":None})
        session = Session()
        game = Game(match_id=game_id)
        session.add(game)
        session.flush()
        for teammate in guys_who_played:
            player = dbutils.get_or_create(session, Player, username=teammate.contents[0])
            game_played = GamePlayed(player.id, game.id)
            session.add(game_played)
        session.flush()
        session.commit()
        Session.remove()
        pass
    except Exception, e:
        print('Game request failed for %s' % game_id)
示例#11
0
 def add_user(self, user, is_game_master=False):
     s = Session()
     usergame = get_or_create(s, UserGame, user_id=user.id, game_id=self.id, is_game_master=is_game_master, max_shots_per_24_hours=self.max_shots_per_24_hours, max_shot_interval_minutes=self.max_shot_interval_minutes)
     s.commit()