Skip to content

Commit afba718

Browse files
committed
Remove modmail telemetry and update PRIVACY.md
1 parent ba23738 commit afba718

3 files changed

Lines changed: 26 additions & 88 deletions

File tree

PRIVACY.md

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
# Privacy Statement
22

3-
Hey, we are the lead developers of Modmail bot. This is a look into the data we collect, the data you collect, the data other parties collect, and what can be done about any of this data.
3+
Hey, we are the lead developers of Modmail bot. This is a look into the data you collect, the data other parties collect, and what can be done about any of this data.
44
> **Disclaimer**: None of us are lawyers. We are just trying to be more transparent
55
6+
OpenModmail is a fork of Modmail, and this privacy policy is a fork of the original Modmail privacy policy.
7+
All telemetry and data collection has been removed from OpenModmail.
8+
9+
> [!NOTE]
10+
> Plugins may collect additional data. Please check with the plugin developer for more information.
11+
612
### TL;DR
713

8-
Yes, we collect some data to keep us happy. You collect some data to keep the bot functioning. External services also collect some data that is out of our control.
14+
You collect some data to keep the bot functioning. External services also collect some data that is out of our control.
915

1016
## Interpretation
1117

@@ -18,38 +24,6 @@ Yes, we collect some data to keep us happy. You collect some data to keep the bo
1824
- Database: A location where data is stored, hosted by the bot owner. The following types of database are currently supported: [MongoDB](#MongoDB).
1925
- Logviewer: A webserver hosted by the bot owner.
2026

21-
## The Data We Collect
22-
23-
No data is being collected unless someone decides to host the bot and the bot is kept online.
24-
25-
The Modmail Team collect some metadata to keep us updated on the number of instances that are making use of the bot and know what features we should focus on. The following is a list of data that we collect:
26-
- Bot ID
27-
- Bot username and discriminator
28-
- Bot avatar URL
29-
- Main guild ID
30-
- Main guild name
31-
- Main guild member count
32-
- Bot uptime
33-
- Bot latency
34-
- Bot version
35-
- Whether the bot is selfhosted
36-
37-
No tokens/passwords/private data is ever being collected or sent to our servers.
38-
39-
This metadata is sent to our centralised servers every hour that the bot is up and can be viewed in the bot logs when the `log_level` is set to `DEBUG`.
40-
41-
As our bot is completely open-source, the part that details this behaviour is located in `bot.py > ModmailBot > post_metadata`.
42-
43-
We assure you that the data is not being sold to anybody.
44-
45-
### Opting out
46-
47-
The bot owner can opt out of this data collection by setting `data_collection` to `off` within the configuration variables or the `.env` file.
48-
49-
### Data deletion
50-
51-
Data can be deleted with a request in a DM to our [support server](https://discord.gg/etJNHCQ)'s Modmail bot.
52-
5327
## The Data You Collect
5428

5529
When using the bot, the bot can collect various bits of user data to ensure that the bot can run smoothly.
@@ -74,7 +48,7 @@ When a message is sent in a thread, the bot saves the following data:
7448
- Message author avatar URL
7549
- Whether the message author is a moderator
7650
- Message content
77-
- All attachment urls in the message
51+
- Attachments
7852

7953
This data is essential to have live logs for the web logviewer to function.
8054
The Modmail team does not track any data by users.
@@ -99,11 +73,6 @@ If you wish to opt out of any of this data collection, please view their own pri
9973

10074
- [Discord Privacy Policy](https://discord.com/privacy)
10175

102-
### Heroku
103-
104-
- [Heroku Security](https://www.heroku.com/policy/security)
105-
- [Salesforce Privacy Policy](https://www.salesforce.com/company/privacy/).
106-
10776
### MongoDB
10877

10978
- [MongoDB Privacy Policy](https://www.mongodb.com/legal/privacy-policy).

README.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,20 @@
2121
<img src='https://github.com/raidensakura/modmail/assets/38610216/106e8fa3-6f8e-4b00-9968-f5c2f3108da0' align='center' width=500>
2222
</div>
2323

24+
> [!NOTE]
25+
> This is a maintained *hard* fork of modmail by khakers based on [raidensakura](https://github.com/raidensakura)'s fork
26+
> of modmail.
27+
> This fork is not affiliated with the original modmail project.
28+
> It was done to add features that were not being added to the original modmail project due to its inactivity and to
29+
> better align with what I wanted for modmail-viewer
30+
31+
I am the developer of [modmail-viewer](https://github.com/khakers/modmail-viewer), which is the recommended way to view
32+
logs for this fork.
33+
Although you can use the built-in logviewer plugin, it is not recommended as it is not as feature-rich as
34+
modmail-viewer, and I do not intend to maintain it.
35+
The logviewer plugin is included with this fork, but it is disabled by default, and it contains extras features and
36+
security fixes that are not present in the original logviewer plugin.
37+
2438
## Features
2539

2640
* **Highly Customisable:**
@@ -45,7 +59,6 @@
4559
* Support for the diverse range of message contents (multiple images, files).
4660
* Paginated commands interfaces via reactions.
4761

48-
This list is ever-growing thanks to active development and our exceptional contributors. See a full list of documented commands by using the `?help` command.
4962

5063
## Installation
5164

@@ -58,7 +71,7 @@ This guide assumes you have git, and a supported Python version installed and ad
5871

5972
1. Clone the repository
6073
```console
61-
$ git clone https://github.com/raidensakura/modmail
74+
$ git clone https://github.com/khakers/openmodmail
6275
$ cd modmail
6376
```
6477
2. Create a Discord bot account, grant the necessary intents, and invite the bot.
@@ -113,9 +126,9 @@ Issues with the bot can be opened through [GitHub Issues](https://github.com/kha
113126

114127
## Contributing
115128

116-
Check out the [contributing guidelines](https://github.com/raidensakura/modmail/blob/stable/.github/CONTRIBUTING.md) before you get started.
129+
Check out the [contributing guidelines](https://github.com/khakers/modmail/blob/stable/.github/CONTRIBUTING.md) before you get started.
117130

118-
The [develop](https://github.com/raidensakura/modmail/tree/develop) branch is where most of the features are tested before stable release.
131+
The [develop](https://github.com/khakers/openmodmail/tree/develop) branch is where most of the features are tested before stable release.
119132

120133
This project has included pre-commit script that automatically runs black and ruff linter on every commit.
121134

bot.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,6 @@ async def on_ready(self):
651651
)
652652
logger.warning("If the external servers are valid, you may ignore this message.")
653653

654-
self.post_metadata.start()
655654
self.autoupdate.start()
656655
self._started = True
657656

@@ -1579,49 +1578,6 @@ async def on_command_error(
15791578
else:
15801579
logger.error("Unexpected exception:", exc_info=exception)
15811580

1582-
@tasks.loop(hours=1)
1583-
async def post_metadata(self):
1584-
info = await self.application_info()
1585-
1586-
delta = discord.utils.utcnow() - self.start_time
1587-
data = {
1588-
"bot_id": self.user.id,
1589-
"bot_name": str(self.user),
1590-
"avatar_url": self.user.display_avatar.url,
1591-
"guild_id": self.guild_id,
1592-
"guild_name": self.guild.name,
1593-
"member_count": len(self.guild.members),
1594-
"uptime": delta.total_seconds(),
1595-
"latency": f"{self.ws.latency * 1000:.4f}",
1596-
"version": str(self.version),
1597-
"selfhosted": True,
1598-
"last_updated": str(discord.utils.utcnow()),
1599-
}
1600-
1601-
if info.team is not None:
1602-
data.update(
1603-
{
1604-
"owner_name": info.team.owner.name if info.team.owner is not None else "No Owner",
1605-
"owner_id": info.team.owner_id,
1606-
"team": True,
1607-
}
1608-
)
1609-
else:
1610-
data.update({"owner_name": info.owner.name, "owner_id": info.owner.id, "team": False})
1611-
1612-
async with self.session.post("https://api.modmail.dev/metadata", json=data):
1613-
logger.debug("Uploading metadata to Modmail server.")
1614-
1615-
@post_metadata.before_loop
1616-
async def before_post_metadata(self):
1617-
await self.wait_for_connected()
1618-
if not self.config.get("data_collection") or not self.guild:
1619-
self.post_metadata.cancel()
1620-
return
1621-
1622-
logger.debug("Starting metadata loop.")
1623-
logger.line("debug")
1624-
16251581
@tasks.loop(hours=1)
16261582
async def autoupdate(self):
16271583
changelog = await Changelog.from_url(self)

0 commit comments

Comments
 (0)