def get_sailkapenak_by_league(league):
        key = 'rank_{}'.format(league.upper())
        league = league.upper()
        if league.lower() == 'euskotren':
            league = league.lower()
        endkey = "{}z".format(key)

        start = key
        end = endkey
        with get_db_connection() as database:
            try:
                ranks = database.get_view_result("estropadak",
                                                 "rank",
                                                 raw_result=True,
                                                 startkey=start,
                                                 endkey=end,
                                                 include_docs=True,
                                                 reduce=False)
                result = []
                for rank in ranks['rows']:
                    result.append(rank['doc'])
                return result
            except KeyError:
                return {'error': 'Estropadak not found'}, 404
            return result
    def get_plantila(team, league, year):
        with get_db_connection() as database:
            try:
                id = f'team_{league}_{year}_{team}'
                taldea = database[id]
                talde_izenak = database['talde_izenak']
                talde_izenak = {k.lower(): v for k, v in talde_izenak.items()}
                _rowers = []
                for i, rower in enumerate(taldea['rowers']):
                    historial = []
                    for h in rower['historial']:
                        t = list(h.items())
                        try:
                            normalized_name = talde_izenak[t[0][1].lower()]
                        except KeyError:
                            normalized_name = t[0][1]
                        historial.append({
                            'name': normalized_name,
                            'year': t[0][0]
                        })
                    rower['historial'] = historial
                    rower['name'] = ' '.join(
                        rower['name'].split(' ')[:-1]).title()
                    rower['index'] = i
                    _rowers.append(rower)
                taldea['rowers'] = _rowers

            except TypeError:
                logging.info("Not found", exc_info=1)
                taldea = None
            except KeyError:
                logging.info("Not found", exc_info=1)
                taldea = None
            return taldea
 def get_emaitza_by_id(id):
     with get_db_connection() as database:
         try:
             emaitza = database[id]
         except KeyError:
             emaitza = None
         return emaitza
Beispiel #4
0
 def update_years_into_db(years, league):
     with get_db_connection() as database:
         doc = database['years']
         if league:
             doc[league] = years
         else:
             doc = years
         doc.save()
 def get_talde_izen_normalizatua(taldea):
     with get_db_connection() as database:
         talde_izenak = database['talde_izenak']
         try:
             talde_izena = talde_izenak[taldea]
         except KeyError:
             talde_izena = talde_izenak[taldea.title()]
         return talde_izena
 def delete_emaitza_from_db(emaitza_id):
     with get_db_connection() as database:
         document = database[emaitza_id]
         if document.exists():
             document.fetch()
             document.delete()
             return True
     return False
 def update_emaitza_into_db(emaitza_id, emaitza):
     with get_db_connection() as database:
         document = database[emaitza_id]
         if document.exists():
             document.update(emaitza)
             document.save()
             return document.exists()
         else:
             return None
    def insert_emaitza_into_db(emaitza):
        data = datetime.datetime.fromisoformat(emaitza['estropada_data'])
        talde_izen_normalizatua = TaldeakDAO.get_talde_izen_normalizatua(
            emaitza['talde_izena'])
        izena = talde_izen_normalizatua.replace(' ', '-')
        emaitza[
            '_id'] = f'{data.strftime("%Y-%m-%d")}_{emaitza["liga"]}_{izena}'

        with get_db_connection() as database:
            document = database.create_document(emaitza)
            return document.exists()
 def get_taldea_by_id(id):
     with get_db_connection() as database:
         try:
             taldea = database[id]
         except TypeError:
             logging.info("Not found", exc_info=1)
             taldea = None
         except KeyError:
             logging.info("Not found", exc_info=1)
             taldea = None
         return taldea
 def get_estropada_by_id(id):
     with get_db_connection() as database:
         try:
             estropada = database[id]
             estropada['data'] = estropada['data'].replace(' ', 'T')
         except TypeError:
             logging.error("Not found", exc_info=1)
             estropada = None
         except KeyError:
             logging.error("Not found", exc_info=1)
             estropada = None
         return estropada
 def get_sailkapena_by_league_year(league, year, category):
     if league in ['gbl', 'bbl', 'btl', 'gtl']:
         _category = category.replace(' ', '_').lower()
         key = 'rank_{}_{}_{}'.format(league.upper(), year, _category)
     else:
         key = 'rank_{}_{}'.format(league.upper(), year)
     with get_db_connection() as database:
         try:
             doc = database[key]
         except KeyError:
             return None
         result = doc
         return result
