# RU

## ⚙️ Установка

**Требования:**

* Python версии 3.11.6 или выше, до 3.12

**Скачивание:**

1 | Клонировать репозиторий&#x20;

```
git clone https://github.com/0xStarLabs/StarLabs-Twitter.git
```

```
cd StarLabs-Twitter
```

2 | Создать виртуальное окружение

```
python -m venv venv
```

```
venv\Scripts\activate
```

3 | Установить зависимости

```
pip install -r requirements.txt
```

3 | Запуск (после настройки)

```
py main.py
```

***

## 📁 Подготовка (папка data) <a href="#podgotovka-papka-data" id="podgotovka-papka-data"></a>

Здесь находятся все данные юзера необходимые для работы.

**accounts.xlsx** - таблица с аккаунтами, прокси и данными для аккаунтов.

Каждая строка = 1 аккаунт. Ячейки подписаны, понятно интуитивно.\
Заполнять нужно только поля AUTH\_TOKEN и PROXY.

<mark style="color:yellow;">Прокси в формат USER:PASS\@IP:PORT</mark>\ <mark style="color:yellow;">Поддерживаются ТОЛЬКО HTTP прокси.</mark>

*После запуска любой функции в боте, скрипт сам обновит в таблице статус аккаунта и его юзернейм.*

**images -** папка, в которой находятся изображения для функций, которые используют изображения (твит с картинкой и тд). **Поддерживаются изображения в формате&#x20;**<mark style="color:yellow;">**.PNG**</mark>**&#x20;и&#x20;**<mark style="color:yellow;">**.JPG**</mark>**.**

**comment\_text.txt** - текстовый файл, в котором хранятся комментарии для функции Comment и Comment with picture. *Бот использует каждый комментарий построчно, то есть <mark style="color:yellow;">1 строка = 1 коммент</mark>.*\
Настроить использование комментариев вы можете в файле <mark style="color:yellow;">config.yaml</mark>.

**tweet\_text.txt** - текстовый файл, в котором хранятся твиты для функции Tweet, Quote и Tweet with picture. *Бот использует каждый твит построчно, то есть <mark style="color:yellow;">1 строка = 1 твит</mark>.*\
Настроить использование твитов вы можете в файле <mark style="color:yellow;">config.yaml</mark>.

***

## 📝 Config.yaml <a href="#config.yaml" id="config.yaml"></a>

В этой секции будет написано детально про каждую функцию в файле `config.yaml`.

{% code overflow="wrap" %}

```javascript
SETTINGS

THREADS: 1 - количество потоков/одновременных аккаунтов которые будет делать бот.

ATTEMPTS: 5 - при ошибках, сколько раз бот будет пытаться выполнить действие.

ACCOUNTS_RANGE: [0, 0] - диапазон аккаунтов для работы. 
Пример: [3, 6] значит бот выполнит аккаунты начиная с третьего до шестого.

EXACT_ACCOUNTS_TO_USE: [] - !Работает только если ACCOUNTS_RANGE: [0, 0].
Пример: [1, 3, 7] что значит бот выполнит только аккаунты 1 3 и 7.

SHUFFLE_ACCOUNTS: false - перемешивать аккаунты перед каждым запуском или нет.
Если true, то бот каждый раз будет выполнять аккаунты в случайном порядке.

PAUSE_BETWEEN_ATTEMPTS: [0, 0] - пауза в секундах между попытками выполнить одно действия.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.

RANDOM_PAUSE_BETWEEN_ACCOUNTS: [0, 0] - пауза в секундах между аккаунтами.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.

RANDOM_PAUSE_BETWEEN_ACTIONS: [0, 0] - пауза в секундах между заданиями.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.

RANDOM_INITIALIZATION_PAUSE: [0, 0] - пауза в секундах перед стартом каждого аккаунта.
К примеру у вас 10 потоков, и пауза стоит [5, 60]
Значит каждый аккаунт отсчитает от 5 секунд до минуты перед началом работы.
Используется чтобы все аккаунты не стартовали в одно время.

SEND_TELEGRAM_LOGS: false - отравлять в телеграм логи о функциях или нет. true/false.

SEND_ONLY_SUMMARY: false - если стоит true, то бот будет отправлять в телеграмм только общий отчет для всех аккаунтов (Сделано Х аккаунтов из ХХХ и тд). Имеет смысл включать если у вас много аккаунтов, чтобы не спамить в телеграмм.
Работает только если SEND_TELEGRAM_LOGS: true.

TELEGRAM_BOT_TOKEN: "12317283:lskjalsdfasdfasd-sdfadfasd" - токен телеграм бота созданного в @BotFather

TELEGRAM_USERS_IDS: [235123432] - айди телеграм юзеров, кому отправлять логи.
ВНИМАНИЕ! Бот отправляет только в лс юзерам, не в чаты.
Свой айди аккаунта можно получить в тг боте @GetChatID_IL_BOT.
Так же не забудьте после создания бота в телеграмм зайти в вашего ТГ бота и нажать кнопку /start чтобы бот мог писать вам в личные сообщения.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
FLOW

SKIP_FAILED_TASKS: false - пропускать невыполненные задания или нет.
Если стоит false, то бот закончит работу если у него не получилось выполнить какое-то задание.
Если стоит true, тогда бот пропустит задание и начнет делать следующее.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
TWEETS

RANDOM_TEXT_FOR_TWEETS: false - если стоит true, бот будет брать твиты из файла data/tweet_text.txt в случайном порядке. Если false, тогда 1 строчка = 1 аккаунт. 
ВАЖНО! Если вы ставите false, удостоверьтесь что у вас количество твитов в файле больше или равно количеству аккаунтов.

RANDOM_PICTURE_FOR_TWEETS: false - если стоит true, Бот будет брать изображения из папки data/images в случайном порядке. Если false, тогда 1 изображение = 1 аккаунт. 
ВАЖНО! Если вы ставите false, удостоверьтесь что у вас количество изображений в файле больше или равно количеству аккаунтов.
```

