def kang(bot: Bot, update: Update): msg = update.effective_message user = update.effective_user if msg.reply_to_message and msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id kang_file = bot.get_file(file_id) kang_file.download('kangsticker.png') hash = hashlib.sha1(bytearray(user.id)).hexdigest() packname = "a" + hash[:20] + "_by_"+bot.username if msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text("Sticker successfully added to [pack](t.me/addstickers/%s)" % packname, parse_mode=ParseMode.MARKDOWN) except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('kangsticker.png', 'rb'), sticker_emoji, bot) print(e) os.remove("kangsticker.png") else: msg.reply_text("Please reply to a sticker for me to kang it.")
def insert_sticker_in_pack(bot: Bot, msg: Message, user_id: int, pack_name: str, emoji: str): sticker_id = msg.reply_to_message.sticker.file_id img_path = IMG_DIR / f'{IMG_PREFIX}{user_id}.jpg' try: sticker_file = bot.get_file(sticker_id) sticker_file.download(custom_path=str(img_path)) # resize and save as png img_path = sticker_from_image(img_path) with open(img_path, 'rb') as png_sticker: bot.add_sticker_to_set(user_id=user_id, name=pack_name, png_sticker=png_sticker, emojis=emoji) sticker = bot.get_sticker_set(pack_name).stickers[-1] msg.reply_sticker(sticker) except Exception as exc: if isinstance(exc, telegram.error.BadRequest): exception_msg = exc.message.lower() if exception_msg in responses.TELEGRAM_ERROR_CODES: msg.reply_text(responses.TELEGRAM_ERROR_CODES[exception_msg]) return True logger.error( "Exception inserting sticker in pack. User id %d Pack %s", user_id, pack_name, ) logger.error(exc) return False return True
def upload_sticker(bot: telegram.Bot, sticker_png: BinaryIO, stickerset_template: str, stickerset_title_template: str) -> str: sticker_file_id = bot.upload_sticker_file(owner_id, sticker_png).file_id offset = 0 while True: offset += 1 stickerset_name = stickerset_template.format(offset) try: bot.add_sticker_to_set(owner_id, stickerset_name, sticker_file_id, STICKER_EMOJIS) break except telegram.error.BadRequest as e: if e.message in [ 'Stickerpack_stickers_too_much', 'Stickers_too_much' ]: continue # Try to find next stickerset, maybe it has room for you :) elif e.message == 'Stickerset_invalid': # No stickerset, create it! stickerset_title = stickerset_title_template.format(offset) bot.create_new_sticker_set(owner_id, stickerset_name, stickerset_title, sticker_file_id, STICKER_EMOJIS) bot.send_message( curators_chat_id, f"Nuevo paquete de stickers: t.me/addstickers/{stickerset_name}" ) break else: raise return sticker_file_id
def kang(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user if msg.reply_to_message and msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id kang_file = bot.get_file(file_id) kang_file.download('kangsticker.png') hash = hashlib.sha1(bytearray(user.id)).hexdigest() packname = "a" + hash[:20] + "_by_" + bot.username if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) os.remove("kangsticker.png") msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname, parse_mode=ParseMode.MARKDOWN) except TelegramError as e: if e.message == "Stickerset_invalid": msg.reply_text("Use /makepack to create a pack first.") elif e.message == "Sticker_png_dimensions": msg.reply_text("Invalid sticker dimensions.") elif e.message == "Invalid sticker emojis": msg.reply_text("Not a valid emoji.") print(e) else: msg.reply_text("Please reply to a sticker for me to kang it.")
def add_text(bot: Bot, msg: Message, user_id: int, pack_name: str, emoji: str): forward = msg.reply_to_message.forward_from if forward is not None: username = forward.first_name other_user_id = forward.id msg_time = msg.reply_to_message.forward_date.strftime('%H:%M') else: username = msg.reply_to_message.from_user.first_name other_user_id = msg.reply_to_message.from_user.id msg_time = msg.reply_to_message.date.strftime('%H:%M') photos = bot.get_user_profile_photos(other_user_id, limit=1).photos avatar_path = '' try: photo = photos[0][0] avatar_path = IMG_DIR / f'{AVATAR_PREFIX}{other_user_id}.jpg' bot.get_file(photo.file_id).download(custom_path=avatar_path) except Exception: msg.reply_text(responses.ERROR_DOWNLOAD_PHOTO) avatar_path = '' text = msg.reply_to_message.text # save as png img_path = sticker_from_text(user_id, username, text, avatar_path, msg_time) try: with open(img_path, 'rb') as png_sticker: bot.add_sticker_to_set(user_id=user_id, name=pack_name, png_sticker=png_sticker, emojis=emoji) sticker = bot.get_sticker_set(pack_name).stickers[-1] msg.reply_sticker(sticker) except Exception as exc: if isinstance(exc, telegram.error.BadRequest): exception_msg = exc.message.lower() if exception_msg in responses.TELEGRAM_ERROR_CODES: msg.reply_text(responses.TELEGRAM_ERROR_CODES[exception_msg]) return True logger.error( "Exception on add_text. User %s (id %d) Pack %s", username, user_id, pack_name, ) logger.error(exc) return False finally: if os.path.exists(img_path): os.remove(img_path) if os.path.exists(avatar_path): os.remove(avatar_path) return True
def add_document(bot: Bot, msg: Message, user_id: int, pack_name: str, emoji: str, replied: bool): if replied: doc = msg.reply_to_message.document else: doc = msg.document try: bot.add_sticker_to_set( user_id=user_id, name=pack_name, png_sticker=doc.file_id, emojis=emoji ) sticker = bot.get_sticker_set(pack_name).stickers[-1] msg.reply_sticker(sticker) except Exception: msg.reply_text(responses.INVALID_DOC) return False return True
def add_photo(bot: Bot, msg: Message, user_id: int, pack_name: str, emoji: str, replied: bool): if replied: photo = msg.reply_to_message.photo[-1] else: photo = msg.photo[-1] img_path = IMG_DIR / f'{IMG_PREFIX}{user_id}.jpg' try: bot.get_file(photo.file_id).download(custom_path=img_path) # resize and save as png img_path = sticker_from_image(img_path) with open(str(img_path), 'rb') as png_sticker: bot.add_sticker_to_set( user_id=user_id, name=pack_name, png_sticker=png_sticker, emojis=emoji ) sticker = bot.get_sticker_set(pack_name).stickers[-1] msg.reply_sticker(sticker) except Exception as e: return False return True
def add_document(bot: Bot, msg: Message, user_id: int, pack_name: str, emoji: str, replied: bool): if replied: doc = msg.reply_to_message.document else: doc = msg.document try: bot.add_sticker_to_set(user_id=user_id, name=pack_name, png_sticker=doc.file_id, emojis=emoji) sticker = bot.get_sticker_set(pack_name).stickers[-1] msg.reply_sticker(sticker) except telegram.error.BadRequest as exc: exception_msg = exc.message.lower() if exception_msg in responses.TELEGRAM_ERROR_CODES: msg.reply_text(responses.TELEGRAM_ERROR_CODES[exception_msg]) except Exception: msg.reply_text(responses.INVALID_DOC) return False return True
def insert_sticker_in_pack(bot: Bot, msg: Message, user_id: int, pack_name: str, emoji: str): sticker_id = msg.reply_to_message.sticker.file_id img_path = IMG_DIR / f'{IMG_PREFIX}{user_id}.jpg' try: sticker_file = bot.get_file(sticker_id) sticker_file.download(custom_path=str(img_path)) # resize and save as png img_path = sticker_from_image(img_path) with open(img_path, 'rb') as png_sticker: bot.add_sticker_to_set( user_id=user_id, name=pack_name, png_sticker=png_sticker, emojis=emoji ) sticker = bot.get_sticker_set(pack_name).stickers[-1] msg.reply_sticker(sticker) except Exception as exc: logger.error( "Exception inserting sticker in pack. User id %d Pack %s", user_id, pack_name, ) logger.error(exc) return False return True
def steal(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user packnum = 0 packname = "a" + str(user.id) + "_by_" + bot.username packname_found = 0 max_stickers = 120 while packname_found == 0: try: stickerset = bot.get_sticker_set(packname) if len(stickerset.stickers) >= max_stickers: packnum += 1 packname = "a" + str(packnum) + "_" + str( user.id) + "_by_" + bot.username else: packname_found = 1 except TelegramError as e: if e.message == "Stickerset_invalid": packname_found = 1 stolensticker = "stolensticker.png" if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id else: msg.reply_text("Sim, eu não posso roubar isso.") stolen_file = bot.get_file(file_id) stolen_file.download('stolensticker.png') if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: im = Image.open(stolensticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) if not msg.reply_to_message.sticker: im.save(stolensticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( f"Sticker adicionado com sucesso a o [pack](t.me/addstickers/{packname})" + f"\nEmoji: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("Eu so posso kangar imagens.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('stolensticker.png', 'rb'), sticker_emoji, bot, packname, packnum) elif e.message == "Sticker_png_dimensions": im.save(stolensticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( f"Sticker adicionado com sucesso a o [pack](t.me/addstickers/{packname})" + f"\nEmoji: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached.") elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text( "Sticker adicionado com sucesso a o [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, stolensticker) im = Image.open(stolensticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(stolensticker, "PNG") msg.reply_photo(photo=open('stolensticker.png', 'rb')) bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( f"Sticker adicionado com sucesso a o [pack](t.me/addstickers/{packname})" + f"\nEmoji is: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("Eu só posso roubar imagens, cara.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('stolensticker.png', 'rb'), sticker_emoji, bot, packname, packnum) elif e.message == "Sticker_png_dimensions": im.save(stolensticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker adicionado com sucesso a o [pack](t.me/addstickers/%s)" % packname + "\n" + "Emoji:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached.") elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text( "Sticker adicionado com sucesso a o [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) print(e) else: packs = "Por favor, responda a um adesivo ou imagem para roubá-lo ao seu pacote!\nOh a propósito, aqui estão seus pacotes:\n" if packnum > 0: firstpackname = "a" + str(user.id) + "_by_" + bot.username for i in range(0, packnum + 1): if i == 0: packs += f"[pack](t.me/addstickers/{firstpackname})\n" else: packs += f"[pack{i}](t.me/addstickers/{packname})\n" else: packs += f"[pack](t.me/addstickers/{packname})" msg.reply_text(packs, parse_mode=ParseMode.MARKDOWN) if os.path.isfile("stolensticker.png"): os.remove("stolensticker.png")
def steal(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user packnum = 0 packname = "a" + str(user.id) + "_by_" + bot.username packname_found = 0 max_stickers = 120 while packname_found == 0: try: stickerset = bot.get_sticker_set(packname) if len(stickerset.stickers) >= max_stickers: packnum += 1 packname = "a" + str(packnum) + "_" + str( user.id) + "_by_" + bot.username else: packname_found = 1 except TelegramError as e: if e.message == "Stickerset_invalid": packname_found = 1 stolensticker = "stolensticker.png" if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id else: msg.reply_text("Yea, I can't steal that.") stolen_file = bot.get_file(file_id) stolen_file.download('stolensticker.png') if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "😎" try: im = Image.open(stolensticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) if not msg.reply_to_message.sticker: im.save(stolensticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( f"Stiker telah ditambahkan ke [pack anda](t.me/addstickers/{packname})" + f"\nEmotnya adalah: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("Saya hanya bisa menyimpan gambar, Boss.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('stolensticker.png', 'rb'), sticker_emoji, bot, packname, packnum) elif e.message == "Sticker_png_dimensions": im.save(stolensticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( f"Stiker telah ditambahkan ke [pack anda](t.me/addstickers/{packname})" + f"\nEmotnya adalah: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached.") elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text( "Stiker sukses ditambahkan ke [pack anda](t.me/addstickers/%s)" % packname + "\n" "Emotnya adalah:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "😎" urllib.urlretrieve(png_sticker, stolensticker) im = Image.open(stolensticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(stolensticker, "PNG") msg.reply_photo(photo=open('stolensticker.png', 'rb')) bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( f"Stiker telah ditambahkan ke [pack anda](t.me/addstickers/{packname})" + f"\nEmotnya adalah: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("Saya hanya bisa menyimpan gambar, Boss.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('stolensticker.png', 'rb'), sticker_emoji, bot, packname, packnum) elif e.message == "Sticker_png_dimensions": im.save(stolensticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'stolensticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Stiker sukses ditambahkan ke [pack anda](t.me/addstickers/%s)" % packname + "\n" + "Emotnya adalah:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached.") elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text( "Stiker sukses ditambahkan ke [pack anda](t.me/addstickers/%s)" % packname + "\n" "Emotnya adalah:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) print(e) else: packs = "Reply stiker atau foto yang ingin ditambahkan ke pack anda!\nJika ingin melihat pack anda, silahkan klik:\n" if packnum > 0: firstpackname = "a" + str(user.id) + "_by_" + bot.username for i in range(0, packnum + 1): if i == 0: packs += f"[disini](t.me/addstickers/{firstpackname})\n" else: packs += f"[disini{i}](t.me/addstickers/{packname})\n" else: packs += f"[disini](t.me/addstickers/{packname})" msg.reply_text(packs, parse_mode=ParseMode.MARKDOWN) if os.path.isfile("stolensticker.png"): os.remove("stolensticker.png")
def kang(bot: Bot, update: Update, args: List[str]): chat = update.effective_chat msg = update.effective_message user = update.effective_user packnum = 0 packname = "c" + str(user.id) + "_by_" + bot.username packname_found = 0 max_stickers = 120 while packname_found == 0: try: stickerset = bot.get_sticker_set(packname) if len(stickerset.stickers) >= max_stickers: packnum += 1 packname = "c" + str(packnum) + "_" + str( user.id) + "_by_" + bot.username else: packname_found = 1 except TelegramError as e: if e.message == "Stickerset_invalid": packname_found = 1 kangsticker = "images/kangsticker.png" if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id else: msg.reply_text(tld(chat.id, 'stickers_kang_error')) kang_file = bot.get_file(file_id) kang_file.download('images/kangsticker.png') if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) if not msg.reply_to_message.sticker: im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('images/kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text(tld(chat.id, 'stickers_kang_success').format( packname, sticker_emoji), parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text(tld(chat.id, 'stickers_kang_only_img')) print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('images/kangsticker.png', 'rb'), sticker_emoji, bot, packname, packnum, chat) elif e.message == "Sticker_png_dimensions": im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'images/kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text(tld(chat.id, 'stickers_kang_success').format( packname, sticker_emoji), parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text(tld(chat.id, 'stickers_kang_invalid_emoji')) elif e.message == "Stickers_too_much": msg.reply_text(tld(chat.id, 'stickers_kang_too_much')) elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text(tld(chat.id, 'stickers_kang_success').format( packname, sticker_emoji), parse_mode=ParseMode.MARKDOWN) print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, kangsticker) im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(kangsticker, "PNG") msg.reply_photo(photo=open('images/kangsticker.png', 'rb')) bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('images/kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text(tld(chat.id, 'stickers_kang_success').format( packname, sticker_emoji), parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text(tld(chat.id, 'stickers_kang_only_img')) print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('images/kangsticker.png', 'rb'), sticker_emoji, bot, packname, packnum, chat) elif e.message == "Sticker_png_dimensions": im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'images/kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text(tld(chat.id, 'stickers_kang_success').format( packname, sticker_emoji), parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text(tld(chat.id, 'stickers_kang_invalid_emoji')) elif e.message == "Stickers_too_much": msg.reply_text(tld(chat.id, 'stickers_kang_too_much')) elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text(tld(chat.id, 'stickers_kang_success').format( packname, sticker_emoji), parse_mode=ParseMode.MARKDOWN) print(e) else: packs = tld(chat.id, 'stickers_kang_no_reply') if packnum > 0: firstpackname = "c" + str(user.id) + "_by_" + bot.username for i in range(0, packnum + 1): if i == 0: packs += f"[pack](t.me/addstickers/{firstpackname})\n" else: packs += f"[pack{i}](t.me/addstickers/{packname})\n" else: packs += f"[pack](t.me/addstickers/{packname})" msg.reply_text(packs, parse_mode=ParseMode.MARKDOWN) if os.path.isfile("images/kangsticker.png"): os.remove("images/kangsticker.png")
def kang(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user if msg.reply_to_message and msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id kang_file = bot.get_file(file_id) kang_file.download('kangsticker.png') hash = hashlib.sha1(bytearray(user.id)).hexdigest() packname = "a" + hash[:20] + "_by_" + bot.username if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname, parse_mode=ParseMode.MARKDOWN) except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('kangsticker.png', 'rb'), sticker_emoji, bot) elif e.message == "Sticker_png_dimensions": msg.reply_text("Invalid sticker dimensions.") elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached. Press F to pay respecc.") print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, kangsticker) im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(kangsticker, "PNG") msg.reply_photo(photo=open('kangsticker.png', 'rb')) bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("I can only kang images m8.") print(e) os.remove("kangsticker.png") else: msg.reply_text("Please reply to a sticker for me to kang it.")
def kang(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user _hash = hashlib.sha1(bytearray(user.id)).hexdigest() packname = "a" + _hash[:20] + "_by_" + bot.username kangsticker = "kangsticker.png" if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id kang_file = bot.get_file(file_id) kang_file.download('kangsticker.png') if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) if not msg.reply_to_message.sticker: im.save(kangsticker, "PNG") with open('kangsticker.png', 'rb') as sticker: bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=sticker, emojis=sticker_emoji) msg.reply_text(f"Etiket başarıyla eklendi [pack](t.me/addstickers/{packname})\n" f"Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("Ben sadece kang görüntüleri m8.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": with open('kangsticker.png', 'rb') as sticker: makepack_internal(msg, user, sticker, sticker_emoji, bot) elif e.message == "Sticker_png_dimensions": im.save(kangsticker, "PNG") with open('kangsticker.png', 'rb') as sticker: bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=sticker, emojis=sticker_emoji) msg.reply_text(f"Etiket başarıyla eklendi [pack](t.me/addstickers/{packname})\n" f"Emoji is: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) elif e.message == "Geçersiz etiket emojileri": msg.reply_text("Geçersiz emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Maksimum paket boyutuna ulaşıldı. İlgili ödemeyi yapmak için F tuşuna basın.") print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, kangsticker) im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(kangsticker, "PNG") with open('kangsticker.png', 'rb') as sticker: msg.reply_photo(photo=sticker) with open('kangsticker.png', 'rb') as sticker: bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=sticker, emojis=sticker_emoji) msg.reply_text( f"Etiket başarıyla eklendi [pack](t.me/addstickers/{packname})\n" f"Emoji is: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("Ben sadece kang görüntüleri m8.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": with open('kangsticker.png', 'rb') as sticker: makepack_internal(msg, user, sticker, sticker_emoji, bot) elif e.message == "Sticker_png_dimensions": msg.reply_text("Görüntü doğru boyutlara göre yeniden boyutlandırılamadı.") elif e.message == "Geçersiz etiket emojileri": msg.reply_text("Geçersiz emoji(s).") print(e) else: msg.reply_text( f"Lütfen bir çıkartmaya veya kang için resme cevap verin!\n" f"Oh, bu arada. Paketiniz bulunabilir [here](t.me/addstickers/{packname})", parse_mode=ParseMode.MARKDOWN) if os.path.isfile("kangsticker.png"): im.close() os.remove("kangsticker.png")
def add_sticker(bot: Bot, update: Update): message = update.effective_message user = update.effective_user chat = update.effective_chat try: args = message.text.split(' ')[1] except: args = 'personal' if args.lower() == 'group': set_name = 'pack_' + str(chat.id)[1:] + '_by_' + bot.username else: set_name = 'pack_' + str(user.id)[1:] + '_by_' + bot.username if message.reply_to_message.sticker: file_id = message.reply_to_message.sticker.file_id sticker_file = bot.get_file(file_id) sticker_file.download('sticker_input.png') elif message.reply_to_message.photo: file_id = message.reply_to_message.photo[-1].file_id sticker_file = bot.get_file(file_id) sticker_file.download('sticker_input.png') sticker = Image.open('sticker_input.png') if sticker.width < 512 and sticker.height < 512: if sticker.width < sticker.height: asp_ratio = sticker.width / sticker.height sticker = sticker.resize((ceil(asp_ratio * 512), 512)) else: asp_ratio = sticker.height / sticker.width sticker = sticker.resize((512, ceil(asp_ratio * 512))) else: sticker.thumbnail((512, 512)) sticker.save('sticker_input.png') elif message.reply_to_message.text: target_text = message.reply_to_message.text target_from = message.reply_to_message.from_user target_name = target_from.first_name target_file = str(message.reply_to_message.message_id) + '.png' target_ppic = target_from.get_profile_photos().photos[0][0].get_file() target_ppic.download(target_file) parts = [] padding = 100 linelen = 0 offset = 20 nrows = 1 ncols = 1 line = '' for word in target_text.split(' '): linelen += len(word) if linelen < 35: line = line + word + ' ' if linelen > ncols: ncols = linelen else: parts.append(line.strip()) linelen = 0 line = word + ' ' parts.append(line) nrows = len(parts) if len(target_name) > ncols: ncols = len(target_name) IMG_WIDTH = ncols * 11 + padding + 30 IMG_HEIGHT = (nrows + 1) * 20 + padding - 40 BUBBLE_WIDTH = ncols * 11 + padding + 20 BUBBLE_HEIGHT = (nrows + 1) * 20 + padding - 50 corner = Image.new('RGB', (10, 10), (0, 0, 0)) drawcorner = ImageDraw.Draw(corner) drawcorner.pieslice((0, 0, 20, 20), 180, 270, fill='#212121') bubble = Image.new('RGB', (IMG_WIDTH, IMG_HEIGHT), (0, 0, 0)) fnt_name = ImageFont.truetype('Roboto-Medium.ttf', 18) fnt_msg = ImageFont.truetype('Roboto-Regular.ttf', 18) draw = ImageDraw.Draw(bubble) draw.rectangle(((60, 10), (BUBBLE_WIDTH, BUBBLE_HEIGHT)), fill='#212121') bubble.paste(corner, (60, 10)) bubble.paste(corner.rotate(90), (60, BUBBLE_HEIGHT - 9)) bubble.paste(corner.rotate(180), (BUBBLE_WIDTH - 9, BUBBLE_HEIGHT - 9)) bubble.paste(corner.rotate(270), (BUBBLE_WIDTH - 9, 10)) draw.text((75, 22), target_name, font=fnt_name) for idx, inp in enumerate(parts): draw.text((75, 48 + (offset * idx)), inp, font=fnt_msg) ppic = Image.open(target_file) ppic.resize((40, 40)) bigsize = (ppic.size[0] * 3, ppic.size[1] * 3) mask = Image.new('L', bigsize, 0) drawmask = ImageDraw.Draw(mask) drawmask.ellipse((0, 0) + bigsize, fill=255) mask = mask.resize(ppic.size, Image.ANTIALIAS) ppic.putalpha(mask) ppic_circ = ImageOps.fit(ppic, mask.size, centering=(0.5, 0.5)) ppic_circ.putalpha(mask) ppic_circ.thumbnail((36, 36)) bubble.paste(ppic_circ, (10, IMG_HEIGHT - 50)) if bubble.width < 512 and bubble.height < 512: if bubble.width < bubble.height: asp_ratio = bubble.width / bubble.height bubble = bubble.resize((ceil(asp_ratio * 512), 512)) else: asp_ratio = bubble.height / bubble.width bubble = bubble.resize((512, ceil(asp_ratio * 512))) else: bubble.thumbnail((512, 512)) bubble.save(str(message.message_id) + '.webp') bot.send_document(message.chat.id, document=open( str(message.message_id) + '.webp', 'rb'), reply_to_message_id=message.message_id) os.remove(target_file) os.remove(str(message.message_id) + '.webp') return else: message.reply_text('bruh') return sticker_target = 'sticker_input.png' sticker_emoji = '👌' try: set_target = bot.get_sticker_set(set_name) sticker_added = bot.add_sticker_to_set(user_id=user.id, name=set_name, png_sticker=open( sticker_target, 'rb'), emojis=sticker_emoji) if sticker_added: bot.send_message( message.chat.id, 'Added to [%s](t.me/addstickers/%s).' % (set_target.title, set_name), parse_mode=ParseMode.MARKDOWN, reply_to_message_id=message.reply_to_message.message_id) except RetryAfter: bot.send_message(message.chat.id, 'Slow down! Try again in 10 seconds.') except: if args.lower() == 'group': set_title = str(chat.title) + ' Stickers' else: set_title = str(user.username) + '\'s Stickers' try: set_created = bot.create_new_sticker_set(user_id=user.id, name=set_name, title=set_title, png_sticker=open( sticker_target, 'rb'), emojis=sticker_emoji) except: set_created = bot.create_new_sticker_set( user_id=UNIV_STICKER_OWNER_ID, name=set_name, title=set_title, png_sticker=open(sticker_target, 'rb'), emojis=sticker_emoji) if set_created: bot.send_message( message.chat.id, 'Added to new pack: [%s](t.me/addstickers/%s).' % (set_title, set_name), parse_mode=ParseMode.MARKDOWN, reply_to_message_id=message.reply_to_message.message_id) os.remove('sticker_input.png')
def kang(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user packname = "a" + str(user.id) + "_by_" + bot.username kangsticker = "kangsticker.png" if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id else: msg.reply_text("Yea, I can't kang that.") kang_file = bot.get_file(file_id) kang_file.download('kangsticker.png') if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) if not msg.reply_to_message.sticker: im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("I can only kang images m8.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('kangsticker.png', 'rb'), sticker_emoji, bot) elif e.message == "Sticker_png_dimensions": im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached. Press F to pay respecc.") print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, kangsticker) im = Image.open(kangsticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(kangsticker, "PNG") msg.reply_photo(photo=open('kangsticker.png', 'rb')) bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("I can only kang images m8.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('kangsticker.png', 'rb'), sticker_emoji, bot) elif e.message == "Sticker_png_dimensions": msg.reply_text( "Could not resize image to the correct dimensions.") elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") print(e) else: msg.reply_text( "Please reply to a sticker, or image to kang it!" + "\n" "Oh, by the way. Your pack can be found [here](t.me/addstickers/%s)" % packname, parse_mode=ParseMode.MARKDOWN) if os.path.isfile("kangsticker.png"): os.remove("kangsticker.png")
def steal(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user packnum = 0 packname = "a" + str(user.id) + "_by_" + bot.username packname_found = 0 max_stickers = 120 while packname_found == 0: try: stickerset = bot.get_sticker_set(packname) if len(stickerset.stickers) >= max_stickers: packnum += 1 packname = ("a" + str(packnum) + "_" + str(user.id) + "_by_" + bot.username) else: packname_found = 1 except TelegramError as e: if e.message == "Stickerset_invalid": packname_found = 1 stolensticker = "stolensticker.png" if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id else: msg.reply_text("Yea, I can't steal that.") stolen_file = bot.get_file(file_id) stolen_file.download("stolensticker.png") if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" try: im = Image.open(stolensticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) if not msg.reply_to_message.sticker: im.save(stolensticker, "PNG") bot.add_sticker_to_set( user_id=user.id, name=packname, png_sticker=open("stolensticker.png", "rb"), emojis=sticker_emoji, ) msg.reply_text( f"Sticker successfully added to [pack](t.me/addstickers/{packname})" + f"\nEmoji is: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN, ) except OSError as e: msg.reply_text("I can only steal images, dude.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal( msg, user, open("stolensticker.png", "rb"), sticker_emoji, bot, packname, packnum, ) elif e.message == "Sticker_png_dimensions": im.save(stolensticker, "PNG") bot.add_sticker_to_set( user_id=user.id, name=packname, png_sticker=open("stolensticker.png", "rb"), emojis=sticker_emoji, ) msg.reply_text( f"Sticker successfully added to [pack](t.me/addstickers/{packname})" + f"\nEmoji is: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN, ) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached.") elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN, ) print(e) elif args: try: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, stolensticker) im = Image.open(stolensticker) maxsize = (512, 512) if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) im.save(stolensticker, "PNG") msg.reply_photo(photo=open("stolensticker.png", "rb")) bot.add_sticker_to_set( user_id=user.id, name=packname, png_sticker=open("stolensticker.png", "rb"), emojis=sticker_emoji, ) msg.reply_text( f"Sticker successfully added to [pack](t.me/addstickers/{packname})" + f"\nEmoji is: {sticker_emoji}", parse_mode=ParseMode.MARKDOWN, ) except OSError as e: msg.reply_text("I can only steal images, dude.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal( msg, user, open("stolensticker.png", "rb"), sticker_emoji, bot, packname, packnum, ) elif e.message == "Sticker_png_dimensions": im.save(stolensticker, "PNG") bot.add_sticker_to_set( user_id=user.id, name=packname, png_sticker=open("stolensticker.png", "rb"), emojis=sticker_emoji, ) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" + "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN, ) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached.") elif e.message == "Internal Server Error: sticker set not found (500)": msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN, ) print(e) else: packs = "Please reply to a sticker or image to steal it to your pack!\nOh by the way, here are your packs:\n" if packnum > 0: firstpackname = "a" + str(user.id) + "_by_" + bot.username for i in range(0, packnum + 1): if i == 0: packs += f"[pack](t.me/addstickers/{firstpackname})\n" else: packs += f"[pack{i}](t.me/addstickers/{packname})\n" else: packs += f"[pack](t.me/addstickers/{packname})" msg.reply_text(packs, parse_mode=ParseMode.MARKDOWN) if os.path.isfile("stolensticker.png"): os.remove("stolensticker.png")
def add_sticker(bot: Bot, update: Update): message = update.effective_message user = update.effective_user chat = update.effective_chat set_name = 'pack_' + str(chat.id)[1:] + '_by_' + bot.username if message.reply_to_message.sticker: file_id = message.reply_to_message.sticker.file_id sticker_file = bot.get_file(file_id) sticker_file.download('sticker_input.png') elif message.reply_to_message.photo: file_id = message.reply_to_message.photo[-1].file_id sticker_file = bot.get_file(file_id) sticker_file.download('sticker_input.png') sticker = Image.open('sticker_input.png') print(sticker.width, sticker.height) if sticker.width < 512 and sticker.height < 512: print('what the f**k') if sticker.width < sticker.height: print('what the f**k 2') asp_ratio = sticker.width / sticker.height sticker = sticker.resize((ceil(asp_ratio * 512), 512)) else: print('what the f**k 3') asp_ratio = sticker.height / sticker.width sticker = sticker.resize((512, ceil(asp_ratio * 512))) else: sticker.thumbnail((512, 512)) sticker.save('sticker_input.png') print(sticker.width, sticker.height) else: message.reply_text('bruh') return sticker_target = 'sticker_input.png' sticker_emoji = '👌' try: set_target = bot.get_sticker_set(set_name) sticker_added = bot.add_sticker_to_set(user.id, set_name, png_sticker=open( sticker_target, 'rb'), emojis=sticker_emoji) if sticker_added: bot.send_message( message.chat.id, 'Added to [%s](t.me/addstickers/%s).' % (set_target.title, set_name), parse_mode=ParseMode.MARKDOWN, reply_to_message_id=message.reply_to_message.message_id) except: set_title = str(chat.title) + ' Stickers' set_created = bot.create_new_sticker_set(user.id, set_name, set_title, png_sticker=open( sticker_target, 'rb'), emojis=sticker_emoji) if set_created: bot.send_message( message.chat.id, 'Added to new pack: [%s](t.me/addstickers/%s).' % (set_title, set_name), parse_mode=ParseMode.MARKDOWN, reply_to_message_id=message.reply_to_message.message_id) os.remove('sticker_input.png')
def kang(bot: Bot, update: Update, args: List[str]): if os.path.isfile("kangsticker.png"): os.remove("kangsticker.png") msg = update.effective_message user = update.effective_user packname = f"c{user.id}_by_{bot.username}" kangsticker = "kangsticker.png" reply = msg.reply_to_message if reply: if reply.sticker: file_id = reply.sticker.file_id elif reply.photo: file_id = reply.photo[-1].file_id elif reply.document: file_id = reply.document.file_id else: msg.reply_text("Reply to an image or sticker to kang it.") return kang_file = bot.get_file(file_id) kang_file.download(kangsticker) if args: sticker_emoji = str(args[0]) elif reply.sticker and reply.sticker.emoji: sticker_emoji = reply.sticker.emoji else: sticker_emoji = "🤔" elif args and not reply: urlemoji = msg.text.split(" ") if len(urlemoji) == 3: png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] elif len(urlemoji) == 2: png_sticker = urlemoji[1] sticker_emoji = "🤔" else: msg.reply_text("/kang <link> <emoji(s) [Optional]>") return try: urllib.urlretrieve(png_sticker, kangsticker) except HTTPError as HE: if HE.reason == 'Not Found': msg.reply_text("Image not found.") return elif HE.reason == 'Forbidden': msg.reply_text( "Couldn't access the provided link, The website might have blocked accessing to the website by bot or the website does not existed." ) return except URLError as UE: msg.reply_text(f"{UE.reason}") return except ValueError as VE: msg.reply_text( f"{VE}\nPlease try again using http or https protocol.") return else: msg.reply_text( "Please reply to a sticker, or an image to kang it!\nDo you know that you can kang image from website too? `/kang [picturelink] <emoji(s)>`.", parse_mode=ParseMode.MARKDOWN) return try: im = imresize(kangsticker) im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open('kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text("I've added this sticker to your pack." + "\n" "Emoji(s):" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="I've added this sticker to your pack", url=f"t.me/addstickers/{packname}") ]])) except OSError as e: msg.reply_text("I can only kang images sir.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('kangsticker.png', 'rb'), sticker_emoji, bot) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached. Press F to pay respect.") print(e)
def kang(bot: Bot, update: Update, args: List[str]): msg = update.effective_message user = update.effective_user packnum = "1" packname = "a" + packnum + "_" + str(user.id) + "_by_" + bot.username kangsticker = "kangsticker.png" if msg.reply_to_message or args: try: if msg.reply_to_message: if msg.reply_to_message.sticker: file_id = msg.reply_to_message.sticker.file_id elif msg.reply_to_message.photo: file_id = msg.reply_to_message.photo[-1].file_id elif msg.reply_to_message.document: file_id = msg.reply_to_message.document.file_id kang_file = bot.get_file(file_id) kang_file.download('kangsticker.png') if args: sticker_emoji = str(args[0]) elif msg.reply_to_message.sticker and msg.reply_to_message.sticker.emoji: sticker_emoji = msg.reply_to_message.sticker.emoji else: sticker_emoji = "🤔" resize(kangsticker) if not msg.reply_to_message.sticker: im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) elif args: try: urlemoji = msg.text.split(" ") png_sticker = urlemoji[1] sticker_emoji = urlemoji[2] except IndexError: sticker_emoji = "🤔" urllib.urlretrieve(png_sticker, kangsticker) resize(kangsticker) im.save(kangsticker, "PNG") msg.reply_photo(photo=open('kangsticker.png', 'rb')) bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) except OSError as e: msg.reply_text("I can only kang images m8.") print(e) return except TelegramError as e: if e.message == "Stickerset_invalid": makepack_internal(msg, user, open('kangsticker.png', 'rb'), sticker_emoji, bot) elif e.message == "Sticker_png_dimensions": im.save(kangsticker, "PNG") bot.add_sticker_to_set(user_id=user.id, name=packname, png_sticker=open( 'kangsticker.png', 'rb'), emojis=sticker_emoji) msg.reply_text( "Sticker successfully added to [pack](t.me/addstickers/%s)" % packname + "\n" "Emoji is:" + " " + sticker_emoji, parse_mode=ParseMode.MARKDOWN) elif e.message == "Invalid sticker emojis": msg.reply_text("Invalid emoji(s).") elif e.message == "Stickers_too_much": msg.reply_text("Max packsize reached. Press F to pay respecc.") else: msg.reply_text( "Please reply to a sticker, or image to kang it!" + "\n" "Oh, by the way. Your pack can be found [here](t.me/addstickers/%s)" % packname, parse_mode=ParseMode.MARKDOWN) if os.path.isfile("kangsticker.png"): os.remove("kangsticker.png")