Beispiel #12
0
    def get_taldeak(league, year=None, category=None):
        league = league.upper()

        taldeak = []
        with get_db_connection() as database:
            try:
                all_teams = database['talde_izenak2']
                if year is not None:
                    key = f'rank_{league}_{year}'
                    if category:
                        key = f'rank_{league}_{year}_{category.lower()}'
                    resume = database[key]
                    for taldea in resume['stats'].keys():
                        try:
                            short = all_teams[taldea.title()].get('acronym')
                        except KeyError:
                            s = 0
                            for k in all_teams.keys():
                                simmilarity = textdistance.hamming.similarity(
                                    k, taldea.capitalize())
                                if simmilarity > s:
                                    s = simmilarity
                                    team = k
                            short = all_teams[team].get('acronym') + taldea[-2]
                        taldeak.append({
                            "name":
                            taldea,
                            "alt_names":
                            all_teams.get(taldea,
                                          {}).get('alt_names', [taldea]),
                            "short":
                            short
                        })
                else:
                    league = league.lower()
                    resume = database[f'taldeak_{league}']
                    for taldea in resume['taldeak']:
                        taldeak.append({
                            "name":
                            taldea,
                            "alt_names":
                            all_teams[taldea].get('alt_names'),
                            "short":
                            all_teams[taldea].get('acronym')
                        })
            except KeyError:
                logging.info("Not found", exc_info=1)
            return taldeak
Beispiel #13
0
def clean_up():
    yield
    docs = [
        '2019-06-18_ARC1_San-Juan',
        '2019-06-18_ARC1_Donostiarra',
    ]
    with get_db_connection() as database:
        for doc_id in docs:
            try:
                doc = database[doc_id]
                if doc.exists():
                    # with Document(db, doc_id) as doc:
                    doc.fetch()
                    doc.delete()
            except KeyError:
                pass
Beispiel #14
0
def clean_up():
    print("setup")
    yield
    print("deleting")
    docs = [
        '2021-06-01_ACT_Estropada-test',
        '2021-06-01_ARC1_Estropada-test2',
        '2021-06-02_ARC1_Estropada-test4',
        '2021-06-01_ACT_Kaiku'
    ]
    with get_db_connection() as database:
        for doc_id in docs:
            try:
                doc = database[doc_id]
                if doc.exists():
                    doc.fetch()
                    doc.delete()
            except KeyError:
                pass
 def update_estropada_into_db(estropada_id, estropada):
     with get_db_connection() as database:
         doc = database[estropada_id]
         doc['izena'] = estropada['izena']
         doc['data'] = estropada['data']
         doc['liga'] = estropada['liga']
         doc['lekua'] = estropada['lekua']
         doc['sailkapena'] = estropada['sailkapena']
         doc['type'] = estropada['type']
         if estropada.get('bi_jardunaldiko_bandera'):
             doc['bi_jardunaldiko_bandera'] = estropada[
                 'bi_jardunaldiko_bandera']
         if estropada.get('related_estropada'):
             doc['related_estropada'] = estropada['related_estropada']
         if estropada.get('jardunaldia'):
             doc['jardunaldia'] = estropada['jardunaldia']
         if len(estropada.get('kategoriak', [])):
             doc['kategoriak'] = estropada['kategoriak']
         doc.save()
    def get_estropadak_by_league_year(league,
                                      year,
                                      page=0,
                                      count=app.config.PAGE_SIZE):
        logging.info("League:%s and year: %s", league, year)
        start = []
        end = []
        if league:
            league = league.upper()
            if league.lower() == 'euskotren':
                league = league.lower()
            start.append(league)
            end.append(league)

        if year:
            yearz = "{}".format(year)
            fyearz = "{}z".format(year)
            start.append(yearz)
            end.append(fyearz)
        else:
            end = ["{}z".format(league)]

        with get_db_connection() as database:
            try:
                estropadak = database.get_view_result("estropadak",
                                                      "all",
                                                      raw_result=True,
                                                      startkey=start,
                                                      endkey=end,
                                                      include_docs=True,
                                                      reduce=False,
                                                      skip=count * page,
                                                      limit=count)
                result = []
                for row in estropadak['rows']:
                    estropada = row['doc']
                    estropada['data'] = estropada['data'].replace(' ', 'T')
                    result.append(estropada)
                return result
            except KeyError:
                return {'error': 'Estropadak not found'}, 404
 def get_emaitzak(criteria: dict, page: int, count: int):
     start = page * count
     end = start + count
     docs = []
     total = 0
     if 'liga' in criteria:
         if criteria['liga'] == 'EUSKOTREN':
             criteria['liga'] = criteria['liga'].lower()
     with get_db_connection() as database:
         emaitzak = database.get_query_result(criteria)
         try:
             for emaitza in emaitzak:
                 total = total + 1
             emaitzak = database.get_query_result(criteria)
             docs = emaitzak[start:end]
         except IndexError:
             return {'error': 'Bad pagination'}, 400
         return (
             docs,
             total,
         )
 def get_estropadak_by_team(team, league_id):
     start = [team]
     if league_id:
         start.append(league_id)
     end = ["{}z".format(team)]
     if league_id:
         end.append(league_id)
     with get_db_connection() as database:
         try:
             estropadak = database.view("estropadak/by_team",
                                        estropadak_transform,
                                        startkey=start,
                                        endkey=end,
                                        include_docs=True,
                                        reduce=False)
             result = []
             for estropada in estropadak.rows:
                 result.append(estropada)
             return result
         except KeyError:
             return {'error': 'Estropadak not found'}, 404
    def get_emaitzak_by_league_year(league, year, team=None):
        league = league.upper()
        if league.lower() == 'euskotren':
            league = league.lower()
        if year:
            start = [league, team, year]
            end = [league, team, year + 1]
        else:
            start = [league, team]
            end = [league, team + 'z']

        with get_db_connection() as database:
            emaitzak = database.get_view_result("emaitzak",
                                                "by_team",
                                                startkey=start,
                                                endkey=end,
                                                include_docs=False,
                                                reduce=False)
            result = []
            for emaitza in emaitzak:
                result.append(db[emaitza['id']])
            return result
