Esempio n. 1
0
def get_champC(driver, params):
    ret = []
    champ = {}
    teams = []
    data = []
    try:
        print("::: CHAMPIONSHIP CONSTRUCTOR")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//div[@id='tabs-3']/div/ul[@class='puntajes']"))
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./li")
            strTeam = tds[2].find_element_by_xpath("./span").get_attribute(
                "innerHTML")
            idTeam = params["catRCtrl"].upper() + "-C-" + \
                strTeam.lower().strip().replace(" ", "_", 9)
            linkTeam = tds[1].find_element_by_xpath("./img").get_attribute(
                "src")
            team = {
                "idTeam": idTeam,
                "strTeam": strTeam,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idTeam,
                "numSeason": parse_int(params["year"]),
                "strGender": "C",
                "strTeamLogo": linkTeam,
                "strTeamBadge": linkTeam,
                "strTeamFanart4": linkTeam
            }
            teams.append(team)
            line = {
                "idPlayer":
                idTeam,
                "position":
                parse_int(tds[0].get_attribute("innerHTML").replace("°", "")),
                "totalPoints":
                parse_float(tds[3].get_attribute("innerHTML")),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-C",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "C"
        }
        ret.append(teams)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [teams, champ])
        return "::: ERROR CHAMP CONSTRUCTOR :::"
Esempio n. 2
0
def get_champD(driver, pilots, params):
    ret = []
    champ = {}
    data = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//div[@id='tabs-1']/div/ul[@class='puntajes']"))
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./li")
            nameDriver = tds[2].find_element_by_xpath("./span").text
            idDriver = ""
            for p in range(0, len(pilots)):
                if (pilots[p]["strPlayer"].upper() == nameDriver.upper()):
                    idDriver = pilots[p]["idRCtrl"]
                    break
            if (idDriver == ""):
                idDriver = params["catRCtrl"].upper() + "-" + nameDriver.lower(
                ).strip().replace(" ", "_", 9)
                linkTeam = tds[1].find_element_by_xpath("./img").get_attribute(
                    "src")
                pilot = {
                    "idPlayer": idDriver,
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": idDriver,
                    "strPlayer": nameDriver.title(),
                    "numSeason": parse_int(params["year"]),
                    "strFanart4": linkTeam
                }
                pilots.append(pilot)
            line = {
                "idPlayer": idDriver,
                "position": parse_int(tds[0].text.replace("°", "")),
                "totalPoints": parse_float(tds[3].text),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [pilots, champ])
        return "::: ERROR CHAMP DRIVERS :::"
Esempio n. 3
0
def get_champD(driver, params):
    champ = {}
    data = []
    pilots = []
    pilot = {}
    ret = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath(
                "//tbody/tr")
        )
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            idDriver = tds[2].text
            idPlayer = params["catRCtrl"].upper() + "-" + \
                idDriver.replace(" ", "_", 9).replace(",", "")
            line = {
                "idPlayer": idPlayer,
                "position": parse_int(tds[0].text),
                "totalPoints": parse_float(tds[4].text),
                "cups": parse_int(tds[5].text.replace("x", "")),
            }
            strFanart4 = get_brand_logo(tds[3].text)
            pilot = {
                "idPlayer": idPlayer,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idPlayer,
                "strPlayer": idDriver.title(),
                "strTeam": tds[3].text,
                "strNumber": tds[1].text,
                "strFanart4": strFanart4,
                "numSeason": parse_int(params["year"]),
                "isOnlyImg": False
            }
            pilots.append(pilot)
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp": params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [pilots, champ])
        return "::: ERROR CHAMP DRIVERS :::"
Esempio n. 4
0
def get_events(driver, params):
    data = []
    events = []
    circuits = []
    circList = []
    try:
        print("::: EVENTS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//tbody/tr"))
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            idEvent = tds[2].text.replace(" ", "_", 20)
            event = {
                "idEvent":
                params["catRCtrl"].upper() + "-" + params["year"] + "-" +
                str(it + 1) + "-" + idEvent,
                "strEvent":
                tds[2].text,
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                str(it + 1) + "_" + idEvent,
                "intRound":
                str(it + 1),
                "strDate":
                tds[1].text,
                "idCircuit":
                "CARX_" + idEvent,
                "strCircuit":
                tds[2].text,
                "numSeason":
                parse_int(params["year"]),
                "strSeason":
                params["year"],
            }
            events.append(event)
            circuit = {
                "idCircuit": event["idCircuit"],
                "strCircuit": event["strEvent"],
                "idRCtrl": event["idCircuit"],
                "strLeague": "carx",
                "strCountry": "Argentina",
                "numSeason": parse_int(params["year"]),
                "intSoccerXMLTeamID": "ARG",
            }
            if (circuit["idCircuit"] not in circList):
                circuits.append(circuit)
                circList.append(circuit["idCircuit"])
        data.append(circuits)
        data.append(events)
        logger(data)
        print("::: PROCESS FINISHED :::")
        return data
    except Exception as e:
        logger(e, True, "Events", [events, circuits])
        return "::: ERROR EVENTS :::"
Esempio n. 5
0
def get_champD(driver, params):
    champ = {}
    pilots = []
    data = []
    ret = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//tbody/tr"))
        points = 0
        for it in range(1, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            nameDriver = tds[2].text
            text = nameDriver.split(",")
            idDriver = text[1].strip().replace(" ", "-",
                                               9) + "-" + text[0].strip()
            line = {
                "idPlayer": idDriver.lower(),
                "position": parse_int(tds[0].text),
                "totalPoints": parse_float(tds[len(tds) - 1].text),
            }
            points += line["totalPoints"]
            data.append(line)
            pilot = {
                "idPlayer":
                params["catRCtrl"].upper() + "-" + idDriver.lower(),
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver.lower(),
                "strPlayer": (text[1].strip() + " " + text[0].strip()).title(),
                "strNumber": tds[1].text,
                "numSeason": parse_int(params["year"]),
            }
            pilots.append(pilot)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [pilots, champ])
        return "::: ERROR CHAMP DRIVERS :::"
