Releases: slatinsky/DiscordChatExporter-frontend
v2.9.0
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
New features
- render tenor gifs locally (requires exports from DiscordChatExporter v2.42.3 or newer)
- view as user - user can now be selected in bottom left corner of the app
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 scriptconfigurator.py
/exe
- fix
reaction_from:
filter incorrectly using users frommentions:
filter - see also v2.8.0 changelog
v2.8.0
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
, linuxconfigurator.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
anddescription
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:
andreaction_from:
filters won't work.
v2.7.1
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
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:
andafter:
- supporting
YYYY
,YYYY-MM
, andYYYY-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
- supporting
- new
has:
filters -has:sticker
,has:embed
andhas: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
andhas_image:false
andhas_link:false
filters (you can't use negative filters now) - removed
has_other:true
andhas_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 keywhitelisted_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
- after preprocess phase is completed, connect to mongodb database (
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
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
new features:
-
new search filters -
reaction_from:user
andreaction_from_id:user_id
- searches for message reactions from a specific user
-
new search filters -
deleted:true
anddeleted: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
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
andtimestampEdited
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
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
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