Всем привет! С позволения разработчика данного бота, хочу поделиться статьёй о том, как установить бота: https://github.com/NightStrang6r/FunPayServer . В статье будет описываться процесс запуска данного бота. Функционал Автовыдача товаров. Автоподнятие предложений. Автовосстановление предложений после продажи. Автоответ на сообщения. Вечный онлайн. Подсчёт продаж. Подсчёт заработка с продаж. Преимущества Оптимизированность: Для работы достаточно до 200мб свободного места на диске, 64-разрядная OS, любой процессор, до 250 мб ОЗУ, доступ в Интернет Доступность: Программу можно запустить на любой платформе, которую поддерживает NodeJS: от Windows и Linux, до Android, iOS и FreeBSD. Частичное управление через Telegram Наличие самого нужного функционала Установка(windows) 1. Скачайте FunPayServer.exe со страницы: https://github.com/NightStrang6r/FunPayServer/releases. 2. Переместите программу в любую папку. 3. Запустите программу, создастся файл settings.json 4. Теперь в браузер Google Crome устанавливаем расширение EditThisCookie по ссылке: https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg 5. Входим в аккаунт Funpay, с которого осуществляются продажи, нажимаем на установленное расширение и в открывшейся панели открываем "golden_key", значение этой строки нам понадобится в следующем пункте 6. Открываем файл config.json в главной папке нашего бота любым редактором и вписываем наш куки из предыдущего пункта в строчку "token" по примеру: и сохраняем файл 7. Запустите программу. Готово! Установка для продвинутых(windows) 1. Заходим по данной ссылке: https://github.com/NightStrang6r/FunPayServer , нажимаем на кнопку "Code", потом на "Download ZIP" 2. После закачки, разархивируем его в любое место 3. Скачиваем Node JS 16.16.0 LTS(актуальная версия на момент написания статьи) по ссылке: https://nodejs.org/en/ и устанавливаем его 4. Запустите файл Start.bat, это установит зависимости для работы программы. После запустите этот файл повторно, создастся файл settings.json 5. Теперь в браузер Google Crome устанавливаем расширение EditThisCookie по ссылке: https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg 6. Входим в аккаунт Funpay, с которого осуществляются продажи, нажимаем на установленное расширение и в открывшейся панели открываем "golden_key", значение этой строки нам понадобится в следующем пункте 7. Открываем файл config.json в главной папке нашего бота любым редактором и вписываем наш куки из предыдущего пункта в строчку "token" по примеру: и сохраняем файл 8. Теперь запускаем файл Start.bat в главной папке нашего бота, если всё получилось, вы увидите: Установка Linux / Ubuntu Устанавливать можно как на системы с GUI, так и на системы без него. Все версии Ubuntu начиная с 16.04 подходят для установки. Данный вид установки предусматривает то, что вы будете запускать с source code. Установка NodeJS : 1. После входа в систему пропишите команду sudo apt update && sudo apt upgrade 2. Скачайте curl с помощью команды sudo apt-get install curl 3. Установите деб-пакет NodeJS при помощи команды curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - 4. Установите NodeJS при помощи команды : sudo apt-get install nodejs 5. Проверьте версию с помощью команды node -v, у вас должна отображаться версия 16, но любая версия выше тоже подойдет. Включение бота : 1. Пропишите команду cd (Название папки куда вы загрузили FunPayServer, можно написать часть названия и нажать tab , Linux сам подберет подходящую папку) 2. Прописываем команду npm i, ждем загрузки. 3. После загрузки прописываем команду node . 4. Готово! Бот запущен! Далее работа с ботом не отличается от Windows версии. Установка(Termux) Установите Termux на свой Android одним из вариантов: Установка(Termux) Скачать через F-Droid - на странице кнопка "Download APK" (рекомендуется) Скачать со страницы релизов Termux - нужен файл termux-app_v0.118.0+github-debug_universal.apk, либо более новой версии Скачать через Google Play (важно: версия Termux из Google Play больше не обновляется) 1. Обновите пакеты, выполнив команду apt update && apt upgrade. 2. Выполните команду pkg install nodejs wget unzip. 3. Выполните команду wget https://github.com/NightStrang6r/FunPayServer/archive/refs/heads/main.zip && unzip main.zip. 4. Перейдите в папку проекта, выполнив команду cd FunPayServer-main. 5. Выполните команды: npm i, node .. 6. Следуйте инструкциям консоли. Готово! Установка FreeBSD Установка только на системы без GUI, установка исключительно через source code, через .exe файл установить невозможно. Все версии начиная с 13.1 поддерживаются. Установка на FreeBSD самая простая из всех систем. Минусы : Кириллица не поддерживается, для её отображения вам нужно будет скачивать дополнительные пакеты, в этом гайде их не будет. Без этих пакетов все кириллические символы будут переведены в знаки вопроса. Установка NodeJS и его компонентов : 1. Установите NodeJS используя команду pkg install nodejs 2. Установите npm используя команду pkg install npm-8.19.1 3. Перезагрузитесь используя команду reboot Запуск бота (Аналогичный запуску на Linux) : 4. Пропишите команду cd (Название папки куда вы загрузили FunPayServer, можно написать часть названия и нажать tab , FreeBSD сам подберет подходящую папку) 5. Прописываем команду npm i, ждем загрузки. 6. После загрузки прописываем команду node . 7. Готово! Бот запущен! Дополнительные настройки Настройка автовыдачи 1. Проверьте, что в файле settings.json включена настройка автовыдачи: "autoIssue": true. 2. Переходим в папку data, открываем файл autoIssueGoods.json. 3. Заполняем необходимыми товарами в формате JSON по примерам: Если у вас выдаётся один и тот же товар: [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "message": "Тут сообщение, которое будет выдано после оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "message": "Тут другое сообщение, которое будет выдано после оплаты другого лота" }] Код [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "message": "Тут сообщение, которое будет выдано после оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "message": "Тут другое сообщение, которое будет выдано после оплаты другого лота" }] Если у вас выдаются разные товары: [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "nodes": [ "Тут сообщение, которое будет выдано после первой оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка ", "Тут сообщение, которое будет выдано после второй оплаты данного лота.", ] }] Код [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "nodes": [ "Тут сообщение, которое будет выдано после первой оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка ", "Тут сообщение, которое будет выдано после второй оплаты данного лота.", ] }] Комбинации: [{ [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "nodes": [ "Тут сообщение, которое будет выдано после первой оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка ", "Тут сообщение, которое будет выдано после второй оплаты данного лота.", ] }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "message": "Тут сообщение, которое будет выдано после оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка" }] Код [{ [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "nodes": [ "Тут сообщение, которое будет выдано после первой оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка ", "Тут сообщение, которое будет выдано после второй оплаты данного лота.", ] }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ТОВАРА НА Funpay", "message": "Тут сообщение, которое будет выдано после оплаты. Для переноса строки используйте символы \n. Пример: первая строка\nвторая строка" }] Для проверки правильности заполнения файла можете использовать сервис https://json.parser.online.fr Для проверки работы автовыдачи без покупки товара используйте команду в чате: !автовыдача "НАЗВАНИЕ ПРЕДЛОЖЕНИЯ". Для включения данной команды пропишите в файле настроек settings.json "autoIssueTestCommand": true. 4. Сохраняем и перезапускаем программу. Настройка автоответа 1. Проверьте, что в файле settings.json включена настройка автовыдачи: "autoResponse": true. 2. Переходим в папку data, открываем файл autoResponse.json. 3. Заполняем необходимыми ответами в формате JSON по примерам: [ { "command": "!тест", "response": "Тестовое сообщение" }, { "command": "!команда", "response": "Ответ на команду" } ] Код [ { "command": "!тест", "response": "Тестовое сообщение" }, { "command": "!команда", "response": "Ответ на команду" } ] 4. Сохраняем и перезапускаем программу. Функция подсчёта продаж / заработка Бот может подсчитать количество продаж и сумму заработанных средств с продаж. Для этого запустите файл FunPayServer.exe с параметром --countProfit, т.е. чтобы получилось FunPayServer.exe --countProfit. Запустить файл с параметром можно при помощи командной строки. Если вы использовали продвинутую установку, просто запустите файл CountTradeProfit.bat. Работа с ****** Бот поддерживает работу с http / https ****** с / без авторизации. Для включения работы через ****** пропишите в файле настроек settings.json настройку "useProxy": true, а также данные хоста в поле host и порт в поле port. Если ваш ****** не требует авторизации, оставьте поля login и pass пустыми. Файл настроек Бот имеет модульную структуру, что позволяет отключать или подключать необходимые модули, редактируя файл настроек settings.json. Этот файл генерируется автоматически при первом запуске. После редактирования файла не забудьте перезапустить программу. { "token": "golden_key", // golden_key с Funpay cookies [string] "telegramBot": true, // функция управления через Telegram [true / false] "telegramToken": "", // токен телеграм бота [string] "telegramUserName": "", // username пользователя [string] "alwaysOnline": true, // функция вечного онлайна [true / false] "lotsRaise": true, // функция автоподнятия предложений [true / false] "goodsStateCheck": true, // функция автовосстановления предложений [true / false] "autoIssue": true, // функция автовыдачи [true / false] "autoResponse": true, // функция автоответа [true / false] "userDataUpdate": true, // функция автоматического обновления данных (не рекомендуется отключать) [true / false] "autoIssueTestCommand": false, // функция включения команды "!автовыдача" для теста автовыдачи; требуется функция "autoResponse" для работы [true / false] "proxy": { "useProxy": false, // функция использования ****** [true / false] "host": "", // хост ****** [string] "port": 3128, // порт ****** [number] "login": "", // логин ****** [string] "pass": "", // пароль ****** [string] "type": "http" // тип ****** [string: "http" / "https"] }, "requestsDelay": 0, // задержка перед каждым запросом в миллисекундах [number] "watermark": "[ NightBot ]" // строка, которая добавляется перед отправкой сообщения ботом [string] } Код { "token": "golden_key", // golden_key с Funpay cookies [string] "telegramBot": true, // функция управления через Telegram [true / false] "telegramToken": "", // токен телеграм бота [string] "telegramUserName": "", // username пользователя [string] "alwaysOnline": true, // функция вечного онлайна [true / false] "lotsRaise": true, // функция автоподнятия предложений [true / false] "goodsStateCheck": true, // функция автовосстановления предложений [true / false] "autoIssue": true, // функция автовыдачи [true / false] "autoResponse": true, // функция автоответа [true / false] "userDataUpdate": true, // функция автоматического обновления данных (не рекомендуется отключать) [true / false] "autoIssueTestCommand": false, // функция включения команды "!автовыдача" для теста автовыдачи; требуется функция "autoResponse" для работы [true / false] "proxy": { "useProxy": false, // функция использования ****** [true / false] "host": "", // хост ****** [string] "port": 3128, // порт ****** [number] "login": "", // логин ****** [string] "pass": "", // пароль ****** [string] "type": "http" // тип ****** [string: "http" / "https"] }, "requestsDelay": 0, // задержка перед каждым запросом в миллисекундах [number] "watermark": "[ NightBot ]" // строка, которая добавляется перед отправкой сообщения ботом [string] } Решение возникших ошибок При возникновении каких-либо ошибок, скачайте последнюю версию бота(он обновляется ежедневно), если проблема останется, отпишите в данной теме или в чат с разработчиком бота: https://t.me/fplite или в дискорд канал: dsc.gg/Funpay
dasd1212, проблема в коде. Там не учтено, что в разных разделах Funpay может быть разный порядок написания данных лота. Если у тебя 1 товар, то не очень хорошим, но всё же решением будет в поле name вписать то, что тебе выдало в консоли, т.е. "Калибровка".
scafry04, сейчас выкатил на github небольшой фикс, который должен решить эту проблему. Переустанови программу.
NightStrang6r, Исправил, но появилась новая проблема. При поднятии лота - он не поднимается и пишет вот такую ошибку:
boom_bust, увеличь в файле index.js в скобках задержку между запросами (она там в миллисекундах). Проблема скорее всего в том, что nginx сервер Funpay может блочить частые запросы. Увеличение задержки решает эту проблему.
nickwield, в смысле если ты перешел бы, было бы не C:\Windows\system32, а путь который ты выше прописывал. Что не так я в душе не ебу, на винде хуй проссышь, я по юниксам. Попробуй эти действия в powershell проделать.
Привет найт появился новый вопрос, пишет Проверяем на наличие новых заказов а следом за этим выводит Начальные данные по заказам не переданы
EESTI, скорее всего запрос не прошёл из-за того, что было много запросов. Заново скачай с гитхаба и переустанови программу, я залил новый код, теперь таких проблем должно быть, по крайней мере, меньше. И чекайте почаще гитхаб, там почти каждый день обновы пока что =)
AllexFast, не против - это официальный ответ тех. поддержки. Против они только продажи подобного на их площадке.
Надеюсь что все робит, и просто я туповат, но что то не выходит, пытался и полностью "россия тест 1шт" писать, прям копировал с консоли, тоже ничего не дало.
Ошибка категории, посредством чего не может поднять лоты, ввёл только golden key и всё --- Сообщение объединено с предыдущим 3 авг 2022 --- Сообщение объединено с предыдущим 3 авг 2022
KoSmoSS, у меня ещё одна проблема появилась я завершаю программу и включаю снова когда человек берет товар пишет Не удалось отправить сообщение, node: "users-4555855-2879925", сообщение помоги пожалуйста
ток хз выдаёт ли данные --- Сообщение объединено с предыдущим 5 авг 2022 не выдаёт данные --- Сообщение объединено с предыдущим 5 авг 2022 тестировал с игрой genshin --- Сообщение объединено с предыдущим 5 авг 2022 Автовыдача запущена, загружено undefined товара(ов). --- Сообщение объединено с предыдущим 5 авг 2022 хз когда один товар в автовыдачу поставил, всё сработало --- Сообщение объединено с предыдущим 5 авг 2022 крч данные от аккаунта пароль и т.д пишите в одну строку, а то если на следущую перенести, автовыдача работать не будет
JONOPOK, если видишь "Автовыдача запущена, загружено undefined товара(ов).", то в файле автовыдачи есть ошибки. Он должен чётко соответствовать формату JSON. Для переноса строки в сообщении товара поставь \n в том месте, где нужен перенос.
всем привет, появился вопрос насчет того, что все товары и лоты пихать в autoIssueGoods и нужно ли для отдельного товара создать новый массив или все в один кидать?
NightStrang6r, даже например у меня много товаров и отличается лишь ключи. то также все в один массив? и еще, как например сделать чтобы при выдаче ключа писало типа про отзыв про подтверждение оплаты итд, и так и должно быть чтобы перед сообщений писало NightBot, миллион вопрос конечно, еще, на данный момент последний, бот сам удаляет продавшие коды? или лучше в ручную все это делать
MamEshe5Minut, про отзыв и так далее также пишешь в строке сообщения, где и товар. Да, что NightBot это, как бы так сказать, пиар бота. Это можно убрать в коде. Про выдачу разных товаров в одном лоте уже писал в этой теме в ответе чуть ниже.
Аккаунты которые он уже выдал он пропускать будет? К примеру выдал гта #1, в след заказ он выдаст гта #2?
Whome, да. Для этого используй следующую структуру файла: { "name": "ТУТ НАЗВАНИЕ ТОВАРА ТОЧЬ В ТОЧЬ", "nodes": [ { "message": "Сам товар 1", "sold": false }, { "message": "Сам товар 2", "sold": false }, { "message": "Сам товар 3", "sold": false } ] } Код { "name": "ТУТ НАЗВАНИЕ ТОВАРА ТОЧЬ В ТОЧЬ", "nodes": [ { "message": "Сам товар 1", "sold": false }, { "message": "Сам товар 2", "sold": false }, { "message": "Сам товар 3", "sold": false } ] } Параметр sold - состояние товара: true - продано, false - не продано.
LevaaaaaYT, если видишь "Автовыдача запущена, загружено undefined товара(ов).", то в файле автовыдачи есть ошибки. Он должен чётко соответствовать формату JSON.
помогите как правильно писать просто когда я создаю новый код что бы добавить другие товары выдёт ошибку
1232131231, так покажи каким образом ты добавляешь другие товары. Нужно не забывать, что формат файла - JSON.
1232131231, вот так по аналогии ты добавляешь больше товаров: [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }] Код [{ "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }, { "name": "ТУТ ТОЧЬ В ТОЧЬ НАЗВАНИЕ ЛОТА", "message": "Тут прописываем товар, который будет выдаваться" }]