Compare commits

...

42 Commits
v1.9 ... main

Author SHA1 Message Date
5eded96615 Update dependency requests to v2.32.3 (#13) 2024-05-29 19:30:29 +03:00
f0b8c54790 Update dependency requests to v2.32.3 2024-05-29 19:12:21 +03:00
0277051e95 Merge pull request 'Update dependency requests to v2.32.2' (#12) from renovate/requests-2.x into main
Reviewed-on: #12
2024-05-21 23:01:22 +03:00
c48b39f16c Update dependency requests to v2.32.2 2024-05-21 22:46:45 +03:00
a4b637209d Update dependency requests to v2.32.1 (#11) 2024-05-21 10:47:04 +03:00
f9d4b7d1b8 Update dependency requests to v2.32.1 2024-05-21 01:52:44 +03:00
7865f892cb Update dependency requests to v2.32.0 (#10) 2024-05-20 19:51:43 +03:00
090231ed75 Update dependency requests to v2.32.0 2024-05-20 19:37:03 +03:00
fa0cd2e30f Merge pull request 'Update dependency ujson to v5.10.0' (#9) from renovate/ujson-5.x into main
Reviewed-on: #9
2024-05-14 23:57:39 +03:00
73d6b01ede Update dependency ujson to v5.10.0 2024-05-14 05:39:22 +03:00
5c5a620d65 Merge pull request 'Update dependency py-cord to v2.5.0' (#8) from renovate/py-cord-2.x into main
Reviewed-on: #8
2024-03-02 17:44:44 +02:00
1c05efa0f4 Update dependency py-cord to v2.5.0 2024-03-02 11:01:22 +02:00
f5de2457ba Merge pull request 'Update dependency ujson to v5.9.0' (#7) from renovate/ujson-5.x into main
Reviewed-on: #7
2023-12-12 01:28:19 +02:00
8cec182435 Update dependency ujson to v5.9.0 2023-12-11 01:34:57 +02:00
ad0ab65c5d Fixed http 2023-08-26 00:00:44 +03:00
0029cdaa30 Replaced Crowdin with Weblate 2023-08-25 23:59:50 +03:00
e94883f6ad Merge pull request 'Update dependency ujson to v5.8.0' (#6) from renovate/ujson-5.x into main
Reviewed-on: #6
2023-08-07 14:13:08 +03:00
465838a196 Update dependency ujson to v5.8.0 2023-08-07 14:10:43 +03:00
a059fb0518 Merge pull request 'Update dependency requests to v2.31.0' (#5) from renovate/requests-2.x into main
Reviewed-on: #5
2023-05-22 19:39:04 +03:00
c4ee74753b Update dependency requests to v2.31.0 2023-05-22 18:40:49 +03:00
492edc242f Merge pull request 'Update dependency requests to v2.30.0' (#4) from renovate/requests-2.x into main
Reviewed-on: #4
2023-05-08 11:50:52 +03:00
66c0ad7ee8 Update dependency requests to v2.30.0 2023-05-08 11:46:39 +03:00
c1ee1b50ab Added config check and updated version to 2.3 2023-05-07 16:39:48 +02:00
7a379cf97e Updated ignore 2023-05-07 16:38:46 +02:00
388e27fdff config.json is now config_example.json 2023-05-07 16:38:17 +02:00
65a0e1097e Updated version to 2.2 2023-05-07 16:24:09 +02:00
3fe67e18b0 Channel will terminate when the last user quit 2023-05-07 16:23:16 +02:00
91eecb4b0b Fixed channels logic 2023-05-02 16:13:11 +02:00
740c6a1464 Updated version to 2.1 2023-05-02 16:10:32 +02:00
3ca44dcd2d Updated version to 2.0 2023-05-02 15:10:29 +02:00
301439f144 Fixed bot trigger on deafen and mute 2023-05-02 15:09:23 +02:00
3435d59d96 Merge pull request 'Update dependency requests to v2.29.0' (#3) from renovate/requests-2.x into main
Reviewed-on: #3
2023-04-26 23:49:52 +03:00
d560bce8c6 Update dependency requests to v2.29.0 2023-04-26 18:48:15 +03:00
528604b6b4 Made a few dependencies strict 2023-04-23 10:35:27 +02:00
76c7812284 Renamed Renovate config 2023-04-20 13:38:00 +02:00
8e48334cea Merge pull request 'Configure Renovate' (#1) from renovate/configure into main
Reviewed-on: #1
2023-04-20 14:37:19 +03:00
bc9cebbec6 Add renovate.json 2023-04-20 14:13:46 +03:00
a178aa2af9 Merge branch 'main' of https://git.profitroll.eu/profitroll/YusarinBot 2023-04-19 14:27:12 +02:00
fb3e291d77 Sorted imports and removed unused ones 2023-04-19 14:23:41 +02:00
75c1889477 Formatted everything with black 2023-04-19 14:21:39 +02:00
5329b4c727 Bump pycord to 2.4.1 2023-04-19 14:16:32 +02:00
0f3a6121d6 Fixed black badge link 2023-03-22 21:30:45 +01:00
9 changed files with 69 additions and 39 deletions

7
.gitignore vendored
View File

@ -164,3 +164,10 @@ cython_debug/
# Built Visual Studio Code Extensions # Built Visual Studio Code Extensions
*.vsix *.vsix
# Project
venv
venv_linux
venv_windows
config.json

6
.renovaterc Normal file
View File

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
]
}

View File

@ -4,10 +4,10 @@
<a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html"> <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"> <img alt="License: GPL v2" src="https://img.shields.io/badge/License-GPL_v2-blue.svg">
</a> </a>
<a href="https://crowdin.com/project/yusarinbot"> <a href="https://weblate.end-play.xyz/engage/yusarinbot/">
<img alt="Crowdin" src="https://badges.crowdin.net/yusarinbot/localized.svg"> <img src="https://weblate.end-play.xyz/widget/yusarinbot/svg-badge.svg" alt="Translation status" />
</a> </a>
<a href="https://git.end-play.xyz/profitroll/TelegramPoster"> <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"> <img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg">
</a> </a>
<a href="https://discord.com/invite/2zpzErtnNT"> <a href="https://discord.com/invite/2zpzErtnNT">
@ -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` 1. `git clone https://git.end-play.xyz/profitroll/YusarinBot`
2. `cd YusarinBot` 2. `cd YusarinBot`
3. `pip install -r requirements.txt` 3. `pip install -r requirements.txt`
4. `nano config.json` 4. `cp config_example.json config.json`
5. `python yusarin.py` 5. `nano config.json`
6. `python yusarin.py`
## Installation (Detailed) ## 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 9. You can rename it however you want, set needed descriptions etc
10. Go to "Bot" tab and enable application as bot 10. Go to "Bot" tab and enable application as bot
11. Copy token of your 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 12. Copy `config_example.json` to `config.json`
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/>) 13. Open file `config.json` with your favorite text editor and paste your token as value of "bot_token" key
14. Bot is ready! Run it using `python yusarin.py` 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 ## Config explanation

View File

@ -9,6 +9,7 @@ from discord import (
utils, utils,
) )
from discord.ext import commands from discord.ext import commands
from discord.abc import GuildChannel
from functions import ( from functions import (
appendLog, appendLog,
@ -32,6 +33,11 @@ class CogChannel(commands.Cog):
def __init__(self, client): def __init__(self, client):
self.client = client self.client = client
@commands.Cog.listener()
async def on_guild_channel_delete(self, channel: GuildChannel):
if isUserVoice(channel):
await removeUserVoice(channel)
@Cog.listener() @Cog.listener()
async def on_voice_state_update( async def on_voice_state_update(
self, member: Member, before: VoiceState, after: VoiceState self, member: Member, before: VoiceState, after: VoiceState
@ -42,23 +48,17 @@ class CogChannel(commands.Cog):
vc_to = after.channel vc_to = after.channel
# If user left vc # If user left vc
if vc_to is None: if before.channel is not None and len(before.channel.members) == 0:
if isUserVoice(vc_from): if isUserVoice(vc_from):
if isVoiceOfUser(vc_from, member): if not isVoiceOfUser(vc_from, member):
await removeUserVoice(vc_from)
return
else:
if loadJson("config.json")["enable_nomic"]: if loadJson("config.json")["enable_nomic"]:
await changeNomicPerms("deny", vc_from, member) await changeNomicPerms("deny", vc_from, member)
await removeUserVoice(vc_from)
# If user joined vc # If user joined vc
else: if after.channel is not None and after.channel.id == guildConfGet(
if isUserVoice(vc_from): member.guild, "channel"
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 isUserVoice(vc_to):
if loadJson("config.json")["enable_nomic"]: if loadJson("config.json")["enable_nomic"]:
await changeNomicPerms("allow", vc_to, member) await changeNomicPerms("allow", vc_to, member)

View File

@ -254,7 +254,14 @@ async def removeUserVoice(vc: VoiceChannel) -> None:
remove(vc_file) remove(vc_file)
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() await needed_channel.delete()
if debug: if debug:
appendLog( appendLog(
f"Removed voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}", f"Removed voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}",
@ -267,10 +274,17 @@ async def removeUserVoice(vc: VoiceChannel) -> None:
) )
if loadJson("config.json")["enable_nomic"]: 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() await nomic_channel.delete()
if debug: if debug:
appendLog( appendLog(
f"Removed nomic channel {nomic_channel} ({str(nomic_channel.id)}) of channel with id {str(needed_channel.id)}", f"Removed nomic channel '{nomic_channel}' ({str(nomic_channel.id)}) of channel with id {str(needed_channel.id)}",
guild=vc.guild, guild=vc.guild,
) )
else: else:

View File

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

View File

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

View File

@ -7,15 +7,16 @@ except Exception as exp:
) )
exit() exit()
from os import getpid from os import getpid, path
from functions import * from functions import *
pid = getpid() pid = getpid()
version = 1.9 version = 2.3
if ( 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" or loadJson("config.json")["bot_token"] == "SET-BOT-TOKEN"
): ):
print( print(