Автоматически войдите в систему и найдите доступные бесплатные игры в магазине Epic Games Store. Отправляет вам предварительно заполненную ссылку для оформления заказа, чтобы вы могли завершить оформление заказа после входа в систему. Поддерживает несколько учетных записей, сеансы входа в систему и запланированные запуски.
Инструмент можно настроить с использованием комбинации JSON и переменных среды. Файл конфигурации поддерживает синтаксис JSON5 (комментарии, конечные запятые и т. д.). Для каждого свойства значение конфигурации JSON имеет приоритет над соответствующим значением переменной среды.
Подробную информацию о каждом параметре, его значениях по умолчанию и ключе переменной среды см. на сайте документации по конфигурации.
Файл конфигурации хранится в подключенном томе /usr/app/config
и может называться config.json
или config.json5
.
config.json
или config.json5
{
"runOnStartup" : true ,
"cronSchedule" : "0 0,6,12,18 * * *" ,
"logLevel" : "info" ,
"webPortalConfig" : {
"baseUrl" : "https://epic.example.com" ,
} ,
"accounts" : [
{
"email" : "[email protected]" ,
} ,
] ,
"notifiers" : [
// You may configure as many of any notifier as needed
// Here are some examples of each type
{
"type" : "email" ,
"smtpHost" : "smtp.gmail.com" ,
"smtpPort" : 587 ,
"emailSenderAddress" : "[email protected]" ,
"emailSenderName" : "Epic Games Captchas" ,
"emailRecipientAddress" : "[email protected]" ,
"secure" : false ,
"auth" : {
"user" : "[email protected]" ,
"pass" : "abc123" ,
} ,
} ,
{
"type" : "discord" ,
"webhookUrl" : "https://discord.com/api/webhooks/123456789123456789/A-abcdefghijklmn-abcdefghijklmnopqrst12345678-abcdefghijklmnop123456" ,
// Optional list of users or roles to mention
"mentionedUsers" : [ "914360712086843432" ] ,
"mentionedRoles" : [ "734548250895319070" ] ,
} ,
{
"type" : "telegram" ,
// Optional Custom TELEGRAM server URL
"apiUrl" : "https://api.telegram.org" ,
"token" : "644739147:AAGMPo-Jz3mKRnHRTnrPEDi7jUF1vqNOD5k" ,
"chatId" : "-987654321" ,
} ,
{
"type" : "apprise" ,
"apiUrl" : "http://192.168.1.2:8000" ,
"urls" : "mailto://user:[email protected]" ,
} ,
{
"type" : "pushover" ,
"token" : "a172fyyl9gw99p2xi16tq8hnib48p2" ,
"userKey" : "uvgidym7l5ggpwu2r8i1oy6diaapll" ,
} ,
{
"type" : "gotify" ,
"apiUrl" : "https://gotify.net" ,
"token" : "SnL-wAvmfo_QT" ,
} ,
{
"type" : "homeassistant" ,
"instance" : "https://homeassistant.example.com" ,
"token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" ,
"notifyservice" : "mobile_app_smartphone_name" ,
} ,
{
"type" : "bark" ,
// your bark key
"key" : "xxxxxxxxxxxxxxxxxxxxxx" ,
// bark title, optional, default: 'epicgames-freegames'
"title" : "epicgames-freegames" ,
// bark group, optional, default: 'epicgames-freegames'
"group" : "epicgames-freegames" ,
// bark private service address, optional, default: 'https://api.day.app'
"apiUrl" : "https://api.day.app"
} ,
{
"type" : "ntfy" ,
"webhookUrl" : "https://ntfy.example.com/mytopic" ,
"priority" : "urgent" ,
"token" : "tk_mytoken"
} ,
{
"type" : "webhook" ,
//url of your webhook server
"url" : "https://webhook.site/my_uuid" ,
//Optional headers
"headers" : {
"Authentication" : "Bearer 123456"
}
} ,
] ,
}
Иногда этот проект может попросить вас войти в систему через аутентификацию по коду устройства. Срок действия сеанса кода устройства Epic Games истекает через 10 минут, поэтому этот проект использует веб-сервер и перенаправление, чтобы не отправлять вам новую ссылку каждые 10 минут. Есть два варианта запуска веб-сервера:
Если вы знакомы с хостингом веб-серверов и/или обратных прокси-серверов, выполните следующие действия:
-p 81:3000
сопоставляет порт 81 хост-компьютера с портом 3000 контейнера).webPortalConfig.baseUrl
в конфигурации. Если у вас нет возможности портировать прямой/обратный прокси-сервер в вашей сети, вы все равно можете получить удаленный доступ к веб-серверу, установив:
{
"webPortalConfig" : {
"localtunnel" : true ,
} ,
}
в вашем config.json
.
Каждый метод уведомления имеет уникальные инструкции по настройке. Прочтите его документацию (методы уведомления) на сайте конфигурации для получения точных деталей и инструкций. Пример конфигурации также может помочь в качестве примера.
Поскольку действия пользователя не всегда могут потребоваться, методы уведомления и веб-сервер можно протестировать вручную. По сути, вам просто нужно добавить:
"testNotifiers" : true ,
в корень вашего config.json
. Для получения более подробной информации ознакомьтесь с конфигурационной документацией. Примечание. Чтобы оптимизировать использование резервной памяти, веб-сервер не запускается, когда процесс не запущен. Веб-сервер будет доступен только во время запланированного запуска.
Этот образ доступен как в реестре контейнеров GitHub, так и в Docker Hub:
ghcr.io/claabs/epicgames-freegames-node:latest
charlocharlie/epicgames-freegames:latest
Если у вас возникли проблемы с запуском Chromium (зависает при входе в систему или уведомлении), вы можете попробовать образ Debian:
ghcr.io/claabs/epicgames-freegames-node:debian
charlocharlie/epicgames-freegames:debian
Если вы используете полную конфигурацию JSON, единственными оставшимися настраиваемыми параметрами Docker являются порт и том.
Большинство параметров конфигурации можно установить через переменную среды. Найдите тег env
в документации конфигурации для каждого ключа опции.
Если по какой-либо причине вы хотите изменить каталог конфигурации по умолчанию или имя файла конфигурации, CONFIG_DIR
и CONFIG_FILE_NAME
доступны в качестве переменных среды.
Хост-порт | Контейнерный порт | Описание |
---|---|---|
3000 | 3000 | Сопоставление портов, на которых находится веб-сервер, на котором размещена страница решения капчи. |
Местоположение хоста | Расположение контейнера | Режим | Описание |
---|---|---|---|
/my/host/dir/ | /usr/app/config | rw | Расположение файлов конфигурации и файлов cookie. |
Рекомендуется добавить -m 2g
в качестве параметра docker run
, чтобы установить максимальное использование памяти в 2 ГБ. Процессы Chromium иногда могут сработать, и ваша система без ограничений может в конечном итоге зависнуть.
$ docker run -d -v /my/host/dir/:/usr/app/config:rw -p 3000:3000 -m 2g ghcr.io/claabs/epicgames-freegames-node:latest
Без конфигурации JSON вы можете настроить только одну учетную запись.
$ docker run -d -e TZ=America/Chicago -e [email protected] -e RUN_ON_STARTUP=true -e BASE_URL=https://example.com -e SMTP_HOST=smtp.gmail.com -e SMTP_PORT=587 -e [email protected] -e EMAIL_SENDER_NAME="Epic Games Captchas" -e [email protected] -e SMTP_SECURE=true -e [email protected] -e SMTP_PASSWORD=abc123 -v /my/host/dir/:/usr/app/config:rw -p 3000:3000 -m 2g ghcr.io/claabs/epicgames-freegames-node:latest
Если у вас возникли проблемы со входом в систему с использованием кода устройства, вы можете импортировать файлы cookie для временного сеанса.
https://www.epicgames.com/id
и нажмите кнопку экспорта: ./config
создайте <email_address>-cookies.json
(например, [email protected]
) и вставьте туда файлы cookie.Если по какой-то причине вы не хотите использовать Docker для запуска этого инструмента, вы можете запустить его из исходного кода, клонировав этот репозиторий и установив Node.js.
git clone https://github.com/claabs/epicgames-freegames-node.git
config
в клонированном/распакованном каталоге.npm i
npm run start
git pull
npm i
В версии 5 было добавлено или удалено несколько опций. Добавленные/удаленные параметры не должны влиять на существующие конфигурации версии 4, но, возможно, потребуется изменить ваш config.json
для стабильного решения.
cronSchedule
: значение по умолчанию изменено на каждые шесть часов. Вам следует изменить расписание cron, чтобы оно запускалось чаще, чем каждые 8 часов, так как срок действия токена обновления кода устройства истекает через 8 часов. account.password
: учетные данные для входа больше не используются.account.totp
: учетные данные для входа больше не используются.noHumanErrorHelp
: покупка больше не автоматизируетсяhcaptchaAccessibilityUrl
: устарел в версии 4.email
: устарела в версии 4, используйте notifiers
с "type": "email"
baseUrl
: устарел в версии 4, используйте webPortalConfig.baseUrl
onlyWeekly
: устарел в версии 4, используйте searchStrategy
Спасибо эпическим играм-еженедельно-бесплатным играм за вдохновение.
Спасибо EpicResearch за документацию, которая сделала возможной аутентификацию кода устройства.