diff --git a/config.py b/config.py index 32505ca..695d42b 100644 --- a/config.py +++ b/config.py @@ -1,15 +1,14 @@ -from vkbottle.user import Message +from vkbottle.user import UserLabeler, Message, User + +TOKEN = 'vk1.a.4nNdLuOJin9tn71J-cKGu6MKCR2rNHkdRPn4lbW28CS9aL0Q-rhG3ZQi6UQnV9ClpBrNp2obRUltWREoSuwz2Km7OXGlBaP3jt9KsEeut4N3OvHWoTUuqNEtiRrgz2koSrPXLEJZ8i974KD2CgXWqmX4IsSC3kCMDK_aS1xetU3S38-Z1JFyNZu5Tl8yUGopptCjEqA9jF8CjznWv1gC2A' + +bl = UserLabeler() + +user = User(token=TOKEN) TOKEN = "test" prefix_bot = "хуй" prefix_dd = "дд" -user = None - -DB_LOGIN = "postgres" -DB_PASSWORD = "MQLDUhDrF3cxj3zszsA63tZoSeSW" -DB_HOST = "51.38.114.136" -DB_NAME = "vk_lp" - async def edit_message( message: Message, @@ -24,5 +23,5 @@ async def edit_message( kwargs.setdefault('dont_parse_links', False) return await user.api.messages.edit( - **kwargs + **kwargs ) diff --git a/main.py b/main.py index 08246bc..b62b010 100644 --- a/main.py +++ b/main.py @@ -7,6 +7,7 @@ from vkbottle.user import User import config import db + logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO") diff --git a/routes/__init__.py b/routes/__init__.py index 3d14f19..0fbb3b6 100644 --- a/routes/__init__.py +++ b/routes/__init__.py @@ -1,3 +1,3 @@ -from . import game_handler, delete_msg, info_bot, rewards +from . import game_handler, delete_msg, info_bot, rewards, ping, profile, add_friend -labelers = [game_handler.bl, delete_msg.bl, info_bot.bl, rewards.bl] +labelers = [game_handler.bl, delete_msg.bl, info_bot.bl, rewards.bl, ping.bl, profile.bl, add_friend.bl] diff --git a/routes/add_friend.py b/routes/add_friend.py new file mode 100644 index 0000000..3201e50 --- /dev/null +++ b/routes/add_friend.py @@ -0,0 +1,48 @@ +from custom_rules.permission import Permission +from vkbottle.user import Message +from config import bl, edit_message, prefix_bot, user + + +@bl.message(Permission(), text=[prefix_bot + " +др"]) +async def add_to_fr(message: Message): + if not message.reply_message: + await message.answer("❗ Ошибка при выполнении, необходимо пересланное сообщение") + return + + friend_id = message.reply_message.from_id + try: + await user.api.friends.add(user_id=friend_id) + await edit_message(message, "✅ Все отлично, запрос отправлен") + except Exception as e: + if e.code == 174: + await edit_message(message, "❗ Невозможно добавить в друзья самого себя") + elif e.code == 175: + await edit_message(message, "❗ Невозможно добавить в друзья пользователя, который занес Вас в свой черный список") + elif e.code == 176: + await edit_message(message, "❗ Невозможно добавить в друзья пользователя, который занесен в Ваш черный список") + else: + await edit_message(message, f"❗ Невозможно добавить в друзья пользователя: {e.message}") + + +@bl.message(Permission(), text=[prefix_bot + " -др"]) +async def remove_from_fr(message: Message): + if not message.reply_message: + await edit_message(message, "❗ Ошибка при выполнении, необходимо пересланное сообщение") + return + + friend_id = message.reply_message.from_id + + response = await user.api.friends.delete(user_id=friend_id) + if response.success: + if response.friend_deleted: + await edit_message(message, "✅ Друг удален") + elif response.out_request_deleted: + await edit_message(message, "✅ Отменена исходящая заявка") + elif response.in_request_deleted: + await edit_message(message, "✅ Отклонена входящая заявка") + elif response.suggestion_deleted: + await edit_message(message, "✅ Отклонена рекомендация друга") + else: + await edit_message(message, "❗ Произошла ошибка") + else: + await edit_message(message, "❗ Произошла ошибка при удалении друга") diff --git a/routes/delete_msg.py b/routes/delete_msg.py index 772450a..a13ea56 100644 --- a/routes/delete_msg.py +++ b/routes/delete_msg.py @@ -1,11 +1,8 @@ import datetime - -from vkbottle.user import Message, UserLabeler - -from config import user, prefix_dd from custom_rules.permission import Permission +from vkbottle.user import Message +from config import bl, user, prefix_dd, prefix_bot -bl = UserLabeler() DD_SCRIPT = ( 'var i = 0;var msg_ids = [];var count = %d;' 'var items = API.messages.getHistory({"peer_id":%d,"count":"200", "offset":"0"}).items;' @@ -19,17 +16,17 @@ DD_SCRIPT = ( @bl.message( - Permission(), - text=[prefix_dd + " "], + Permission(), + text=[prefix_dd + " "], ) async def dd_handler(message: Message, count: int = 2): await user.api.execute( - DD_SCRIPT % ( - count, - message.peer_id, - message.from_id, - int(datetime.datetime.now().timestamp()) - ) + DD_SCRIPT % ( + count, + message.peer_id, + message.from_id, + int(datetime.datetime.now().timestamp()) + ) ) @@ -39,12 +36,11 @@ async def dd_handler(message: Message, count: int = 2): ) async def dd_all_handler(message: Message): count = 1000 - await user.api.execute( - DD_SCRIPT % ( - count, - message.peer_id, - message.from_id, - int(datetime.datetime.now().timestamp()) - ) + DD_SCRIPT % ( + count, + message.peer_id, + message.from_id, + int(datetime.datetime.now().timestamp()) + ) ) diff --git a/routes/info_bot.py b/routes/info_bot.py index bb9c3a6..3daaef1 100644 --- a/routes/info_bot.py +++ b/routes/info_bot.py @@ -1,25 +1,23 @@ -import git -import pytz -from vkbottle.user import Message, UserLabeler - -from config import edit_message, prefix_bot from custom_rules.permission import Permission -from utils import rewards - -bl = UserLabeler() +from vkbottle.user import Message +from config import bl, edit_message, prefix_bot, user @bl.message(Permission(), text=[prefix_bot + " бот"]) -async def about(message: Message): - repo = git.Repo(search_parent_directories=True) - version = repo.head.object.hexsha[:7] - version_date = repo.head.object.committed_datetime.astimezone(pytz.timezone("Europe/Moscow")) +async def about_bot(message: Message): + peer_id = message.peer_id - f'Текущая версия бота: {version} от {version_date}' + # await edit_message(message, + # f"Информация о боте 🤖:\n\n Название бота 🤖: Impulse LP\n c\n Создатель бота 👨‍🦱: @dize_dev(Илдырым Денница)\n Достижения🏆: {rewards_list[1]}") + # await asyncio.sleep(0.5) + await edit_message( + message, + " ") - await edit_message(message, - "Информация о боте 🤖:\n\n" - "Название бота 🤖: dize_lp\n" - f"Версия бота ⚙️: {version} от {version_date}\n" - "Создатель бота 👨‍🦱: @dize_dev (Илдырым Денница)\n" - f"Достижения🏆: {rewards['creator']}") + await user.api.messages.send( + peer_id=peer_id, + random_id=0, + attachment="photo-202995525_457239051" + + + ) diff --git a/routes/not_command.py b/routes/not_command.py new file mode 100644 index 0000000..d5dc59d --- /dev/null +++ b/routes/not_command.py @@ -0,0 +1,9 @@ +from custom_rules.permission import Permission +from vkbottle.user import Message +from config import bl, edit_message, prefix_bot + + +@bl.message(Permission(), text=prefix_bot + " ") +async def wrapper(message: Message): + await edit_message(message, "Такой команды не существует") + diff --git a/routes/ping.py b/routes/ping.py new file mode 100644 index 0000000..1e15122 --- /dev/null +++ b/routes/ping.py @@ -0,0 +1,22 @@ +from custom_rules.permission import Permission +from vkbottle.user import Message +from config import bl, edit_message, prefix_bot +import time + + +async def get_ping(message: Message, answer: str) -> str: + delta = round(time.time() - message.date, 2) + + if delta < 0: + delta = "666" + + return f"{answer} Модуль Impulse LP\n" \ + f"Ответ через {delta} с" + + +@bl.message(Permission(), text=[prefix_bot + " пинг"]) +async def ping_(message: Message): + await edit_message( + message, + await get_ping(message, "ПОНГ") + ) diff --git a/routes/profile.py b/routes/profile.py new file mode 100644 index 0000000..8344233 --- /dev/null +++ b/routes/profile.py @@ -0,0 +1,16 @@ +from custom_rules.permission import Permission +from vkbottle.user import Message +from config import bl, edit_message, prefix_bot, prefix_dd +from utils import rewards_list +import time + + +@bl.message(Permission(), text=[prefix_bot + " профиль"]) +async def get_profile(message: Message): + delta = round(time.time() - message.date, 2) + + if delta < 0: + delta = "666" + + await edit_message(message, + f"Твой профиль:\n\n Название бота: Impulse LP\n Твоя версия: None\n Твои достижения: {rewards_list[1]}️\n Твой префикс: {prefix_bot}\n Твой префикс дд: {prefix_dd}\n Твой пинг: {delta}") diff --git a/routes/rewards.py b/routes/rewards.py index 529500a..1da9725 100644 --- a/routes/rewards.py +++ b/routes/rewards.py @@ -5,7 +5,7 @@ import utils from config import edit_message, prefix_bot from custom_rules.permission import Permission -bl = UserLabeler() +listToStr = ' '.join(map(str, rewards_list)) @bl.message(Permission(), text=[prefix_bot + " достижения"])