Skip to main content

A simple Discord chat exporter for Python Discord bots.

Project description

version license language

DiscordChatExporterPy is a Python plugin for your discord.py bot, allowing you to export a discord channels history within a guild.

Installing

To install the library to your bot, run the command:

pip install chat-exporter

To install the repository, run the command:

git clone https://github.com/mahtoid/DiscordChatExporterPy

Usage

Basic Usage

import discord
import chat_exporter
from discord.ext import commands

intents = discord.Intents.default()
intents.members = True

bot = commands.Bot(command_prefix="!", intents=intents)


@bot.event
async def on_ready():
    print("Live: " + bot.user.name)
    chat_exporter.init_exporter(bot)


@bot.command()
async def save(ctx):
    await chat_exporter.quick_export(channel, guild)

if __name__ == "__main__":
    bot.run("BOT_TOKEN_HERE")

Optional: If you want the transcript to display Members (Role) Colours then enable the Members Intent. Passing ‘guild’ is optional and is only necessary when using enhanced-dpy.

Customisable Usage

import io

...

@bot.command()
async def save(ctx, limit: int, tz_info):
    transcript = await chat_exporter.export(ctx.channel, guild, limit, tz_info)

    if transcript is None:
        return

     transcript_file = discord.File(io.BytesIO(transcript.encode()),
                                    filename=f"transcript-{ctx.channel.name}.html")

    await ctx.send(file=transcript_file)

Optional: limit and tz_info are both optional, but can be used to limit the amount of messages transcribed or set a ‘local’ (pytz) timezone for the bot to transcribe message times to. Passing ‘guild’ is optional and is only necessary when using enhanced-dpy.

Raw Usage

import io

...

@bot.command()
async def purge(ctx, tz_info):
    deleted_messages = await ctx.channel.purge()

    transcript = await chat_exporter.raw_export(channel, guild, deleted_messages, tz_info)

    if transcript is None:
        return

     transcript_file = discord.File(io.BytesIO(transcript.encode()),
                                    filename=f"transcript-{ctx.channel.name}.html")

    await ctx.send(file=transcript_file)

Optional: tz_info is optional, but can be used to set a ‘local’ (pytz) timezone for the bot to transcribe message times to. Passing ‘guild’ is optional and is only necessary when using enhanced-dpy.

Screenshots

https://raw.githubusercontent.com/mahtoid/DiscordChatExporterPy/master/.screenshots/channel_output.png https://raw.githubusercontent.com/mahtoid/DiscordChatExporterPy/master/.screenshots/html_output.png

Attributions

This project borrows CSS and HTML code from Tyrrrz’s C# DiscordChatExporter repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chat_exporter-1.7.2.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

chat_exporter-1.7.2-py3-none-any.whl (43.5 kB view details)

Uploaded Python 3

File details

Details for the file chat_exporter-1.7.2.tar.gz.

File metadata

  • Download URL: chat_exporter-1.7.2.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for chat_exporter-1.7.2.tar.gz
Algorithm Hash digest
SHA256 9dc18ebd7db96778a8cef7b7642e47f08d8029b734573b9324422e0b7903881c
MD5 1bf2f45eff9fdae996b5e2b5c242da69
BLAKE2b-256 d486153710d5044cc977e409e9f97320a74fa51fd7eda121231bb9e7fa1e3d89

See more details on using hashes here.

File details

Details for the file chat_exporter-1.7.2-py3-none-any.whl.

File metadata

  • Download URL: chat_exporter-1.7.2-py3-none-any.whl
  • Upload date:
  • Size: 43.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for chat_exporter-1.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5bd067acc39f7b56c9a28426ef011eaab55fdf52d294e633e95fb4adfec85ce6
MD5 b1d877413888407b681cc0e6b1674bc2
BLAKE2b-256 a15ff299e0bcc168a56e43901c4f5daaed10390d6b442164abe9e0117ffe7ab9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page