Исходники - Простой дампер тг | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Исходники Простой дампер тг

Croowdy

Джун
Автор темы
18 Авг 2024
2
0
1
Скрипт дампит сесссию, полезен будет для быстрой выкачки информации с аккаунта
Сохраняет сообщения/фото переписок

Python:
from pyrogram import Client
from pyrogram.enums import ChatType
from random import randint
import os
import asyncio

api_id =
api_hash = ''

async def writeData(file, data) -> None:
    with open(file, "a+", encoding="utf-8") as f:
        f.write(str(data) + "\n")

async def getChats(app) -> None:
    dump_name = f'dump_{api_id}/'
    dialogs = app.get_dialogs()

    async for dialog in dialogs:
        username = dialog.chat.username
        
        if username is not None:
            if dialog.chat.type in [ChatType.CHANNEL]:
                await writeData(dump_name + "channels.txt", username)
            elif dialog.chat.type in [ChatType.GROUP]:
                await writeData(dump_name + "groups.txt", username)
            else: 
                await writeData(dump_name + "users_bots.txt", username)

async def getChatsHistory(app) -> None:
    if not os.path.exists(f'dump_{api_id}/userHistory'):
        os.mkdir(f'dump_{api_id}/userHistory')
    
    dialogs = app.get_dialogs()

    async for dialog in dialogs:
        if dialog.chat.type in [ChatType.PRIVATE]:
            await parseUser(dialog, app)
            print(f"[+] Saved chat history [USER]: {dialog.chat.username}")

async def parseUser(dialog, app) -> bool:
    username = dialog.chat.username
    counter = 0

    f = open(f'dump_{api_id}/userHistory/userChat_{username}.txt', 'a+', encoding='utf-8')
    f.write(f"USERNAME: {username}\n")
    f.write("-" * 100 + "\n")

    async for message in app.get_chat_history(dialog.chat.id):
        if message.text is not None:
            try:
                f.write(str(message.text))
            except UnicodeEncodeError:
                continue
        elif message.photo:
            counter+=1
            file_id = message.photo.file_id
            file_name = f"dump_{api_id}/Photos/photo_{username}_{counter}_{randint(1, 100000)}.jpg"
            print(f"[+] Photo with ID: {file_id} succesfuly saved")

            await app.download_media(file_id, file_name)

    f.write("\n" + "-" * 100 + "\n")
    return True

async def main():
    async with Client("dump", api_id=api_id, api_hash=api_hash) as app:
        app.get_dialogs()
        if not os.path.exists(f'dump_{api_id}/'):
            os.mkdir(f'dump_{api_id}')

        await getChats(app)
        await getChatsHistory(app)

asyncio.run(main())
 
Активность:
Пока что здесь никого нет