hikari-chat-exporter


Namehikari-chat-exporter JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryA simple Discord chat exporter for Python Discord bots.
upload_time2024-08-15 16:06:01
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseGPL-3.0-only
keywords chat exporter discord chat exporter discord hikari
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

[![Version][pypi-version]][pypi-url]
[![Language][language-dom]][github-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![GPL License][license-shield]][license-url]


  <h2>Hikari-ChatExporter</h2>

  <p>
    Export Discord chats with your hikari bots!
    <br />
</p>
</div>

---
## Installation

To install the library to your virtual environment, for bot usage, run the command:
```sh 
pip install hikari-chat-exporter
```

To clone the repository locally, run the command:
```sh
git clone https://github.com/EgehanKilicarslan/Hikari-ChatExporter
```

<p align="right">(<a href="#top">back to top</a>)</p>

---
## Usage

There are currently 3 methods (functions) to `chat-exporter` which you can use to export your chat.<br/>
_Expand the blocks below to learn the functions, arguments and usages._
<details><summary><b>Basic Usage</b></summary>

`.quick_export()` is the simplest way of using chat-exporter.

Using the _quick_export_ function will gather the history of the channel you give, build the transcript then post the file and embed directly to the channel - returning a message object gathered from the message it posted.

This is mostly seen as a demo function, as opposed to a command you should actually use. 

**Required Argument(s):**<br/>
`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather.

**Optional Argument(s):**<br/>
`bot`: `commands.Bot` object to gather members who are no longer in your guild.

**Return Argument:**<br/>
`hikari.messages.Message`: The message _quick_export_ will send, containing the embed and exported chat file.

**Example:**
```python
import hikari
import lightbulb
import chat_exporter


bot = hikari.GatewayBot(token="...")
client = lightbulb.client_from_app(bot)
bot.subscribe(hikari.StartingEvent, client.start)

...

@client.register
class Save(
    lightbulb.SlashCommand, 
    name="save",
    description="Saves current chat transcript."
):
    @lightbulb.invoke
    async def invoke(self, ctx: lightbulb.Context) -> None:
        await chat_exporter.quick_export(ctx.interaction.get_channel())
        await ctx.respond("Transcript created!")

...
```

</details>

<details><summary><b>Customisable Usage</b></summary>

`.export()` is the most efficient and flexible method to export a chat using chat-exporter.

Using the _export_ function will generate a transcript using the channel you pass in, along with using any of the custom kwargs passed in to set limits, timezone, 24h formats and more (listed below).

This would be the main function to use within chat-exporter.

**Required Argument(s):**<br/>
`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather.

**Optional Argument(s):**<br/>
`limit`: Integer value to set the limit (amount of messages) the chat exporter gathers when grabbing the history (default=unlimited).<br/>
`tz_info`: String value of a [TZ Database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) to set a custom timezone for the exported messages (default=UTC)<br/>
`military_time`: Boolean value to set a 24h format for times within your exported chat (default=False | 12h format)<br/>
`fancy_times`: Boolean value which toggles the 'fancy times' (Today|Yesterday|Day)<br/>
`bot`: `commands.Bot` object to gather members who are no longer in your guild.

**Return Argument:**<br/>
`transcript`: The HTML build-up for you to construct the HTML File with Discord.

**Example:**
```python
import io
import hikari
import lightbulb
import chat_exporter


bot = hikari.GatewayBot(token="...")
client = lightbulb.client_from_app(bot)
bot.subscribe(hikari.StartingEvent, client.start)

...

@client.register
class Save(
    lightbulb.SlashCommand, 
    name="save",
    description="Saves current chat transcript."
):
    @lightbulb.invoke
    async def invoke(self, ctx: lightbulb.Context) -> None:
        limit: int = 100
        tz_info: str = "UTC"
        military_time: bool = True
        channel = ctx.interaction.get_channel()

        transcript = await chat_exporter.export(
            channel,
            limit=limit,
            tz_info=tz_info,
            military_time=military_time,
            bot=bot
        )

        if transcript is None:
            return

        transcript_file = hikari.files.Bytes(io.BytesIO(transcript.encode()), f"transcript-{channel.name}.html")

        await ctx.respond(transcript_file)
```
</details>
<details><summary><b>Raw Usage</b></summary>

