Metadata-Version: 2.1
Name: mafiagg
Version: 1.0.0
Summary: A Python wrapper for the MafiaGG API
Home-page: https://github.com/blacksmithop/MafiaggBot
Author: blacksmithop
License: MIT
Project-URL: Documentation, https://blacksmithop.github.io/MafiaggBot/
Project-URL: Issue tracker, https://github.com/blacksmithop/MafiaggBot/issues
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.8.0
Description-Content-Type: text/markdown
Requires-Dist: annotated-types==0.6.0
Requires-Dist: Babel==2.14.0
Requires-Dist: beautifulsoup4==4.12.2
Requires-Dist: black==23.12.1
Requires-Dist: certifi==2023.11.17
Requires-Dist: charset-normalizer==3.3.2
Requires-Dist: click==8.1.7
Requires-Dist: colorama==0.4.6
Requires-Dist: ghp-import==2.1.0
Requires-Dist: idna==3.6
Requires-Dist: Jinja2==3.1.2
Requires-Dist: Markdown==3.5.1
Requires-Dist: MarkupSafe==2.1.3
Requires-Dist: mergedeep==1.3.4
Requires-Dist: mkdocs==1.5.3
Requires-Dist: mkdocs-material==9.5.3
Requires-Dist: mkdocs-material-extensions==1.3.1
Requires-Dist: mypy-extensions==1.0.0
Requires-Dist: packaging==23.2
Requires-Dist: paginate==0.5.6
Requires-Dist: pathspec==0.12.1
Requires-Dist: platformdirs==4.1.0
Requires-Dist: pydantic==2.5.3
Requires-Dist: pydantic_core==2.14.6
Requires-Dist: Pygments==2.17.2
Requires-Dist: pymdown-extensions==10.7
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: PyYAML==6.0.1
Requires-Dist: pyyaml_env_tag==0.1
Requires-Dist: regex==2023.12.25
Requires-Dist: requests==2.31.0
Requires-Dist: six==1.16.0
Requires-Dist: soupsieve==2.5
Requires-Dist: tomli==2.0.1
Requires-Dist: typing_extensions==4.9.0
Requires-Dist: urllib3==2.1.0
Requires-Dist: watchdog==3.0.0
Requires-Dist: websockets==12.0
Provides-Extra: docs
Requires-Dist: mkdocs-material==9.5.3; extra == "docs"

# MafiaggBot

## Usage

---

```shell
git clone https://github.com/blacksmithop/MafiaggBot

cd MafiaggBot
```
---

### Installation

Install dependencies 

```shell
python3 -m pip install -r requirements.txt
```

---


Create a .env file with credentials

```
MAFIA_USERNAME=username
MAFIA_PASSWORD=password
```

---

### Running the bot

```shell
python3 runbot.py
```

Note: When you run the bot for the first time,
it will download the deck and setup data
and store it in `bot/data/` folder.

### Features

- [x] Rooms
    - [x] List rooms
    - [x] Make private/public
    - [x] Become player/spectator
    - [x] Do afk check
        - [x] Do afk check
        - [x] Do ready check   
    - [x] Rename room
    - [x] Create new room
        - [ ] Only create room when game end
- [x] Decks
    - [x] Get deck by name
    - [x] Set deck by name
    - [x] Use random deck
- [x] Setups
    - [x] Get setup by name
    - [x] Set setup by code
    - [x] Set setup by name
    - [ ] Get current setup code
- [x] Roles
    - [x] Get role by name
    - [ ] Cleanup role descriptions with validator
- [x] Commands
    - [x] Custom command names
    - [x] Command docs
- [x] Bot Client
- [X] Authentication
- [x] Help command
    - [ ] Formatted / multi-message help command
- [ ] Host only commands


### Tasklist

- [ ] Don't create new room unless game end
- [ ] Understand role object -> setup code creation
- [ ] Return character info (for decks in next message)
- [ ] Better commands (sub-commands!)
- [ ] Better doc strings using decorators
- [ ] When exiting bot site calls DELETE on `user-session` (cookie invalidation?)
- [ ] Join other rooms on request
- [ ] Allow for `super().__init__` calls
