1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/inu1255-soulsign-chrome

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

soulsign-chrome

autoRelease

Функционал

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

Способ использования

  1. Ручная установка: скачайте build.zip и распакуйте, «Параметры» → «Дополнительные инструменты» → «Расширения» → «Режим разработчика» → «Загрузить распакованное расширение».

firefox установка

Установка скрипта

Самый простой способ — нажмите на значок плагина → «Диспетчер задач» → «Рекомендуемые скрипты» → выберите установку.

Способ установки сторонних или пользовательских скриптов: нажмите на значок плагина → «Диспетчер задач» → «Добавить скрипт» → загрузите файл скрипта / вставьте код скрипта / перетащите файл скрипта / вставьте ссылку на скрипт.

Обновление:

20181207: добавлена поддержка ввода параметров пользователем, используется для автоматического входа в систему с указанием логина и пароля пользователя. Способ применения см. в public/demos/m.jd.js, требуется версия 1.0.4+.

20190326: добавлена поддержка подключения внешних js, добавлена возможность получения cookie указанной веб-страницы. Пример/public/demo/xiami.js

20190428: добавлена поддержка подстановочных знаков домена, *.baidu.com будет соответствовать xxoo.baidu.com или www.baidu.com, но не может соответствовать baidu.com.

20191205: рефакторинг кода, очистка логики, объединение операций, таких как диспетчер задач, в бэкенд для обеспечения целостности данных; добавлены функции импорта и экспорта; улучшена безопасность скриптов, добавлен @grant для запроса разрешений.

20191208: добавлен переключатель возврата пожертвований, при посещении https://www.jd.com/ будет перенаправление на ссылку возврата автора.

20191218: оптимизирована структура кода, поддерживается экспорт и импорт скриптов, создан сайт скриптов.

20200827: добавлена страница просмотра журнала.