{% endcode %}

{% code overflow="wrap" fullWidth="false" %}

```javascript
COMMENTS

RANDOM_TEXT_FOR_COMMENTS: false - если стоит true, бот будет брать комментарии из файла data/comment_text.txt в случайном порядке. Если false, тогда 1 строчка = 1 аккаунт. 
ВАЖНО! Если вы ставите false, удостоверьтесь что у вас количество комментарий в файле больше или равно количеству аккаунтов.

RANDOM_PICTURE_FOR_COMMENTS: false - если стоит true, Бот будет брать изображения из папки data/images в случайном порядке. Если false, тогда 1 изображение = 1 аккаунт. 
ВАЖНО! Если вы ставите false, удостоверьтесь что у вас количество изображений в файле больше или равно количеству аккаунтов.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
OTHERS

SSL_VERIFICATION: false - делать SSL верификацию или нет.
Если видите ошибки связанные с SSL в консоли, попробуй поставить true.
```

{% endcode %}

Конфиг можно настраивать как через текстовый документ в файле <mark style="color:yellow;">config.yaml</mark>, так и через веб интерфейс (пример на скриншоте внизу). \
\
В случае, если веб конфиг из меню не работает по каким-то причинам, вы всегда можете редактировать его вручную в файле <mark style="color:yellow;">config.yaml.</mark> Так же вы можете обратится к нам в чат <https://t.me/StarLabsChat> за помощью.\
\
Для запуска веб интерфейса необходимо запустить бота командой <mark style="color:yellow;">python main.py</mark> и выбрать пункт меню <mark style="color:yellow;">\[2] Edit config.</mark>\
**После этого бот запустит конфиг по URL адресу** [**http://127.0.0.1:3456**](http://127.0.0.1:3456) **который вы можете открыть в любом браузере у себя на ПК и настраивать конфиг оттуда.** По умолчанию бот сам открывает веб браузер с нужным URL. \
\&#xNAN;*<mark style="background-color:yellow;">Данный конфиг и вебсайт запускается и работает локально у вас на ПК.</mark>*\
\
**После настройки функций в конфиге нажми кнопку Save Configuration в верхнем правом углу страницы.**\
\
**Для выхода из конфига вернитесь в консоль и несколько раз нажмите&#x20;**<mark style="color:yellow;">**CTRL + C**</mark>**, либо же просто закройте консоль.**&#x20;

<figure><img src="https://1229326975-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJi1Dnz98r18DXDpXAYS4%2Fuploads%2F48xu0OlFFwFpvItEcVOC%2Fimage.png?alt=media&#x26;token=46a483c6-738c-4cb9-a162-54da9f84c027" alt=""><figcaption></figcaption></figure>

***

## ▶️ Использование  <a href="#usage" id="usage"></a>

1. Вставить аккаунты и прокси в data/accounts.xlsx, сохранить файл.
2. Открыть config.yaml и настроить под себя конфиг *(по желанию)*
3. Запустить бота командой <mark style="color:yellow;">**python main.py**</mark> и выбрать <mark style="color:yellow;">Start farming</mark>.
4. Выбрать нужную функцию из списка.
5. <mark style="color:yellow;">**После выбора функции, бот спросит вас необходимые данные для работы, будь то юзернеймы для подписок, ссылки для комментариев и тд.**</mark>

*После каждого запуска, бот будет сохранять отчеты в папку logs, на каждую функцию будет создана таблица, с названием функции, датой и временем. Внутри будет статистика по каждому аккаунту, выполнил он функцию или нет.*

***
