Skip to content

Releases: slatinsky/DiscordChatExporter-frontend

v2.9.0

24 Dec 03:15
Compare
Choose a tag to compare

New markdown renderer

  • completely rewritten, now using simple-markdown library
  • new rendered markdown elements: titles, subtitles, subsubtitles (discord supports only 3 levels of headings), bullet points, pretty channel links, pretty message links, pretty discord cdn links
  • rewritten other markdown elements (role mentions with colors, channel mentions, timestamps, emojis, spoilers, code blocks)
  • readded highlight of search terms in search results
  • backend server will enrich message objects with additional information to reduce count of requests and to make rendering faster (emotes and roles from message content, channel tags)
  • code blocks are now rendered using highlight.js library - the same library and theme same that discord uses
  • animated emojis are now rendered correctly (without "> ending) and offline (if assets were downloaded using DCE and used somewhere as a reaction)

New features

  • render lottie stickers (json animations)
  • add text attachment (.txt files) preview below the message with option to expand/collapse and download it
  • restyled attachment info component + add icons based on file extension
  • restyled some components (again) to match changes in discord interface

Bugfixes

  • fix previews of video embeds not working (broken previously by adding support for local gifs previews)
  • fix bug preventing attachments without preview from showing #47
  • fullscreen video is now centered in the player
  • fix preprocess crash if the referenced asset file does not exist anymore
  • fix inconsistent channel icon sizes in channel list

Other changes

  • changed wording to be more inclusive (allowlist, denylist)

v2.8.1

12 Nov 01:07
Compare
Choose a tag to compare

New features

Bugfixes

  • fix audio player not shown for audio attachments
  • fix user filters not working if any user is hidden using blacklist user feature using configurator script configurator.py/exe
  • fix reaction_from: filter incorrectly using users from mentions: filter
  • see also v2.8.0 changelog

v2.8.0

05 Nov 04:04
Compare
Choose a tag to compare

Hide users and discord servers

  • added ability to hide all messages from specific user(s) - enforced on server-side. Closes issue #8

  • added configurator script (windows configurator.exe, linux configurator.py) to simplify the process of configuring the server without the need to connect directly to mongodb to edit the configuration. This configurator script will allow you to more easily select which discord servers to show and which users to hide. All changes are applied immediately without the need to restart DCEF and are enforced on server side - that's why this script is CLI only. See README.md for instructions.

View messages as any user

  • added ability to view discord as any user - to enable this feature, you need to right click any message and select View discord as this user. This enables you to:
    • see highlighted message reactions if the user is in the reaction list.
    • see highlighted messages containing the user's mention (doesn't include roles)

Search changes

  • user search autocomplete now matches nicknames as well
  • search results now have buttons to sort by old or new
  • search results now have a button to show all results if a limit of 100 000 results is reached. After clicking the button, limit:0 filter is added to the search query
  • after submitting a search query, the gui will show "searching..." text until the search is finished, because some searches may take a long time
  • added a pin button next to search input, which will add is:pinned in:"<channelName>" filter to the search query
  • fulltext search now searches in title and description of embeds

Renderer changes

  • you can now select a date and time format independently in settings (before you could only select a timestamp format)
  • updated both name format renderer - username is in gray color and only display name is colored
    • added name renderers where they were missing (reply author, system messages, ...)
  • fix reactions not rendering in system messages
  • remove pinned messages yellow background highlight

Known bugs

  • is any user is blocked in server configuration, from:, mentions: and reaction_from: filters won't work.

v2.7.1

30 Oct 01:30
Compare
Choose a tag to compare

Bugfix

  • fix a crash affecting new DCEF users (in database upgrade logic) introduced in v2.7.0
  • see also v2.7.0 changelog

v2.7.0

28 Oct 23:02
Compare
Choose a tag to compare

