Mistral AI Chat Exporter

Export Mistral AI chat conversations to markdown

当前为 2025-11-13 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Mistral AI Chat Exporter
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Export Mistral AI chat conversations to markdown
// @author       aspen138
// @match        https://chat.mistral.ai/chat/*
// @grant        none
// @name:en      Mistral AI Chat Exporter
// @description:en Export Mistral AI chat conversations to markdown format
// @name:zh      Mistral AI 聊天导出器
// @description:zh 导出Mistral AI聊天对话为Markdown格式
// @name:ja      Mistral AI チャットエクスポーター
// @description:ja Mistral AIのチャット会話をMarkdown形式でエクスポート
// @name:es      Exportador de Chat de Mistral AI
// @description:es Exportar conversaciones de chat de Mistral AI a formato markdown
// @name:fr      Exportateur de Chat Mistral AI
// @description:fr Exporter les conversations de chat Mistral AI au format markdown
// @name:de      Mistral AI Chat-Exporteur
// @description:de Mistral AI Chat-Unterhaltungen in Markdown-Format exportieren
// @name:it      Esportatore Chat Mistral AI
// @description:it Esporta conversazioni chat di Mistral AI in formato markdown
// @name:ru      Экспортёр чата Mistral AI
// @description:ru Экспорт разговоров чата Mistral AI в формат markdown
// @name:pt      Exportador de Chat Mistral AI
// @description:pt Exportar conversas de chat do Mistral AI para formato markdown
// @name:ko      Mistral AI 채팅 내보내기
// @description:ko Mistral AI 채팅 대화를 마크다운 형식으로 내보내기
// @name:ar      مصدر دردشة Mistral AI
// @description:ar تصدير محادثات دردشة Mistral AI إلى تنسيق markdown
// @name:hi      Mistral AI चैट निर्यातक
// @description:hi Mistral AI चैट वार्तालापों को markdown प्रारूप में निर्यात करें
// @license      MIT
// @icon         data:image/x-icon;base64,AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAKBEAAJ4EAAAwMAAAAQAgAGgmAADGFQAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgXAAD34IAA9+CAAPfggAD34IAA9+CAATgdAAAAAAAAAAAAATgdAAD34IAA9+CAAPfggAD34IAA9+CAALgXAAE4bUABeH/AAXh/wAF4f8ABeH/AAXh/wAE4OUAAAAAAAAAAAAE4OUABeH/AAXh/wAF4f8ABeH/AAXh/wAE4bUABOB+AATgsQIR5dgEG+f+Axbm5gAE4LEAB+GmDU74Tg1O+E4AB+GmAATgsQMW5uYEG+f+AhHl2AAE4LEABOB+AAAAAAAAAAANTvmCD1D6/w5P+bEAAAAACU71Gg9Q+v8PUPr/CU71GgAAAAAOT/mxD1D6/w1O+YIAAAAAAAAAAAAAAAAAAAAADVP7gQ5U+f4MVfq4AH//GgVo+TEOVPn+DlT5/gVo+TEAf/8aDFX6uA5U+f4NU/uBAAAAAAAAAAAAAAAAAAAAAAOB/4IFgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//A4H/ggAAAAAAAAAAAAAAAAAAAAADgf+CBYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wOB/4IAAAAAAAAAAAAAAAAAAAAAAKr/gQCp//4Aqf/+AKn//gCp/+YAf/8aAH//GgCp/+YAqf/+AKn//gCp//4Aqv+BAAAAAAAAAAAAAAAAAAAAAACu/4IAr///AK///wCv//8Arv/lAAAAAAAAAAAArv/lAK///wCv//8Ar///AK7/ggAAAAAAAAAAAAAAAAAAAAAAyf+BAMn//gDG/8gArf9OAK7/RgAAAAAAAAAAAK7/RgCt/04Axv/IAMn//gDJ/4EAAAAAAAAAAAAAAAAAAAAAANX/ggDX//8A1v+xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANb/sQDX//8A1f+CAAAAAAAAAAAAAAAAAAAAAADU/0IA1f+CANT/WgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/1oA1f+CANT/QgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AgAAzAUAAMwFAADMBQAAzAUAAMwFAADMBQAAzAUAAMwFAADMBQAAzAUAAMwFAADMBQAAvwQAAAAAAAAAAAAA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AAAAAAAAAAAAAADV/2MA1///ANf//wDX//8A1///AMz/BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMz/BQDX//8A1///ANf//wDX//8A1f9jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANX/YwDX//8A1///ANf//wDX//8AzP8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMz/BQDM/wUAzP8FAMz/BQD//wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8BAMz/BQDM/wUAzP8FAMz/BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAD/AQAA/wEAAP8BAAAAAAAA2g4ABOF6AAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAALiWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4VUAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQAA+KEAAPihAAD4oQABOF6AADaFQAA4hsABODsAAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAThqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE36QABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABODsAADlKAAA4hsABODsAAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAThqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE36QABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABODsAADlKAAA4hsABODsAAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAThqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE36QABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABODsAADlKAAA4hsABODsAAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAThqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE36QABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABODsAADlKAAA4hsABODsAAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAThqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE36QABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF4f8ABeH/AAXh/wAF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//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Dgf+EAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEDgf+EBYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Dgf+EAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEDgf+EBYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Dgf+EAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEDgf+EBYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Dgf+EAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEDgf+EBYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Fgv//BYL//wWC//8Dgf+EAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAnv+CAZ//+wGf//sBn//7AZ//+wGf//sBn//7AZ//+wGf//sBn//7AZ//+wGf//sBn//7AZr/xAOC/1QDgv9UA4L/VAOC/1QDgv9UA4L/VAGa/8ABn//7AZ//+wGf//sBn//7AZ//+wGf//sBn//7AZ//+wGf//sBn//7AZ//+wGf//sAnv+CAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAr/+EAK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK//qgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACu/6QAr///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar/+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAr/+EAK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK//qgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACu/6QAr///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar/+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAr/+EAK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK//qgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACu/6QAr///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar/+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAr/+EAK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK//qgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACu/6QAr///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar/+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAr/+EAK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK//qgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACu/6QAr///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar///AK///wCv//8Ar/+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEAs/+EALT//gC0//4AtP/+ALT//gC0//4As//6AK7/3wCv/9kAr//ZAK//2QCv/9kAr//ZAK//kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACu/4wAr//ZAK//2QCv/9kAr//ZAK//2QCv/90As//6ALT//gC0//4AtP/+ALT//gC0//4As/+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wEA0v+DANH//QDR//0A0f/9ANH//QDR//0A0v/jAMT/PQCt/xwArf8cAK3/HACt/xwArf8cALj/EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACq/xIArf8cAK3/HACt/xwArf8cAK3/HAC8/zIA0v/jANH//QDR//0A0f/9ANH//QDR//0A0v+DAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wEA1v+EANf//wDX//8A1///ANf//wDX//8A1//iANX/JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/xgA1//iANf//wDX//8A1///ANf//wDX//8A1v+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wEA1v+EANf//wDX//8A1///ANf//wDX//8A1//iANX/JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/xgA1//iANf//wDX//8A1///ANf//wDX//8A1v+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wEA1v+EANf//wDX//8A1///ANf//wDX//8A1//iANX/JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/xgA1//iANf//wDX//8A1///ANf//wDX//8A1v+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wEA1v+EANf//wDX//8A1///ANf//wDX//8A1//iANX/JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/xgA1//iANf//wDX//8A1///ANf//wDX//8A1v+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wEA1v+EANf//wDX//8A1///ANf//wDX//8A1//iANX/JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/xgA1//iANf//wDX//8A1///ANf//wDX//8A1v+EAP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1f9EANb/hADW/4QA1v+EANb/hADW/4QA1/91ANb/EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU/wwA1/91ANb/hADW/4QA1v+EANb/hADW/4QA1f9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AQD//wEA//8BAP//AQD//wEAAP8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8BAP//AQD//wEA//8BAP//AQD//wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
// @licese       MIT
// ==/UserScript==

