Skip to content

Commit e6fc20a

Browse files
committed
remove user_id from api calls
1 parent c769d9b commit e6fc20a

File tree

7 files changed

+7
-39
lines changed

7 files changed

+7
-39
lines changed

tests/test_config.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import configparser
22
import platform
33
import tempfile
4-
from random import randint
54
from uuid import uuid4
65

76
import pytest
@@ -41,17 +40,15 @@ def test_save_tokens_to_ini():
4140
with tempfile.NamedTemporaryFile(delete=not IS_WINDOWS) as temp_file:
4241
access_token = uuid4().hex
4342
refresh_token = uuid4().hex
44-
user_id = str(randint(10**9, 10**10 - 1))
4543
datadome = uuid4().hex
4644
config = Config(temp_file.name)
47-
config.save_tokens(access_token, refresh_token, user_id, datadome)
45+
config.save_tokens(access_token, refresh_token, datadome)
4846

4947
config_parser = configparser.ConfigParser()
5048
config_parser.read(temp_file.name, encoding="utf-8")
5149

5250
assert config_parser.get("TGTG", "AccessToken") == access_token
5351
assert config_parser.get("TGTG", "RefreshToken") == refresh_token
54-
assert config_parser.get("TGTG", "UserId") == user_id
5552
assert config_parser.get("TGTG", "Datadome") == datadome
5653

5754

@@ -60,15 +57,13 @@ def test_token_path(monkeypatch: pytest.MonkeyPatch):
6057
monkeypatch.setenv("TGTG_TOKEN_PATH", temp_dir)
6158
access_token = uuid4().hex
6259
refresh_token = uuid4().hex
63-
user_id = uuid4().hex
6460
datadome = uuid4().hex
6561
config = Config()
66-
config.save_tokens(access_token, refresh_token, user_id, datadome)
62+
config.save_tokens(access_token, refresh_token, datadome)
6763
config._load_tokens()
6864

6965
assert config.tgtg.access_token == access_token
7066
assert config.tgtg.refresh_token == refresh_token
71-
assert config.tgtg.user_id == user_id
7267
assert config.tgtg.datadome == datadome
7368

7469

tests/test_tgtg.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def test_tgtg_login_with_mail(mocker: MockerFixture):
5353
"access_token": "new_access_token",
5454
"access_token_ttl_seconds": 172800,
5555
"refresh_token": "new_refresh_token",
56-
"startup_data": {"user": {"user_id": "123456789"}},
5756
}
5857
responses.add(
5958
responses.POST,
@@ -75,8 +74,6 @@ def test_tgtg_login_with_mail(mocker: MockerFixture):
7574
client.login()
7675
assert client.access_token == poll_response_data.get("access_token")
7776
assert client.refresh_token == poll_response_data.get("refresh_token")
78-
user_id = poll_response_data.get("startup_data", {}).get("user", {}).get("user_id") # type: ignore[attr-defined]
79-
assert client.user_id == user_id
8077
assert json.loads(responses.calls[1].request.body) == {
8178
"device_type": client.device_type,
8279
"email": client.email,
@@ -94,7 +91,6 @@ def test_tgtg_login_with_token(mocker: MockerFixture):
9491
9592
access_token="old_access_token",
9693
refresh_token="old_refresh_token",
97-
user_id="old_user_id",
9894
)
9995
response_data = {
10096
"access_token": "new_access_token",
@@ -129,7 +125,6 @@ def test_tgtg_get_items(mocker: MockerFixture, tgtg_item: dict):
129125
130126
access_token="access_token",
131127
refresh_token="refresh_token",
132-
user_id="user_id",
133128
)
134129
response = client.get_items(favorites_only=True)
135130
assert response == [tgtg_item]
@@ -153,7 +148,6 @@ def test_tgtg_get_item(mocker: MockerFixture, tgtg_item: dict):
153148
154149
access_token="access_token",
155150
refresh_token="refresh_token",
156-
user_id="user_id",
157151
)
158152
response = client.get_item(item_id)
159153
assert response == tgtg_item
@@ -177,7 +171,6 @@ def test_tgtg_set_favorite(mocker: MockerFixture):
177171
178172
access_token="access_token",
179173
refresh_token="refresh_token",
180-
user_id="user_id",
181174
)
182175
client.set_favorite(item_id, True)
183176
assert json.loads(responses.calls[0].request.body) == {"is_favorite": True}
@@ -200,7 +193,6 @@ def test_tgtg_api(item_properties: dict):
200193
polling_wait_time=config.tgtg.polling_wait_time,
201194
access_token=config.tgtg.access_token,
202195
refresh_token=config.tgtg.refresh_token,
203-
user_id=config.tgtg.user_id,
204196
datadome_cookie=config.tgtg.datadome,
205197
)
206198