20200831: добавлена поддержка функций, подобных puppeteer, например, имитация щелчка мыши. [Использование](#Имитация щелчка мышью)

Планы:

  • Поддержка старых версий (с babel) — нет явной необходимости, поэтому отменено.
  • Поддержка обновления скриптов (вручную/автоматически) ✅
  • Сайт публикации скриптов

Разработка скриптов

Пример:

// ==UserScript==
// @name              v2ex регистрация
// @namespace         https://github.com/inu1255/soulsign-chrome
// @version           1.0.0
// @author            inu1255
// @loginURL          https://www.v2ex.com/signin
// @expire            900e3
// @domain            www.v2ex.com
// ==/UserScript==

/**
 * Интерфейс регистрации, можно использовать axios для отправки запросов, URL-адрес запроса должен быть объявлен через @domain
 * throw Регистрация не удалась и выдаёт причину сбоя
 * return Регистрация прошла успешно и возвращает сообщение об успешном выполнении
 */
exports.run = async function() {
    var ret = await axios.get('https://www.v2ex.com/mission/daily');
    if (ret.status != 200) throw 'Необходимо войти';
    if (/每日登录奖励已领取/.test(ret.data)) return 'Уже получено';
    let m = /redeem\?once=(.*?)'/gi.exec(ret.data);
    if (!m) throw 'Ошибка 1';
    await axios.get('https://www.v2ex.com/mission/daily/redeem?once=' + m[1]);
    var ret = await axios.get('https://www.v2ex.com/mission/daily');
    if (/每日登录奖励已领取/.test(ret.data)) return 'Успешно';
    throw 'Ошибка 2';
};

/**
 * Проверка онлайн-статуса, можно использовать библиотеку axios для отправки запроса, URL-адрес запроса должен быть указан через @domain
 * return true означает, что пользователь онлайн
 */
exports.check = async function() {
    var ret = await axios.get('https://www.v2ex.com/mission/daily');
    return ret.status == 200;
};

Объяснение:

  • В начале обязательно должно быть ==UserScript==
  • @name — название скрипта
  • @namespace — официальный сайт скрипта
  • @version — версия скрипта
  • @author — автор скрипта
  • @loginURL — URL для входа (помогает пользователям войти через эту ссылку)
  • @expire — время истечения сеанса (в миллисекундах), система будет периодически вызывать check для проверки статуса и поддержания активности сеанса
  • @domain — запрашиваемый домен (объявляет домены, к которым обращается скрипт)
  • @param — параметры (тип параметра, необязательно, по умолчанию text)
  • (@author, @name) уникально идентифицирует скрипт, дубликаты будут считаться одним скриптом
  • В конце обязательно должно быть ==/UserScript==

Подробнее о примерах

ps: Авторские скрипты используют async/await, которые не поддерживаются старыми браузерами.

Настройка журнала

Предварительный просмотр:

image

Пример:

Вывод относится к возвращаемому значению export.run()

  • Стандартный формат выводаobject

    {
        summary: "Регистрация прошла успешно", // `Результат выполнения`, может отображаться в формате `html`
        detail: [
            {
                domain: "www.example.com", // `Подробности/Журнал` содержит `домен`
                url: "https://www.example.com", // `Подробности/Журнал` содержит ссылку на `домен`
                message: "Получено 1 очко", // `Подробности/Журнал` содержат `сообщение`, формат такой же, как у `результата выполнения`
                errno: false, // Успех, errno = (false || 0); сбой, errno = (true || !0)
                log: {
                    data: "some_data",
                    param: {
                        param1: 1,
                        param2: "some_string",
                    },
                }, // Или любые другие дополнительные атрибуты, тип и количество не ограничены, они появятся в `развёрнутых элементах формы`
            },
        ],
    }
    ``` Совместимость с выходными форматами
***string***
"Успешная регистрация"

// По умолчанию преобразуется в `стандартный выходной формат`, как показано ниже:
//
// {
//     summary: "Успешная регистрация",
//     detail: [
//         {
//             domain: @domain[0],
//             url: @loginUrl,
//             message: "Успешная регистрация",
//             errno: throw ? true : false,
//         },
//     ],
// }

Объяснение:

  1. Если вы используете стандартный выходной формат для разработки, пожалуйста, попробуйте использовать tools.version
{ inputLower: 1, inputEqual: 0, inputHigher: -1 } = function (string)

для совместимости с выходным форматом. В старых версиях плагинов object будет отображаться в виде JSON в разделе результаты выполнения, что может ухудшить восприятие. 2. Содержимое .log | дополнительные свойства полностью определяется внутри скрипта и предназначено для улучшения процесса разработки и получения обратной связи от пользователей. Это необязательная опция, поэтому она не копируется по умолчанию. 3. На странице подробности/журналы можно установить флажок для домена и скопировать его. Информация, доступная для копирования по умолчанию, включает domain, url, message, errno. Для доступа к другой информации пользователи должны самостоятельно включить опции и добавить их перед копированием. 4. Домены на странице подробности/журналы поддерживают цвета результатов выполнения, а также errno = 2 : orange, errno = 3 : orchid, errno = 4 : pink, errno = 5 : brown. 5. По умолчанию в развёрнутых элементах формы дерево JSON раскрывается только на один уровень.

Имитация кликов

См. демонстрационные скрипты 京东金融PC и 阿里云签到.

Концепция

Автор ранее создавал инструменты для регистрации с использованием puppeteer и делал сайты для регистрации на nodejs, но оба подхода имели недостаток — неудобство работы с cookie. Преимущество создания плагина заключается в том, что не требуется управлять cookie, плагин не сохраняет информацию о cookie, а пользователю не нужно получать cookie — достаточно просто войти в браузер со своим аккаунтом.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Хуньцянь, плагин для Chrome для автоматического входа. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/inu1255-soulsign-chrome.git
git@api.gitlife.ru:oschina-mirror/inu1255-soulsign-chrome.git
oschina-mirror
inu1255-soulsign-chrome
inu1255-soulsign-chrome
master