`.raw_export()` is for the crazy people who like to do their own thing when using chat-exporter.

Using the _raw_export_ function will generate a transcript using the list of messages you pass in, along with using any of the custom kwargs passed in to set limits, timezone, 24h formats and more (listed below).

This would be for people who want to filter what content to export.

**Required Argument(s):**<br/>
`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather (this is just for padding the header).<br/>
`messages`: A list of Message objects which you wish to export to an HTML file.

**Optional Argument(s):**<br/>
`tz_info`: String value of a [TZ Database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) to set a custom timezone for the exported messages (default=UTC)<br/>
`military_time`: Boolean value to set a 24h format for times within your exported chat (default=False | 12h format)<br/>
`fancy_times`: Boolean value which toggles the 'fancy times' (Today|Yesterday|Day)<br/>
`bot`: `commands.Bot` object to gather members who are no longer in your guild.

**Return Argument:**<br/>
`transcript`: The HTML build-up for you to construct the HTML File with Discord.

**Example:**
```python
import io
import hikari
import lightbulb
import chat_exporter


bot = hikari.GatewayBot(token="...")
client = lightbulb.client_from_app(bot)
bot.subscribe(hikari.StartingEvent, client.start)

...

@client.register
class Save(
    lightbulb.SlashCommand, 
    name="save",
    description="Saves current chat transcript."
):
    @lightbulb.invoke
    async def invoke(self, ctx: lightbulb.Context) -> None:
        tz_info: str = "UTC"
        military_time: bool = True
        channel = ctx.interaction.get_channel()
        messages = bot.rest.fetch_messages(channel)

        transcript = await chat_exporter.raw_export(
            channel,
            messages=messages,
            tz_info=tz_info,
            military_time=military_time,
            bot=bot
        )

        if transcript is None:
            return

        transcript_file = hikari.files.Bytes(io.BytesIO(transcript.encode()), f"transcript-{channel.name}.html")

        await ctx.respond(transcript_file)
```
</details>

<p align="right">(<a href="#top">back to top</a>)</p>

---
## Screenshots

<details><summary><b>General</b></summary>
<ol>
    <details><summary>Discord</summary>
    <img src="https://raw.githubusercontent.com/EgehanKilicarslan/Hikari-ChatExporter/master/.screenshots/channel_output.png">
    </details>
    <details><summary>Chat-Exporter</summary>
    <img src="https://raw.githubusercontent.com/EgehanKilicarslan/Hikari-ChatExporter/master/.screenshots/html_output.png">
    </details>
</ol>
</details>
<p align="right">(<a href="#top">back to top</a>)</p>


---
## Additional Functions

<details><summary><b>Link Function</b></summary>
Downloading exported chats can build up a bunch of unwanted files on your PC which can get annoying, additionally - not everyone wants to download content from Discord.

Due to these pain, and many requests - I have built a fancy PHP script which will show the transcript file within a browser.<br/>
<ol>
<details><summary>quick_link</summary>
Similar in design to `.quick_export()` this is a bit of a demo function to produce a link and to give you an embed.

**Required Argument(s):**<br/>
`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather.<br/>
`message`: The Discord message containing the transcript file

**Return Argument:**<br/>
`hikari.messages.Message`: The message _quick_link_ will send, containing the embed.

**Example:**
```python
import hikari
import lightbulb
import chat_exporter


bot = hikari.GatewayBot(token="...")
client = lightbulb.client_from_app(bot)
bot.subscribe(hikari.StartingEvent, client.start)

...

@client.register
class Save(
    lightbulb.SlashCommand, 
    name="save",
    description="Saves current chat transcript."
):
    @lightbulb.invoke
    async def invoke(self, ctx: lightbulb.Context) -> None:
        channel = ctx.interaction.get_channel()
        message = await chat_exporter.quick_export(channel)
        await chat_exporter.quick_link(channel, message)
```
</details>

