Skip to content

Commit

Permalink
Merge pull request #8 from catgirlclient/experimental
Browse files Browse the repository at this point in the history
Officially oss this stupid bot
  • Loading branch information
shuuyu authored Oct 14, 2024
2 parents aea440c + f047dd8 commit 91ca990
Show file tree
Hide file tree
Showing 16 changed files with 105 additions and 214 deletions.
File renamed without changes.
2 changes: 2 additions & 0 deletions LICENSE-MIT
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
MIT License

Copyright (c) 2024 shuuyu

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
173 changes: 0 additions & 173 deletions LICENSE-POLYFORM

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ open sourced initiative, making it so anyone can see and utilize portions of our

___
<h4 style="text-align: center">
Copyright (c) 2024 CatgirlClient & yujin. Nabi is licensed under the PolyForm Shield License 1.0.0 unless otherwise stated. All rights reserved.
Copyright (c) 2024 CatgirlClient & yujin. Nabi is licensed under the GNU AGPL-3.0 License unless otherwise stated. All rights reserved.
</h4>
1 change: 1 addition & 0 deletions api/LICENSE-AGPL
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../LICENSE-AGPL
1 change: 1 addition & 0 deletions bot/LICENSE-AGPL
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../LICENSE-AGPL
1 change: 0 additions & 1 deletion bot/LICENSE-POLYFORM

This file was deleted.

1 change: 1 addition & 0 deletions common/LICENSE-MIT
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../LICENSE-MIT
39 changes: 37 additions & 2 deletions docs/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,37 @@
# Nabi's Code of Conduct
Nabi maintains a code of conduct to help facilitate the
# Code of Conduct
**Last Modified: 6/10/24**

[Privacy Policy](../docs/PRIVACY_POLICY.md) - [Terms of Service](../docs/TERMS_OF_SERVICE.md)

## Our Motivation
Our plans are to foster a positive community that aids moderators, modders, and the average end-user and other
like-minded individuals in their journey of keeping their communities healthy and prosperous. Due to these aforementioned
reasons, we utilize and maintain a Code of Conduct to help facilitate those actions, and help blossom a beautiful community.

## Our Pledge
We pledge the following clauses for our services:

* To provide services which are to be deemed free and available to all forms of users.
* To foster a safe and friendly community for every group of people.
* To continue and produce open sourced software for the end user.

## Your Pledge
You pledge to abide by the following clauses, and accept punishment if any of these clauses are broken:

* To not discriminate any person for any particular reasons and/or action.
* To not disrupt any operations of our services in any capacity.
* To not utilize any sexual imagery or make any sexual advances.
* To not harass any community members (privately or publicly).
* To follow the respective Terms of Service wherever it be deemed necessary ([Discord's TOS](https://discord.com/terms) - [Nabi's TOS](../docs/TERMS_OF_SERVICE.md))
* To not maliciously attack any user there be it by software or by practice.
* To use common sense. All pledges are implied unless otherwise stated by a member of the team.

## Enforcement
Breaking any of the aforementioned clauses in the section titled **"Your Pledges"** is unacceptable, and will result in
swift punishment. We harbour a safe and friendly environment for all people regardless of race, color, and orientation.
Due to this, staff/owners retain the right to punish you wherever it be deemed fit. Staff/owners also reserve the rights
to decide the punishment associated with the broken pledge. In short,
*Nabi and her respective staff have the right to punish/remove you if we deem fit.*

Instances of this pledge may be reported to us wherever it be deemed fit, whether that be by direct messages, emails,
or informing us in the necessary channels.
52 changes: 48 additions & 4 deletions docs/Contributing.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,58 @@
# Contributing
Contributions are always welcomed by the Nabi team.
Contributions are always welcomed by the Nabi team, as we strive to be both free and open source.

## Building and Running Nabi
> [!WARNING]
> Nabi wasn't made for the intention of being self-hosted, as it's typically taylored for larger servers and higher load
> operations. Due to this, you won't recieve support beyond this guide on how to set up Nabi and run her related services.
Nabi requires the following dependencies:

* Java 17 (Discord InteraKTions require it for webserver based interactions.)
* Redis/Any Redis compatible in memory database (Required by [`subprojects/cache`](../subprojects/cache))
* PostgreSQL (Required by [`subprojects/database`](../subprojects/database), though you can swap this out.)
* An HTTP server (*Optional*, although if you want other users to access Nabi's servers and websites, you'll need to specify this.)
* An HTTP server (*Optional*, although if you want other users to access Nabi's servers and websites, you'll need to specify this.
I personally recommend Caddy or Nginx for reverse proxying, but you could use anything related to the above.)

Nabi also doesn't make usage of a ``.env`` file like other related bots. Instead, it processes information from a ``nabi-config.toml``.
If you run the process without the file above, the environment will stop and create one for you. You **MUST** have the
following in your file for the bot to run.

```toml
[discord]
token = "discord_token"
applicationId = "app_id"
defaultGuildId = "default_guild_id"
shards = 999
defaultPrefix = "?"
ownerIds = ["your", "owner", "ids"]
publicKey = "public_key" # This is only necessary if you want to have webserver interactions.
port = 12212 # This is only necessary if you want to have webserver interactions.

[database]
addresses = "postgresql_address"
username = "jdbc_username"
password = "jdbc_password"
port = 9203

[cache]
addresses = ["cache", "addresses"]
username = "redis_username"
password = "redis_password"
```

