readme and privacy
This commit is contained in:
151
PRIVACY.md
Normal file
151
PRIVACY.md
Normal file
@@ -0,0 +1,151 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<body>
|
||||
|
||||
<h1>Privacy Policy</h1>
|
||||
|
||||
<p><strong>Effective Date:</strong> March 11, 2026</p>
|
||||
|
||||
<p>
|
||||
This Privacy Policy describes how Reactor collects, uses,
|
||||
and stores information when used within a Valour server.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>1. Information Collected</h2>
|
||||
|
||||
<p>
|
||||
Reactor collects only the minimum data required to function.
|
||||
</p>
|
||||
|
||||
<h3>Information Stored (Persisted to Disk)</h3>
|
||||
<ul>
|
||||
<li>Planet IDs</li>
|
||||
<li>Channel IDs</li>
|
||||
<li>Message IDs of reaction role messages</li>
|
||||
<li>Emoji-to-role mappings</li>
|
||||
<li>Confirmation message delete delay settings</li>
|
||||
</ul>
|
||||
|
||||
<h3>Information Not Stored</h3>
|
||||
<ul>
|
||||
<li>Message content (beyond the initial reaction message text provided by the administrator)</li>
|
||||
<li>User IDs (beyond what is transiently used to assign or remove roles during a reaction event)</li>
|
||||
<li>Direct Messages (DMs)</li>
|
||||
<li>User credentials</li>
|
||||
<li>Email addresses</li>
|
||||
<li>Passwords</li>
|
||||
<li>IP addresses</li>
|
||||
<li>Analytics or tracking data</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>2. Purpose of Data Collection</h2>
|
||||
|
||||
<p>Stored information is used exclusively to:</p>
|
||||
|
||||
<ol>
|
||||
<li>Track which messages are configured as reaction role messages</li>
|
||||
<li>Map emoji reactions to planet roles</li>
|
||||
<li>Assign or remove roles from members when they react or unreact to a tracked message</li>
|
||||
<li>Automatically clean up stale data when messages are deleted</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Data is not used for marketing, advertising, profiling, or analytics.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>3. Data Storage and Security</h2>
|
||||
|
||||
<p>
|
||||
All data is stored in a local SQLite database file (<code>reactor.db</code>) on the hosting server.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The operator of the self-hosted instance is responsible for securing the hosting environment
|
||||
and the database file.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Stale or deleted reaction messages are automatically removed from the database on bot startup.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>4. Third-Party Processing</h2>
|
||||
|
||||
<p>
|
||||
Reactor does not transmit any data to external services beyond the Valour.gg API,
|
||||
which is required for core bot functionality such as assigning roles and sending messages.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Reactor does not use any external AI providers, analytics services, or cloud storage.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>5. Data Retention</h2>
|
||||
|
||||
<p>
|
||||
Reaction role message data is retained in the SQLite database until:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>The reaction message is deleted from Valour (automatic cleanup on bot startup)</li>
|
||||
<li>An administrator runs the <code>r.delete</code> command</li>
|
||||
<li>The database file is manually deleted by the host operator</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>6. Self-Hosted Responsibility</h2>
|
||||
|
||||
<p>
|
||||
Reactor is designed for self-hosting.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The hosting operator is responsible for:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Server security</li>
|
||||
<li>Network configuration</li>
|
||||
<li>Bot token protection</li>
|
||||
<li>Database file security</li>
|
||||
<li>Compliance with applicable laws</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>7. Changes to This Policy</h2>
|
||||
|
||||
<p>
|
||||
If data collection practices change in future versions,
|
||||
this Privacy Policy will be updated prior to implementation.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Continued use of the Bot after updates constitutes acceptance
|
||||
of the revised policy.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>8. Contact Information</h2>
|
||||
|
||||
<p>
|
||||
For privacy-related inquiries:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Email: contact@skyjoshua.xyz
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
161
README.md
161
README.md
@@ -1,11 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Coming Soon.</h1>
|
||||
<h1>Reactor</h1>
|
||||
|
||||
<h2>DO NOT USE THIS YET ITS NO WHERE NEAR DONE AND HAS NO PRIVACY POLICY!</h2>
|
||||
<p>
|
||||
Reactor is a Valour.gg bot that enables server administrators to create reaction role messages.
|
||||
Users can react to a message with an emoji to automatically be assigned or removed from a role.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Features</h2>
|
||||
<ul>
|
||||
<li>Create reaction role messages in any planet channel</li>
|
||||
<li>Map emojis to roles — reacting adds the role, removing the reaction removes it</li>
|
||||
<li>Automatic cleanup of deleted reaction messages from the database</li>
|
||||
<li>Persistent storage via SQLite — survives bot restarts</li>
|
||||
<li>Permission-based command access (Manage Roles or Full Control required)</li>
|
||||
<li>Built with .NET and the Valour SDK</li>
|
||||
<li>Open-source under AGPL-3.0</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>How It Works</h2>
|
||||
<p>Reactor connects to the Valour.gg API and listens for reactions on configured messages.</p>
|
||||
<ul>
|
||||
<li>Reaction role messages and their emoji-to-role mappings are stored in a local SQLite database</li>
|
||||
<li>When a user reacts to a tracked message, Reactor assigns the mapped role</li>
|
||||
<li>When a user removes their reaction, Reactor removes the mapped role</li>
|
||||
<li>Stale messages (deleted from Valour) are automatically pruned from the database on startup</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Requirements</h2>
|
||||
<ul>
|
||||
<li>.NET 10+</li>
|
||||
<li>Valid Valour bot token</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Installation</h2>
|
||||
|
||||
<pre><code>fork the project
|
||||
git clone https://github.com/YOUR_USERNAME/Reactor.git
|
||||
cd Reactor
|
||||
dotnet restore</code></pre>
|
||||
|
||||
<p>
|
||||
All required NuGet packages are installed automatically via the <code>.csproj</code> file.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Configuration</h2>
|
||||
|
||||
<p>Create a <code>.env</code> file in the root directory:</p>
|
||||
|
||||
<pre><code>TOKEN=your-valour-bot-token</code></pre>
|
||||
|
||||
<p>
|
||||
Do not commit this file to version control.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Running the Bot</h2>
|
||||
|
||||
<pre><code>dotnet run</code></pre>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Commands</h2>
|
||||
|
||||
<p>All commands require <strong>Manage Roles</strong> or <strong>Full Control</strong> permissions, except <code>r.help</code> and <code>r.source</code>.</p>
|
||||
|
||||
<table border="1" cellpadding="6">
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r.help</code></td>
|
||||
<td>Shows the list of available commands</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r.source</code></td>
|
||||
<td>Shows the source code of the bot</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r.create <message text></code></td>
|
||||
<td>Creates a new reaction role message in the current channel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r.add <messageId> <emoji> <roleId></code></td>
|
||||
<td>Maps an emoji to a role on a reaction message</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r.remove <messageId> <emoji></code></td>
|
||||
<td>Removes an emoji-to-role mapping from a reaction message</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r.delete <messageId></code></td>
|
||||
<td>Deletes a reaction message and all its role mappings</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Data Storage</h2>
|
||||
|
||||
<p>Reactor stores the following data in a local SQLite database (<code>reactor.db</code>):</p>
|
||||
<ul>
|
||||
<li>Reaction message IDs, channel IDs, and planet IDs</li>
|
||||
<li>Emoji-to-role mappings per reaction message</li>
|
||||
<li>Configurable delete delay for confirmation messages (default: 5 seconds)</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Full privacy policy:<br>
|
||||
<a href="https://github.com/SkyJoshua/Reactor/blob/main/PRIVACY.md">
|
||||
https://github.com/SkyJoshua/Reactor/blob/main/PRIVACY.md
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>License</h2>
|
||||
<p>
|
||||
This project is licensed under the
|
||||
<strong>GNU Affero General Public License v3.0 (AGPL-3.0)</strong>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
See the LICENSE file for details:<br>
|
||||
<a href="https://github.com/SkyJoshua/Reactor/blob/main/LICENSE">
|
||||
https://github.com/SkyJoshua/Reactor/blob/main/LICENSE
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you modify and deploy this project publicly (including as a hosted service),
|
||||
you must make your source code available under the same AGPL-3.0 license.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Contributing</h2>
|
||||
|
||||
<p>
|
||||
Contributions are welcome. By submitting a contribution, you agree that your
|
||||
contributions will be licensed under AGPL-3.0.
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Fork the repository</li>
|
||||
<li>Create a feature branch</li>
|
||||
<li>Submit a pull request</li>
|
||||
</ol>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user