Exemplo n.º 1
0
def collectRanking(teamNum:str, url:str=''):

    if(url != ''):
        pass
    else:
        with open('data/urls.txt', 'r') as filehandle:
            url = filehandle.read()
            url = url.replace("https://www.robotevents.com/robot-competitions/vex-robotics-competition/", '')
            url = url.replace(".html", '')
            url = url.replace("\n", '')
            if url.startswith("RE-VRC") == True:
                pass
            else:
                print("Invalid URL. Try updating again or try 'rankings <vexdb>'.")
                return 0
            url = 'https://vexdb.io/events/view/' + url+'?t=rankings'
            with open('data/urls.txt', 'a+') as filehandle2:
                filehandle2.write("\n"+url)

    page = Raschietto.from_url(url)
    rankNums = Matcher('.rank')
    rankNums = rankNums(page, multiple=True)
    try: rankNums.remove("Rank")
    except: pass

    teamNums = Matcher('.number')
    teamNums = teamNums(page, multiple=True)
    try: teamNums.remove("Number")
    except: pass

    index = teamNums.index(teamNum)
    rank = rankNums[index]
    return rank
Exemplo n.º 2
0
def rankings(url:str=''):

    if(url != ''):
        pass
    else:
        with open('data/urls.txt', 'r') as filehandle:
            url = filehandle.read()
            url = url.replace("https://www.robotevents.com/robot-competitions/vex-robotics-competition/", '')
            url = url.replace(".html", '')
            url = url.replace("\n", '')
            if url.startswith("RE-VRC") == True:
                pass
            else:
                print("Invalid URL. Try updating again or try 'rankings <vexdb>'.")
                return 0
            url = 'https://vexdb.io/events/view/' + url+'?t=rankings'
            with open('data/urls.txt', 'a+') as filehandle2:
                filehandle2.write("\n"+url)

    page = Raschietto.from_url(url)
    rankNums = Matcher('.rank')
    rankNums = rankNums(page, multiple=True)
    try: rankNums.remove("Rank")
    except: pass
    rankNums = pd.Series(data=rankNums)

    teamNums = Matcher('.number')
    teamNums = teamNums(page, multiple=True)
    try: teamNums.remove("Number")
    except: pass
    teamNums = pd.Series(data=teamNums)

    teamNames = Matcher('.name>a')
    teamNames = teamNames(page, multiple=True)
    try: teamNames.remove("Name")
    except: pass
    teamNames = pd.Series(data=teamNames)

    wlts = Matcher('.wlt')
    wlts = wlts(page, multiple=True)
    try: wlts.remove("W-L-T")
    except: pass
    wlts = pd.Series(data=wlts)

    wpsps = Matcher('.wpsp')
    wpsps = wpsps(page, multiple=True)
    try: wpsps.remove("WP / AP / SP")
    except: pass
    wpsps = pd.Series(data=wpsps)

    maxScores = Matcher('.max_score')
    maxScores = maxScores(page, multiple=True)
    try: maxScores.remove("Max Score")
    except: pass
    maxScores = pd.Series(data=maxScores)

    trsps = Matcher('.trsp')
    trsps = trsps(page, multiple=True)
    try:
        trsps.remove("TRSPs")
    except: pass
    try:
        trsps.remove("TRSPs ")
    except: pass
    trsps = pd.Series(data=trsps)

    oprs = Matcher('.opr')
    oprs = oprs(page, multiple=True)
    try:
        oprs.remove("OPR")
    except: pass
    try:
        oprs.remove("OPR ")
    except: pass
    oprs = pd.Series(data=oprs)

    dprs = Matcher('.dpr')
    dprs = dprs(page, multiple=True)
    try:
        dprs.remove("DPR")
    except: pass
    try:
        dprs.remove("DPR ")
    except: pass
    dprs = pd.Series(data=dprs)

    ccwms = Matcher('.ccwm')
    ccwms = ccwms(page, multiple=True)
    try:
        ccwms.remove('CCWM')
    except: pass
    try:
        ccwms.remove('CCWM ')
    except: pass
    ccwms = pd.Series(data=ccwms)

    overallRankings = pd.DataFrame({"Rank":rankNums,"Numbers":teamNums,"Name":teamNames,"W-L-T":wlts,"WPSP":wpsps,"Max Score":maxScores,"TRSP":trsps,"OPR":oprs,"DPR":dprs,"CCWM":ccwms})
    overallRankings = overallRankings[["Rank", "Numbers", "Name", "W-L-T", "WPSP", "Max Score", "TRSP", "OPR", "DPR", "CCWM"]]
    # print(overallRankings)
    writer = pd.ExcelWriter("data/rankings.xlsx")
    overallRankings.to_excel(writer, sheet_name="Rankings")
    overallRankings.to_pickle("data/rankings.pkl")
    if platform == "darwin":
        try: os.system("open -a 'Microsoft Excel.app' 'data/rankings.xlsx'")
        except: print("Failed to open file. Please open it on your own.")
    elif platform == "win32":
        try: os.system("open -a 'Microsoft Excel.exe' 'data/rankings.xlsx'")
        except: print("Failed to open file. Please open it on your own.")