Exemplo n.º 1
0
	def post(self):
		user = tusers.get_current_user()

		if user:
			#Check if we are modifying a tournament or making a new one
			if self.request.get('id'):
				new_tournament = ndb.Key('Tournament', int(self.request.get('id'))).get()
			else:
				new_tournament = Tournament()
			new_tournament.name = self.request.get('name')
			new_tournament.owner = [user.key]
			new_tournament.trackpin = pin_gen()
						
			dates_valid = True
			
			try:
				new_tournament.start = datetime.datetime.strptime(self.request.get('start'), '%Y-%m-%d').date()
				new_tournament.end = datetime.datetime.strptime(self.request.get('end'), '%Y-%m-%d').date()
			except ValueError:
				dates_valid = False
				
			if (dates_valid and len(new_tournament.name) > 0):
				new_tournament.put()
			#Send the user back to the tournaments page
			self.redirect('/tournaments')

		else:
			self.redirect(tusers.create_login_url(self.request.uri))
def create_tournament(payload):
    data = request.json

    # Prepare game
    game = Game.query.filter(Game.id == data['gameId']).first()
    if not game:
        game = Game.query.filter(Game.name.ilike(data['gameName'].strip())).first()
    if not game:
        game = Game(name=data['gameName'])
        db.session.add(game)
        db.session.flush()

    tournament = Tournament(name=data)
    # Generate the UUID
    uuid_len = 6
    tries = 0
    max_tries = 10
    tournament_found = True
    uuid = ''
    while tournament_found:
        if tries >= max_tries:
            tries = 0
            uuid_len += 1
        tries += 1
        uuid = generate_uuid(uuid_len)
        tournament_found = db.session.query(Tournament).filter(tournament.uuid == uuid).first()
    tournament.uuid = uuid
    tournament.name = data['name']
    tournament.max_participants = data['maxParticipants']
    if 'startDate' in data:
        tournament.start_date = data['startDate']
    if 'startDateTz' in data:
        tournament.start_date_tz = data['startDateTz']
    tournament.game_id = game.id
    user = auth.get_logged_user()
    tournament.creator_id = user.id
    db.session.add(tournament)
    db.session.flush()
    db.session.commit()
    return jsonify(tournament.long()), 201
Exemplo n.º 3
0
from selenium import webdriver
from util import *
import lxml
from bs4 import BeautifulSoup
from models import Tournament

ATP_CALENDAR_URL = 'http://tennisabstract.com/reports/atp_calendar.html'

if __name__ == '__main__':

    # get page source
    driver = webdriver.PhantomJS()
    driver.get(ATP_CALENDAR_URL)
    source = driver.page_source

    # parse tournaments and add to database
    session = mysql_session(ensure_created=True)
    soup = BeautifulSoup(source, "lxml")
    rows = soup.find(id='reportable').find('tbody').find_all('tr')
    for row in rows:
        cells = row.find_all('td')
        t = Tournament()
        t.name = cells[1].text
        t.surface = cells[2].text
        t.level = cells[3].text
        session.add(t)
    session.commit()

    print 'Done.'