Metadata-Version: 2.3
Name: matrix-supportbot
Version: 0.1.2
Summary: Simple support chat bot for Matrix
Project-URL: Homepage, https://git.private.coffee/PrivateCoffee/matrix-supportbot
Project-URL: Bug Tracker, https://git.private.coffee/PrivateCoffee/matrix-supportbot/issues
Author-email: "Private.coffee Team" <support@private.coffee>
License: Copyright (c) 2024 Private.coffee Team <support@private.coffee>
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: matrix-nio>=0.24.0
Requires-Dist: pyyaml
Description-Content-Type: text/markdown

# Matrix Support Bot

[![Support Private.coffee!](https://shields.private.coffee/badge/private.coffee-support%20us!-pink?logo=coffeescript)](https://private.coffee)

Matrix Support Bot is a support ticket bot for the Matrix protocol built using the `matrix-nio` library. The bot allows users to open support tickets and communicate with support operators in a structured manner. Operators can manage tickets and relay messages between customer-facing and operator-facing rooms.

## Features

- The bot's state is stored in a Matrix room, so no external database is required.
- Users can invite the bot to a direct message (DM) and receive instructions on how to open a support ticket.
- Users can open support tickets using the `!supportbot openticket` command.
- The bot creates a new customer-facing room for each ticket and invites the user to it.
- Operators are notified of new tickets in a shared operator room.
- Operators can join operator-facing rooms for each ticket and communicate with customers.
- Messages between customer-facing and operator-facing rooms are relayed by the bot.
- Operators can close tickets and list open tickets using bot commands.
- Supports relaying of different message types, including text and media.

## Commands

### User Commands

- `!supportbot openticket` - Opens a new support ticket and creates a customer-facing room.

### Operator Commands

- `!supportbot invite <ticket_id>` - Invites an operator to the operator-facing room for the specified ticket.
- `!supportbot close <ticket_id>` - Closes the specified ticket.
- `!supportbot list` - Lists all open tickets.

## Installation

1. Install from PyPI:

   ```bash
   pip install matrix-supportbot
   ```

2. Create a `config.yaml` file with your Matrix credentials and operator room ID:

   ```yaml
   homeserver: "https://homeserver.example"
   username: "your_username"
   password: "your_password"
   operator_room_id: "!your_operator_room_id:homeserver.example"
   ```

## Usage

Run the bot with the following command:

```bash
supportbot
```

The bot will log in to your Matrix server, join the operator room, and start listening for commands and invites.

## Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
