{"id":15147014,"url":"https://github.com/jadedctrl/dino-chat-export","last_synced_at":"2026-02-10T20:03:33.845Z","repository":{"id":122977545,"uuid":"544516647","full_name":"JadedCtrl/dino-chat-export","owner":"JadedCtrl","description":"Exports XMPP logs and uploads from the Dino client. (🪞 Mirror)","archived":false,"fork":false,"pushed_at":"2024-01-30T06:04:45.000Z","size":641,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-07T20:51:14.787Z","etag":null,"topics":["chat","data-hoarding","dino","logs","xmpp"],"latest_commit_sha":null,"homepage":"https://hak.xwx.moe/jadedctrl/dino-chat-export","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JadedCtrl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-02T17:17:58.000Z","updated_at":"2025-07-27T18:39:22.000Z","dependencies_parsed_at":"2024-09-21T19:00:58.789Z","dependency_job_id":"573ad79b-374b-4d78-ba46-4e3cdc7babe8","html_url":"https://github.com/JadedCtrl/dino-chat-export","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JadedCtrl/dino-chat-export","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadedCtrl%2Fdino-chat-export","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadedCtrl%2Fdino-chat-export/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadedCtrl%2Fdino-chat-export/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadedCtrl%2Fdino-chat-export/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JadedCtrl","download_url":"https://codeload.github.com/JadedCtrl/dino-chat-export/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadedCtrl%2Fdino-chat-export/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271747023,"owners_count":24813604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","data-hoarding","dino","logs","xmpp"],"created_at":"2024-09-26T12:21:25.645Z","updated_at":"2026-02-10T20:03:33.806Z","avatar_url":"https://github.com/JadedCtrl.png","language":"Shell","readme":"# dino-chat-export\n\nExport chats and files from the XMPP client [Dino](https://dino.im) into a plain-text format.\n\n![A screenshot of the same conversation two windows: Once in Dino, and once in HTML format displayed in Firefox.](res/combined-screenshot.png)\n\n\n\n## Usage\n`$ ./dino-chat-export /tmp/xmpp-archive/`\n\nThis script's only non-base requirement is `sqlite3`.\nIt takes one argument, the output directory. The output tree ends up looking something like this:\n\n```\n$ tree /tmp/xmpp-archive/\n/tmp/xmpp-archive/\n└── youraccount@domain.tld\n    ├── yourfriend@otherdomain.tld\n    │   ├── files\n    │   │   ├── sldfj_some_attached_file.pdf\n    │   │   ├── their_avatar.png\n    │   │   └── your_avatar.png\n    │   └── messages.txt\n    ├── evilperson@evilcompany.com\n    │   ├── files\n    │   │   ├── their_avatar.png\n    │   │   └── your_avatar.png\n    │   └── messages.txt\n```\n\nBy default, each message is output in `YYYY-MM-DD \u003c$user\u003e $message` format, but you can customize\nthe output of this script with environment variables.\n\n\n### Environment variables\n\n| Variable          | Description                                                   | Example                                 |\n| ----------------- | ------------------------------------------------------------- | --------------------------------------- |\n| `$DINO_HOME`      | Dino data directory                                           | `~/.local/share/Dino`                   |\n| `$MESSAGE_HEADER` | Text preceding each message file, with basic substitutions.   | `\u003chtml\u003e\u003ctitle\u003eTHEIR_JID\u003c/title\u003e\u003cbody\u003e`  |\n|                   | Substitutions: THEIR_JID, YOUR_JID, THEIR_NICK, YOUR_NICK     |                                         |\n| `$MESSAGE_FOOTER` | Likewise, but is output to the end of each message file.      | `\u003c/body\u003e\u003c/html\u003e`                        |\n| `$MESSAGE_FORMAT` | Template for message output, in a printf style.               | `[%s] \u003c%s\u003e: %s`                         |\n| `$MESSAGE_SLOTS`  | Comma-delimited arguments for $MESSAGE_FORMAT                 | `DATE,JID,BODY`                         |\n|                   | Valid slots: AVATAR, BODY, DATE, JID                          |                                         |\n| `$IMAGE_FORMAT`   | Format for message-bodies containing an image.                | `\u003cimg src=\"%s\" /\u003e`                      |\n| `$FILE_FORMAT`    | Same as `$IMAGE_FORMAT`, but for non-image files.             | `\u003ca href src=\"%s\"\u003eUploaded file\u003c/a\u003e`    |\n\n\n\n## Examples\n### HTML output\nHere are some environment variables you can use to get rudimentary, unstyled HTML output:\n\n```shell\n$ export MESSAGE_FORMAT='\u003cdiv class='message'\u003e\u003cdatetime\u003e%s\u003c/datetime\u003e \u003cimg class='avatar' src=\"%s\" /\u003e \u003cb\u003e%s\u003c/b\u003e — \u003cp\u003e%s\u003c/p\u003e\u003c/div\u003e'\nMESSAGE_SLOTS='DATE,AVATAR,JID,BODY'\nMESSAGE_HEADER='\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eConversation with THEIR_JID - YOUR_JID\u003c/title\u003e\u003c\n\t\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"../style.css\" /\u003e\n\u003c/head\u003e\n\u003cbody\u003e'\nMESSAGE_FOOTER='\u003c/body\u003e\n\u003c/html\u003e'\nIMAGE_FORMAT='\u003cimg src=\"%s\" /\u003e'\nFILE_FORMAT='\u003ca href=\"%s\" /\u003e%s\u003c/a\u003e'\n$ ./dino-chat-export ~/Archive/Chats/XMPP/\n```\n\nFeel free to spice it up with some real CSS!\n\n\n\n## Meta\nLicense is the GNU GPLv3+, COPYING.txt.\n\n- https://hak.xwx.moe/jadedctrl/dino-chat-export\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjadedctrl%2Fdino-chat-export","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjadedctrl%2Fdino-chat-export","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjadedctrl%2Fdino-chat-export/lists"}