@@ -211,7 +203,6 @@ def test_tgtg_api(item_properties: dict):
211203
with open(env_file, "a", encoding="utf-8") as file:
212204
file.write(f"TGTG_ACCESS_TOKEN={credentials['access_token']}\n")
213205
file.write(f"TGTG_REFRESH_TOKEN={credentials['refresh_token']}\n")
214-
file.write(f"TGTG_USER_ID={credentials['user_id']}\n")
215206
file.write(f"TGTG_COOKIE={credentials['datadome_cookie']}\n")
216207

217208
# Tests

tgtg_scanner/__main__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ def main():
173173
print("Email: ", credentials.get("email"))
174174
print("Access Token: ", credentials.get("access_token"))
175175
print("Refresh Token: ", credentials.get("refresh_token"))
176-
print("User ID: ", credentials.get("user_id"))
177176
print("Datadome Cookie:", credentials.get("datadome_cookie"))
178177
print("")
179178
elif args.favorites:

tgtg_scanner/models/config.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,6 @@ class TgtgConfig(BaseConfig):
473473
username: Union[str, None] = None
474474
access_token: Union[str, None] = None
475475
refresh_token: Union[str, None] = None
476-
user_id: Union[str, None] = None
477476
datadome: Union[str, None] = None
478477
timeout: int = 60
479478
access_token_lifetime: int = 14400
@@ -485,7 +484,6 @@ def _read_ini(self, parser: configparser.ConfigParser):
485484
self._ini_get(parser, "TGTG", "Username", "username")
486485
self._ini_get(parser, "TGTG", "AccessToken", "access_token")
487486
self._ini_get(parser, "TGTG", "RefreshToken", "refresh_token")
488-
self._ini_get(parser, "TGTG", "UserID", "user_id")
489487
self._ini_get(parser, "TGTG", "Datadome", "datadome")
490488
self._ini_get_int(parser, "TGTG", "Timeout", "timeout")
491489
self._ini_get_int(parser, "TGTG", "AccessTokenLifetime", "access_token_lifetime")
@@ -496,7 +494,6 @@ def _read_env(self):
496494
self._env_get("TGTG_USERNAME", "username")
497495
self._env_get("TGTG_ACCESS_TOKEN", "access_token")
498496
self._env_get("TGTG_REFRESH_TOKEN", "refresh_token")
499-
self._env_get("TGTG_USER_ID", "user_id")
500497
self._env_get("TGTG_DATADOME", "datadome")
501498
self._env_get_int("TGTG_TIMEOUT", "timeout")
502499
self._env_get_int("TGTG_ACCESS_TOKEN_LIFETIME", "access_token_lifetime")
@@ -655,16 +652,14 @@ def _load_tokens(self) -> None:
655652
self.tgtg.access_token = file.read()
656653
with self._open("refreshToken", "r") as file:
657654
self.tgtg.refresh_token = file.read()
658-
with self._open("userID", "r") as file:
659-
self.tgtg.user_id = file.read()
660655
with self._open("datadome", "r") as file:
661656
self.tgtg.datadome = file.read()
662657
except FileNotFoundError:
663658
log.warning("No token files in token path.")
664659
except EnvironmentError as err:
665660
log.error("Error loading Tokens - %s", err)
666661