Esempio n. 6
0
def get_champD(driver, params):
    champ = {}
    data = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        btn_show = None
        try:
            btn_show = WebDriverWait(driver, 30).until(
                lambda d: d.find_element_by_xpath('//button[@class="hFZZS"]'))
            btn_show.click()
        except Exception as e:
            logger(e, True, "Championship", btn_show)
            pass
        time.sleep(5)
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "Pos."):
                points = 0
                trs = tables[table].find_elements_by_xpath("./tbody/tr")
                for tr in range(0, len(trs)):
                    tds = trs[tr].find_elements_by_xpath("./td")
                    linkDriver = get_link_MSS(tds[1])
                    idDriver = get_id_link_MSS(params["urlBase"], linkDriver,
                                               "D")
                    line = {
                        "idPlayer": idDriver,
                        "position": parse_int(tds[0].text),
                        "totalPoints": parse_float(tds[2].text),
                    }
                    points += line["totalPoints"]
                    data.append(line)
                champ = {
                    "idChamp":
                    params["catRCtrl"].upper() + "-" + params["year"] + "-D",
                    "numSeason": parse_int(params["year"]),
                    "strSeason": params["year"],
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": params["catOrigen"],
                    "idMss": params["catOrigen"],
                    "data": data,
                    "sumPoints": points,
                    "typeChamp": "D"
                }
                break
        logger(champ)
        print("::: PROCESS FINISHED :::")
        return champ
    except Exception as e:
        logger(e, True, "Championship", champ)
        return "::: ERROR CHAMP DRIVERS :::"
Esempio n. 7
0
def get_events(driver, params):
    data = []
    events = []
    circuits = []
    circList = []
    try:
        print("::: EVENTS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath(
                "//figure[contains(@class, 'vc_figure')]/div/img")
        )
        for it in range(0, len(items) - 1):
            linkEvent = items[it].get_attribute("src")
            idEvent = get_id_link_APTP(params, linkEvent, "E")
            event = {
                "idEvent": params["catRCtrl"].upper() + "-" +
                params["year"] + "-" + str(it + 1) + "-" + idEvent,
                "strEvent": "#" + str(it + 1),
                "idCategory": params["catRCtrl"],
                "idRCtrl": idEvent,
                "intRound": str(it + 1),
                "idCircuit": idEvent,
                "strCircuit": "",
                "numSeason": parse_int(params["year"]),
                "strSeason": params["year"],
                "strRSS": linkEvent,
            }
            events.append(event)
            circuit = {
                "idCircuit": event["idCircuit"],
                "strCircuit": "",
                "idRCtrl": event["idCircuit"],
                "strLeague": "aptp",
                "strCountry": "Argentina",
                "numSeason": parse_int(params["year"]),
                "intSoccerXMLTeamID": "ARG",
                "strLogo": linkEvent
            }
            if(circuit["idCircuit"] not in circList):
                circuits.append(circuit)
                circList.append(circuit["idCircuit"])
        data.append(circuits)
        data.append(events)
        logger(data)
        print("::: PROCESS FINISHED :::")
        return data
    except Exception as e:
        logger(e, True, "Events", [events, circuits])
        return "::: ERROR EVENTS :::"
Esempio n. 8
0
def get_drivers(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath(
                "//figure[contains(@class, 'vc_figure')]/div/img")
        )
        for it in range(0, len(items) - 1):
            linkDriver = items[it].get_attribute("src")
            idDriver = get_id_link_APTP(params, linkDriver, "D")
            nameDriver = (idDriver.replace("_", " ", 9).strip())
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-"
                + idDriver,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver,
                "strPlayer": nameDriver.title(),
                "numSeason": parse_int(params["year"]),
                "strRender": linkDriver.replace(".jpg", "-221x300.jpg"),
                "strDescriptionJP": idDriver.replace("_", " ", 9),
                "isOnlyImg": False,
                "strRSS": linkDriver,
            }
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 9
0
def get_teamsST(driver, params):
    teams = []
    try:
        print("::: TEAMS")
        items = WebDriverWait(
            driver,
            30).until(lambda d: d.find_elements_by_xpath("//article/a"))
        for it in range(0, len(items)):
            linkTeam = items[it].get_attribute("href")
            thumb = items[it].find_element_by_xpath(".//img").get_attribute(
                "src"),
            idTeam = get_id_link_AUVO(params, thumb, "T")
            txt = idTeam.split("_")
            strTeam = ""
            for t in range(2, len(txt)):
                strTeam += txt[t] + " "
            team = {
                "idTeam": idTeam,
                "strTeam": "",
                "idCategory": params["catRCtrl"],
                "idRCtrl": idTeam,
                "numSeason": parse_int(params["year"]),
                "strGender": "T",
                "strThumb": thumb.replace(".jpg", "-300x189.jpg"),
                "strCutout": thumb,
                "strRSS": linkTeam,
            }
            teams.append(team)
        logger(teams)
        print("::: PROCESS FINISHED :::")
        return teams
    except Exception as e:
        logger(e, True, "Teams", teams)
        return "::: ERROR TEAMS :::"
