KopeechkaS - модуль для работы с почтами Kopeechka.store



  • Название: KopeechkaS
    Версия: 1.8
    Данные: KopeechkaS.zip
    Исходник: -.
    Согласие на добавление модуля в BAS: Да.
    Описание: Работа с облачным сервисом входящей электронной почты Kopeechka.store. Не официальный модуль.

    История версий:


    Branch for English speakers
    https://community.bablosoft.com/topic/19063/kopeechkas-wrapper-around-kopeechka-store-api


    Использование одной почты в нескольких потоках

    При этом на сервер не отправляются лишние запросы.
    Все данные почт хранятся в оперативной памяти, можно выбрать модель хранения: local, global, resource.

    3200a1a6-1eb9-470a-8004-2b0fa2edbb0b-image.png

    local - хранить локально. Эл. почта этого потока не будет доступна другим потокам.
    global - хранить глобально. Все потоки могут получить доступ к любым данным эл. почты в этом хранилище.
    resource - хранить в ресурсе. То же, что и global, но немного медленнее.
    Модели хранения global и resource не могут быть очищены автоматически. Во избежание утечек памяти, эл. почту необходимо закрывать.
    Модель хранилища local очищается автоматически при завершении потока.

    Дизайн кода выполнен таким образом, чтобы свести процент ошибок к минимуму

    Присутствуют несколько категорий ошибок: обычные, критические, игнорируемые.
    Поведение можно переназначать, каждая ошибка имеет свой ID.

    c3ea7493-db92-4955-80fb-51aeefd47676-image.png

    Обычные ошибки - при их возникновении вызывается действие Fail.
    Критические ошибки - при их возникновении вызывается действие Прервать скрипт.
    Игнорируемые ошибки - игнорируются.

    Список ID обычных ошибок:

    Список ID критических ошибок:

    Список ID игнорируемых ошибок:

    Строгий режим

    По умолчанию все действия работают в строгом режиме.
    Это означает, что при возникновении любой обычной ошибки будет вызвано действие Fail, как и должно быть.
    Однако, если отключить строгий режим - все обычные ошибки будут игнорироваться.
    Действие продолжит выполняться до достижения успешного результата.
    Если за отведённое время достичь успешного результата не удалось - будет возвращён null.

    78135f03-5687-40f5-b191-948a5711bced-image.png

    Удобный интерфейс

    Понятный и интуитивный, присутствуют описания и примеры.
    Некоторые API совмещены в одном действие.
    Расширен функционал.
    Немного изменены стандартные цвета конструктора под цвета сервиса.

    a221c752-3ab0-42f5-81d7-fc7829b8ef68-image.png

    1480b31a-e830-4e6e-874b-5cff4180d826-image.png

    1cd2c5fc-8258-4ee7-bbc5-52284ef47984-image.png

    Встроенный дебаггер

    Информативный и понятный.
    Показывает отправленные запросы, временные метрики в мс, текст ошибок и пр.

    105748d4-8e5f-4878-a992-7ee95e284bd2-image.png

    Настройка доставки запросов

    Включение/отключение использования SSL.
    Индивидуальный для каждого действия выбор времени ожидания и интервала отправки запросов.

    83be5cb8-d875-466d-9cdd-b86a11539f28-image.png

    Дополнительно

    • Работа с несколькими почтами одновременно, и глобально и локально.
    • Применение настроек глобально (для всех новых потоков).
    • Используется внутренний http клиент.
    • Автономная работа без дополнительных зависимостей.

    Список реализованных API

    42a093e9-2bcd-4d4b-8c32-19c62ab97d46-image.png


    Модуль хорошо протестирован на версии BAS 24+.
    Версия 23.2.2 также тестировалась. Проблем не обнаружено, однако работа устаревших версий не гарантируется.

    Этот модуль не является официальным, распространяется на некоммерческой основе, в формате "как есть".
    Модификация и распространение на коммерческой основе запрещены.



  • Для тех, кто будет искать:

    Изменить ошибки по умолчанию раз и навсегда можно отредактировав файл internal/errors.js.

    В этом файле находится объект, представляющий из себя список других объектов:
    5d556461-55e4-4fca-86bc-997ac99b0e25-image.png

    ru - русский текст ошибки
    en - английский текст ошибки
    action - действие, которое будет вызвано для указанного кода ошибки
    fail - Fail
    die - Прервать Скрипт
    stop - Не перезапускать поток (Fail)
    instantly - Завершить скрипт мгновенно (Прервать скрипт)



  • Упрощённое сравнение двух модулей на примерно идентичных настройках.

    KopeechkaS
    a9166171-7b3c-4cbc-b78e-6bf94ec4c0b2-Снимок экрана 2021-12-28 в 18.28.17.png

    3ef21274-3e17-4aab-9520-1bd2a1aec603-Снимок экрана 2021-12-28 в 18.27.47.png

    Официальный модуль
    a85d4734-60ff-4638-9920-d652cfe3372f-Снимок экрана 2021-12-28 в 18.33.59.png

    0c31b161-0c23-4aab-89f7-d1aa49332591-Снимок экрана 2021-12-28 в 18.35.27.png



  • upd 1.1 - обновлены ссылки в интерфейсе



  • до этого времени пользовал оф версию 2.1, решил поставить эту. Регулярка старая не работает на этом. Не парсит. И вообще странно, зачем указывать регулярку на парсинг в блоке на запрос мыла? Ее надо указывать в блоке на получение, иначе отладку не провести на регулярку тк каждый раз при выполнении блока взять мыл с регуляркой будет браться мыл и надо проводить повторный цикл весь получения письма (регистрацию, например). А так, выполняя блок (как раньше) с получением, мы отлаживаем регулярку без перезапуска всего скрипта.

    В общем, не знаю, в чем дело, но не парсит.

    промо-код: <strong>([\s\S]+)<\/strong><br>\n
    


  • @euseller регулярные выражения применяются на уровне сервера в соответствии с API https://bit.ly/3myvFtt .
    Об этом указано в описании действия.

    Не знаю как работает официальный модуль, но API сервиса не позволяет указывать регулярное выражение при запросе сообщения.

    Предполагаю, что официальный модуль парсит по регулярному выражению локально. В таком случае получайте полное сообщение и применяйте регулярное выражение средствами баса. Или измените регулярное выражение так, чтобы сервис мог его принять - об этом лучше поговорить с поддержкой.



  • понятно. Перехожу обратно.



  • upd 1.2

    • Установка максимального времени выполнения действия вынесена в виде отдельного поля Временной порог в группе "Доставка запросов".

    Теперь можно использовать переменные/ресурсы для установки максимального времени.
    1117ff49-6577-4a13-9230-fe068213dbf6-image.png

    Отвечающий за это API было немного изменён.
    Для плавного перехода с более ранней версии - используйте экшен Обновить действия проекта в выпадающем меню слева сверху.
    fce08a27-d04c-4ed5-a644-257397bbdfb2-image.png

    Ссылки на предыдущие версии в шапке.



  • upd 1.3

    • Исправлен редкий баг


  • upd 1.4

    • Исправлен баг при использовании переменных в группе доставки запросов


  • upd 1.7

    • Исправлена ошибка, приводившая к переопределению внутренней функции result()


  • This post is deleted!


  • upd 1.8

    • Добавлена возможность указывать свой soft_id при заказе почты. Параметр называется "ID разработчика ", находится в "Получить эл. адрес" > Параметры.
      479fdd38-c560-46eb-8482-41c78f0b86cd-image.png

    • Исправлен баг при использовании локального хранилища писем во время отмены почты (ни на что ранее не влиял, но был исправлен).

    Помимо этого, у модуля есть страница на github. Будет круто, если вы поставите звезду репозиторию. Спасибо.
    https://github.com/Sadzurami/KopeechkaS



  • Итак, официальный модуль обновился. Стало ли лучше?
    Очередное сравнение.

    Условия:

    • 200 потоков
    • 5000 успехов
    • 5000 неудач

    Действия:

    • Получить почту (сайт example.com, выборка REAL)
    • Получить сообщение (обёрнуто в игнорирование ошибок, для сравнения одного и того же функционала)
    • Закрыть почту
    • Получить баланс

    Официальный модуль:

    • действия в проекте
      865ec6c1-c73f-4c91-b254-fff61246befe-Снимок экрана 2022-06-28 в 11.07.10.png

    • результат
      17375586-4845-47bb-9161-07e788527c37-Снимок экрана 2022-06-28 в 11.06.30.png

    Время: 8 минут, 46 секунд
    Обработанные ошибки: 12794, 90% из них обработана действием "игнорировать ошибки" из примера выше, а не внутренней логикой
    Не обработанные ошибки: 3945


    KopeechkaS

    (не официальный)

    • действия в проекте
      0ff997a2-21f0-4fc0-819d-0252cf9f6579-Снимок экрана 2022-06-28 в 10.09.59.png

    • результат
      6f7e1f2b-89ec-48a4-a35f-3bfe754f70f2-Снимок экрана 2022-06-28 в 10.09.05.png

    Время: 4 минуты, 17 секунд
    Обработанные ошибки: 2
    Не обработанные ошибки: 0


    Вам может показаться тест не реалистичным, однако его цель - лишь показать результат на сухих цифрах.
    Пользуясь официальным модулем ваш скрипт тратит в 2 раза больше времени на выполнение функций, а вы тратите в разы больше времени на обработку ошибок.


Log in to reply