A simple Discord chat exporter for Python Discord bots.
Project description
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
Links
Attributions
This project borrows CSS and HTML code from Tyrrrz’s C# DiscordChatExporter repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
9dc18ebd7db96778a8cef7b7642e47f08d8029b734573b9324422e0b7903881c
|
|
MD5 |
1bf2f45eff9fdae996b5e2b5c242da69
|
|
BLAKE2b-256 |
d486153710d5044cc977e409e9f97320a74fa51fd7eda121231bb9e7fa1e3d89
|
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
5bd067acc39f7b56c9a28426ef011eaab55fdf52d294e633e95fb4adfec85ce6
|
|
MD5 |
b1d877413888407b681cc0e6b1674bc2
|
|
BLAKE2b-256 |
a15ff299e0bcc168a56e43901c4f5daaed10390d6b442164abe9e0117ffe7ab9
|