Whatsapp Web и задача



  • Помогите выстроить логику скрипта.
    Смысл таков, что проверяется онлайн/офлайн статус пользователей в Вотсапе и записывается в файл.

    1. Вход на сайт WhatsApp Web
    2. Переход в чат контакта №1
    3. Проверка элемента "в сети". Если онлайн, то запись делается и время системное + запись, когда офлайн пользователь стал и также время
    4. Переход в чат контакта №2
    5. Повторение пункта 3.
    6. Переход в чат контакта №n
    7. Повторение пункта 3.

    Для одного чата я сделал скрипт, а вот, чтобы он выполнялся сразу для нескольких чатов я не могу сообразить как, при этом, чтобы при цикле проверки элемента "в сети" не делалось постоянно запись онлайн или офлайн, а только один раз когда пользователи зашли онлайн и когда офлайн стали. И так по кругу.

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

    Кто сможет подсказать, как это реализовать?

    Для одного чата у меня скрипт выглядит так, но нужно, чтобы несколько чатов так проверялось

    1. Вход в чат с контактом
    2. Бесконечный цикл
      2.1 ожидание элемента "в сети", как появился, делается запись с временем
      2.2 после этого ожидается исчезновение элемента "в сети", делается запись с временем
    3. Переход к пункту 2.1

    Уже мучаюсь с недели две-три.



  • @SupremeFM больше на ТЗ смахивает...

    1. Бесконечный цикл
    2. пройтись по списку нужных, получая статус

    не использовать ожидание. а проверять периодически статус



  • @tet-vivi

    Не. В скрипте на 1 контакт у меня без ожидания

    Цикл while на проверку онлайн
    Проверить существование элемента
    Да - запись, нет - опять проверка

    Сделали запись
    Опять цикл while уже на проверку оффлайна (исчезновение селектора "в сети")
    Селектор пропал - запись, нет - проверка.

    Сделал запись, вернулись к 1 циклу while

    А для нескольких чатов додуматься не могу. Конечно, можно сделать, чтобы постоянно проверял и делал запись об онлайне или оффлайне, но записей в файле будет тьма тогда, ибо при каждой проверке будет делаться запись

    Типа
    Пользователь 1 не в сети в N время
    Пользователь 2 не в сети в N время
    Пользователь 3 в сети в N время
    И такая запись при каждой проверке. А пауза у меня в 1 секунду. Если больше ставить, то смысл теряется этого всего

    Хз, может я криво обьясняю, но как смог. Не прошу готового решения, а хотя бы намекнуть, как это реализовать



  • @SupremeFM внутрь вечного цикла сделать цикл перебора списка контактов.

    с Whatsapp Web не знаком, может возможно использовать несколько вкладок например и не загружать и переключаться?
    или можно в несколько потоков? 1 контакт 1 поток



  • @tet-vivi нет.

    Там только 1 активная вкладка может быть. Если открыть одну, а потом вторую, то из первой выбьет, мол запущена другая сессия

    Насчёт 1 поток 1 контакт тоже нет.

    Скрипт на 1 контакт выглядит так
    alt text

    Функция проверки онлайна (по аналогии такая же функция проверки оффлайна)
    alt text

    И потом в телеграм присылаются по 3 записи (время захода, время выхода и разница между этим, то есть продолжительность онлайна)
    alt text



  • Вот я набросал скрипт с перебором контактов

    alt text

    Дальше функция с перебором контактов

    alt text

    Дальше идет уже проверка статус и запись в файл. Каждое действие подписал для наглядности
    alt text

    Но файл выглядит так. Что при каждой проверке делается запись. Получается очень нечитабельно и очень много информации запишется за сутки даже.
    alt text

    Вот и вопрос мой заключается в том, как сделать, чтобы было всего по 3 записи на контакт (появление в сети, выход из сети и продолжительность онлайна)? Продолжительность онлайна сделал Время оффлайна - время онлайна = разница.



  • Никто не подскажет, в какую сторону двигаться? :(


Log in to reply