Esempio n. 10
0
def get_drivers(driver, params):
    pilots = []
    pilotList = []
    try:
        print("::: DRIVERS")
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "Teams"):
                tbodys = tables[table].find_elements_by_xpath("./tbody")
                for body in range(0, len(tbodys)):
                    trs = tbodys[body].find_elements_by_xpath("./tr")
                    linkTeam = ""
                    idTeam = ""
                    strTeam = ""
                    for tr in range(0, len(trs)):
                        tds = trs[tr].find_elements_by_xpath("./td")
                        if (tds[0].text != ""):
                            linkTeam = get_link_MSS(tds[0])
                            idTeam = get_id_link_MSS(params["urlBase"],
                                                     linkTeam, "T")
                            strTeam = tds[0].text
                        linkDriver = get_link_MSS(tds[2])
                        idDriver = get_id_link_MSS(params["urlBase"],
                                                   linkDriver, "D")
                        pilot = {
                            "idPlayer":
                            params["catRCtrl"].upper() + "-" + idDriver,
                            "idCategory":
                            params["catRCtrl"],
                            "idRCtrl":
                            idDriver,
                            "idMss":
                            idDriver,
                            "strPlayer":
                            trs[tr].find_element_by_xpath(
                                "./td[3]").text.strip(),
                            "strNumber":
                            trs[tr].find_element_by_xpath(
                                "./td[2]").text.strip(),
                            "idTeam":
                            idTeam,
                            "strTeam":
                            strTeam,
                            "numSeason":
                            parse_int(params["year"]),
                            "strRSS":
                            linkDriver,
                        }
                        if (pilot["idPlayer"] not in pilotList):
                            pilots.append(pilot)
                            pilotList.append(pilot["idPlayer"])
                break
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 11
0
def get_drivers(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(
            driver, 30, 1,
            (NoSuchElementException)).until(lambda d: d.find_elements_by_xpath(
                "//div[@id='session-results']/a"))
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath(".//div")
            strPlayer = tds[1].text
            strNumber = tds[3].text
            idPlayer = strNumber + "_" + strPlayer.replace(" ", "_", 9)
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-" + idPlayer,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idPlayer,
                "strPlayer": strPlayer,
                "strNumber": strNumber,
                "numSeason": parse_int(params["year"]),
            }
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 12
0
def get_driversST(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//article[contains(@class, 'list-pilotos')]/a"))
        for it in range(0, len(items)):
            linkDriver = items[it].get_attribute("href")
            idDriver = get_id_link_AUVO(params, linkDriver, "D")
            txt = idDriver.split("_")
            strPlayer = ""
            strNumber = txt[0]
            for t in range(1, len(txt)):
                strPlayer += txt[t] + " "
            thumb = items[it].find_element_by_xpath(".//img").get_attribute(
                "src"),
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver,
                "strPlayer": strPlayer,
                "strNumber": strNumber,
                "numSeason": parse_int(params["year"]),
                "strThumb": thumb.replace(".png", "-253x300.png"),
                "strCutout": thumb,
                "strRSS": linkDriver,
            }
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 13
0
def get_drivers(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//tbody/tr"))
        for it in range(0, len(items)):
            if (it > 1):
                tds = items[it].find_elements_by_xpath("./td")
                strPlayer = tds[1].text + " / " + tds[3].text
                idDriver = strPlayer.replace(" / ", "_").replace(" ", "_", 9)
                strTeam = tds[4].text + " " + tds[5].text + " " + tds[6].text
                idTeam = strTeam.replace(" ", "_", 9)
                pilot = {
                    "idPlayer": params["catRCtrl"].upper() + "-" + idDriver,
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": idDriver,
                    "strPlayer": strPlayer,
                    "strNumber": tds[7].text,
                    "idTeam":
                    params["catRCtrl"].upper() + "-" + idTeam.lower(),
                    "strTeam": strTeam,
                    "numSeason": parse_int(params["year"]),
                    "strFanart4": get_brand_logo(tds[4].text),
                }
                pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 14
0
def get_drivers(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath("//table[3]/tbody/tr"))
        for it in range(2, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            names = tds[10].text.split("\n")
            idDriver = (names[0] + "_" + names[1]).replace(" ", "_")
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver,
                "strPlayer": names[0] + " - " + names[1],
                "strTeam": tds[9].text,
                "strNumber": tds[8].text,
                "numSeason": parse_int(params["year"]),
            }
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 15
0
def get_events(driver, params):
    events = []
    try:
        print("::: EVENTS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//tbody/tr"))
        for it in range(1, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            if (params["catOrigen"] == "2"):
                idd = 0
            else:
                idd = 1
            linkEvent = tds[3 + idd].find_element_by_xpath(
                "./a").get_attribute("href")
            idEvent = get_id_link_APAT(params, linkEvent, "E")
            link = tds[2].find_elements_by_xpath("./a")
            if (len(link) > 0):
                linkCircuit = link[0].get_attribute("href")
                idCircuit = get_id_link_APAT(params, linkCircuit, "C")
            else:
                linkCircuit = tds[2].text
                idCircuit = tds[2].text.replace(" ", "_")
            event = {
                "idEvent":
                params["catRCtrl"].upper() + "-" + params["year"] + "-" +
                str(it + 1) + "-" + idEvent,
                "strEvent":
                tds[2].text,
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                idEvent,
                "intRound":
                str(it + 1),
                "strDate":
                tds[1].text,
                "strResult":
                tds[3 + idd].text,
                "idCircuit":
                idCircuit,
                "strCircuit":
                tds[2].text,
                "numSeason":
                parse_int(params["year"]),
                "strSeason":
                params["year"],
                "strRSS":
                linkEvent,
            }
            events.append(event)
        logger(events)
        print("::: PROCESS FINISHED :::")
        return events
    except Exception as e:
        logger(e, True, "Events", events)
        return "::: ERROR EVENTS :::"
Esempio n. 16
0
def get_teams(driver, params):
    teams = []
    try:
        print("::: TEAMS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//div[contains(@class, 'team')]/div[@class='row']"))
        for it in range(0, len(items)):
            linkTeam = items[it].find_element_by_xpath(
                ".//div[@class='team-img']").get_attribute("style").replace(
                    'background-image: url("', '').replace('");', '')
            idTeam = get_id_link_TR(params, linkTeam, "T")
            try:
                city = items[it].find_element_by_xpath(
                    ".//div[@class='title']/span").text
            except Exception:
                city = ""
            team = {
                "idTeam": params["catRCtrl"].upper() + "-" + idTeam,
                "strTeam": items[it].find_element_by_xpath(".//h4").text,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idTeam,
                "numSeason": parse_int(params["year"]),
                "strGender": "T",
                "strTeamLogo": params["urlBase"] + linkTeam,
                "strTeamBadge": params["urlBase"] + linkTeam,
                "strStadiumLocation": city,
            }
            social = items[it].find_elements_by_xpath(
                ".//ul[contains(@class, 'social-list')]/li")
            if len(social) > 0:
                for i in range(0, len(social)):
                    link = social[i].find_element_by_xpath(
                        ".//a").get_attribute("href")
                    classs = social[i].get_attribute("class")
                    if ("twitter" in classs):
                        team["strTwitter"] = link
                    elif ("insta" in classs):
                        team["strInstagram"] = link
                    elif ("face" in classs):
                        team["strFacebook"] = link
                    elif ("tube" in classs):
                        team["strYoutube"] = link
                    elif ("web" in classs):
                        team["strWebsite"] = link
            teams.append(team)
        logger(teams)
        print("::: PROCESS FINISHED :::")
        return teams
    except Exception as e:
        logger(e, True, "Teams", teams)
        return "::: ERROR TEAMS :::"