Search improvements

  • information doesn't leak between servers anymore (thanks to database partitioning explained below)
    • fixes many many autocomplete bugs - autocomplete counts are more accurate, all suggestions (nicknames+assets+emojis,...) are restricted strictly only to currently selected guild, etc...
  • added time filters before:, during: and after:
    • supporting YYYY, YYYY-MM, and YYYY-MM-DD formats
    • behaving exactly like in Discord, the only difference is that these filters are not timezone aware (they use UTC)
    • calendar picker is not yet implemented
  • new has: filters - has:sticker, has:embed and has:file
  • renamed filters (to be more consistent with Discord):
    has_audio:true -> has:sound
    has_image:true -> has:image
    has_link:true -> has:link
  • removed has_audio:false and has_image:false and has_link:false filters (you can't use negative filters now)
  • removed has_other:true and has_other:false filters
  • reordered filters, so the ones from Discord are first and in the same order as in Discord
  • filename autocomplete now suggests only attachment names - this fixes a bug where autocomplete would suggest assets such as profile images that you cannot search for
  • added autocomplete for extension: filter
    • suggested file extensions are sorted by file count, file count is shown in GUI
  • changed autocomplete styling (main autocomplete shows description on second line, ... and more)

Database refactor

  • objects in mongo database are now partitioned by guild id
    • this will improve performance, simplifies database queries, allows selecting which guild to show in GUI (enforces guild whitelisting at a database level), But disallows cross-guild queries (for example channel mentions mentioning channel in different guild won't work)
  • added guild whitelisting
    • after preprocess phase is completed, connect to mongodb database (localhost:27017) -> dcef database -> config collection -> find document with key whitelisted_guild_ids -> set value to array of guild ids to whitelist (for example ["123456789012345678", "123456789012345679"])
      • empty list (default) means no guilds are whitelisted (shows all guilds)
      • there will be a simpler way to configure this in the future

Preprocess changes

  • Fixed preprocess crash if incomplete JSON export is imported
  • Percentage progress is now based on bytes processed, not number of JSON files to improve estimation accuracy

v2.6.2

09 Oct 00:41
Compare
Choose a tag to compare

IMPORTANT: Discord CDN links are now signed (you may have noticed newly added ex, is and hm query parameters in your CDN links that expire after 24 hours). If your DiscordChatExporter exports were made without --media command line option, you will lose access to all hotlinked attachments and embeds. Non-signed links still work for now, download your assets locally ASAP or reexport your channels with --media option if you still have access to them.

New DiscordChatExporter feature: DiscordChatExporter v2.41 or newer allows you to automatically export threads and forum posts. Just add --include-threads All to exportguild subcommand. Documentations in this repo was updated to reflect this change.

New project - DiscordChatExporter wrapper: I have created simple wrapper for DiscordChatExporter to simplify the process of incremental export for this frontend viewer. You declare what you want to export in a config file and the wrapper will automatically export only new messages since the last export. For more information and instructions how to use, see slatinsky/DiscordChatExporter-incrementalBackup

Changes:

  • render tenor gifs (if online option is enabled in the settings)
  • you can now run this frontend viewer on raspberry pi 4b
  • fix wrong name+nickname order in author profile modal
  • view selected reaction image in gallery, add reaction tooltips to see reaction names

pull request #39 (thanks @lolmaxz):

  • add channel Icon for voice and announcement channels
  • add Booster system icon
  • support new system messages - Booster Level 1, Booster Level 2 and Booster Level 3
  • channels without a category are now at the top of the channel list
  • channel's name in channel list do not wrap anymore. Channel's name that are too long will be clipped.
  • add tooltips in channel list to show the full channel name on mouse hover
  • scrollbar in channel's list is now on top instead of taking a space on Hover
  • ...and other adjustments

Deprecation warning:

  • with the introduction of signed discord CDN links, hotlinked discord assets (exports without --media option) will no longer be supported in future versions of this frontend viewer.

v2.6.1

29 Aug 20:33
Compare
Choose a tag to compare

new features:

  • new search filters - reaction_from:user and reaction_from_id:user_id

    • searches for message reactions from a specific user
  • new search filters - deleted:true and deleted:false

    • searches for deleted messages
    • for deleted messages to be detected you need multiple overlapping exports of the same channel
    • deleted messages have dark red background in the UI
    • needs to load all single channel message ids from the database (requires more RAM in preprocess stage)

bugfixes:

  • windows runner - preprocess logs are not delayed anymore (console is now always flushed on new line)

v2.6.0

27 Aug 20:41
Compare
Choose a tag to compare

Speed and memory usage improvements:

  • added better progress logs including counts and percentage

  • json exports are now streamed in batches of 10000 messages

    • this means that you can now process extra large datasets without running out of memory (only 150 MB of ram is need to preprocess json export no matter how large the dataset is)
  • records are inserted into the database in batches

    • preprocessing is much much faster
  • improved startup time logic

    • already processed files check is faster

      • using single database query instead of query for each file
      • BUT doesn't check now if the same file has been modified since last run
    • if no new exports are found, expensive asset finder won't run, saving more startup time

  • use exportedAt field to keep in the database only the latest message

    • exportedAt field was added to DiscordChatExporter >= v2.40.1
    • exportedAt is estimated based on timestamp and timestampEdited fields if export is not created by DCE v2.40.1 or newer

bugs:

  • category counts are not correctly counted, category sorting based on message count in channel selector is incorrect

v2.5.1

20 Aug 01:24
Compare
Choose a tag to compare

Bugfixes

  • fix json export not detected if filename contains only characters 0123456789abcdefABCDEF
  • fix extensionless 5-letter asset not detected
  • fix assets beginning with a dot not detected
  • fix rendering of any extensionless asset (as a workaround we are only assuming that the asset is an image, better than nothing)
  • fix scroll to top/bottom/message jumping to the wrong spot
  • fix scroll to bottom scrolling page by page from the top to the bottom if channel didn't load in time
  • fix not being able to see more than ~330000 messages in a single channel (max height of 33554400px was reached)
    • confirmed working with 6.9 million messages in a single channel
    • if my calculations are correct, the viewer should now handle up to 41 million messages in a single channel
  • render identicon if image fails to load

v2.5.0

06 Aug 21:43
Compare
Choose a tag to compare

Thank you for (almost) 200 stars and 2551 downloads! That means a lot to me!

Changes:

  • click on user profile and see name, nickname and user roles (requires exports from DiscordChatExporter >= v2.40.1)
  • click on reaction and see users who reacted (requires exports from (now unreleased) DiscordChatExporter >= v2.40.4)
  • highlight target messages after using jump to message button from search results
  • render mentioned channel names in messages
  • render role names in messages (requires exports from DiscordChatExporter >= v2.40.1)
  • render timestamps in messages (<t:1692660789> format)
  • revamped documentation in README.md

Bug fixes:

  • fix unnecesary padding of images in messages
  • fix jump to message not working in the already opened channel
  • fix race condition making virtual scroll stuck in some situations. If it gets stuck again, resizing the window should fix it.
  • fix virtual scroll getting stuck if viewport height is smaller than message height
  • touch devices
    • channel list is now scrollable
    • hamburger and search icons are smaller
  • skip invalid JSON exports, instead of crashing the app
  • skip currently exporting JSON files, instead of crashing the app (PermissionError)
  • only first line in mentioned message is rendered, like in Discord
  • add lower case a-f to urlHash regex to workaround bug in unreleased version of DiscordChatExporter

Disabled features:

  • disabled seach term highlighting in search results (breaks html formatting)

New bugs:

  • target message used to jump to top/bottom should not be highlighted when switching channels from channels menu
  • jump to bottom feature sometimes scrolls to bottom page by page