Giter Club home page Giter Club logo

discordchatexporter's Introduction

DiscordChatExporter

Status Made in Ukraine Build Coverage Release Downloads Pulls Discord Fuck Russia

Development of this project is entirely funded by the community. Consider donating to support!

Icon

DiscordChatExporter is an application that can be used to export message history from any Discord channel to a file. It works with direct messages, group messages, and server channels, and supports Discord's dialect of markdown as well as most other rich media features.

❔ If you have questions or issues, please refer to the docs.

πŸ’¬ If you want to chat, join my Discord server.

Terms of use[?]

By using this project or its source code, for any purpose and in any shape or form, you grant your implicit agreement to all the following statements:

  • You condemn Russia and its military aggression against Ukraine
  • You recognize that Russia is an occupant that unlawfully invaded a sovereign state
  • You support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas
  • You reject false narratives perpetuated by Russian state propaganda

To learn more about the war and how you can help, click here. Glory to Ukraine! πŸ‡ΊπŸ‡¦

Download

  • Graphical user interface (desktop app):
    • 🟒 Stable release: look for DiscordChatExporter.*.zip
    • 🟠 CI build: look for DiscordChatExporter.*.zip
  • Command-line interface (terminal app):
    • 🟒 Stable release: look for DiscordChatExporter.Cli.*.zip
    • 🟠 CI build: look for DiscordChatExporter.Cli.*.zip
    • πŸ‹ Docker: docker pull tyrrrz/discordchatexporter
    • πŸ“¦ AUR: discord-chat-exporter-cli
    • πŸ“¦ Nix: discordchatexporter-cli

Note: If you're unsure which build is right for your system, consult with this page to determine your OS and CPU architecture.

Important: To run DiscordChatExporter, you need to make sure that the .NET 8.0 Runtime is installed. You can download it here:

This should not be necessary if you install DiscordChatExporter using a package manager, as it should take care of the dependencies for you. This is also not necessary if you are running DiscordChatExporter via Docker, because the image already contains the runtime.

Note: AUR and Nix packages linked above are maintained by the community. If you have any issues with them, please contact the corresponding maintainers.

Features

  • Cross-platform graphical and command-line interfaces
  • Authentication via either a user or a bot token
  • Multiple output formats: HTML (dark/light), TXT, CSV, JSON
  • Support for markdown, attachments, embeds, emoji, and other rich media features
  • File partitioning, date ranges, message filtering, and other export options
  • Self-contained exports that can be viewed offline

Screenshots

channel list rendered output

See also

  • Chat Analytics β€” solution for analyzing chat patterns of Discord users, using exports produced by DiscordChatExporter.
  • DiscordChatExporter-frontend β€” convenient viewer for exports produced by DiscordChatExporter.

discordchatexporter's People

Contributors

96-lb avatar ahmedwalid05 avatar andrewkolos avatar binwiederhier avatar boomanaiden154 avatar caneplayz avatar carjem avatar emillly-b avatar gan-of-culture avatar lostxor avatar m1337v avatar markciliavincenti avatar mdiller avatar multisignature avatar quentinmay avatar rtm516 avatar sanqui avatar sas41 avatar silex avatar slatinsky avatar thedude53 avatar theregoesmysanity avatar tomlacko avatar tsrberry avatar tvde1 avatar tyrrrz avatar wauthethird avatar xbaank avatar yudi avatar zireael-n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discordchatexporter's Issues

Current markdown formatter kinda sucks

Currently markdown is parsed and converted using Regex which is prone to a lot of issues, like #18 for example. It would make sense to use a 3rd party library for this, as long as it supports all of Discord's markdown.

Export message history from a specific discord user

I was wondering if it would be possible to add a new search feature from: user - which would allow us to filter/limit messages and essentially only export message history from a specific user on a discord server.

Don't break words when wrapping

Love your app! It's easy to use and the result html looks neat. However, I'm using your app to export RP logs. The sentences run pretty long (they often go over one line), but when a line runs longer than the html viewer width, it gets broken pretty awkwardly. Like,

"...Before this, β€œX” was only a far island that xxxx has never visited, only heard in passi
ng news, a place that’s closer to an abstract concept. But as xxxx listens to xxxx’s wor
ds, the abstract emptiness turns into big farmland,..."

The issue still persist even when the html viewer window is already maximized. I think it would be nice if the broken word could appear in its entirety in the next line instead...

[GUI] More specific export time limits

First off I'd just like to thank you for the program, it's really nice, but I was wondering if it would be possible to have the option for a tighter export window? At the moment you can only limit it by day, would it be possible to add a day and time option?

No column separation in CSV export

Dear Tyrrrz,

Your DiscordChatExporter is great, just what I needed for my research.
But there is a little issue: when I download the chat in CSV format, it is shown in one column

problema con discordchatexporter

I would like to separate data in 4 columns as it is indicated in the first cell: Author, Date, Content and
Attachments.

Make it work with bot token

Currently it only accepts user tokens, but it would be great if you can make it work with bot tokens as well.

Show error when exporting a deleted channel

When trying to dump a channel that has been deleted, it crashes.

--- Steps to reproduce ---

  1. Load your Discord token
  2. Delete a channel on your Discord server
  3. Try to dump it
  4. It crashes

Deleted and edited messages

If somebody deletes or edits their message, will I be able to see the original in the logs after updating the logs?

Crash on export

The program freezes and crashes when exporting on default settings.

Export csv in 24h Format