(function() {
    'use strict';

    // Create export button
    function createExportButton() {
        const button = document.createElement('button');
        button.innerText = '📝 Export to MD';
        button.style.cssText = `
            position: fixed;
            top: 50px;
            right: 20px;
            z-index: 9999;
            background: #2563eb;
            color: white;
            border: none;
            padding: 10px 15px;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
            transition: all 0.2s ease;
        `;

        button.onmouseover = () => {
            button.style.background = '#1d4ed8';
            button.style.transform = 'translateY(-1px)';
        };

        button.onmouseout = () => {
            button.style.background = '#2563eb';
            button.style.transform = 'translateY(0)';
        };

        button.onclick = exportChat;
        document.body.appendChild(button);
    }

    // Function to extract text content from code blocks
    function extractCodeContent(codeElement) {
        const codeText = codeElement.querySelector('code');
        if (codeText) {
            return codeText.textContent || codeText.innerText;
        }
        return codeElement.textContent || codeElement.innerText;
    }

    // Function to process message content and convert to markdown
    function processMessageContent(contentDiv) {
        let markdown = '';

        // Handle different types of content
        const children = contentDiv.children;

        for (let i = 0; i < children.length; i++) {
            const child = children[i];

            // Handle paragraphs
            if (child.tagName === 'P') {
                const textContent = child.textContent || child.innerText;
                if (textContent.trim()) {
                    markdown += textContent.trim() + '\n\n';
                }
            }

            // Handle code blocks
            else if (child.tagName === 'PRE') {
                const codeContent = extractCodeContent(child);
                const languageElement = child.querySelector('[class*="language-"]');
                let language = '';

                if (languageElement) {
                    const classList = languageElement.className;
                    const match = classList.match(/language-(\w+)/);
                    if (match) {
                        language = match[1];
                    }
                }

                // Also check for language indicators in header
                const headerSpan = child.querySelector('span.text-xs.capitalize');
                if (headerSpan && !language) {
                    language = headerSpan.textContent || '';
                }

                markdown += '```' + language + '\n' + codeContent.trim() + '\n```\n\n';
            }

            // Handle headings
            else if (child.tagName && child.tagName.match(/^H[1-6]$/)) {
                const level = parseInt(child.tagName.charAt(1));
                const headingText = child.textContent || child.innerText;
                markdown += '#'.repeat(level) + ' ' + headingText.trim() + '\n\n';
            }

            // Handle lists
            else if (child.tagName === 'UL') {
                const listItems = child.querySelectorAll('li');
                listItems.forEach(li => {
                    const itemText = li.textContent || li.innerText;
                    markdown += '- ' + itemText.trim() + '\n';
                });
                markdown += '\n';
            }

            else if (child.tagName === 'OL') {
                const listItems = child.querySelectorAll('li');
                listItems.forEach((li, index) => {
                    const itemText = li.textContent || li.innerText;
                    markdown += `${index + 1}. ` + itemText.trim() + '\n';
                });
                markdown += '\n';
            }

            // Handle other elements by extracting text
            else {
                const textContent = child.textContent || child.innerText;
                if (textContent.trim()) {
                    markdown += textContent.trim() + '\n\n';
                }
            }
        }

        return markdown.trim();
    }

    // Main export function
    function exportChat() {
        try {
            // Find all message containers
            const messageContainers = document.querySelectorAll('[data-message-author-role]');

            if (messageContainers.length === 0) {
                alert('No messages found to export. Make sure you are on a chat page with messages.');
                return;
            }

            let markdown = '# Mistral AI Chat Export\n\n';
            markdown += `**Exported on:** ${new Date().toLocaleString()}\n\n`;
            markdown += '---\n\n';

            messageContainers.forEach((container, index) => {
                const role = container.getAttribute('data-message-author-role');
                const messageId = container.getAttribute('data-message-id');

                // Find the timestamp
                let timestamp = '';
                const timestampElement = container.querySelector('.text-sm.text-hint');
                if (timestampElement) {
                    timestamp = timestampElement.textContent || timestampElement.innerText;
                }

                // Find the message content
                let content = '';

                if (role === 'user') {
                    // User messages - look for select-text content
                    const userContent = container.querySelector('.select-text');
                    if (userContent) {
                        // Handle user messages with potential code blocks
                        const spans = userContent.querySelectorAll('span.whitespace-pre-wrap');
                        let userText = '';
                        let inCodeBlock = false;
                        let codeLanguage = '';

                        spans.forEach(span => {
                            const text = span.textContent || span.innerText;
                            if (text === '```') {
                                if (!inCodeBlock) {
                                    inCodeBlock = true;
                                    userText += '```';
                                } else {
                                    inCodeBlock = false;
                                    userText += '\n```\n';
                                }
                            } else {
                                if (inCodeBlock) {
                                    userText += text + '\n';
                                } else {
                                    userText += text;
                                }
                            }
                        });

                        content = userText.trim();
                    }
                } else if (role === 'assistant') {
                    // Assistant messages - look for markdown container
                    const markdownContainer = container.querySelector('.markdown-container-style');
                    if (markdownContainer) {
                        content = processMessageContent(markdownContainer);
                    }
                }

                // Add message to markdown
                if (content) {
                    const roleTitle = role === 'user' ? '👤 User' : '🤖 Assistant';
                    markdown += `## ${roleTitle}`;
                    if (timestamp) {
                        markdown += ` *(${timestamp})*`;
                    }
                    markdown += '\n\n';
                    markdown += content + '\n\n';
                    markdown += '---\n\n';
                }
            });

            // Create and download file
            const blob = new Blob([markdown], { type: 'text/markdown;charset=utf-8' });
            const url = URL.createObjectURL(blob);
            const a = document.createElement('a');
            a.href = url;

            // Generate filename with current date
            const now = new Date();
            const dateStr = now.toISOString().split('T')[0];
            const timeStr = now.toTimeString().split(' ')[0].replace(/:/g, '-');
            a.download = `mistral-chat-${dateStr}_${timeStr}.md`;

            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
            URL.revokeObjectURL(url);

            // Show success message
            const successMsg = document.createElement('div');
            successMsg.innerText = '✅ Chat exported successfully!';
            successMsg.style.cssText = `
                position: fixed;
                top: 80px;
                right: 20px;
                background: #10b981;
                color: white;
                padding: 10px 15px;
                border-radius: 8px;
                z-index: 10000;
                font-weight: 600;
                animation: fadeInOut 3s ease-in-out;
            `;

            // Add CSS animation
            const style = document.createElement('style');
            style.textContent = `
                @keyframes fadeInOut {
                    0% { opacity: 0; transform: translateY(-10px); }
                    20%, 80% { opacity: 1; transform: translateY(0); }
                    100% { opacity: 0; transform: translateY(-10px); }
                }
            `;
            document.head.appendChild(style);

            document.body.appendChild(successMsg);
            setTimeout(() => {
                if (document.body.contains(successMsg)) {
                    document.body.removeChild(successMsg);
                }
            }, 3000);

        } catch (error) {
            console.error('Export error:', error);
            alert('An error occurred while exporting the chat. Please check the console for details.');
        }
    }

    // Initialize the script when page loads
    function init() {
        // Wait for the page to load completely
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', init);
            return;
        }

        // Add a small delay to ensure all elements are rendered
        setTimeout(() => {
            createExportButton();
        }, 2000);
    }

    // Start initialization
    init();

    // Also handle navigation changes (for SPAs)
    let currentUrl = location.href;
    new MutationObserver(() => {
        if (location.href !== currentUrl) {
            currentUrl = location.href;
            // Re-initialize on page change
            setTimeout(() => {
                if (!document.querySelector('button:contains("📝 Export to MD")')) {
                    createExportButton();
                }
            }, 2000);
        }
    }).observe(document, {subtree: true, childList: true});

})();