Once you've filled out the following, your bot should be running smoothly! Keep in mind that you may need to tinker more
in order to fine tune Nabi for your specific needs, and that's okay, as Nabi was made to be flexible and diverse.

## Contributing Guidelines
If you are going to contribute, please note the following:

* If there is an issue related to one of our libraries, please report it to the respective repository instead of making a
workaround. This should only be used in a worst case scenario, and should not **EVER** be excercised.
* We may only accept certain pull requests if it's beneficial to the Nabi ecosystem.
* You should almost **NEVER** target the experimental branch when it comes to pull requests, as we intend on making breaking
changes with this branch.

## Important Contributors
* yujin - Primary owner of Nabi and maintainer of all of her services.
* my-name-is-jeff - Some idiot
* [yujin](https://github.com/shuuyu) - Primary code maintianer and operator of Nabi.
* [my-name-is-jeff](https://github.com/My-Name-Is-Jeff) - Some idiot who doesn't contribute
4 changes: 2 additions & 2 deletions docs/Dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ Nabi would not be possible without the following dependencies!
* [HikariCP](https://github.com/brettwooldridge/HikariCP)
* [Postgresql](https://github.com/pgjdbc/pgjdbc)

In the future, we plan to use the following dependencies:
* [Sqiffy](https://github.com/dzikoysk/sqiffy/tree/main) - This will replace Exposed.
In the future, we may plan to use the following dependencies:
* [Sqiffy](https://github.com/dzikoysk/sqiffy/tree/main) - This will possibly replace Exposed.

## Discord Library/Frameworks
* [Kord](https://github.com/kordlib/kord)
Expand Down
9 changes: 5 additions & 4 deletions docs/PRIVACY_POLICY.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Privacy Policy
Nabi, if inside a server you're in, will collect your user/member information in order to speed up her processing of
commands. Nabi and her developers promise to never sell your user information in any form, and will only cache
necessary information. This information includes:
Nabi, if inside a server you're in, will collect and store your Discord user/member information in order to speed
up her processing of commands and other related processes. Nabi and her developers promise to never sell your user
information in any form, and will only cache necessary information. This information includes:

* Guild Information
* Member Information
* User Information
* Message Information
* Role Information

Your information will, by default, be deleted after 30 days if it hasn't been used within that time frame.
Your information will, by default, be deleted after 30 days if it hasn't been used within that time frame. If you ever
decide to delete any user information, please contact us directly in order to remove any related information.
34 changes: 7 additions & 27 deletions docs/TERMS_OF_SERVICE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Nabi's Terms of Service
**Last Updated: 19/9/2024**

By using any services in relation to Nabi, you agree to both the [Discord Terms and Services]() and
By using any services in relation to Nabi, you agree to both the [Discord Terms and Services](https://discord.com/terms) and
our related terms of service. You agree that breaking any terms will result in complete termination of your ability to use
any services related to Nabi. You may also be blacklisted from any services from Nabi at any time for no given reason by
the discression of the developers.
Expand Down Expand Up @@ -29,31 +29,11 @@ Nabi and her developers take your privacy seriously. **Nabi will only collect da

See (../docs/PRIVACY_POLICY.md) for more information.

## Legal
> [!NOTE]
> This currently only applies to code licensed under the GNU AGPL License. Code licensed under the current Polyform Shield
> 1.0.0 License specifically state that you cannot compete, meaning that you cannot profiteer off of the work of Nabi
> and her developers.
Nabi and her developers require you to specify the license if you utilize any form of our source code in your project. Nabi
is intentionally open-source to an extent to encourage people to develop upon the bot.

## Noncompete & License Compliance
Nabi was purely made source available for both security, transparency, and being completely free. We understand that
users may be reluctant to adopt Nabi and her services due to a lack of transparency, thus opening her source code for
people to analyze.

For any and all services of Nabi's license which are labeled under the Polyform Shield 1.0.0 license or any non-compete
related licenses, you agree to not compete with her services, and agree to not profiteer off of the work from her developers.
You agree to follow the license of whatever the subproject/project is licensed under. You are to assume projects without
any given/provided licenses are All Rights Reserved (ARR), and thus fall under our jurisdiction. Failure to comply may
result in the possible invokation of the Digital Millenium Copyright Act (DMCA).

> [!NOTE]
> This agreement will change when Nabi enters a stable release, instead using AGPL-3.0 for her license. This will only
> apply to her bot, not any other related components. We will remove the noncompete term once AGPL-3.0 or another license
> is pushed.
## Legal and License Compliance
We license all code under the [``:api``](../api), [``:bot``](../bot), and [``:subprojects``](../subprojects) directory under the
GNU AGPL-3.0 License, while every other project would be licensed under the MIT License. We kindly emplore developers who
use our code to please follow the license stated, as we are a non-profit organization.

## Access & Noncompliance
You agree to not harm any and all services in relation to Nabi, and agree that your ability to use Nabi may be removed at
any time.
You agree to not harm any and all services in relation to Nabi, and agree that your ability to use Nabi and her service
may be revoked at any time.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 91ca990

Please sign in to comment.