Beispiel #20
0
def two_day_competition():
    print("setup")
    docs = [{
        "_id": "2021-06-01_ACT_J1",
        "data": "2021-06-01T18:00:00",
        "izena": "J1",
        "liga": "ACT",
        "urla": "http://foo.com",
        "bi_jardunaldiko_bandera": True,
        "jardunaldia": 1,
        "related_estropada": "2021-06-02_ACT_J2"
    }, {
        "_id": "2021-06-02_ACT_J2",
        "data": "2021-06-02T18:00:00",
        "izena": "J2",
        "liga": "ACT",
        "urla": "http://foo.com",
        "bi_jardunaldiko_bandera": True,
        "jardunaldia": 2,
        "related_estropada": "2021-06-01_ACT_J1"
    }]
    with get_db_connection() as database:
        for doc in docs:
            try:
                docum = database.create_document(doc)
                print(f"Created {docum['_id']}")
            except KeyError:
                pass
        yield
        for doc in docs:
            try:
                doc = database[doc['_id']]
                print(f"Deleted {doc['_id']}")
                if doc.exists():
                    doc.fetch()
                    doc.delete()
            except KeyError:
                pass
 def delete_sailkapena_from_db(sailkapena_id):
     with get_db_connection() as database:
         doc = database[sailkapena_id]
         if doc.exists():
             doc.fetch()
             doc.delete()
 def insert_sailkapena_into_db(sailkapena):
     with get_db_connection() as database:
         doc = database.create_document(sailkapena)
         return doc.exists()
 def update_sailkapena_into_db(sailkapena_id, sailkapena):
     with get_db_connection() as database:
         doc = database[sailkapena_id]
         doc['stats'] = sailkapena['stats']
         doc.save()
Beispiel #24
0
 def get(self):
     with get_db_connection() as database:
         doc = database['active_year']
         return doc['year']
Beispiel #25
0
 def get_years_from_db():
     with get_db_connection() as database:
         return database['years']
 def get_sailkapena_by_id(id: str):
     with get_db_connection() as database:
         try:
             return database[id]
         except KeyError:
             return None  # {'error': 'Sailkapena not found'}, 404
 def delete_estropada_from_db(estropada_id):
     with get_db_connection() as database:
         doc = database[estropada_id]
         if doc.exists():
             doc.fetch()
             doc.delete()
 def insert_estropada_into_db(estropada):
     logging.info(estropada)
     with get_db_connection() as database:
         document = database.create_document(estropada)
         return document.exists()