<details><summary>link</summary>
A simple function to return the link you will need to view the transcript online.

**Required Argument(s):**<br/>
`message`: The Discord message containing the transcript file

**Return Argument:**<br/>
`link`: The link to view the transcript file online

**Example:**
```python
import io
import hikari
import lightbulb
import chat_exporter


bot = hikari.GatewayBot(token="...")
client = lightbulb.client_from_app(bot)
bot.subscribe(hikari.StartingEvent, client.start)

...

@client.register
class Save(
    lightbulb.SlashCommand, 
    name="save",
    description="Saves current chat transcript."
):
    @lightbulb.invoke
    async def invoke(self, ctx: lightbulb.Context) -> None:
        channel = ctx.interaction.get_channel()
        transcript = await chat_exporter.export(channel)
    
        if transcript is None:
            return

        transcript_file = hikari.File(
            io.BytesIO(transcript.encode()),
            filename=f"transcript-{channel.name}.html",
        )

        message = await ctx.respond(attachment=transcript_file)
        link = await chat_exporter.link(message)

        await ctx.respond("Click this link to view the transcript online: " + link)
```
</details>
</ol>

_Please note that the PHP script does NOT store any information.<br/>
It simply makes a request to the given URL and echos (prints) the content for you to be able to view it._

</details>

---
## Attributions