667-
def save_tokens(self, access_token: str, refresh_token: str, user_id: str, datadome: str) -> None:
662+
def save_tokens(self, access_token: str, refresh_token: str, datadome: str) -> None:
668663
"""
669664
Saves TGTG Access Tokens to config.ini
670665
if provided or as files to token_path.
@@ -679,7 +674,6 @@ def save_tokens(self, access_token: str, refresh_token: str, user_id: str, datad
679674
config.add_section("TGTG")
680675
config.set("TGTG", "AccessToken", access_token)
681676
config.set("TGTG", "RefreshToken", refresh_token)
682-
config.set("TGTG", "UserId", user_id)
683677
config.set("TGTG", "Datadome", datadome)
684678
with open(config_file, "w", encoding="utf-8") as configfile:
685679
configfile.write(CONFIG_FILE_HEADER)
@@ -692,8 +686,6 @@ def save_tokens(self, access_token: str, refresh_token: str, user_id: str, datad
692686
file.write(access_token)
693687
with self._open("refreshToken", "w") as file:
694688
file.write(refresh_token)
695-
with self._open("userID", "w") as file:
696-
file.write(user_id)
697689
with self._open("datadome", "w") as file:
698690
file.write(datadome)
699691
except EnvironmentError as err:

tgtg_scanner/scanner.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ def __init__(self, config: Config):
6262
polling_wait_time=self.config.tgtg.polling_wait_time,
6363
access_token=self.config.tgtg.access_token,
6464
refresh_token=self.config.tgtg.refresh_token,
65-
user_id=self.config.tgtg.user_id,
6665
datadome_cookie=self.config.tgtg.datadome,
6766
base_url=self.config.tgtg.base_url,
6867
)
@@ -117,7 +116,6 @@ def _job(self) -> None:
117116
self.config.save_tokens(
118117
self.tgtg_client.access_token,
119118
self.tgtg_client.refresh_token,
120-
self.tgtg_client.user_id,
121119
self.tgtg_client.datadome_cookie,
122120
)
123121

@@ -174,7 +172,6 @@ def run(self) -> NoReturn:
174172
self.config.save_tokens(
175173
self.tgtg_client.access_token,
176174
self.tgtg_client.refresh_token,
177-
self.tgtg_client.user_id,
178175
self.tgtg_client.datadome_cookie,
179176
)
180177
# activate location service

tgtg_scanner/tgtg/tgtg_client.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ def __init__(
111111
email=None,
112112
access_token=None,
113113
refresh_token=None,
114-
user_id=None,
115114
datadome_cookie=None,
116115
user_agent=None,
117116
language="en-GB",
@@ -130,7 +129,6 @@ def __init__(
130129
self.email = email
131130
self.access_token = access_token
132131
self.refresh_token = refresh_token
133-
self.user_id = user_id
134132
self.datadome_cookie = datadome_cookie
135133

136134
self.last_time_token_refreshed = None
@@ -178,7 +176,6 @@ def get_credentials(self) -> dict:
178176
"email": self.email,
179177
"access_token": self.access_token,
180178
"refresh_token": self.refresh_token,
181-
"user_id": self.user_id,
182179
"datadome_cookie": self.datadome_cookie,
183180
}
184181

@@ -250,7 +247,7 @@ def get_latest_apk_version() -> str:
250247

251248
@property
252249
def _already_logged(self) -> bool:
253-
return bool(self.access_token and self.refresh_token and self.user_id)
250+
return bool(self.access_token and self.refresh_token)
254251

255252
def _refresh_token(self) -> None:
256253
if (
@@ -264,8 +261,8 @@ def _refresh_token(self) -> None:
264261
self.last_time_token_refreshed = datetime.now()
265262

266263
def login(self) -> None:
267-
if not (self.email or self.access_token and self.refresh_token and self.user_id):
268-
raise TGTGConfigurationError("You must provide at least email or access_token, refresh_token and user_id")
264+
if not (self.email or self.access_token and self.refresh_token):
265+
raise TGTGConfigurationError("You must provide at least email or access_token and refresh_token")
269266
if self._already_logged:
270267
self._refresh_token()
271268
else:
@@ -309,7 +306,6 @@ def start_polling(self, polling_id) -> None:
309306
self.access_token = login_response.get("access_token")
310307
self.refresh_token = login_response.get("refresh_token")
311308
self.last_time_token_refreshed = datetime.now()
312-
self.user_id = login_response.get("startup_data", {}).get("user", {}).get("user_id")
313309
return
314310
raise TgtgPollingError("Max polling retries reached. Try again.")
315311

@@ -335,7 +331,6 @@ def get_items(
335331
self.login()
336332
# fields are sorted like in the app
337333
data = {
338-
"user_id": self.user_id,
339334
"origin": {"latitude": latitude, "longitude": longitude},
340335
"radius": radius,
341336
"page_size": page_size,
@@ -358,7 +353,7 @@ def get_item(self, item_id: str) -> dict:
358353
self.login()
359354
response = self._post(
360355
f"{API_ITEM_ENDPOINT}/{item_id}",
361-
json={"user_id": self.user_id, "origin": None},
356+
json={"origin": None},
362357
)
363358
return response.json()
364359

wiki/Configuration.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ You can combine multiple crons as semicolon separated list.
8787
| Username | TGTG_USERNAME | email connected to your TGTG Account | | YES |
8888
| AccessToken | TGTG_ACCESS_TOKEN | TGTG API access token | | |
8989
| RefreshToken | TGTG_REFRESH_TOKEN | TGTG API refresh token | | |
90-
| UserId | TGTG_USER_ID | TGTG API user ID | | |
9190
| Datadome | TGTG_DATADOME | TGTG API datadome protection cookie | | |
9291
| Timeout | TGTG_TIMEOUT | timeout for API requests | `60` | |
9392
| AccessTokenLifetime | TGTG_ACCESS_TOKEN_LIFETIME | access token lifetime in seconds | `14400` | |

0 commit comments

Comments
 (0)