Files
Ultroid-fork/plugins/database.py
Devesh Pal 90ad5646ff Ultroid v0.5 Updates
Co-authored-by: Amit Sharma <48654350+buddhhu@users.noreply.github.com>
Co-authored-by: Aditya <xditya@ultroid.tech>
Co-authored-by: Kaif <88398455+kaif-00z@users.noreply.github.com>
Co-authored-by: Aditya <me@xditya.me>
Co-authored-by: 1Danish-00 <danish@ultroid.tech>
Co-authored-by: smartman_ru <bblkovo@gmail.com>
2022-03-20 00:57:54 +05:30

95 lines
2.8 KiB
Python

# Ultroid - UserBot
# Copyright (C) 2021-2022 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 -
• **DataBase Commands, do not use if you don't know what it is.**
• `{i}setdb key | value`
Set Value in Database.
e.g :
`{i}setdb hi there`
`{i}setdb hi there | ultroid here`
`{i}setdb --extend variable value` or `{i}setdb -e variable value` to add the value to the exiting values in db.
• `{i}deldb key`
Delete Key from DB.
• `{i}rendb old keyname | new keyname`
Update Key Name
"""
import re
from . import Redis, eor, get_string, udB, ultroid_cmd
@ultroid_cmd(pattern="setdb( (.*)|$)", fullsudo=True)
async def _(ult):
match = ult.pattern_match.group(1).strip()
if not match:
return await ult.eor("Provide key and value to set!")
try:
delim = " " if re.search("[|]", match) is None else " | "
data = match.split(delim, maxsplit=1)
if data[0] in ["--extend", "-e"]:
data = data[1].split(maxsplit=1)
data[1] = str(udB.get_key(data[0])) + " " + data[1]
udB.set_key(data[0], data[1])
redisdata = Redis(data[0])
await ult.eor(
"**DB Key Value Pair Updated\nKey :** `{}`\n**Value :** `{}`".format(
data[0],
redisdata,
),
)
except BaseException:
await ult.eor(get_string("com_7"))
@ultroid_cmd(pattern="deldb( (.*)|$)", fullsudo=True)
async def _(ult):
key = ult.pattern_match.group(1).strip()
if not key:
return await ult.eor("Give me a key name to delete!", time=5)
_ = key.split(maxsplit=1)
try:
if _[0] == "-m":
for key in _[1].split():
k = udB.del_key(key)
key = _[1]
else:
k = udB.del_key(key)
if k == 0:
return await ult.eor("`No Such Key.`")
await ult.eor(f"`Successfully deleted key {key}`")
except BaseException:
await ult.eor(get_string("com_7"))
@ultroid_cmd(pattern="rendb( (.*)|$)", fullsudo=True)
async def _(ult):
match = ult.pattern_match.group(1).strip()
if not match:
return await ult.eor("`Provide Keys name to rename..`")
delim = " " if re.search("[|]", match) is None else " | "
data = match.split(delim)
if Redis(data[0]):
try:
udB.rename(data[0], data[1])
await eor(
ult,
"**DB Key Rename Successful\nOld Key :** `{}`\n**New Key :** `{}`".format(
data[0],
data[1],
),
)
except BaseException:
await ult.eor(get_string("com_7"))
else:
await ult.eor("Key not found")