*This project borrows CSS and HTML code from [Tyrrrz's C# DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/) repository.*

*This project is based on [DiscordChatExporterPy](https://github.com/mahtoid/DiscordChatExporterPy), the work of [mahtoid](https://github.com/mahtoid).*
<p align="right">(<a href="#top">back to top</a>)</p>

<!-- LINK DUMP -->
[pypi-version]: https://img.shields.io/pypi/v/hikari-chat-exporter?style=for-the-badge
[pypi-url]: https://pypi.org/project/hikari-chat-exporter/
[language-dom]: https://img.shields.io/github/languages/top/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge
[forks-shield]: https://img.shields.io/github/forks/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge
[forks-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/
[stars-shield]: https://img.shields.io/github/stars/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge
[stars-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/stargazers
[issues-shield]: https://img.shields.io/github/issues/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge
[issues-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/issues
[license-shield]: https://img.shields.io/github/license/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge
[license-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/blob/master/LICENSE
[github-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "hikari-chat-exporter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "chat exporter, discord chat exporter, discord, hikari",
    "author": null,
    "author_email": "Egehan K\u0131l\u0131\u00e7arslan <contact@egehankilicarslan.me>",
    "download_url": "https://files.pythonhosted.org/packages/b1/ec/17d2f544496ef5de01f6e60b37277b0111ec200cdf0e4d9818e57bdd805e/hikari_chat_exporter-0.0.2.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n[![Version][pypi-version]][pypi-url]\n[![Language][language-dom]][github-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![GPL License][license-shield]][license-url]\n\n\n  <h2>Hikari-ChatExporter</h2>\n\n  <p>\n    Export Discord chats with your hikari bots!\n    <br />\n</p>\n</div>\n\n---\n## Installation\n\nTo install the library to your virtual environment, for bot usage, run the command:\n```sh \npip install hikari-chat-exporter\n```\n\nTo clone the repository locally, run the command:\n```sh\ngit clone https://github.com/EgehanKilicarslan/Hikari-ChatExporter\n```\n\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n---\n## Usage\n\nThere are currently 3 methods (functions) to `chat-exporter` which you can use to export your chat.<br/>\n_Expand the blocks below to learn the functions, arguments and usages._\n<details><summary><b>Basic Usage</b></summary>\n\n`.quick_export()` is the simplest way of using chat-exporter.\n\nUsing the _quick_export_ function will gather the history of the channel you give, build the transcript then post the file and embed directly to the channel - returning a message object gathered from the message it posted.\n\nThis is mostly seen as a demo function, as opposed to a command you should actually use. \n\n**Required Argument(s):**<br/>\n`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather.\n\n**Optional Argument(s):**<br/>\n`bot`: `commands.Bot` object to gather members who are no longer in your guild.\n\n**Return Argument:**<br/>\n`hikari.messages.Message`: The message _quick_export_ will send, containing the embed and exported chat file.\n\n**Example:**\n```python\nimport hikari\nimport lightbulb\nimport chat_exporter\n\n\nbot = hikari.GatewayBot(token=\"...\")\nclient = lightbulb.client_from_app(bot)\nbot.subscribe(hikari.StartingEvent, client.start)\n\n...\n\n@client.register\nclass Save(\n    lightbulb.SlashCommand, \n    name=\"save\",\n    description=\"Saves current chat transcript.\"\n):\n    @lightbulb.invoke\n    async def invoke(self, ctx: lightbulb.Context) -> None:\n        await chat_exporter.quick_export(ctx.interaction.get_channel())\n        await ctx.respond(\"Transcript created!\")\n\n...\n```\n\n</details>\n\n<details><summary><b>Customisable Usage</b></summary>\n\n`.export()` is the most efficient and flexible method to export a chat using chat-exporter.\n\nUsing the _export_ function will generate a transcript using the channel you pass in, along with using any of the custom kwargs passed in to set limits, timezone, 24h formats and more (listed below).\n\nThis would be the main function to use within chat-exporter.\n\n**Required Argument(s):**<br/>\n`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather.\n\n**Optional Argument(s):**<br/>\n`limit`: Integer value to set the limit (amount of messages) the chat exporter gathers when grabbing the history (default=unlimited).<br/>\n`tz_info`: String value of a [TZ Database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) to set a custom timezone for the exported messages (default=UTC)<br/>\n`military_time`: Boolean value to set a 24h format for times within your exported chat (default=False | 12h format)<br/>\n`fancy_times`: Boolean value which toggles the 'fancy times' (Today|Yesterday|Day)<br/>\n`bot`: `commands.Bot` object to gather members who are no longer in your guild.\n\n**Return Argument:**<br/>\n`transcript`: The HTML build-up for you to construct the HTML File with Discord.\n\n**Example:**\n```python\nimport io\nimport hikari\nimport lightbulb\nimport chat_exporter\n\n\nbot = hikari.GatewayBot(token=\"...\")\nclient = lightbulb.client_from_app(bot)\nbot.subscribe(hikari.StartingEvent, client.start)\n\n...\n\n@client.register\nclass Save(\n    lightbulb.SlashCommand, \n    name=\"save\",\n    description=\"Saves current chat transcript.\"\n):\n    @lightbulb.invoke\n    async def invoke(self, ctx: lightbulb.Context) -> None:\n        limit: int = 100\n        tz_info: str = \"UTC\"\n        military_time: bool = True\n        channel = ctx.interaction.get_channel()\n\n        transcript = await chat_exporter.export(\n            channel,\n            limit=limit,\n            tz_info=tz_info,\n            military_time=military_time,\n            bot=bot\n        )\n\n        if transcript is None:\n            return\n\n        transcript_file = hikari.files.Bytes(io.BytesIO(transcript.encode()), f\"transcript-{channel.name}.html\")\n\n        await ctx.respond(transcript_file)\n```\n</details>\n<details><summary><b>Raw Usage</b></summary>\n\n`.raw_export()` is for the crazy people who like to do their own thing when using chat-exporter.\n\nUsing the _raw_export_ function will generate a transcript using the list of messages you pass in, along with using any of the custom kwargs passed in to set limits, timezone, 24h formats and more (listed below).\n\nThis would be for people who want to filter what content to export.\n\n**Required Argument(s):**<br/>\n`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather (this is just for padding the header).<br/>\n`messages`: A list of Message objects which you wish to export to an HTML file.\n\n**Optional Argument(s):**<br/>\n`tz_info`: String value of a [TZ Database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) to set a custom timezone for the exported messages (default=UTC)<br/>\n`military_time`: Boolean value to set a 24h format for times within your exported chat (default=False | 12h format)<br/>\n`fancy_times`: Boolean value which toggles the 'fancy times' (Today|Yesterday|Day)<br/>\n`bot`: `commands.Bot` object to gather members who are no longer in your guild.\n\n**Return Argument:**<br/>\n`transcript`: The HTML build-up for you to construct the HTML File with Discord.\n\n**Example:**\n```python\nimport io\nimport hikari\nimport lightbulb\nimport chat_exporter\n\n\nbot = hikari.GatewayBot(token=\"...\")\nclient = lightbulb.client_from_app(bot)\nbot.subscribe(hikari.StartingEvent, client.start)\n\n...\n\n@client.register\nclass Save(\n    lightbulb.SlashCommand, \n    name=\"save\",\n    description=\"Saves current chat transcript.\"\n):\n    @lightbulb.invoke\n    async def invoke(self, ctx: lightbulb.Context) -> None:\n        tz_info: str = \"UTC\"\n        military_time: bool = True\n        channel = ctx.interaction.get_channel()\n        messages = bot.rest.fetch_messages(channel)\n\n        transcript = await chat_exporter.raw_export(\n            channel,\n            messages=messages,\n            tz_info=tz_info,\n            military_time=military_time,\n            bot=bot\n        )\n\n        if transcript is None:\n            return\n\n        transcript_file = hikari.files.Bytes(io.BytesIO(transcript.encode()), f\"transcript-{channel.name}.html\")\n\n        await ctx.respond(transcript_file)\n```\n</details>\n\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n---\n## Screenshots\n\n<details><summary><b>General</b></summary>\n<ol>\n    <details><summary>Discord</summary>\n    <img src=\"https://raw.githubusercontent.com/EgehanKilicarslan/Hikari-ChatExporter/master/.screenshots/channel_output.png\">\n    </details>\n    <details><summary>Chat-Exporter</summary>\n    <img src=\"https://raw.githubusercontent.com/EgehanKilicarslan/Hikari-ChatExporter/master/.screenshots/html_output.png\">\n    </details>\n</ol>\n</details>\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n\n---\n## Additional Functions\n\n<details><summary><b>Link Function</b></summary>\nDownloading exported chats can build up a bunch of unwanted files on your PC which can get annoying, additionally - not everyone wants to download content from Discord.\n\nDue to these pain, and many requests - I have built a fancy PHP script which will show the transcript file within a browser.<br/>\n<ol>\n<details><summary>quick_link</summary>\nSimilar in design to `.quick_export()` this is a bit of a demo function to produce a link and to give you an embed.\n\n**Required Argument(s):**<br/>\n`channel`: `hikari.channels.PartialChannel` object, whether `ctx.channel` or any channel you gather.<br/>\n`message`: The Discord message containing the transcript file\n\n**Return Argument:**<br/>\n`hikari.messages.Message`: The message _quick_link_ will send, containing the embed.\n\n**Example:**\n```python\nimport hikari\nimport lightbulb\nimport chat_exporter\n\n\nbot = hikari.GatewayBot(token=\"...\")\nclient = lightbulb.client_from_app(bot)\nbot.subscribe(hikari.StartingEvent, client.start)\n\n...\n\n@client.register\nclass Save(\n    lightbulb.SlashCommand, \n    name=\"save\",\n    description=\"Saves current chat transcript.\"\n):\n    @lightbulb.invoke\n    async def invoke(self, ctx: lightbulb.Context) -> None:\n        channel = ctx.interaction.get_channel()\n        message = await chat_exporter.quick_export(channel)\n        await chat_exporter.quick_link(channel, message)\n```\n</details>\n\n<details><summary>link</summary>\nA simple function to return the link you will need to view the transcript online.\n\n**Required Argument(s):**<br/>\n`message`: The Discord message containing the transcript file\n\n**Return Argument:**<br/>\n`link`: The link to view the transcript file online\n\n**Example:**\n```python\nimport io\nimport hikari\nimport lightbulb\nimport chat_exporter\n\n\nbot = hikari.GatewayBot(token=\"...\")\nclient = lightbulb.client_from_app(bot)\nbot.subscribe(hikari.StartingEvent, client.start)\n\n...\n\n@client.register\nclass Save(\n    lightbulb.SlashCommand, \n    name=\"save\",\n    description=\"Saves current chat transcript.\"\n):\n    @lightbulb.invoke\n    async def invoke(self, ctx: lightbulb.Context) -> None:\n        channel = ctx.interaction.get_channel()\n        transcript = await chat_exporter.export(channel)\n    \n        if transcript is None:\n            return\n\n        transcript_file = hikari.File(\n            io.BytesIO(transcript.encode()),\n            filename=f\"transcript-{channel.name}.html\",\n        )\n\n        message = await ctx.respond(attachment=transcript_file)\n        link = await chat_exporter.link(message)\n\n        await ctx.respond(\"Click this link to view the transcript online: \" + link)\n```\n</details>\n</ol>\n\n_Please note that the PHP script does NOT store any information.<br/>\nIt simply makes a request to the given URL and echos (prints) the content for you to be able to view it._\n\n</details>\n\n---\n## Attributions\n\n*This project borrows CSS and HTML code from [Tyrrrz's C# DiscordChatExporter](https://github.com/Tyrrrz/DiscordChatExporter/) repository.*\n\n*This project is based on [DiscordChatExporterPy](https://github.com/mahtoid/DiscordChatExporterPy), the work of [mahtoid](https://github.com/mahtoid).*\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n<!-- LINK DUMP -->\n[pypi-version]: https://img.shields.io/pypi/v/hikari-chat-exporter?style=for-the-badge\n[pypi-url]: https://pypi.org/project/hikari-chat-exporter/\n[language-dom]: https://img.shields.io/github/languages/top/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge\n[forks-shield]: https://img.shields.io/github/forks/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge\n[forks-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/\n[stars-shield]: https://img.shields.io/github/stars/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge\n[stars-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/stargazers\n[issues-shield]: https://img.shields.io/github/issues/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge\n[issues-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/issues\n[license-shield]: https://img.shields.io/github/license/EgehanKilicarslan/Hikari-ChatExporter?style=for-the-badge\n[license-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/blob/master/LICENSE\n[github-url]: https://github.com/EgehanKilicarslan/Hikari-ChatExporter/\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-only",
    "summary": "A simple Discord chat exporter for Python Discord bots.",
    "version": "0.0.2",
    "project_urls": {
        "Homepage": "https://github.com/EgehanKilicarslan/Hikari-ChatExporter"
    },
    "split_keywords": [
        "chat exporter",
        " discord chat exporter",
        " discord",
        " hikari"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "865b86f8ec895baad51523c3d855e3f0456372e07ff4f7289d68135f0afca966",
                "md5": "96aecde9ca8c91a511618509088d10d6",
                "sha256": "48d6e1c3f316d0d37bfa79b34464e52fb9f736f27065636f992a0676518510a3"
            },
            "downloads": -1,
            "filename": "hikari_chat_exporter-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "96aecde9ca8c91a511618509088d10d6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 58484,
            "upload_time": "2024-08-15T16:05:59",
            "upload_time_iso_8601": "2024-08-15T16:05:59.463517Z",
            "url": "https://files.pythonhosted.org/packages/86/5b/86f8ec895baad51523c3d855e3f0456372e07ff4f7289d68135f0afca966/hikari_chat_exporter-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1ec17d2f544496ef5de01f6e60b37277b0111ec200cdf0e4d9818e57bdd805e",
                "md5": "94b179dfa4559a93528685334d68e043",
                "sha256": "11e08c5a7e767a52d819d25973a9a1c91f44e23c592e30715b6ba653ba8cb920"
            },
            "downloads": -1,
            "filename": "hikari_chat_exporter-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "94b179dfa4559a93528685334d68e043",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 47537,
            "upload_time": "2024-08-15T16:06:01",
            "upload_time_iso_8601": "2024-08-15T16:06:01.300769Z",
            "url": "https://files.pythonhosted.org/packages/b1/ec/17d2f544496ef5de01f6e60b37277b0111ec200cdf0e4d9818e57bdd805e/hikari_chat_exporter-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-15 16:06:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "EgehanKilicarslan",
    "github_project": "Hikari-ChatExporter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "hikari-chat-exporter"
}
        
Elapsed time: 0.31455s