diff --git a/app.json b/app.json index c96829c..be945a7 100644 --- a/app.json +++ b/app.json @@ -65,10 +65,6 @@ "value": "/usr/bin/chromium", "required": false }, - "OPEN_WEATHER_MAP_APPID": { - "description": "https://api.openweathermap.org/data/2.5/weather adresinden kendi APPID'inizi (API key) edinin.", - "required": false - }, "BOTLOG": { "description": "Günlüğe kaydetmeyi açmak istiyorsanız, bunu True olarak ayarlayın", "value": "False" @@ -85,10 +81,6 @@ "description": "Genius API Key, 'https://genius.com/developers' adresinden alın.", "required": false }, - "GENIUS": { - "description": "Buraya aldığınız Genius API Token'i yazın.", - "required": false - }, "AUTO_PP": { "description": "Autopp modülünün çalışması için gerekli olan değişkendir. Çalışması için kullanacağınız resmin direk adresini girmeniz gerekiyor.", "required": false @@ -158,7 +150,7 @@ "required": false }, "DEFAULT_BIO": { - "description": "Varsayılan profil biyografisi.", + "description": "Varsayılan profil biyografisi. (Lastfm modülü için)", "value": "#TeamDerUntergang", "required": false }, diff --git a/sedenbot/__init__.py b/sedenbot/__init__.py index f3b7e54..cb9e9fb 100644 --- a/sedenbot/__init__.py +++ b/sedenbot/__init__.py @@ -23,10 +23,10 @@ from distutils.util import strtobool as sb from math import ceil +from pylast import LastFMNetwork, md5 from dotenv import load_dotenv from requests import get from telethon.sync import TelegramClient, custom, events -from telethon.tl.functions.channels import JoinChannelRequest from telethon.sessions import StringSession from telethon.utils import get_peer_id load_dotenv("config.env") @@ -110,8 +110,7 @@ CHROME_DRIVER = os.environ.get("CHROME_DRIVER", None) GOOGLE_CHROME_BIN = os.environ.get("GOOGLE_CHROME_BIN", None) -# OpenWeatherMap API Key -OPEN_WEATHER_MAP_APPID = os.environ.get("OPEN_WEATHER_MAP_APPID", None) +# Hava durumu varsayılan şehir WEATHER_DEFCITY = os.environ.get("WEATHER_DEFCITY", None) # Lydia API @@ -131,7 +130,6 @@ # Temiz Karşılama CLEAN_WELCOME = sb(os.environ.get("CLEAN_WELCOME", "True")) - # Last.fm modülü BIO_PREFIX = os.environ.get("BIO_PREFIX", None) DEFAULT_BIO = os.environ.get("DEFAULT_BIO", None) @@ -140,6 +138,14 @@ LASTFM_SECRET = os.environ.get("LASTFM_SECRET", None) LASTFM_USERNAME = os.environ.get("LASTFM_USERNAME", None) LASTFM_PASSWORD_PLAIN = os.environ.get("LASTFM_PASSWORD", None) +LASTFM_PASS = md5(LASTFM_PASSWORD_PLAIN) +if LASTFM_API and LASTFM_SECRET and LASTFM_USERNAME and LASTFM_PASS: + lastfm = LastFMNetwork(api_key=LASTFM_API, + api_secret=LASTFM_SECRET, + username=LASTFM_USERNAME, + password_hash=LASTFM_PASS) +else: + lastfm = None # Google Drive Modülü G_DRIVE_CLIENT_ID = os.environ.get("G_DRIVE_CLIENT_ID", None) @@ -154,7 +160,7 @@ BOT_USERNAME = os.environ.get("BOT_USERNAME", None) # Genius modülünün çalışması için buradan değeri alın https://genius.com/developers her ikisi de aynı değerlere sahiptir -GENIUS = os.environ.get("GENIUS", None) or os.environ.get("GENIUS_API_TOKEN", None) +GENIUS_API_TOKEN = os.environ.get("GENIUS_API_TOKEN", None) # Ayarlanabilir PM izin verilmedi mesajı PM_UNAPPROVED = os.environ.get("PM_UNAPPROVED", None) @@ -212,9 +218,6 @@ async def check_botlog_chatid(): quit(1) try: - bot(JoinChannelRequest("@SedenUserBot")) - bot(JoinChannelRequest("@SedenUserBotSupport")) - if not BOT_TOKEN: raise Exception() diff --git a/sedenbot/moduller/admin.py b/sedenbot/moduller/admin.py index 30384bd..9429f6b 100644 --- a/sedenbot/moduller/admin.py +++ b/sedenbot/moduller/admin.py @@ -121,6 +121,9 @@ async def set_group_photo(gpic): @sedenify(incoming=True, from_users=BRAIN_CHECKER, pattern="^.promote") async def promote(promt): """ .promote komutu ile belirlenen kişiyi yönetici yapar """ + if not promt.is_group: + await promt.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Hedef sohbeti almak chat = await promt.get_chat() # Yetkiyi sorgula @@ -170,6 +173,9 @@ async def promote(promt): @sedenify(outgoing=True, pattern="^.demote") async def demote(dmod): """ .demote komutu belirlenen kişiyi yöneticilikten çıkarır """ + if not dmod.is_group: + await dmod.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await dmod.get_chat() admin = chat.admin_rights @@ -218,6 +224,9 @@ async def demote(dmod): @sedenify(outgoing=True, pattern="^.ban") async def ban(bon): """ .ban komutu belirlenen kişiyi gruptan yasaklar """ + if not bon.is_group: + await bon.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await bon.get_chat() admin = chat.admin_rights @@ -274,6 +283,9 @@ async def ban(bon): @sedenify(outgoing=True, pattern="^.unban") async def nothanos(unbon): """ .unban komutu belirlenen kişinin yasağını kaldırır """ + if not unbon.is_group: + await unbon.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await unbon.get_chat() admin = chat.admin_rights @@ -311,6 +323,9 @@ async def spider(spdr): """ Bu fonksiyon temelde susturmaya yarar """ + if not spdr.is_group: + await spdr.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Fonksiyonun SQL modu altında çalışıp çalışmadığını kontrol et try: from sedenbot.moduller.sql_helper.spam_mute_sql import mute @@ -381,6 +396,9 @@ async def mutmsg(spdr, user, reason): @sedenify(outgoing=True, pattern="^.unmute") async def unmoot(unmot): """ .unmute komutu belirlenin kişinin sesini açar (yani grupta tekrardan konuşabilir) """ + if not unmot.is_group: + await unmot.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await unmot.get_chat() admin = chat.admin_rights @@ -429,6 +447,9 @@ async def unmoot(unmot): @sedenify(incoming=True) async def muter(moot): """ Sessize alınan kullanıcıların mesajlarını silmek için kullanılır """ + if not moot.is_group: + await moot.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return try: from sedenbot.moduller.sql_helper.spam_mute_sql import is_muted from sedenbot.moduller.sql_helper.gmute_sql import is_gmuted @@ -462,6 +483,9 @@ async def muter(moot): @sedenify(outgoing=True, pattern="^.ungmute") async def ungmoot(un_gmute): """ .ungmute komutu belirlenen kişinin küresel susturulmasını kaldırır """ + if not un_gmute.is_group: + await un_gmute.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await un_gmute.get_chat() admin = chat.admin_rights @@ -503,6 +527,9 @@ async def ungmoot(un_gmute): @sedenify(outgoing=True, pattern="^.gmute") async def gspider(gspdr): """ .gmute komutu belirlenen kişiyi küresel olarak susturur """ + if not gspdr.is_group: + await gspdr.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await gspdr.get_chat() admin = chat.admin_rights @@ -551,7 +578,9 @@ async def gspider(gspdr): @sedenify(outgoing=True, pattern="^.zombies", groups_only=False) async def rm_deletedacc(show): """ .zombies komutu bir sohbette tüm hayalet / silinmiş / zombi hesaplarını listeler. """ - + if not show.is_group: + await show.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return con = extract_args(show).lower() del_u = 0 del_status = "`Silinmiş hesap bulunamadı, grup temiz`" @@ -614,28 +643,12 @@ async def rm_deletedacc(show): f"**{del_u}** tane silinmiş hesap çıkartıldı !!\ \nGRUP: {show.chat.title}(`{show.chat_id}`)") -@sedenify(outgoing=True, pattern="^.admins$") -async def get_admin(show): - """ .admins komutu girilen gruba ait yöneticileri listeler """ - info = await show.client.get_entity(show.chat_id) - title = info.title if info.title else "this chat" - mentions = f'{title} grubunun yöneticileri: \n' - try: - async for user in show.client.iter_participants( - show.chat_id, filter=ChannelParticipantsAdmins): - if not user.deleted: - link = f"{user.first_name}" - userid = f"{user.id}" - mentions += f"\n{link} {userid}" - else: - mentions += f"\nDeleted Account {user.id}" - except ChatAdminRequiredError as err: - mentions += " " + str(err) + "\n" - await show.edit(mentions, parse_mode="html") - @sedenify(outgoing=True, pattern="^.pin$") async def pin(msg): """ .pin komutu verildiği grupta ki yazıyı & medyayı sabitler """ + if not msg.is_group: + await msg.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yönetici kontrolü chat = await msg.get_chat() admin = chat.admin_rights @@ -680,6 +693,9 @@ async def pin(msg): @sedenify(outgoing=True, pattern="^.kick") async def kick(usr): """ .kick komutu belirlenen kişiyi gruptan çıkartır """ + if not usr.is_group: + await usr.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return # Yetki kontrolü chat = await usr.get_chat() admin = chat.admin_rights @@ -725,46 +741,59 @@ async def kick(usr): f"KULLANICI: [{user.first_name}](tg://user?id={user.id})\n" f"GRUP: {usr.chat.title}(`{usr.chat_id}`)\n") -@sedenify(outgoing=True, pattern="^.users$") +@sedenify(outgoing=True, pattern="^.(admins|bots|user(s|sdel))") async def get_users(show): """ .users komutu girilen gruba ait kişileri listeler """ + if not show.is_group: + await show.edit("`Bunun bir grup olduğunu sanmıyorum.`") + return + cmd = show.text.split(' ', 1) + users = cmd[0][1:5] == 'user' + showdel = users and cmd[0][-3:] == 'del' + bots = not users and cmd[0][1:5] == 'bots' + admins = not bots and cmd[0][1:7] == 'admins' info = await show.client.get_entity(show.chat_id) - title = info.title if info.title else "this chat" - mentions = '{} grubunda bulunan kişiler: \n'.format(title) + title = info.title if info.title else "Bu sohbet" + + mentions = '' + filtr = None + if users: + mentions = f'{title} içinde bulunan{" silinmiş" if showdel else ""} kişiler: \n' + elif admins: + mentions = f'{title} içinde bulunan yöneticiler: \n' + filtr = ChannelParticipantsAdmins + elif bots: + mentions = f'{title} içinde bulunan botlar: \n' + filtr = ChannelParticipantsBots + try: - searchq = extract_args(show) - if len(searchq) < 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"\nSilinen hesap `{user.id}`" - else: - 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"\nSilinen hesap `{user.id}`" + searchq = cmd[1] if users and len(cmd) > 1 else '' + async for user in show.client.iter_participants( + show.chat_id, + search=f'{searchq if len(searchq) > 0 else ""}', + filter=filtr): + if not user.deleted and showdel: + continue + mentions += f"\n[{'Silinmiş hesap' if user.deleted else user.first_name}](tg://user?id={user.id}) `{user.id}`" except Exception as err: mentions += " " + str(err) + "\n" try: await show.edit(mentions) except MessageTooLongError: await show.edit( - "Lanet olsun, bu büyük bir grup. Kullanıcı listesini dosya olarak gönderiyorum.") + "Lanet olsun, bu büyük bir grup. " + f"{'Silinmiş k' if showdel else 'K'}ullanıcı listesini dosya olarak gönderiyorum.") file = open("userslist.txt", "w+") file.write(mentions) file.close() await show.client.send_file( show.chat_id, "userslist.txt", - caption='{} grubundaki kişiler'.format(title), + caption=f"{title} grubundaki{' silinmiş' if showdel else ''} kişiler", reply_to=show.id, ) remove("userslist.txt") - async def get_user_from_event(event): """ Kullanıcıyı argümandan veya yanıtlanan mesajdan alın. """ msg = extract_args(event) @@ -815,129 +844,6 @@ async def get_user_from_id(user, event): return user_obj -@sedenify(outgoing=True, pattern="^.usersdel$") -async def get_usersdel(show): - """ .usersdel komutu grup içinde ki silinen hesapları gösterir """ - info = await show.client.get_entity(show.chat_id) - title = info.title if info.title else "this chat" - mentions = '{} grubunda bulunan silinmiş hesaplar: \n'.format(title) - try: - searchq = extract_args(show) - if len(searchq) < 1: - async for user in show.client.iter_participants(show.chat_id): - if user.deleted: - mentions += f"\nDeleted Account `{user.id}`" - else: - async for user in show.client.iter_participants( - show.chat_id, search=f'{searchq}'): - if user.deleted: - mentions += f"\nDeleted Account `{user.id}`" - except ChatAdminRequiredError as err: - mentions += " " + str(err) + "\n" - try: - await show.edit(mentions) - except MessageTooLongError: - await show.edit( - "Lanet olsun, bu büyük bir grup. Silinen kullanıcılar listesini dosya olarak gönderiyorum.") - file = open("userslist.txt", "w+") - file.write(mentions) - file.close() - await show.client.send_file( - show.chat_id, - "deleteduserslist.txt", - caption='{} grubuna ait olan silinmiş hesaplar:'.format(title), - reply_to=show.id, - ) - remove("deleteduserslist.txt") - - -async def get_userdel_from_event(event): - """ Silinen kullanıcıyı argümandan veya yanıtlanan mesajdan alın. """ - msg = extract_args(event) - args = msg.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 = msg - elif args: - user = args[0] - if len(args) == 2: - extra = args[1] - - if user.isnumeric(): - user = int(user) - - if not user: - await event.edit("`Silinen kullanıcının kullanıcı adını, ID'sini veya yanıtını iletin!`") - 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 Exception as err: - await event.edit(str(err)) - return None - - return user_obj, extra - - -async def get_userdel_from_id(user, event): - if isinstance(user, str): - user = int(user) - - try: - user_obj = await event.client.get_entity(user) - except Exception as err: - await event.edit(str(err)) - return None - - return user_obj - -@sedenify(outgoing=True, pattern="^.bots$", groups_only=True) -async def get_bots(show): - """ .bots komutu gruba ait olan botları listeler """ - info = await show.client.get_entity(show.chat_id) - title = info.title if info.title else "this chat" - mentions = f' {title} grubunda bulunan botlar:\n' - try: - # if isinstance(message.to_id, PeerChat): - # await show.edit("`Sadece süper grupların botlara sahip olabileceğini duydum.`") - # return - # else: - async for user in show.client.iter_participants( - show.chat_id, filter=ChannelParticipantsBots): - if not user.deleted: - link = f"{user.first_name}" - userid = f"{user.id}" - mentions += f"\n{link} {userid}" - else: - mentions += f"\nSilinmiş bot {user.id}" - except ChatAdminRequiredError as err: - mentions += " " + str(err) + "\n" - try: - await show.edit(mentions, parse_mode="html") - except MessageTooLongError: - await show.edit( - "Lanet olsun, burada çok fazla bot var. Botların listesini dosya olarak gönderiyorum.") - file = open("botlist.txt", "w+") - file.write(mentions) - file.close() - await show.client.send_file( - show.chat_id, - "botlist.txt", - caption='{} grubunda bulunan botlar:'.format(title), - reply_to=show.id, - ) - remove("botlist.txt") - CMD_HELP.update({ "admin": ".promote <özel isim (isteğe bağlı)>\ diff --git a/sedenbot/moduller/chatinfo.py b/sedenbot/moduller/chatinfo.py index 9315825..3fd36a7 100644 --- a/sedenbot/moduller/chatinfo.py +++ b/sedenbot/moduller/chatinfo.py @@ -19,20 +19,25 @@ from math import sqrt from emoji import emojize from datetime import datetime +from re import search from telethon.utils import get_input_location from telethon.tl.functions.channels import GetFullChannelRequest, GetParticipantsRequest from telethon.tl.functions.messages import GetHistoryRequest, CheckChatInviteRequest, GetFullChatRequest -from telethon.tl.types import MessageActionChannelMigrateFrom, ChannelParticipantsAdmins -from telethon.errors import (ChannelInvalidError, ChannelPrivateError, ChannelPublicGroupNaError, InviteHashEmptyError, InviteHashExpiredError, InviteHashInvalidError) +from telethon.tl.types import MessageActionChannelMigrateFrom, ChannelParticipantsAdmins, MessageEntityMentionName +from telethon.errors import (ChannelInvalidError, ChannelPrivateError, + ChannelPublicGroupNaError, InviteHashEmptyError, + InviteHashExpiredError, InviteHashInvalidError) from sedenbot import CMD_HELP from sedenbot.events import extract_args, sedenify -@sedenify(pattern=".chatinfo", outgoing=True) +@sedenify(pattern="^.chatinfo", outgoing=True) async def info(event): await event.edit("`Grup analiz ediliyor...`") chat = await get_chatinfo(event) + if not chat: + return caption = await fetch_info(chat, event) try: await event.edit(caption, parse_mode="html") @@ -44,15 +49,19 @@ async def info(event): async def get_chatinfo(event): chat = extract_args(event) chat_info = None - if chat.isdigit(): + if len(chat) > 0 and search('^-?\d+$', chat): chat = int(chat) + elif event.reply_to_msg_id: + replied_msg = await event.get_reply_message() + if replied_msg.fwd_from and replied_msg.fwd_from.channel_id : + chat = replied_msg.fwd_from.channel_id + elif event.message.entities: + entity = event.message.entities[0] + if isinstance(entity, MessageEntityMentionName): + chat = entity.user_id else: - if event.reply_to_msg_id: - replied_msg = await event.get_reply_message() - if replied_msg.fwd_from and replied_msg.fwd_from.channel_id : - chat = replied_msg.fwd_from.channel_id - else: - chat = event.chat_id + chat = event.chat_id + try: chat_info = await event.client(GetFullChatRequest(chat)) except: @@ -68,7 +77,7 @@ async def get_chatinfo(event): await event.edit("`Kanal veya süpergrup mevcut değil`") return None except (TypeError, ValueError) as err: - await event.edit(str(err)) + await event.edit("`Baktığım şey bir kanal/grup olmayabilir`") return None return chat_info @@ -200,6 +209,6 @@ async def fetch_info(chat, event): CMD_HELP.update({ "chatinfo": - ".chatinfo [isteğe bağlı: ] \ + ".chatinfo [isteğe bağlı: ] \ \nKullanım: Bir grup hakkında bilgi alır. Bazı bilgiler eksik izinler nedeniyle sınırlı olabilir." }) diff --git a/sedenbot/moduller/deepfry.py b/sedenbot/moduller/deepfry.py index b401d59..034ca1f 100644 --- a/sedenbot/moduller/deepfry.py +++ b/sedenbot/moduller/deepfry.py @@ -19,9 +19,7 @@ import io -from random import randint, uniform from PIL import Image, ImageEnhance, ImageOps -from telethon import events from telethon.tl.types import DocumentAttributeFilename from sedenbot import bot, CMD_HELP @@ -71,32 +69,27 @@ async def deepfryer(event): async def deepfry(img: Image) -> Image: - colours = ( - (randint(50, 200), randint(40, 170), randint(40, 190)), - (randint(190, 255), randint(170, 240), randint(180, 250)) - ) - img = img.copy().convert("RGB") # Resim formatı ayarla img = img.convert("RGB") width, height = img.width, img.height - img = img.resize((int(width ** uniform(0.8, 0.9)), int(height ** uniform(0.8, 0.9))), resample=Image.LANCZOS) - img = img.resize((int(width ** uniform(0.85, 0.95)), int(height ** uniform(0.85, 0.95))), resample=Image.BILINEAR) - img = img.resize((int(width ** uniform(0.89, 0.98)), int(height ** uniform(0.89, 0.98))), resample=Image.BICUBIC) + img = img.resize((int(width ** .75), int(height ** .75)), resample=Image.LANCZOS) + img = img.resize((int(width ** .88), int(height ** .88)), resample=Image.BILINEAR) + img = img.resize((int(width ** .9), int(height ** .9)), resample=Image.BICUBIC) img = img.resize((width, height), resample=Image.BICUBIC) - img = ImageOps.posterize(img, randint(3, 7)) + img = ImageOps.posterize(img, 4) # Renk yerleşimi oluştur overlay = img.split()[0] - overlay = ImageEnhance.Contrast(overlay).enhance(uniform(1.0, 2.0)) - overlay = ImageEnhance.Brightness(overlay).enhance(uniform(1.0, 2.0)) + overlay = ImageEnhance.Contrast(overlay).enhance(2) + overlay = ImageEnhance.Brightness(overlay).enhance(1.5) - overlay = ImageOps.colorize(overlay, colours[0], colours[1]) + overlay = ImageOps.colorize(overlay, Color.RED, Color.YELLOW) # Kırmızı ve sarıyı ana görüntüye yerleştir ve keskinleştir - img = Image.blend(img, overlay, uniform(0.1, 0.4)) - img = ImageEnhance.Sharpness(img).enhance(randint(5, 300)) + img = Image.blend(img, overlay, .75) + img = ImageEnhance.Sharpness(img).enhance(100) return img @@ -121,6 +114,10 @@ async def check_media(reply_message): else: return data +class Color: + RED = (254, 0, 2) + YELLOW = (255, 255, 15) + CMD_HELP.update({ "deepfry": ".deepfry [numara 1-5]\ diff --git a/sedenbot/moduller/eglence.py b/sedenbot/moduller/eglence.py deleted file mode 100644 index bb5018f..0000000 --- a/sedenbot/moduller/eglence.py +++ /dev/null @@ -1,397 +0,0 @@ -# Copyright (C) 2020 TeamDerUntergang. -# -# SedenUserBot 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. -# -# SedenUserBot 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 this program. If not, see . -# -# @NaytSeyd tarafından portlanmıştır -# - -import asyncio - -from telethon import events -from collections import deque - -from sedenbot import CMD_HELP, bot -from sedenbot.events import sedenify - -@sedenify(outgoing=True, pattern="^.hava$") -async def _(event): - if event.fwd_from: - return - deq = deque(list("☀️🌤⛅️🌥☁️🌦🌧🌩🌨❄️")) - for _ in range(48): - await asyncio.sleep(0.1) - await event.edit("".join(deq)) - deq.rotate(1) - -@sedenify(outgoing=True, pattern="^.d[uü]nya$") -async def _(event): - if event.fwd_from: - return - deq = deque(list("🌏🌍🌎🌎🌍🌏🌍🌎")) - for _ in range(48): - await asyncio.sleep(0.1) - await event.edit("".join(deq)) - deq.rotate(1) - -@sedenify(outgoing=True, pattern="^.d[uü][sş][uü]nme$") -async def _(event): - if event.fwd_from: - return - deq = deque(list("🤔🧐🤔🧐🤔🧐")) - for _ in range(999): - await asyncio.sleep(2) - await event.edit("".join(deq)) - deq.rotate(1) - -@sedenify(outgoing=True, pattern="^.y[ıi]lan$") -async def _(event): - if event.fwd_from: - return - animation_interval = 0.3 - animation_ttl = range(0, 27) - await event.edit("Tısssss") - 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◻️◼️◼️◼️◻️\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 % 27]) - -@sedenify(outgoing=True, pattern="^.(solar|g[uü]ne[sş])$") -async def _(event): - if event.fwd_from: - return - animation_interval = 0.1 - animation_ttl = range(0, 100) - await event.edit("Ay ve Güneş") - 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◼️◼️🌎◼️◼️\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◼️◼️◼️☀◼️`", - "`◼️◼️◼️🌕◼️\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◼️◼️🌎◼️◼️\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◼️◼️◼️◼️◼️`", - "`◼️☀◼️◼️◼️\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◼️◼️🌎◼️◼️\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◼️◼️◼️◼️◼️`", - "`◼️◼️◼️◼️◼️\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◼️◼️🌎◼️◼️\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◼️☀◼️◼️◼️`", - "`◼️◼️◼️◼️◼️\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 % 100]) - -@sedenify(outgoing=True, pattern="^.şehir") -async def sehir(event): - if event.fwd_from: - return - await event.edit("""☁☁🌞 ☁ ☁ - ☁ ✈ ☁ 🚁 ☁ ☁ ☁ ☁ ☁ ☁ - -🏬🏨🏫🏢🏤🏥🏦🏪🏫 - 🌲/ l🚍\🌳👭 - 🌳/ 🚘 l 🏃 \🌴 👬 👬 🌴/ l 🚔 \🌲 - 🌲/ 🚖 l \ - 🌳/🚶 | 🚍 \ 🌴🚴🚴 -🌴/ | \🌲""") - -@sedenify(outgoing=True, pattern="^.(lmoon|ay)") -async def lmoon(event): - if event.fwd_from: - return - await event.edit("🌕🌕🌕🌕🌕🌕🌕🌕\n🌕🌕🌖🌔🌖🌔🌕🌕\n🌕🌕🌗🌔🌖🌓🌕🌕\n🌕🌕🌗🌔🌖🌓🌕🌕\n🌕🌕🌖🌓🌗🌔🌕🌕\n🌕🌕🌗🌑🌑🌓🌕🌕\n🌕🌕🌗👀🌑🌓🌕🌕\n🌕🌕🌘👄🌑🌓🌕🌕\n🌕🌕🌗🌑🌑🌒🌕🌕\n🌕🌖🌑🌑🌑🌑🌔🌕\n🌕🌘🌑🌑🌑🌑🌒🌕\n🌖🌑🌑🌑🌑🌑🌑🌔\n🌕🤜🏻🌑🌑🌑🌑🤛🏻🌕\n🌕🌖🌑🌑🌑🌑🌔🌕\n🌘🌑🌑🌑🌑🌑🌑🌒\n🌕🌕🌕🌕🌕🌕🌕🌕") - -@sedenify(outgoing=True, pattern="^.k[uü][cç][uü]lme") -async def _(event): - if event.fwd_from: - return - animation_interval = 1 - animation_ttl = range(0, 30) - await event.edit("Küçülüyor...") - 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◼️🔴🔵🌕♓♎⛎🔴🔵🌕♓♎⛎🔴🔵🌕♓♎⛎◼️\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 % 30]) - -@sedenify(outgoing=True, pattern="^.nasa") -async def _(event): - if event.fwd_from: - return - animation_interval = 1 - animation_ttl = range(0, 24) - await event.edit("Bağlanıyor..") - 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⬛⬛⬛⬛⬛⬛", - "⬛⬛⬛⬛⬛⬛\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⬜⬜⬜⬜⬜⬜", - "__Sinyal Kaybedildi....__" - ] - for i in animation_ttl: - await asyncio.sleep(animation_interval) - await event.edit(animation_chars[i % 24]) - -CMD_HELP.update({ - 'hava': ".hava\ -\nKullanım: Hava durumu animasyonu" -}) - -CMD_HELP.update({ - 'dusunme': ".dusunme\ -\nKullanım: Düşünme animasyonu." -}) - -CMD_HELP.update({ - 'yılan': ".yılan\ -\nKullanım: Yılana benzer bir animasyon." -}) - -CMD_HELP.update({ - 'solar': ".solar\ -\nKullanım: Ay ve güneşin dünya etrafında döndüğü bir animasyon." -}) - -CMD_HELP.update({ - 'dunya': ".dunya\ -\nKullanım: Dünya animasyonu." -}) - -CMD_HELP.update({ - 'kuculme': ".kuculme\ -\nKullanım: Küçülen bir animasyon." -}) - -CMD_HELP.update({ - 'lmoon': ".lmoon\ -\nKullanım: Moon komutunun farklı bir hali." -}) - -CMD_HELP.update({ - 'şehir': ".şehir\ -\nKullanım: Güzel manzaralı bir şehir." -}) - -CMD_HELP.update({ - 'nasa': ".nasa\ -\nKullanım: 👽 👽 👽" -}) diff --git a/sedenbot/moduller/lastfm.py b/sedenbot/moduller/lastfm.py index d4efb5f..19f7cbd 100644 --- a/sedenbot/moduller/lastfm.py +++ b/sedenbot/moduller/lastfm.py @@ -14,7 +14,7 @@ # along with this program. If not, see . # -from asyncio import sleep, run +from asyncio import sleep from pylast import User, WSError, LastFMNetwork, md5 from re import sub from urllib import parse @@ -27,9 +27,7 @@ from telethon.tl.types import User as Userbot from telethon.errors.rpcerrorlist import FloodWaitError -from sedenbot import (CMD_HELP, BOTLOG, BOTLOG_CHATID, DEFAULT_BIO, bot, - BIO_PREFIX, LASTFM_API, LASTFM_SECRET, - LASTFM_USERNAME, LASTFM_PASSWORD_PLAIN) +from sedenbot import CMD_HELP, BOTLOG, BOTLOG_CHATID, DEFAULT_BIO, BIO_PREFIX, lastfm, LASTFM_USERNAME, bot from sedenbot.events import extract_args, sedenify # =================== CONSTANT =================== @@ -54,21 +52,8 @@ LASTFMCHECK = False RUNNING = False LastLog = False -LASTFM_PASS = md5(LASTFM_PASSWORD_PLAIN) -lastfm = None -async def load_lastfm(): - try: - if LASTFM_API and LASTFM_SECRET and LASTFM_USERNAME and LASTFM_PASS: - lastfm = LastFMNetwork(api_key=LASTFM_API, - api_secret=LASTFM_SECRET, - username=LASTFM_USERNAME, - password_hash=LASTFM_PASS) - except: - lastfm = None - -run(load_lastfm()) - # ================================================ + @sedenify(outgoing=True, pattern="^.lastfm") async def last_fm(lastFM): """ .lastfm komutu last.fm'den verileri çeker. """ @@ -97,7 +82,6 @@ async def last_fm(lastFM): playing = User(LASTFM_USERNAME, lastfm).get_now_playing() output = f"[{LASTFM_USERNAME}]({username}) __en son şunu dinledi:__\n\n" for i, track in enumerate(recent): - print(i) printable = await artist_and_song(track) tags = await gettags(track) rectrack = parse.quote_plus(str(printable)) diff --git a/sedenbot/moduller/lovers.py b/sedenbot/moduller/lovers.py index d2ed85f..199ab49 100644 --- a/sedenbot/moduller/lovers.py +++ b/sedenbot/moduller/lovers.py @@ -16,10 +16,122 @@ # NaytSeyd ve Saniş için ❤️ # +from random import choice from asyncio import sleep from sedenbot.events import sedenify -@sedenify(outgoing=True, pattern="^.saniş") +# ================= CONSTANT ================= +SANIYE_STRINGS = [ + "blyrm🥺", + "hallo", + "nbr ex svglm", + "evt🥺", + "tamam askm", + "hosgeldin askm", + "handicap", + "jeg elsker dig", + "ja", + "ben uyuyorum, ig bebeler", + "tmm cool", + "cool bruh", + "bn varim🥺", + "kstm", + "@NightShade slk amd", + "sefsz amd", + "amd skm", + "ezk amd", + "eeee😒", + "bu ne lan Vsjjsbsjs", + "uuuuu", + "gelin kuzucuklrm", + "amedi skm", + "ex svglilrm", + "svglm olmak istyenlr dm gelsn", + "ikinizden ayriliyrm", + "ayb krcm🥺", + "ve ii gclr bkr ❤️", + "sn kmsn", + "ekle bnie", + "pika pikaaaaaaa", + "gule gule kullan", + "cnku tg skm", + "banane smk", + "bkr skm", + "slk bkre dedim", + "slm gzlm", + "iimsn", + "kayiplarda", + "snie gørdm dha ii oldm", + "hello askm", + "slk baris", + "karima sg deme", + "sen haketmistin..", + "kiyamam ki", + "bana sg demen... 🥺", + "hyr yalan", + "sen uzuyon", + "beni cok uzuyorsun", + "ecm skm", + "tmm küs, gece dc glmcm ozmn", + "iyi gecelr 🌸", + "yengenim", + "eed askm", + "yemek yiyip gelcm bebislerm", + "sapikmisin", + "bana tapacaksin burda", + "nzbdbshajahahhq yazik", + "komik olan ne", + "belki gørdum nrdn biliyn", + "pjmani skm", + "gle beraber uyuyalm", + "ama uykm var🥺", + "tm cok coolsn", + "bi susarmisiniz", + "oglum sikrirtme kendini", + "ingilizceni skm", + "buna gulecekmiydim", + "søv ona", + "@NightShade bana yavsiyo bu🥺", + "saniyeman ol", + "eed puskuvut", + "kutlay benim askim, ona yuruyemezsin😠", + "@NightShade amd😠", + "bnie hep uzuyo🥺", + "shhshshsha", + "bn derim senin yerine", + "kanka deme lazim olr", + "seni gece ariyacam, kacta musaitsin", + "ppn cko hos. svglm olrmsn", + "amd aglsn", + "hiiiiio, happy bday ona ozaman", + "bildigim kadariyla u were tek kid", + "jesus christ", + "o neydi lan zbnsshjaka", + "tamam ozaman afettim🥺", + "alisdim artik beni uzmene...", + "resimlerini siliyom...", + "seni cko øzledim❤️", + "@NightShade 💞", + "bana dc girin diyorsunuz, beni takmiyorsunuz srfszlr", + "kalbime gir", + "hadi see u", + "bu gece de ben konusamam 🥺", + "bn cikiom tgden birazdan, instageamdan yazarsn", + "sn iyi degilken bende iyi olamam 🥺", + "nazar degdi :(", + "snie øzldm", + "bende sana atmistim, sende stickers yaptin :(", + "yeterince cool degilsn", + "wowoowowowow", + "uwuwuwuwuwu", + "elni at", +] + +@sedenify(outgoing=True, pattern="^.saniye$") +async def saniye(sanisim): + await sanisim.edit(choice(SANIYE_STRINGS)) + +@sedenify(outgoing=True, pattern="^.saniş$") async def _(event): if event.fwd_from: return @@ -176,7 +288,7 @@ async def _(event): await sleep(animation_interval) await event.edit(animation_chars[i % len(animation_chars)]) -@sedenify(outgoing=True, pattern="^.snş") +@sedenify(outgoing=True, pattern="^.snş$") async def _(event): if event.fwd_from: return @@ -196,7 +308,7 @@ async def _(event): await sleep(animation_interval) await event.edit(animation_chars[i % len(animation_chars)]) -@sedenify(outgoing=True, pattern="^.naytsaniş") +@sedenify(outgoing=True, pattern="^.naytsaniş$") async def _(event): if event.fwd_from: return diff --git a/sedenbot/moduller/lyrics.py b/sedenbot/moduller/lyrics.py index 5241c7d..8910dfc 100644 --- a/sedenbot/moduller/lyrics.py +++ b/sedenbot/moduller/lyrics.py @@ -18,7 +18,7 @@ import random import lyricsgenius -from sedenbot import CMD_HELP, LOGS, GENIUS +from sedenbot import CMD_HELP, LOGS, GENIUS_API_TOKEN from sedenbot.events import extract_args, sedenify @sedenify(outgoing=True, pattern="^.lyrics") @@ -31,11 +31,11 @@ async def lyrics(lyric): "Örnek: `Stabil - Reenkarne`") return - if not GENIUS: + if not GENIUS_API_TOKEN: await lyric.edit( "`Lütfen Genius tokeni ayarlayınız. Teşekkürler!`") else: - genius = lyricsgenius.Genius(GENIUS) + genius = lyricsgenius.Genius(GENIUS_API_TOKEN) try: args = args.split('-') artist = args[0].strip() diff --git a/sedenbot/moduller/memes.py b/sedenbot/moduller/memes.py index 753b897..5fe83d6 100644 --- a/sedenbot/moduller/memes.py +++ b/sedenbot/moduller/memes.py @@ -913,7 +913,7 @@ async def scam(event): scam_action = str(args[0]).lower() scam_time = int(args[1]) else: - await event.edit("`Invalid Syntax !!`") + await event.edit("`Komut kullanımı hatalı.`") return try: if (scam_time > 0): @@ -948,6 +948,335 @@ async def typewriter(typew): await typew.edit(old_text) await asyncio.sleep(sleep_time) +@sedenify(outgoing=True, pattern="^.hava$") +async def _(event): + if event.fwd_from: + return + deq = deque(list("☀️🌤⛅️🌥☁️🌦🌧🌩🌨❄️")) + for _ in range(48): + await asyncio.sleep(0.1) + await event.edit("".join(deq)) + deq.rotate(1) + +@sedenify(outgoing=True, pattern="^.d[uü]nya$") +async def _(event): + if event.fwd_from: + return + deq = deque(list("🌏🌍🌎🌎🌍🌏🌍🌎")) + for _ in range(48): + await asyncio.sleep(0.1) + await event.edit("".join(deq)) + deq.rotate(1) + +@sedenify(outgoing=True, pattern="^.d[uü][sş][uü]nme$") +async def _(event): + if event.fwd_from: + return + deq = deque(list("🤔🧐🤔🧐🤔🧐")) + for _ in range(50): + await asyncio.sleep(2) + await event.edit("".join(deq)) + deq.rotate(1) + +@sedenify(outgoing=True, pattern="^.y[ıi]lan$") +async def _(event): + if event.fwd_from: + return + animation_interval = 0.3 + animation_ttl = range(0, 27) + await event.edit("Tısssss") + 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◻️◼️◼️◼️◻️\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 % 27]) + +@sedenify(outgoing=True, pattern="^.(solar|g[uü]ne[sş])$") +async def _(event): + if event.fwd_from: + return + animation_interval = 0.1 + animation_ttl = range(0, 100) + await event.edit("Ay ve Güneş") + 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◼️◼️🌎◼️◼️\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◼️◼️◼️☀◼️`", + "`◼️◼️◼️🌕◼️\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◼️◼️🌎◼️◼️\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◼️◼️◼️◼️◼️`", + "`◼️☀◼️◼️◼️\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◼️◼️🌎◼️◼️\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◼️◼️◼️◼️◼️`", + "`◼️◼️◼️◼️◼️\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◼️◼️🌎◼️◼️\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◼️☀◼️◼️◼️`", + "`◼️◼️◼️◼️◼️\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 % 100]) + +@sedenify(outgoing=True, pattern="^.şehir") +async def sehir(event): + if event.fwd_from: + return + await event.edit("""☁️☁️🌞 ☁️ ☁️ ☁️ + ☁️ ✈️ ☁️ 🚁 ☁️ +☁️ ☁️ ☁️ ☁️ + +🏬🏨🏫🏢🏤🏥🏦🏪🏫 + 🌲/ l🚍\🌳👭 + 🌳/ 🚘 l 🏃 \🌴 👬 + 👬 🌴/ l 🚔 \🌲 + 🌲/ 🚖 l \ 🌳🚶 + 🌳/ | 🚍 \ 🌴🚴🚴 +🌴/ | \🌲""") + +@sedenify(outgoing=True, pattern="^.(lmoon|ay)") +async def lmoon(event): + if event.fwd_from: + return + await event.edit("🌕🌕🌕🌕🌕🌕🌕🌕\n🌕🌕🌖🌔🌖🌔🌕🌕\n🌕🌕🌗🌔🌖🌓🌕🌕\n🌕🌕🌗🌔🌖🌓🌕🌕\n🌕🌕🌖🌓🌗🌔🌕🌕\n🌕🌕🌗🌑🌑🌓🌕🌕\n🌕🌕🌗👀🌑🌓🌕🌕\n🌕🌕🌘👄🌑🌓🌕🌕\n🌕🌕🌗🌑🌑🌒🌕🌕\n🌕🌖🌑🌑🌑🌑🌔🌕\n🌕🌘🌑🌑🌑🌑🌒🌕\n🌖🌑🌑🌑🌑🌑🌑🌔\n🌕🤜🏻🌑🌑🌑🌑🤛🏻🌕\n🌕🌖🌑🌑🌑🌑🌔🌕\n🌘🌑🌑🌑🌑🌑🌑🌒\n🌕🌕🌕🌕🌕🌕🌕🌕") + +@sedenify(outgoing=True, pattern="^.k[uü][cç][uü]lme") +async def _(event): + if event.fwd_from: + return + animation_interval = 1 + animation_ttl = range(0, 30) + await event.edit("Küçülüyor...") + 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◼️🔴🔵🌕♓♎⛎🔴🔵🌕♓♎⛎🔴🔵🌕♓♎⛎◼️\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 % 30]) + +@sedenify(outgoing=True, pattern="^.nasa") +async def _(event): + if event.fwd_from: + return + animation_interval = 1 + animation_ttl = range(0, 24) + await event.edit("Bağlanıyor..") + 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⬛⬛⬛⬛⬛⬛", + "⬛⬛⬛⬛⬛⬛\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⬜⬜⬜⬜⬜⬜", + "__Sinyal Kaybedildi....__" + ] + for i in animation_ttl: + await asyncio.sleep(animation_interval) + await event.edit(animation_chars[i % 24]) + CMD_HELP.update({ "memes": ".cowsay\ @@ -966,6 +1295,24 @@ async def typewriter(typew): \nKullanım: Mesajı iyice uzatın.\ \n\n.10iq\ \nKullanım: Aptallık seviyenizi ölçün !!\ +\n\n.nasa\ +\nKullanım: 👽 👽 👽\ +\n\n.şehir\ +\nKullanım: Güzel manzaralı bir şehir.\ +\n\n.lmoon\ +\nKullanım: Moon komutunun farklı bir hali.\ +\n\n.küçülme\ +\nKullanım: Küçülen bir animasyon.\ +\n\n.dünya\ +\nKullanım: Dünya animasyonu.\ +\n\n.güneş\ +\nKullanım: Ay ve güneşin dünya etrafında döndüğü bir animasyon.\ +\n\n.yılan\ +\nKullanım: Yılana benzer bir animasyon.\ +\n\n.düşünme\ +\nKullanım: Düşünme animasyonu.\ +\n\n.hava\ +\nKullanım: Hava durumu animasyonu.\ \n\n.mizah\ \nKullanım: Aptallık seviyenizi ölçün !!\ \n\n.zal\ diff --git a/sedenbot/moduller/sangmata.py b/sedenbot/moduller/sangmata.py index ff5b5e5..8f30c3a 100644 --- a/sedenbot/moduller/sangmata.py +++ b/sedenbot/moduller/sangmata.py @@ -57,7 +57,7 @@ async def _(event): if not response: await event.edit("`Botdan cevap alamadım!`") elif response.text.startswith("Forward"): - await event.edit("`Gizlilik ayarları yüzenden alıntı yapamadım`") + await event.edit("`Gizlilik ayarları yüzünden alıntı yapamadım`") else: await event.edit(response.text) sleep(1) diff --git a/sedenbot/moduller/scrapers.py b/sedenbot/moduller/scrapers.py index 1b3842b..9752180 100644 --- a/sedenbot/moduller/scrapers.py +++ b/sedenbot/moduller/scrapers.py @@ -284,7 +284,7 @@ async def urban_dict(ud_e): try: define(query) except HTTPError: - await ud_e.edit(f"Üzgünüm, {query} için hiçbir sonuç bulunamadı.") + await ud_e.edit(f"Üzgünüm, **{query}** için hiçbir sonuç bulunamadı.") return mean = define(query) deflen = sum(len(i) for i in mean[0]["def"]) @@ -311,9 +311,9 @@ async def urban_dict(ud_e): if BOTLOG: await ud_e.client.send_message( BOTLOG_CHATID, - query + "`sözcüğünün UrbanDictionary sorgusu başarıyla gerçekleştirildi!`") + query + " `sözcüğünün UrbanDictionary sorgusu başarıyla gerçekleştirildi!`") else: - await ud_e.edit(query + "**için hiçbir sonuç bulunamadı**") + await ud_e.edit(query + " **için hiçbir sonuç bulunamadı**") @sedenify(outgoing=True, pattern=r"^.tts") async def text_to_speech(query): @@ -463,7 +463,7 @@ async def translateme(trans): source_lan = LANGUAGES[f'{reply_text.src.lower()}'] transl_lan = LANGUAGES[f'{reply_text.dest.lower()}'] - reply_text = f"Şu dilden:**{source_lan.title()}**\nŞu dile:**{transl_lan.title()}:**\n\n{reply_text.text}" + reply_text = f"Şu dilden: **{source_lan.title()}**\nŞu dile: **{transl_lan.title()}:**\n\n{reply_text.text}" await trans.edit(reply_text) if BOTLOG: diff --git a/sedenbot/moduller/stickers.py b/sedenbot/moduller/stickers.py index 81a2fc8..4061007 100644 --- a/sedenbot/moduller/stickers.py +++ b/sedenbot/moduller/stickers.py @@ -44,9 +44,9 @@ "Bay dızcı bu çıkartmayı dızlıyor... ", ] -@sedenify(outgoing=True, pattern="^.dızla") +@sedenify(outgoing=True, pattern="^.(d[ıi]zla|kang)") async def dizla(args): - """ .dızla komutu çıkartmaları başka paketten alır ya da yeni bir çıkartma oluşturur. """ + """ .kang komutu çıkartmaları başka paketten alır ya da yeni bir çıkartma oluşturur. """ user = await bot.get_me() if not user.username: user.username = user.first_name @@ -275,7 +275,7 @@ async def resize_photo(photo): return image -@sedenify(outgoing=True, pattern="^.dızbilgisi") +@sedenify(outgoing=True, pattern="^.packinfo") async def dizbilgisi(event): if not event.is_reply: await event.edit("`Hiçlikten bir bilgi çekemem, sence yapabilir miyim?!`") @@ -308,25 +308,25 @@ async def dizbilgisi(event): if document_sticker.emoticon not in pack_emojis: pack_emojis.append(document_sticker.emoticon) - OUTPUT = f"**Sticker başlığı:** `{get_stickerset.set.title}\n`" \ - f"**Sticker kısa adı:** `{get_stickerset.set.short_name}`\n" \ - f"**Resmi mi:** `{get_stickerset.set.official}`\n" \ - f"**Arşivlenmiş mi:** `{get_stickerset.set.archived}`\n" \ - f"**Paketteki çıkartma sayısı:** `{len(get_stickerset.packs)}`\n" \ + OUTPUT = f"**Sticker paketi başlığı:** `{get_stickerset.set.title}\n`" \ + f"**Sticker paketi kısa adı:** `{get_stickerset.set.short_name}`\n" \ + f"**Resmi paket mi ?:** `{get_stickerset.set.official}`\n" \ + f"**Arşivlenmiş mi ?:** `{get_stickerset.set.archived}`\n" \ + f"**Paketteki sticker sayısı:** `{len(get_stickerset.packs)}`\n" \ f"**Paketteki emoji sayısı:**\n{' '.join(pack_emojis)}" await event.edit(OUTPUT) CMD_HELP.update({ "stickers": - ".dızla\ -\nKullanım: .dızla ile bir çıkartmaya ya da resme yanıtlayarak kendi çıkartma paketinize çıkartma olarak ekleyebilirsiniz.\ -\n\n.dızla [emoji(ler)]\ -\nKullanım: .dızla gibi çalışır fakat istediğiniz emojiyi çıkartmanın emojisi olarak belirtir.\ -\n\n.dızla [numara]\ + ".kang\ +\nKullanım: .kang ile bir çıkartmaya ya da resme yanıtlayarak kendi çıkartma paketinize çıkartma olarak ekleyebilirsiniz.\ +\n\n.kang [emoji(ler)]\ +\nKullanım: .kang gibi çalışır fakat istediğiniz emojiyi çıkartmanın emojisi olarak belirtir.\ +\n\n.kang [numara]\ \nKullanım: Çıkartmayı ya da resmi belirtilen pakete ekler fakat emoji olarak şu kullanılır: 🤔 \ -\n\n.dızla [emoji(ler)] [numara]\ +\n\n.kang [emoji(ler)] [numara]\ \nKullanım: Çıkartmayı ya da resmi belirtilen pakete ekler ve belirttiğiniz emoji çıkartmanın emojisi olarak kullanılır.\ -\n\n.dızbilgisi\ +\n\n.packinfo\ \nKullanım: Çıkartma paketi hakkında bilgi verir." }) diff --git a/sedenbot/moduller/system.py b/sedenbot/moduller/system.py index 449ffc0..313dad9 100644 --- a/sedenbot/moduller/system.py +++ b/sedenbot/moduller/system.py @@ -18,15 +18,15 @@ from asyncio import create_subprocess_shell as asyncrunapp from asyncio.subprocess import PIPE as asyncPIPE -from platform import python_version, uname from shutil import which from os import remove -from telethon import version +from sedenbot.moduller.lovers import saniye +from sedenbot.moduller.ecem import ecem from sedenbot import CMD_HELP, ALIVE_MESAJI from sedenbot.events import extract_args, sedenify # ================= CONSTANT ================= -KULLANICIMESAJI = str(ALIVE_MESAJI) if ALIVE_MESAJI else uname().node +KULLANICIMESAJI = ALIVE_MESAJI # ============================================ @sedenify(outgoing=True, pattern="^.neofetch$") async def sysdetails(sysd): @@ -72,7 +72,7 @@ async def bot_ver(event): + str(stderr.decode().strip()) await event.edit("[Seden UserBot](https://telegram.dog/SedenUserBot) `Versiyonu: " - f"{verout} v3.2" + f"{verout} v3.3" "` \n" "`Toplam değişiklik: " f"{revout}" @@ -126,17 +126,22 @@ async def pipcheck(pip): @sedenify(outgoing=True, pattern="^.alive$") async def amialive(alive): + if KULLANICIMESAJI.lower() == 'ecem': + await ecem(alive) + return + elif KULLANICIMESAJI.lower() == 'saniye': + await saniye(alive) + return await alive.edit(f"`{KULLANICIMESAJI}`") @sedenify(outgoing=True, pattern="^.alives") async def alivename(kullanici): - message = kullanici.text + message = extract_args(kullanici) output = 'Kullanım: .alives ' - if not (message == '.alives' or message[7:8] != ' '): - newuser = message[8:] + if len(message) > 0: global KULLANICIMESAJI - KULLANICIMESAJI = newuser - output = 'Alive mesajı, ' + newuser + ' olarak ayarlandı !' + KULLANICIMESAJI = message + output = f'Alive mesajı, {KULLANICIMESAJI} olarak ayarlandı!' await kullanici.edit("`" f"{output}" "`") @sedenify(outgoing=True, pattern="^.resalive$") diff --git a/sedenbot/moduller/tagall.py b/sedenbot/moduller/tagall.py index 6ee3693..b8f0f0f 100644 --- a/sedenbot/moduller/tagall.py +++ b/sedenbot/moduller/tagall.py @@ -30,7 +30,7 @@ from sedenbot import CMD_HELP, bot from sedenbot.events import sedenify -@sedenify(outgoing=True, pattern="^.tagall") +@sedenify(outgoing=True, pattern="^.tagall$") async def _(event): if event.fwd_from: return @@ -44,7 +44,7 @@ async def _(event): await event.reply(mentions) await event.delete() -@sedenify(outgoing=True, pattern="^.admn") +@sedenify(outgoing=True, pattern="^.admin$") async def _(event): if event.fwd_from: return @@ -63,6 +63,6 @@ async def _(event): CMD_HELP.update({ "tagall": ".tagall\ - \nKullanım: Bu komutu kullandığınızda sohbet içerisinde ki herkesi etiketler.\n\n.admn \ + \nKullanım: Bu komutu kullandığınızda sohbet içerisinde ki herkesi etiketler.\n\n.admin \ \nKullanım: Bu komutu kullandığınızda sohbet içerisinde ki yöneticileri etiketler." }) diff --git a/sedenbot/moduller/updater.py b/sedenbot/moduller/updater.py index 82dae54..fa247dc 100644 --- a/sedenbot/moduller/updater.py +++ b/sedenbot/moduller/updater.py @@ -18,13 +18,13 @@ # Bu modül commit sayısına bağlı olarak botu günceller. # -import sys +from sys import executable, argv import asyncio import heroku3 from git import Repo from shutil import rmtree -from os import remove, execle, path, makedirs, getenv, environ +from os import remove, execl, path, makedirs, getenv, environ from git.exc import GitCommandError, InvalidGitRepositoryError, NoSuchPathError from sedenbot import CMD_HELP, bot, HEROKU_APIKEY, HEROKU_APPNAME, UPSTREAM_REPO_URL @@ -44,7 +44,7 @@ async def update_requirements(): reqs = str(requirements_path) try: process = await asyncio.create_subprocess_shell( - ' '.join([sys.executable, "-m", "pip", "install", "-r", reqs]), + ' '.join([executable, "-m", "pip", "install", "-r", reqs]), stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) await process.communicate() @@ -52,7 +52,7 @@ async def update_requirements(): except Exception as e: return repr(e) -@sedenify(outgoing=True, pattern=r"^\.update(?: |$)(.*)") +@sedenify(outgoing=True, pattern=r"^.update(?: |$)(.*)") async def upstream(ups): await ups.edit(f"`SedenBot için güncellemeler denetleniyor...`") conf = extract_args(ups) @@ -133,14 +133,14 @@ async def upstream(ups): await ups.edit( f'`Güncel SedenBot kodu zorla eşitleniyor...`') else: - await ups.edit(f'`Bot güncelleştiriliyor lütfen bekle...`') + await ups.edit('`Bot güncelleştiriliyor, lütfen bekle...`') if HEROKU_APIKEY is not None: heroku = heroku3.from_key(HEROKU_APIKEY) heroku_app = None heroku_applications = heroku.apps() if not HEROKU_APPNAME: await ups.edit( - f'`SedenBot Güncelleyiciyi kullanabilmek için HEROKU_APPNAME değişkenini tanımlamalısın. Aksi halde güncelleyici çalışmaz.`' + '`SedenBot Güncelleyiciyi kullanabilmek için HEROKU_APPNAME değişkenini tanımlamalısın. Aksi halde güncelleyici çalışmaz.`' ) repo.__del__() return @@ -154,7 +154,7 @@ async def upstream(ups): ) repo.__del__() return - await ups.edit(f'`SedenBot Güncelleniyor..\ + await ups.edit('`SedenBot Güncelleniyor..\ \nBu işlem 4-5 dakika sürebilir, lütfen sabırla bekle. Beklemene değer :)`' ) ups_rem.fetch(ac_br) @@ -172,19 +172,24 @@ async def upstream(ups): await ups.edit(f'{txt}\n`Karşılaşılan hatalar burada:\n{error}`') repo.__del__() return - await ups.edit(f'`Güncelleme başarıyla tamamlandı!\n' - f'SedenBot yeniden başlatılıyor sabırla beklediğin için teşekkür ederiz :)`') + await ups.edit('`Güncelleme başarıyla tamamlandı!\n' + 'SedenBot yeniden başlatılıyor, sabırla beklediğin için teşekkür ederiz :)`') else: try: ups_rem.pull(ac_br) except GitCommandError: repo.git.reset("--hard", "FETCH_HEAD") await update_requirements() - await ups.edit(f'`Güncelleme başarıyla tamamlandı!\n' - f'SedenBot yeniden başlatılıyor sabırla beklediğin için teşekkür ederiz :)`') - args = [sys.executable, "seden.py"] - execle(sys.executable, *args, environ) - return + await ups.edit('`Güncelleme başarıyla tamamlandı!\n' + 'SedenBot yeniden başlatılıyor, sabırla beklediğin için teşekkür ederiz :)`') + + try: + await bot.disconnect() + except: + pass + + execl(executable, executable, *argv) + CMD_HELP.update({ 'update': diff --git a/sedenbot/moduller/weather.py b/sedenbot/moduller/weather.py index 0a014dd..53ea050 100644 --- a/sedenbot/moduller/weather.py +++ b/sedenbot/moduller/weather.py @@ -19,12 +19,7 @@ import json from requests import get -from datetime import datetime -from pytz import country_timezones as c_tz -from pytz import timezone as tz -from pytz import country_names as c_n -from sedenbot import OPEN_WEATHER_MAP_APPID as OWM_API from sedenbot import CMD_HELP, WEATHER_DEFCITY from sedenbot.events import extract_args, sedenify # ===== CONSTANT ===== @@ -33,28 +28,9 @@ else: DEFCITY = None # ==================== -async def get_tz(con): - """ Verilen ülkenin zaman dilimini alır. """ - """ @aragon12 ve @zakaryan2004'e teşekkürler. """ - for c_code in c_n: - if con == c_n[c_code]: - return tz(c_tz[c_code][0]) - try: - if c_n[con]: - return tz(c_tz[con][0]) - except KeyError: - return - @sedenify(outgoing=True, pattern="^.havadurumu") -async def get_weather(weather): - """ .havadurumu komutu bir bölgenin hava durumunu OpenWeatherMap üzerinden alır. """ - - if not OWM_API: - await weather.edit( - "`Önce` https://openweathermap.org/ `adresinden bir API anahtarı almalısın.`") - return - - APPID = OWM_API +async def get_wttr(weather): + """ .havadurumu komutu bir bölgenin konumunu wttr üzerinden alır. """ args = extract_args(weather) @@ -67,84 +43,22 @@ async def get_weather(weather): return else: CITY = args - - timezone_countries = { - timezone: country - for country, timezones in c_tz.items() for timezone in timezones - } - - if "," in CITY: - newcity = CITY.split(",") - if len(newcity[1]) == 2: - CITY = newcity[0].strip() + "," + newcity[1].strip() - else: - country = await get_tz((newcity[1].strip()).title()) - try: - countrycode = timezone_countries[f'{country}'] - except KeyError: - await weather.edit("`Geçersiz ülke.`") - return - CITY = newcity[0].strip() + "," + countrycode.strip() - - url = f'https://api.openweathermap.org/data/2.5/weather?q={CITY}&appid={APPID}' - request = get(url) - result = json.loads(request.text) - - if request.status_code != 200: - await weather.edit(f"`Geçersiz ülke.`") - return - - cityname = result['name'] - curtemp = result['main']['temp'] - humidity = result['main']['humidity'] - min_temp = result['main']['temp_min'] - max_temp = result['main']['temp_max'] - desc = result['weather'][0] - desc = desc['main'] - country = result['sys']['country'] - sunrise = result['sys']['sunrise'] - sunset = result['sys']['sunset'] - wind = result['wind']['speed'] - winddir = result['wind']['deg'] - - ctimezone = tz(c_tz[country][0]) - time = datetime.now(ctimezone).strftime("%A, %I:%M %p") - fullc_n = c_n[f"{country}"] - - dirs = ["N", "NE", "E", "SE", "S", "SW", "W", "NW"] - - div = (360 / len(dirs)) - funmath = int((winddir + (div / 2)) / div) - findir = dirs[funmath % len(dirs)] - kmph = str(wind * 3.6).split(".") - mph = str(wind * 2.237).split(".") - - def fahrenheit(f): - temp = str(((f - 273.15) * 9 / 5 + 32)).split(".") - return temp[0] - - def celsius(c): - temp = str((c - 273.15)).split(".") - return temp[0] - - def sun(unix): - xx = datetime.fromtimestamp(unix, tz=ctimezone).strftime("%I:%M %p") - return xx - - await weather.edit( - f"**Sıcaklık:** `{celsius(curtemp)}°C | {fahrenheit(curtemp)}°F`\n" - + - f"**En Düşük Sıcaklık:** `{celsius(min_temp)}°C | {fahrenheit(min_temp)}°F`\n" - + - f"**En Yüksek Sıcaklık:** `{celsius(max_temp)}°C | {fahrenheit(max_temp)}°F`\n" - + f"**Nem:** `{humidity}%`\n" + - f"**Rüzgar Hızı:** `{kmph[0]} kmh | {mph[0]} mph, {findir}`\n" + - f"**Gündoğumu:** `{sun(sunrise)}`\n" + - f"**Günbatımı:** `{sun(sunset)}`\n\n" + f"**{desc}**\n" + - f"`{cityname}, {fullc_n}`\n" + f"`{time}`") + + if ',' in CITY: + CITY = CITY[:CITY.find(',')].strip() + + try: + req = get(f'http://wttr.in/{CITY}?mqT0', + headers = {'User-Agent':'curl/7.66.0', 'Accept-Language':'tr'}) + data = req.text + if '===' in data: + raise Exception + await weather.edit(f'```{data}```') + except: + await weather.edit('`Hava durumu bilgisi alınamadı.`') CMD_HELP.update({ "havadurumu": - "Kullanım: .havadurumu şehir adı veya .havadurumu şehir adı, ülke adı/ülke kodu\ + "Kullanım: .havadurumu şehir adı veya .havadurumu şehir adı\ \nBir bölgenin hava durumunu verir." }) diff --git a/sedenbot/seden_main.py b/sedenbot/seden_main.py index 9e855d5..0ae86a7 100644 --- a/sedenbot/seden_main.py +++ b/sedenbot/seden_main.py @@ -78,6 +78,6 @@ async def load_bl(): LOGS.info("Botunuz çalışıyor! Herhangi bir sohbete .alive yazarak Test edin." " Yardıma ihtiyacınız varsa, Destek grubumuza gelin https://telegram.me/SedenUserBotSupport") -LOGS.info("Bot sürümünüz Seden v3.2") +LOGS.info("Bot sürümünüz Seden v3.3") bot.run_until_disconnected()