Skip to content

Commit a3a44ff

Browse files
committed
upd: base_url | domain usage
1 parent bda7368 commit a3a44ff

4 files changed

Lines changed: 20 additions & 19 deletions

File tree

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,20 @@ from mailtm import Email
2222

2323
async def main() -> None:
2424
"""Start msg cycle."""
25+
2526
def listener(message: dict) -> None:
2627
print("\nSubject: " + message["subject"])
2728
print("Content: " + message["text"] if message["text"] else message["html"])
2829

29-
# Get Domains
30+
# Get base url and domains
3031
test = Email()
3132
await test.init()
32-
print("\nDomain: " + test.domain)
33+
print("\nBase url:", test.base_url)
34+
print("Domain:", test.domain)
3335

3436
# Make new email address
3537
await test.register()
36-
print("\nEmail Adress: " + str(test.address))
38+
print("\nEmail Adress:", test.address)
3739

3840
# Start listening
3941
await test.start(listener)
@@ -42,7 +44,6 @@ async def main() -> None:
4244

4345
if __name__ == "__main__":
4446
asyncio.run(main())
45-
4647
```
4748

4849
# Documentation

src/mailtm/consts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Some constant values."""
22

3-
BASE_URL = "https://api.mail.tm/"
3+
BASE_URLS = ["https://api.mail.tm/", "https://api.mail.gw/"]
44

55
USERNAME_ALPHABET = "abcdefghijklmnopqrstuvwxyz0123456789"
66
PASSWORD_ALPHABET = (

src/mailtm/email.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from aiohttp import ClientSession
66

7-
from .consts import BASE_URL, PASSWORD_ALPHABET, USERNAME_ALPHABET
7+
from .consts import BASE_URLS, PASSWORD_ALPHABET, USERNAME_ALPHABET
88
from .message import Listen
99

1010

@@ -27,21 +27,23 @@ def password_gen(
2727
class Email(Listen):
2828
"""The class module for interacting with EMail."""
2929

30-
async def init(self) -> None:
30+
async def init(self, base_url: str | None = random.choice(BASE_URLS)) -> None: # noqa: S311
3131
"""Init temporary Email class."""
32-
self.session = ClientSession(headers={"Content-Type": "application/json"})
32+
self.base_url = base_url
33+
self.session = ClientSession(
34+
base_url=self.base_url,
35+
headers={"Content-Type": "application/json"},
36+
)
3337
await self.domains()
3438

3539
async def domains(self) -> None:
3640
"""Init Email domains."""
37-
url = f"{BASE_URL}domains"
41+
url = "domains"
3842

3943
async with self.session.get(url) as response:
40-
data = await response.json()
44+
data = (await response.json())["hydra:member"]
4145

42-
for domain in data["hydra:member"]:
43-
if domain["isActive"]:
44-
self.domain = domain["domain"]
46+
self.domain = random.choice([d for d in data if d["isActive"]])["domain"] # noqa: S311
4547

4648
async def register(
4749
self,
@@ -55,7 +57,7 @@ async def register(
5557

5658
self.address = f"{username}@{self.domain}"
5759

58-
url = f"{BASE_URL}accounts"
60+
url = "accounts"
5961
payload = {
6062
"address": self.address,
6163
"password": password,
@@ -66,7 +68,7 @@ async def register(
6668

6769
async def get_token(self, password: str) -> None:
6870
"""Get token."""
69-
url = f"{BASE_URL}token"
71+
url = "token"
7072
payload = {
7173
"address": self.address,
7274
"password": password,

src/mailtm/message.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import asyncio
44

5-
from .consts import BASE_URL
6-
75

86
class Listen:
97
"""Listener class."""
@@ -14,7 +12,7 @@ def __init__(self) -> None:
1412

1513
async def message_list(self) -> list:
1614
"""Get a list of messages."""
17-
url = f"{BASE_URL}messages"
15+
url = "messages"
1816

1917
async with self.session.get(url) as response:
2018
data = await response.json()
@@ -27,7 +25,7 @@ async def message_list(self) -> list:
2725

2826
async def message(self, idx: str) -> dict:
2927
"""Get the text of the message."""
30-
url = f"{BASE_URL}messages/{idx}"
28+
url = f"messages/{idx}"
3129
async with self.session.get(url) as response:
3230
return await response.json()
3331

0 commit comments

Comments
 (0)