- Статус
- Оффлайн
- Регистрация
- 31 Май 2019
- Сообщения
- 245
- Реакции
- 84
Доброго времени суток
Боты-первонахи за время существования ВКонтакте успели стать неотъемлемой частью любых постов в известных (и не очень) сообществах. С помощью ботов люди набивают себе сообщения в социальной сети, пиарят свой аккаунт и получают "поинты" для различных ботов, определяющих самых активных участников группы (для различных конкурсов по типу "лайкер недели"). Скрипты-первонахи продаются на многих известных интернет-ресурсах, некоторые можно найти и в свободном доступе. Сегодня мне хотелось бы поделиться с вами подобным ботом, слитым с популярного борда. Получить доступ к нему можно абсолютно бесплатно! Также вы можете модифицировать его функционал, так как ниже представлены полные исходники скрипта на Python.
Для успешного запуска и дальнейшей работы бота потребуется установить модуль vk_api с помощью pip3 -
Пожалуйста, авторизуйтесь для просмотра ссылки.
. Код написан на Python 3, однако при желании можно перевести его и на более ранние версии данного языка.
Python:
import vk_api
import datetime
from time import sleep
from random import choice
limit = datetime.timedelta(seconds=3)
def getLatestPosts(groupsIds: list):
comma = []
for id in groupsIds:
com = ['API.wall.get({', '})']
com.insert(1, f'"owner_id": -{id}, "count": 2')
comma.append(''.join(com))
if len(groupsIds) != 1:
code = 'return {};'.format(', '.join(comma))
else:
code = 'return {};'.format(comma)
latestPosts = []
for group in api.execute(code=code.replace("'", '')):
try:
group['items'][0]['is_pinned']
postIndex = 1
except KeyError:
postIndex = 0
post = group['items'][postIndex]
latestPosts.append((post['owner_id'], post['id'], post['date']))
return latestPosts
def main(groupsIds: list):
while True:
for owner_id, post_id, unix_date in getLatestPosts(groupsIds):
delta = (datetime.datetime.utcnow() - (datetime.datetime.utcfromtimestamp(unix_date)))
if delta <= limit:
api.wall.createComment(owner_id=owner_id,
post_id=post_id,
message=choice(messages).strip())
print('[INFO] Бот ответил на пост {} в паблике {}'.format(post_id, -owner_id))
sleep(3)
if __name__ == "__main__":
print('\tПервонах бот. By WearyBread\nЕсли вы уже успешно заходили в аккаунт, можете ввести только логин')
groups = input('Введите ид групп через пробел(Пример: 195007647 195007647...): ').split()
messages = input(
'Введите сообщения через запятые (Пример: всем привет, спам, как дела?): ').split(
',')
login = input('Введите логин: ')
password = input('Введите пароль: ')
try:
vk_session = vk_api.VkApi(login, password)
vk_session.auth(token_only=True)
except vk_api.exceptions.BadPassword as error:
while True:
print('Неправильный пароль, попробуйте ещё раз')
login = input('Введите логин: ')
password = input('Введите пароль: ')
try:
vk_session = vk_api.VkApi(login, password)
vk_session.auth(token_only=True)
break
except vk_api.exceptions.BadPassword:
pass
api = vk_session.get_api()
print(
'Успешный запуск, чтобы остановить работу программы нажмите Ctrl + C или закройте консоль')
main(groups)
Важно: бот никуда не отправляет ваши данные. Все остается анонимным, можете убедиться в этом, посмотрев исходный код.
Если у вас возникнут какие-либо вопросы по работе бота или же его настройке - можете отписать в тему или мне в Telegram, постараюсь помочь