Esempio n. 17
0
def get_teams(driver, params):
    teams = []
    teamList = []
    try:
        print("::: TEAMS")
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "Teams"):
                tbodys = tables[table].find_elements_by_xpath("./tbody")
                for body in range(0, len(tbodys)):
                    trs = tbodys[body].find_elements_by_xpath("./tr")
                    for tr in range(0, len(trs)):
                        tds = trs[tr].find_elements_by_xpath("./td")
                        if (tds[0].text != ""):
                            linkTeam = get_link_MSS(tds[0])
                            idTeam = get_id_link_MSS(params["urlBase"],
                                                     linkTeam, "T")
                            strTeam = tds[0].text
                            team = {
                                "idTeam":
                                params["catRCtrl"].upper() + "-" +
                                idTeam.strip(),
                                "strTeam":
                                strTeam,
                                "idCategory":
                                params["catRCtrl"],
                                "idRCtrl":
                                idTeam,
                                "idMss":
                                idTeam,
                                "strTeamFanart4":
                                get_brand_logo(strTeam),
                                "numSeason":
                                parse_int(params["year"]),
                                "strGender":
                                "T",
                                "strRSS":
                                linkTeam,
                            }
                            if (team["idTeam"] not in teamList):
                                teams.append(team)
                                teamList.append(team["idTeam"])
                            break
                break
        logger(teams)
        print("::: PROCESS FINISHED :::")
        return teams
    except Exception as e:
        logger(e, True, "Teams", teams)
        return "::: ERROR TEAMS :::"
