import datetime
import logging
from typing import Any, Dict, List, Optional, Tuple, Union, cast

from flask import Blueprint, g, request, url_for
from flask_babel import gettext, ngettext

from magic import multiverse, oracle, seasons
from shared import configuration, dtutil
from shared.pd_exception import DatabaseException
from shared_web.flask_app import PDFlask

APP = PDFlask(__name__)
APP.logger.setLevel(logging.WARN)  # pylint: disable=no-member,no-name-in-module
SEASONS = Blueprint('seasons', __name__, url_prefix='/seasons/<season_id>')


def get_season_id() -> int:
    season_id = g.get('season_id', seasons.current_season_num())
    if season_id == 'all':
        return 0
    return season_id


@SEASONS.url_defaults
def add_season_id(_endpoint: str, values: Dict[str, Any]) -> None:
    values.setdefault('season_id', get_season_id())


@SEASONS.url_value_preprocessor
def pull_season_id(_endpoint: str, values: Dict[str, Any]) -> None:
Beispiel #2
0
 def __init__(self, app: PDFlask) -> None:
     self.test_client = app.test_client()
     # Propagate the exceptions to the test client
     self.test_client.testing = True  # type: ignore
     self.base_tests()
import subprocess
from typing import Dict, List, Union

from flask import url_for
from sqlalchemy import create_engine
from sqlalchemy_utils import create_database, database_exists

from shared import configuration
from shared_web.flask_app import PDFlask

APP = PDFlask(__name__)

APP.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
APP.config[
    'SQLALCHEMY_DATABASE_URI'] = 'mysql://{user}:{password}@{host}:{port}/{db}'.format(
        user=configuration.get('mysql_user'),
        password=configuration.get('mysql_passwd'),
        host=configuration.get('mysql_host'),
        port=configuration.get('mysql_port'),
        db=configuration.get('logsite_database'))

from . import db, stats, api, views  # isort:skip # pylint: disable=wrong-import-position, unused-import


def __create_schema() -> None:
    engine = create_engine(APP.config['SQLALCHEMY_DATABASE_URI'])
    if not database_exists(engine.url):
        create_database(engine.url)
        db.DB.create_all()
    engine.dispose()
from flask import redirect
from github_webhook import Webhook

from shared import configuration
from shared_web.flask_app import PDFlask

from . import webhooks

APP = PDFlask(__name__)
WEBHOOK = Webhook(APP, endpoint='/api/github')


@APP.route('/')
def home():
    return 'build-commit-id: ' + APP.config['commit-id']


@WEBHOOK.hook()
def on_push(data):
    ref = data['ref']
    print(f'Got push on {ref}')
    if ref == 'refs/heads/master':
        webhooks.update_prs(data['repository']['full_name'])
    return data


@WEBHOOK.hook(event_type='status')
def on_status(data):
    sha = data.get('sha')
    context = data.get('context')
    state = data.get('state')
Beispiel #5
0
import datetime
import logging
import subprocess
from typing import Dict, List, Tuple, Union

from flask import Blueprint, g, url_for
from flask_babel import gettext, ngettext

from magic import multiverse, oracle, rotation
from shared import configuration, dtutil
from shared.pd_exception import DatabaseException
from shared_web.flask_app import PDFlask

APP = PDFlask(__name__)
APP.logger.setLevel(logging.WARN)  # pylint: disable=no-member,no-name-in-module
SEASONS = Blueprint('seasons', __name__, url_prefix='/seasons/<season_id>')


def get_season_id() -> int:
    return g.get('season_id', rotation.current_season_num())


@SEASONS.url_defaults
def add_season_id(_endpoint, values):
    values.setdefault('season_id', get_season_id())


@SEASONS.url_value_preprocessor
def pull_season_id(_endpoint, values):
    v = values.pop('season_id')
    g.season_id = rotation.season_id(v)