Получение уведомлений из браузера Zennoposter

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Уже не в первый раз встречаю, что пользователи зеннопостера хотят запускать код ожидания уведомлений и, по мере его получения, продолжать работу.
Поэтому представляю шаблон, который всём этим занимается.

Преждем чем приступить к работе с уведомлениями нам надо включить их:
C#:
instance.AllowNotification = true;
Далее нам нужно переопределить функцию для того, чтобы уведомления писались в консоль браузера:
JavaScript:
console.logs = [];

(function () {

    function notifyCallback(title, options) {
        let info;
        if (options && options.body)
        {
            info = {
                title,
                body: options.body
            }
        }
        else
        {
            info = {
                title,
            }
        }
        console.logs.push(info);
    }

    const handler = {
        construct(target, args) {
            notifyCallback(...args);
            return new target(...args);
        }
    };

    const ProxifiedNotification = new Proxy(Notification, handler);

    window.Notification = ProxifiedNotification;
})();
И далее просто переходим на нужный сайт и ждем пока уведомление появится с таймаутом в 100 мс:
C#:
//Время ожидания
TimeSpan ts = TimeSpan.FromMinutes(5);
DateTimeOffset dtEnd = DateTimeOffset.UtcNow.Add(ts);

project.Variables["notification"].Value = "";
while (true)
{
    if (DateTimeOffset.UtcNow > dtEnd)
        break;

    string result = instance.ActiveTab.MainDocument.EvaluateScript("return JSON.stringify(console.logs.pop());", true);
    if (result != "" && result != "undefinied")
    {
        project.SendInfoToLog(result);
        project.Variables["notification"].Value = result;
        break;
    }

    //Таймаут между запросами
    Thread.Sleep(100);
}
 

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Регистрация
26.05.2020
Сообщения
460
Благодарностей
164
Баллы
43
Речь про браузерные пуши или что?
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
288
Баллы
63
Все круто, но не понятно мне лично что код делает(
 
  • Спасибо
Реакции: seodamage

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
288
Баллы
63

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113

todayer

Client
Регистрация
07.08.2013
Сообщения
938
Благодарностей
391
Баллы
63
Хочется уточнить, зачем переходить на нужный сайт? Уведомления же включаются для профия в целом и должны приходить (по идее) от любых сайтов, от которых разрешено получение уведомлений.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Хочется уточнить, зачем переходить на нужный сайт? Уведомления же включаются для профия в целом и должны приходить (по идее) от любых сайтов, от которых разрешено получение уведомлений.
Можно и так, если уведомления приходят без сайта
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)