Esempio n. 18
0
def get_drivers(driver, params, teams):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath("//div[@id='pilot']/div/a"))
        for it in range(0, len(items)):
            linkDriver = items[it].get_attribute("href")
            idDriver = get_id_link_TR(params, linkDriver, "D")
            thumb = items[it].find_element_by_xpath(
                ".//img[@class='pilot-thumb']").get_attribute("src")
            if ("avatar-torso" in thumb):
                thumb = ""
            strTeam = items[it].find_element_by_xpath(
                ".//span[@class='display-block']").text
            pilot = {
                "idPlayer":
                params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                idDriver,
                "strPlayer":
                items[it].get_attribute("title"),
                "strNumber":
                items[it].find_element_by_xpath(".//h5").text,
                "strTeam":
                strTeam,
                "numSeason":
                parse_int(params["year"]),
                "strThumb":
                thumb,
                "strCutout":
                thumb,
                "strFanart4":
                items[it].find_element_by_xpath(
                    ".//div[@class='logo']/img").get_attribute("src"),
                "strRSS":
                linkDriver,
            }
            for t in range(0, len(teams)):
                if (teams[t]["strTeam"].upper() == strTeam.upper()):
                    pilot["idTeam"] = teams[t]["idTeam"]
                    break
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 19
0
def get_champD(driver, params):
    champ = {}
    data = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//table[@id='table-hidden-content']/tbody/tr"))
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            linkDriver = get_link_GPU(tds[2])
            idDriver = get_id_link_GPU(params, linkDriver, "D")
            line = {
                "idPlayer": idDriver,
                "position": parse_int(tds[0].text.replace("°", "")),
                "totalPoints": parse_float(tds[5].text),
                "cups": parse_int(tds[3].text),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        logger(champ)
        print("::: PROCESS FINISHED :::")
        return champ
    except Exception as e:
        logger(e, True, "Championship", champ)
        return "::: ERROR CHAMP DRIVERS :::"
Esempio n. 20
0
def get_drivers(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver,
                              30).until(lambda d: d.find_elements_by_xpath(
                                  "//div[contains(@class, 'kf_roster_dec6')]"))
        for it in range(0, len(items)):
            linkDriver = items[it].find_element_by_xpath(
                ".//h3/a").get_attribute("href")
            idDriver = get_id_link_CARX(params, linkDriver, "D")
            thumb = items[it].find_element_by_xpath(
                ".//figure/img").get_attribute("src")
            pilot = {
                "idPlayer":
                params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                idDriver,
                "strPlayer":
                items[it].find_element_by_xpath(".//h3/a").text.title(),
                "strNumber":
                items[it].find_element_by_xpath(
                    ".//div[@class='text']/span").text,
                "numSeason":
                parse_int(params["year"]),
                "strThumb":
                thumb.replace(".jpg", "-300x300.jpg"),
                "strCutout":
                thumb.replace(".jpg", "-180x180.jpg"),
                "strRender":
                thumb,
                "strFanart4":
                items[it].find_element_by_xpath(
                    ".//div[@class='cntry-flag']/img").get_attribute("src"),
                "strRSS":
                linkDriver,
            }
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 21
0
def get_drivers(driver, params):
    pilots = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath(
                "//div[@class='driver-listing']/ul/li/a")
        )
        for it in range(0, len(items)):
            linkDriver = items[it].get_attribute("href")
            idDriver = get_id_link_ACTC(params, linkDriver, "D")
            team = items[it].find_element_by_xpath(
                ".//div[@class='team']").text
            strPlayer = items[it].find_element_by_xpath(
                ".//h2").text
            thumb = params["urlBase"] + items[it].find_element_by_xpath(
                ".//figure/img").get_attribute("data-original")
            if("avatar-torso" in thumb):
                thumb = ""
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver,
                "strPlayer": strPlayer.replace("<br>", "", 2).replace(
                    ",", ", ").strip(),
                "strNumber": items[it].find_element_by_xpath(
                    ".//div[@class='car-data']/span").text,
                "idTeam": params["catRCtrl"].upper() + "-" + team.replace(" ", "_", 10),
                "strTeam": team,
                "numSeason": parse_int(params["year"]),
                "strThumb": thumb,
                "strCutout": thumb,
                "strFanart4": params["urlBase"] + items[it].find_element_by_xpath(
                    ".//div[@class='logo']/img").get_attribute("data-original"),
                "strRSS": linkDriver,
            }
            pilots.append(pilot)
        logger(pilots)
        print("::: PROCESS FINISHED :::")
        return pilots
    except Exception as e:
        logger(e, True, "Drivers", pilots)
        return "::: ERROR DRIVERS :::"
Esempio n. 22
0
def get_teams(data, params):
    teams = []
    teamList = []
    try:
        print("::: TEAMS")
        for i in range(0, len(data)):
            team = {
                "idTeam": data[i]["idTeam"],
                "strTeam": data[i]["strTeam"],
                "idCategory": params["catRCtrl"],
                "idRCtrl": data[i]["idTeam"],
                "numSeason": parse_int(params["year"]),
                "strGender": "T",
            }
            if (data[i]["idTeam"] not in teamList):
                teams.append(team)
                teamList.append(data[i]["idTeam"])
        logger(teams)
        print("::: PROCESS FINISHED :::")
        return teams
    except Exception as e:
        logger(e, True, "Teams", teams)
        return "::: ERROR TEAMS :::"
Esempio n. 23
0
def run_script_MSS(params):
    ret = {}
    try:
        if (parse_int(params["year"]) >= params["chYearIni"]
                and parse_int(params["year"]) <= params["chYearFin"]):

            driver = run_chrome()

            url = "/series/" + params["catOrigen"] + \
                "/season/" + params["year"] + ""
            driver.get(params["urlBase"] + url)

            d_scrap = get_drivers(driver, params)
            d_base = api_request(
                "get", params["urlApi"] + "/driver/ids/" + params["catId"] +
                "/" + params["year"])
            d_clean = clean_duplicate("idPlayer", d_scrap, d_base)

            time.sleep(2)
            t_scrap = get_teams(driver, params)
            t_base = api_request(
                "get", params["urlApi"] + "/team/ids/" + params["catId"] +
                "/" + params["year"])
            t_clean = clean_duplicate("idTeam", t_scrap, t_base)
            # ret["teams"] = api_request(
            #     "post", params["urlApi"] + "/team/create", t_clean)
            ret["teams"] = api_request("put",
                                       params["urlApi"] + "/team/update/0",
                                       t_clean)

            time.sleep(5)
            # ret["drivers"] = api_request(
            #     "post", params["urlApi"] + "/driver/create", d_clean)
            ret["drivers"] = api_request("put",
                                         params["urlApi"] + "/driver/update/0",
                                         d_clean)

            time.sleep(5)
            e_scrap = get_events(driver, params)
            c_scrap = run_script_circuits(driver, params, e_scrap)
            c_base = api_request("get", params["urlApi"] + "/circuit/ids/mss")
            c_clean = clean_duplicate("idCircuit", c_scrap, c_base)
            ret["circuits"] = api_request("post",
                                          params["urlApi"] + "/circuit/create",
                                          c_clean)

            time.sleep(5)
            e_base = api_request(
                "get", params["urlApi"] + "/event/ids/" + params["catId"] +
                "/" + params["year"])
            e_clean = clean_duplicate("idEvent", e_scrap, e_base)
            ret["events"] = api_request("post",
                                        params["urlApi"] + "/event/create",
                                        e_clean)

            time.sleep(5)
            ch_base = api_request(
                "get", params["urlApi"] + "/champ/ids/" + params["catId"] +
                "/" + params["year"])
            if ("D" in params["chTypes"]):
                chd_scrap = get_champD(driver, params)
                chd_clean = clean_duplicate_ch("idChamp", chd_scrap, ch_base)
                ret["champD"] = api_request("post",
                                            params["urlApi"] + "/champ/create",
                                            chd_clean)

            if ("C" in params["chTypes"]):
                time.sleep(5)
                t_base = api_request(
                    "get", params["urlApi"] + "/team/ids/" + params["catId"] +
                    "/" + params["year"])
                chc_scrap = get_champC(driver, params)
                tc_clean = clean_duplicate("idTeam", chc_scrap[0], t_base)
                chc_clean = clean_duplicate_ch("idChamp", chc_scrap[1],
                                               ch_base)
                # # ret["champC"] = chc_clean
                # ret["teamsC"] = api_request(
                #     "post", params["urlApi"] + "/team/create", tc_clean)
                ret["teamsC"] = api_request(
                    "put", params["urlApi"] + "/team/update/0", tc_clean)

                time.sleep(5)
                ret["champC"] = api_request("post",
                                            params["urlApi"] + "/champ/create",
                                            chc_clean)

            if ("T" in params["chTypes"]):
                time.sleep(5)
                cdd_scrap = get_champT(driver, params)
                chd_clean = clean_duplicate_ch("idChamp", cdd_scrap, ch_base)
                # ret["champT"] = chd_clean
                ret["champT"] = api_request("post",
                                            params["urlApi"] + "/champ/create",
                                            chd_clean)

            driver.close()
    except Exception as e:
        logger(e, True, "Script", params)
        return "::: ERROR SCRIPT :::"

    return ret
