File size: 4,847 Bytes
618430a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# Ultroid - UserBot
# Copyright (C) 2021-2025 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
At Night it will turn off everyone permission to send message in an all groups which you added via `{i}addnight`
And Turn On auto at morning
• `{i}addnm`
Add NightMode
To Add Group To Auto Night Mode.
• `{i}remnm`
Remove NightMode
To remove Group From Auto Night Mode
• `{i}listnm`
List NightMode
To Get All List of Groups where NightMode Active.
• `{i}nmtime <close hour> <close min> <open hour> <open min>`
NightMode Time
By Default Its close 00:00 , open 07:00
Use 24hr format
Ex- `nmtime 01 00 06 30`
"""
from . import LOGS
try:
from apscheduler.schedulers.asyncio import AsyncIOScheduler
except ImportError:
LOGS.error("nightmode: 'apscheduler' not Installed!")
AsyncIOScheduler = None
from telethon.tl.functions.messages import EditChatDefaultBannedRightsRequest
from telethon.tl.types import ChatBannedRights
from pyUltroid.dB.base import KeyManager
from . import get_string, udB, ultroid_bot, ultroid_cmd
keym = KeyManager("NIGHT_CHATS", cast=list)
@ultroid_cmd(pattern="nmtime( (.*)|$)")
async def set_time(e):
if not e.pattern_match.group(1).strip():
return await e.eor(get_string("nightm_1"))
try:
ok = e.text.split(maxsplit=1)[1].split()
if len(ok) != 4:
return await e.eor(get_string("nightm_1"))
tm = [int(x) for x in ok]
udB.set_key("NIGHT_TIME", str(tm))
await e.eor(get_string("nightm_2"))
except BaseException:
await e.eor(get_string("nightm_1"))
@ultroid_cmd(pattern="addnm( (.*)|$)")
async def add_grp(e):
if pat := e.pattern_match.group(1).strip():
try:
keym.add((await ultroid_bot.get_entity(pat)).id)
return await e.eor(f"Done, Added {pat} To Night Mode.")
except BaseException:
return await e.eor(get_string("nightm_5"), time=5)
keym.add(e.chat_id)
await e.eor(get_string("nightm_3"))
@ultroid_cmd(pattern="remnm( (.*)|$)")
async def r_em_grp(e):
if pat := e.pattern_match.group(1).strip():
try:
keym.remove((await ultroid_bot.get_entity(pat)).id)
return await e.eor(f"Done, Removed {pat} To Night Mode.")
except BaseException:
return await e.eor(get_string("nightm_5"), time=5)
keym.remove(e.chat_id)
await e.eor(get_string("nightm_4"))
@ultroid_cmd(pattern="listnm$")
async def rem_grp(e):
chats = keym.get()
name = "NightMode Groups Are-:\n\n"
for x in chats:
try:
ok = await ultroid_bot.get_entity(x)
name += f"@{ok.username}" if ok.username else ok.title
except BaseException:
name += str(x)
await e.eor(name)
async def open_grp():
for chat in keym.get():
try:
await ultroid_bot(
EditChatDefaultBannedRightsRequest(
chat,
banned_rights=ChatBannedRights(
until_date=None,
send_messages=False,
send_media=False,
send_stickers=False,
send_gifs=False,
send_games=False,
send_inline=False,
send_polls=False,
),
)
)
await ultroid_bot.send_message(chat, "**NightMode Off**\n\nGroup Opened 🥳.")
except Exception as er:
LOGS.info(er)
async def close_grp():
__, _, h2, m2 = 0, 0, 7, 0
if udB.get_key("NIGHT_TIME"):
_, __, h2, m2 = eval(udB.get_key("NIGHT_TIME"))
for chat in keym.get():
try:
await ultroid_bot(
EditChatDefaultBannedRightsRequest(
chat,
banned_rights=ChatBannedRights(
until_date=None,
send_messages=True,
),
)
)
await ultroid_bot.send_message(
chat, f"**NightMode : Group Closed**\n\nGroup Will Open At `{h2}:{m2}`"
)
except Exception as er:
LOGS.info(er)
if AsyncIOScheduler and keym.get():
try:
h1, m1, h2, m2 = 0, 0, 7, 0
if udB.get_key("NIGHT_TIME"):
h1, m1, h2, m2 = eval(udB.get_key("NIGHT_TIME"))
sch = AsyncIOScheduler()
sch.add_job(close_grp, trigger="cron", hour=h1, minute=m1)
sch.add_job(open_grp, trigger="cron", hour=h2, minute=m2)
sch.start()
except Exception as er:
LOGS.info(er)
|