- 20.06.2022
- 23 847
- 218
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Бот, предназначенный для рассылки сообщений от имени группы
Нужно = python 3.8.5
Спам бот Вконтакте предназначен для рассылки сообщений от имени группы (в будущем планируется аддаптация под пользователей). В качестве файла с настройками используется json (для редактирования можно открыть в блокноте) и в качестве БД с id пользователей обычный excel.
Список используемых библиотек и модулей:
Основные понятия:
Профиль - название листа в файле excel, с которого бот будет брать id пользователей для рассылки.
Текущий профиль - профиль, который выбран для рассылки.
Главный профиль - профиль с названием user_ids.
Стартовая клавиатура - клавиатура, имеющая команды: 'Start' и 'Change', слева от 'Change' показан текущий профиль.
Список команд:
Change - изменить текущий профиль. После использования этой команды, появится клавиатура с вариантами профилей.
Start - запустить процесс обработки предыдущего сообщения. Далее бот отправит пример сообщения, которое будет рассылаться, а также, выведет клавиатуру с командой Confirm.
Confirm - подтверждение рассылки, после успешного выполнения отправит сообщение со временем, затраченным на рассылку.
Get user ids - запишет в файл 'user_ids.xlsx' на лист 'user_ids' информацию о всех участниках группы (name, id and link).
Close - скрыть клавиатуру (не будет появляться только стартовая клавиатура и клавиатура с командой 'Confirm'*).
Open - открыть клавиатуру.
Варианты работы с ботом:
1) Отправить сообщение для рассылки и потом заюзать команду 'Start'.
2) Переслать сообщение для рассылки с командой 'Start'.
Порядок настройки:
1) В файле 'settings.json' изменить значения по ключам:
* vk_bot => token (токен сообщества);
* vk_bot => group_id (id сообщества);
* vk_bot => admins (массив id пользователей, которые будут иметь возможность взаимодействовать с ботом).
2) В файле 'user_ids.xlsx':
* заполнить колонки в главном профиле или создать свой;
* заполнить одну из двух колонок в профиле (листе): 'id' (id пользователя) или 'link' (ссылка на пользователя). Бот использует данные из колонки 'id', если будет заполнена только 'link', то бот преобразует ссылки в id пользователей и заполнит пропуски в колонке 'id'.
Что можно изменять в 'settings.json'?
* в options => commands можно изменять названия команд;
* в options => keyboard => color можно изменить цвет клавиатуры (primary - синий, secondary - белый, negative - красный, positive - зелёный);
* vk_bot => delete_files отвечает за действие с файлами, которые будут загружаться во время работы (true - удалять, false - не удалять);
* vk_bot => time_sleep_exceptions время задержки после срабатывания исключений в секундах.
Планы на доработку:
- написать функцию, которая будет преобразовывать массив профилей для клавиатуры (команда Change) в двумерный массив с определённым количеством столбцов (макс. 5 - ограничение вк) и строк (макс. 10) (в данный момент кнопки выводятся в один столбец - create_rows_in_mas(sheet_names), где sheet_names - массив).
- возможность рассылки от имени пользователя.
- добавить команду для получения списка друзей определённого пользователя.
- добавить возможность получения списка всех бесед и записи информации о пользователях, которые там сидят.
- добавить GUI.
Коротко о нюансах:
- не получается обработать аудио альбом и сторонние ссылки (не прикрепляется фотка).
- история отсылается как сторонняя ссылка.
_____________________________________________________________________________________________________________________
Все возможные типы вложений (* - всё работает отлично, @ - имеются недоработки):
1. Фотография (type = photo) *
2. Видеозапись (type = video) *
3. Аудиозапись (type = audio) *
4. Документ (type = doc) *
Допустимые форматы: любые форматы за исключением mp3 и исполняемых файлов (exe и др).
4.1. Граффити (type = graffiti) *
имеет тип doc, но для получения данных после запроса на сервер нужно юзать graffiti.
4.2. Голосовое (type = audio_message) *
5. Ссылка (type = link) @
проблемы с фото (превью)
6. Товар (type = market) *
7. Подборка товаров (type = market_album) *
8. Запись на стене (type = wall) *
9. Комментарий на стене (type = wall_reply) *
10. Стикер (type = sticker) *
11. Подарок (type = gift) @
банально, не вижу смысла разбираться с возможностью отправки подарков.
13. Геометка (geo) *
14. Сторис / история (type = story) @
даёт левую ссылку, без интерфейса вк
15. Ответ на сообщение (reply_message) *
отправит первоначальное сообщение, которое было переслано.
16. Пересланное сообщение (fwd_messages) *
если переслать более 1 сообщения, то вылезет предупреждение
P.S. можно ответить на сообщение (например, своё же, и написать команду Start) или переслать, но т.к. боту нужно всего лишь одно сообщение, то на несколько пересланных он начнёт ругаться
Стоит отметить, что для рассылки документов (4, 4.1, 4.2), боту потребуется сначала скачать* прикреплённые файлы, а потом от своего имени загрузить* их на сервер вк. Это будет происходить при каждой обработке сообщения.. сорян за недоработку
Нужно = python 3.8.5
Спам бот Вконтакте предназначен для рассылки сообщений от имени группы (в будущем планируется аддаптация под пользователей). В качестве файла с настройками используется json (для редактирования можно открыть в блокноте) и в качестве БД с id пользователей обычный excel.
Список используемых библиотек и модулей:
import vk_api
import time
import json
import os
import requests
import transliterate
import pandas as pd
from langdetect import detect
from pprint import pprint
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
Основные понятия:
Профиль - название листа в файле excel, с которого бот будет брать id пользователей для рассылки.
Текущий профиль - профиль, который выбран для рассылки.
Главный профиль - профиль с названием user_ids.
Стартовая клавиатура - клавиатура, имеющая команды: 'Start' и 'Change', слева от 'Change' показан текущий профиль.
Список команд:
Change - изменить текущий профиль. После использования этой команды, появится клавиатура с вариантами профилей.
Start - запустить процесс обработки предыдущего сообщения. Далее бот отправит пример сообщения, которое будет рассылаться, а также, выведет клавиатуру с командой Confirm.
Confirm - подтверждение рассылки, после успешного выполнения отправит сообщение со временем, затраченным на рассылку.
Get user ids - запишет в файл 'user_ids.xlsx' на лист 'user_ids' информацию о всех участниках группы (name, id and link).
Close - скрыть клавиатуру (не будет появляться только стартовая клавиатура и клавиатура с командой 'Confirm'*).
Open - открыть клавиатуру.
Варианты работы с ботом:
1) Отправить сообщение для рассылки и потом заюзать команду 'Start'.
2) Переслать сообщение для рассылки с командой 'Start'.
Порядок настройки:
1) В файле 'settings.json' изменить значения по ключам:
* vk_bot => token (токен сообщества);
* vk_bot => group_id (id сообщества);
* vk_bot => admins (массив id пользователей, которые будут иметь возможность взаимодействовать с ботом).
2) В файле 'user_ids.xlsx':
* заполнить колонки в главном профиле или создать свой;
* заполнить одну из двух колонок в профиле (листе): 'id' (id пользователя) или 'link' (ссылка на пользователя). Бот использует данные из колонки 'id', если будет заполнена только 'link', то бот преобразует ссылки в id пользователей и заполнит пропуски в колонке 'id'.
Что можно изменять в 'settings.json'?
* в options => commands можно изменять названия команд;
* в options => keyboard => color можно изменить цвет клавиатуры (primary - синий, secondary - белый, negative - красный, positive - зелёный);
* vk_bot => delete_files отвечает за действие с файлами, которые будут загружаться во время работы (true - удалять, false - не удалять);
* vk_bot => time_sleep_exceptions время задержки после срабатывания исключений в секундах.
Планы на доработку:
- написать функцию, которая будет преобразовывать массив профилей для клавиатуры (команда Change) в двумерный массив с определённым количеством столбцов (макс. 5 - ограничение вк) и строк (макс. 10) (в данный момент кнопки выводятся в один столбец - create_rows_in_mas(sheet_names), где sheet_names - массив).
- возможность рассылки от имени пользователя.
- добавить команду для получения списка друзей определённого пользователя.
- добавить возможность получения списка всех бесед и записи информации о пользователях, которые там сидят.
- добавить GUI.
Коротко о нюансах:
- не получается обработать аудио альбом и сторонние ссылки (не прикрепляется фотка).
- история отсылается как сторонняя ссылка.
_____________________________________________________________________________________________________________________
Все возможные типы вложений (* - всё работает отлично, @ - имеются недоработки):
1. Фотография (type = photo) *
2. Видеозапись (type = video) *
3. Аудиозапись (type = audio) *
4. Документ (type = doc) *
Допустимые форматы: любые форматы за исключением mp3 и исполняемых файлов (exe и др).
4.1. Граффити (type = graffiti) *
имеет тип doc, но для получения данных после запроса на сервер нужно юзать graffiti.
4.2. Голосовое (type = audio_message) *
5. Ссылка (type = link) @
проблемы с фото (превью)
6. Товар (type = market) *
7. Подборка товаров (type = market_album) *
8. Запись на стене (type = wall) *
9. Комментарий на стене (type = wall_reply) *
10. Стикер (type = sticker) *
11. Подарок (type = gift) @
банально, не вижу смысла разбираться с возможностью отправки подарков.
13. Геометка (geo) *
14. Сторис / история (type = story) @
даёт левую ссылку, без интерфейса вк
15. Ответ на сообщение (reply_message) *
отправит первоначальное сообщение, которое было переслано.
16. Пересланное сообщение (fwd_messages) *
если переслать более 1 сообщения, то вылезет предупреждение
P.S. можно ответить на сообщение (например, своё же, и написать команду Start) или переслать, но т.к. боту нужно всего лишь одно сообщение, то на несколько пересланных он начнёт ругаться
Стоит отметить, что для рассылки документов (4, 4.1, 4.2), боту потребуется сначала скачать* прикреплённые файлы, а потом от своего имени загрузить* их на сервер вк. Это будет происходить при каждой обработке сообщения.. сорян за недоработку
Вложения
Последние темы в этом разделе:
- Скрипт сортировщик файлов
- Скрипт шаблон web приложения Django
- Скрипт рейтинг фильмов/сериалов
- Скрипт Telegram бот парсер товаров с Wildberries
- Скрипт Телеграм бот для анонимного общения
- Скрипт Telegram бот для распаковки архивов
- Слив сборник Телеграм Казино ботов (8 штук)
- Скрипт Телеграм бот автоказино mcduck casino
- Скрипт для слежки за инстаграм аккаунтом
- Скрипт Телеграм бот парсер новостей из habr в свой канал