Esempio n. 24
0
def get_circuits(driver, params):
    circuits = []
    try:
        print("::: CIRCUITS")
        items = WebDriverWait(
            driver, 30
        ).until(lambda d: d.find_elements_by_xpath(
            "//div[@class='row']/div[contains(@class,'col-md-4 nopadding')]"))
        for it in range(0, len(items)):
            linkCircuit = items[it].find_element_by_xpath(
                ".//a").get_attribute("href")
            idCircuit = get_id_link_APAT(params, linkCircuit, "C")
            thumb = items[it].find_elements_by_xpath(
                ".//div[@class='CirBody']/img")
            logo = ""
            if (len(thumb) > 0):
                logo = thumb[0].get_attribute("src")
            circuit = {
                "idCircuit":
                idCircuit,
                "strCircuit":
                items[it].find_element_by_xpath(
                    ".//div[@class='CirTitulo']").text,
                "idRCtrl":
                idCircuit,
                "strLeague":
                "apat",
                "strCountry":
                "Argentina",
                "numSeason":
                parse_int(params["year"]),
                "intSoccerXMLTeamID":
                "ARG",
                "strLogo":
                logo
            }
            circuits.append(circuit)
        circuit = {
            "idCircuit":
            "A_confirmar",
            "strCircuit":
            "A confirmar",
            "idRCtrl":
            "A_confirmar",
            "strLeague":
            "apat",
            "strCountry":
            "Argentina",
            "numSeason":
            parse_int(params["year"]),
            "intSoccerXMLTeamID":
            "ARG",
            "strLogo":
            "https://www.actc.org.ar/upload/circuitos/31/imgs_v3/calendario/circuito-a-confirmar.png"
        }
        circuits.append(circuit)
        logger(circuits)
        print("::: PROCESS FINISHED :::")
        return circuits
    except Exception as e:
        logger(e, True, "Circuits", circuits)
        return "::: ERROR EVENTS :::"
Esempio n. 25
0
def get_events(driver, params):
    events = []
    try:
        print("::: EVENTS")
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "#"):
                trs = tables[table].find_elements_by_xpath("./tbody/tr")
                for tr in range(0, len(trs)):
                    tds = trs[tr].find_elements_by_xpath("./td")
                    linkEvent = get_link_MSS(tds[2])
                    idEvent = get_id_link_MSS(params["urlBase"], linkEvent,
                                              "E")
                    linkCircuit = get_link_MSS(tds[3])
                    idCircuit = get_id_link_MSS(params["urlBase"], linkCircuit,
                                                "C")
                    linkDriver = get_link_MSS(tds[4])
                    idDriver = get_id_link_MSS(params["urlBase"], linkDriver,
                                               "D")
                    strEvent = tds[2].text
                    strPostponed = ""
                    if (tds[1].text == "TBC"):
                        strPostponed = "TBC"
                    if ("Cancelled" in strEvent):
                        strEvent = strEvent.replace(" - Cancelled",
                                                    "").replace(
                                                        "Cancelled", "")
                        strPostponed = "Cancelled"
                    event = {
                        "idEvent":
                        params["catRCtrl"].upper() + "-" + tds[0].text + "-" +
                        idEvent.strip(),
                        "strEvent":
                        strEvent,
                        "idCategory":
                        params["catRCtrl"],
                        "idRCtrl":
                        idEvent,
                        "idMss":
                        idEvent,
                        "intRound":
                        tds[0].text,
                        "strDate":
                        tds[1].text,
                        "idWinner":
                        idDriver,
                        "strResult":
                        tds[4].text,
                        "idCircuit":
                        idCircuit,
                        "strCircuit":
                        tds[3].text,
                        "numSeason":
                        parse_int(params["year"]),
                        "strSeason":
                        params["year"],
                        "strPostponed":
                        strPostponed,
                        "strRSS":
                        linkEvent,
                    }
                    events.append(event)
                break
        logger(events)
        print("::: PROCESS FINISHED :::")
        return events
    except Exception as e:
        logger(e, True, "Events", events)
        return "::: ERROR EVENTS :::"
