Compare commits

..

No commits in common. "main" and "v2.0" have entirely different histories.
main ... v2.0

8 changed files with 39 additions and 62 deletions

9
.gitignore vendored
View File

@ -163,11 +163,4 @@ cython_debug/
.history/
# Built Visual Studio Code Extensions
*.vsix
# Project
venv
venv_linux
venv_windows
config.json
*.vsix

View File

@ -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://weblate.end-play.xyz/engage/yusarinbot/">
<img src="https://weblate.end-play.xyz/widget/yusarinbot/svg-badge.svg" alt="Translation status" />
<a href="https://crowdin.com/project/yusarinbot">
<img alt="Crowdin" src="https://badges.crowdin.net/yusarinbot/localized.svg">
</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,9 +26,8 @@ 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. `cp config_example.json config.json`
5. `nano config.json`
6. `python yusarin.py`
4. `nano config.json`
5. `python yusarin.py`
## Installation (Detailed)
@ -43,10 +42,9 @@ 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. 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`
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`
## Config explanation

View File

@ -9,7 +9,6 @@ from discord import (
utils,
)
from discord.ext import commands
from discord.abc import GuildChannel
from functions import (
appendLog,
@ -33,11 +32,6 @@ 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
@ -46,19 +40,26 @@ class CogChannel(commands.Cog):
vc_from = before.channel
vc_to = after.channel
category = member.guild.get_channel(guildConfGet(member.guild, "category"))
# If user left vc
if before.channel is not None and len(before.channel.members) == 0:
if after.channel is None and before.channel.category == category and len(before.channel.members) == 0:
if isUserVoice(vc_from):
if not isVoiceOfUser(vc_from, member):
if isVoiceOfUser(vc_from, member):
await removeUserVoice(vc_from)
return
else:
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_from):
if isVoiceOfUser(vc_from, member):
await removeUserVoice(vc_from)
else:
if loadJson("config.json")["enable_nomic"]:
await changeNomicPerms("deny", vc_from, member)
if isUserVoice(vc_to):
if loadJson("config.json")["enable_nomic"]:
await changeNomicPerms("allow", vc_to, member)

View File

@ -253,45 +253,31 @@ async def removeUserVoice(vc: VoiceChannel) -> None:
nomic_channel = utils.get(vc.guild.channels, id=vc_conf["nomic"])
remove(vc_file)
if needed_channel is None:
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:
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 voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}",
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 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

View File

@ -1,2 +1,2 @@
ujson==5.10.0
py-cord[speed]==2.5.0
ujson==5.7.0
py-cord[speed]==2.4.1

View File

@ -1,2 +1,2 @@
py-cord==2.5.0
requests==2.32.3
py-cord==2.4.1
requests==2.29.0

View File

@ -7,16 +7,15 @@ except Exception as exp:
)
exit()
from os import getpid, path
from os import getpid
from functions import *
pid = getpid()
version = 2.3
version = 2.0
if (
not path.exists("config.json")
or loadJson("config.json")["owner"] == "SET-OWNER-ID"
loadJson("config.json")["owner"] == "SET-OWNER-ID"
or loadJson("config.json")["bot_token"] == "SET-BOT-TOKEN"
):
print(