Skip to content

Commit

Permalink
fix: API "crashing" (LeagueOfPoro#156)
Browse files Browse the repository at this point in the history
* Update DataProviderThread.py

Removed Referer

* Update Browser.py

Removed Referer

* change version number

* Fixed poor coloring on the version number

* Fix potential issue when using new accounts

* Version number change

* Remove nested function

* Version change

* Fixed missing :

---------

Co-authored-by: Penguax <[email protected]>
Co-authored-by: League of Poro <[email protected]>
  • Loading branch information
3 people authored Feb 22, 2023
1 parent 2428f27 commit b63e1eb
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 20 deletions.
32 changes: 15 additions & 17 deletions src/Browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,22 +121,17 @@ def login(self, username: str, password: str, imapusername: str, imappassword: s
"https://login.leagueoflegends.com/sso/callback", data=data).close()
self.client.get(
"https://auth.riotgames.com/authorize?client_id=esports-rna-prod&redirect_uri=https://account.rewards.lolesports.com/v1/session/oauth-callback&response_type=code&scope=openid&prompt=none&state=https://lolesports.com/?memento=na.en_GB", allow_redirects=True).close()

def reqAcc():
# This requests sometimes returns 404
return self.client.get(
"https://account.rewards.lolesports.com/v1/session/token", headers={"Origin": "https://lolesports.com", self.ref: "https://lolesports.com"})


resAccessToken = reqAcc()

if resAccessToken.status_code != 200 and self.ref == "Referer":
self.ref = "Referrer"
reqAcc()
elif resAccessToken.status_code != 200 and self.ref == "Referrer":
self.ref = "Referer"
reqAcc()
resAccessToken = self.client.get("https://account.rewards.lolesports.com/v1/session/token", headers={"Origin": "https://lolesports.com", self.ref: "https://lolesports.com"})

if resAccessToken.status_code != 200:
if self.ref == "Referer":
self.ref = "Referrer"
else:
self.ref = "Referer"
resAccessToken = self.client.get("https://account.rewards.lolesports.com/v1/session/token", headers={"Origin": "https://lolesports.com", self.ref: "https://lolesports.com"})

resPasToken = self.client.get(
"https://account.rewards.lolesports.com/v1/session/clientconfig/rms", headers={"Origin": "https://lolesports.com", self.ref: "https://lolesports.com"}).close()
if resAccessToken.status_code == 200:
Expand Down Expand Up @@ -164,8 +159,9 @@ def refreshSession(self):
Refresh access and entitlement tokens
"""
try:
headers = {"Origin": "https://lolesports.com"}
resAccessToken = self.client.get(
"https://account.rewards.lolesports.com/v1/session/refresh")
"https://account.rewards.lolesports.com/v1/session/refresh", headers=headers)
AssertCondition.statusCodeMatches(200, resAccessToken)
resAccessToken.close()
self.__dumpCookies()
Expand Down Expand Up @@ -198,7 +194,9 @@ def sendWatchToLive(self) -> list:

def checkNewDrops(self, lastCheckTime):
try:
res = self.client.get("https://account.service.lolesports.com/fandom-account/v1/earnedDrops?locale=en_GB&site=LOLESPORTS", headers={"Origin": "https://lolesports.com", "Authorization": "Cookie access_token"})
headers = {"Origin": "https://lolesports.com",
"Authorization": "Cookie access_token"}
res = self.client.get("https://account.service.lolesports.com/fandom-account/v1/earnedDrops?locale=en_GB&site=LOLESPORTS", headers=headers)
resJson = res.json()
res.close()
return [drop for drop in resJson if lastCheckTime <= drop["unlockedDateMillis"]]
Expand Down Expand Up @@ -229,9 +227,9 @@ def __sendWatch(self, match: Match):
"stream_position_time": datetime.utcnow().isoformat(sep='T', timespec='milliseconds')+'Z',
"geolocation": {"code": "CZ", "area": "EU"},
"tournament_id": match.tournamentId}

headers = {"Origin": "https://lolesports.com"}
res = self.client.post(
"https://rex.rewards.lolesports.com/v1/events/watch", json=data)
"https://rex.rewards.lolesports.com/v1/events/watch", json=data, headers=headers)
AssertCondition.statusCodeMatches(201, res)
res.close()

Expand Down
7 changes: 5 additions & 2 deletions src/DataProviderThread.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ def fetchLiveMatches(self):
"""
Retrieve data about currently live matches and store them.
"""
headers = {"Origin": "https://lolesports.com", "x-api-key": "0TvQnueqKa5mxJntVWt0w4LpLfEkrV1Ta8rQBb9Z"}
headers = {"Origin": "https://lolesports.com",
"x-api-key": "0TvQnueqKa5mxJntVWt0w4LpLfEkrV1Ta8rQBb9Z"}
res = self.client.get(
"https://esports-api.lolesports.com/persisted/gw/getLive?hl=en-GB", headers=headers)
AssertCondition.statusCodeMatches(200, res)
Expand Down Expand Up @@ -76,7 +77,8 @@ def fetchTimeUntilNextMatch(self):
"""
Retrieve data about currently live matches and store them.
"""
headers = {"Origin": "https://lolesports.com", "x-api-key": "0TvQnueqKa5mxJntVWt0w4LpLfEkrV1Ta8rQBb9Z"}
headers = {"Origin": "https://lolesports.com",
"x-api-key": "0TvQnueqKa5mxJntVWt0w4LpLfEkrV1Ta8rQBb9Z"}
try:
res = self.client.get(
"https://esports-api.lolesports.com/persisted/gw/getSchedule?hl=en-GB", headers=headers)
Expand Down Expand Up @@ -144,3 +146,4 @@ def _getSystemTime(self) -> datetime:
systemTimeStr = datetime.now().strftime(datetimeFormat)
systemTimeDT = datetime.strptime(systemTimeStr, datetimeFormat)
return systemTimeDT

2 changes: 1 addition & 1 deletion src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def init() -> tuple[logging.Logger, Config]:
args = parser.parse_args()

print("*********************************************************")
print(f"* Thank you for using Capsule Farmer Evolved v{CURRENT_VERSION}! *")
print(f"* Thank you for using Capsule Farmer Evolved v{str(CURRENT_VERSION)}! *")
print("* [steel_blue1]Please consider supporting League of Poro on YouTube.[/] *")
print("* If you need help with the app, join our Discord *")
print("* https://discord.gg/ebm5MJNvHU *")
Expand Down

0 comments on commit b63e1eb

Please sign in to comment.