diff --git a/.gitignore b/.gitignore index 9216640..8da8369 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ secret.py *__pycache__/* -.idea/* \ No newline at end of file +.idea/* +Pipfile +Pipfile.lock +.vscode/settings.json diff --git a/find_hero_test.py b/find_hero_test.py deleted file mode 100644 index b1357bb..0000000 --- a/find_hero_test.py +++ /dev/null @@ -1,19 +0,0 @@ -import opendota - -herolist = opendota.get_hero_list() - -i = 1 - - -def find_hero(heroname): - i = 1 - for hero in herolist: - i += 1 - if herolist[i]["localized_name"] == heroname: - return herolist[i] - - print("Didn't find the hero") - return - - -print(find_hero("Juggernaut")) diff --git a/opendota.py b/opendota.py index 0d4b97f..eba687d 100644 --- a/opendota.py +++ b/opendota.py @@ -11,6 +11,42 @@ # def find_matches_by_hero(): +def make_query(hero1, hero2): + query = f"""SELECT player_matches.hero_id AS hero1, + player_matches1.hero_id AS hero2, + player_matches.player_slot AS ps1, + player_matches1.player_slot AS ps2, + matches.match_id, + leagues.name leaguename + FROM player_matches + JOIN player_matches AS player_matches1 + ON player_matches.match_id = player_matches1.match_id + JOIN matches + ON player_matches.match_id = matches.match_id + JOIN leagues using(leagueid) + WHERE player_matches.hero_id = {get_hero_id(hero1)} + AND player_matches1.hero_id = {get_hero_id(hero2)} + AND matches.start_time >= extract(epoch + FROM timestamp '2020-10-23T06:53:44.537Z') + AND abs(player_matches.player_slot - player_matches1.player_slot) > 123 + ORDER BY matches.match_id NULLS LAST LIMIT 200""" + + response = requests.get( + f"{API_ROOT}/explorer", params=dict(api_key=secret.OPENDOTA_API_KEY, sql = query) + ) + return response.json() + +##returns list of pro match ids played between two opposing heroes +def get_matches(hero1, hero2): + query_response = make_query(hero1, hero2) + match_list = query_response['rows'] ##list of dictionaries for some reason + result = [] + + for match in match_list: + result.append(match['match_id']) + + return result + def find_hero(heroname): for hero in load_hero_list(): @@ -46,3 +82,6 @@ def load_hero_list(): if __name__ == "__main__": main() + + + diff --git a/tests/test_find_hero.py b/tests/test_find_hero.py index 5f335ec..8f49869 100644 --- a/tests/test_find_hero.py +++ b/tests/test_find_hero.py @@ -10,3 +10,10 @@ def test_find_juggernaut(): def test_hero_id(): juggernaut_id = opendota.get_hero_id("Juggernaut") assert juggernaut_id == 8 + +def test_query(): + print(opendota.make_query("Bloodseeker", "Crystal Maiden")) + + +def test_get_matches(): + print(opendota.get_matches("Bloodseeker", "Crystal Maiden")) \ No newline at end of file