Сделал перестановку, убрал с рабочего места все лишнее, чтобы не отвлекаться от работы, после чего запустил тестовый стрим.
В форке улучшил функционал, добавил типизацию, опубликовал его в PyPi и подключил к реальному проекту!
Для самых любопытных в конце поста ссылка на запись стрима 🫡
В целом получилось неплохо, если будет время нарежу его в видос (но это не точно, тк неплохо бы переозвучить)
В чем суть библиотеки?
Бывают проекты по автоматизации работы с сайтами, где требуется регистрировать новые аккаунты.
В таком случае супер удобно использовать временную почту. Для этого можно просто взять существующую библиотеку MailTm.
Но сервис, с которым она работает, дает возможность повторного использования почт, которые мы регистрируем. А бибиотека НЕТ!
Я был конечно удивлен... Особенно тем, что она лежит на официальном сайт, рядом с библиотекой для TypeScript, в которой весь этот функционал, внимание... ЕСТЬ!
Думал уже переписать свой проект с python на typescript, и даже начал это, как можно было заметить в предыдущих постах.
Сегодня же я принял решение переписать саму библиотеку, сделав форк и опубликовав её в официальные репозитории PyPi, чтобы можно было легко подключить и использовать в любом проекте. Ну и поделиться ей со всеми, естественно)
Что вышло
Теперь после регистрации аккаунта - можно сохранить не только адрес почты, но и пароль. Функция регистрации сама выдает pydantic модель Credentials с полями address и password
А затем, можно переиспользовать полученные данные без регистрации, сразу на новом методе login, вместо register
Плюс меня бесило отсутствие хоть каких подсказок при работе с библиотекой, например получая message в хэндлере для listener, который передается в start - мы получаем просто, какой-то dict...
Сейчас это pydantic модель Message, с довольно конкретным набором полей. Ну и плюсом будет, что ее можно обратно конвертировать в dict, просто вызвав
message.model_dump() (из функционала pydantic)Второе, чего мне не хватало, это остановка выполнения кода, пока не придет новое письмо, например с кодом подтверждения почты.
Приходилось реализовать класс-обертку для прошлой библиотеки, где все же реализовать удалось такой функционал, но в каждом проекте делать это не особо хотелось бы)
Теперь просто на нашем объекте класса Email достаточно вызвать
wait_for_new_message(), и он будет ждать, пока не придет новое письмо, после чего вернет как результат модель Message и продолжится выполнение скрипта)Итог:
Я с вдохновлением подошел к процессу, потому половину работы прокомментировал, хотя и вышло это непроизвольно, но подконец немного разошелся, подключил наушники и более активно стал выдавать детали, показал как подключить её в реальный проект, пофиксил баги, обновил в репозитории.
И даже показал на реальном проекте результат.
📹YouTube
🖼️ PyPi
🖼️ Github
