{"id":985,"date":"2022-03-07T12:00:00","date_gmt":"2022-03-07T20:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=985"},"modified":"2022-03-10T14:38:27","modified_gmt":"2022-03-10T22:38:27","slug":"exporting-a-discord-server","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2022\/03\/07\/exporting-a-discord-server\/","title":{"rendered":"Exporting a Discord Server"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472, and today I am learning about Discord Chat Exporter so I can archive an old role play I was a part of in 2017. Let\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vanishing Data Only Hosted Elsewhere<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Discord is a communications platform built around the idea of [guild] servers, channels, and posts. Guild servers are exclusively hosted by the parent company, leaving you relying on them to maintain their physical servers. While they provide easy access to chat history going back years and years, they do not provide you with the tools to extract that history in the case you are one day unable to access the service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In around the middle of 2017, I met a very good friend on PonyvilleSquare forums. He was advertising a My Little Pony role play I joined. We moved the game to Discord at my request. It was a good thing too, because the forums were defunct within a week or two. I lost a minor detail or two from character creation, but we went on to have one of the best games I\u2019ve ever been a part of. I liked the story well enough to go through it again, polishing it into more of a novel format with all the original players\u2019 blessings. It\u2019s always bothered me though that should Discord either go out of business or deplatform me for wrongthink.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Downloading a Server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Discord is rolling out some new rules at the end of the month, and I don\u2019t know if either everyone in my circle of friends will still be welcome when it hits. Ideally, we can transition to using a decentralized platform, like how e-mail operates, where we can be in complete control our live chat server. [Matrix] fits my criteria for this end goal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What better way to learn about Matrix than to find some tool to migrate a server I don\u2019t want to lose? The Discord bot API only needs to see a server\u2019s history, and it shouldn\u2019t be impossible to record that data into a format Matrix clients can accept. In fact, one of the key talking points of Matrix is its ability to bridge to one or more chat platforms while being as inconspicuous as reasonably possible per platform. However: of the bridges I found, the only one that mentioned history listed it as not-a-feature. If there is a tool to directly migrate from Discord to Matrix, I either didn\u2019t find it or didn\u2019t recognize it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, I settled with another tool to archive our MLP role play: Discord Chat Exporter[1]. Discord Chat Exporter is a bot that reads Discord channels and reproduces them in a variety of static formats including HTML, plaintext, and a couple others. I found their OCI \u201cDocker\u201d container worked very nicely. Their documentation is clear, though I could nitpick how it didn\u2019t like where I put the &#8211;media flag on my first try to download embedded pictures and similar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3D Printing Corner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ve been trying to print a figure of Sonic I found on Thingiverse for a few weeks now. I was having a lot of trouble with the first layer sticking in previous weeks, but I finally added a bed-leveling print to my routine. Sonic himself is split front to back and arranged so he only needs minimal supports. Along the way, I tried slowing the first layer way down and adding this ugly brim I\u2019m having trouble removing. I\u2019ll get it next week when I glue the halves together and sand it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Side Project<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">My earliest working NFS automounts were entries in the File System TABle (fstab) for my laptop. Later, I learned to mount file shares as needed with systemd. My laptop spends time off my home network, and without a timeout in my settings, I\u2019m left with extended boot times and programs hanging until I get home and they can finish saving. Today, I copied the relevant files over to a directory on GoldenOakLibry and on over to my laptop, adding a 5 second timeout as suggested in the awesome tutorial I originally followed by Ray Lyon on Ray Against the Machine [2].<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imperfect solutions that achieve most of your goals are often a reasonable compromise when a full solution is a lot harder to research or even get around to doing. I\u2019m glad I now have my MLP game properly downloaded, but even better would be the ability to import everything from a Discord server on over to Matrix.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Do you know of a tool or set of tools that can migrate a Discord server to Matrix?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Works Cited<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">[1] Tyrrrz, \u201cDiscordChatExporter\u201d <em>github.com<\/em>, [Online]. Available: <a href=\"https:\/\/github.com\/Tyrrrz\/DiscordChatExporter\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/Tyrrrz\/DiscordChatExporter<\/a>. [Accessed Mar. 7, 2022].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[2] R. Lyon, \u201cOn-Demand NFS and Samba Connections in Linux with Systemd Automount,\u201d Ray Against the Machine, Oct. 7, 2020. (Edited Aug. 26, 2021). [Online]. Available: <a href=\"https:\/\/rayagainstthemachine.net\/linux%20administration\/systemd-automount\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/rayagainstthemachine.net\/linux%20administration\/systemd-automount\/<\/a>. [Accessed Mar. 7, 2022].<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472, and today I am learning about Discord Chat Exporter so I can archive an old role play I was a part of in 2017. Let\u2019s get started! Vanishing Data Only Hosted Elsewhere Discord is a communications platform built around the idea of [guild] servers, channels, and &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2022\/03\/07\/exporting-a-discord-server\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Exporting a Discord Server&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-985","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=985"}],"version-history":[{"count":2,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/985\/revisions"}],"predecessor-version":[{"id":990,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/985\/revisions\/990"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}