def wiki(message): args = extract_args(message) if len(args) < 1: edit(message, f'`{get_translation("wrongCommand")}`') return set_lang(SEDEN_LANG) try: summary(args) except DisambiguationError as error: edit(message, get_translation('wikiError', [error])) return except PageError as pageerror: edit(message, get_translation('wikiError2', [pageerror])) return result = summary(args) if len(result) >= 4096: file = open('wiki.txt', 'w+') file.write(result) file.close() reply_doc( message, 'wiki.txt', caption=f'`{get_translation("outputTooLarge")}`', delete_after_send=True, ) edit(message, get_translation('sedenQuery', ['**', '`', args, result])) send_log(get_translation('wikiLog', ['`', args]))
def shippingTrack(message): edit(message, f"`{get_translation('processing')}`") trackId = extract_args(message) comp = parse_cmd(message.text) if not trackId or len(trackId.split(' ')) > 1: edit(message, f"`{get_translation('wrongCommand')}`") return match comp.replace('ç', 'c').replace('ü', 'u'): case 'yurtici': kargo_data = getShipEntity(company='yurtici', trackId=trackId) case 'aras': kargo_data = getShipEntity(company='aras', trackId=trackId) case 'ptt': kargo_data = getShipEntity(company='ptt', trackId=trackId) case 'mng': kargo_data = getShipEntity(company='mng', trackId=trackId) case 'ups': kargo_data = getShipEntity(company='ups', trackId=trackId) case 'surat': kargo_data = getShipEntity(company='surat', trackId=trackId) case 'trendyol': kargo_data = getShipEntity(company='trendyolexpress', trackId=trackId) case 'hepsijet': kargo_data = getShipEntity(company='hepsijet', trackId=trackId) if kargo_data: text = parseShipEntity(kargo_data) edit(message, text, parse=enums.ParseMode.HTML) return edit(message, f"`{get_translation('shippingNoResult')}`")
def disapprovepm(message): try: from sedenecem.sql.pm_permit_sql import dissprove except BaseException: edit(message, f'`{get_translation("nonSqlMode")}`') return if message.reply_to_message: reply = message.reply_to_message replied_user = reply.from_user if replied_user.is_self: edit(message, f'`{get_translation("cannotDisapproveMyself")}`') return aname = replied_user.id name0 = str(replied_user.first_name) uid = replied_user.id else: aname = message.chat if not aname.type == enums.ChatType.PRIVATE: edit(message, f'`{get_translation("pmApproveError")}`') return name0 = aname.first_name uid = aname.id dissprove(uid) edit(message, get_translation('pmDisapprove', [name0, uid, '`'])) send_log(get_translation('pmDisapprove', [name0, uid, '`']))
def set_afk(message): args = extract_args(message) if len(args) > 0: TEMP_SETTINGS['AFK_REASON'] = args edit( message, get_translation('afkStartReason', ['**', '`', TEMP_SETTINGS['AFK_REASON']]), ) else: edit(message, f'**{get_translation("afkStart")}**') send_log(get_translation('afkLog')) TEMP_SETTINGS['IS_AFK'] = True raise StopPropagation
def packinfo(client, message): reply = message.reply_to_message if not reply: edit(message, f'`{get_translation("packinfoError")}`') return if not reply.sticker: edit(message, f'`{get_translation("packinfoError2")}`') return edit(message, f'`{get_translation("processing")}`') get_stickerset = client.send( GetStickerSet(stickerset=InputStickerSetShortName( short_name=reply.sticker.set_name))) pack_emojis = [] for document_sticker in get_stickerset.packs: if document_sticker.emoticon not in pack_emojis: pack_emojis.append(document_sticker.emoticon) out = get_translation('packinfoResult', [ '**', '`', get_stickerset.set.title, get_stickerset.set.short_name, get_stickerset.set.official, get_stickerset.set.archived, get_stickerset.set.animated, get_stickerset.set.count, ' '.join(pack_emojis) ]) edit(message, out)
def tts(message): textx = message.reply_to_message ttsx = extract_args(message) if ttsx: pass elif textx: ttsx = textx.text else: edit(message, f'`{get_translation("ttsUsage")}`') return try: gTTS(ttsx, lang=TTS_LANG) except AssertionError: edit(message, f'`{get_translation("ttsBlank")}`') return except ValueError: edit(message, f'`{get_translation("ttsNoSupport")}`') return except RuntimeError: edit(message, f'{get_translation("ttsError")}') return tts = gTTS(ttsx, lang=TTS_LANG) tts.save('h.mp3') with open('h.mp3', 'rb') as audio: linelist = list(audio) linecount = len(linelist) if linecount == 1: tts = gTTS(ttsx, lang=TTS_LANG) tts.save('h.mp3') with open('h.mp3', 'r'): reply_voice(message, 'h.mp3', delete_orig=True) remove('h.mp3') send_log(get_translation('ttsLog'))
def lang(message): arr = extract_args(message).split(' ', 1) if len(arr) != 2: edit(message, f'`{get_translation("wrongCommand")}`') return util = arr[0].lower() arg = arr[1].lower() if util == 'trt': scraper = get_translation('scraper1') global TRT_LANG if arg in LANGUAGES: TRT_LANG = arg LANG = LANGUAGES[arg] else: edit(message, get_translation('scraperTrt', ['`', LANGUAGES])) return elif util == 'tts': scraper = get_translation('scraper2') global TTS_LANG if arg in tts_langs(): TTS_LANG = arg LANG = tts_langs()[arg] else: edit(message, get_translation('scraperTts', ['`', tts_langs()])) return edit(message, get_translation( 'scraperResult', ['`', scraper, LANG.title()])) send_log(get_translation('scraperLog', ['`', scraper, LANG.title()]))
def name(client, message): newname = extract_args(message) if ' ' not in newname: firstname = newname lastname = '' else: namesplit = newname.split(' ', 1) firstname = namesplit[0] lastname = namesplit[1] client.send( functions.account.UpdateProfile(first_name=firstname, last_name=lastname)) edit(message, NAME_OK)
def clap(message): textx = message.reply_to_message clap = extract_args(message) if clap: pass elif textx: clap = textx.text else: edit(message, f'`{get_translation("clapUsage")}`') return reply_text = "👏 " reply_text += clap.replace(" ", " 👏 ") reply_text += " 👏" edit(message, reply_text)
def dyno_logs(message): if not HEROKU_KEY: edit(message, f"`{get_translation('notHeroku')}`") return edit(message, f"`{get_translation('processing')}`") heroku = from_key(HEROKU_KEY) heroku_app = None heroku_applications = heroku.apps() if not HEROKU_APPNAME: edit( message, f'`{get_translation("updateHerokuVariables", ["HEROKU_APPNAME "])}`' ) for app in heroku_applications: if app.name == HEROKU_APPNAME: heroku_app = app break if heroku_app is None: edit( message, f'`{get_translation("updateHerokuVariables", ["HEROKU_APPNAME "])}`' ) return filename = 'seden_heroku_log.txt' with open(filename, 'w+') as log: log.write(heroku_app.get_log()) reply_doc(message, filename, delete_after_send=True, delete_orig=True)
def iqless(message): edit( message, 'DÜÜÜT DÜÜÜTT AÇ YOLU AÇÇ HADİ ASLAN PARÇASI YOLU AÇ \n' 'HADİ BAK ENGELLİ BEKLİYO BURDA HADİ DÜÜÜTTT ♿️ BAK \n' 'SİNİRLENDİ ARKADAŞ HADİ YOLU AÇ HADİİ DÜÜÜT DÜÜTT BİİİPP \n' 'HADİ BE HIZLI OLL DÜÜÜTT BİİİPPP ♿️♿️ BAK HIZLANDI ENGELLİ \n' 'KARDEŞİMİZ SERİ KÖZ GETİR SERİ DÜÜÜTT DÜÜÜT DÜÜÜÜTTTTT \n' 'BİİİİPPP BİİİİİPPP DÜÜÜTTT ♿️♿️♿️♿️ BAK ARTIYO SAYILARI \n' 'AÇTIN MI YOLU AÇMADIN PÜÜÜÜ REZİİİLL DÜÜÜÜTTT ♿️♿️♿️ \n' '♿️♿️♿️ BAK KALABALIKLASTI BAK DELI GELIYOR DELIRDI DELI \n' 'AC YOLU DUTDUTDURURURUDUTTT♿️♿️♿️♿️♿️♿️♿️♿️♿️ \n' '♿️♿️♿️♿️♿️KAFAYI YEDI BUNLAR AC LAAAAN YOLU', )
def quotly(client, message): reply = message.reply_to_message if reply and (reply.text or reply.photo or reply.sticker): edit(message, f'`{get_translation("makeQuote")}`') else: edit(message, f'`{get_translation("replyMessage")}`') return sleep(1) chat = 'QuotLyBot' with PyroConversation(client, chat) as conv: response = None try: conv.forward_msg(reply) response = conv.recv_msg() except YouBlockedUser: edit(message, get_translation('unblockChat', ['**', '`', chat])) return except Exception: if not response: edit(message, f'`{get_translation("answerFromBot")}`') return response.forward(message.chat.id) message.delete()
def rbg(message): if not RBG_APIKEY: return edit( message, get_translation('rbgApiMissing', ['**', 'Remove.BG', '`']), preview=False, ) reply = message.reply_to_message if reply and (reply.photo or (reply.document and 'image' in reply.document.mime_type)): edit(message, f'`{get_translation("processing")}`') else: edit(message, f'`{get_translation("rbgUsage")}`') return IMG_PATH = f'{DOWNLOAD_DIRECTORY}/image.png' if path.exists(IMG_PATH): remove(IMG_PATH) download_media_wc(reply, IMG_PATH) edit(message, f'`{get_translation("rbgProcessing")}`') try: remove_bg = RemoveBg(RBG_APIKEY, get_translation('rbgLog')) remove_bg.remove_background_from_img_file(IMG_PATH) rbg_img = f'{IMG_PATH}_no_bg.png' reply_doc(reply, rbg_img, caption=get_translation('rbgResult'), delete_after_send=True) message.delete() except Exception as e: return edit(message, get_translation('banError', ['`', '**', e]))
def sanisveamed(message): edit( message, "⠀⠀`.-----. .-----. `\n" r"` / '..' \ `\n" "`| | `\n" "`| Ahmet | `\n" r"` \ Saniş / `\n" r"` \ / `\n" r"` '\ /' `\n" r"` '\ /' `\n" r"` '\ /' `\n" r"` '\/' `\n" " [Saniş](tg://user?id=623847224) 💘 [NaytSeyd](tg://user?id=551728027)" )
def getsticker(message): reply = message.reply_to_message if not reply or not reply.sticker: edit(message, f'`{get_translation("replySticker")}`') return photo = download_media_wc(reply) reply_doc(message, photo, caption=f'**Sticker ID:** `{reply.sticker.file_id}' f'`\n**Emoji**: `{reply.sticker.emoji}`', delete_after_send=True, delete_orig=True)
def wiki(message): match = extract_args(message) if len(match) < 1: edit(message, f'`{get_translation("wrongCommand")}`') return set_lang(SEDEN_LANG) match = extract_args(message) try: summary(match) except DisambiguationError as error: edit(message, get_translation('wikiError', [error])) return except PageError as pageerror: edit(message, get_translation('wikiError2', [pageerror])) return result = summary(match) if len(result) >= 4096: file = open('wiki.txt', 'w+') file.write(result) file.close() reply_doc(message, 'wiki.txt', caption=f'`{get_translation("outputTooLarge")}`') if path.exists('wiki.txt'): remove('wiki.txt') return edit(message, get_translation('sedenQuery', ['**', '`', match, result])) send_log(get_translation('wikiLog', ['`', match]))
def rbg(client, message): if not RBG_APIKEY: edit(message, get_translation("rbgApiMissing", ['**', 'Remove.BG', '`']), preview=False) return reply = message.reply_to_message if reply and (reply.photo or (reply.document and 'image' in reply.document.mime_typereply.document)): edit(message, f'`{get_translation("processing")}`') else: edit(message, f'`{get_translation("rbgUsage")}`') return IMG_PATH = f'{DOWNLOAD_DIRECTORY}/image.png' if path.exists(IMG_PATH): remove(IMG_PATH) client.download_media(message=reply, file_name=IMG_PATH) edit(message, f'`{get_translation("rbgProcessing")}`') try: remove_bg = RemoveBg(RBG_APIKEY, f'{get_translation("rbgLog")}') remove_bg.remove_background_from_img_file(IMG_PATH) rbg_img = IMG_PATH + '_no_bg.png' reply_doc(reply, rbg_img, caption=f'{get_translation("rbgResult")}') message.delete() except Exception as e: raise e
def kick_user(message): reply = message.reply_to_message edit(message, f'`{get_translation("kickProcess")}`') find_user = extract_user(message) if len(find_user) < 1: return edit(message, f'`{get_translation("banFailUser")}`') reason = get_reason(message) try: replied_user = reply.from_user if replied_user.is_self: return edit(message, f'`{get_translation("cannotKickMyself")}`') except BaseException: pass for user in find_user: if user.id in BRAIN: return edit( message, get_translation('brainError', ['`', '**', user.first_name, user.id]), ) try: chat = message.chat chat.ban_member(user.id) chat.unban_member(user.id) edit( message, get_translation( 'kickResult', [ '**', user.first_name, user.id, '`', reason if reason else '' ], ), ) sleep(1) send_log( get_translation( 'kickLog', [ user.first_name, user.id, chat.title, '`', chat.id, reason if reason else '', ], )) except Exception as e: edit(message, get_translation('banError', ['`', '**', e])) return
def zombie_accounts(client, message): args = extract_args(message).lower() chat_id = message.chat.id count = 0 msg = f'`{get_translation("zombiesNoAccount")}`' if args != 'clean': edit(message, f'`{get_translation("zombiesFind")}`') for i in client.iter_chat_members(chat_id): if i.user.is_deleted: count += 1 sleep(1) if count > 0: msg = get_translation('zombiesFound', ['**', '`', count]) return edit(message, msg) if not is_admin(message): edit(message, f'`{get_translation("adminUsage")}`') return message.continue_propagation() edit(message, f'`{get_translation("zombiesRemove")}`') count = 0 users = 0 for i in client.iter_chat_members(chat_id): if i.user.is_deleted: try: client.kick_chat_member(chat_id, i.user.id) except UserAdminInvalid: count -= 1 users += 1 except BaseException: return edit(message, f'`{get_translation("zombiesError")}`') client.unban_chat_member(chat_id, i.user.id) count += 1 if count > 0: msg = get_translation('zombiesResult', ['**', '`', count]) if users > 0: msg = get_translation('zombiesResult2', ['**', '`', count, users]) edit(message, msg) sleep(2) message.delete() send_log( get_translation('zombiesLog', ['**', '`', count, message.chat.title, chat_id]) )
def amogus(message): args = extract_args(message) reply = message.reply_to_message if args: pass elif reply: if not reply.text: return edit(message, f'`{get_translation("wrongCommand")}`') args = reply.text else: edit(message, f'`{get_translation("wrongCommand")}`') return edit(message, f"`{get_translation('processing')}`") arr = randint(1, 12) fontsize = 100 FONT_FILE = 'sedenecem/fonts/OpenSans.ttf' # https://github.com/KeyZenD/AmongUs url = 'https://raw.githubusercontent.com/KeyZenD/AmongUs/master/' font = ImageFont.truetype(FONT_FILE, size=int(fontsize)) imposter = Image.open(BytesIO(get(f'{url}{arr}.png').content)) text_ = '\n'.join(['\n'.join(wrap(part, 30)) for part in args.split('\n')]) w, h = ImageDraw.Draw(Image.new('RGB', (1, 1))).multiline_textsize(text_, font, stroke_width=2) text = Image.new('RGBA', (w + 40, h + 40)) ImageDraw.Draw(text).multiline_text((15, 15), text_, '#FFF', font, stroke_width=2, stroke_fill='#000') w = imposter.width + text.width + 30 h = max(imposter.height, text.height) image = Image.new('RGBA', (w, h)) image.paste(imposter, (0, h - imposter.height), imposter) image.paste(text, (w - text.width, 0), text) image.thumbnail((512, 512)) output = BytesIO() output.name = 'sus.webp' image.save(output, 'WebP') output.seek(0) reply_sticker(reply or message, output) message.delete()
def call_notes(message): try: from sedenbot.modules.notes import get_note from sedenbot.modules.snips import get_snip except BaseException: edit(message, f'`{get_translation("nonSqlMode")}`') return args = extract_args(message) if args.startswith('#'): get_note(message) elif args.startswith('$'): get_snip(message) else: edit(message, f"`{get_translation('wrongCommand')}`")
def stretch(message): textx = message.reply_to_message stretch = extract_args(message) if len(stretch) > 0: pass elif textx: stretch = textx.text else: edit(message, f'`{get_translation("strUsage")}`') return count = randint(3, 10) reply_text = sub(r'([aeiouAEIOUaeiouAEIOUаеиоуюяыэё])', (r'\1' * count), stretch) edit(message, reply_text)
def notes(message): try: from sedenecem.sql.notes_sql import get_notes except AttributeError: edit(message, f'`{get_translation("nonSqlMode")}`') return reply = f'`{get_translation("noNote")}`' notesx = get_notes(message.chat.id) for note in notesx: if reply == f'`{get_translation("noNote")}`': reply = f'{get_translation("notesChats")}\n' reply += '`#{}`\n'.format(note.keyword) else: reply += '`#{}`\n'.format(note.keyword) edit(message, reply)
def filters(message): try: from sedenecem.sql.filters_sql import get_filters except BaseException: edit(message, f'`{get_translation("nonSqlMode")}`') return transact = f'`{get_translation("noFilter")}`' filters = get_filters(message.chat.id) for filt in filters: if transact == f'`{get_translation("noFilter")}`': transact = f'{get_translation("filterChats")}\n' transact += '`{}`\n'.format(filt.keyword) else: transact += '`{}`\n'.format(filt.keyword) edit(message, transact)
def sns(message): animation_interval = 0.5 animation_ttl = range(0, 7) edit(message, "Saniş ❤️") animation_chars = [ "S_", "SA_", "SAN_", "SANİ_", "SANİŞ_", "SANİŞ❤_", "[Saniş](tg://user?id=623847224) 💘 [NaytSeyd](tg://user?id=551728027)", ] for i in animation_ttl: sleep(animation_interval) edit(message, animation_chars[i % len(animation_chars)])
def add_exist(conv): try: send_recv(conv, '/addsticker') except Exception as e: raise e status = send_recv(conv, pname) if limit in status.text: edit(message, f'`{get_translation("stickerPackFull", [pack])}`') return False send_recv(conv, media, doc=True) send_recv(conv, emoji) send_recv(conv, '/done') return True
def getsticker(message): reply = message.reply_to_message if not reply or not reply.sticker: edit(message, f'`{get_translation("replySticker")}`') return photo = download_media_wc(reply) reply_doc( reply, photo, caption= f'**Sticker ID:** `{reply.sticker.file_id}`\n**Emoji**: `{reply.sticker.emoji}`' ) message.delete() remove(photo)
def pin_message(client, message): reply = message.reply_to_message if not reply: return edit(message, f'`{get_translation("wrongCommand")}`') try: chat_id = message.chat.id message_id = reply.message_id client.pin_chat_message(chat_id, message_id) edit(message, f'`{get_translation("pinResult")}`') sleep(1) send_log(get_translation('pinLog', [message.chat.title, '`', chat_id])) except Exception as e: edit(message, get_translation('banError', ['`', '**', e])) return
def botver(message): if which('git'): from subprocess import PIPE, Popen degisiklik = Popen(['git', 'rev-list', '--all', '--count'], stdout=PIPE, stderr=PIPE, universal_newlines=True) sonuc, _ = degisiklik.communicate() edit(message, get_translation( 'sedenShowBotVersion', ['**', '`', 'Seden UserBot', CHANNEL, BOT_VERSION, sonuc]), preview=False) else: edit(message, f'`{get_translation("sedenGitNotFound")}`')
def magisk(message): magisk_dict = { "Stable": "https://raw.githubusercontent.com/topjohnwu/magisk_files/master/stable.json", "Beta": "https://raw.githubusercontent.com/topjohnwu/magisk_files/master/beta.json", "Canary (Debug)": "https://raw.githubusercontent.com/topjohnwu/magisk_files/canary/debug.json" } releases = f'`{get_translation("magiskReleases")}`\n' for name, release_url in magisk_dict.items(): data = get(release_url).json() releases += f'`{name}:` [ZIP v{data["magisk"]["version"]}]({data["magisk"]["link"]}) | ' \ f'[APK v{data["app"]["version"]}]({data["app"]["link"]}) | ' \ f'[Uninstaller]({data["uninstaller"]["link"]})\n' edit(message, releases, preview=False)