import discord import asyncio import requests import logging import time from telethon import TelegramClient, events from discord.ext.commands import Bot import keys # Файл, где хранятся ваши ключи доступа url_vk_get = "https://api.vk.com/method/wall.get" url_vk_delete = "https://api.vk.com/method/wall.delete" # Укажите ваши токены и ID каналов TELEGRAM_API_ID = keys.api_id_tg TELEGRAM_API_HASH = keys.api_hash_tg DISCORD_TOKEN = keys.discord_token TELEGRAM_CHAT_ID = keys.channel_username_tg DISCORD_CHANNEL_ID = keys.dicord_channel # Укажите ID вашего канала # Создание экземпляра клиента Telethon telegram_client = TelegramClient('session_name', TELEGRAM_API_ID, TELEGRAM_API_HASH) # Удаление сообщений из Telegram async def delete_all_telegram_messages(client, chat_id): async for message in client.iter_messages(chat_id): try: await client.delete_messages(chat_id, message.id) time.sleep(1.0) print(f"Удалено сообщение {message.id}") except Exception as e: print(f"Не удалось удалить сообщение {message.id}: {e}") # Удаление сообщений из Discord class MyClient(discord.Client): async def on_ready(self): print(f'Вошли как {self.user}') channel = self.get_channel(DISCORD_CHANNEL_ID) if channel is not None: await self.delete_all_messages(channel) async def delete_all_messages(self, channel): try: async for message in channel.history(limit=100): # Установите лимит try: await message.delete() print(f'Удалено сообщение {message.id}') except Exception as e: print(f"Не удалось удалить сообщение {message.id}: {e}") except Exception as e: print(f"Не удалось получить историю сообщений: {e}") await self.close() intents = discord.Intents.default() intents.message_content = True discord_client = MyClient(intents=intents) # Основная функция async def main(): await telegram_client.start() print("Telegram клиент запущен") await delete_all_telegram_messages(telegram_client, TELEGRAM_CHAT_ID) await telegram_client.disconnect() params_get = { 'access_token': keys.user_token_vk, 'v': '5.199', # Версия API 'owner_id': str(keys.own_id), 'count': 100, 'offset': 0 } def get_all_posts(): all_posts = [] while True: response = requests.get(url_vk_get, params=params_get) data = response.json() print(data) if 'error' in data: logging.error(f"Ошибка {data['error']['error_code']}: {data['error']['error_msg']}") break items = data.get('response', {}).get('items', []) if not items: break all_posts.extend(items) if len(items) < 100: break params_get['offset'] += 100 return all_posts params_delete = { 'access_token': keys.user_token_vk, 'v': '5.199' # Версия API } def delete_post(post_id): params_delete.update({ 'owner_id': str(keys.own_id), 'post_id': post_id }) response = requests.post(url_vk_delete, params=params_delete) data = response.json() if 'error' in data: logging.error(f"Ошибка {data['error']['error_code']}: {data['error']['error_msg']}") return False return True def delete_all_posts(): print("Удаление ВК постов запущено") all_posts = get_all_posts() print(all_posts) if not all_posts: logging.info("Нет постов для удаления") return for post in all_posts: post_id = post['id'] if delete_post(post_id): logging.info(f"Пост {post_id} успешно удален") else: logging.error(f"Не удалось удалить пост {post_id}") time.sleep(1.0) # Пауза между запросами, чтобы избежать превышения лимитов API if __name__ == "__main__": delete_all_posts() discord_client.run(DISCORD_TOKEN) asyncio.run(main())