async def webss(message: Message): if Config.GOOGLE_CHROME_BIN is None: await message.err("need to install Google Chrome. Module Stopping") return link_match = match(r'\bhttps?://.*\.\S+', message.input_str) if not link_match: await message.err("`I need a valid link to take screenshots from.`") return link = link_match.group() await message.edit("`Processing ...`") chrome_options = webdriver.ChromeOptions() chrome_options.binary_location = Config.GOOGLE_CHROME_BIN chrome_options.add_argument('--ignore-certificate-errors') chrome_options.add_argument("--test-type") chrome_options.add_argument("--headless") chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument("--no-sandbox") chrome_options.add_argument('--disable-gpu') driver = webdriver.Chrome(chrome_options=chrome_options) driver.get(link) height = driver.execute_script( "return Math.max(document.body.scrollHeight, document.body.offsetHeight, " "document.documentElement.clientHeight, document.documentElement.scrollHeight, " "document.documentElement.offsetHeight);") width = driver.execute_script( "return Math.max(document.body.scrollWidth, document.body.offsetWidth, " "document.documentElement.clientWidth, document.documentElement.scrollWidth, " "document.documentElement.offsetWidth);") driver.set_window_size(width + 125, height + 125) wait_for = height / 1000 await message.edit(f"`Generating screenshot of the page...`" f"\n`Height of page = {height}px`" f"\n`Width of page = {width}px`" f"\n`Waiting ({int(wait_for)}s) for the page to load.`") await asyncio.sleep(int(wait_for)) im_png = driver.get_screenshot_as_png() driver.close() message_id = message.message_id if message.reply_to_message: message_id = message.reply_to_message.message_id file_path = os.path.join(Config.DOWN_PATH, "webss.png") async with aiofiles.open(file_path, 'wb') as out_file: await out_file.write(im_png) await asyncio.gather( message.delete(), userge.send_document(chat_id=message.chat.id, document=file_path, caption=link, reply_to_message_id=message_id) ) os.remove(file_path) driver.quit()
async def carbon_(message: Message): if Config.GOOGLE_CHROME_BIN is None: replied = message.reply_to_message if replied: text = replied.text else: text = message.text if not text: await message.err("need input text!") return await message.edit("`Sedang Mengcarbon Sayang...`") async with userge.conversation("CarbonNowShBot", timeout=30) as conv: try: await conv.send_message(text) except YouBlockedUser: await message.edit('first **unblock** @CarbonNowShBot') return response = await conv.get_response(mark_read=True) while not response.reply_markup: response = await conv.get_response(mark_read=True) await response.click(x=random.randint(0, 2), y=random.randint(0, 8)) response = await conv.get_response(mark_read=True) while not response.media: response = await conv.get_response(mark_read=True) caption = "\n".join(response.caption.split("\n")[0:2]) file_id = response.document.file_id await asyncio.gather( message.delete(), userge.send_document(chat_id=message.chat.id, document=file_id, caption='`' + caption + '`', reply_to_message_id=replied.message_id if replied else None)) else: input_str = message.filtered_input_str replied = message.reply_to_message theme = 'seti' lang = 'auto' red = message.flags.get('r', random.randint(0, 255)) green = message.flags.get('g', random.randint(0, 255)) blue = message.flags.get('b', random.randint(0, 255)) alpha = message.flags.get('a', random.randint(0, 100)) bg_ = f"rgba({red}, {green}, {blue}, {alpha})" if replied and (replied.text or (replied.document and 'text' in replied.document.mime_type)): message_id = replied.message_id if replied.document: await message.edit("`Downloading File...`") path_ = await message.client.download_media( replied, file_name=Config.DOWN_PATH) async with aiofiles.open(path_) as file_: code = await file_.read() os.remove(path_) else: code = replied.text if input_str: if '|' in input_str: args = input_str.split('|') if len(args) == 2: theme = args[0].strip() lang = args[1].strip() else: theme = input_str elif input_str: message_id = message.message_id if '|' in input_str: args = input_str.split('|') if len(args) == 3: theme = args[0].strip() lang = args[1].strip() code = args[2].strip() elif len(args) == 2: theme = args[0].strip() code = args[1].strip() else: code = input_str else: await message.err("Masukan Text Dulu Dong Sayang !") return await message.edit( "`Oke Perintah Di Terima Sayang , Aku akan Ngeproses Carbon Mu Sayang...`" ) code = quote_plus(code) await message.edit("`Proses Sudah 20% Sayang`") carbon_path = os.path.join(Config.DOWN_PATH, "carbon.png") if os.path.isfile(carbon_path): os.remove(carbon_path) url = CARBON.format(theme=theme, lang=lang, code=code, bg=bg_) if len(url) > 2590: await message.err("input too large!") return chrome_options = webdriver.ChromeOptions() chrome_options.binary_location = Config.GOOGLE_CHROME_BIN chrome_options.add_argument("--headless") 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': Config.DOWN_PATH} chrome_options.add_experimental_option('prefs', prefs) driver = webdriver.Chrome(chrome_options=chrome_options) driver.get(url) await message.edit("`Proses Sudah 40% Sayang`") driver.command_executor._commands["send_command"] = ( # pylint: disable=protected-access "POST", '/session/$sessionId/chromium/send_command') params = { 'cmd': 'Page.setDownloadBehavior', 'params': { 'behavior': 'allow', 'downloadPath': Config.DOWN_PATH } } driver.execute("send_command", params) # driver.find_element_by_xpath("//button[contains(text(),'Export')]").click() driver.find_element_by_id("export-menu").click() await asyncio.sleep(1) await message.edit("`Proses Sudah 60% Sayang`") driver.find_element_by_xpath("//button[contains(text(),'4x')]").click() await asyncio.sleep(1) driver.find_element_by_xpath( "//button[contains(text(),'PNG')]").click() await message.edit("`Proses Sudah 80% Sayang`") while not os.path.isfile(carbon_path): await asyncio.sleep(0.5) await message.edit("`Proses Sudah 100% Sayang`") await message.edit("`Mengupload Hasil Carbon Mu Sayang!...`") await asyncio.gather( message.delete(), message.client.send_photo(chat_id=message.chat.id, photo=carbon_path, reply_to_message_id=message_id)) os.remove(carbon_path) driver.quit()
async def carbon_(message: Message): if Config.GOOGLE_CHROME_BIN is None: replied = message.reply_to_message if replied: text = replied.text else: text = message.text if not text: await message.err("need input text!") return await message.edit("`Creating a Carbon...`") async with userge.conversation("CarbonNowShBot", timeout=30) as conv: try: await conv.send_message(text) except YouBlockedUser: await message.edit("first **unblock** @CarbonNowShBot") return response = await conv.get_response(mark_read=True) while not response.reply_markup: response = await conv.get_response(mark_read=True) await response.click(x=random.randint(0, 2), y=random.randint(0, 8)) response = await conv.get_response(mark_read=True) while not response.media: response = await conv.get_response(mark_read=True) caption = "\n".join(response.caption.split("\n")[0:2]) file_id = response.document.file_id await asyncio.gather( message.delete(), userge.send_document( chat_id=message.chat.id, document=file_id, caption="`" + caption + "`", reply_to_message_id=replied.message_id if replied else None, ), ) else: input_str = message.filtered_input_str replied = message.reply_to_message theme = "seti" lang = "auto" red = message.flags.get("r", random.randint(0, 255)) green = message.flags.get("g", random.randint(0, 255)) blue = message.flags.get("b", random.randint(0, 255)) alpha = message.flags.get("a", random.randint(0, 100)) bg_ = f"rgba({red}, {green}, {blue}, {alpha})" if replied and ( replied.text or (replied.document and "text" in replied.document.mime_type) ): message_id = replied.message_id if replied.document: await message.edit("`Downloading File...`") path_ = await message.client.download_media( replied, file_name=Config.DOWN_PATH ) async with aiofiles.open(path_) as file_: code = await file_.read() os.remove(path_) else: code = replied.text if input_str: if "|" in input_str: args = input_str.split("|") if len(args) == 2: theme = args[0].strip() lang = args[1].strip() else: theme = input_str elif input_str: message_id = message.message_id if "|" in input_str: args = input_str.split("|") if len(args) == 3: theme = args[0].strip() lang = args[1].strip() code = args[2].strip() elif len(args) == 2: theme = args[0].strip() code = args[1].strip() else: code = input_str else: await message.err("need input text!") return await message.edit("`Creating a Carbon...`") code = quote_plus(code) await message.edit("`Processing... 20%`") carbon_path = os.path.join(Config.DOWN_PATH, "carbon.png") if os.path.isfile(carbon_path): os.remove(carbon_path) url = CARBON.format(theme=theme, lang=lang, code=code, bg=bg_) if len(url) > 6590: await message.err("input too large!") return chrome_options = webdriver.ChromeOptions() chrome_options.binary_location = Config.GOOGLE_CHROME_BIN chrome_options.add_argument("--headless") 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": Config.DOWN_PATH} chrome_options.add_experimental_option("prefs", prefs) driver = webdriver.Chrome(chrome_options=chrome_options) driver.get(url) await message.edit("`Processing... 40%`") driver.command_executor._commands[ "send_command" ] = ( # pylint: disable=protected-access "POST", "/session/$sessionId/chromium/send_command", ) params = { "cmd": "Page.setDownloadBehavior", "params": {"behavior": "allow", "downloadPath": Config.DOWN_PATH}, } driver.execute("send_command", params) # driver.find_element_by_xpath("//button[contains(text(),'Export')]").click() driver.find_element_by_id("export-menu").click() await asyncio.sleep(1) await message.edit("`Processing... 60%`") driver.find_element_by_xpath("//button[contains(text(),'4x')]").click() await asyncio.sleep(1) driver.find_element_by_id("export-png").click() await message.edit("`Processing... 80%`") while not os.path.isfile(carbon_path): await asyncio.sleep(0.5) await message.edit("`Processing... 100%`") await message.edit("`Uploading Carbon...`") await asyncio.gather( message.delete(), message.client.send_document( chat_id=message.chat.id, document=carbon_path, reply_to_message_id=message_id, ), ) os.remove(carbon_path) driver.quit()