Esempio n. 26
0
def get_drivers(driver, params):
    pilots = []
    champ = {}
    data = []
    ret = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver,
                              30).until(lambda d: d.find_elements_by_xpath(
                                  "//tbody/tr[@class='TabResData']"))
        points = 0
        for it in range(0, len(items) - 1):
            tds = items[it].find_elements_by_xpath("./td")
            thumb = tds[0].find_element_by_xpath(".//img").get_attribute("src")
            if ("sin_foto" in thumb or "sin_foto" in thumb):
                thumb = ""
            lastre = "Lastre: " + tds[4].text
            text = tds[1].get_attribute('innerHTML').split("\n")
            strPlayer = text[0].strip()
            idDriver = tds[2].text + "_" + strPlayer.replace(" ", "_", 9)
            text = text[1].strip().replace("  ", "@", 1).split("@")
            strTeam = text[0].strip()
            idTeam = strTeam.lower().replace(" ", "_", 9)
            strBirth = ""
            if (len(text) > 1):
                strBirth = text[1].strip()
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver,
                "strPlayer": strPlayer,
                "strNumber": tds[2].text,
                "idTeam": params["catRCtrl"].upper() + "-" + idTeam,
                "strTeam": strTeam,
                "strTeam2": tds[5].text,
                "dateBorn": tds[8].text,
                "strBirthLocation": strBirth.title(),
                "strSide": lastre,
                "numSeason": parse_int(params["year"]),
                "strFanart4": get_brand_logo(tds[5].text),
                "strThumb": thumb,
                "strCutout": thumb,
                "strRender": thumb.replace("/thumb/", "/mediana/"),
                "strRSS": thumb,
            }
            pilots.append(pilot)
            line = {
                "idPlayer": idDriver,
                "position": it + 1,
                "totalPoints": parse_float(tds[3].text),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Drivers", [pilots, champ])
        return "::: ERROR DRIVERS :::"
Esempio n. 27
0
def get_events(driver, params):
    data = []
    events = []
    circuits = []
    circList = []
    try:
        print("::: EVENTS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//div[contains(@class, 'panel-container cfx')]"))
        for it in range(0, len(items)):
            track = items[it].find_elements_by_xpath(
                ".//div[@class='grid_7']/ul/div/p")
            ps = items[it].find_elements_by_xpath(
                ".//table[@class='table-min']/tbody/tr/td/p")
            linkEvent = get_link_ACTC(track[1])
            strCircuit = track[0].text
            idEvent = strCircuit.replace(" ", "", 9).replace("-", "_", 9)
            event = {
                "idEvent":
                params["catRCtrl"].upper() + "-" + params["year"] + "-" +
                str(it + 1) + "-" + idEvent,
                "strEvent":
                items[it].find_element_by_xpath(".//h3").text,
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                params["catRCtrl"].upper() + "-" + idEvent,
                "intRound":
                str(it + 1),
                "strDate":
                ps[0].text,
                "idCircuit":
                idEvent,
                "strCircuit":
                strCircuit,
                "numSeason":
                parse_int(params["year"]),
                "strSeason":
                params["year"],
                "strPostponed":
                "",
                "strRSS":
                linkEvent,
            }
            events.append(event)
            thumb = items[it].find_element_by_xpath(
                ".//div[@class='grid_5']/div/a/img").get_attribute("src")
            circuit = {
                "idCircuit": event["idCircuit"],
                "strCircuit": strCircuit,
                "idRCtrl": event["idCircuit"],
                "strLeague": "gpu",
                "strCountry": "Uruguay",
                "numSeason": parse_int(params["year"]),
                "intSoccerXMLTeamID": "URU",
                "strLogo": thumb,
            }
            if (circuit["idCircuit"] not in circList):
                circuits.append(circuit)
                circList.append(circuit["idCircuit"])
        data.append(circuits)
        data.append(events)
        logger(data)
        print("::: PROCESS FINISHED :::")
        return data
    except Exception as e:
        logger(e, True, "Events", [events, circuits])
        return "::: ERROR EVENTS :::"
Esempio n. 28
0
def get_events(driver, params):
    data = []
    events = []
    circuits = []
    circList = []
    try:
        print("::: EVENTS")
        items = WebDriverWait(driver,
                              30).until(lambda d: d.find_elements_by_xpath(
                                  "//p[@class='font_8']/span/span"))
        for it in range(0, len(items)):
            text = items[it].text.split("–")
            idEvent = (text[0].strip() + "_" + text[1].strip()).replace(
                " ", "_").lower()
            thumb = driver.find_element_by_xpath(
                "//img[@id='comp-kebyzopeimgimage']").get_attribute("src")
            event = {
                "idEvent":
                params["catRCtrl"].upper() + "-" + params["year"] + "-" +
                str(it + 1) + "-" + idEvent,
                "strEvent":
                text[0].strip(),
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                str(it + 1) + "_" + idEvent,
                "intRound":
                str(it + 1),
                "strDate":
                text[2].strip(),
                "idCircuit":
                "CUR_" + text[1].strip(),
                "strCircuit":
                text[1].strip(),
                "numSeason":
                parse_int(params["year"]),
                "strSeason":
                params["year"],
            }
            events.append(event)
            circuit = {
                "idCircuit": event["idCircuit"],
                "strCircuit": event["strCircuit"],
                "idRCtrl": event["idCircuit"],
                "strLeague": "cur",
                "strCountry": "Uruguay",
                "numSeason": parse_int(params["year"]),
                "intSoccerXMLTeamID": "URY",
                "strLogo": thumb,
            }
            if (circuit["idCircuit"] not in circList):
                circuits.append(circuit)
                circList.append(circuit["idCircuit"])
        data.append(circuits)
        data.append(events)
        logger(data)
        print("::: PROCESS FINISHED :::")
        return data
    except Exception as e:
        logger(e, True, "Events", [events, circuits])
        return "::: ERROR EVENTS :::"
