Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
7ee9da5e0c
|
|||
|
b4542f3c45
|
|||
|
13d5f0d521
|
|||
| db0484f8a7 | |||
|
351aaa5130
|
|||
| 30cf8b6f77 | |||
| ecd1c19a8d | |||
| b0393e8d33 | |||
| 176bc962e7 | |||
| 5eded96615 | |||
| f0b8c54790 | |||
| 0277051e95 | |||
| c48b39f16c | |||
| a4b637209d | |||
| f9d4b7d1b8 | |||
| 7865f892cb | |||
| 090231ed75 | |||
| fa0cd2e30f | |||
| 73d6b01ede | |||
| 5c5a620d65 | |||
| 1c05efa0f4 | |||
| f5de2457ba | |||
| 8cec182435 | |||
| ad0ab65c5d | |||
| 0029cdaa30 | |||
| e94883f6ad | |||
| 465838a196 | |||
| a059fb0518 | |||
| c4ee74753b | |||
| 492edc242f | |||
| 66c0ad7ee8 | |||
| c1ee1b50ab | |||
| 7a379cf97e | |||
| 388e27fdff | |||
| 65a0e1097e | |||
| 3fe67e18b0 |
9
.gitignore
vendored
9
.gitignore
vendored
@@ -163,4 +163,11 @@ cython_debug/
|
||||
.history/
|
||||
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
*.vsix
|
||||
|
||||
# Project
|
||||
venv
|
||||
venv_linux
|
||||
venv_windows
|
||||
|
||||
config.json
|
||||
20
.renovaterc
20
.renovaterc
@@ -2,5 +2,25 @@
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:base"
|
||||
],
|
||||
"baseBranches": [
|
||||
"dev"
|
||||
],
|
||||
"pip_requirements": {
|
||||
"fileMatch": [
|
||||
"requirements/.*\\.txt$"
|
||||
],
|
||||
"enabled": true
|
||||
},
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch",
|
||||
"pin",
|
||||
"digest"
|
||||
],
|
||||
"automerge": true
|
||||
}
|
||||
]
|
||||
}
|
||||
16
README.md
16
README.md
@@ -4,8 +4,8 @@
|
||||
<a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">
|
||||
<img alt="License: GPL v2" src="https://img.shields.io/badge/License-GPL_v2-blue.svg">
|
||||
</a>
|
||||
<a href="https://crowdin.com/project/yusarinbot">
|
||||
<img alt="Crowdin" src="https://badges.crowdin.net/yusarinbot/localized.svg">
|
||||
<a href="https://weblate.end-play.xyz/engage/yusarinbot/">
|
||||
<img src="https://weblate.end-play.xyz/widget/yusarinbot/svg-badge.svg" alt="Translation status" />
|
||||
</a>
|
||||
<a href="https://git.end-play.xyz/profitroll/YusarinBot">
|
||||
<img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg">
|
||||
@@ -26,8 +26,9 @@ Installation instructions are listed below. Please, make sure you have installed
|
||||
1. `git clone https://git.end-play.xyz/profitroll/YusarinBot`
|
||||
2. `cd YusarinBot`
|
||||
3. `pip install -r requirements.txt`
|
||||
4. `nano config.json`
|
||||
5. `python yusarin.py`
|
||||
4. `cp config_example.json config.json`
|
||||
5. `nano config.json`
|
||||
6. `python yusarin.py`
|
||||
|
||||
## Installation (Detailed)
|
||||
|
||||
@@ -42,9 +43,10 @@ Installation instructions are listed below. Please, make sure you have installed
|
||||
9. You can rename it however you want, set needed descriptions etc
|
||||
10. Go to "Bot" tab and enable application as bot
|
||||
11. Copy token of your bot
|
||||
12. Open file `config.json` with your favorite text editor and paste your token as value of "bot_token" key
|
||||
13. Copy your own Discord ID and paste it as value of "owner" key (How to get ID: <https://support.playhive.com/discord-user-id/>)
|
||||
14. Bot is ready! Run it using `python yusarin.py`
|
||||
12. Copy `config_example.json` to `config.json`
|
||||
13. Open file `config.json` with your favorite text editor and paste your token as value of "bot_token" key
|
||||
14. Copy your own Discord ID and paste it as value of "owner" key (How to get ID: <https://support.playhive.com/discord-user-id/>)
|
||||
15. Bot is ready! Run it using `python yusarin.py`
|
||||
|
||||
## Config explanation
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ from discord import (
|
||||
utils,
|
||||
)
|
||||
from discord.ext import commands
|
||||
from discord.abc import GuildChannel
|
||||
|
||||
from functions import (
|
||||
appendLog,
|
||||
@@ -32,6 +33,11 @@ class CogChannel(commands.Cog):
|
||||
def __init__(self, client):
|
||||
self.client = client
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_guild_channel_delete(self, channel: GuildChannel):
|
||||
if isUserVoice(channel):
|
||||
await removeUserVoice(channel)
|
||||
|
||||
@Cog.listener()
|
||||
async def on_voice_state_update(
|
||||
self, member: Member, before: VoiceState, after: VoiceState
|
||||
@@ -44,14 +50,15 @@ class CogChannel(commands.Cog):
|
||||
# If user left vc
|
||||
if before.channel is not None and len(before.channel.members) == 0:
|
||||
if isUserVoice(vc_from):
|
||||
if isVoiceOfUser(vc_from, member):
|
||||
await removeUserVoice(vc_from)
|
||||
else:
|
||||
if not isVoiceOfUser(vc_from, member):
|
||||
if loadJson("config.json")["enable_nomic"]:
|
||||
await changeNomicPerms("deny", vc_from, member)
|
||||
await removeUserVoice(vc_from)
|
||||
|
||||
# If user joined vc
|
||||
if after.channel is not None and after.channel.id == guildConfGet(member.guild, "channel"):
|
||||
if after.channel is not None and after.channel.id == guildConfGet(
|
||||
member.guild, "channel"
|
||||
):
|
||||
if isUserVoice(vc_to):
|
||||
if loadJson("config.json")["enable_nomic"]:
|
||||
await changeNomicPerms("allow", vc_to, member)
|
||||
|
||||
36
functions.py
36
functions.py
@@ -253,31 +253,45 @@ async def removeUserVoice(vc: VoiceChannel) -> None:
|
||||
nomic_channel = utils.get(vc.guild.channels, id=vc_conf["nomic"])
|
||||
|
||||
remove(vc_file)
|
||||
|
||||
await needed_channel.delete()
|
||||
if debug:
|
||||
appendLog(
|
||||
f"Removed voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
else:
|
||||
|
||||
if needed_channel is None:
|
||||
appendLog(
|
||||
f"Removed voice channel '{needed_channel}' of user with id {str(vc_conf['ownerid'])}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
else:
|
||||
await needed_channel.delete()
|
||||
|
||||
if loadJson("config.json")["enable_nomic"]:
|
||||
await nomic_channel.delete()
|
||||
if debug:
|
||||
appendLog(
|
||||
f"Removed nomic channel {nomic_channel} ({str(nomic_channel.id)}) of channel with id {str(needed_channel.id)}",
|
||||
f"Removed voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
else:
|
||||
appendLog(
|
||||
f"Removed voice channel '{needed_channel}' of user with id {str(vc_conf['ownerid'])}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
|
||||
if loadJson("config.json")["enable_nomic"]:
|
||||
if nomic_channel is None:
|
||||
appendLog(
|
||||
f"Removed nomic channel '{nomic_channel}' of channel with id {str(needed_channel.id)}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
else:
|
||||
await nomic_channel.delete()
|
||||
|
||||
if debug:
|
||||
appendLog(
|
||||
f"Removed nomic channel '{nomic_channel}' ({str(nomic_channel.id)}) of channel with id {str(needed_channel.id)}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
else:
|
||||
appendLog(
|
||||
f"Removed nomic channel '{nomic_channel}' of channel with id {str(needed_channel.id)}",
|
||||
guild=vc.guild,
|
||||
)
|
||||
else:
|
||||
return
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
ujson==5.7.0
|
||||
py-cord[speed]==2.4.1
|
||||
ujson==5.11.0
|
||||
py-cord[speed]==2.6.1
|
||||
@@ -1,2 +1,2 @@
|
||||
py-cord==2.4.1
|
||||
requests==2.29.0
|
||||
py-cord==2.6.1
|
||||
requests==2.32.5
|
||||
@@ -7,15 +7,16 @@ except Exception as exp:
|
||||
)
|
||||
exit()
|
||||
|
||||
from os import getpid
|
||||
from os import getpid, path
|
||||
|
||||
from functions import *
|
||||
|
||||
pid = getpid()
|
||||
version = 2.1
|
||||
version = 2.3
|
||||
|
||||
if (
|
||||
loadJson("config.json")["owner"] == "SET-OWNER-ID"
|
||||
not path.exists("config.json")
|
||||
or loadJson("config.json")["owner"] == "SET-OWNER-ID"
|
||||
or loadJson("config.json")["bot_token"] == "SET-BOT-TOKEN"
|
||||
):
|
||||
print(
|
||||
|
||||
Reference in New Issue
Block a user