Hey there,
either I am doing sth. wrong or the export to csv via the CLI is not working 100%. I find no way to make 24h format for date in csv. What dateformat do I have to enter for the --dateformat paraemter to get 24h format?
HH:mm does not work, HH:mm:tt doesnt aswell.
If that helps: I am using powershell.

Self-contained export

Add an option to locally store files and images instead of hotlinking to cdn.discordapp.com

To maintain support for embedded files with the same name, a local hierarchy version of cdn.discordapp.com should be used.

I've manually constructed some examples of what I could consider the ideal functionality. Click here for a simple chatlog that doesn't use custom emoji or file embeds, and click here for a complex chatlog that does use these features.

Mentions do not get correctly exported

Currently, mentions get exported to HTML as <@&numbers> (for roles) and <@!numbers> (for members). Instead, they should properly display the role/member being mentioned.

Save all channels in a given server

Just to make things easier with servers with huge numbers of channels. It's still possible to do those manually, just inconvenient, so this isn't super important, but it would be nice.

Show progress

Dear Tyrrrz,
the 2.4.1.0 version works like a charm, amazing!
and just a enhancement suggestion expected:
show progress bar(0%->1%->99%->100%) when exporting, bcz currently there's no such kind of indication, to show how much the progress is already, makes it confusing if it got stuck or are going its normal way.
Thanks for the consideration.

Be able to change the filename and directory location

I'd like to be able to change the default file name. Used and the default directory location.

Use case is that I use this to export the chat daily. At the moment I export the chat then manually move the file and rename it to the required file name for the day.

Webhooks

Hi,
i get empty message from your tool. Think the problem is because the messages are webhooks. Is there a possibility to get this kind of msg?
Sample.txt

Output file name options

Please add option to automatically add dates to the filename when using date ranges.

Btw, LOVE the interface, it makes it so easy!

Italics and bold together do not work

Currently, in HTML export, bold + italics text is exported as _<b>text</b>_. Bold + italics text should be properly exported as <i><b>text</b></i>.

Export to RTF

TXT files are very compact, but cannot be formatted.

MHTML (#1)/HTML files can look almost exactly like Discord but can be massive in file size.

RTF files can contain images and basic formatting while taking up less space. It's the best of both worlds!

Reactions

Reactions are the only big thing I feel missing from the archive. Would love to see it implemented.

(name colors inherited from highest role and option to use server nickname instead of username would be nice additions too but they're minor details)

Export to other formats

As a solution/alternative for the issue of not being able to export (or render) extremely large channels, I suggest adding the ability to export to different, more data-driven formats, or just .txt, in which case channels with very large amounts of messages can be 'explored' practically. In the case of a .txt output, an even further enhancement could be to allow customization of the output in a manner such as "{timestamp} - {username}: {message}" or if you only want to see the raw messages on each line "{message}", etc.

Archive per day

I don't know how hard it would be to implement, but a way to save entries to multiple text files based on the date would be a nice addition for my use at least.

I do know you could do it manually, but a way to just have it as an option when exporting would be nice.

Some formatting not exporting correctly

So to make italics in discord you put an asterix at the beginning and end of the sentence, this exports in the log correctly as italics.

But if you want to put a sentence between asterisks, and have it appear as a sentence between asterisks, in discord you type *sentence* and then it will appear as sentence rather than italics. But the exported log will appear as \ and then the sentence in italics.

Would it be possible to account for this?

Add time range option

Simple enough. Add ability to limit the date/time range of logs to get. Allow use of dynamic ranges as well.

/range:12d
12 days (d/h/m = days/hours/minutes)

IF POSSIBLE, also allow these options (not sure what the API allows you to do):

/range:[from date]~[to date]
(if from or to not given, then assume the max, otherwise use date range given)

/range:2017-01-01~
from Jan 1st, 2017 to current

/range:2017-01-01
get logs for only the one day.

/range:2017-01
get logs for that month (sort of like 2017-01-01~2017-01-31)

Automation for backups / Continual Backups

Hey Tyrrrz,

I'm wondering if automated backups are apart of the scope for this project? Being able to have it backup every day at a certain time would be great.

This is for deletions that occur in the server, having a history would be very beneficial and the manual backups would catch some deleted messages but no all of them.

Another way i could see this implemented is that it reads messages as they are posted and archives them? This way it would ensure that all messages that are deleted are archived.

I really appreciate this project, there aren't many around

Record Channel Category and Topic

Example for the Plain Text export setting:

================================================
Guild: The Discourse Disco 2: Meltdown Boogaloo
Category: Channels For Everyone
Channel: new-people-info
Topic: Things people who just joined should know
Messages: 18
================================================

Export with quoting

Can you add a way to export with quoting? We are trying to export an audit log channel and it is only exporting the bot name etc like this

Dyno#0 [26-Mar-18 07:24 PM]

Dyno#0 [26-Mar-18 10:13 PM]

Dyno#0 [26-Mar-18 11:25 PM]

In the actual channel there is data between each of those lines that is not being exported.

Thank you.

Only supports 14-15 days history message to export

Hi @Tyrrrz
After testing around 20 times(different time range)
the 2.3/2.4 version only support 14-15 days' history message to export, if surpass 14-15 days, then it will crack out(stop working).
i don't know if it's the program's limit or the discordapp.com's limit to cause it.

Can you address this issue?

Thanks.

Run from command line

Is there an option to run this completely from the command line with a GUI? Something to the effect of DiscordChatExporter.exe --token=<token> --channel=<channel-id> --theme=<theme> --datetime=<format>. It would be very helpful for automating the process.

I'm essentially trying to run this is as a cron job on a headless server.

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.