Esempio n. 29
0
def get_events(driver, params):
    data = []
    events = []
    circuits = []
    circList = []
    try:
        print("::: EVENTS")
        items = WebDriverWait(driver,
                              30).until(lambda d: d.find_elements_by_xpath(
                                  "//div[contains(@class, 'day-item')]"))
        for it in range(0, len(items)):
            linkEvent, linkCircuit = "", ""
            linkDriver, strResult = "", ""
            try:
                linkEvent = items[it].find_element_by_xpath(
                    ".//a[contains(@class, 'skew')]").get_attribute("href")
            except Exception:
                pass
            idEvent = get_id_link_TR(params, linkEvent, "E")
            try:
                linkCircuit = items[it].find_element_by_xpath(
                    ".//img[@class='pilot-thumb']").get_attribute("src")
            except Exception:
                pass
            idCircuit = get_id_link_TR(params, linkCircuit, "C")
            try:
                linkDriver = items[it].find_element_by_xpath(
                    ".//ul[@class='mb0']/li[1]/a").get_attribute("href")
                strResult = items[it].find_element_by_xpath(
                    ".//ul[@class='mb0']/li[1]/a").text
            except Exception:
                pass
            idDriver = get_id_link_TR(params, linkDriver, "D")
            strCircuit = items[it].find_element_by_xpath(
                ".//span[contains(@class, 'circuit-name')]").get_attribute(
                    "innerHTML")
            strEvent = items[it].find_element_by_xpath(".//h2").text
            strDate = items[it].find_element_by_xpath(".//h5").text
            if (idEvent == ""):
                idEvent = params["catRCtrl"].upper() + "-" + \
                    strEvent.replace(" ", "_", 9)
            if (idCircuit == ""):
                idCircuit = idEvent
            event = {
                "idEvent":
                params["catRCtrl"].upper() + "-" + params["year"] + "-" +
                str(it + 1) + "-" + strDate.replace(" ", "-", 5),
                "strEvent":
                strEvent,
                "idCategory":
                params["catRCtrl"],
                "idRCtrl":
                idEvent,
                "intRound":
                str(it + 1),
                "strDate":
                strDate,
                "idCircuit":
                idCircuit,
                "strCircuit":
                strCircuit,
                "idWinner":
                idDriver,
                "strResult":
                strResult,
                "numSeason":
                parse_int(params["year"]),
                "strSeason":
                params["year"],
                "strPostponed":
                "",
                "strRSS":
                linkEvent,
            }
            events.append(event)
            circuit = {
                "idCircuit": event["idCircuit"],
                "strCircuit": event["strEvent"],
                "idRCtrl": event["idCircuit"],
                "strLeague": "toprace",
                "strCountry": "Argentina",
                "numSeason": parse_int(params["year"]),
                "intSoccerXMLTeamID": "ARG",
                "strLogo": linkCircuit,
            }
            if (circuit["idCircuit"] not in circList):
                circuits.append(circuit)
                circList.append(circuit["idCircuit"])
        data.append(circuits)
        data.append(events)
        logger(data)
        print("::: PROCESS FINISHED :::")
        return data
    except Exception as e:
        logger(e, True, "Events", [events, circuits])
        return "::: ERROR EVENTS :::"
Esempio n. 30
0
def get_champC(driver, params):
    ret = []
    teams = []
    data = []
    champ = {}
    try:
        print("::: CHAMPIONSHIP CONSTRUCTORS")
        btn_show = None
        try:
            btn_show = WebDriverWait(driver, 30).until(
                lambda d: d.find_element_by_xpath('//button[@class="hFZZS"]'))
            btn_show.click()
        except Exception as e:
            logger(e, True, "Championship", btn_show)
            pass
        time.sleep(5)
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        pos = 0
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "Pos."):
                if (pos == 0):
                    pos = 1
                    continue
                points = 0
                trs = tables[table].find_elements_by_xpath("./tbody/tr")
                for tr in range(0, len(trs)):
                    tds = trs[tr].find_elements_by_xpath("./td")
                    linkTeam = get_link_CMSS(tds[1])
                    if (linkTeam == ""):
                        idMss = (tds[1].text).lower().replace(" ", "-", 9)
                        idTeam = params["catRCtrl"].upper() + "-C-" + idMss
                        idRCtrl = idTeam
                    else:
                        idMss = get_id_link_MSS(params["urlBase"], linkTeam,
                                                "T")
                        idTeam = params["catRCtrl"].upper() + "-" + idMss
                        idRCtrl = idMss
                    strTeam = tds[1].text
                    team = {
                        "idTeam": idTeam,
                        "strTeam": strTeam,
                        "idCategory": params["catRCtrl"],
                        "idRCtrl": idRCtrl,
                        "idMss": idMss,
                        "numSeason": parse_int(params["year"]),
                        "strTeamFanart4": get_brand_logo(strTeam),
                        "strGender": "C",
                        "strRSS": linkTeam
                    }
                    teams.append(team)
                    line = {
                        "idPlayer": idRCtrl,
                        "position": parse_int(tds[0].text),
                        "totalPoints": parse_float(tds[2].text),
                    }
                    points += line["totalPoints"]
                    data.append(line)
                champ = {
                    "idChamp":
                    params["catRCtrl"].upper() + "-" + params["year"] + "-C",
                    "numSeason": parse_int(params["year"]),
                    "strSeason": params["year"],
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": params["catOrigen"],
                    "idMss": params["catOrigen"],
                    "data": data,
                    "sumPoints": points,
                    "typeChamp": "C"
                }
                ret.append(teams)
                ret.append(champ)
                break
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [teams, champ])
        return "::: ERROR CHAMP CONSTRUCTORS :::"