diff --git a/Dockerfile b/Dockerfile index 247aa0c..521c881 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10 +FROM python:3.10.8-slim-buster RUN apt update && apt upgrade -y RUN apt install git -y @@ -6,7 +6,8 @@ COPY requirements.txt /requirements.txt RUN cd / RUN pip3 install -U pip && pip3 install -U -r requirements.txt -RUN mkdir /Elsa WORKDIR /Elsa -COPY start.sh /start.sh -CMD ["/bin/bash", "/start.sh"] + +COPY . . + +CMD ["python3", "bot.py"] diff --git a/README.md b/README.md index a9dfb01..f559b0f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +[](https://heroku.com/deploy?template=https://github.com/soulpc/Elsa) + + +
1297128957
+
+โฯะธ'ั ะฒั ฮฑfัฮฑฮนโ ฯf ะฒัฮนะธg โฮนffัััะธั, ะฒั ฮฑfัฮฑฮนโ ฯf ะฒัฮนะธg ัะฝั ัฮฑะผั ฮฑั ัฮฝัััฯะธั ัโัั
+ """
+
+ ABOUT_TXT = """ARAKAL THERAVAD MOVIES
+
+โข ฮทฮฑะผั : ARAKAL THERAVAD MOVIES
+โข ฯ
ััั ฮทฮฑะผั : @ARAKAL_THERAVAD_MOVIES_02_bot
+โข ฯ
ััั ฮนโ : 1297128957
+โข ฮนฮทััฮฑgัฮฑะผ : โฮนฮทะบ
+
+โฯะธ'ั ะฒั ฮฑfัฮฑฮนโ ฯf ะฒัฮนะธg โฮนffัััะธั, ะฒั ฮฑfัฮฑฮนโ ฯf ะฒัฮนะธg ัะฝั ัฮฑะผั ฮฑั ัฮฝัััฯะธั ัโัั
+ """
+
+ HELP_TXT = """Hแดส {} Fสษชแดษดแด
Hแดสแด Yแดแดส Bแดแดแดแดษดs ๐"""
SOURCE_TXT = """NOTE:
- ๐ด๐ป๐๐ฐ ๐ธ๐ ๐พ๐ฟ๐ด๐ฝ ๐๐พ๐๐๐ฒ๐ด ๐ฟ๐๐พ๐น๐ด๐ฒ๐.
- ๐๐พ๐๐๐ฒ๐ด - ๐ฒ๐ป๐ธ๐ฒ๐บ ๐๐ด๐ฟ๐พ ๐ฑ๐๐๐๐พ๐ฝ
DEVS:
-- ๐ฒ๐ธ๐ฝ๐ด๐ผ๐ฐ๐ป๐ฐ.๐ฒ๐พ๐ผ"""
+- ARAKAL_THERAVAD_MOVIES.๐ฒ๐พ๐ผ"""
MANUELFILTER_TXT = """Help: Filters
- ๐ต๐ธ๐ป๐๐ด๐ ๐ธ๐ ๐๐ท๐ด ๐ต๐ด๐ฐ๐๐๐๐ด ๐๐ด๐๐ด ๐๐๐ด๐๐ ๐ฒ๐ฐ๐ฝ ๐๐ด๐ ๐ฐ๐๐๐พ๐ผ๐ฐ๐๐ด๐ณ ๐๐ด๐ฟ๐ป๐ธ๐ด๐ ๐ต๐พ๐ ๐ฐ ๐ฟ๐ฐ๐๐๐ธ๐ฒ๐๐ป๐ฐ๐ ๐บ๐ด๐๐๐พ๐๐ณ ๐ฐ๐ฝ๐ณ ๐ด๐ป๐๐ฐ ๐๐ธ๐ป๐ป ๐๐ด๐๐ฟ๐พ๐ฝ๐ณ ๐๐ท๐ด๐ฝ๐ด๐
๐ด๐ ๐ฐ ๐บ๐ด๐๐๐พ๐๐ณ ๐ธ๐ ๐ต๐พ๐๐ฝ๐ณ ๐๐ท๐ด ๐ผ๐ด๐๐๐ฐ๐ถ๐ด
NOTE:
-๐ท. ๐ด๐ป๐๐ฐ ๐๐ท๐พ๐๐ป๐ณ ๐ท๐ฐ๐
๐ด ๐ฐ๐ณ๐ผ๐ธ๐ฝ ๐ฟ๐๐ธ๐
๐ธ๐ป๐ป๐ฐ๐ถ๐ด.
-๐ธ. ๐พ๐ฝ๐ป๐ ๐ฐ๐ณ๐ผ๐ธ๐ฝ๐ ๐ฒ๐ฐ๐ฝ ๐ฐ๐ณ๐ณ ๐ต๐ธ๐ป๐๐ด๐๐ ๐ธ๐ฝ ๐ฐ ๐ฒ๐ท๐ฐ๐.
-๐น. ๐ฐ๐ป๐ด๐๐ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐ท๐ฐ๐
๐ด ๐ฐ ๐ป๐ธ๐ผ๐ธ๐ ๐พ๐ต ๐ผ๐บ ๐ฒ๐ท๐ฐ๐๐ฐ๐ฒ๐๐ด๐๐.
+ ๐ด๐ป๐๐ฐ ๐๐ท๐พ๐๐ป๐ณ ๐ท๐ฐ๐
๐ด ๐ฐ๐ณ๐ผ๐ธ๐ฝ ๐ฟ๐๐ธ๐
๐ธ๐ป๐ป๐ฐ๐ถ๐ด.
+ ๐พ๐ฝ๐ป๐ ๐ฐ๐ณ๐ผ๐ธ๐ฝ๐ ๐ฒ๐ฐ๐ฝ ๐ฐ๐ณ๐ณ ๐ต๐ธ๐ป๐๐ด๐๐ ๐ธ๐ฝ ๐ฐ ๐ฒ๐ท๐ฐ๐.
+ ๐ฐ๐ป๐ด๐๐ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐ท๐ฐ๐
๐ด ๐ฐ ๐ป๐ธ๐ผ๐ธ๐ ๐พ๐ต ๐ฒ๐ท๐ฐ๐๐ฐ๐ฒ๐๐ด๐๐.
Commands and Usage:
-โข /filter - add a filter in chat
-โข /filters - list all the filters of a chat
-โข /del - delete a specific filter in chat
-โข /delall - delete the whole filters in a chat (chat owner only)"""
+ /filter - add a filter in chat
+ /filters - list all the filters of a chat
+ /del - delete a specific filter in chat
+ /delall - delete the whole filters in a chat (chat owner only)"""
BUTTON_TXT = """Help: Buttons
๐ด๐ป๐๐ฐ ๐๐๐ฟ๐ฟ๐พ๐๐๐ ๐ฑ๐พ๐๐ท ๐๐๐ป ๐ฐ๐ฝ๐ณ ๐ฐ๐ป๐ด๐๐ ๐ธ๐ฝ๐ป๐ธ๐ฝ๐ด ๐ฑ๐๐๐๐พ๐ฝ๐.
NOTE:
-๐ท. ๐๐ด๐ป๐ด๐ถ๐๐ฐ๐ผ ๐๐ธ๐ป๐ป ๐ฝ๐พ๐ ๐ฐ๐ป๐ป๐พ๐๐ ๐๐พ๐ ๐๐พ ๐๐ด๐ฝ๐ณ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐๐ธ๐๐ท๐พ๐๐ ๐ฐ๐ฝ๐ ๐ฒ๐พ๐ฝ๐๐ด๐ฝ๐, ๐๐พ ๐ฒ๐พ๐ฝ๐๐ด๐ฝ๐ ๐ธ๐ ๐ผ๐ฐ๐ฝ๐ณ๐ฐ๐๐พ๐๐.
-๐ธ. ๐ด๐ป๐๐ฐ ๐๐๐ฟ๐ฟ๐พ๐๐๐ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐๐ธ๐๐ท ๐ฐ๐ฝ๐ ๐๐ด๐ป๐ด๐ถ๐๐ฐ๐ผ ๐ผ๐ด๐ณ๐ธ๐ฐ ๐๐๐ฟ๐ด.
-๐น. ๐ฑ๐๐๐๐พ๐ฝ๐ ๐๐ท๐พ๐๐ป๐ณ ๐ฑ๐ด ๐ฟ๐๐พ๐ฟ๐ด๐๐ป๐ ๐ฟ๐ฐ๐๐๐ด๐ณ ๐ฐ๐ ๐ผ๐ฐ๐๐บ๐ณ๐พ๐๐ฝ ๐ต๐พ๐๐ผ๐ฐ๐
+ ๐๐ด๐ป๐ด๐ถ๐๐ฐ๐ผ ๐๐ธ๐ป๐ป ๐ฝ๐พ๐ ๐ฐ๐ป๐ป๐พ๐๐ ๐๐พ๐ ๐๐พ ๐๐ด๐ฝ๐ณ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐๐ธ๐๐ท๐พ๐๐ ๐ฐ๐ฝ๐ ๐ฒ๐พ๐ฝ๐๐ด๐ฝ๐, ๐๐พ ๐ฒ๐พ๐ฝ๐๐ด๐ฝ๐ ๐ธ๐ ๐ผ๐ฐ๐ฝ๐ณ๐ฐ๐๐พ๐๐.
+ ๐ด๐ป๐๐ฐ ๐๐๐ฟ๐ฟ๐พ๐๐๐ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐๐ธ๐๐ท ๐ฐ๐ฝ๐ ๐๐ด๐ป๐ด๐ถ๐๐ฐ๐ผ ๐ผ๐ด๐ณ๐ธ๐ฐ ๐๐๐ฟ๐ด.
+ ๐ฑ๐๐๐๐พ๐ฝ๐ ๐๐ท๐พ๐๐ป๐ณ ๐ฑ๐ด ๐ฟ๐๐พ๐ฟ๐ด๐๐ป๐ ๐ฟ๐ฐ๐๐๐ด๐ณ ๐ฐ๐ ๐ผ๐ฐ๐๐บ๐ณ๐พ๐๐ฝ ๐ต๐พ๐๐ผ๐ฐ๐
URL buttons:
[Button Text](buttonurl:https://t.me/Example...)
@@ -55,14 +61,13 @@ class script(object):
AUTOFILTER_TXT = """Help: Auto Filter
NOTE:
-๐ท. ๐ผ๐ฐ๐บ๐ด ๐ผ๐ด ๐๐ท๐ด ๐ฐ๐ณ๐ผ๐ธ๐ฝ ๐พ๐ต ๐๐พ๐๐ ๐ฒ๐ท๐ฐ๐ฝ๐ฝ๐ด๐ป ๐ธ๐ต ๐ธ๐'๐ ๐ฟ๐๐ธ๐
๐ฐ๐๐ด.
-๐ธ. ๐ผ๐ฐ๐บ๐ด ๐๐๐๐ด ๐๐ท๐ฐ๐ ๐๐พ๐๐ ๐ฒ๐ท๐ฐ๐ฝ๐ฝ๐ด๐ป ๐ณ๐พ๐ด๐ ๐ฝ๐พ๐ ๐ฒ๐พ๐ฝ๐๐ฐ๐ธ๐ฝ๐ ๐ฒ๐ฐ๐ผ๐๐ธ๐ฟ๐, ๐ฟ๐พ๐๐ฝ ๐ฐ๐ฝ๐ณ ๐ต๐ฐ๐บ๐ด ๐ต๐ธ๐ป๐ด๐.
-๐น. ๐ต๐พ๐๐๐ฐ๐๐ณ ๐๐ท๐ด ๐ป๐ฐ๐๐ ๐ผ๐ด๐๐๐ฐ๐ถ๐ด ๐๐พ ๐ผ๐ด ๐๐ธ๐๐ท ๐๐๐พ๐๐ด๐.
- ๐ธ'๐ป๐ป ๐ฐ๐ณ๐ณ ๐ฐ๐ป๐ป ๐๐ท๐ด ๐ต๐ธ๐ป๐ด๐ ๐ธ๐ฝ ๐๐ท๐ฐ๐ ๐ฒ๐ท๐ฐ๐ฝ๐ฝ๐ด๐ป ๐๐พ ๐ผ๐ ๐ณ๐ฑ.
-โ
/set_template - ๐๐ด๐ ๐ฒ๐๐๐๐พ๐ผ ๐ธ๐ผ๐ณ๐ฑ ๐๐ด๐ผ๐ฟ๐ป๐ฐ๐๐ด ๐ต๐พ๐ ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐.
-โ
/get_template - ๐ถ๐ด๐ ๐ฒ๐๐๐๐ด๐ฝ๐ ๐ธ๐ผ๐ณ๐ฑ ๐๐ด๐ผ๐ฟ๐ป๐ฐ๐๐ด ๐พ๐ต ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐.
-โ
/autofilter on - ๐ด๐ฝ๐ฐ๐ฑ๐ป๐ด ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐ ๐ธ๐ฝ ๐๐ท๐ด ๐ถ๐๐พ๐๐ฟ๐.
-โ
/autofilter off - ๐ณ๐ธ๐๐ฐ๐ฑ๐ป๐ด๐ณ ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐ ๐ธ๐ฝ ๐๐ท๐ด ๐ถ๐๐พ๐๐ฟ๐."""
+
+ ๐ผ๐ฐ๐บ๐ด ๐๐๐๐ด ๐๐ท๐ฐ๐ ๐๐พ๐๐ ๐ฒ๐ท๐ฐ๐ฝ๐ฝ๐ด๐ป ๐ณ๐พ๐ด๐ ๐ฝ๐พ๐ ๐ฒ๐พ๐ฝ๐๐ฐ๐ธ๐ฝ๐ ๐ฒ๐ฐ๐ผ๐๐ธ๐ฟ๐, ๐ฟ๐พ๐๐ฝ ๐ฐ๐ฝ๐ณ ๐ต๐ฐ๐บ๐ด ๐ต๐ธ๐ป๐ด๐.
+ ๐ต๐พ๐๐๐ฐ๐๐ณ ๐๐ท๐ด ๐ป๐ฐ๐๐ ๐ผ๐ด๐๐๐ฐ๐ถ๐ด ๐๐พ ๐ผ๐ด ๐๐ธ๐๐ท ๐๐๐พ๐๐ด๐.
+ /set_template - ๐๐ด๐ ๐ฒ๐๐๐๐พ๐ผ ๐ธ๐ผ๐ณ๐ฑ ๐๐ด๐ผ๐ฟ๐ป๐ฐ๐๐ด ๐ต๐พ๐ ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐.
+ /get_template - ๐ถ๐ด๐ ๐ฒ๐๐๐๐ด๐ฝ๐ ๐ธ๐ผ๐ณ๐ฑ ๐๐ด๐ผ๐ฟ๐ป๐ฐ๐๐ด ๐พ๐ต ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐.
+ /autofilter on - ๐ด๐ฝ๐ฐ๐ฑ๐ป๐ด ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐ ๐ธ๐ฝ ๐๐ท๐ด ๐ถ๐๐พ๐๐ฟ๐.
+ /autofilter off - ๐ณ๐ธ๐๐ฐ๐ฑ๐ป๐ด๐ณ ๐ฐ๐๐๐พ ๐ต๐ธ๐ป๐๐ด๐ ๐ธ๐ฝ ๐๐ท๐ด ๐ถ๐๐พ๐๐ฟ๐."""
CONNECTION_TXT = """Help: Connections
@@ -70,13 +75,13 @@ class script(object):
- it helps to avoid spamming in groups.
NOTE:
-1. Only admins can add a connection.
-2. Send /connect for connecting me to ur PM
+ Only admins can add a connection.
+ Send /connect for connecting me to ur PM
Commands and Usage:
-โข /connect - connect a particular chat to your PM
-โข /disconnect - disconnect from a chat
-โข /connections - list all your connections"""
+ /connect - connect a particular chat to your PM
+ /disconnect - disconnect from a chat
+ /connections - list all your connections"""
EXTRAMOD_TXT = """Help: Extra Modules
@@ -84,10 +89,10 @@ class script(object):
these are the extra features of Elsa
Commands and Usage:
-โข /id - get id of a specified user.
-โข /info - get information about a user.
-โข /imdb - get the film information from IMDb source.
-โข /search - get the film information from various sources."""
+ /id - get id of a specified user.
+ /info - get information about a user.
+ /imdb - get the film information from IMDb source.
+ /search - get the film information from various sources."""
SONG_TXT = """๐๐พ๐ฝ๐ถ ๐ณ๐พ๐๐ฝ๐ป๐พ๐ฐ๐ณ ๐ผ๐พ๐ณ๐๐ป๐ด
@@ -95,89 +100,88 @@ class script(object):
๐ฒ๐พ๐ผ๐ผ๐ฐ๐ฝ๐ณ๐
-โญ๏ธ /song ๐๐พ๐ฝ๐ถ ๐ฝ๐ฐ๐ผ๐ด
+ /song ๐๐พ๐ฝ๐ถ ๐ฝ๐ฐ๐ผ๐ด
๐๐พ๐๐บ๐ ๐ฑ๐พ๐๐ท ๐ถ๐๐พ๐๐ฟ ๐ฐ๐ฝ๐ณ ๐ฟ๐ผ
-@๐ฒ๐ธ๐ฝ๐ด๐ผ๐ฐ๐ป๐ฐ.๐ฒ๐พ๐ผ"""
+@ARAKAL_THERAVAD_MOVIES"""
VIDEO_TXT ="""๐ท๐ด๐ป๐ฟ ๐๐พ๐ ๐๐พ ๐ณ๐พ๐๐ฝ๐ป๐พ๐ฐ๐ณ ๐
๐ธ๐ณ๐ด๐พ ๐ต๐๐พ๐ผ ๐๐พ๐๐๐๐ฑ๐ด.
-โข ๐๐ด๐ข๐จ๐ฆ
+ ๐๐ด๐ข๐จ๐ฆ
๐ ๐ฐ๐ถ ๐๐ข๐ฏ ๐๐ฐ๐ธ๐ฏ๐ญ๐ฐ๐ข๐ฅ ๐๐ฏ๐บ ๐๐ช๐ฅ๐ฆ๐ฐ ๐๐ณ๐ฐ๐ฎ ๐ ๐ฐ๐ถ๐ต๐ถ๐ฃ๐ฆ
๐๐ค๐ฌ ๐๐ค ๐๐จ๐
-โข ๐๐บ๐ฑ๐ฆ /video or /mp4 ๐๐ฏ๐ฅ (https://youtu.be/example...)
-โข ๐๐น๐ข๐ฎ๐ฑ๐ญ๐ฆ:
+ ๐๐บ๐ฑ๐ฆ /video or /mp4 ๐๐ฏ๐ฅ (https://youtu.be/example...)
+ ๐๐น๐ข๐ฎ๐ฑ๐ญ๐ฆ:
/mp4 https://youtu.be/example...
/video https://youtu.be/example..."""
- TTS_TXT = """Help: TTS ๐ค module:
+ TTS_TXT = """Help: TTS module:
Translate text to speech
Commands and Usage:
-โข /tts /covid ๐จ๐๐ฝ๐๐บ
-โ ๏ธ This service has been stopped"""
+ This service has been stopped"""
- ABOOK_TXT = """โค ๐๐๐ฅ๐ฉ: ๐ ๐๐ฝ๐๐๐ป๐๐๐
-๐๐๐ ๐๐๐ ๐๐๐๐๐๐๐ ๐ ๐ฟ๐ณ๐ต ๐๐๐๐ ๐๐ ๐ ๐๐๐๐๐ ๐๐๐๐ ๐ ๐๐๐ ๐๐๐๐ ๐๐๐๐๐๐๐ โฏ
-โค ๐๐จ๐ฆ๐ฆ๐๐ง๐๐ฌ ๐๐ง๐ ๐๐ฌ๐๐ ๐:
-โช /audiobook: ๐ฑ๐พ๐๐
๐ ๐๐๐๐ ๐ผ๐๐๐๐บ๐๐ฝ ๐๐ ๐บ๐๐ ๐ฏ๐ฃ๐ฅ ๐๐ ๐๐พ๐๐พ๐๐บ๐๐พ ๐๐๐พ ๐บ๐๐ฝ๐๐"""
+ ABOOK_TXT = """ ๐๐๐ฅ๐ฉ: ๐ ๐๐ฝ๐๐๐ป๐๐๐
+๐๐๐ ๐๐๐ ๐๐๐๐๐๐๐ ๐ ๐ฟ๐ณ๐ต ๐๐๐๐ ๐๐ ๐ ๐๐๐๐๐ ๐๐๐๐ ๐ ๐๐๐ ๐๐๐๐ ๐๐๐๐๐๐๐
+ ๐๐จ๐ฆ๐ฆ๐๐ง๐๐ฌ ๐๐ง๐ ๐๐ฌ๐๐ ๐:
+ /audiobook: ๐ฑ๐พ๐๐
๐ ๐๐๐๐ ๐ผ๐๐๐๐บ๐๐ฝ ๐๐ ๐บ๐๐ ๐ฏ๐ฃ๐ฅ ๐๐ ๐๐พ๐๐พ๐๐บ๐๐พ ๐๐๐พ ๐บ๐๐ฝ๐๐"""
DEPLOY_TXT= """๐ธ๐ต ๐๐พ๐ ๐ต๐ฐ๐ฒ๐ธ๐ฝ๐ถ ๐ฐ๐ฝ๐ ๐ธ๐๐๐๐ด ๐ธ๐ฝ ๐๐ท๐ด ๐๐ด๐ฟ๐พ ๐ฒ๐พ๐ฝ๐๐ฐ๐ฒ๐ ๐ผ๐ด..."""
PINGS_TXT = """Ping Testing:
-Helps you to know your ping ๐ถ๐ผโโ๏ธ
+Helps you to know your ping
Commands:
-โข /alive - To check you are alive.
-โข /help - To get help.
+ /alive - To check you are alive.
+ /help - To get help.
-โข /ping - To get your ping.
+ /ping - To get your ping.
-๐ ๏ธUsage๐ ๏ธ :
-โข This commands can be used in pm and groups
-โข This commands can be used buy everyone in the groups and bots pm
-โข Share us for more features"""
+ Usage :
+ This commands can be used in pm and groups
+ This commands can be used buy everyone in the groups and bots pm
+ Share us for more features"""
STICKER_TXT = """๐๐พ๐ ๐ฒ๐ฐ๐ฝ ๐๐๐ด ๐๐ท๐ธ๐ ๐ผ๐พ๐ณ๐๐ป๐ด ๐๐พ ๐ต๐ธ๐ฝ๐ณ ๐ฐ๐ฝ๐ ๐๐๐ธ๐ฒ๐บ๐ด๐๐ ๐ธ๐ณ.
-โข ๐๐๐๐๐
+ ๐๐๐๐๐
To Get Sticker ID
- โญ ๐๐ค๐ฌ ๐๐ค ๐๐จ๐
+ ๐๐ค๐ฌ ๐๐ค ๐๐จ๐
-โ Reply To Any Sticker [/stickerid]"""
+ Reply To Any Sticker [/stickerid]"""
- FONT_TXT= """โ๏ธ ๐๐๐๐๐
+ FONT_TXT= """ ๐๐๐๐๐
๐๐๐ ๐๐๐ ๐๐๐ ๐๐๐๐ ๐๐๐๐๐๐ ๐๐ ๐๐๐๐๐๐ ๐
๐๐๐ ๐๐๐๐๐
COMMAND : /font your text (optional)
Eg:- /font Hello
- This feature added by @๐ฒ๐ธ๐ฝ๐ด๐ผ๐ฐ๐ป๐ฐ.๐ฒ๐พ๐ผ"""
+ This feature added by @ARAKAL_THERAVAD_MOVIES"""
JSON_TXT = """JSON:
Bot returns json for all replied messages with /json or /js
Features:
@@ -190,24 +194,24 @@ class script(object):
WHOIS_TXT ="""WHOIS MODULE
Note:- Give a user details
-โข/whois :-give a user full details ๐"""
+/whois :-give a user full details ๐"""
- URLSHORT_TXT = """โค ๐๐๐ฅ๐ฉ: ๐ด๐๐
๐๐๐๐๐๐๐พ๐
+ URLSHORT_TXT = """ ๐๐๐ฅ๐ฉ: ๐ด๐๐
๐๐๐๐๐๐๐พ๐
๐๐๐๐ ๐๐๐๐๐๐๐ ๐๐๐๐๐ ๐ข๐๐ ๐๐ ๐๐๐๐๐ ๐ ๐๐๐
-โค ๐๐จ๐ฆ๐ฆ๐๐ง๐๐ฌ ๐๐ง๐ ๐๐ฌ๐๐ ๐:
-โช /short: ๐๐๐พ ๐๐๐๐ ๐ผ๐๐๐๐บ๐๐ฝ ๐๐๐๐ ๐๐๐๐ ๐
๐๐๐ ๐๐ ๐๐พ๐ ๐๐๐๐๐๐พ๐ฝ ๐
๐๐๐๐
-โ๐ค๐๐บ๐๐๐
๐พ:
+ ๐๐จ๐ฆ๐ฆ๐๐ง๐๐ฌ ๐๐ง๐ ๐๐ฌ๐๐ ๐:
+ /short: ๐๐๐พ ๐๐๐๐ ๐ผ๐๐๐๐บ๐๐ฝ ๐๐๐๐ ๐๐๐๐ ๐
๐๐๐ ๐๐ ๐๐พ๐ ๐๐๐๐๐๐พ๐ฝ ๐
๐๐๐๐
+๐ค๐๐บ๐๐๐
๐พ:
/short https://youtu.be/example..."""
FUN_TXT ="""Gแดแดแดs
โก ๐น๐๐๐ ๐๐พ๐ผ๐ด ๐บ๐ธ๐ฝ๐ณ ๐พ๐ต ๐ต๐๐ฝ ๐๐ท๐ธ๐ฝ๐ถ'๐ โก
-๐ฃ. /dice - ๐๐พ๐ป๐ด ๐๐ท๐ด ๐ณ๐ธ๐ฒ๐ด
-๐ค. /Throw ๐๐ /Dart - ๐๐พ ๐ผ๐ฐ๐บ๐ด ๐ณ๐ฐ๐๐
-3. /Runs - ๐๐พ๐ผ๐ด ๐๐ฐ๐ฝ๐ณ๐พ๐ผ ๐ณ๐ธ๐ฐ๐ป๐พ๐ถ๐๐ด๐
-4. /Goal or /Shoot - ๐๐พ ๐ผ๐ฐ๐บ๐ด ๐ฐ ๐ถ๐พ๐ฐ๐ป ๐พ๐ ๐๐ท๐พ๐พ๐
-5. /luck or /cownd - ๐๐ฟ๐ธ๐ฝ ๐ฐ๐ฝ๐ณ ๐๐๐ ๐๐พ๐๐ ๐ป๐๐ฒ๐บ"""
+ /dice - ๐๐พ๐ป๐ด ๐๐ท๐ด ๐ณ๐ธ๐ฒ๐ด
+ /Throw ๐๐ /Dart - ๐๐พ ๐ผ๐ฐ๐บ๐ด ๐ณ๐ฐ๐๐
+ /Runs - ๐๐พ๐ผ๐ด ๐๐ฐ๐ฝ๐ณ๐พ๐ผ ๐ณ๐ธ๐ฐ๐ป๐พ๐ถ๐๐ด๐
+ /Goal or /Shoot - ๐๐พ ๐ผ๐ฐ๐บ๐ด ๐ฐ ๐ถ๐พ๐ฐ๐ป ๐พ๐ ๐๐ท๐พ๐พ๐
+ /luck or /cownd - ๐๐ฟ๐ธ๐ฝ ๐ฐ๐ฝ๐ณ ๐๐๐ ๐๐พ๐๐ ๐ป๐๐ฒ๐บ"""
ADMIN_TXT = """Help: Admin mods
@@ -215,31 +219,31 @@ class script(object):
This module only works for my admins
Commands and Usage:
-โข /logs - to get the rescent errors
-โข /stats - to get status of files in db.
-โข /delete - to delete a specific file from db.
-โข /users - to get list of my users and ids.
-โข /chats - to get list of the my chats and ids
-โข /leave - to leave from a chat.
-โข /disable - do disable a chat.
-โข /ban - to ban a user.
-โข /unban - to unban a user.
-โข /channel - to get list of total connected channels
-โข /broadcast - to broadcast a message to all users
-โข /grp_broadcast - to broadcast a message to all groups
-โข /gfilter - To add global filter
-โข /gfilters - To view global filters
-โข /delallg - To delete all global filters from database
-โข /delg - To delete a specific global filter
-โข /setskip - Skip no of files before indexing
-โข /send - Send any message through bot to users. /send (username/userid) reply with message
-โข /deletefiles - Delete CamRip and PreDvD files delete from database """
+ /logs - to get the rescent errors
+ /stats - to get status of files in db.
+ /delete - to delete a specific file from db.
+ /users - to get list of my users and ids.
+ /chats - to get list of the my chats and ids
+ /leave - to leave from a chat.
+ /disable - do disable a chat.
+ /ban - to ban a user.
+ /unban - to unban a user.
+ /channel - to get list of total connected channels
+ /broadcast - to broadcast a message to all users
+ /grp_broadcast - to broadcast a message to all groups
+ /gfilter - To add global filter
+ /gfilters - To view global filters
+ /delallg - To delete all global filters from database
+ /delg - To delete a specific global filter
+ /setskip - Skip no of files before indexing
+ /send - Send any message through bot to users. /send (username/userid) reply with message
+ /deletefiles - Delete CamRip and PreDvD files delete from database """
- STATUS_TXT = """โ
๐๐พ๐๐ฐ๐ป ๐ต๐ธ๐ป๐ด๐: {}
-โ
๐๐พ๐๐ฐ๐ป ๐๐๐ด๐๐: {}
-โ
๐๐พ๐๐ฐ๐ป ๐ฒ๐ท๐ฐ๐๐: {}
-โ
๐๐๐ด๐ณ ๐๐๐พ๐๐ฐ๐ถ๐ด: {} ๐ผ๐๐ฑ
-โ
๐ต๐๐ด๐ด ๐๐๐พ๐๐ฐ๐ถ๐ด: {} ๐ผ๐๐ฑ"""
+ STATUS_TXT = """ ๐๐พ๐๐ฐ๐ป ๐ต๐ธ๐ป๐ด๐: {}
+ ๐๐พ๐๐ฐ๐ป ๐๐๐ด๐๐: {}
+ ๐๐พ๐๐ฐ๐ป ๐ฒ๐ท๐ฐ๐๐: {}
+ ๐๐๐ด๐ณ ๐๐๐พ๐๐ฐ๐ถ๐ด: {} ๐ผ๐๐ฑ
+ ๐ต๐๐ด๐ด ๐๐๐พ๐๐ฐ๐ถ๐ด: {} ๐ผ๐๐ฑ"""
CARB_TXT = """Help : ๐๐๐ฅ๐๐ข๐ก
๐ฒ๐ฐ๐๐ฑ๐พ๐ฝ ๐ธ๐ ๐ฐ ๐ต๐ด๐๐๐๐๐ด ๐๐พ ๐ผ๐ฐ๐บ๐ด ๐๐ท๐ด ๐ธ๐ผ๐ฐ๐ถ๐ด ๐ฐ๐ ๐๐ท๐พ๐๐ฝ ๐ธ๐ฝ ๐๐ท๐ด ๐๐พ๐ฟ ๐๐ธ๐๐ท ๐๐พ๐๐๐ด ๐๐ด๐๐๐.
@@ -262,27 +266,36 @@ class script(object):
๐ซ Your File is Ready
-๐ Fษชสแด Nแดแดแด : {}
+๐ Fษชสแด Nแดแดแด : {}
โ๏ธ Fษชสแด Sษชแดขแด : {}
"""
CHANNEL_CAP = """
Hai ๐ {} ๐
-{}
+{}
-โ ๏ธ This file will be deleted from here within 10 minute as it has copyright ... !!!
+โ ๏ธ เดเดตเดฟเดเต เดจเดฟเดจเตเดจเตเด เดตเตเดฑเต เดเดตเดฟเดเตเดฒเตเด เดฎเดพเดฑเตเดฑเดฟเดฏเดคเดฟเดจเต เดถเตเดทเด เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด... !!!
-เดเตเดชเตเดชเดฟเดฑเตเดฑเตเดฑเต เดเดณเตเดณเดคเตเดเตเดฃเตเดเต เดซเดฏเตฝ 10 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดตเดฟเดเตเดจเดฟเดจเตเดจเตเด เดกเดฟเดฒเตเดฑเตเดฑเต เดเดเตเดจเตเดจเดคเดพเดฃเต เด
เดคเตเดเตเดฃเตเดเต เดเดตเดฟเดเต เดจเดฟเดจเตเดจเตเด เดฎเดฑเตเดฑเตเดตเดฟเดเตเดเตเดเตเดเตเดเดฟเดฒเตเด เดฎเดพเดฑเตเดฑเดฟเดฏเดคเดฟเดจเต เดถเตเดทเด เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด!
+เดเตเดชเตเดชเดฟ เดฑเตเดฑเตเดฑเต เดเดณเตเดณเดคเต เดเตเดฃเตเดเต เด เดเดฐเต เดซเดฏเตฝ 10 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดเตเดฃเตเดเต เดเดตเดฟเดเต เดจเดฟเดจเตเดจเตเด เดกเดฟเดฒเตเดฑเตเดฑเดพเดตเตเด...!!!
-ยฉ Powered by {}
+โโโโโ แดแดษชษด แดกษชแดส แดs โโโโโ
+โป๏ธ ๐
๐๐๐ :- OTT UPDATES
+โป๏ธ ๐
๐๐๐ :- CHANNEL
+โป๏ธ ๐
๐๐๐ :- GROUP
+โโโโโ แดแดษชษด แดกษชแดส แดs โโโโโ
"""
SUR_TXT = """
-๐ท๐ด๐ป๐ป๐พ {},
-๐ผ๐ ๐ฝ๐ฐ๐ผ๐ด ๐ธ๐ {}, ๐ธ ๐ฒ๐ฐ๐ฝ ๐ฟ๐๐พ๐
๐ธ๐ณ๐ด ๐ผ๐พ๐
๐ธ๐ด๐, ๐น๐๐๐ ๐ฐ๐ณ๐ณ ๐ผ๐ด ๐๐พ ๐๐พ๐๐ ๐ถ๐๐พ๐๐ฟ ๐ฐ๐ฝ๐ณ ๐ด๐ฝ๐น๐พ๐
-
-"""
+๐ป๐๐๐๐ ๐ {},
+
+I'แด {}Yแดแด Cแดษด Cแดสส Mแด A๊ฑ Aแดแดแด Fษชสแดแดส Bแดแด แด 1 ๐ซถ
+
+Exแดสแด๊ฑษชแด แดสส Mแดแด
แด Tสษช๊ฑ Bแดแด Fแดส @ARAKAL_THERAVAD_MOVIES..!! ๐ซ
+
+๐ Sแดแดแดแดสแด : @OTT_ARAKAL_THERAVAD_MOVIESS
+
+๐ Oแดกษดแดส : @ARAKAL_THERAVAD_MOVIES_02_bot"""
IMDB_TEMPLATE_TXT = """
๐ แดษชแดสแด :{title}
@@ -302,9 +315,9 @@ class script(object):
โโโโโ แดแดษชษด แดกษชแดส แดs โโโโโ
-โซ๏ธ แดสแดษดษดแดส
+โซ๏ธ แดสแดษดษดแดส
-โซ๏ธ sแดแดแดแดสแด ษขสแดแดแด
+โซ๏ธ sแดแดแดแดสแด ษขสแดแดแด
โโโโโ แดแดษชษด แดกษชแดส แดs โโโโโ"""
RESTART_TXT = """
@@ -321,29 +334,38 @@ class script(object):
TOP_ALRT_MSG = """โป๏ธ แดสแดแดแดษชษดษข ๊ฐษชสแด แดษด แดส แด
แดแดแดสแด๊ฑแด... โป๏ธ"""
- MVE_NT_FND = """แดสษช๊ฑ แดแดแด ษชแด ษช๊ฑ ษดแดแด สแดแด สแดสแดแด๊ฑแดแด
แดส แดแด
แด
แดแด
แดแด แด
แดแดแดสแด๊ฑแด """
+ MVE_NT_FND = """โผ๏ธ FILE NOT FOUND ? โผ๏ธ
+
+1๏ธโฃ เดธเดฟเดจเดฟเดฎเดฏเตเดเต เดธเตเดชเตเดฒเตเดฒเดฟเดเตเดเต เดเตเดเดฟเดณเดฟเตฝ เดเดณเตเดณเดคเต เดชเตเดฒเต เดเดฃเต เดจเดฟเดเตเดเตพ เด
เดเดฟเดเตเดเดคเต เดเดจเตเดจเต เดเดฑเดชเตเดชเต เดตเดฐเตเดคเตเดคเตเด..!!
+
+ 2๏ธโฃ เดจเดฟเดเตเดเตพ เดเตเดฆเดฟเดเตเด เดธเดฟเดจเดฟเดฎ OTT เดฑเดฟเดฒเตเดธเต เดเดฏเดคเดพเดฃเต เดเดจเตเดจเต @OTT_ARAKAL_THERAVAD_MOVIESS เดฏเดฟเตฝ เดเตเดเตเดเต เดเตเดฏเตเดฏเตเด..!!
+
+3๏ธโฃ เดฎเตเดตเดฟเดเตเดเต เดตเตเดฃเตเดเดฟ เดฎเตเดธเตเดธเตเดเต เด
เดฏเดเตเดเตเดฎเตเดชเตเตพ เดฎเตเดตเดฟเดฏเตเดเต เดชเตเดฐเต เดเดฑเดเตเดเดฟเดฏ เดตเตผเดทเด เดฎเดพเดคเตเดฐเด เด
เดฏเดเตเดเตเด..!!
- NORSLTS = """โ
#๐ก๐ผ๐ฅ๐ฒ๐๐๐น๐๐ โ
+4โฃ โผ ๐ฑ๐พ๐๐๐๐ ๐๐ ๐บ๐ฝ๐๐๐ โถ @ARAKAL_THERAVAD_MOVIES_02_bot """
+
+ NORSLTS = """ #๐ก๐ผ๐ฅ๐ฒ๐๐๐น๐๐
๐๐ : {}
๐ก๐ฎ๐บ๐ฒ : {}
๐ ๐ฒ๐๐๐ฎ๐ด๐ฒ : {}"""
- I_CUDNT = """สแดสสแด {} ษช แดแดแดสแด
ษด'แด ๊ฐษชษดแด
แดษดส แดแดแด ษชแด๊ฑ ษชษด แดสแดแด ษดแดแดแด.
-แดแดแด ษชแด สแดวซแดแด๊ฑแด ๊ฐแดสแดแดแด
-โ ษขแด แดแด ษขแดแดษขสแด
-โ แดสแดแด แดแดแด ษชแด ษดแดแดแด
-โ แดแดแดส แดแดสสแดแดแด ษดแดแดแด
-โ แดแด๊ฑแดแด แดสษช๊ฑ ษขสแดแดแด
-แดxแดแดแดสแด : แดแดษดแดแดสแด 2022
-๐ฏ แด
แดษดแด แด๊ฑแด โ ' : ( ! , . / )"""
+ I_CUDNT = """สแดสสแด {} โผ๏ธ FILE NOT FOUND ? โผ๏ธ
+
+1๏ธโฃ เดธเดฟเดจเดฟเดฎเดฏเตเดเต เดธเตเดชเตเดฒเตเดฒเดฟเดเตเดเต เดเตเดเดฟเดณเดฟเตฝ เดเดณเตเดณเดคเต เดชเตเดฒเต เดเดฃเต เดจเดฟเดเตเดเตพ เด
เดเดฟเดเตเดเดคเต เดเดจเตเดจเต เดเดฑเดชเตเดชเต เดตเดฐเตเดคเตเดคเตเด..!!
+
+ 2๏ธโฃ เดจเดฟเดเตเดเตพ เดเตเดฆเดฟเดเตเด เดธเดฟเดจเดฟเดฎ OTT เดฑเดฟเดฒเตเดธเต เดเดฏเดคเดพเดฃเต เดเดจเตเดจเต @OTT_ARAKAL_THERAVAD_MOVIESS เดฏเดฟเตฝ เดเตเดเตเดเต เดเตเดฏเตเดฏเตเด..!!
+
+3๏ธโฃ เดฎเตเดตเดฟเดเตเดเต เดตเตเดฃเตเดเดฟ เดฎเตเดธเตเดธเตเดเต เด
เดฏเดเตเดเตเดฎเตเดชเตเตพ เดฎเตเดตเดฟเดฏเตเดเต เดชเตเดฐเต เดเดฑเดเตเดเดฟเดฏ เดตเตผเดทเด เดฎเดพเดคเตเดฐเด เด
เดฏเดเตเดเตเด..!!
+
+4โฃ โผ ๐ฑ๐พ๐๐๐๐ ๐๐ ๐บ๐ฝ๐๐๐ โถ @ARAKAL_THERAVAD_MOVIES_02_bot """
I_CUD_NT = """สแดสสแด {} ษช แดแดแดสแด
ษด'แด ๊ฐษชษดแด
แดษดสแดสษชษดษข สแดสแดแดแดแด
แดแด แดสแดแด.แดสแดแดแด สแดแดส ๊ฑแดแดสสษชษดษข."""
- CUDNT_FND = """สแดสสแด {} ษช แดแดแดสแด
ษด'แด ๊ฐษชษดแด
แดษดสแดสษชษดษข สแดสแดแดแดแด
แดแด แดสแดแด แด
ษชแด
สแดแด แดแดแดษด แดษดส แดษดแด แด๊ฐ แดสแด๊ฑแด?"""
+ CUDNT_FND = """สแดสสแด {} BRO เดจเดฟเดเตเดเดณเต เดเดฆเตเดฆเตเดถเดฟเดเตเด เดฎเตเดตเดฟ เดคเดพเดดเตเดเตเดเตเดเตเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดเดคเดพเดฃเตเดจเตเดจเต SPELLING เดจเตเดเตเดเดฟ CURRET เดเดฏเดฟ CLICK เดเตเดฏเตเดฏเตเด...๐๐ป"""
REPRT_MSG = """ Reported To Admin"""
CON_TXT = """แดแดแดษดแดสส ษชษดาแด
Tสษชs แดแดแด
แดสแด ษชs แดแด าษชษดแด
ษชษดาแดสแดแดแดษชแดษด แดสแดแดแด แดแดแดษดแดสษชแดs
-โข /country [๐ผ๐๐๐๐๐๐ ๐๐บ๐๐พ]
+ /country [๐ผ๐๐๐๐๐๐ ๐๐บ๐๐พ]
๐ค๐๐บ๐๐๐
๐พ :- /country India"""
diff --git a/app.json b/app.json
index f7f3b4d..66528f9 100644
--- a/app.json
+++ b/app.json
@@ -16,8 +16,8 @@
"index",
"inline"
],
- "website": "https://github.com/Devil-Botz/Elsa",
- "repository": "https://github.com/Devil-Botz/Elsa",
+ "website": "https://github.com/soulpc/Elsa",
+ "repository": "https://github.com/soulpc/Elsa",
"env": {
"BOT_TOKEN": {
"description": "Your bot token.",
@@ -84,7 +84,7 @@
"formation": {
"worker": {
"quantity": 1,
- "size": "free"
+ "size": "eco"
}
}
}
diff --git a/info.py b/info.py
index 03747df..d8e2989 100644
--- a/info.py
+++ b/info.py
@@ -2,7 +2,7 @@
import os
from os import environ
from pyrogram import enums
-from Script import script
+from Script import script
import asyncio
import json
@@ -46,11 +46,11 @@ def __init__(self):
BOT_TOKEN = environ['BOT_TOKEN']
# Bot settings
-CACHE_TIME = int(environ.get('CACHE_TIME', 300))
+CACHE_TIME = int(environ.get('CACHE_TIME', 600))
USE_CAPTION_FILTER = bool(environ.get('USE_CAPTION_FILTER', False))
-PICS = (environ.get('PICS', 'https://telegra.ph/file/2992a480cae2bc0de1c39.jpg https://telegra.ph/file/76e7b5e94430b84a3d2b2.jpg https://telegra.ph/file/3544a8773740b0412c9dd.jpg https://telegra.ph/file/4b1c7004ea8bd3fed8df9.jpg https://telegra.ph/file/a02e47d932adc336740fa.jpg')).split()
-NOR_IMG = environ.get('NOR_IMG', "https://telegra.ph/file/7d7cbf0d6c39dc5a05f5a.jpg")
-SPELL_IMG = environ.get('SPELL_IMG',"https://telegra.ph/file/b58f576fed14cd645d2cf.jpg")
+PICS = (environ.get('PICS', 'https://telegra.ph/file/715d2668aadfb32cf55de.jpg https://telegra.ph/file/76e7b5e94430b84a3d2b2.jpg https://telegra.ph/file/3544a8773740b0412c9dd.jpg https://telegra.ph/file/4b1c7004ea8bd3fed8df9.jpg https://telegra.ph/file/a02e47d932adc336740fa.jpg')).split()
+NOR_IMG = environ.get('NOR_IMG', "https://telegra.ph/file/715d2668aadfb32cf55de.jpg")
+SPELL_IMG = environ.get('SPELL_IMG',"https://telegra.ph/file/89b856e886483f9019094.jpg")
# Welcome area
MELCOW_IMG = environ.get('MELCOW_IMG',"https://telegra.ph/file/e54cae941b9b81f13eb71.jpg")
@@ -99,17 +99,17 @@ def __init__(self):
DELETE_CHANNELS = [int(dch) if id_pattern.search(dch) else dch for dch in environ.get('DELETE_CHANNELS', '0').split()]
PORT = os.environ.get("PORT", "8080")
MAX_BTN = int(environ.get('MAX_BTN', "7"))
-S_GROUP = environ.get('S_GROUP',"https://t.me/Elsasupportgp")
-MAIN_CHANNEL = environ.get('MAIN_CHANNEL',"https://t.me/+1iWSCrpI_083MDM1")
-FILE_FORWARD = environ.get('FILE_FORWARD',"https://t.me/+1dbVg9pA2GphZmI1")
+S_GROUP = environ.get('S_GROUP',"https://t.me/ARAKAL_THERAVAD_MOVIES")
+MAIN_CHANNEL = environ.get('MAIN_CHANNEL',"https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+FILE_FORWARD = environ.get('FILE_FORWARD',"https://t.me/Grupo_filles")
MSG_ALRT = environ.get('MSG_ALRT', '๐ช๐ฏ๐ฌ๐ช๐ฒ & ๐ป๐น๐ ๐จ๐ณ๐ณ ๐ด๐ ๐ญ๐ฌ๐จ๐ป๐ผ๐น๐ฌ๐บ')
-FILE_CHANNEL = int(environ.get('FILE_CHANNEL', 0))
+FILE_CHANNEL = int(environ.get('FILE_CHANNEL', '-1001765119767'))
LOG_CHANNEL = int(environ.get('LOG_CHANNEL', 0))
SUPPORT_CHAT = environ.get('SUPPORT_CHAT', 'Elsasupportgp')
AUTO_DELETE = is_enabled((environ.get('AUTO_DELETE', "True")), True)
P_TTI_SHOW_OFF = is_enabled((environ.get('P_TTI_SHOW_OFF', "False")), False)
-IMDB = is_enabled((environ.get('IMDB', "True")), True)
-SINGLE_BUTTON = is_enabled((environ.get('SINGLE_BUTTON', "False")), False)
+IMDB = is_enabled((environ.get('IMDB', "False")), False)
+SINGLE_BUTTON = is_enabled((environ.get('SINGLE_BUTTON', "True")), True)
CUSTOM_FILE_CAPTION = environ.get("CUSTOM_FILE_CAPTION", f"{script.CUSTOM_FILE_CAPTION}")
BATCH_FILE_CAPTION = environ.get("BATCH_FILE_CAPTION", CUSTOM_FILE_CAPTION)
IMDB_TEMPLATE = environ.get("IMDB_TEMPLATE", f"{script.IMDB_TEMPLATE_TXT}")
@@ -118,7 +118,7 @@ def __init__(self):
MAX_LIST_ELM = environ.get("MAX_LIST_ELM", None)
INDEX_REQ_CHANNEL = int(environ.get('INDEX_REQ_CHANNEL', LOG_CHANNEL))
FILE_STORE_CHANNEL = [int(ch) for ch in (environ.get('FILE_STORE_CHANNEL', '')).split()]
-MELCOW_NEW_USERS = is_enabled((environ.get('MELCOW_NEW_USERS', "True")), True)
+MELCOW_NEW_USERS = is_enabled((environ.get('MELCOW_NEW_USERS', "False")), False)
PROTECT_CONTENT = is_enabled((environ.get('PROTECT_CONTENT', "False")), False)
PUBLIC_FILE_STORE = is_enabled((environ.get('PUBLIC_FILE_STORE', "True")), True)
diff --git a/plugins/approve.py b/plugins/approve.py
new file mode 100644
index 0000000..40fe546
--- /dev/null
+++ b/plugins/approve.py
@@ -0,0 +1,27 @@
+from pyrogram import Client
+from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
+from pyrogram.errors import UserIsBlocked, PeerIdInvalid
+
+
+@Client.on_chat_join_request()
+async def accept_request(client, r):
+
+ rm = InlineKeyboardMarkup([[
+ InlineKeyboardButton("๐ญ ๐๐๐๐ ๐๐๐ ๐๐๐๐๐๐ ๐ญ", url=f"https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+ ]])
+
+ try:
+ await client.send_photo(
+ r.from_user.id,
+ 'https://telegra.ph/file/03a7b834ccabe5017f6b5.jpg',
+ f"**๐ง๐พ๐
๐
๐ {r.from_user.mention} ๐ป, ๐ถ๐พ๐
๐ผ๐๐๐พ ๐ณ๐ {r.chat.title}\n๐ธ๐๐๐ ๐ฑ๐พ๐๐๐พ๐๐ ๐ง๐บ๐ ๐ก๐พ๐พ๐ ๐ ๐๐๐๐๐๐พ๐ฝ...!!!**",
+ reply_markup=rm)
+
+ except UserIsBlocked:
+ print("User blocked the bot")
+ except PeerIdInvalid:
+ print("Err")
+ except Exception as e:
+ print(f"#Error\n{str(e)}")
+
+ await r.approve()
diff --git a/plugins/banned.py b/plugins/banned.py
deleted file mode 100644
index ec9c049..0000000
--- a/plugins/banned.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from pyrogram import Client, filters
-from utils import temp
-from pyrogram.types import Message
-from database.users_chats_db import db
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-from info import SUPPORT_CHAT
-
-async def banned_users(_, client, message: Message):
- return (
- message.from_user is not None or not message.sender_chat
- ) and message.from_user.id in temp.BANNED_USERS
-
-banned_user = filters.create(banned_users)
-
-async def disabled_chat(_, client, message: Message):
- return message.chat.id in temp.BANNED_CHATS
-
-disabled_group=filters.create(disabled_chat)
-
-
-@Client.on_message(filters.private & banned_user & filters.incoming)
-async def ban_reply(bot, message):
- ban = await db.get_ban_status(message.from_user.id)
- await message.reply(f'Sorry Dude, You are Banned to use Me. \nBan Reason: {ban["ban_reason"]}')
-
-@Client.on_message(filters.group & disabled_group & filters.incoming)
-async def grp_bd(bot, message):
- buttons = [[
- InlineKeyboardButton('Support', url=f'https://t.me/{SUPPORT_CHAT}')
- ]]
- reply_markup=InlineKeyboardMarkup(buttons)
- vazha = await db.get_chat(message.chat.id)
- k = await message.reply(
- text=f"CHAT NOT ALLOWED ๐\n\nMy admins has restricted me from working here ! If you want to know more about it contact support..\nReason : {vazha['reason']}.",
- reply_markup=reply_markup)
- try:
- await k.pin()
- except:
- pass
- await bot.leave_chat(message.chat.id)
diff --git a/plugins/broadcast.py b/plugins/broadcast.py
index b885065..570ae02 100644
--- a/plugins/broadcast.py
+++ b/plugins/broadcast.py
@@ -1,26 +1,23 @@
-from pyrogram import Client, filters
-import datetime
-import time
+import datetime, time, os, asyncio,logging
+from pyrogram.errors import InputUserDeactivated, UserNotParticipant, FloodWait, UserIsBlocked, PeerIdInvalid
+from pyrogram.errors.exceptions.bad_request_400 import MessageTooLong, PeerIdInvalid
+from pyrogram.types import Message, InlineKeyboardButton
+from pyrogram import Client, filters, enums
from database.users_chats_db import db
from info import ADMINS
-from utils import broadcast_messages
-import asyncio
+
@Client.on_message(filters.command("broadcast") & filters.user(ADMINS) & filters.reply)
-# https://t.me/GetTGLink/4178
-async def verupikkals(bot, message):
+async def broadcast(bot, message):
users = await db.get_all_users()
b_msg = message.reply_to_message
- sts = await message.reply_text(
- text='Broadcasting your messages...'
- )
+ sts = await message.reply_text('Bสแดแดแด
แดแดsแดษชษดษข Yแดแดส Mแดssแดษขแดs...')
start_time = time.time()
total_users = await db.total_users_count()
done = 0
blocked = 0
deleted = 0
failed =0
-
success = 0
async for user in users:
pti, sh = await broadcast_messages(int(user['id']), b_msg)
@@ -34,31 +31,27 @@ async def verupikkals(bot, message):
elif sh == "Error":
failed += 1
done += 1
- await asyncio.sleep(2)
if not done % 20:
- await sts.edit(f"Broadcast in progress:\n\nTotal Users {total_users}\nCompleted: {done} / {total_users}\nSuccess: {success}\nBlocked: {blocked}\nDeleted: {deleted}")
+ await sts.edit(f"Bสแดแดแด
แดแดsแด Iษด Pสแดษขสแดss:\n\nTแดแดแดส U๊ฑแดส๊ฑ {total_users}\nCแดแดแดฉสแดแดแดแด
: {done} / {total_users}\nSแดแดแดแด๊ฑ๊ฑ: {success}\nBสแดแดแดแดแด
: {blocked}\nDแดสแดแดแดแด
: {deleted}")
time_taken = datetime.timedelta(seconds=int(time.time()-start_time))
- await sts.edit(f"Broadcast Completed:\nCompleted in {time_taken} seconds.\n\nTotal Users {total_users}\nCompleted: {done} / {total_users}\nSuccess: {success}\nBlocked: {blocked}\nDeleted: {deleted}")
+ await sts.delete()
+ await bot.send_message(message.chat.id, f"Bสแดแดแด
แดแดsแด Coแดแดฉสแดแดแดแด
:\nTษชแดแด Tแดแดแดแด
{time_taken} Sแดแด\n\nTแดแดแดส U๊ฑแดส๊ฑ: {total_users}\nCแดแดแดฉสแดแดแดแด
: {done} / {total_users}\nSucแดแด๊ฑ๊ฑ: {success}\nBสแดแดแดแดแด
: {blocked}\nDแดสแดแดแดแด
: {deleted}")
-@Client.on_message(filters.command("grp_broadcast") & filters.user(ADMINS) & filters.reply)
-async def grp_brodcst(bot, message):
- chats = await db.get_all_chats()
- b_msg = message.reply_to_message
- sts = await message.reply_text(
- text='Broadcasting your messages...'
- )
+@Client.on_message(filters.command("clear_junk") & filters.user(ADMINS))
+async def remove_junkuser__db(bot, message):
+ users = await db.get_all_users()
+ b_msg = message
+ sts = await message.reply_text('IN PROGRESS.......')
start_time = time.time()
- total_chats = await db.total_chat_count()
+ total_users = await db.total_users_count()
+ blocked = 0
+ deleted = 0
+ failed = 0
done = 0
- failed =0
-
- success = 0
- async for chat in chats:
- pti, sh = await broadcast_messages(int(chat['id']), b_msg)
- if pti:
- success += 1
- elif pti == False:
+ async for user in users:
+ pti, sh = await clear_junk(int(user['id']), b_msg)
+ if pti == False:
if sh == "Blocked":
blocked+=1
elif sh == "Deleted":
@@ -66,8 +59,160 @@ async def grp_brodcst(bot, message):
elif sh == "Error":
failed += 1
done += 1
- await asyncio.sleep(2)
if not done % 20:
- await sts.edit(f"Broadcast in progress:\n\nTotal Chats {total_chats}\nCompleted: {done} / {total_chats}\nSuccess: {success}\nFailed: {failed}")
+ await sts.edit(f"In Progress:\n\nTotal Users {total_users}\nCompleted: {done} / {total_users}\nBlocked: {blocked}\nDeleted: {deleted}")
+ time_taken = datetime.timedelta(seconds=int(time.time()-start_time))
+ await sts.delete()
+ await bot.send_message(message.chat.id, f"Completed:\nCompleted in {time_taken} seconds.\n\nTotal Users {total_users}\nCompleted: {done} / {total_users}\nBlocked: {blocked}\nDeleted: {deleted}")
+
+
+@Client.on_message(filters.command("group_broadcast") & filters.user(ADMINS) & filters.reply)
+async def broadcast_group(bot, message):
+ groups = await db.get_all_chats()
+ b_msg = message.reply_to_message
+ sts = await message.reply_text(text='Broadcasting your messages To Groups...')
+ start_time = time.time()
+ total_groups = await db.total_chat_count()
+ done = 0
+ failed = ""
+ success = 0
+ deleted = 0
+ async for group in groups:
+ pti, sh, ex = await broadcast_messages_group(int(group['id']), b_msg)
+ if pti == True:
+ if sh == "Succes":
+ success += 1
+ elif pti == False:
+ if sh == "deleted":
+ deleted+=1
+ failed += ex
+ try:
+ await bot.leave_chat(int(group['id']))
+ except Exception as e:
+ print(f"{e} > {group['id']}")
+ done += 1
+ if not done % 20:
+ await sts.edit(f"Broadcast in progress:\n\nTotal Groups {total_groups}\nCompleted: {done} / {total_groups}\nSuccess: {success}\nDeleted: {deleted}")
+ time_taken = datetime.timedelta(seconds=int(time.time()-start_time))
+ await sts.delete()
+ try:
+ await message.reply_text(f"Broadcast Completed:\nCompleted in {time_taken} seconds.\n\nTotal Groups {total_groups}\nCompleted: {done} / {total_groups}\nSuccess: {success}\nDeleted: {deleted}\n\nFiled Reson:- {failed}")
+ except MessageTooLong:
+ with open('reason.txt', 'w+') as outfile:
+ outfile.write(failed)
+ await message.reply_document('reason.txt', caption=f"Completed:\nCompleted in {time_taken} seconds.\n\nTotal Groups {total_groups}\nCompleted: {done} / {total_groups}\nSuccess: {success}\nDeleted: {deleted}")
+ os.remove("reason.txt")
+
+
+@Client.on_message(filters.command(["junk_group", "clear_junk_group"]) & filters.user(ADMINS))
+async def junk_clear_group(bot, message):
+ groups = await db.get_all_chats()
+ b_msg = message
+ sts = await message.reply_text(text='..............')
+ start_time = time.time()
+ total_groups = await db.total_chat_count()
+ done = 0
+ failed = ""
+ deleted = 0
+ async for group in groups:
+ pti, sh, ex = await junk_group(int(group['id']), b_msg)
+ if pti == False:
+ if sh == "deleted":
+ deleted+=1
+ failed += ex
+ try:
+ await bot.leave_chat(int(group['id']))
+ except Exception as e:
+ print(f"{e} > {group['id']}")
+ done += 1
+ if not done % 20:
+ await sts.edit(f"in progress:\n\nTotal Groups {total_groups}\nCompleted: {done} / {total_groups}\nDeleted: {deleted}")
time_taken = datetime.timedelta(seconds=int(time.time()-start_time))
- await sts.edit(f"Broadcast Completed:\nCompleted in {time_taken} seconds.\n\nTotal Chats {total_chats}\nCompleted: {done} / {total_chats}\nSuccess: {success}\nFailed: {failed}")
+ await sts.delete()
+ try:
+ await bot.send_message(message.chat.id, f"Completed:\nCompleted in {time_taken} seconds.\n\nTotal Groups {total_groups}\nCompleted: {done} / {total_groups}\nDeleted: {deleted}\n\nFiled Reson:- {failed}")
+ except MessageTooLong:
+ with open('junk.txt', 'w+') as outfile:
+ outfile.write(failed)
+ await message.reply_document('junk.txt', caption=f"Completed:\nCompleted in {time_taken} seconds.\n\nTotal Groups {total_groups}\nCompleted: {done} / {total_groups}\nDeleted: {deleted}")
+ os.remove("junk.txt")
+
+async def broadcast_messages_group(chat_id, message):
+ try:
+ await message.copy(chat_id=chat_id)
+ return True, "Succes", 'mm'
+ except FloodWait as e:
+ await asyncio.sleep(e.value)
+ return await broadcast_messages_group(chat_id, message)
+ except Exception as e:
+ await db.delete_chat(int(chat_id))
+ logging.info(f"{chat_id} - PeerIdInvalid")
+ return False, "deleted", f'{e}\n\n'
+
+async def junk_group(chat_id, message):
+ try:
+ kk = await message.copy(chat_id=chat_id)
+ await kk.delete(True)
+ return True, "Succes", 'mm'
+ except FloodWait as e:
+ await asyncio.sleep(e.value)
+ return await junk_group(chat_id, message)
+ except Exception as e:
+ await db.delete_chat(int(chat_id))
+ logging.info(f"{chat_id} - PeerIdInvalid")
+ return False, "deleted", f'{e}\n\n'
+
+
+async def clear_junk(user_id, message):
+ try:
+ key = await message.copy(chat_id=user_id)
+ await key.delete(True)
+ return True, "Success"
+ except FloodWait as e:
+ await asyncio.sleep(e.value)
+ return await clear_junk(user_id, message)
+ except InputUserDeactivated:
+ await db.delete_user(int(user_id))
+ logging.info(f"{user_id}-Removed from Database, since deleted account.")
+ return False, "Deleted"
+ except UserIsBlocked:
+ logging.info(f"{user_id} -Blocked the bot.")
+ return False, "Blocked"
+ except PeerIdInvalid:
+ await db.delete_user(int(user_id))
+ logging.info(f"{user_id} - PeerIdInvalid")
+ return False, "Error"
+ except Exception as e:
+ return False, "Error"
+
+
+
+async def broadcast_messages(user_id, message):
+ try:
+ await message.copy(chat_id=user_id)
+ return True, "Success"
+ except FloodWait as e:
+ await asyncio.sleep(e.value)
+ return await broadcast_messages(user_id, message)
+ except InputUserDeactivated:
+ await db.delete_user(int(user_id))
+ logging.info(f"{user_id}-Removed from Database, since deleted account.")
+ return False, "Deleted"
+ except UserIsBlocked:
+ logging.info(f"{user_id} -Blocked the bot.")
+ return False, "Blocked"
+ except PeerIdInvalid:
+ await db.delete_user(int(user_id))
+ logging.info(f"{user_id} - PeerIdInvalid")
+ return False, "Error"
+ except Exception as e:
+ return False, "Error"
+
+
+
+
+
+
+
+
+
diff --git a/plugins/channel.py b/plugins/channel.py
deleted file mode 100644
index 7fc3ad7..0000000
--- a/plugins/channel.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from pyrogram import Client, filters
-from info import CHANNELS
-from database.ia_filterdb import save_file
-
-media_filter = filters.document | filters.video | filters.audio
-
-
-@Client.on_message(filters.chat(CHANNELS) & media_filter)
-async def media(bot, message):
- """Media Handler"""
- for file_type in ("document", "video", "audio"):
- media = getattr(message, file_type, None)
- if media is not None:
- break
- else:
- return
-
- media.file_type = file_type
- media.caption = message.caption
- await save_file(media)
diff --git a/plugins/commands.py b/plugins/commands.py
index a7c9a18..c757a70 100644
--- a/plugins/commands.py
+++ b/plugins/commands.py
@@ -23,10 +23,10 @@ async def start(client, message):
if message.chat.type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
buttons = [
[
- InlineKeyboardButton('๐ค Updates', url=(MAIN_CHANNEL))
+ InlineKeyboardButton('๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ', url=f'https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS')
],
[
- InlineKeyboardButton('สแดสแด', url=f"https://t.me/{temp.U_NAME}?start=help"),
+ InlineKeyboardButton('โญ๏ธ ๐๐๐ง ๐ข๐จ๐ฅ ๐๐๐๐ก๐ก๐๐ ๐๐๐ก๐๐ฆ โญ๏ธ', url="https://t.me/ARAKAL_THERAVAD_GROUP_LINKS"),
]
]
reply_markup = InlineKeyboardMarkup(buttons)
@@ -42,11 +42,19 @@ async def start(client, message):
await client.send_message(LOG_CHANNEL, script.LOG_TEXT_P.format(message.from_user.id, message.from_user.mention))
if len(message.command) != 2:
buttons = [[
- InlineKeyboardButton('sแดสแดสษชsแด', callback_data='start')
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ญ", url=f"https://t.me/ARAKAL_THERAVAD_MOVIES"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฎ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_02")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฏ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_03"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฐ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_04")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ", url="https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+ ],[
+ InlineKeyboardButton("โญ๏ธ ๐๐๐ง ๐ข๐จ๐ฅ ๐๐๐๐ก๐ก๐๐ ๐๐๐ก๐๐ฆ โญ๏ธ", url="https://t.me/ARAKAL_THERAVAD_GROUP_LINKS")
]]
reply_markup = InlineKeyboardMarkup(buttons)
- m=await message.reply_sticker("CAACAgUAAxkBAAINdmL9uWnC3ptj9YnTjFU4YGr5dtzwAAIEAAPBJDExieUdbguzyBAeBA")
- await asyncio.sleep(1)
+ m=await message.reply_sticker("CAACAgUAAxkBAAEK6JBlcDrxx2kKgHFEO-EyNFLg4BDG1AAC7gwAAngciVfzwSTJ0UT6ajME")
+ await asyncio.sleep(3)
await m.delete()
await message.reply_photo(
photo=random.choice(PICS),
@@ -235,97 +243,11 @@ async def start(client, message):
chat_id=message.from_user.id,
file_id=file_id,
caption=f_caption,
- reply_markup=InlineKeyboardMarkup( [ [ InlineKeyboardButton('โค๏ธโ๐ฅ แดแดษชษด แดแด แดสแดษดษดแดส โค๏ธโ๐ฅ', url=(MAIN_CHANNEL)) ] ] ),
+ reply_markup=InlineKeyboardMarkup( [ [ InlineKeyboardButton('๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ', url=(MAIN_CHANNEL)) ] ] ),
protect_content=True if pre == 'filep' else False,
)
-@Client.on_message(filters.command('channel') & filters.user(ADMINS))
-async def channel_info(bot, message):
-
- """Send basic information of channel"""
- if isinstance(CHANNELS, (int, str)):
- channels = [CHANNELS]
- elif isinstance(CHANNELS, list):
- channels = CHANNELS
- else:
- raise ValueError("Unexpected type of CHANNELS")
-
- text = '๐ **Indexed channels/groups**\n'
- for channel in channels:
- chat = await bot.get_chat(channel)
- if chat.username:
- text += '\n@' + chat.username
- else:
- text += '\n' + chat.title or chat.first_name
-
- text += f'\n\n**Total:** {len(CHANNELS)}'
-
- if len(text) < 4096:
- await message.reply(text)
- else:
- file = 'Indexed channels.txt'
- with open(file, 'w') as f:
- f.write(text)
- await message.reply_document(file)
- os.remove(file)
-
-
-@Client.on_message(filters.command('logs') & filters.user(ADMINS))
-async def log_file(bot, message):
- """Send log file"""
- try:
- await message.reply_document('TelegramBot.log')
- except Exception as e:
- await message.reply(str(e))
-
-@Client.on_message(filters.command('delete') & filters.user(ADMINS))
-async def delete(bot, message):
- """Delete file from database"""
- reply = message.reply_to_message
- if reply and reply.media:
- msg = await message.reply("Processing...โณ", quote=True)
- else:
- await message.reply('Reply to file with /delete which you want to delete', quote=True)
- return
-
- for file_type in ("document", "video", "audio"):
- media = getattr(reply, file_type, None)
- if media is not None:
- break
- else:
- await msg.edit('This is not supported file format')
- return
-
- file_id, file_ref = unpack_new_file_id(media.file_id)
-
- result = await Media.collection.delete_one({
- '_id': file_id,
- })
- if result.deleted_count:
- await msg.edit('File is successfully deleted from database')
- else:
- file_name = re.sub(r"(_|\-|\.|\+)", " ", str(media.file_name))
- result = await Media.collection.delete_many({
- 'file_name': file_name,
- 'file_size': media.file_size,
- 'mime_type': media.mime_type
- })
- if result.deleted_count:
- await msg.edit('File is successfully deleted from database')
- else:
- # files indexed before https://github.com/EvamariaTG/EvaMaria/commit/f3d2a1bcb155faf44178e5d7a685a1b533e714bf#diff-86b613edf1748372103e94cacff3b578b36b698ef9c16817bb98fe9ef22fb669R39
- # have original file name.
- result = await Media.collection.delete_many({
- 'file_name': media.file_name,
- 'file_size': media.file_size,
- 'mime_type': media.mime_type
- })
- if result.deleted_count:
- await msg.edit('File is successfully deleted from database')
- else:
- await msg.edit('File not found in database')
-
@Client.on_message(filters.command('deleteall') & filters.user(ADMINS))
async def delete_all_index(bot, message):
@@ -354,256 +276,3 @@ async def delete_all_index_confirm(bot, message):
await Media.collection.drop()
await message.answer(MSG_ALRT)
await message.message.edit('Succesfully Deleted All The Indexed Files.')
-
-
-@Client.on_message(filters.command('settings'))
-async def settings(client, message):
- userid = message.from_user.id if message.from_user else None
- if not userid:
- return await message.reply(f"You are anonymous admin. Use /connect {message.chat.id} in PM")
- chat_type = message.chat.type
-
- if chat_type == enums.ChatType.PRIVATE:
- grpid = await active_connection(str(userid))
- if grpid is not None:
- grp_id = grpid
- try:
- chat = await client.get_chat(grpid)
- title = chat.title
- except:
- await message.reply_text("Make sure I'm present in your group!!", quote=True)
- return
- else:
- await message.reply_text("I'm not connected to any groups!", quote=True)
- return
-
- elif chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- grp_id = message.chat.id
- title = message.chat.title
-
- else:
- return
-
- st = await client.get_chat_member(grp_id, userid)
- if (
- st.status != enums.ChatMemberStatus.ADMINISTRATOR
- and st.status != enums.ChatMemberStatus.OWNER
- and str(userid) not in ADMINS
- ):
- return
-
- settings = await get_settings(grp_id)
- try:
- if settings['auto_delete']:
- settings = await get_settings(grp_id)
- except KeyError:
- await save_group_settings(grp_id, 'auto_delete', True)
- settings = await get_settings(grp_id)
- if 'is_shortlink' not in settings.keys():
- await save_group_settings(grp_id, 'is_shortlink', False)
- else:
- pass
-
- if settings is not None:
- buttons = [
- [
- InlineKeyboardButton(
- 'Filter Button',
- callback_data=f'setgs#button#{settings["button"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'Single' if settings["button"] else 'Double',
- callback_data=f'setgs#button#{settings["button"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'Redirect To',
- callback_data=f'setgs#botpm#{settings["botpm"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'Bot PM' if settings["botpm"] else 'Channel',
- callback_data=f'setgs#botpm#{settings["botpm"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'File Secure',
- callback_data=f'setgs#file_secure#{settings["file_secure"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'โ
Yes' if settings["file_secure"] else 'โ No',
- callback_data=f'setgs#file_secure#{settings["file_secure"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'IMDB',
- callback_data=f'setgs#imdb#{settings["imdb"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'โ
Yes' if settings["imdb"] else 'โ No',
- callback_data=f'setgs#imdb#{settings["imdb"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'Spell Check',
- callback_data=f'setgs#spell_check#{settings["spell_check"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'โ
Yes' if settings["spell_check"] else 'โ No',
- callback_data=f'setgs#spell_check#{settings["spell_check"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'Welcome',
- callback_data=f'setgs#welcome#{settings["welcome"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'โ
Yes' if settings["welcome"] else 'โ No',
- callback_data=f'setgs#welcome#{settings["welcome"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'Auto Delete',
- callback_data=f'setgs#auto_delete#{settings["auto_delete"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- '10 Mins' if settings["auto_delete"] else 'OFF',
- callback_data=f'setgs#auto_delete#{settings["auto_delete"]}#{grp_id}',
- ),
- ],
- [
- InlineKeyboardButton(
- 'ShortLink',
- callback_data=f'setgs#is_shortlink#{settings["is_shortlink"]}#{grp_id}',
- ),
- InlineKeyboardButton(
- 'โ
ON' if settings["is_shortlink"] else 'โ OFF',
- callback_data=f'setgs#is_shortlink#{settings["is_shortlink"]}#{grp_id}',
- ),
- ],
- ]
-
- reply_markup = InlineKeyboardMarkup(buttons)
-
- await message.reply_text(
- text=f"Change Your Settings for {title} As Your Wish โ",
- reply_markup=reply_markup,
- disable_web_page_preview=True,
- parse_mode=enums.ParseMode.HTML,
- reply_to_message_id=message.id
- )
-
-
-
-@Client.on_message(filters.command('set_template'))
-async def save_template(client, message):
- sts = await message.reply("Checking template")
- userid = message.from_user.id if message.from_user else None
- if not userid:
- return await message.reply(f"You are anonymous admin. Use /connect {message.chat.id} in PM")
- chat_type = message.chat.type
-
- if chat_type == enums.ChatType.PRIVATE:
- grpid = await active_connection(str(userid))
- if grpid is not None:
- grp_id = grpid
- try:
- chat = await client.get_chat(grpid)
- title = chat.title
- except:
- await message.reply_text("Make sure I'm present in your group!!", quote=True)
- return
- else:
- await message.reply_text("I'm not connected to any groups!", quote=True)
- return
-
- elif chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- grp_id = message.chat.id
- title = message.chat.title
-
- else:
- return
-
- st = await client.get_chat_member(grp_id, userid)
- if (
- st.status != enums.ChatMemberStatus.ADMINISTRATOR
- and st.status != enums.ChatMemberStatus.OWNER
- and str(userid) not in ADMINS
- ):
- return
-
- if len(message.command) < 2:
- return await sts.edit("No Input!!")
- template = message.text.split(" ", 1)[1]
- await save_group_settings(grp_id, 'template', template)
- await sts.edit(f"Successfully changed template for {title} to\n\n{template}")
-
-@Client.on_message(filters.command("deletefiles") & filters.user(ADMINS))
-async def deletemultiplefiles(bot, message):
- btn = [[
- InlineKeyboardButton("Delete PreDVDs", callback_data="predvd"),
- InlineKeyboardButton("Delete CamRips", callback_data="camrip")
- ]]
- await message.reply_text(
- text="Select the type of files you want to delete !\n\nThis will delete 100 files from the database for the selected type.",
- reply_markup=InlineKeyboardMarkup(btn)
- )
-
-
-@Client.on_message(filters.command("send") & filters.user(ADMINS))
-async def send_msg(bot, message):
- if message.reply_to_message:
- target_id = message.text.split(" ", 1)[1]
- out = "Users Saved In DB Are:\n\n"
- success = False
- try:
- user = await bot.get_users(target_id)
- users = await db.get_all_users()
- async for usr in users:
- out += f"{usr['id']}"
- out += '\n'
- if str(user.id) in str(out):
- await message.reply_to_message.copy(int(user.id))
- success = True
- else:
- success = False
- if success:
- await message.reply_text(f"Your message has been successfully send to {user.mention}.")
- else:
- await message.reply_text("This user didn't started this bot yet !")
- except Exception as e:
- await message.reply_text(f"Error: {e}")
- else:
- await message.reply_text("Use this command as a reply to any message using the target chat id. For eg: /send userid")
-
-@Client.on_message(filters.command("shortlink") & filters.user(ADMINS))
-async def shortlink(bot, message):
- chat_type = message.chat.type
- if chat_type == enums.ChatType.PRIVATE:
- return await message.reply_text(f"Hey {message.from_user.mention}, This command only works on groups !")
- elif chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- grpid = message.chat.id
- title = message.chat.title
- else:
- return
- data = message.text
- userid = message.from_user.id
- user = await bot.get_chat_member(grpid, userid)
- if user.status != enums.ChatMemberStatus.ADMINISTRATOR and user.status != enums.ChatMemberStatus.OWNER and str(userid) not in ADMINS:
- return await message.reply_text("You don't have access to use this command !")
- else:
- pass
- try:
- command, shortlink_url, api = data.split(" ")
- except:
- return await message.reply_text("Command Incomplete :(\n\nGive me a shortlink and api along with the command !\n\nFormat: /shortlink shorturllink.in 95a8195c40d31e0c3b6baa68813fcecb1239f2e9")
- reply = await message.reply_text("Please Wait...")
- await save_group_settings(grpid, 'shortlink', shortlink_url)
- await save_group_settings(grpid, 'shortlink_api', api)
- await save_group_settings(grpid, 'is_shortlink', True)
- await reply.edit_text(f"Successfully added shortlink API for {title}.\n\nCurrent Shortlink Website: {shortlink_url}\nCurrent API: {api}")
diff --git a/plugins/connection.py b/plugins/connection.py
deleted file mode 100644
index 6011dd1..0000000
--- a/plugins/connection.py
+++ /dev/null
@@ -1,147 +0,0 @@
-from pyrogram import filters, Client, enums
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-from database.connections_mdb import add_connection, all_connections, if_active, delete_connection
-from info import ADMINS
-import logging
-
-logger = logging.getLogger(__name__)
-logger.setLevel(logging.ERROR)
-
-
-@Client.on_message((filters.private | filters.group) & filters.command('connect'))
-async def addconnection(client, message):
- userid = message.from_user.id if message.from_user else None
- if not userid:
- return await message.reply(f"You are anonymous admin. Use /connect {message.chat.id} in PM")
- chat_type = message.chat.type
-
- if chat_type == enums.ChatType.PRIVATE:
- try:
- cmd, group_id = message.text.split(" ", 1)
- except:
- await message.reply_text(
- "Enter in correct format!\n\n"
- "/connect groupid\n\n"
- "Get your Group id by adding this bot to your group and use /id",
- quote=True
- )
- return
-
- elif chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- group_id = message.chat.id
-
- try:
- st = await client.get_chat_member(group_id, userid)
- if (
- st.status != enums.ChatMemberStatus.ADMINISTRATOR
- and st.status != enums.ChatMemberStatus.OWNER
- and userid not in ADMINS
- ):
- await message.reply_text("You should be an admin in Given group!", quote=True)
- return
- except Exception as e:
- logger.exception(e)
- await message.reply_text(
- "Invalid Group ID!\n\nIf correct, Make sure I'm present in your group!!",
- quote=True,
- )
-
- return
- try:
- st = await client.get_chat_member(group_id, "me")
- if st.status == enums.ChatMemberStatus.ADMINISTRATOR:
- ttl = await client.get_chat(group_id)
- title = ttl.title
-
- addcon = await add_connection(str(group_id), str(userid))
- if addcon:
- await message.reply_text(
- f"Successfully connected to **{title}**\nNow manage your group from my pm !",
- quote=True,
- parse_mode=enums.ParseMode.MARKDOWN
- )
- if chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- await client.send_message(
- userid,
- f"Connected to **{title}** !",
- parse_mode=enums.ParseMode.MARKDOWN
- )
- else:
- await message.reply_text(
- "You're already connected to this chat!",
- quote=True
- )
- else:
- await message.reply_text("Add me as an admin in group", quote=True)
- except Exception as e:
- logger.exception(e)
- await message.reply_text('Some error occurred! Try again later.', quote=True)
- return
-
-
-@Client.on_message((filters.private | filters.group) & filters.command('disconnect'))
-async def deleteconnection(client, message):
- userid = message.from_user.id if message.from_user else None
- if not userid:
- return await message.reply(f"You are anonymous admin. Use /connect {message.chat.id} in PM")
- chat_type = message.chat.type
-
- if chat_type == enums.ChatType.PRIVATE:
- await message.reply_text("Run /connections to view or disconnect from groups!", quote=True)
-
- elif chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- group_id = message.chat.id
-
- st = await client.get_chat_member(group_id, userid)
- if (
- st.status != enums.ChatMemberStatus.ADMINISTRATOR
- and st.status != enums.ChatMemberStatus.OWNER
- and str(userid) not in ADMINS
- ):
- return
-
- delcon = await delete_connection(str(userid), str(group_id))
- if delcon:
- await message.reply_text("Successfully disconnected from this chat", quote=True)
- else:
- await message.reply_text("This chat isn't connected to me!\nDo /connect to connect.", quote=True)
-
-
-@Client.on_message(filters.private & filters.command(["connections"]))
-async def connections(client, message):
- userid = message.from_user.id
-
- groupids = await all_connections(str(userid))
- if groupids is None:
- await message.reply_text(
- "There are no active connections!! Connect to some groups first.",
- quote=True
- )
- return
- buttons = []
- for groupid in groupids:
- try:
- ttl = await client.get_chat(int(groupid))
- title = ttl.title
- active = await if_active(str(userid), str(groupid))
- act = " - ACTIVE" if active else ""
- buttons.append(
- [
- InlineKeyboardButton(
- text=f"{title}{act}", callback_data=f"groupcb:{groupid}:{act}"
- )
- ]
- )
- except:
- pass
- if buttons:
- await message.reply_text(
- "Your connected group details ;\n\n",
- reply_markup=InlineKeyboardMarkup(buttons),
- quote=True
- )
- else:
- await message.reply_text(
- "There are no active connections!! Connect to some groups first.",
- quote=True
- )
diff --git a/plugins/delete_files.py b/plugins/delete_files.py
index dda816f..798f56f 100644
--- a/plugins/delete_files.py
+++ b/plugins/delete_files.py
@@ -1,50 +1,83 @@
-#https://github.com/Joelkb/DQ-the-file-donor
+#https://github.com/CrazyDeveloperTG/Doctor-Strange
import re
+
import logging
+
from pyrogram import Client, filters
+
from info import DELETE_CHANNELS
+
from database.ia_filterdb import Media, unpack_new_file_id
logger = logging.getLogger(__name__)
media_filter = filters.document | filters.video | filters.audio
-
@Client.on_message(filters.chat(DELETE_CHANNELS) & media_filter)
+
async def deletemultiplemedia(bot, message):
+
"""Delete Multiple files from database"""
for file_type in ("document", "video", "audio"):
+
media = getattr(message, file_type, None)
+
if media is not None:
+
break
+
else:
+
return
file_id, file_ref = unpack_new_file_id(media.file_id)
result = await Media.collection.delete_one({
+
'_id': file_id,
+
})
+
if result.deleted_count:
+
logger.info('File is successfully deleted from database.')
+
else:
+
file_name = re.sub(r"(_|\-|\.|\+)", " ", str(media.file_name))
+
result = await Media.collection.delete_many({
+
'file_name': file_name,
+
'file_size': media.file_size,
+
'mime_type': media.mime_type
+
})
+
if result.deleted_count:
+
logger.info('File is successfully deleted from database.')
+
else:
+
result = await Media.collection.delete_many({
+
'file_name': media.file_name,
+
'file_size': media.file_size,
+
'mime_type': media.mime_type
+
})
+
if result.deleted_count:
+
logger.info('File is successfully deleted from database.')
+
else:
+
logger.info('File not found in database.')
diff --git a/plugins/genlink.py b/plugins/genlink.py
deleted file mode 100644
index 4d9c7dd..0000000
--- a/plugins/genlink.py
+++ /dev/null
@@ -1,125 +0,0 @@
-import re
-from pyrogram import filters, Client, enums
-from pyrogram.errors.exceptions.bad_request_400 import ChannelInvalid, UsernameInvalid, UsernameNotModified
-from info import ADMINS, LOG_CHANNEL, FILE_STORE_CHANNEL, PUBLIC_FILE_STORE
-from database.ia_filterdb import unpack_new_file_id
-from utils import temp
-import re
-import os
-import json
-import base64
-import logging
-
-logger = logging.getLogger(__name__)
-logger.setLevel(logging.INFO)
-
-async def allowed(_, __, message):
- if PUBLIC_FILE_STORE:
- return True
- if message.from_user and message.from_user.id in ADMINS:
- return True
- return False
-
-@Client.on_message(filters.command(['link', 'plink']) & filters.create(allowed))
-async def gen_link_s(bot, message):
- replied = message.reply_to_message
- if not replied:
- return await message.reply('Reply to a message to get a shareable link.')
- file_type = replied.media
- if file_type not in [enums.MessageMediaType.VIDEO, enums.MessageMediaType.AUDIO, enums.MessageMediaType.DOCUMENT]:
- return await message.reply("Reply to a supported media")
- if message.has_protected_content and message.chat.id not in ADMINS:
- return await message.reply("okDa")
- file_id, ref = unpack_new_file_id((getattr(replied, file_type.value)).file_id)
- string = 'filep_' if message.text.lower().strip() == "/plink" else 'file_'
- string += file_id
- outstr = base64.urlsafe_b64encode(string.encode("ascii")).decode().strip("=")
- await message.reply(f"Here is your Link:\nhttps://t.me/{temp.U_NAME}?start={outstr}")
-
-
-@Client.on_message(filters.command(['batch', 'pbatch']) & filters.create(allowed))
-async def gen_link_batch(bot, message):
- if " " not in message.text:
- return await message.reply("Use correct format.\nExample /batch https://t.me/cinemala_com1/10 https://t.me/cinemala_com1/20.")
- links = message.text.strip().split(" ")
- if len(links) != 3:
- return await message.reply("Use correct format.\nExample /batch https://t.me/cinemala_com1/10 https://t.me/cinemala_com1/20.")
- cmd, first, last = links
- regex = re.compile("(https://)?(t\.me/|telegram\.me/|telegram\.dog/)(c/)?(\d+|[a-zA-Z_0-9]+)/(\d+)$")
- match = regex.match(first)
- if not match:
- return await message.reply('Invalid link')
- f_chat_id = match.group(4)
- f_msg_id = int(match.group(5))
- if f_chat_id.isnumeric():
- f_chat_id = int(("-100" + f_chat_id))
-
- match = regex.match(last)
- if not match:
- return await message.reply('Invalid link')
- l_chat_id = match.group(4)
- l_msg_id = int(match.group(5))
- if l_chat_id.isnumeric():
- l_chat_id = int(("-100" + l_chat_id))
-
- if f_chat_id != l_chat_id:
- return await message.reply("Chat ids not matched.")
- try:
- chat_id = (await bot.get_chat(f_chat_id)).id
- except ChannelInvalid:
- return await message.reply('This may be a private channel / group. Make me an admin over there to index the files.')
- except (UsernameInvalid, UsernameNotModified):
- return await message.reply('Invalid Link specified.')
- except Exception as e:
- return await message.reply(f'Errors - {e}')
-
- sts = await message.reply("Generating link for your message.\nThis may take time depending upon number of messages")
- if chat_id in FILE_STORE_CHANNEL:
- string = f"{f_msg_id}_{l_msg_id}_{chat_id}_{cmd.lower().strip()}"
- b_64 = base64.urlsafe_b64encode(string.encode("ascii")).decode().strip("=")
- return await sts.edit(f"Here is your link https://t.me/{temp.U_NAME}?start=DSTORE-{b_64}")
-
- FRMT = "Generating Link...\nTotal Messages: `{total}`\nDone: `{current}`\nRemaining: `{rem}`\nStatus: `{sts}`"
-
- outlist = []
-
- # file store without db channel
- og_msg = 0
- tot = 0
- async for msg in bot.iter_messages(f_chat_id, l_msg_id, f_msg_id):
- tot += 1
- if msg.empty or msg.service:
- continue
- if not msg.media:
- # only media messages supported.
- continue
- try:
- file_type = msg.media
- file = getattr(msg, file_type.value)
- caption = getattr(msg, 'caption', '')
- if caption:
- caption = caption.html
- if file:
- file = {
- "file_id": file.file_id,
- "caption": caption,
- "title": getattr(file, "file_name", ""),
- "size": file.file_size,
- "protect": cmd.lower().strip() == "/pbatch",
- }
-
- og_msg +=1
- outlist.append(file)
- except:
- pass
- if not og_msg % 20:
- try:
- await sts.edit(FRMT.format(total=l_msg_id-f_msg_id, current=tot, rem=((l_msg_id-f_msg_id) - tot), sts="Saving Messages"))
- except:
- pass
- with open(f"batchmode_{message.from_user.id}.json", "w+") as out:
- json.dump(outlist, out)
- post = await bot.send_document(LOG_CHANNEL, f"batchmode_{message.from_user.id}.json", file_name="Batch.json", caption="โ ๏ธGenerated for filestore.")
- os.remove(f"batchmode_{message.from_user.id}.json")
- file_id, ref = unpack_new_file_id(post.document.file_id)
- await sts.edit(f"Here is your link\nContains `{og_msg}` files.\n https://t.me/{temp.U_NAME}?start=BATCH-{file_id}")
diff --git a/plugins/helper/Report_usr.py b/plugins/helper/Report_usr.py
deleted file mode 100644
index efacb10..0000000
--- a/plugins/helper/Report_usr.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Updated by @Joelkb | For Paid Edits Contact @creatorbeatz on Telegram
-
-import asyncio
-import os
-from pyrogram import filters, enums, Client
-from Script import script
-
-@Client.on_message((filters.command(["report"]) | filters.regex("@admins") | filters.regex("@admin")) & filters.group)
-async def report_user(bot, message):
- if message.reply_to_message:
- chat_id = message.chat.id
- reporter = str(message.from_user.id)
- mention = message.from_user.mention
- success = True
- report = f"๐ฑ๐พ๐๐๐๐๐พ๐ : {mention} ({reporter})" + "\n"
- report += f"๐ฌ๐พ๐๐๐บ๐๐พ : {message.reply_to_message.link}"
- # Using latest pyrogram's enums to filter out chat administrators
- async for admin in bot.get_chat_members(chat_id=message.chat.id, filter=enums.ChatMembersFilter.ADMINISTRATORS):
- if not admin.user.is_bot: # Filtering bots and prevent sending message to bots | Message will be send only to user admins
- try:
- reported_post = await message.reply_to_message.forward(admin.user.id)
- await reported_post.reply_text(
- text=report,
- chat_id=admin.user.id,
- disable_web_page_preview=True
- )
- success = True
- except:
- pass
- else: # Skipping Bots
- pass
- if success:
- await message.reply_text(script.REPRT_MSG)
diff --git a/plugins/helper/approve.py b/plugins/helper/approve.py
deleted file mode 100644
index 162eb4b..0000000
--- a/plugins/helper/approve.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import os
-import asyncio
-from pyrogram import Client, filters
-from pyrogram.types import Message, User, ChatJoinRequest
-from info import CHAT_ID, TEXT, APPROVED
-
-
-@Client.on_chat_join_request((filters.group | filters.channel) & filters.chat(CHAT_ID) if CHAT_ID else (filters.group | filters.channel))
-async def autoapprove(client, message: ChatJoinRequest):
- chat=message.chat
- user=message.from_user
- print(f"{user.first_name} Joined (Approved)")
- await client.approve_chat_join_request(chat_id=chat.id, user_id=user.id)
- if APPROVED == "on":
- await client.send_message(chat_id=chat.id, text=TEXT.format(mention=user.mention, title=chat.title))
diff --git a/plugins/helper/audiobook.py b/plugins/helper/audiobook.py
deleted file mode 100644
index 6ebfa2a..0000000
--- a/plugins/helper/audiobook.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import os
-import pyrogram
-import PyPDF2
-import time
-from pyrogram import Client, filters, enums
-from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
-from pyrogram.types import User, Message, Document
-from gtts import gTTS
-from info import DOWNLOAD_LOCATION
-
-Thanks = """ Thats The End Of Your Audio Book, And Thanks for Using this Service"""
-
-@Client.on_message(filters.command(["audiobook"])) # PdfToText
-async def pdf_to_text(bot, message):
- try:
- if message.reply_to_message:
- pdf_path = DOWNLOAD_LOCATION + f"{message.chat.id}.pdf" #pdfFileObject
- txt = await message.reply("Downloading.....")
- await message.reply_to_message.download(pdf_path)
- await txt.edit("Downloaded File")
- pdf = open(pdf_path,'rb')
- pdf_reader = PyPDF2.PdfFileReader(pdf) #pdfReaderObject
- await txt.edit("Getting Number of Pages....")
- num_of_pages = pdf_reader.getNumPages() # Number of Pages
- await txt.edit(f"Found {num_of_pages} Page")
- page_no = pdf_reader.getPage(0) # pageObject
- await txt.edit("Finding Text from Pdf File... ")
- page_content = """ """ # EmptyString
- chat_id = message.chat.id
- with open(f'{message.chat.id}.txt', 'a+') as text_path:
- for page in range (0,num_of_pages):
- page_no = pdf_reader.getPage(page) # Iteration of page number
- page_content += page_no.extractText()
- await txt.edit(f"Creating Your Audio Book...\n Please Don't Do Anything")
- output_text = page_content + Thanks
- # Change Voice by editing the Language
- language = 'en-in' # 'en': ['en-us', 'en-ca', 'en-uk', 'en-gb', 'en-au', 'en-gh', 'en-in',
- # 'en-ie', 'en-nz', 'en-ng', 'en-ph', 'en-za', 'en-tz'],
- tts_file = gTTS(text=output_text, lang=language, slow=False)
- tts_file.save(f"{message.chat.id}.mp3")
- with open(f"{message.chat.id}.mp3", "rb") as speech:
- await bot.send_voice(chat_id, speech)
- await txt.edit("๐๐ท๐ฐ๐ฝ๐บ๐ ๐ต๐พ๐ ๐๐๐ธ๐ฝ๐ถ ๐ผ๐ด...โบ๏ธ\nยฉ๐ฒ๐ธ๐ฝ๐ด๐ผ๐ฐ๐ป๐ฐ.๐ฒ๐พ๐ผ")
- os.remove(pdf_path)
-
-
- else :
- await message.reply("Please Reply to PDF file")
- except Exception as error :
- print(error)
- await txt.delete()
- os.remove(pdf_path)
diff --git a/plugins/helper/carbon.py b/plugins/helper/carbon.py
deleted file mode 100644
index e7a627e..0000000
--- a/plugins/helper/carbon.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from pyrogram import filters
-from aiohttp import ClientSession
-from pyrogram import Client as bot
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-from asyncio import gather
-from datetime import datetime, timedelta
-from io import BytesIO
-from math import atan2, cos, radians, sin, sqrt
-from os import execvp
-from random import randint
-from re import findall
-from re import sub as re_sub
-from sys import executable
-import aiofiles
-import speedtest
-from PIL import Image
-from pyrogram.types import Message
-from info import S_GROUP
-
-aiohttpsession = ClientSession()
-
-async def make_carbon(code):
- url = "https://carbonara.vercel.app/api/cook"
- async with aiohttpsession.post(url, json={"code": code}) as resp:
- image = BytesIO(await resp.read())
- image.name = "carbon.png"
- return image
-
-
-@bot.on_message(filters.command("carbon"))
-async def carbon_func(_, message):
- if not message.reply_to_message:
- return await message.reply_text(
- "สแดแดสส แดแด แด แดแดxแด แดแดssแดษขแด แดแด แดแดแดแด แดแดสสแดษด."
- )
- if not message.reply_to_message.text:
- return await message.reply_text(
- "สแดแดสส แดแด แด แดแดxแด แดแดssแดษขแด แดแด แดแดแดแด แดแดสสแดษด."
- )
- user_id = message.from_user.id
- m = await message.reply_text("แดสแดแดแดssษชษดษข...")
- carbon = await make_carbon(message.reply_to_message.text)
- await m.edit("แดแดสแดแดแด
ษชษดษข..")
- await message.reply_photo(
- photo=carbon,
- caption="**แดสษชs แดษชแด ษชs ษดษชแดแด แดษดแด\nแดแดแด
แด สส แดษชษดแดแดแดสแด.แดแดแด**",
- reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("sแดแดแดแดสแด", url=S_GROUP)]]),
- )
- await m.delete()
- carbon.close()
diff --git a/plugins/helper/covid.py b/plugins/helper/covid.py
deleted file mode 100644
index f3845b5..0000000
--- a/plugins/helper/covid.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import os
-import requests
-from requests.utils import requote_uri
-from pyrogram import Client, filters, enums
-from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
-
-API = "https://api.sumanjay.cf/covid/?country="
-
-BUTTONS = InlineKeyboardMarkup([[InlineKeyboardButton("๐ฒ๐ป๐พ๐๐ด", callback_data='close_data')]])
-
-@Client.on_message(filters.command("covid"))
-async def reply_info(client, message):
- query = message.text.split(None, 1)[1]
- await message.reply_photo(
- photo="https://telegra.ph/file/51fdcccb41510ff8af8b1.jpg",
- caption=covid_info(query),
- quote=True
- )
-
-
-def covid_info(country_name):
- try:
- r = requests.get(API + requote_uri(country_name.lower()))
- info = r.json()
- country = info['country'].capitalize()
- active = info['active']
- confirmed = info['confirmed']
- deaths = info['deaths']
- info_id = info['id']
- last_update = info['last_update']
- latitude = info['latitude']
- longitude = info['longitude']
- recovered = info['recovered']
- covid_info = f"""--**๐ฒ๐พ๐
๐ธ๐ณ ๐ท๐ฟ ๐ธ๐ฝ๐ต๐พ๐๐ผ๐ฐ๐๐ธ๐พ๐ฝ**--
-แโบ Country : `{country}`
-แโบ Actived : `{active}`
-แโบ Confirmed : `{confirmed}`
-แโบ Deaths : `{deaths}`
-แโบ ID : `{info_id}`
-แโบ Last Update : `{last_update}`
-แโบ Latitude : `{latitude}`
-แโบ Longitude : `{longitude}`
-แโบ Recovered : `{recovered}`"""
- return covid_info
- except Exception as error:
- return error
diff --git a/plugins/helper/gtranslator.py b/plugins/helper/gtranslator.py
deleted file mode 100644
index 0bc6158..0000000
--- a/plugins/helper/gtranslator.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from googletrans import Translator
-from pyrogram import Client, filters
-from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery
-from plugins.helpers.list import list
-
-@Client.on_message(filters.command(["tr"]))
-async def left(client,message):
- if (message.reply_to_message):
- try:
- lgcd = message.text.split("/tr")
- lg_cd = lgcd[1].lower().replace(" ", "")
- tr_text = message.reply_to_message.text
- translator = Translator()
- translation = translator.translate(tr_text,dest = lg_cd)
- hehek = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=f"๐๐ฐ๐ณ๐ฆ ๐๐ข๐ฏ๐จ ๐๐ฐ๐ฅ๐ฆ๐ด", url="https://cloud.google.com/translate/docs/languages"
- )
- ],
- [
- InlineKeyboardButton(
- "๐๐ญ๐ฐ๐ด๐ฆ", callback_data="close_data"
- )
- ],
- ]
- )
- try:
- for i in list:
- if list[i]==translation.src:
- fromt = i
- if list[i] == translation.dest:
- to = i
- await message.reply_text(f"translated from {fromt.capitalize()} to {to.capitalize()}\n\n```{translation.text}```", reply_markup=hehek, quote=True)
- except:
- await message.reply_text(f"Translated from **{translation.src}** To **{translation.dest}**\n\n```{translation.text}```", reply_markup=hehek, quote=True)
-
-
- except :
- print("error")
- else:
- ms = await message.reply_text("You can Use This Command by using reply to message")
- await ms.delete()
diff --git a/plugins/helper/json.py b/plugins/helper/json.py
deleted file mode 100644
index c06b59d..0000000
--- a/plugins/helper/json.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import os
-from pyrogram import Client, filters, enums
-from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message, CallbackQuery
-
-@Client.on_message(filters.command(["json", 'js', 'showjson']))
-async def jsonify(_, message):
- the_real_message = None
- reply_to_id = None
-
- if message.reply_to_message:
- the_real_message = message.reply_to_message
- else:
- the_real_message = message
- try:
- pk = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text="๐ฒ๐ป๐พ๐๐ด",
- callback_data="close_data"
- )
- ]
- ]
- )
- await message.reply_text(f"{the_real_message}", reply_markup=pk, quote=True)
- except Exception as e:
- with open("json.text", "w+", encoding="utf8") as out_file:
- out_file.write(str(the_real_message))
- reply_markup = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text="๐ฒ๐ป๐พ๐๐ด",
- callback_data="close_data"
- )
- ]
- ]
- )
- await message.reply_document(
- document="json.text",
- caption=str(e),
- disable_notification=True,
- quote=True,
- reply_markup=reply_markup
- )
- os.remove("json.text")
diff --git a/plugins/helper/sticker.py b/plugins/helper/sticker.py
deleted file mode 100644
index 218a56f..0000000
--- a/plugins/helper/sticker.py
+++ /dev/null
@@ -1,12 +0,0 @@
-#Made
-#by
-#Don_Sflix
-
-from pyrogram import Client, filters
-
-@Client.on_message(filters.command(["stickerid"]))
-async def stickerid(bot, message):
- if message.reply_to_message.sticker:
- await message.reply(f"**Sticker ID is** \n `{message.reply_to_message.sticker.file_id}` \n \n ** Unique ID is ** \n\n`{message.reply_to_message.sticker.file_unique_id}`", quote=True)
- else:
- await message.reply("Oops !! Not a sticker file")
diff --git a/plugins/helper/url_shortner.py b/plugins/helper/url_shortner.py
deleted file mode 100644
index 9f9de4e..0000000
--- a/plugins/helper/url_shortner.py
+++ /dev/null
@@ -1,180 +0,0 @@
-import os
-import aiohttp
-from pyrogram import Client, filters, enums
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, InlineQueryResultArticle, InputTextMessageContent
-from pyrogram.handlers import MessageHandler
-from pyshorteners import Shortener
-
-BITLY_API = os.environ.get("BITLY_API", "8df1df8c23f719e5cf97788cc2d40321ea30092b")
-CUTTLY_API = os.environ.get("CUTTLY_API", "f64dffbde033b6c307387dd50b7c76e505f1c")
-SHORTCM_API = os.environ.get("SHORTCM_API", "pk_...NIZv")
-GPLINKS_API = os.environ.get("GPLINKS_API", "008ccaedd6061ad1948838f410947603de9007a7")
-
-reply_markup = InlineKeyboardMarkup(
- [[
- InlineKeyboardButton("๐๐ญ๐ฐ๐ด๐ฆ", callback_data='close_data')
- ]]
- )
-
-@Client.on_message(filters.command(["short"]) & filters.regex(r'https?://[^\s]+'))
-async def reply_shortens(bot, update):
- message = await update.reply_text(
- text="`Analysing your link...`",
- disable_web_page_preview=True,
- quote=True
- )
- link = update.matches[0].group(0)
- shorten_urls = await short(link)
- await message.edit_text(
- text=shorten_urls,
- disable_web_page_preview=True
- )
-
-@Client.on_inline_query(filters.regex(r'https?://[^\s]+'))
-async def inline_short(bot, update):
- link = update.matches[0].group(0),
- shorten_urls = await short(link)
- answers = [
- InlineQueryResultArticle(
- title="Short Links",
- description=update.query,
- input_message_content=InputTextMessageContent(
- message_text=shorten_urls,
- disable_web_page_preview=True
- ),
- reply_to_message_id=message.id
- )
- ]
- await bot.answer_inline_query(
- inline_query_id=update.id,
- results=answers
- )
-
-async def short(link):
- shorten_urls = "**--Shorted URLs--**\n"
-
- # Bit.ly shorten
- if BITLY_API:
- try:
- s = Shortener(api_key=BITLY_API)
- url = s.bitly.short(link)
- shorten_urls += f"\n**Bit.ly :-** {url}"
- except Exception as error:
- print(f"Bit.ly error :- {error}")
-
- # Chilp.it shorten
- try:
- s = Shortener()
- url = s.chilpit.short(link)
- shorten_urls += f"\n**Chilp.it :-** {url}"
- except Exception as error:
- print(f"Chilp.it error :- {error}")
-
- # Clck.ru shorten
- try:
- s = Shortener()
- url = s.clckru.short(link)
- shorten_urls += f"\n**Clck.ru :-** {url}"
- except Exception as error:
- print(f"Click.ru error :- {error}")
-
- # Cutt.ly shorten
- if CUTTLY_API:
- try:
- s = Shortener(api_key=CUTTLY_API)
- url = s.cuttly.short(link)
- shorten_urls += f"\n**Cutt.ly :-** {url}"
- except Exception as error:
- print(f"Cutt.ly error :- {error}")
-
- # Da.gd shorten
- try:
- s = Shortener()
- url = s.dagd.short(link)
- shorten_urls += f"\n**Da.gd :-** {url}"
- except Exception as error:
- print(f"Da.gd error :- {error}")
-
- # Is.gd shorten
- try:
- s = Shortener()
- url = s.isgd.short(link)
- shorten_urls += f"\n**Is.gd :-** {url}"
- except Exception as error:
- print(f"Is.gd error :- {error}")
-
- # Osdb.link shorten
- try:
- s = Shortener()
- url = s.osdb.short(link)
- shorten_urls += f"\n**Osdb.link :-** {url}"
- except Exception as error:
- print(f"Osdb.link error :- {error}")
-
- # Ow.ly shorten
- try:
- s = Shortener()
- url = s.owly.short(link)
- shorten_urls += f"\n**Ow.ly :-** {url}"
- except Exception as error:
- print(f"Ow.ly error :- {error}")
-
- # Po.st shorten
- try:
- s = Shortener()
- url = s.post.short(link)
- shorten_urls += f"\n**Po.st :-** {url}"
- except Exception as error:
- print(f"Po.st error :- {error}")
-
- # Qps.ru shorten
- try:
- s = Shortener()
- url = s.qpsru.short(link)
- shorten_urls += f"\n**Qps.ru :-** {url}"
- except Exception as error:
- print(f"Qps.ru error :- {error}")
-
- # Short.cm shorten
- if SHORTCM_API:
- try:
- s = Shortener(api_key=SHORTCM_API)
- url = s.shortcm.short(link)
- shorten_urls += f"\n**Short.cm :-** {url}"
- except Exception as error:
- print(f"Short.cm error :- {error}")
-
- # TinyURL.com shorten
- try:
- s = Shortener()
- url = s.tinyurl.short(link)
- shorten_urls += f"\n**TinyURL.com :-** {url}"
- except Exception as error:
- print(f"TinyURL.com error :- {error}")
-
- # NullPointer shorten
- try:
- s = Shortener(domain='https://0x0.st')
- url = s.nullpointer.short(link)
- shorten_urls += f"\n**0x0.st :-** {url}"
- except Exception as error:
- print(f"NullPointer error :- {error}")
-
- # GPLinks shorten
- try:
- api_url = "https://gplinks.in/api"
- params = {'api': GPLINKS_API, 'url': link}
- async with aiohttp.ClientSession() as session:
- async with session.get(api_url, params=params, raise_for_status=True) as response:
- data = await response.json()
- url = data["shortenedUrl"]
- shorten_urls += f"\n**GPLinks.in :-** {url}"
- except Exception as error:
- print(f"GPLink error :- {error}")
-
- # Send the text
- try:
- shorten_urls += ""
- return shorten_urls
- except Exception as error:
- return error
diff --git a/plugins/helper/whois.py b/plugins/helper/whois.py
deleted file mode 100644
index 5c87849..0000000
--- a/plugins/helper/whois.py
+++ /dev/null
@@ -1,85 +0,0 @@
-
-"""Get info about the replied user
-Syntax: .whois"""
-
-import os
-import time
-from datetime import datetime
-from pyrogram import Client, filters, enums
-from pyrogram.errors import UserNotParticipant
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.extract_user import extract_user
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-from plugins.helper_functions.last_online_hlpr import last_online
-
-
-@Client.on_message(
- filters.command(["whois", "info"], COMMAND_HAND_LER) &
- f_onw_fliter
-)
-async def who_is(client, message):
- """ extract user information """
- status_message = await message.reply_text(
- "Wait Bro Let Me Check ๐"
- )
- from_user = None
- from_user_id, _ = extract_user(message)
- try:
- from_user = await client.get_users(from_user_id)
- except Exception as error:
- await status_message.edit(str(error))
- return
- if from_user is None:
- await status_message.edit("no valid user_id / message specified")
- return
-
- first_name = from_user.first_name or ""
- last_name = from_user.last_name or ""
- username = from_user.username or ""
-
- message_out_str = (
- "แโบ ๐ฝ๐ฐ๐ผ๐ด : "
- f"{first_name}\n"
- f"แโบ ๐๐๐ต๐ต๐ธ๐ : {last_name}\n"
- f"แโบ ๐๐๐ด๐๐ฝ๐ฐ๐ผ๐ด : @{username}\n"
- f"แโบ ๐๐๐ด๐ ๐ธ๐ณ : {from_user.id}\n"
- f"แโบ ๐๐๐ด๐ ๐ป๐ธ๐ฝ๐บ : {from_user.mention}\n" if from_user.username else ""
- f"แโบ ๐ธ๐ ๐ฐ๐ฒ๐ฒ๐พ๐๐ฝ๐ ๐ณ๐ด๐ป๐ด๐๐ด๐ณ : True\n" if from_user.is_deleted else ""
- f"แโบ ๐ธ๐ ๐
๐ด๐๐ธ๐ต๐ธ๐ด๐ณ : True" if from_user.is_verified else ""
- f"แโบ ๐ธ๐ ๐๐ฒ๐ฐ๐ผ : True" if from_user.is_scam else ""
- # f"Is Fake: True" if from_user.is_fake else ""
- f"แโบ ๐ป๐ฐ๐๐ ๐๐ด๐ด๐ฝ : {last_online(from_user)}\n\n"
- )
-
- if message.chat.type in [enums.ChatType.SUPERGROUP, enums.ChatType.CHANNEL]:
- try:
- chat_member_p = await message.chat.get_member(from_user.id)
- joined_date = datetime.fromtimestamp(
- chat_member_p.joined_date or time.time()
- ).strftime("%Y.%m.%d %H:%M:%S")
- message_out_str += (
- "Joined on: "
- f"{joined_date}"
- "\n"
- )
- except UserNotParticipant:
- pass
- chat_photo = from_user.photo
- if chat_photo:
- local_user_photo = await client.download_media(
- message=chat_photo.big_file_id
- )
- await message.reply_photo(
- photo=local_user_photo,
- quote=True,
- caption=message_out_str,
- disable_notification=True
- )
- os.remove(local_user_photo)
- else:
- await message.reply_text(
- text=message_out_str,
- quote=True,
- disable_notification=True
- )
- await status_message.delete()
diff --git a/plugins/helper_functions/admin_check.py b/plugins/helper_functions/admin_check.py
deleted file mode 100644
index bf05a2d..0000000
--- a/plugins/helper_functions/admin_check.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from pyrogram.types import Message
-from pyrogram import enums
-
-
-async def admin_check(message: Message) -> bool:
- if not message.from_user:
- return False
-
- if message.chat.type not in [enums.ChatType.SUPERGROUP, enums.ChatType.CHANNEL]:
- return False
-
- if message.from_user.id in [
- 777000, # Telegram Service Notifications
- 1087968824 # GroupAnonymousBot
- ]:
- return True
-
- client = message._client
- chat_id = message.chat.id
- user_id = message.from_user.id
-
- check_status = await client.get_chat_member(
- chat_id=chat_id,
- user_id=user_id
- )
- admin_strings = [
- enums.ChatMemberStatus.OWNER,
- enums.ChatMemberStatus.ADMINISTRATOR
- ]
- # https://git.colinshark.de/PyroBot/PyroBot/src/branch/master/pyrobot/modules/admin.py#L69
- if check_status.status not in admin_strings:
- return False
- else:
- return True
diff --git a/plugins/helper_functions/cust_p_filters.py b/plugins/helper_functions/cust_p_filters.py
deleted file mode 100644
index 33831ef..0000000
--- a/plugins/helper_functions/cust_p_filters.py
+++ /dev/null
@@ -1,47 +0,0 @@
-from pyrogram import (
- filters
-)
-from info import ADMINS, AUTH_USERS
-from plugins.helper_functions.admin_check import admin_check
-import os
-
-USE_AS_BOT = os.environ.get("USE_AS_BOT", True)
-
-def f_sudo_filter(filt, client, message):
- return bool(
- message.from_user.id in AUTH_USERS
- )
-
-
-sudo_filter = filters.create(
- func=f_sudo_filter,
- name="SudoFilter"
-)
-
-
-def onw_filter(filt, client, message):
- if USE_AS_BOT:
- return bool(
- True # message.from_user.id in ADMINS
- )
- else:
- return bool(
- message.from_user and
- message.from_user.is_self
- )
-
-
-f_onw_fliter = filters.create(
- func=onw_filter,
- name="OnwFilter"
-)
-
-
-async def admin_filter_f(filt, client, message):
- return await admin_check(message)
-
-
-admin_fliter = filters.create(
- func=admin_filter_f,
- name="AdminFilter"
-)
diff --git a/plugins/helper_functions/extract_user.py b/plugins/helper_functions/extract_user.py
deleted file mode 100644
index a4d407e..0000000
--- a/plugins/helper_functions/extract_user.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from pyrogram.types import Message
-
-
-def extract_user(message: Message) -> (int, str):
- """extracts the user from a message"""
- user_id = None
- user_first_name = None
-
- if message.reply_to_message:
- user_id = message.reply_to_message.from_user.id
- user_first_name = message.reply_to_message.from_user.first_name
-
- elif len(message.command) > 1:
- if (
- len(message.entities) > 1 and
- message.entities[1].type == "text_mention"
- ):
- # 0: is the command used
- # 1: should be the user specified
- required_entity = message.entities[1]
- user_id = required_entity.user.id
- user_first_name = required_entity.user.first_name
- else:
- user_id = message.command[1]
- # don't want to make a request -_-
- user_first_name = user_id
-
- try:
- user_id = int(user_id)
- except ValueError:
- print("เดชเตเดเตเดเตป")
-
- else:
- user_id = message.from_user.id
- user_first_name = message.from_user.first_name
-
- return (user_id, user_first_name)
diff --git a/plugins/helper_functions/fonts_func.py b/plugins/helper_functions/fonts_func.py
deleted file mode 100644
index 82da4a8..0000000
--- a/plugins/helper_functions/fonts_func.py
+++ /dev/null
@@ -1,2364 +0,0 @@
-class Fonts:
- def typewriter(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐',
- 'h': '๐',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐',
- 'l': '๐',
- 'm': '๐',
- 'n': '๐',
- 'o': '๐',
- 'p': '๐',
- 'q': '๐',
- 'r': '๐',
- 's': '๐',
- 't': '๐',
- 'u': '๐',
- 'v': '๐',
- 'w': '๐ ',
- 'x': '๐ก',
- 'y': '๐ข',
- 'z': '๐ฃ',
- 'A': '๐ฐ',
- 'B': '๐ฑ',
- 'C': '๐ฒ',
- 'D': '๐ณ',
- 'E': '๐ด',
- 'F': '๐ต',
- 'G': '๐ถ',
- 'H': '๐ท',
- 'I': '๐ธ',
- 'J': '๐น',
- 'K': '๐บ',
- 'L': '๐ป',
- 'M': '๐ผ',
- 'N': '๐ฝ',
- 'O': '๐พ',
- 'P': '๐ฟ',
- 'Q': '๐',
- 'R': '๐',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐
',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': '๐'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def outline(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐',
- 'h': '๐',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐',
- 'l': '๐',
- 'm': '๐',
- 'n': '๐',
- 'o': '๐ ',
- 'p': '๐ก',
- 'q': '๐ข',
- 'r': '๐ฃ',
- 's': '๐ค',
- 't': '๐ฅ',
- 'u': '๐ฆ',
- 'v': '๐ง',
- 'w': '๐จ',
- 'x': '๐ฉ',
- 'y': '๐ช',
- 'z': '๐ซ',
- 'A': '๐ธ',
- 'B': '๐น',
- 'C': 'โ',
- 'D': '๐ป',
- 'E': '๐ผ',
- 'F': '๐ฝ',
- 'G': '๐พ',
- 'H': 'โ',
- 'I': '๐',
- 'J': '๐',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐',
- 'N': 'โ',
- 'O': '๐',
- 'P': 'โ',
- 'Q': 'โ',
- 'R': 'โ',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': 'โค',
- '0': '๐',
- '1': '๐',
- '2': '๐',
- '3': '๐',
- '4': '๐',
- '5': '๐',
- '6': '๐',
- '7': '๐',
- '8': '๐ ',
- '9': '๐ก'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def serief(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐ ',
- 'h': '๐ก',
- 'i': '๐ข',
- 'j': '๐ฃ',
- 'k': '๐ค',
- 'l': '๐ฅ',
- 'm': '๐ฆ',
- 'n': '๐ง',
- 'o': '๐จ',
- 'p': '๐ฉ',
- 'q': '๐ช',
- 'r': '๐ซ',
- 's': '๐ฌ',
- 't': '๐ญ',
- 'u': '๐ฎ',
- 'v': '๐ฏ',
- 'w': '๐ฐ',
- 'x': '๐ฑ',
- 'y': '๐ฒ',
- 'z': '๐ณ',
- 'A': '๐',
- 'B': '๐',
- 'C': '๐',
- 'D': '๐',
- 'E': '๐',
- 'F': '๐
',
- 'G': '๐',
- 'H': '๐',
- 'I': '๐',
- 'J': '๐',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐',
- 'N': '๐',
- 'O': '๐',
- 'P': '๐',
- 'Q': '๐',
- 'R': '๐',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': '๐',
- '0': '๐',
- '1': '๐',
- '2': '๐',
- '3': '๐',
- '4': '๐',
- '5': '๐',
- '6': '๐',
- '7': '๐',
- '8': '๐',
- '9': '๐'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def bold_cool(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐
',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐',
- 'h': '๐',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐',
- 'l': '๐',
- 'm': '๐',
- 'n': '๐',
- 'o': '๐',
- 'p': '๐',
- 'q': '๐',
- 'r': '๐',
- 's': '๐',
- 't': '๐',
- 'u': '๐',
- 'v': '๐',
- 'w': '๐',
- 'x': '๐',
- 'y': '๐',
- 'z': '๐',
- 'A': '๐จ',
- 'B': '๐ฉ',
- 'C': '๐ช',
- 'D': '๐ซ',
- 'E': '๐ฌ',
- 'F': '๐ญ',
- 'G': '๐ฎ',
- 'H': '๐ฏ',
- 'I': '๐ฐ',
- 'J': '๐ฑ',
- 'K': '๐ฒ',
- 'L': '๐ณ',
- 'M': '๐ด',
- 'N': '๐ต',
- 'O': '๐ถ',
- 'P': '๐ท',
- 'Q': '๐ธ',
- 'R': '๐น',
- 'S': '๐บ',
- 'T': '๐ป',
- 'U': '๐ผ',
- 'V': '๐ฝ',
- 'W': '๐พ',
- 'X': '๐ฟ',
- 'Y': '๐',
- 'Z': '๐'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def cool(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐',
- 'h': 'โ',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐',
- 'l': '๐',
- 'm': '๐',
- 'n': '๐',
- 'o': '๐',
- 'p': '๐',
- 'q': '๐',
- 'r': '๐',
- 's': '๐ ',
- 't': '๐ก',
- 'u': '๐ข',
- 'v': '๐ฃ',
- 'w': '๐ค',
- 'x': '๐ฅ',
- 'y': '๐ฆ',
- 'z': '๐ง',
- 'A': '๐ด',
- 'B': '๐ต',
- 'C': '๐ถ',
- 'D': '๐ท',
- 'E': '๐ธ',
- 'F': '๐น',
- 'G': '๐บ',
- 'H': '๐ป',
- 'I': '๐ผ',
- 'J': '๐ฝ',
- 'K': '๐พ',
- 'L': '๐ฟ',
- 'M': '๐',
- 'N': '๐',
- 'O': '๐',
- 'P': '๐',
- 'Q': '๐',
- 'R': '๐
',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': '๐'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def smallcap(text):
- style = {
- 'a': 'แด',
- 'b': 'ส',
- 'c': 'แด',
- 'd': 'แด
',
- 'e': 'แด',
- 'f': 'า',
- 'g': 'ษข',
- 'h': 'ส',
- 'i': 'ษช',
- 'j': 'ษช',
- 'k': 'แด',
- 'l': 'ส',
- 'm': 'แด',
- 'n': 'ษด',
- 'o': 'แด',
- 'p': 'แด',
- 'q': 'วซ',
- 'r': 'ส',
- 's': '๊ฑ',
- 't': 'แด',
- 'u': 'แด',
- 'v': 'แด ',
- 'w': 'แดก',
- 'x': 'x',
- 'y': 'ส',
- 'z': 'แดข',
- 'A': 'A',
- 'B': 'B',
- 'C': 'C',
- 'D': 'D',
- 'E': 'E',
- 'F': 'F',
- 'G': 'G',
- 'H': 'H',
- 'I': 'I',
- 'J': 'J',
- 'K': 'K',
- 'L': 'L',
- 'M': 'M',
- 'N': 'N',
- 'O': 'O',
- 'P': 'P',
- 'Q': 'Q',
- 'R': 'R',
- 'S': 'S',
- 'T': 'T',
- 'U': 'U',
- 'V': 'V',
- 'W': 'W',
- 'X': 'X',
- 'Y': 'Y',
- 'Z': 'Z',
- '0': '๐ถ',
- '1': '๐ท',
- '2': '๐ธ',
- '3': '๐น',
- '4': '๐บ',
- '5': '๐ป',
- '6': '๐ผ',
- '7': '๐ฝ',
- '8': '๐พ',
- '9': '๐ฟ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def script(text):
- style = {
- 'a': '๐ถ',
- 'b': '๐ท',
- 'c': '๐ธ',
- 'd': '๐น',
- 'e': 'โฏ',
- 'f': '๐ป',
- 'g': 'โ',
- 'h': '๐ฝ',
- 'i': '๐พ',
- 'j': '๐ฟ',
- 'k': '๐',
- 'l': '๐',
- 'm': '๐',
- 'n': '๐',
- 'o': 'โด',
- 'p': '๐
',
- 'q': '๐',
- 'r': '๐',
- 's': '๐',
- 't': '๐',
- 'u': '๐',
- 'v': '๐',
- 'w': '๐',
- 'x': '๐',
- 'y': '๐',
- 'z': '๐',
- 'A': '๐',
- 'B': 'โฌ',
- 'C': '๐',
- 'D': '๐',
- 'E': 'โฐ',
- 'F': 'โฑ',
- 'G': '๐ข',
- 'H': 'โ',
- 'I': 'โ',
- 'J': '๐ฅ',
- 'K': '๐ฆ',
- 'L': 'โ',
- 'M': 'โณ',
- 'N': '๐ฉ',
- 'O': '๐ช',
- 'P': '๐ซ',
- 'Q': '๐ฌ',
- 'R': 'โ',
- 'S': '๐ฎ',
- 'T': '๐ฏ',
- 'U': '๐ฐ',
- 'V': '๐ฑ',
- 'W': '๐ฒ',
- 'X': '๐ณ',
- 'Y': '๐ด',
- 'Z': '๐ต'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def bold_script(text):
- style = {
- 'a': '๐ช',
- 'b': '๐ซ',
- 'c': '๐ฌ',
- 'd': '๐ญ',
- 'e': '๐ฎ',
- 'f': '๐ฏ',
- 'g': '๐ฐ',
- 'h': '๐ฑ',
- 'i': '๐ฒ',
- 'j': '๐ณ',
- 'k': '๐ด',
- 'l': '๐ต',
- 'm': '๐ถ',
- 'n': '๐ท',
- 'o': '๐ธ',
- 'p': '๐น',
- 'q': '๐บ',
- 'r': '๐ป',
- 's': '๐ผ',
- 't': '๐ฝ',
- 'u': '๐พ',
- 'v': '๐ฟ',
- 'w': '๐',
- 'x': '๐',
- 'y': '๐',
- 'z': '๐',
- 'A': '๐',
- 'B': '๐',
- 'C': '๐',
- 'D': '๐',
- 'E': '๐',
- 'F': '๐',
- 'G': '๐',
- 'H': '๐',
- 'I': '๐',
- 'J': '๐',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐',
- 'N': '๐',
- 'O': '๐',
- 'P': '๐',
- 'Q': '๐ ',
- 'R': '๐ก',
- 'S': '๐ข',
- 'T': '๐ฃ',
- 'U': '๐ค',
- 'V': '๐ฅ',
- 'W': '๐ฆ',
- 'X': '๐ง',
- 'Y': '๐จ',
- 'Z': '๐ฉ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def tiny(text):
- style = {
- 'a': 'แต',
- 'b': 'แต',
- 'c': 'แถ',
- 'd': 'แต',
- 'e': 'แต',
- 'f': 'แถ ',
- 'g': 'แต',
- 'h': 'สฐ',
- 'i': 'โฑ',
- 'j': 'สฒ',
- 'k': 'แต',
- 'l': 'หก',
- 'm': 'แต',
- 'n': 'โฟ',
- 'o': 'แต',
- 'p': 'แต',
- 'q': 'แต ',
- 'r': 'สณ',
- 's': 'หข',
- 't': 'แต',
- 'u': 'แต',
- 'v': 'แต',
- 'w': 'สท',
- 'x': 'หฃ',
- 'y': 'สธ',
- 'z': 'แถป',
- 'A': 'แต',
- 'B': 'แต',
- 'C': 'แถ',
- 'D': 'แต',
- 'E': 'แต',
- 'F': 'แถ ',
- 'G': 'แต',
- 'H': 'สฐ',
- 'I': 'โฑ',
- 'J': 'สฒ',
- 'K': 'แต',
- 'L': 'หก',
- 'M': 'แต',
- 'N': 'โฟ',
- 'O': 'แต',
- 'P': 'แต',
- 'Q': 'แต ',
- 'R': 'สณ',
- 'S': 'หข',
- 'T': 'แต',
- 'U': 'แต',
- 'V': 'แต',
- 'W': 'สท',
- 'X': 'หฃ',
- 'Y': 'สธ',
- 'Z': 'แถป'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def comic(text):
- style = {
- 'a': 'แฉ',
- 'b': 'แท',
- 'c': 'แ',
- 'd': 'แช',
- 'e': 'แด',
- 'f': 'แด',
- 'g': 'แ',
- 'h': 'แผ',
- 'i': 'I',
- 'j': 'แ',
- 'k': 'K',
- 'l': 'แช',
- 'm': 'แฐ',
- 'n': 'แ',
- 'o': 'O',
- 'p': 'แญ',
- 'q': 'แซ',
- 'r': 'แ',
- 's': 'ี',
- 't': 'T',
- 'u': 'แ',
- 'v': 'แฏ',
- 'w': 'แฏ',
- 'x': 'แญ',
- 'y': 'Y',
- 'z': 'แ',
- 'A': 'แฉ',
- 'B': 'แท',
- 'C': 'แ',
- 'D': 'แช',
- 'E': 'แด',
- 'F': 'แด',
- 'G': 'แ',
- 'H': 'แผ',
- 'I': 'I',
- 'J': 'แ',
- 'K': 'K',
- 'L': 'แช',
- 'M': 'แฐ',
- 'N': 'แ',
- 'O': 'O',
- 'P': 'แญ',
- 'Q': 'แซ',
- 'R': 'แ',
- 'S': 'ี',
- 'T': 'T',
- 'U': 'แ',
- 'V': 'แฏ',
- 'W': 'แฏ',
- 'X': 'แญ',
- 'Y': 'Y',
- 'Z': 'แ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def san(text):
- style = {
- 'a': '๐ฎ',
- 'b': '๐ฏ',
- 'c': '๐ฐ',
- 'd': '๐ฑ',
- 'e': '๐ฒ',
- 'f': '๐ณ',
- 'g': '๐ด',
- 'h': '๐ต',
- 'i': '๐ถ',
- 'j': '๐ท',
- 'k': '๐ธ',
- 'l': '๐น',
- 'm': '๐บ',
- 'n': '๐ป',
- 'o': '๐ผ',
- 'p': '๐ฝ',
- 'q': '๐พ',
- 'r': '๐ฟ',
- 's': '๐',
- 't': '๐',
- 'u': '๐',
- 'v': '๐',
- 'w': '๐',
- 'x': '๐
',
- 'y': '๐',
- 'z': '๐',
- 'A': '๐',
- 'B': '๐',
- 'C': '๐',
- 'D': '๐',
- 'E': '๐',
- 'F': '๐',
- 'G': '๐',
- 'H': '๐',
- 'I': '๐',
- 'J': '๐',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐ ',
- 'N': '๐ก',
- 'O': '๐ข',
- 'P': '๐ฃ',
- 'Q': '๐ค',
- 'R': '๐ฅ',
- 'S': '๐ฆ',
- 'T': '๐ง',
- 'U': '๐จ',
- 'V': '๐ฉ',
- 'W': '๐ช',
- 'X': '๐ซ',
- 'Y': '๐ฌ',
- 'Z': '๐ญ',
- '0': '๐ฌ',
- '1': '๐ญ',
- '2': '๐ฎ',
- '3': '๐ฏ',
- '4': '๐ฐ',
- '5': '๐ฑ',
- '6': '๐ฒ',
- '7': '๐ณ',
- '8': '๐ด',
- '9': '๐ต'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def slant_san(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐',
- 'h': '๐',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐ ',
- 'l': '๐ก',
- 'm': '๐ข',
- 'n': '๐ฃ',
- 'o': '๐ค',
- 'p': '๐ฅ',
- 'q': '๐ฆ',
- 'r': '๐ง',
- 's': '๐จ',
- 't': '๐ฉ',
- 'u': '๐ช',
- 'v': '๐ซ',
- 'w': '๐ฌ',
- 'x': '๐ญ',
- 'y': '๐ฎ',
- 'z': '๐ฏ',
- 'A': '๐ผ',
- 'B': '๐ฝ',
- 'C': '๐พ',
- 'D': '๐ฟ',
- 'E': '๐',
- 'F': '๐',
- 'G': '๐',
- 'H': '๐',
- 'I': '๐',
- 'J': '๐
',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐',
- 'N': '๐',
- 'O': '๐',
- 'P': '๐',
- 'Q': '๐',
- 'R': '๐',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': '๐'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def slant(text):
- style = {
- 'a': '๐ข',
- 'b': '๐ฃ',
- 'c': '๐ค',
- 'd': '๐ฅ',
- 'e': '๐ฆ',
- 'f': '๐ง',
- 'g': '๐จ',
- 'h': '๐ฉ',
- 'i': '๐ช',
- 'j': '๐ซ',
- 'k': '๐ฌ',
- 'l': '๐ญ',
- 'm': '๐ฎ',
- 'n': '๐ฏ',
- 'o': '๐ฐ',
- 'p': '๐ฑ',
- 'q': '๐ฒ',
- 'r': '๐ณ',
- 's': '๐ด',
- 't': '๐ต',
- 'u': '๐ถ',
- 'v': '๐ท',
- 'w': '๐ธ',
- 'x': '๐น',
- 'y': '๐บ',
- 'z': '๐ป',
- 'A': '๐',
- 'B': '๐',
- 'C': '๐',
- 'D': '๐',
- 'E': '๐',
- 'F': '๐',
- 'G': '๐',
- 'H': '๐',
- 'I': '๐',
- 'J': '๐',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐',
- 'N': '๐',
- 'O': '๐',
- 'P': '๐',
- 'Q': '๐',
- 'R': '๐',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐ ',
- 'Z': '๐ก'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def sim(text):
- style = {
- 'a': '๐บ',
- 'b': '๐ป',
- 'c': '๐ผ',
- 'd': '๐ฝ',
- 'e': '๐พ',
- 'f': '๐ฟ',
- 'g': '๐',
- 'h': '๐',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐',
- 'l': '๐
',
- 'm': '๐',
- 'n': '๐',
- 'o': '๐',
- 'p': '๐',
- 'q': '๐',
- 'r': '๐',
- 's': '๐',
- 't': '๐',
- 'u': '๐',
- 'v': '๐',
- 'w': '๐',
- 'x': '๐',
- 'y': '๐',
- 'z': '๐',
- 'A': '๐ ',
- 'B': '๐ก',
- 'C': '๐ข',
- 'D': '๐ฃ',
- 'E': '๐ค',
- 'F': '๐ฅ',
- 'G': '๐ฆ',
- 'H': '๐ง',
- 'I': '๐จ',
- 'J': '๐ฉ',
- 'K': '๐ช',
- 'L': '๐ซ',
- 'M': '๐ฌ',
- 'N': '๐ญ',
- 'O': '๐ฎ',
- 'P': '๐ฏ',
- 'Q': '๐ฐ',
- 'R': '๐ฑ',
- 'S': '๐ฒ',
- 'T': '๐ณ',
- 'U': '๐ด',
- 'V': '๐ต',
- 'W': '๐ถ',
- 'X': '๐ท',
- 'Y': '๐ธ',
- 'Z': '๐น'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def circles(text):
- style = {
- 'a': 'โถ๏ธ',
- 'b': 'โท๏ธ',
- 'c': 'โธ๏ธ',
- 'd': 'โน๏ธ',
- 'e': 'โบ๏ธ',
- 'f': 'โป๏ธ',
- 'g': 'โผ๏ธ',
- 'h': 'โฝ๏ธ',
- 'i': 'โพ๏ธ',
- 'j': 'โฟ๏ธ',
- 'k': 'โ๏ธ',
- 'l': 'โ๏ธ',
- 'm': 'โ๏ธ',
- 'n': 'โ๏ธ',
- 'o': 'โ๏ธ',
- 'p': 'โ
๏ธ',
- 'q': 'โ๏ธ',
- 'r': 'โ๏ธ',
- 's': 'โ๏ธ',
- 't': 'โ๏ธ',
- 'u': 'โ๏ธ',
- 'v': 'โ๏ธ',
- 'w': 'โ๏ธ',
- 'x': 'โ๏ธ',
- 'y': 'โ๏ธ',
- 'z': 'โ๏ธ',
- 'A': 'โถ๏ธ',
- 'B': 'โท๏ธ',
- 'C': 'โธ๏ธ',
- 'D': 'โน๏ธ',
- 'E': 'โบ๏ธ',
- 'F': 'โป๏ธ',
- 'G': 'โผ๏ธ',
- 'H': 'โฝ๏ธ',
- 'I': 'โพ๏ธ',
- 'J': 'โฟ๏ธ',
- 'K': 'โ๏ธ',
- 'L': 'โ๏ธ',
- 'M': 'โ๏ธ',
- 'N': 'โ๏ธ',
- 'O': 'โ๏ธ',
- 'P': 'โ
๏ธ',
- 'Q': 'โ๏ธ',
- 'R': 'โ๏ธ',
- 'S': 'โ๏ธ',
- 'T': 'โ๏ธ',
- 'U': 'โ๏ธ',
- 'V': 'โ๏ธ',
- 'W': 'โ๏ธ',
- 'X': 'โ๏ธ',
- 'Y': 'โ๏ธ',
- 'Z': 'โ๏ธ',
- '0': 'โช',
- '1': 'โ ',
- '2': 'โก',
- '3': 'โข',
- '4': 'โฃ',
- '5': 'โค',
- '6': 'โฅ',
- '7': 'โฆ',
- '8': 'โง',
- '9': 'โจ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def dark_circle(text):
- style = {
- 'a': '๐
๏ธ',
- 'b': '๐
๏ธ',
- 'c': '๐
๏ธ',
- 'd': '๐
๏ธ',
- 'e': '๐
๏ธ',
- 'f': '๐
๏ธ',
- 'g': '๐
๏ธ',
- 'h': '๐
๏ธ',
- 'i': '๐
๏ธ',
- 'j': '๐
๏ธ',
- 'k': '๐
๏ธ',
- 'l': '๐
๏ธ',
- 'm': '๐
๏ธ',
- 'n': '๐
๏ธ',
- 'o': '๐
๏ธ',
- 'p': '๐
๏ธ',
- 'q': '๐
๏ธ',
- 'r': '๐
ก๏ธ',
- 's': '๐
ข๏ธ',
- 't': '๐
ฃ๏ธ',
- 'u': '๐
ค๏ธ',
- 'v': '๐
ฅ๏ธ',
- 'w': '๐
ฆ๏ธ',
- 'x': '๐
ง๏ธ',
- 'y': '๐
จ๏ธ',
- 'z': '๐
ฉ๏ธ',
- 'A': '๐
๏ธ',
- 'B': '๐
๏ธ',
- 'C': '๐
๏ธ',
- 'D': '๐
๏ธ',
- 'E': '๐
๏ธ',
- 'F': '๐
๏ธ',
- 'G': '๐
๏ธ',
- 'H': '๐
๏ธ',
- 'I': '๐
๏ธ',
- 'J': '๐
๏ธ',
- 'K': '๐
๏ธ',
- 'L': '๐
๏ธ',
- 'M': '๐
๏ธ',
- 'N': '๐
๏ธ',
- 'O': '๐
๏ธ',
- 'P': '๐
๏ธ',
- 'Q': '๐
๏ธ',
- 'R': '๐
ก๏ธ',
- 'S': '๐
ข๏ธ',
- 'T': '๐
ฃ๏ธ',
- 'U': '๐
ค๏ธ',
- 'V': '๐
ฅ๏ธ',
- 'W': '๐
ฆ๏ธ',
- 'X': '๐
ง๏ธ',
- 'Y': '๐
จ๏ธ',
- 'Z': '๐
ฉ',
- '0': 'โฟ',
- '1': 'โ',
- '2': 'โ',
- '3': 'โ',
- '4': 'โ',
- '5': 'โ',
- '6': 'โ',
- '7': 'โ',
- '8': 'โ',
- '9': 'โ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def gothic(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐ ',
- 'd': '๐ก',
- 'e': '๐ข',
- 'f': '๐ฃ',
- 'g': '๐ค',
- 'h': '๐ฅ',
- 'i': '๐ฆ',
- 'j': '๐ง',
- 'k': '๐จ',
- 'l': '๐ฉ',
- 'm': '๐ช',
- 'n': '๐ซ',
- 'o': '๐ฌ',
- 'p': '๐ญ',
- 'q': '๐ฎ',
- 'r': '๐ฏ',
- 's': '๐ฐ',
- 't': '๐ฑ',
- 'u': '๐ฒ',
- 'v': '๐ณ',
- 'w': '๐ด',
- 'x': '๐ต',
- 'y': '๐ถ',
- 'z': '๐ท',
- 'A': '๐',
- 'B': '๐
',
- 'C': 'โญ',
- 'D': '๐',
- 'E': '๐',
- 'F': '๐',
- 'G': '๐',
- 'H': 'โ',
- 'I': 'โ',
- 'J': '๐',
- 'K': '๐',
- 'L': '๐',
- 'M': '๐',
- 'N': '๐',
- 'O': '๐',
- 'P': '๐',
- 'Q': '๐',
- 'R': 'โ',
- 'S': '๐',
- 'T': '๐',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': 'โจ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def happy(text):
- style = {
- 'a': 'aฬฬ',
- 'b': 'bฬฬ',
- 'c': 'cฬฬ',
- 'd': 'dฬฬ',
- 'e': 'eฬฬ',
- 'f': 'fฬฬ',
- 'g': 'gฬฬ',
- 'h': 'hฬฬ',
- 'i': 'iฬฬ',
- 'j': 'jฬฬ',
- 'k': 'kฬฬ',
- 'l': 'lฬฬ',
- 'm': 'mฬฬ',
- 'n': 'nฬฬ',
- 'o': 'oฬฬ',
- 'p': 'pฬฬ',
- 'q': 'qฬฬ',
- 'r': 'rฬฬ',
- 's': 'sฬฬ',
- 't': 'tฬฬ',
- 'u': 'uฬฬ',
- 'v': 'vฬฬ',
- 'w': 'wฬฬ',
- 'x': 'xฬฬ',
- 'y': 'yฬฬ',
- 'z': 'zฬฬ',
- 'A': 'Aฬฬ',
- 'B': 'Bฬฬ',
- 'C': 'Cฬฬ',
- 'D': 'Dฬฬ',
- 'E': 'Eฬฬ',
- 'F': 'Fฬฬ',
- 'G': 'Gฬฬ',
- 'H': 'Hฬฬ',
- 'I': 'Iฬฬ',
- 'J': 'Jฬฬ',
- 'K': 'Kฬฬ',
- 'L': 'Lฬฬ',
- 'M': 'Mฬฬ',
- 'N': 'Nฬฬ',
- 'O': 'Oฬฬ',
- 'P': 'Pฬฬ',
- 'Q': 'Qฬฬ',
- 'R': 'Rฬฬ',
- 'S': 'Sฬฬ',
- 'T': 'Tฬฬ',
- 'U': 'Uฬฬ',
- 'V': 'Vฬฬ',
- 'W': 'Wฬฬ',
- 'X': 'Xฬฬ',
- 'Y': 'Yฬฬ',
- 'Z': 'Zฬฬ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def sad(text):
- style = {
- 'a': 'aฬฬ',
- 'b': 'bฬฬ',
- 'c': 'cฬฬ',
- 'd': 'dฬฬ',
- 'e': 'eฬฬ',
- 'f': 'fฬฬ',
- 'g': 'gฬฬ',
- 'h': 'hฬฬ',
- 'i': 'iฬฬ',
- 'j': 'jฬฬ',
- 'k': 'kฬฬ',
- 'l': 'lฬฬ',
- 'm': 'mฬฬ',
- 'n': 'nฬฬ',
- 'o': 'oฬฬ',
- 'p': 'pฬฬ',
- 'q': 'qฬฬ',
- 'r': 'rฬฬ',
- 's': 'sฬฬ',
- 't': 'tฬฬ',
- 'u': 'uฬฬ',
- 'v': 'vฬฬ',
- 'w': 'wฬฬ',
- 'x': 'xฬฬ',
- 'y': 'yฬฬ',
- 'z': 'zฬฬ',
- 'A': 'Aฬฬ',
- 'B': 'Bฬฬ',
- 'C': 'Cฬฬ',
- 'D': 'Dฬฬ',
- 'E': 'Eฬฬ',
- 'F': 'Fฬฬ',
- 'G': 'Gฬฬ',
- 'H': 'Hฬฬ',
- 'I': 'Iฬฬ',
- 'J': 'Jฬฬ',
- 'K': 'Kฬฬ',
- 'L': 'Lฬฬ',
- 'M': 'Mฬฬ',
- 'N': 'Nฬฬ',
- 'O': 'Oฬฬ',
- 'P': 'Pฬฬ',
- 'Q': 'Qฬฬ',
- 'R': 'Rฬฬ',
- 'S': 'Sฬฬ',
- 'T': 'Tฬฬ',
- 'U': 'Uฬฬ',
- 'V': 'Vฬฬ',
- 'W': 'Wฬฬ',
- 'X': 'Xฬฬ',
- 'Y': 'Yฬฬ',
- 'Z': 'Zฬฬ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def special(text):
- style = {
- 'a': '๐ฆโ',
- 'b': '๐งโ',
- 'c': '๐จโ',
- 'd': '๐ฉโ',
- 'e': '๐ชโ',
- 'f': '๐ซโ',
- 'g': '๐ฌโ',
- 'h': '๐ญโ',
- 'i': '๐ฎโ',
- 'j': '๐ฏโ',
- 'k': '๐ฐโ',
- 'l': '๐ฑโ',
- 'm': '๐ฒโ',
- 'n': '๐ณโ',
- 'o': '๐ดโ',
- 'p': '๐ตโ',
- 'q': '๐ถโ',
- 'r': '๐ทโ',
- 's': '๐ธโ',
- 't': '๐นโ',
- 'u': '๐บโ',
- 'v': '๐ปโ',
- 'w': '๐ผโ',
- 'x': '๐ฝโ',
- 'y': '๐พโ',
- 'z': '๐ฟโ',
- 'A': '๐ฆโ',
- 'B': '๐งโ',
- 'C': '๐จโ',
- 'D': '๐ฉโ',
- 'E': '๐ชโ',
- 'F': '๐ซโ',
- 'G': '๐ฌโ',
- 'H': '๐ญโ',
- 'I': '๐ฎโ',
- 'J': '๐ฏโ',
- 'K': '๐ฐโ',
- 'L': '๐ฑโ',
- 'M': '๐ฒโ',
- 'N': '๐ณโ',
- 'O': '๐ดโ',
- 'P': '๐ตโ',
- 'Q': '๐ถโ',
- 'R': '๐ทโ',
- 'S': '๐ธโ',
- 'T': '๐นโ',
- 'U': '๐บโ',
- 'V': '๐ปโ',
- 'W': '๐ผโ',
- 'X': '๐ฝโ',
- 'Y': '๐พโ',
- 'Z': '๐ฟโ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def square(text):
- style = {
- 'a': '๐ฐ',
- 'b': '๐ฑ',
- 'c': '๐ฒ',
- 'd': '๐ณ',
- 'e': '๐ด',
- 'f': '๐ต',
- 'g': '๐ถ',
- 'h': '๐ท',
- 'i': '๐ธ',
- 'j': '๐น',
- 'k': '๐บ',
- 'l': '๐ป',
- 'm': '๐ผ',
- 'n': '๐ฝ',
- 'o': '๐พ',
- 'p': '๐ฟ',
- 'q': '๐
',
- 'r': '๐
',
- 's': '๐
',
- 't': '๐
',
- 'u': '๐
',
- 'v': '๐
',
- 'w': '๐
',
- 'x': '๐
',
- 'y': '๐
',
- 'z': '๐
',
- 'A': '๐ฐ',
- 'B': '๐ฑ',
- 'C': '๐ฒ',
- 'D': '๐ณ',
- 'E': '๐ด',
- 'F': '๐ต',
- 'G': '๐ถ',
- 'H': '๐ท',
- 'I': '๐ธ',
- 'J': '๐น',
- 'K': '๐บ',
- 'L': '๐ป',
- 'M': '๐ผ',
- 'N': '๐ฝ',
- 'O': '๐พ',
- 'P': '๐ฟ',
- 'Q': '๐
',
- 'R': '๐
',
- 'S': '๐
',
- 'T': '๐
',
- 'U': '๐
',
- 'V': '๐
',
- 'W': '๐
',
- 'X': '๐
',
- 'Y': '๐
',
- 'Z': '๐
'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def dark_square(text):
- style = {
- 'a': '๐
ฐ๏ธ',
- 'b': '๐
ฑ๏ธ',
- 'c': '๐
ฒ๏ธ',
- 'd': '๐
ณ๏ธ',
- 'e': '๐
ด๏ธ',
- 'f': '๐
ต๏ธ',
- 'g': '๐
ถ๏ธ',
- 'h': '๐
ท๏ธ',
- 'i': '๐
ธ๏ธ',
- 'j': '๐
น๏ธ',
- 'k': '๐
บ๏ธ',
- 'l': '๐
ป๏ธ',
- 'm': '๐
ผ๏ธ',
- 'n': '๐
ฝ๏ธ',
- 'o': '๐
พ๏ธ',
- 'p': '๐
ฟ๏ธ',
- 'q': '๐๏ธ',
- 'r': '๐๏ธ',
- 's': '๐๏ธ',
- 't': '๐๏ธ',
- 'u': '๐๏ธ',
- 'v': '๐
๏ธ',
- 'w': '๐๏ธ',
- 'x': '๐๏ธ',
- 'y': '๐๏ธ',
- 'z': '๐๏ธ',
- 'A': '๐
ฐ๏ธ',
- 'B': '๐
ฑ๏ธ',
- 'C': '๐
ฒ๏ธ',
- 'D': '๐
ณ๏ธ',
- 'E': '๐
ด๏ธ',
- 'F': '๐
ต๏ธ',
- 'G': '๐
ถ๏ธ',
- 'H': '๐
ท๏ธ',
- 'I': '๐
ธ๏ธ',
- 'J': '๐
น๏ธ',
- 'K': '๐
บ๏ธ',
- 'L': '๐
ป๏ธ',
- 'M': '๐
ผ๏ธ',
- 'N': '๐
ฝ๏ธ',
- 'O': '๐
พ๏ธ',
- 'P': '๐
ฟ๏ธ',
- 'Q': '๐๏ธ',
- 'R': '๐๏ธ',
- 'S': '๐๏ธ',
- 'T': '๐๏ธ',
- 'U': '๐๏ธ',
- 'V': '๐
๏ธ',
- 'W': '๐๏ธ',
- 'X': '๐๏ธ',
- 'Y': '๐๏ธ',
- 'Z': '๐๏ธ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def andalucia(text):
- style = {
- 'a': '๊ช',
- 'b': 'แฅ',
- 'c': 'แฅด',
- 'd': 'แฆ',
- 'e': '๊ซ',
- 'f': 'แ ป',
- 'g': 'แง',
- 'h': '๊ซ',
- 'i': '๐ฒ',
- 'j': '๐ณ',
- 'k': '๐ฌ',
- 'l': '๊ชถ',
- 'm': '๊ช',
- 'n': '๊ช',
- 'o': '๊ชฎ',
- 'p': 'ฯ',
- 'q': '๐ฒ',
- 'r': '๐ณ',
- 's': '๐ด',
- 't': '๐ฝ',
- 'u': '๊ช',
- 'v': '๊ช',
- 'w': 'แญ',
- 'x': 'แฅ',
- 'y': '๊ช',
- 'z': 'ษ',
- 'A': '๊ช',
- 'B': 'แฅ',
- 'C': 'แฅด',
- 'D': 'แฆ',
- 'E': '๊ซ',
- 'F': 'แ ป',
- 'G': 'แง',
- 'H': '๊ซ',
- 'I': '๐ฒ',
- 'J': '๐ณ',
- 'K': '๐ฌ',
- 'L': '๊ชถ',
- 'M': '๊ช',
- 'N': '๊ช',
- 'O': '๊ชฎ',
- 'P': 'ฯ',
- 'Q': '๐ฒ',
- 'R': '๐ณ',
- 'S': '๐ด',
- 'T': '๐ฝ',
- 'U': '๊ช',
- 'V': '๊ช',
- 'W': 'แญ',
- 'X': 'แฅ',
- 'Y': '๊ช',
- 'Z': 'ษ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def manga(text):
- style = {
- 'a': 'ๅ',
- 'b': 'ไน',
- 'c': 'ๅ',
- 'd': 'แช',
- 'e': 'ไน',
- 'f': 'ๅ',
- 'g': 'แ',
- 'h': 'ๅ',
- 'i': '|',
- 'j': '๏พ',
- 'k': 'า',
- 'l': 'ใฅ',
- 'm': '็ช',
- 'n': 'ๅ ',
- 'o': 'ใ',
- 'p': 'ๅฉ',
- 'q': 'าจ',
- 'r': 'ๅฐบ',
- 's': 'ไธ',
- 't': 'ใ',
- 'u': 'ใฉ',
- 'v': 'แฏ',
- 'w': 'ๅฑฑ',
- 'x': 'ไน',
- 'y': 'ใ',
- 'z': 'ไน',
- 'A': 'ๅ',
- 'B': 'ไน',
- 'C': 'ๅ',
- 'D': 'แช',
- 'E': 'ไน',
- 'F': 'ๅ',
- 'G': 'แ',
- 'H': 'ๅ',
- 'I': '|',
- 'J': '๏พ',
- 'K': 'า',
- 'L': 'ใฅ',
- 'M': '็ช',
- 'N': 'ๅ ',
- 'O': 'ใ',
- 'P': 'ๅฉ',
- 'Q': 'าจ',
- 'R': 'ๅฐบ',
- 'S': 'ไธ',
- 'T': 'ใ',
- 'U': 'ใฉ',
- 'V': 'แฏ',
- 'W': 'ๅฑฑ',
- 'X': 'ไน',
- 'Y': 'ใ',
- 'Z': 'ไน'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def stinky(text):
- style = {
- 'a': 'aฬพ',
- 'b': 'bฬพ',
- 'c': 'cฬพ',
- 'd': 'dฬพ',
- 'e': 'eฬพ',
- 'f': 'fฬพ',
- 'g': 'gฬพ',
- 'h': 'hฬพ',
- 'i': 'iฬพ',
- 'j': 'jฬพ',
- 'k': 'kฬพ',
- 'l': 'lฬพ',
- 'm': 'mฬพ',
- 'n': 'nฬพ',
- 'o': 'oฬพ',
- 'p': 'pฬพ',
- 'q': 'qฬพ',
- 'r': 'rฬพ',
- 's': 'sฬพ',
- 't': 'tฬพ',
- 'u': 'uฬพ',
- 'v': 'vฬพ',
- 'w': 'wฬพ',
- 'x': 'xฬพ',
- 'y': 'yฬพ',
- 'z': 'zฬพ',
- 'A': 'Aฬพ',
- 'B': 'Bฬพ',
- 'C': 'Cฬพ',
- 'D': 'Dฬพ',
- 'E': 'Eฬพ',
- 'F': 'Fฬพ',
- 'G': 'Gฬพ',
- 'H': 'Hฬพ',
- 'I': 'Iฬพ',
- 'J': 'Jฬพ',
- 'K': 'Kฬพ',
- 'L': 'Lฬพ',
- 'M': 'Mฬพ',
- 'N': 'Nฬพ',
- 'O': 'Oฬพ',
- 'P': 'Pฬพ',
- 'Q': 'Qฬพ',
- 'R': 'Rฬพ',
- 'S': 'Sฬพ',
- 'T': 'Tฬพ',
- 'U': 'Uฬพ',
- 'V': 'Vฬพ',
- 'W': 'Wฬพ',
- 'X': 'Xฬพ',
- 'Y': 'Yฬพ',
- 'Z': 'Zฬพ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def bubbles(text):
- style = {
- 'a': 'aอฆฬฅ',
- 'b': 'bอฆฬฅ',
- 'c': 'cอฆฬฅ',
- 'd': 'dอฆฬฅ',
- 'e': 'eอฆฬฅ',
- 'f': 'fอฆฬฅ',
- 'g': 'gอฆฬฅ',
- 'h': 'hอฆฬฅ',
- 'i': 'iอฆฬฅ',
- 'j': 'jอฆฬฅ',
- 'k': 'kอฆฬฅ',
- 'l': 'lอฆฬฅ',
- 'm': 'mอฆฬฅ',
- 'n': 'nอฆฬฅ',
- 'o': 'oอฆฬฅ',
- 'p': 'pอฆฬฅ',
- 'q': 'qอฆฬฅ',
- 'r': 'rอฆฬฅ',
- 's': 'sอฆฬฅ',
- 't': 'tอฆฬฅ',
- 'u': 'uอฆฬฅ',
- 'v': 'vอฆฬฅ',
- 'w': 'wอฆฬฅ',
- 'x': 'xอฆฬฅ',
- 'y': 'yอฆฬฅ',
- 'z': 'zอฆฬฅ',
- 'A': 'Aอฆฬฅ',
- 'B': 'Bอฆฬฅ',
- 'C': 'Cอฆฬฅ',
- 'D': 'Dอฆฬฅ',
- 'E': 'Eอฆฬฅ',
- 'F': 'Fอฆฬฅ',
- 'G': 'Gอฆฬฅ',
- 'H': 'Hอฆฬฅ',
- 'I': 'Iอฆฬฅ',
- 'J': 'Jอฆฬฅ',
- 'K': 'Kอฆฬฅ',
- 'L': 'Lอฆฬฅ',
- 'M': 'Mอฆฬฅ',
- 'N': 'Nอฆฬฅ',
- 'O': 'Oอฆฬฅ',
- 'P': 'Pอฆฬฅ',
- 'Q': 'Qอฆฬฅ',
- 'R': 'Rอฆฬฅ',
- 'S': 'Sอฆฬฅ',
- 'T': 'Tอฆฬฅ',
- 'U': 'Uอฆฬฅ',
- 'V': 'Vอฆฬฅ',
- 'W': 'Wอฆฬฅ',
- 'X': 'Xอฆฬฅ',
- 'Y': 'Yอฆฬฅ',
- 'Z': 'Zอฆฬฅ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def underline(text):
- style = {
- 'a': 'aอ',
- 'b': 'bอ',
- 'c': 'cอ',
- 'd': 'dอ',
- 'e': 'eอ',
- 'f': 'fอ',
- 'g': 'gอ',
- 'h': 'hอ',
- 'i': 'iอ',
- 'j': 'jอ',
- 'k': 'kอ',
- 'l': 'lอ',
- 'm': 'mอ',
- 'n': 'nอ',
- 'o': 'oอ',
- 'p': 'pอ',
- 'q': 'qอ',
- 'r': 'rอ',
- 's': 'sอ',
- 't': 'tอ',
- 'u': 'uอ',
- 'v': 'vอ',
- 'w': 'wอ',
- 'x': 'xอ',
- 'y': 'yอ',
- 'z': 'zอ',
- 'A': 'Aอ',
- 'B': 'Bอ',
- 'C': 'Cอ',
- 'D': 'Dอ',
- 'E': 'Eอ',
- 'F': 'Fอ',
- 'G': 'Gอ',
- 'H': 'Hอ',
- 'I': 'Iอ',
- 'J': 'Jอ',
- 'K': 'Kอ',
- 'L': 'Lอ',
- 'M': 'Mอ',
- 'N': 'Nอ',
- 'O': 'Oอ',
- 'P': 'Pอ',
- 'Q': 'Qอ',
- 'R': 'Rอ',
- 'S': 'Sอ',
- 'T': 'Tอ',
- 'U': 'Uอ',
- 'V': 'Vอ',
- 'W': 'Wอ',
- 'X': 'Xอ',
- 'Y': 'Yอ',
- 'Z': 'Zอ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def ladybug(text):
- style = {
- 'a': '๊',
- 'b': '๊',
- 'c': '๊ณ',
- 'd': '๊ท',
- 'e': '๊',
- 'f': '๊',
- 'g': '๊
',
- 'h': '๊',
- 'i': '๊ค',
- 'j': '๊ป',
- 'k': '๊',
- 'l': '๊',
- 'm': '๊ญ',
- 'n': '๊ค',
- 'o': '๊ฆ',
- 'p': 'แ',
- 'q': '๊ฐ',
- 'r': '๊ช',
- 's': '๊',
- 't': '๊',
- 'u': '๊',
- 'v': '๊ฆ',
- 'w': '๊
',
- 'x': '๊ง',
- 'y': '๊ฉ',
- 'z': '๊ด',
- 'A': '๊',
- 'B': '๊',
- 'C': '๊ณ',
- 'D': '๊ท',
- 'E': '๊',
- 'F': '๊',
- 'G': '๊
',
- 'H': '๊',
- 'I': '๊ค',
- 'J': '๊ป',
- 'K': '๊',
- 'L': '๊',
- 'M': '๊ญ',
- 'N': '๊ค',
- 'O': '๊ฆ',
- 'P': 'แ',
- 'Q': '๊ฐ',
- 'R': '๊ช',
- 'S': '๊',
- 'T': '๊',
- 'U': '๊',
- 'V': '๊ฆ',
- 'W': '๊
',
- 'X': '๊ง',
- 'Y': '๊ฉ',
- 'Z': '๊ด'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def rays(text):
- style = {
- 'a': 'aา',
- 'b': 'bา',
- 'c': 'cา',
- 'd': 'dา',
- 'e': 'eา',
- 'f': 'fา',
- 'g': 'gา',
- 'h': 'hา',
- 'i': 'iา',
- 'j': 'jา',
- 'k': 'kา',
- 'l': 'lา',
- 'm': 'mา',
- 'n': 'nา',
- 'o': 'oา',
- 'p': 'pา',
- 'q': 'qา',
- 'r': 'rา',
- 's': 'sา',
- 't': 'tา',
- 'u': 'uา',
- 'v': 'vา',
- 'w': 'wา',
- 'x': 'xา',
- 'y': 'yา',
- 'z': 'zา',
- 'A': 'Aา',
- 'B': 'Bา',
- 'C': 'Cา',
- 'D': 'Dา',
- 'E': 'Eา',
- 'F': 'Fา',
- 'G': 'Gา',
- 'H': 'Hา',
- 'I': 'Iา',
- 'J': 'Jา',
- 'K': 'Kา',
- 'L': 'Lา',
- 'M': 'Mา',
- 'N': 'Nา',
- 'O': 'Oา',
- 'P': 'Pา',
- 'Q': 'Qา',
- 'R': 'Rา',
- 'S': 'Sา',
- 'T': 'Tา',
- 'U': 'Uา',
- 'V': 'Vา',
- 'W': 'Wา',
- 'X': 'Xา',
- 'Y': 'Yา',
- 'Z': 'Zา'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def birds(text):
- style = {
- 'a': 'aา',
- 'b': 'bา',
- 'c': 'cา',
- 'd': 'dา',
- 'e': 'eา',
- 'f': 'fา',
- 'g': 'gา',
- 'h': 'hา',
- 'i': 'iา',
- 'j': 'jา',
- 'k': 'kา',
- 'l': 'lา',
- 'm': 'mา',
- 'n': 'nา',
- 'o': 'oา',
- 'p': 'pา',
- 'q': 'qา',
- 'r': 'rา',
- 's': 'sา',
- 't': 'tา',
- 'u': 'uา',
- 'v': 'vา',
- 'w': 'wา',
- 'x': 'xา',
- 'y': 'yา',
- 'z': 'zา',
- 'A': 'Aา',
- 'B': 'Bา',
- 'C': 'Cา',
- 'D': 'Dา',
- 'E': 'Eา',
- 'F': 'Fา',
- 'G': 'Gา',
- 'H': 'Hา',
- 'I': 'Iา',
- 'J': 'Jา',
- 'K': 'Kา',
- 'L': 'Lา',
- 'M': 'Mา',
- 'N': 'Nา',
- 'O': 'Oา',
- 'P': 'Pา',
- 'Q': 'Qา',
- 'R': 'Rา',
- 'S': 'Sา',
- 'T': 'Tา',
- 'U': 'Uา',
- 'V': 'Vา',
- 'W': 'Wา',
- 'X': 'Xา',
- 'Y': 'Yา',
- 'Z': 'Zา'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def slash(text):
- style = {
- 'a': 'aฬธ',
- 'b': 'bฬธ',
- 'c': 'cฬธ',
- 'd': 'dฬธ',
- 'e': 'eฬธ',
- 'f': 'fฬธ',
- 'g': 'gฬธ',
- 'h': 'hฬธ',
- 'i': 'iฬธ',
- 'j': 'jฬธ',
- 'k': 'kฬธ',
- 'l': 'lฬธ',
- 'm': 'mฬธ',
- 'n': 'nฬธ',
- 'o': 'oฬธ',
- 'p': 'pฬธ',
- 'q': 'qฬธ',
- 'r': 'rฬธ',
- 's': 'sฬธ',
- 't': 'tฬธ',
- 'u': 'uฬธ',
- 'v': 'vฬธ',
- 'w': 'wฬธ',
- 'x': 'xฬธ',
- 'y': 'yฬธ',
- 'z': 'zฬธ',
- 'A': 'Aฬธ',
- 'B': 'Bฬธ',
- 'C': 'Cฬธ',
- 'D': 'Dฬธ',
- 'E': 'Eฬธ',
- 'F': 'Fฬธ',
- 'G': 'Gฬธ',
- 'H': 'Hฬธ',
- 'I': 'Iฬธ',
- 'J': 'Jฬธ',
- 'K': 'Kฬธ',
- 'L': 'Lฬธ',
- 'M': 'Mฬธ',
- 'N': 'Nฬธ',
- 'O': 'Oฬธ',
- 'P': 'Pฬธ',
- 'Q': 'Qฬธ',
- 'R': 'Rฬธ',
- 'S': 'Sฬธ',
- 'T': 'Tฬธ',
- 'U': 'Uฬธ',
- 'V': 'Vฬธ',
- 'W': 'Wฬธ',
- 'X': 'Xฬธ',
- 'Y': 'Yฬธ',
- 'Z': 'Zฬธ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def stop(text):
- style = {
- 'a': 'aโ ',
- 'b': 'bโ ',
- 'c': 'cโ ',
- 'd': 'dโ ',
- 'e': 'eโ ',
- 'f': 'fโ ',
- 'g': 'gโ ',
- 'h': 'hโ ',
- 'i': 'iโ ',
- 'j': 'jโ ',
- 'k': 'kโ ',
- 'l': 'lโ ',
- 'm': 'mโ ',
- 'n': 'nโ ',
- 'o': 'oโ ',
- 'p': 'pโ ',
- 'q': 'qโ ',
- 'r': 'rโ ',
- 's': 'sโ ',
- 't': 'tโ ',
- 'u': 'uโ ',
- 'v': 'vโ ',
- 'w': 'wโ ',
- 'x': 'xโ ',
- 'y': 'yโ ',
- 'z': 'zโ ',
- 'A': 'Aโ ',
- 'B': 'Bโ ',
- 'C': 'Cโ ',
- 'D': 'Dโ ',
- 'E': 'Eโ ',
- 'F': 'Fโ ',
- 'G': 'Gโ ',
- 'H': 'Hโ ',
- 'I': 'Iโ ',
- 'J': 'Jโ ',
- 'K': 'Kโ ',
- 'L': 'Lโ ',
- 'M': 'Mโ ',
- 'N': 'Nโ ',
- 'O': 'Oโ ',
- 'P': 'Pโ ',
- 'Q': 'Qโ ',
- 'R': 'Rโ ',
- 'S': 'Sโ ',
- 'T': 'Tโ ',
- 'U': 'Uโ ',
- 'V': 'Vโ ',
- 'W': 'Wโ ',
- 'X': 'Xโ ',
- 'Y': 'Yโ ',
- 'Z': 'Zโ '
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def skyline(text):
- style = {
- 'a': 'aอฬบ',
- 'b': 'bอฬบ',
- 'c': 'cอฬบ',
- 'd': 'dอฬบ',
- 'e': 'eอฬบ',
- 'f': 'fอฬบ',
- 'g': 'gอฬบ',
- 'h': 'hอฬบ',
- 'i': 'iอฬบ',
- 'j': 'jอฬบ',
- 'k': 'kอฬบ',
- 'l': 'lอฬบ',
- 'm': 'mอฬบ',
- 'n': 'nอฬบ',
- 'o': 'oอฬบ',
- 'p': 'pอฬบ',
- 'q': 'qอฬบ',
- 'r': 'rอฬบ',
- 's': 'sอฬบ',
- 't': 'tอฬบ',
- 'u': 'uอฬบ',
- 'v': 'vอฬบ',
- 'w': 'wอฬบ',
- 'x': 'xอฬบ',
- 'y': 'yอฬบ',
- 'z': 'zอฬบ',
- 'A': 'Aอฬบ',
- 'B': 'Bอฬบ',
- 'C': 'Cอฬบ',
- 'D': 'Dอฬบ',
- 'E': 'Eอฬบ',
- 'F': 'Fอฬบ',
- 'G': 'Gอฬบ',
- 'H': 'Hอฬบ',
- 'I': 'Iอฬบ',
- 'J': 'Jอฬบ',
- 'K': 'Kอฬบ',
- 'L': 'Lอฬบ',
- 'M': 'Mอฬบ',
- 'N': 'Nอฬบ',
- 'O': 'Oอฬบ',
- 'P': 'Pอฬบ',
- 'Q': 'Qอฬบ',
- 'R': 'Rอฬบ',
- 'S': 'Sอฬบ',
- 'T': 'Tอฬบ',
- 'U': 'Uอฬบ',
- 'V': 'Vอฬบ',
- 'W': 'Wอฬบ',
- 'X': 'Xอฬบ',
- 'Y': 'Yอฬบ',
- 'Z': 'Zอฬบ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def arrows(text):
- style = {
- 'a': 'aอ',
- 'b': 'bอ',
- 'c': 'cอ',
- 'd': 'dอ',
- 'e': 'eอ',
- 'f': 'fอ',
- 'g': 'gอ',
- 'h': 'hอ',
- 'i': 'iอ',
- 'j': 'jอ',
- 'k': 'kอ',
- 'l': 'lอ',
- 'm': 'mอ',
- 'n': 'nอ',
- 'o': 'oอ',
- 'p': 'pอ',
- 'q': 'qอ',
- 'r': 'rอ',
- 's': 'sอ',
- 't': 'tอ',
- 'u': 'uอ',
- 'v': 'vอ',
- 'w': 'wอ',
- 'x': 'xอ',
- 'y': 'yอ',
- 'z': 'zอ',
- 'A': 'Aอ',
- 'B': 'Bอ',
- 'C': 'Cอ',
- 'D': 'Dอ',
- 'E': 'Eอ',
- 'F': 'Fอ',
- 'G': 'Gอ',
- 'H': 'Hอ',
- 'I': 'Iอ',
- 'J': 'Jอ',
- 'K': 'Kอ',
- 'L': 'Lอ',
- 'M': 'Mอ',
- 'N': 'Nอ',
- 'O': 'Oอ',
- 'P': 'Pอ',
- 'Q': 'Qอ',
- 'R': 'Rอ',
- 'S': 'Sอ',
- 'T': 'Tอ',
- 'U': 'Uอ',
- 'V': 'Vอ',
- 'W': 'Wอ',
- 'X': 'Xอ',
- 'Y': 'Yอ',
- 'Z': 'Zอ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def rvnes(text):
- style = {
- 'a': 'แ',
- 'b': 'แ',
- 'c': 'แญ',
- 'd': 'แ',
- 'e': 'แฟ',
- 'f': 'แป',
- 'g': 'แ',
- 'h': 'แ',
- 'i': 'แ',
- 'j': 'แ',
- 'k': 'แ',
- 'l': 'แจ',
- 'm': 'แ ',
- 'n': 'แญ',
- 'o': 'แ',
- 'p': 'แจ',
- 'q': 'แ',
- 'r': 'แช',
- 's': 'แ',
- 't': 'แ',
- 'u': 'แ',
- 'v': 'แ',
- 'w': 'แ ',
- 'x': 'แธ',
- 'y': 'แ',
- 'z': 'แ',
- 'A': 'แ',
- 'B': 'แ',
- 'C': 'แญ',
- 'D': 'แ',
- 'E': 'แฟ',
- 'F': 'แป',
- 'G': 'แ',
- 'H': 'แ',
- 'I': 'แ',
- 'J': 'แ',
- 'K': 'แ',
- 'L': 'แจ',
- 'M': 'แ ',
- 'N': 'แญ',
- 'O': 'แ',
- 'P': 'แจ',
- 'Q': 'แ',
- 'R': 'แช',
- 'S': 'แ',
- 'T': 'แ',
- 'U': 'แ',
- 'V': 'แ',
- 'W': 'แ ',
- 'X': 'แธ',
- 'Y': 'แ',
- 'Z': 'แ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def strike(text):
- style = {
- 'a': 'aฬถ',
- 'b': 'bฬถ',
- 'c': 'cฬถ',
- 'd': 'dฬถ',
- 'e': 'eฬถ',
- 'f': 'fฬถ',
- 'g': 'gฬถ',
- 'h': 'hฬถ',
- 'i': 'iฬถ',
- 'j': 'jฬถ',
- 'k': 'kฬถ',
- 'l': 'lฬถ',
- 'm': 'mฬถ',
- 'n': 'nฬถ',
- 'o': 'oฬถ',
- 'p': 'pฬถ',
- 'q': 'qฬถ',
- 'r': 'rฬถ',
- 's': 'sฬถ',
- 't': 'tฬถ',
- 'u': 'uฬถ',
- 'v': 'vฬถ',
- 'w': 'wฬถ',
- 'x': 'xฬถ',
- 'y': 'yฬถ',
- 'z': 'zฬถ',
- 'A': 'Aฬถ',
- 'B': 'Bฬถ',
- 'C': 'Cฬถ',
- 'D': 'Dฬถ',
- 'E': 'Eฬถ',
- 'F': 'Fฬถ',
- 'G': 'Gฬถ',
- 'H': 'Hฬถ',
- 'I': 'Iฬถ',
- 'J': 'Jฬถ',
- 'K': 'Kฬถ',
- 'L': 'Lฬถ',
- 'M': 'Mฬถ',
- 'N': 'Nฬถ',
- 'O': 'Oฬถ',
- 'P': 'Pฬถ',
- 'Q': 'Qฬถ',
- 'R': 'Rฬถ',
- 'S': 'Sฬถ',
- 'T': 'Tฬถ',
- 'U': 'Uฬถ',
- 'V': 'Vฬถ',
- 'W': 'Wฬถ',
- 'X': 'Xฬถ',
- 'Y': 'Yฬถ',
- 'Z': 'Zฬถ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def frozen(text):
- style = {
- 'a': 'aเผ',
- 'b': 'bเผ',
- 'c': 'cเผ',
- 'd': 'dเผ',
- 'e': 'eเผ',
- 'f': 'fเผ',
- 'g': 'gเผ',
- 'h': 'hเผ',
- 'i': 'iเผ',
- 'j': 'jเผ',
- 'k': 'kเผ',
- 'l': 'lเผ',
- 'm': 'mเผ',
- 'n': 'nเผ',
- 'o': 'oเผ',
- 'p': 'pเผ',
- 'q': 'qเผ',
- 'r': 'rเผ',
- 's': 'sเผ',
- 't': 'tเผ',
- 'u': 'uเผ',
- 'v': 'vเผ',
- 'w': 'wเผ',
- 'x': 'xเผ',
- 'y': 'yเผ',
- 'z': 'zเผ',
- 'A': 'Aเผ',
- 'B': 'Bเผ',
- 'C': 'Cเผ',
- 'D': 'Dเผ',
- 'E': 'Eเผ',
- 'F': 'Fเผ',
- 'G': 'Gเผ',
- 'H': 'Hเผ',
- 'I': 'Iเผ',
- 'J': 'Jเผ',
- 'K': 'Kเผ',
- 'L': 'Lเผ',
- 'M': 'Mเผ',
- 'N': 'Nเผ',
- 'O': 'Oเผ',
- 'P': 'Pเผ',
- 'Q': 'Qเผ',
- 'R': 'Rเผ',
- 'S': 'Sเผ',
- 'T': 'Tเผ',
- 'U': 'Uเผ',
- 'V': 'Vเผ',
- 'W': 'Wเผ',
- 'X': 'Xเผ',
- 'Y': 'Yเผ',
- 'Z': 'Zเผ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def bold_gothic(text):
- style = {
- 'a': '๐',
- 'b': '๐',
- 'c': '๐',
- 'd': '๐',
- 'e': '๐',
- 'f': '๐',
- 'g': '๐',
- 'h': '๐',
- 'i': '๐',
- 'j': '๐',
- 'k': '๐',
- 'l': '๐',
- 'm': '๐',
- 'n': '๐',
- 'o': '๐',
- 'p': '๐',
- 'q': '๐',
- 'r': '๐',
- 's': '๐',
- 't': '๐',
- 'u': '๐',
- 'v': '๐',
- 'w': '๐',
- 'x': '๐',
- 'y': '๐',
- 'z': '๐',
- 'A': '๐ฌ',
- 'B': '๐ญ',
- 'C': '๐ฎ',
- 'D': '๐บ',
- 'E': '๐ฐ',
- 'F': '๐ฑ',
- 'G': '๐ฒ',
- 'H': '๐ณ',
- 'I': '๐ด',
- 'J': '๐ต',
- 'K': '๐ถ',
- 'L': '๐ท',
- 'M': '๐ธ',
- 'N': '๐น',
- 'O': '๐บ',
- 'P': '๐ป',
- 'Q': '๐ผ',
- 'R': '๐ฝ',
- 'S': '๐พ',
- 'T': '๐ฟ',
- 'U': '๐',
- 'V': '๐',
- 'W': '๐',
- 'X': '๐',
- 'Y': '๐',
- 'Z': '๐
'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
- def cloud(text):
- style = {
- 'a': 'aอกอ',
- 'b': 'bอกอ',
- 'c': 'cอกอ',
- 'd': 'dอกอ',
- 'e': 'eอกอ',
- 'f': 'fอกอ',
- 'g': 'gอกอ',
- 'h': 'hอกอ',
- 'i': 'iอกอ',
- 'j': 'jอกอ',
- 'k': 'kอกอ',
- 'l': 'lอกอ',
- 'm': 'mอกอ',
- 'n': 'nอกอ',
- 'o': 'oอกอ',
- 'p': 'pอกอ',
- 'q': 'qอกอ',
- 'r': 'rอกอ',
- 's': 'sอกอ',
- 't': 'tอกอ',
- 'u': 'uอกอ',
- 'v': 'vอกอ',
- 'w': 'wอกอ',
- 'x': 'xอกอ',
- 'y': 'yอกอ',
- 'z': 'zอกอ',
- 'A': 'Aอกอ',
- 'B': 'Bอกอ',
- 'C': 'Cอกอ',
- 'D': 'Dอกอ',
- 'E': 'Eอกอ',
- 'F': 'Fอกอ',
- 'G': 'Gอกอ',
- 'H': 'Hอกอ',
- 'I': 'Iอกอ',
- 'J': 'Jอกอ',
- 'K': 'Kอกอ',
- 'L': 'Lอกอ',
- 'M': 'Mอกอ',
- 'N': 'Nอกอ',
- 'O': 'Oอกอ',
- 'P': 'Pอกอ',
- 'Q': 'Qอกอ',
- 'R': 'Rอกอ',
- 'S': 'Sอกอ',
- 'T': 'Tอกอ',
- 'U': 'Uอกอ',
- 'V': 'Vอกอ',
- 'W': 'Wอกอ',
- 'X': 'Xอกอ',
- 'Y': 'Yอกอ',
- 'Z': 'Zอกอ'
- }
- for i, j in style.items():
- text = text.replace(i, j)
- return text
-
-
-
diff --git a/plugins/helper_functions/get_file_id.py b/plugins/helper_functions/get_file_id.py
deleted file mode 100644
index 556575a..0000000
--- a/plugins/helper_functions/get_file_id.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from pyrogram.types import Message
-from pyrogram.types.messages_and_media import message
-
-
-def get_file_id(msg: Message):
- if msg.media:
- for message_type in (
- "photo",
- "animation",
- "audio",
- "document",
- "video",
- "video_note",
- "voice",
- # "contact",
- # "dice",
- # "poll",
- # "location",
- # "venue",
- "sticker"
- ):
- obj = getattr(msg, message_type)
- if obj:
- setattr(obj, "message_type", message_type)
- return obj
diff --git a/plugins/helper_functions/last_online_hlpr.py b/plugins/helper_functions/last_online_hlpr.py
deleted file mode 100644
index 442843c..0000000
--- a/plugins/helper_functions/last_online_hlpr.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from pyrogram.types import User
-from datetime import datetime
-
-
-def last_online(from_user: User) -> str:
- time = ""
- if from_user.is_bot:
- time += "๐ค Bot :("
- elif from_user.status == 'recently':
- time += "Recently"
- elif from_user.status == 'within_week':
- time += "Within the last week"
- elif from_user.status == 'within_month':
- time += "Within the last month"
- elif from_user.status == 'long_time_ago':
- time += "A long time ago :("
- elif from_user.status == 'online':
- time += "Currently Online"
- elif from_user.status == 'offline':
- time += datetime.fromtimestamp(from_user.last_online_date).strftime("%a, %d %b %Y, %H:%M:%S")
- return time
diff --git a/plugins/helper_functions/string_handling.py b/plugins/helper_functions/string_handling.py
deleted file mode 100644
index 46dbe8b..0000000
--- a/plugins/helper_functions/string_handling.py
+++ /dev/null
@@ -1,110 +0,0 @@
-import re
-import time
-from typing import List
-from pyrogram.types import Message, InlineKeyboardButton
-from info import COMMAND_HAND_LER
-
-
-# NOTE: the url \ escape may cause double escapes
-# match * (bold) (don't escape if in url)
-# match _ (italics) (don't escape if in url)
-# match ` (code)
-# match []() (markdown link)
-# else, escape *, _, `, and [
-MATCH_MD = re.compile(r'\*(.*?)\*|'
- r'_(.*?)_|'
- r'`(.*?)`|'
- r'(?[*_`\[])')
-
-# regex to find []() links -> hyperlinks/buttons
-LINK_REGEX = re.compile(r'(? (str, List):
- # offset = len(args[2]) - len(raw_text)
- # set correct offset relative to command + notename
- markdown_note = None
- if msg.media:
- if msg.caption:
- markdown_note = msg.caption.markdown
- else:
- markdown_note = msg.text.markdown
- note_data = ""
- buttons = []
- if markdown_note is None:
- return note_data, buttons
- #
- if markdown_note.startswith(COMMAND_HAND_LER):
- args = markdown_note.split(None, 2)
- # use python's maxsplit to separate cmd and args
- markdown_note = args[2]
- prev = 0
- for match in BTN_URL_REGEX.finditer(markdown_note):
- # Check if btnurl is escaped
- n_escapes = 0
- to_check = match.start(1) - 1
- while to_check > 0 and markdown_note[to_check] == "\\":
- n_escapes += 1
- to_check -= 1
-
- # if even, not escaped -> create button
- if n_escapes % 2 == 0:
- # create a thruple with button label, url, and newline status
- if bool(match.group(4)) and buttons:
- buttons[-1].append(InlineKeyboardButton(
- text=match.group(2),
- url=match.group(3)
- ))
- else:
- buttons.append([InlineKeyboardButton(
- text=match.group(2),
- url=match.group(3)
- )])
- note_data += markdown_note[prev:match.start(1)]
- prev = match.end(1)
- # if odd, escaped -> move along
- else:
- note_data += markdown_note[prev:to_check]
- prev = match.start(1) - 1
- else:
- note_data += markdown_note[prev:]
-
- return note_data, buttons
-
-
-def extract_time(time_val):
- if any(time_val.endswith(unit) for unit in ('s', 'm', 'h', 'd')):
- unit = time_val[-1]
- time_num = time_val[:-1] # type: str
- if not time_num.isdigit():
- return None
-
- if unit == 's':
- bantime = int(time.time() + int(time_num))
- elif unit == 'm':
- bantime = int(time.time() + int(time_num) * 60)
- elif unit == 'h':
- bantime = int(time.time() + int(time_num) * 60 * 60)
- elif unit == 'd':
- bantime = int(time.time() + int(time_num) * 24 * 60 * 60)
- else:
- # how even...?
- return None
- return bantime
- else:
- return None
-
-
-def format_welcome_caption(html_string, chat_member):
- return html_string.format(
- dc_id=chat_member.dc_id,
- first_name=chat_member.first_name,
- id=chat_member.id,
- last_name=chat_member.last_name,
- mention=chat_member.mention,
- username=chat_member.username
- )
diff --git a/plugins/helpers/arrow.py b/plugins/helpers/arrow.py
deleted file mode 100644
index a000a49..0000000
--- a/plugins/helpers/arrow.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# codes added by @lallu_tg
-# use with proper credits
-
-from pyrogram import Client, filters, enums
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-
-# EMOJI CONSTANTS
-DART_E_MOJI = "๐ฏ"
-# EMOJI CONSTANTS
-
-
-@Client.on_message(
- filters.command(["throw", "dart"], COMMAND_HAND_LER) &
- f_onw_fliter
-)
-async def throw_dart(client, message):
- """ /throw an @AnimatedDart """
- rep_mesg_id = message.id
- if message.reply_to_message:
- rep_mesg_id = message.reply_to_message.id
- await client.send_dice(
- chat_id=message.chat.id,
- emoji=DART_E_MOJI,
- disable_notification=True,
- reply_to_message_id=rep_mesg_id
- )
diff --git a/plugins/helpers/country.py b/plugins/helpers/country.py
deleted file mode 100644
index fbbda6b..0000000
--- a/plugins/helpers/country.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from countryinfo import CountryInfo
-from pyrogram import filters, Client
-from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery
-from Script import script
-
-@Client.on_message(filters.command(["country"]))
-async def country_info(bot, update):
- country = update.text.split(" ", 1)[1]
- country = CountryInfo(country)
- info = f"""๐ข๐๐๐๐๐๐ ๐จ๐๐ฟ๐๐๐๐บ๐๐๐๐
-๐ญ๐บ๐๐พ : {country.name()}
-๐ญ๐บ๐๐๐๐พ ๐ญ๐บ๐๐พ : {country.native_name()}
-๐ข๐บ๐๐๐๐บ๐
: {country.capital()}
-Population : {country.population()}
-๐ฑ๐พ๐๐๐๐ : {country.region()}
-๐ฒ๐๐ป ๐ฑ๐พ๐๐๐๐ : {country.subregion()}
-๐ณ๐๐ ๐ซ๐พ๐๐พ๐
๐ฃ๐๐๐บ๐๐๐ : {country.tld()}
-๐ข๐บ๐
๐
๐๐๐ ๐ข๐๐ฝ๐พ๐ : {country.calling_codes()}
-๐ข๐๐๐๐พ๐๐ผ๐๐พ๐ : {country.currencies()}
-๐ฑ๐พ๐๐๐ฝ๐พ๐๐ผ๐พ : {country.demonym()}
-๐ณ๐๐๐พ๐๐๐๐พ : {country.timezones()}
-"""
- country_name = country.name()
- country_name = country_name.replace(" ", "+")
- buttons=[[
- InlineKeyboardButton("แดกษชแดษชแดแดแด
ษชแด", url=f"{country.wiki()}"),
- InlineKeyboardButton("ษขแดแดษขสแด", url=f"https://www.google.com/search?q={country_name}")
- ],[
- InlineKeyboardButton('แดสแดsแด', callback_data='close_data')
- ]]
- try:
- await update.reply_photo(
- photo="https://telegra.ph/file/834750cfadc32b359b40c.jpg",
- caption=info,
- reply_markup=InlineKeyboardMarkup(buttons),
- quote=True
- )
- except Exception as error:
- await update.reply_text(
- text=error,
- disable_web_page_preview=True,
- quote=True
- )
diff --git a/plugins/helpers/dice.py b/plugins/helpers/dice.py
deleted file mode 100644
index f77e172..0000000
--- a/plugins/helpers/dice.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# codes added by @lallu_tg
-# use with proper credits
-
-from pyrogram import Client, filters, enums
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-
-# EMOJI CONSTANTS
-DICE_E_MOJI = "๐ฒ"
-# EMOJI CONSTANTS
-
-
-@Client.on_message(
- filters.command(["roll", "dice"], COMMAND_HAND_LER) &
- f_onw_fliter
-)
-async def roll_dice(client, message):
- """ @RollaDie """
- rep_mesg_id = message.id
- if message.reply_to_message:
- rep_mesg_id = message.reply_to_message.id
- await client.send_dice(
- chat_id=message.chat.id,
- emoji=DICE_E_MOJI,
- disable_notification=True,
- reply_to_message_id=rep_mesg_id
- )
diff --git a/plugins/helpers/fonts.py b/plugins/helpers/fonts.py
deleted file mode 100644
index 6899f3e..0000000
--- a/plugins/helpers/fonts.py
+++ /dev/null
@@ -1,175 +0,0 @@
-from pyrogram import Client, filters
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, CallbackQuery
-from plugins.helper_functions.fonts_func import Fonts
-
-
-@Client.on_message(filters.private & filters.command(["font"]))
-async def style_buttons(c, m, cb=False):
- buttons = [[
- InlineKeyboardButton('๐๐ข๐๐๐ ๐๐๐๐๐', callback_data='style+typewriter'),
- InlineKeyboardButton('๐๐ฆ๐ฅ๐๐๐๐', callback_data='style+outline'),
- InlineKeyboardButton('๐๐๐ซ๐ข๐', callback_data='style+serif'),
- ],[
- InlineKeyboardButton('๐บ๐๐๐๐', callback_data='style+bold_cool'),
- InlineKeyboardButton('๐๐๐๐๐', callback_data='style+cool'),
- InlineKeyboardButton('Sแดแดสส Cแดแดs', callback_data='style+small_cap'),
- ],[
- InlineKeyboardButton('๐๐ธ๐๐พ๐
๐', callback_data='style+script'),
- InlineKeyboardButton('๐ผ๐ฌ๐ป๐ฒ๐น๐ฝ', callback_data='style+script_bolt'),
- InlineKeyboardButton('แตโฑโฟสธ', callback_data='style+tiny'),
- ],[
- InlineKeyboardButton('แOแฐIแ', callback_data='style+comic'),
- InlineKeyboardButton('๐ฆ๐ฎ๐ป๐', callback_data='style+sans'),
- InlineKeyboardButton('๐๐๐ฃ๐จ', callback_data='style+slant_sans'),
- ],[
- InlineKeyboardButton('๐๐ข๐ฏ๐ด', callback_data='style+slant'),
- InlineKeyboardButton('๐ฒ๐บ๐๐', callback_data='style+sim'),
- InlineKeyboardButton('โธ๏ธโพ๏ธโ๏ธโธ๏ธโ๏ธโบ๏ธโ๏ธ', callback_data='style+circles')
- ],[
- InlineKeyboardButton('๐
๏ธ๐
๏ธ๐
ก๏ธ๐
๏ธ๐
๏ธ๐
๏ธ๐
ข๏ธ', callback_data='style+circle_dark'),
- InlineKeyboardButton('๐๐ฌ๐ฑ๐ฅ๐ฆ๐ ', callback_data='style+gothic'),
- InlineKeyboardButton('๐ฒ๐๐๐๐๐', callback_data='style+gothic_bolt'),
- ],[
- InlineKeyboardButton('Cอกอlอกอoอกอuอกอdอกอsอกอ', callback_data='style+cloud'),
- InlineKeyboardButton('Hฬฬaฬฬpฬฬpฬฬyฬฬ', callback_data='style+happy'),
- InlineKeyboardButton('Sฬฬaฬฬdฬฬ', callback_data='style+sad'),
- ],[
- InlineKeyboardButton('Next โก๏ธ', callback_data="nxt")
- ]]
- if not cb:
- if ' ' in m.text:
- title = m.text.split(" ", 1)[1]
- await m.reply_text(title, reply_markup=InlineKeyboardMarkup(buttons), reply_to_message_id=m.id)
- else:
- await m.reply_text(text="Enter Any Text Eg:- `/font [text]`")
- else:
- await m.answer()
- await m.message.edit_reply_markup(InlineKeyboardMarkup(buttons))
-
-
-@Client.on_callback_query(filters.regex('^nxt'))
-async def nxt(c, m):
- if m.data == "nxt":
- buttons = [[
- InlineKeyboardButton('๐ธโ๐ตโ๐ชโ๐จโ๐ฎโ๐ฆโ๐ฑโ', callback_data='style+special'),
- InlineKeyboardButton('๐
๐
๐
๐ฐ๐
๐ด๐
', callback_data='style+squares'),
- InlineKeyboardButton('๐๏ธ๐๏ธ๐๏ธ๐
ฐ๏ธ๐๏ธ๐
ด๏ธ๐๏ธ', callback_data='style+squares_bold'),
- ],[
- InlineKeyboardButton('๊ช๊ชแฆ๊ช๊ชถ๊ชแฅด๐ฒ๊ช', callback_data='style+andalucia'),
- InlineKeyboardButton('็ชๅๅ แๅ', callback_data='style+manga'),
- InlineKeyboardButton('Sฬพtฬพiฬพnฬพkฬพyฬพ', callback_data='style+stinky'),
- ],[
- InlineKeyboardButton('Bอฆฬฅuอฆฬฅbอฆฬฅbอฆฬฅlอฆฬฅeอฆฬฅsอฆฬฅ', callback_data='style+bubbles'),
- InlineKeyboardButton('Uอnอdอeอrอlอiอnอeอ', callback_data='style+underline'),
- InlineKeyboardButton('๊๊๊ท๊ฉ๊๊๊
', callback_data='style+ladybug'),
- ],[
- InlineKeyboardButton('Rาaาyาsา', callback_data='style+rays'),
- InlineKeyboardButton('Bาiาrาdาsา', callback_data='style+birds'),
- InlineKeyboardButton('Sฬธlฬธaฬธsฬธhฬธ', callback_data='style+slash'),
- ],[
- InlineKeyboardButton('sโ tโ oโ pโ ', callback_data='style+stop'),
- InlineKeyboardButton('Sอฬบkอฬบyอฬบlอฬบiอฬบnอฬบeอฬบ', callback_data='style+skyline'),
- InlineKeyboardButton('Aอrอrอoอwอsอ', callback_data='style+arrows'),
- ],[
- InlineKeyboardButton('แชแแญแฟแ', callback_data='style+qvnes'),
- InlineKeyboardButton('Sฬถtฬถrฬถiฬถkฬถeฬถ', callback_data='style+strike'),
- InlineKeyboardButton('Fเผrเผoเผzเผeเผnเผ', callback_data='style+frozen')
- ],[
- InlineKeyboardButton('โฌ
๏ธ Back', callback_data='nxt+0'),
- InlineKeyboardButton('๐ Close', callback_data='close_data')
- ]]
- await m.answer()
- await m.message.edit_reply_markup(InlineKeyboardMarkup(buttons))
- else:
- await style_buttons(c, m, cb=True)
-
-@Client.on_callback_query(filters.regex('^style'))
-async def style(c, m):
- await m.answer()
- cmd, style = m.data.split('+')
-
- if style == 'typewriter':
- cls = Fonts.typewriter
- if style == 'outline':
- cls = Fonts.outline
- if style == 'serif':
- cls = Fonts.serief
- if style == 'bold_cool':
- cls = Fonts.bold_cool
- if style == 'cool':
- cls = Fonts.cool
- if style == 'small_cap':
- cls = Fonts.smallcap
- if style == 'script':
- cls = Fonts.script
- if style == 'script_bolt':
- cls = Fonts.bold_script
- if style == 'tiny':
- cls = Fonts.tiny
- if style == 'comic':
- cls = Fonts.comic
- if style == 'sans':
- cls = Fonts.san
- if style == 'slant_sans':
- cls = Fonts.slant_san
- if style == 'slant':
- cls = Fonts.slant
- if style == 'sim':
- cls = Fonts.sim
- if style == 'circles':
- cls = Fonts.circles
- if style == 'circle_dark':
- cls = Fonts.dark_circle
- if style == 'gothic':
- cls = Fonts.gothic
- if style == 'gothic_bolt':
- cls = Fonts.bold_gothic
- if style == 'cloud':
- cls = Fonts.cloud
- if style == 'happy':
- cls = Fonts.happy
- if style == 'sad':
- cls = Fonts.sad
- if style == 'special':
- cls = Fonts.special
- if style == 'squares':
- cls = Fonts.square
- if style == 'squares_bold':
- cls = Fonts.dark_square
- if style == 'andalucia':
- cls = Fonts.andalucia
- if style == 'manga':
- cls = Fonts.manga
- if style == 'stinky':
- cls = Fonts.stinky
- if style == 'bubbles':
- cls = Fonts.bubbles
- if style == 'underline':
- cls = Fonts.underline
- if style == 'ladybug':
- cls = Fonts.ladybug
- if style == 'rays':
- cls = Fonts.rays
- if style == 'birds':
- cls = Fonts.birds
- if style == 'slash':
- cls = Fonts.slash
- if style == 'stop':
- cls = Fonts.stop
- if style == 'skyline':
- cls = Fonts.skyline
- if style == 'arrows':
- cls = Fonts.arrows
- if style == 'qvnes':
- cls = Fonts.rvnes
- if style == 'strike':
- cls = Fonts.strike
- if style == 'frozen':
- cls = Fonts.frozen
-
- r, oldtxt = m.message.reply_to_message.text.split(None, 1)
- new_text = cls(oldtxt)
- try:
- await m.message.edit_text(f"`{new_text}`\n\n๐ Click To Copy", reply_markup=m.message.reply_markup)
- except Exception as e:
- print(e)
diff --git a/plugins/helpers/goal.py b/plugins/helpers/goal.py
deleted file mode 100644
index 6a4df80..0000000
--- a/plugins/helpers/goal.py
+++ /dev/null
@@ -1,25 +0,0 @@
-
-from pyrogram import Client, filters, enums
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-
-# EMOJI CONSTANTS
-GOAL_E_MOJI = "โฝ"
-# EMOJI CONSTANTS
-
-
-@Client.on_message(
- filters.command(["goal", "shoot"], COMMAND_HAND_LER) &
- f_onw_fliter
-)
-async def roll_dice(client, message):
- """ @Goal """
- rep_mesg_id = message.id
- if message.reply_to_message:
- rep_mesg_id = message.reply_to_message.id
- await client.send_dice(
- chat_id=message.chat.id,
- emoji=GOAL_E_MOJI,
- disable_notification=True,
- reply_to_message_id=rep_mesg_id
- )
diff --git a/plugins/helpers/list.py b/plugins/helpers/list.py
deleted file mode 100644
index dbe15e0..0000000
--- a/plugins/helpers/list.py
+++ /dev/null
@@ -1,109 +0,0 @@
-list = {
-"afrikaans":"af",
-"albanian":"sq",
-"amharic":"am",
-"arabic":"ar",
-"armenian":"hy",
-"azerbaijani":"az",
-"basque":"eu",
-"belarusian":"be",
-"bengali":"bn",
-"bosnian":"bs",
-"bulgarian":"bg",
-"catalan":"ca",
-"cebuano":"ceb",
-"chinese": "zh",
-"corsican":"co",
-"croatian":"hr",
-"czech":"cs",
-"danish":"da",
-"dutch":"nl",
-"english":"en",
-"esperanto":"eo",
-"estonian":"et",
-"finnish":"fi",
-"french":"fr",
-"frisian":"fy",
-"galician":"gl",
-"georgian":"ka",
-"german":"de",
-"greek":"el",
-"gujarati":"gu",
-"haitian creole":"ht",
-"hausa":"ha",
-"hawaiian":"haw",
-"hebrew":"he",
-"hindi":"hi",
-"hmong":"hmn",
-"hungarian":"hu",
-"icelandic":"is",
-"igbo":"ig",
-"indonesian":"id",
-"irish":"ga",
-"italian":"it",
-"japanese":"ja",
-"javanese":"jv",
-"kannada":"kn",
-"kazakh":"kk",
-"khmer":"km",
-"kinyarwanda":"rw",
-"korean":"ko",
-"kurdish":"ku",
-"kyrgyz":"ky",
-"lao":"lo",
-"latin":"la",
-"latvian":"lv",
-"lithuanian":"lt",
-"luxembourgish":"lb",
-"macedonian":"mk",
-"malagasy":"mg",
-"malay":"ms",
-"malayalam":"ml",
-"maltese":"mt",
-"maori":"mi",
-"marathi":"mr",
-"mongolian":"mn",
-"myanmar":"my",
-"nepali":"ne",
-"norwegian":"no",
-"nyanja":"ny",
-"odia":"or",
-"pashto":"ps",
-"persian":"fa",
-"polish":"pl",
-"portuguese":"pt",
-"punjabi":"pa",
-"romanian":"ro",
-"russian":"ru",
-"samoan":"sm",
-"scots gaelic":"gd",
-"serbian":"sr",
-"sesotho":"st",
-"shona":"sn",
-"sindhi":"sd",
-"sinhala":"si",
-"slovak":"sk",
-"slovenian":"sl",
-"somali":"so",
-"spanish":"es",
-"sundanese":"su",
-"swahili":"sw",
-"swedish":"sv",
-"tagalog":"tl",
-"tajik":"tg",
-"tamil":"ta",
-"tatar":"tt",
-"telugu":"te",
-"thai":"th",
-"turkish":"tr",
-"turkmen":"tk",
-"ukrainian":"uk",
-"urdu":"ur",
-"uyghur":"ug",
-"uzbek":"uz",
-"vietnamese":"vi",
-"welsh":"cy",
-"xhosa":"xh",
-"yiddish":"yi",
-"yoruba":"yo",
-"zulu":"zu"}
diff --git a/plugins/helpers/luck.py b/plugins/helpers/luck.py
deleted file mode 100644
index a159aaa..0000000
--- a/plugins/helpers/luck.py
+++ /dev/null
@@ -1,25 +0,0 @@
-
-from pyrogram import Client, filters, enums
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-
-# LUCK------------ https://telegram.me/Josprojects ------------ #
-
-# EMOJI CONSTANTS
-TRY_YOUR_LUCK = "๐ฐ"
-# EMOJI CONSTANTS
-
-@Client.on_message(
- filters.command(["luck", "cownd"])
-)
-async def luck_cownd(client, message):
- """ /luck an @animatedluck """
- rep_mesg_id = message.id
- if message.reply_to_message:
- rep_mesg_id = message.reply_to_message.id
- await client.send_dice(
- chat_id=message.chat.id,
- emoji=TRY_YOUR_LUCK,
- disable_notification=True,
- reply_to_message_id=rep_mesg_id
- )
diff --git a/plugins/helpers/ping.py b/plugins/helpers/ping.py
deleted file mode 100644
index 60ba3ae..0000000
--- a/plugins/helpers/ping.py
+++ /dev/null
@@ -1,32 +0,0 @@
-"""Telegram Ping / Pong Speed
-Syntax: .ping"""
-
-import time
-import random
-from pyrogram import Client, filters
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-
-# -- Constants -- #
-ALIVE = "เดเดคเตเดคเดฟเดเตเดเดฟเดฒเตเดฒ เดฎเตเดคเตเดคเต เดเดตเดฟเดเต เดคเดจเตเดจเต เดเดฃเตเดเต.. เดจเดฟเดจเดเตเดเต เดเดชเตเดชเต เดเดจเตเดจเตเดเต เดเดฐเต เดธเตเดจเตเดนเดตเตเด เดเดฒเตเดฒ. เดเตเดณเตเดณเดพเด.. เดจเต เดชเดพเดดเต เดชเตเดฒเตเดฏเต เด
เดฒเตเดฒ เดฎเดพเดฑเดฟเดชเตเดฏเดฟ..๐ เดเดเดเตเดเต เดเดเตเดเดฟเดฒเตเด เดเตเดฎเตเดฎเดพ เดเดจเตเดจเต /start เดเตเดฏเตเดคเต เดจเตเดเตเดเต..๐"
-# -- Constants End -- #
-
-
-@Client.on_message(filters.command("alive", COMMAND_HAND_LER) & f_onw_fliter)
-async def check_alive(_, message):
- await message.reply_text(ALIVE)
-
-
-@Client.on_message(filters.command("ping", COMMAND_HAND_LER) & f_onw_fliter)
-async def ping(_, message):
- start_t = time.time()
- rm = await message.reply_text("...")
- end_t = time.time()
- time_taken_s = (end_t - start_t) * 1000
- await rm.edit(f"Pong!\n{time_taken_s:.3f} ms\n\nยฉCINEMALA.COMโข")
-
-
-
-
-
-
diff --git a/plugins/helpers/runs.py b/plugins/helpers/runs.py
deleted file mode 100644
index 5b6e560..0000000
--- a/plugins/helpers/runs.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import random
-from pyrogram import Client, filters, enums
-from info import COMMAND_HAND_LER
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-
-
-RUN_STRINGS = (
- "เด.. เดงเดฟเดเตเดเดพเดฐเด... เดชเดดเตเดชเตเดฒเต เดคเดจเตเดจเต....เดเดฐเต เดฎเดพเดฑเตเดฑเตเดฎเดฟเดฒเตเดฒ.....เดเตเดฎเตเดฎเดพเดคเดฒเตเดฒ เดเดคเดฟ เดชเดฟเดเดฟเดเตเดเดพเดคเตเดคเดคเต....!!!",
- "เด
เดณเตเดณเดพ... เดชเดฟเดณเตเดณเตเดฐเตเดเต เดเดฐเต... เดชเตเดทเดจเต...",
- "เดเดจเดฟเดเตเดเต เดเดดเตเดคเดพเตป เด
เดฒเตเดฒเต เด
เดฑเดฟเดฏเต เดธเดพเดฑเต.... เดตเดพเดฏเดฟเดเตเดเดพเตป เด
เดฑเดฟเดฏเดฟเดฒเตเดฒเดฒเตเดฒเต....",
- "เดเดจเตเดจเต เดเดจเดฟ เดจเต เดฎเดฟเดฃเตเดเดฐเตเดคเต... เดเดจเตเดจเดคเตเดคเต เดเตเดเตเด เดเดดเดฟเดเตเดเต.....",
- "เดเดพเดฐเดฎเดพเดฃเตเดจเตเดจเต เดเดฐเตเดคเดฟ เดเตเดเดฏเดพเตป เดจเดฟเตฝเดเตเดเดฃเตเด เดเดจเตฝ เดเตเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเตเดณเตเดณเตเด.",
- "เดเดฑเตเดฑ เดเตเดตเดฟเดคเดฎเต เดเดณเตเดณเต เดฎเดจเดธเดฟเดฒเดพเดเตเดเดฟเดเตเดเต, เดธเตเดตเตผเดเตเดเดฎเดฟเดฒเตเดฒ เดจเดฐเดเดฎเดฟเดฒเตเดฒ, 'เดเดฑเตเดฑ เดเตเดตเดฟเดคเด', เด
เดคเต เดเดตเดฟเดเต เดเดเตเดเดจเต เดตเตเดฃเดฎเตเดจเตเดจเต เด
เดตเดจเดตเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเด",
- "เดตเดพเดเตเดเต เด เดฌเตเดเดฌเตเดธเตเดฑเตเดฑเดฟเดเต เดเดเตเดธเตเดชเตเดฒเตเดทเตป! เดธเดเต เด เดเตเดฑเดฟเดซเดฟเดเต เดกเดฟเดธเตเดเตเดฒเตเดธเต!!",
- "เดเต เดเดตเต เดธเตเดเตเดชเตเดชเดฟเดกเต เดเตป เดฆเดฟ เดนเตเดธเต เดเดซเต เดฎเต เดตเตเดซเตโ เดเตปเดกเต เดกเตเดเตเดเตผ เดฏเตเดตเดฟเตฝ เดจเตเดเตเดเต เดธเดฟ เดเดจเดฟ เดฎเดฟเดจเดฟเดฑเตเดฑเต เดเดซเต เดฆเดฟ เดเตเดกเต... เดเดฑเดเตเดเดฟ เดชเตเดเดพ..",
- "เด เดเดพเตป เดกเต เดฆเดพเดฑเตเดฑเตโ เดกเต เดเดพเตป เด เดฆเดพเดฑเตเดฑเตโ",
- "เดเตเดฐเตเด เดฌเดฟเดธเตเดเดฑเตเดฑเดฟเตฝ เดเตเดฐเตเด เดเดฃเตเดเดจเตเดจเต เดเดฐเตเดคเดฟ เดเตเดเตผ เดฌเดฟเดธเตเดเดฑเตเดฑเดฟเตฝ เดเตเดเตผ เดเดฃเตเดเดพเดเดฃเดฎเตเดจเตเดจเดฟเดฒเตเดฒ. เดชเดฃเดฟ เดชเดพเดณเตเด เดฎเตเดจเต...",
- "เดชเด เดชเตเดเดฟเดเตเดเต เดชเดจเตเดคเดณเดคเตเดคเต เดเตเดจเตเดจเดชเตเดชเต เดชเดจเตเดคเตเด เดเตเดคเตเดคเดฟ เดชเด เดชเดจเตเดคเดณเดคเตเดคเตเดเตเดเตเดจเตเดจเต เดชเดฑเดเตเด เดชเตเดฒเต เดเดฏเดฒเตเดฒเต.",
- "เดเดจเตเดฑ เดเตผเดคเตเดคเดพเดตเต.... เดเดจเตเดจเต เดจเต เดจเดฒเตเดฒเดตเดจเดพเดเดพเตป เดธเดฎเตเดฎเดคเดฟเดเตเดเตเดฒเตเดฒ เด
เดฒเตเดฒเต.",
- "เดเดพเตผ เดเตปเดเดฟเตป เดเดเตเดเต เดเดเดชเตเดฒเตเดฑเตเดฑเตโเดฒเดฟ......",
- "เดคเดณเตเดณเต เดเดฒเดฟเดชเตเดชเต เดคเตเดฐเดฃเดฟเดฒเตเดฒเดฒเตเดฒเต!!",
- "เดชเดพเดคเดฟเดฐเดพเดคเตเดฐเดฟเดเตเดเต เดจเดฟเดจเตเดฑเต เด
เดเตเดเตป เดเดฃเตเดเดพเดเตเดเดฟ เดตเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดชเตเดฑเตเดเตเดเดฏเตเด เดเดฟเดเตเดเดจเตเด....",
- "เด เดชเดฟเดจเตเดจเต เดจเต เดเดเตเดเต เดชเตเดฐเตเดฎเดฟเดเตเดเตเดฎเตเดชเตเตพ เด
เดคเต เดชเตเดฐเดฃเดฏเด.... เดจเดฎเตเดฎเตพ เดเดเตเดเต เดชเตเดฐเตเดฎเดฟเดเตเดเตเดฎเตเดชเตเตพ เด
เดคเต เดเดฎเตเดชเดฟ....",
- "เดฆเตเดตเดฎเต เดเดจเตเดจเต เดฎเดพเดคเตเดฐเด เดฐเดเตเดทเดฟเดเตเดเดฃเต....",
- "เด
เดตเดณเต เดเตผเดคเตเดคเต เดเตเดเดฟเดเตเด เดเดณเตเดณเตเด เดจเดจเดเตเด เดฎเดดเดฏเตเด เดตเตเดธเตเดฑเตเดฑเต....",
- "เดเดคเตเดฐเตเด เดเดพเดฒเด เดเดตเดฟเดเต เดเดฏเดฟเดฐเตเดจเตเดจเต....!",
- "เดเตปเดเตเดฒเตเดทเต เดคเตเดฐเต เดชเดฟเดเดฟ เดเดฒเตเดฒ เด
เดฒเตเดฒเต....",
- "เดเตพ เดฆเดฟ เดกเตเดฐเตเดเดธเตโ เดฒเตเดเตโ เดเตเดตเดฟเดเตเดเดฟเตฝ เดธเตเดฑเตเดฑเดพเตผเดธเต...",
- "เดเดจเตเดฑเต เดชเตเดฐเดพเดจเตเดคเตป เดฎเตเดคเตเดคเดชเตเดชเดพ เด
เดตเดจเต เดเดฐเต เดตเดดเดฟเดฏเดพเดเตเดเดฟ เดคเดฐเดฃเต",
- "เดชเตเดเตเดเดณเต เดเตเดเตเดเดฟเดฏ เดธเตเดคเตเดฐเตเดงเดจ เดคเตเด เดคเดฐเตเดฎเต เด
เดณเดฟเดฏเดพ",
- "เดจเต เดตเดฒเตเดฒเดพเดคเต เดเตเดทเตเดฃเดฟเดเตเดเต เดชเตเดฏเดฟ",
- "เดเดฃเตเดฃเดฟเดฒเตเดฃเตเดฃเดฏเตเดดเดฟเดเตเดเต เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดตเดพเดฏเดฟเดฐเตเดจเตเดจเดณเดฟเดฏเดพ.",
- "เดเตเดฒเตเดฒเดพเดเตเดเดฃเตเดเต เดเดจเตเดจเดฟเดเตเดเต เดชเตเดเดพ เดคเดเดฟ.เดฏเดพ .\
- เดทเดเตเดเต เดเด เดฏเตเดตเตผ เดฎเตเดคเต เดฌเตเดฒเดกเดฟ gramavasis.",
- "เดชเตเดฏเดฟ เดเดพเดตเด .\
- เดจเดฟเดจเตเดจเต เดเตเดฃเตเดเต เดเดพเดตเดพเตป patto.",
- "เดจเดฟเดจเตเดจเต เดเตเดฃเตเดเต เดจเดพเดเตเดเตเดเดพเตผเดเตเดเตเด เดเตเดฃเตเดฒเตเดฒเตเดฏ เดตเดฟเดเตเดเตเดเดพเตผเดเตเดเตเด เดเตเดฃเตเดฒเตเดฒเตเดฏ เดเดจเตเดคเดฟเดจเดพ เดเดเตเดเดจเต เดจเดพเดฃเด เดเตเดเตเดเต เดเตเดตเดฟเดเตเดเตเดจเตเดจเด เดชเดพเดเต เดตเดพเดดเต เดเตเดเตเดเดคเดณเดฟ เดตเดพเดด .",
-)
-
-
-@Client.on_message(
- filters.command("runs", COMMAND_HAND_LER) &
- f_onw_fliter
-)
-async def runs(_, message):
- """ /runs strings """
- effective_string = random.choice(RUN_STRINGS)
- if message.reply_to_message:
- await message.reply_to_message.reply_text(effective_string)
- else:
- await message.reply_text(effective_string)
diff --git a/plugins/helpers/song.py b/plugins/helpers/song.py
deleted file mode 100644
index f4a4504..0000000
--- a/plugins/helpers/song.py
+++ /dev/null
@@ -1,158 +0,0 @@
-from __future__ import unicode_literals
-
-import os
-import requests
-import aiohttp
-import yt_dlp
-import asyncio
-import math
-import time
-
-import wget
-import aiofiles
-
-from pyrogram import filters, Client, enums
-from pyrogram.errors import FloodWait, MessageNotModified
-from pyrogram.types import Message
-from youtube_search import YoutubeSearch
-from youtubesearchpython import SearchVideos
-from yt_dlp import YoutubeDL
-import youtube_dl
-import requests
-
-def time_to_seconds(time):
- stringt = str(time)
- return sum(int(x) * 60 ** i for i, x in enumerate(reversed(stringt.split(':'))))
-
-
-@Client.on_message(filters.command('song'))
-def song(client, message):
-
- user_id = message.from_user.id
- user_name = message.from_user.first_name
- rpk = "["+user_name+"](tg://user?id="+str(user_id)+")"
-
- query = ''
- for i in message.command[1:]:
- query += ' ' + str(i)
- print(query)
- m = message.reply("**ััฮฑrchรญng ัฯur ัฯng...!**")
- ydl_opts = {"format": "bestaudio[ext=m4a]"}
- try:
- results = YoutubeSearch(query, max_results=1).to_dict()
- link = f"https://youtube.com{results[0]['url_suffix']}"
- #print(results)
- title = results[0]["title"][:40]
- thumbnail = results[0]["thumbnails"][0]
- thumb_name = f'thumb{title}.jpg'
- thumb = requests.get(thumbnail, allow_redirects=True)
- open(thumb_name, 'wb').write(thumb.content)
-
-
- performer = f"[Elsa - ๐ฒ๐ธ๐ฝ๐ด๐ผ๐ฐ๐ป๐ฐ.๐ฒ๐พ๐ผโข]"
- duration = results[0]["duration"]
- url_suffix = results[0]["url_suffix"]
- views = results[0]["views"]
-
- except Exception as e:
- m.edit(
- "**๐ต๐พ๐๐ฝ๐ณ ๐ฝ๐พ๐๐ท๐ธ๐ฝ๐ถ ๐ฟ๐ป๐ด๐ฐ๐๐ด ๐ฒ๐พ๐๐๐ด๐ฒ๐ ๐๐ท๐ด ๐๐ฟ๐ด๐ป๐ป๐ธ๐ฝ๐ถ ๐พ๐ ๐๐ด๐ฐ๐๐ฒ๐ท ๐ฐ๐ฝ๐ ๐พ๐๐ท๐ด๐ ๐๐พ๐ฝ๐ถ**"
- )
- print(str(e))
- return
- m.edit("**dฯwnlฯฮฑdรญng ัฯur ัฯng...!**")
- try:
- with yt_dlp.YoutubeDL(ydl_opts) as ydl:
- info_dict = ydl.extract_info(link, download=False)
- audio_file = ydl.prepare_filename(info_dict)
- ydl.process_info(info_dict)
- rep = '**๐๐๐ฑ๐๐ฒ๐๐ธ๐ฑ๐ด โบโบ [๐ แดสแดษดษดแดส ๐](https://t.me/cinemala_com1)**\n**๐ฟ๐พ๐๐ด๐๐ด๐ณ ๐ฑ๐ โบโบ [muัรญc ะฒฯั](https://t.me/CcommusicBot)**\n@๐ฒ๐ธ๐ฝ๐ด๐ผ๐ฐ๐ป๐ฐ.๐ฒ๐พ๐ผ**'
- secmul, dur, dur_arr = 1, 0, duration.split(':')
- for i in range(len(dur_arr)-1, -1, -1):
- dur += (int(dur_arr[i]) * secmul)
- secmul *= 60
- message.reply_audio(audio_file, caption=rep, parse_mode=enums.ParseMode.MARKDOWN,quote=False, title=title, duration=dur, performer=performer, thumb=thumb_name)
- m.delete()
- except Exception as e:
- m.edit("**๐ซ ๐ด๐๐๐พ๐ ๐ซ**")
- print(e)
-
- try:
- os.remove(audio_file)
- os.remove(thumb_name)
- except Exception as e:
- print(e)
-
-def get_text(message: Message) -> [None,str]:
- text_to_return = message.text
- if message.text is None:
- return None
- if " " not in text_to_return:
- return None
- try:
- return message.text.split(None, 1)[1]
- except IndexError:
- return None
-
-
-@Client.on_message(filters.command(["video", "mp4"]))
-async def vsong(client, message: Message):
- urlissed = get_text(message)
-
- pablo = await client.send_message(
- message.chat.id, f"**๐ต๐ธ๐ฝ๐ณ๐ธ๐ฝ๐ถ ๐๐พ๐๐ ๐
๐ธ๐ณ๐ด๐พ** `{urlissed}`"
- )
- if not urlissed:
- await pablo.edit("Invalid Command Syntax Please Check help Menu To Know More!")
- return
-
- search = SearchVideos(f"{urlissed}", offset=1, mode="dict", max_results=1)
- mi = search.result()
- mio = mi["search_result"]
- mo = mio[0]["link"]
- thum = mio[0]["title"]
- fridayz = mio[0]["id"]
- mio[0]["channel"]
- kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg"
- await asyncio.sleep(0.6)
- url = mo
- sedlyf = wget.download(kekme)
- opts = {
- "format": "best",
- "addmetadata": True,
- "key": "FFmpegMetadata",
- "prefer_ffmpeg": True,
- "geo_bypass": True,
- "nocheckcertificate": True,
- "postprocessors": [{"key": "FFmpegVideoConvertor", "preferedformat": "mp4"}],
- "outtmpl": "%(id)s.mp4",
- "logtostderr": False,
- "quiet": True,
- }
- try:
- with YoutubeDL(opts) as ytdl:
- ytdl_data = ytdl.extract_info(url, download=True)
- except Exception as e:
- await event.edit(event, f"**๐ณ๐๐ ๐๐๐๐๐ ๐ต๐๐๐๐๐ ๐ฟ๐๐๐๐๐ ๐๐๐ข ๐ฐ๐๐๐๐..โฅ๏ธ** \n**Error :** `{str(e)}`")
- return
- c_time = time.time()
- file_stark = f"{ytdl_data['id']}.mp4"
- capy = f"""
-**๐๐ธ๐๐ป๐ด :** [{thum}]({mo})
-**๐๐ด๐๐๐ด๐๐๐ด๐ณ ๐ฑ๐ :** {message.from_user.mention}
-**@แดแดแดแด_แดแดแดแด**
-"""
- await client.send_video(
- message.chat.id,
- video=open(file_stark, "rb"),
- duration=int(ytdl_data["duration"]),
- file_name=str(ytdl_data["title"]),
- thumb=sedlyf,
- caption=capy,
- supports_streaming=True,
- reply_to_message_id=message.id
- )
- await pablo.delete()
- for files in (sedlyf, file_stark):
- if files and os.path.exists(files):
- os.remove(files)
diff --git a/plugins/helpers/telegraph.py b/plugins/helpers/telegraph.py
deleted file mode 100644
index a95a95b..0000000
--- a/plugins/helpers/telegraph.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import os
-import shutil
-from pyrogram import Client, filters, enums
-from telegraph import upload_file
-from info import TMP_DOWNLOAD_DIRECTORY
-from plugins.helper_functions.cust_p_filters import f_onw_fliter
-from plugins.helper_functions.get_file_id import get_file_id
-
-
-@Client.on_message(
- filters.command("telegraph") &
- f_onw_fliter
-)
-async def telegraph(client, message):
- replied = message.reply_to_message
- if not replied:
- await message.reply_text("๐๐ด๐ฟ๐ป๐ ๐๐พ ๐ฐ ๐ฟ๐ท๐พ๐๐พ ๐พ๐ ๐
๐ธ๐ณ๐ด๐พ ๐๐ฝ๐ณ๐ด๐ ๐ป๐ผ๐ฑ.")
- return
- file_info = get_file_id(replied)
- if not file_info:
- await message.reply_text("Not supported!")
- return
- _t = os.path.join(
- TMP_DOWNLOAD_DIRECTORY,
- str(replied.id)
- )
- if not os.path.isdir(_t):
- os.makedirs(_t)
- _t += "/"
- download_location = await replied.download(
- _t
- )
- try:
- response = upload_file(download_location)
- except Exception as document:
- await message.reply_text(message, text=document)
- else:
- await message.reply(
- f"Link :- https://telegra.ph{response[0]}",
- disable_web_page_preview=True
- )
- finally:
- shutil.rmtree(
- _t,
- ignore_errors=True
- )
diff --git a/plugins/helpers/tts.py b/plugins/helpers/tts.py
deleted file mode 100644
index 76eeafe..0000000
--- a/plugins/helpers/tts.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import traceback
-from asyncio import get_running_loop
-from io import BytesIO
-
-from googletrans import Translator
-from gtts import gTTS
-from pyrogram import Client, filters, enums
-from pyrogram.types import Message
-
-
-def convert(text):
- audio = BytesIO()
- i = Translator().translate(text, dest="en")
- lang = i.src
- tts = gTTS(text, lang=lang)
- audio.name = lang + ".mp3"
- tts.write_to_fp(audio)
- return audio
-
-
-@Client.on_message(filters.command("tts"))
-async def text_to_speech(_, message: Message):
- if not message.reply_to_message:
- return await message.reply_text("Reply to some text ffs.")
- if not message.reply_to_message.text:
- return await message.reply_text("Reply to some text ffs.")
- m = await message.reply_text("Processing")
- text = message.reply_to_message.text
- try:
- loop = get_running_loop()
- audio = await loop.run_in_executor(None, convert, text)
- await message.reply_audio(audio)
- await m.delete()
- audio.close()
- except Exception as e:
- await m.edit(e)
- e = traceback.format_exc()
- print(e)
diff --git a/plugins/inline.py b/plugins/inline.py
deleted file mode 100644
index 7d344a6..0000000
--- a/plugins/inline.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import logging
-from pyrogram import Client, emoji, filters
-from pyrogram.errors.exceptions.bad_request_400 import QueryIdInvalid
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, InlineQueryResultCachedDocument, InlineQuery
-from database.ia_filterdb import get_search_results
-from utils import is_subscribed, get_size, temp
-from info import CACHE_TIME, AUTH_USERS, AUTH_CHANNEL, CUSTOM_FILE_CAPTION
-
-logger = logging.getLogger(__name__)
-cache_time = 0 if AUTH_USERS or AUTH_CHANNEL else CACHE_TIME
-
-async def inline_users(query: InlineQuery):
- if AUTH_USERS:
- if query.from_user and query.from_user.id in AUTH_USERS:
- return True
- else:
- return False
- if query.from_user and query.from_user.id not in temp.BANNED_USERS:
- return True
- return False
-
-@Client.on_inline_query()
-async def answer(bot, query):
- """Show search results for given inline query"""
-
- if not await inline_users(query):
- await query.answer(results=[],
- cache_time=0,
- switch_pm_text='okDa',
- switch_pm_parameter="hehe")
- return
-
- if AUTH_CHANNEL and not await is_subscribed(bot, query):
- await query.answer(results=[],
- cache_time=0,
- switch_pm_text='You have to subscribe my channel to use the bot',
- switch_pm_parameter="subscribe")
- return
-
- results = []
- if '|' in query.query:
- string, file_type = query.query.split('|', maxsplit=1)
- string = string.strip()
- file_type = file_type.strip().lower()
- else:
- string = query.query.strip()
- file_type = None
-
- offset = int(query.offset or 0)
- reply_markup = get_reply_markup(query=string)
- files, next_offset, total = await get_search_results(string,
- file_type=file_type,
- max_results=10,
- offset=offset)
-
- for file in files:
- title=file.file_name
- size=get_size(file.file_size)
- f_caption=file.caption
- if CUSTOM_FILE_CAPTION:
- try:
- f_caption=CUSTOM_FILE_CAPTION.format(file_name= '' if title is None else title, file_size='' if size is None else size, file_caption='' if f_caption is None else f_caption)
- except Exception as e:
- logger.exception(e)
- f_caption=f_caption
- if f_caption is None:
- f_caption = f"{file.file_name}"
- results.append(
- InlineQueryResultCachedDocument(
- title=file.file_name,
- document_file_id=file.file_id,
- caption=f_caption,
- description=f'Size: {get_size(file.file_size)}\nType: {file.file_type}',
- reply_markup=reply_markup))
-
- if results:
- switch_pm_text = f"{emoji.FILE_FOLDER} Results - {total}"
- if string:
- switch_pm_text += f" for {string}"
- try:
- await query.answer(results=results,
- is_personal = True,
- cache_time=cache_time,
- switch_pm_text=switch_pm_text,
- switch_pm_parameter="start",
- next_offset=str(next_offset))
- except QueryIdInvalid:
- pass
- except Exception as e:
- logging.exception(str(e))
- else:
- switch_pm_text = f'{emoji.CROSS_MARK} No results'
- if string:
- switch_pm_text += f' for "{string}"'
-
- await query.answer(results=[],
- is_personal = True,
- cache_time=cache_time,
- switch_pm_text=switch_pm_text,
- switch_pm_parameter="okay")
-
-
-def get_reply_markup(query):
- buttons = [
- [
- InlineKeyboardButton('Search again', switch_inline_query_current_chat=query)
- ]
- ]
- return InlineKeyboardMarkup(buttons)
diff --git a/plugins/misc.py b/plugins/misc.py
deleted file mode 100644
index 63cbfa9..0000000
--- a/plugins/misc.py
+++ /dev/null
@@ -1,211 +0,0 @@
-import os
-from pyrogram import Client, filters, enums
-from pyrogram.errors.exceptions.bad_request_400 import UserNotParticipant, MediaEmpty, PhotoInvalidDimensions, WebpageMediaEmpty
-from info import IMDB_TEMPLATE
-from utils import extract_user, get_file_id, get_poster, last_online
-import time
-from datetime import datetime
-from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery
-import logging
-logger = logging.getLogger(__name__)
-logger.setLevel(logging.ERROR)
-
-@Client.on_message(filters.command('id'))
-async def showid(client, message):
- chat_type = message.chat.type
- if chat_type == enums.ChatType.PRIVATE:
- user_id = message.chat.id
- first = message.from_user.first_name
- last = message.from_user.last_name or ""
- username = message.from_user.username
- dc_id = message.from_user.dc_id or ""
- await message.reply_text(
- f"โฒ First Name: {first}\nโฒ Last Name: {last}\nโฒ Username: {username}\nโฒ Telegram ID: {user_id}\nโฒ Data Centre: {dc_id}",
- quote=True
- )
-
- elif chat_type in [enums.ChatType.GROUP, enums.ChatType.SUPERGROUP]:
- _id = ""
- _id += (
- "โฒ Chat ID: "
- f"{message.chat.id}\n"
- )
- if message.reply_to_message:
- _id += (
- "โฒ User ID: "
- f"{message.from_user.id if message.from_user else 'Anonymous'}\n"
- "โฒ Replied User ID: "
- f"{message.reply_to_message.from_user.id if message.reply_to_message.from_user else 'Anonymous'}\n"
- )
- file_info = get_file_id(message.reply_to_message)
- else:
- _id += (
- "โฒ User ID: "
- f"{message.from_user.id if message.from_user else 'Anonymous'}\n"
- )
- file_info = get_file_id(message)
- if file_info:
- _id += (
- f"{file_info.message_type}: "
- f"{file_info.file_id}\n"
- )
- await message.reply_text(
- _id,
- quote=True
- )
-
-@Client.on_message(filters.command(["info"]))
-async def who_is(client, message):
- # https://github.com/SpEcHiDe/PyroGramBot/blob/master/pyrobot/plugins/admemes/whois.py#L19
- status_message = await message.reply_text(
- "`Fetching user info...`"
- )
- await status_message.edit(
- "`Processing user info...`"
- )
- from_user = None
- from_user_id, _ = extract_user(message)
- try:
- from_user = await client.get_users(from_user_id)
- except Exception as error:
- await status_message.edit(str(error))
- return
- if from_user is None:
- return await status_message.edit("no valid user_id / message specified")
- message_out_str = ""
- message_out_str += f"โฒFirst Name: {from_user.first_name}\n"
- last_name = from_user.last_name or "None"
- message_out_str += f"โฒLast Name: {last_name}\n"
- message_out_str += f"โฒTelegram ID: {from_user.id}\n"
- username = from_user.username or "None"
- dc_id = from_user.dc_id or "[User Doesn't Have A Valid DP]"
- message_out_str += f"โฒData Centre: {dc_id}\n"
- message_out_str += f"โฒUser Name: @{username}\n"
- message_out_str += f"โฒUser ๐ซ๐๐๐: Click Here\n"
- if message.chat.type in ((enums.ChatType.SUPERGROUP, enums.ChatType.CHANNEL)):
- try:
- chat_member_p = await message.chat.get_member(from_user.id)
- joined_date = (
- chat_member_p.joined_date or datetime.now()
- ).strftime("%Y.%m.%d %H:%M:%S")
- message_out_str += (
- "โฒJoined this Chat on: "
- f"{joined_date}"
- "\n"
- )
- except UserNotParticipant:
- pass
- chat_photo = from_user.photo
- if chat_photo:
- local_user_photo = await client.download_media(
- message=chat_photo.big_file_id
- )
- buttons = [[
- InlineKeyboardButton('๐ Close', callback_data='close_data')
- ]]
- reply_markup = InlineKeyboardMarkup(buttons)
- await message.reply_photo(
- photo=local_user_photo,
- quote=True,
- reply_markup=reply_markup,
- caption=message_out_str,
- parse_mode=enums.ParseMode.HTML,
- disable_notification=True
- )
- os.remove(local_user_photo)
- else:
- buttons = [[
- InlineKeyboardButton('๐ Close', callback_data='close_data')
- ]]
- reply_markup = InlineKeyboardMarkup(buttons)
- await message.reply_text(
- text=message_out_str,
- reply_markup=reply_markup,
- quote=True,
- parse_mode=enums.ParseMode.HTML,
- disable_notification=True
- )
- await status_message.delete()
-
-@Client.on_message(filters.command(["imdb", 'search']))
-async def imdb_search(client, message):
- if ' ' in message.text:
- k = await message.reply('Searching ImDB')
- r, title = message.text.split(None, 1)
- movies = await get_poster(title, bulk=True)
- if not movies:
- return await message.reply("No results Found")
- btn = [
- [
- InlineKeyboardButton(
- text=f"{movie.get('title')} - {movie.get('year')}",
- callback_data=f"imdb#{movie.movieID}",
- )
- ]
- for movie in movies
- ]
- await k.edit('Here is what i found on IMDb', reply_markup=InlineKeyboardMarkup(btn))
- else:
- await message.reply('Give me a movie / series Name')
-
-@Client.on_callback_query(filters.regex('^imdb'))
-async def imdb_callback(bot: Client, quer_y: CallbackQuery):
- i, movie = quer_y.data.split('#')
- imdb = await get_poster(query=movie, id=True)
- btn = [
- [
- InlineKeyboardButton(
- text=f"{imdb.get('title')}",
- url=imdb['url'],
- )
- ]
- ]
- message = quer_y.message.reply_to_message or quer_y.message
- if imdb:
- caption = IMDB_TEMPLATE.format(
- query = imdb['title'],
- title = imdb['title'],
- votes = imdb['votes'],
- aka = imdb["aka"],
- seasons = imdb["seasons"],
- box_office = imdb['box_office'],
- localized_title = imdb['localized_title'],
- kind = imdb['kind'],
- imdb_id = imdb["imdb_id"],
- cast = imdb["cast"],
- runtime = imdb["runtime"],
- countries = imdb["countries"],
- certificates = imdb["certificates"],
- languages = imdb["languages"],
- director = imdb["director"],
- writer = imdb["writer"],
- producer = imdb["producer"],
- composer = imdb["composer"],
- cinematographer = imdb["cinematographer"],
- music_team = imdb["music_team"],
- distributors = imdb["distributors"],
- release_date = imdb['release_date'],
- year = imdb['year'],
- genres = imdb['genres'],
- poster = imdb['poster'],
- plot = imdb['plot'],
- rating = imdb['rating'],
- url = imdb['url'],
- **locals()
- )
- else:
- caption = "No Results"
- if imdb.get('poster'):
- try:
- await quer_y.message.reply_photo(photo=imdb['poster'], caption=caption, reply_markup=InlineKeyboardMarkup(btn))
- except (MediaEmpty, PhotoInvalidDimensions, WebpageMediaEmpty):
- pic = imdb.get('poster')
- poster = pic.replace('.jpg', "._V1_UX360.jpg")
- await quer_y.message.reply_photo(photo=poster, caption=caption, reply_markup=InlineKeyboardMarkup(btn))
- except Exception as e:
- logger.exception(e)
- await quer_y.message.reply(caption, reply_markup=InlineKeyboardMarkup(btn), disable_web_page_preview=False)
- await quer_y.message.delete()
- else:
- await quer_y.message.edit(caption, reply_markup=InlineKeyboardMarkup(btn), disable_web_page_preview=False)
- await quer_y.answer()
diff --git a/plugins/p_ttishow.py b/plugins/p_ttishow.py
deleted file mode 100644
index 3e78aa6..0000000
--- a/plugins/p_ttishow.py
+++ /dev/null
@@ -1,287 +0,0 @@
-from pyrogram import Client, filters, enums
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-from pyrogram.errors.exceptions.bad_request_400 import MessageTooLong, PeerIdInvalid
-from info import ADMINS, LOG_CHANNEL, SUPPORT_CHAT, MELCOW_NEW_USERS, MELCOW_IMG, MELCOW_VID, MAIN_CHANNEL, S_GROUP
-from database.users_chats_db import db
-from database.ia_filterdb import Media
-from utils import get_size, temp, get_settings
-from Script import script
-from pyrogram.errors import ChatAdminRequired
-import asyncio
-
-"""-----------------------------------------https://t.me/GetTGLink/4179 --------------------------------------"""
-
-@Client.on_message(filters.new_chat_members & filters.group)
-async def save_group(bot, message):
- r_j_check = [u.id for u in message.new_chat_members]
- if temp.ME in r_j_check:
- if not await db.get_chat(message.chat.id):
- total=await bot.get_chat_members_count(message.chat.id)
- r_j = message.from_user.mention if message.from_user else "Anonymous"
- await bot.send_message(LOG_CHANNEL, script.LOG_TEXT_G.format(message.chat.title, message.chat.id, total, r_j))
- await db.add_chat(message.chat.id, message.chat.title)
- if message.chat.id in temp.BANNED_CHATS:
- # Inspired from a boat of a banana tree
- buttons = [[
- InlineKeyboardButton('Support', url=f'https://t.me/{SUPPORT_CHAT}')
- ]]
- reply_markup=InlineKeyboardMarkup(buttons)
- k = await message.reply(
- text='CHAT NOT ALLOWED ๐\n\nMy admins has restricted me from working here ! If you want to know more about it contact support..',
- reply_markup=reply_markup,
- )
-
- try:
- await k.pin()
- except:
- pass
- await bot.leave_chat(message.chat.id)
- return
- buttons = [[
- InlineKeyboardButton('โน๏ธ Help', url=f"https://t.me/{temp.U_NAME}?start=help"),
- InlineKeyboardButton('๐ข Updates', url=(MAIN_CHANNEL))
- ]]
- reply_markup=InlineKeyboardMarkup(buttons)
- await message.reply_text(
- text=f"Thankyou For Adding Me In {message.chat.title} โฃ๏ธ\n\nIf you have any questions & doubts about using me contact support.",
- reply_markup=reply_markup)
- else:
- settings = await get_settings(message.chat.id)
- if settings["welcome"]:
- for u in message.new_chat_members:
- if (temp.MELCOW).get('welcome') is not None:
- try:
- await (temp.MELCOW['welcome']).delete()
- except:
- pass
- temp.MELCOW['welcome'] = await message.reply_photo(
- photo=(MELCOW_IMG),
- caption=(script.MELCOW_ENG.format(u.mention, message.chat.title)),
- reply_markup=InlineKeyboardMarkup(
- [[
- InlineKeyboardButton('Sแดแดแดแดสแด Gสแดแดแด', url=S_GROUP),
- InlineKeyboardButton('Uแดแด
แดแดแดs Cสแดษดษดแดส', url=MAIN_CHANNEL)
- ]]
- ),
- parse_mode=enums.ParseMode.HTML
- )
-
- if settings["auto_delete"]:
- await asyncio.sleep(600)
- await (temp.MELCOW['welcome']).delete()
-
-@Client.on_message(filters.command('leave') & filters.user(ADMINS))
-async def leave_a_chat(bot, message):
- if len(message.command) == 1:
- return await message.reply('Give me a chat id')
- chat = message.command[1]
- try:
- chat = int(chat)
- except:
- chat = chat
- try:
- buttons = [[
- InlineKeyboardButton('Support', url=f'https://t.me/{SUPPORT_CHAT}')
- ]]
- reply_markup=InlineKeyboardMarkup(buttons)
- await bot.send_message(
- chat_id=chat,
- text='Hello Friends, \nMy admin has told me to leave from group so i go! If you wanna add me again contact my support group.',
- reply_markup=reply_markup,
- )
-
- await bot.leave_chat(chat)
- await message.reply(f"left the chat `{chat}`")
- except Exception as e:
- await message.reply(f'Error - {e}')
-
-@Client.on_message(filters.command('disable') & filters.user(ADMINS))
-async def disable_chat(bot, message):
- if len(message.command) == 1:
- return await message.reply('Give me a chat id')
- r = message.text.split(None)
- if len(r) > 2:
- reason = message.text.split(None, 2)[2]
- chat = message.text.split(None, 2)[1]
- else:
- chat = message.command[1]
- reason = "No reason Provided"
- try:
- chat_ = int(chat)
- except:
- return await message.reply('Give Me A Valid Chat ID')
- cha_t = await db.get_chat(int(chat_))
- if not cha_t:
- return await message.reply("Chat Not Found In DB")
- if cha_t['is_disabled']:
- return await message.reply(f"This chat is already disabled:\nReason- {cha_t['reason']} ")
- await db.disable_chat(int(chat_), reason)
- temp.BANNED_CHATS.append(int(chat_))
- await message.reply('Chat Successfully Disabled')
- try:
- buttons = [[
- InlineKeyboardButton('Support', url=f'https://t.me/{SUPPORT_CHAT}')
- ]]
- reply_markup=InlineKeyboardMarkup(buttons)
- await bot.send_message(
- chat_id=chat_,
- text=f'Hello Friends, \nMy admin has told me to leave from group so i go! If you wanna add me again contact my support group. \nReason : {reason}',
- reply_markup=reply_markup)
- await bot.leave_chat(chat_)
- except Exception as e:
- await message.reply(f"Error - {e}")
-
-
-@Client.on_message(filters.command('enable') & filters.user(ADMINS))
-async def re_enable_chat(bot, message):
- if len(message.command) == 1:
- return await message.reply('Give me a chat id')
- chat = message.command[1]
- try:
- chat_ = int(chat)
- except:
- return await message.reply('Give Me A Valid Chat ID')
- sts = await db.get_chat(int(chat))
- if not sts:
- return await message.reply("Chat Not Found In DB !")
- if not sts.get('is_disabled'):
- return await message.reply('This chat is not yet disabled.')
- await db.re_enable_chat(int(chat_))
- temp.BANNED_CHATS.remove(int(chat_))
- await message.reply("Chat Successfully re-enabled")
-
-
-@Client.on_message(filters.command('stats') & filters.incoming)
-async def get_ststs(bot, message):
- rju = await message.reply('Fetching stats..')
- total_users = await db.total_users_count()
- totl_chats = await db.total_chat_count()
- files = await Media.count_documents()
- size = await db.get_db_size()
- free = 536870912 - size
- size = get_size(size)
- free = get_size(free)
- await rju.edit(script.STATUS_TXT.format(files, total_users, totl_chats, size, free))
-
-
-# a function for trespassing into others groups, Inspired by a Vazha
-# Not to be used , But Just to showcase his vazhatharam.
-# @Client.on_message(filters.command('invite') & filters.user(ADMINS))
-@Client.on_message(filters.command('invite') & filters.user(ADMINS))
-async def gen_invite(bot, message):
- if len(message.command) == 1:
- return await message.reply('Give me a chat id')
- chat = message.command[1]
- try:
- chat = int(chat)
- except:
- return await message.reply('Give Me A Valid Chat ID')
- try:
- link = await bot.create_chat_invite_link(chat)
- except ChatAdminRequired:
- return await message.reply("Invite Link Generation Failed, Iam Not Having Sufficient Rights")
- except Exception as e:
- return await message.reply(f'Error {e}')
- await message.reply(f'Here is your Invite Link {link.invite_link}')
-
-@Client.on_message(filters.command('ban') & filters.user(ADMINS))
-async def ban_a_user(bot, message):
- # https://t.me/GetTGLink/4185
- if len(message.command) == 1:
- return await message.reply('Give me a user id / username')
- r = message.text.split(None)
- if len(r) > 2:
- reason = message.text.split(None, 2)[2]
- chat = message.text.split(None, 2)[1]
- else:
- chat = message.command[1]
- reason = "No reason Provided"
- try:
- chat = int(chat)
- except:
- pass
- try:
- k = await bot.get_users(chat)
- except PeerIdInvalid:
- return await message.reply("This is an invalid user, make sure ia have met him before.")
- except IndexError:
- return await message.reply("This might be a channel, make sure its a user.")
- except Exception as e:
- return await message.reply(f'Error - {e}')
- else:
- jar = await db.get_ban_status(k.id)
- if jar['is_banned']:
- return await message.reply(f"{k.mention} is already banned\nReason: {jar['ban_reason']}")
- await db.ban_user(k.id, reason)
- temp.BANNED_USERS.append(k.id)
- await message.reply(f"Successfully banned {k.mention}")
-
-
-
-@Client.on_message(filters.command('unban') & filters.user(ADMINS))
-async def unban_a_user(bot, message):
- if len(message.command) == 1:
- return await message.reply('Give me a user id / username')
- r = message.text.split(None)
- if len(r) > 2:
- reason = message.text.split(None, 2)[2]
- chat = message.text.split(None, 2)[1]
- else:
- chat = message.command[1]
- reason = "No reason Provided"
- try:
- chat = int(chat)
- except:
- pass
- try:
- k = await bot.get_users(chat)
- except PeerIdInvalid:
- return await message.reply("This is an invalid user, make sure ia have met him before.")
- except IndexError:
- return await message.reply("Thismight be a channel, make sure its a user.")
- except Exception as e:
- return await message.reply(f'Error - {e}')
- else:
- jar = await db.get_ban_status(k.id)
- if not jar['is_banned']:
- return await message.reply(f"{k.mention} is not yet banned.")
- await db.remove_ban(k.id)
- temp.BANNED_USERS.remove(k.id)
- await message.reply(f"Successfully unbanned {k.mention}")
-
-
-
-@Client.on_message(filters.command('users') & filters.user(ADMINS))
-async def list_users(bot, message):
- # https://t.me/GetTGLink/4184
- raju = await message.reply('Getting List Of Users')
- users = await db.get_all_users()
- out = "Users Saved In DB Are:\n\n"
- async for user in users:
- out += f"{user['name']}"
- if user['ban_status']['is_banned']:
- out += '( Banned User )'
- out += '\n'
- try:
- await raju.edit_text(out)
- except MessageTooLong:
- with open('users.txt', 'w+') as outfile:
- outfile.write(out)
- await message.reply_document('users.txt', caption="List Of Users")
-
-@Client.on_message(filters.command('chats') & filters.user(ADMINS))
-async def list_chats(bot, message):
- raju = await message.reply('Getting List Of chats')
- chats = await db.get_all_chats()
- out = "Chats Saved In DB Are:\n\n"
- async for chat in chats:
- out += f"**Title:** `{chat['title']}`\n**- ID:** `{chat['id']}`"
- if chat['chat_status']['is_disabled']:
- out += '( Disabled Chat )'
- out += '\n'
- try:
- await raju.edit_text(out)
- except MessageTooLong:
- with open('chats.txt', 'w+') as outfile:
- outfile.write(out)
- await message.reply_document('chats.txt', caption="List Of Chats")
diff --git a/plugins/pm_filter.py b/plugins/pm_filter.py
index 6abf658..6291f08 100644
--- a/plugins/pm_filter.py
+++ b/plugins/pm_filter.py
@@ -113,10 +113,14 @@ async def pm_text(bot, message):
user = message.from_user.first_name
user_id = message.from_user.id
if content.startswith("/") or content.startswith("#"): return # ignore commands and hashtags
- await message.reply_text("Your message has been sent to my moderators !")
+ if user_id in ADMINS: return # ignore admins
+ await message.reply_text(
+ text=f"เดเดตเดฟเดเต เดเตเดฆเดฟเดเตเดเดพเตฝ เดธเดฟเดจเดฟเดฎ เดเดฟเดเตเดเดฟเดฒเตเดฒ เดเตเดฐเตเดชเตเดชเดฟเตฝ เดฎเดพเดคเตเดฐเด เดธเดฟเดจเดฟเดฎ เดเตเดฆเดฟเดเตเดเตเด..!!\n\nGROUP OR BOT ANY PROMBLEM OR BUGS CONTACT GROUP ADMIN = @ARAKAL_THERAVAD_MOVIES_02_bot!!!",
+ reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("๐ สแดวซแดแดsแด สแดสแด ", url=f"https://t.me/ARAKAL_THERAVAD_MOVIES")]])
+ )
await bot.send_message(
chat_id=LOG_CHANNEL,
- text=f"#PM_MSG\n\nName : {user}\n\nID : {user_id}\n\nMessage : {content}"
+ text=f"#๐๐_๐๐๐\n\nNแดแดแด : {user}\n\nID : {user_id}\n\nMแดssแดษขแด : {content}"
)
@Client.on_callback_query(filters.regex(r"^next"))
@@ -193,19 +197,8 @@ async def next_page(bot, query):
]
for file in files
]
- btn.insert(0,
- [
- InlineKeyboardButton(f' โ๏ธ {search} โ๏ธ ', 'qinfo')
- ]
- )
- btn.insert(1,
- [
- InlineKeyboardButton(f'ษชษด๊ฐแด', 'reqinfo'),
- InlineKeyboardButton(f'แดแดแด ษชแด', 'minfo'),
- InlineKeyboardButton(f'sแดสษชแดs', 'sinfo'),
- InlineKeyboardButton(f'แดษชแดs', 'tinfo')
- ]
- )
+
+
if 0 < offset <= 10:
off_set = 0
@@ -263,7 +256,7 @@ async def advantage_spoll_choker(bot, query):
reqstr = await bot.get_users(reqstr1)
await bot.send_message(chat_id=LOG_CHANNEL, text=(script.NORSLTS.format(reqstr.id, reqstr.mention, movie)))
k = await query.message.edit(script.MVE_NT_FND)
- await asyncio.sleep(10)
+ await asyncio.sleep(400)
await k.delete()
@@ -515,7 +508,12 @@ async def cb_handler(client: Client, query: CallbackQuery):
reply_markup=InlineKeyboardMarkup(
[
[
- InlineKeyboardButton("๐ฅ แดสแดษดษดแดส ๐ฅ", url=(MAIN_CHANNEL))
+ InlineKeyboardButton(f'Eษดษข', 'feng'),
+ InlineKeyboardButton(f'Mแดส', 'fmal'),
+ InlineKeyboardButton(f'Tแดแด', 'ftam'),
+ InlineKeyboardButton(f'Hษชษด', 'fhin')
+ ],[
+ InlineKeyboardButton("๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ", url=(MAIN_CHANNEL))
]
]
)
@@ -548,7 +546,7 @@ async def cb_handler(client: Client, query: CallbackQuery):
await query.answer(url=f"https://t.me/{temp.U_NAME}?start={ident}_{file_id}")
elif query.data.startswith("checksub"):
if AUTH_CHANNEL and not await is_subscribed(client, query):
- await query.answer("๐ฐ ๐ณ๐๐๐ ๐๐๐๐ ๐บ๐๐๐๐๐๐๐๐, ๐ฉ๐๐ ๐ซ๐๐'๐ ๐ฉ๐ ๐ถ๐๐๐๐๐๐๐๐ ๐\n@๐๐๐๐๐๐๐๐.๐๐๐", show_alert=True)
+ await query.answer("๐ฐ ๐ณ๐๐๐ ๐๐๐๐ ๐บ๐๐๐๐๐๐๐๐, ๐ฉ๐๐ ๐ซ๐๐'๐ ๐ฉ๐ ๐ถ๐๐๐๐๐๐๐๐ ๐\n@ARAKAL_THERAVAD_MOVIES", show_alert=True)
return
ident, file_id = query.data.split("#")
files_ = await get_file_details(file_id)
@@ -624,6 +622,18 @@ async def cb_handler(client: Client, query: CallbackQuery):
elif query.data == "tinfo":
await query.answer("โฃ แดษชแดs โฃ\n\nโ
แดสแดแด แดแดสสแดแดแด sแดแดสสษชษดษข (ษขแดแดษขสแด)\n\nโ
ษชา สแดแด ษดแดแด ษขแดแด สแดแดส าษชสแด ษชษด แดสแด สแดแดแดแดษด แดสแดษด แดสแด ษดแดxแด sแดแดแด ษชs แดสษชแดแด ษดแดxแด สแดแดแดแดษด.\n\nโ
แดแดษดแดษชษดแดแด แดสษชs แดแดแดสแดแด
แดแด ษขแดแดแดษชษดษข สแดแด าษชสแด\n\nโฃ แดแดแดกแดสแดแด
สส แดษชษดแดแดแดสแด. แดแดแด", show_alert=True)
+ elif query.data == "feng":
+ await query.answer("Dแดแด แดแด แดแดแดสสษชษขสแด แดสแด าษชสแด แดกษชสส สแด แด
แดสแดแดแดแด
าสแดแด สแดสแด ษชษด 10 แดษชษดแดแดแดs sแด แด
แดแดกษดสแดแดแด
แดาแดแดส แดแดแด ษชษดษข าสแดแด สแดสแด แดแด sแดแดแดแดกสแดสแด แดสsแด!", show_alert=True)
+
+ elif query.data == "fmal":
+ await query.answer("เดเตเดชเตเดชเดฟเดฑเตเดฑเตเดฑเต เดเดณเตเดณเดคเตเดเตเดฃเตเดเต เดซเดฏเตฝ 10 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดตเดฟเดเตเดจเดฟเดจเตเดจเตเด เดกเดฟเดฒเตเดฑเตเดฑเต เดเดเตเดจเตเดจเดคเดพเดฃเต เด
เดคเตเดเตเดฃเตเดเต เดเดตเดฟเดเต เดจเดฟเดจเตเดจเตเด เดฎเดฑเตเดฑเตเดตเดฟเดเตเดเตเดเตเดเตเดเดฟเดฒเตเด เดฎเดพเดฑเตเดฑเดฟเดฏเดคเดฟเดจเต เดถเตเดทเด เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด!", show_alert=True)
+
+ elif query.data == "ftam":
+ await query.answer("เฎชเฎคเฎฟเฎชเฏเฎชเฏเฎฐเฎฟเฎฎเฏ เฎเฎพเฎฐเฎฃเฎฎเฎพเฎ, เฎเฏเฎชเฏเฎชเฏ เฎเฎเฏเฎเฎฟเฎฐเฏเฎจเฏเฎคเฏ 10 เฎจเฎฟเฎฎเฎฟเฎเฎเฏเฎเฎณเฎฟเฎฒเฏ เฎจเฏเฎเฏเฎเฎชเฏเฎชเฎเฏเฎฎเฏ, เฎเฎฉเฎตเฏ เฎเฎเฏเฎเฎฟเฎฐเฏเฎจเฏเฎคเฏ เฎตเฏเฎฑเฏ เฎเฎเฏเฎเฎพเฎตเฎคเฏ เฎจเฎเฎฐเฏเฎคเฏเฎคเฎชเฏเฎชเฎเฏเฎ เฎชเฎฟเฎฑเฎเฏ เฎชเฎคเฎฟเฎตเฎฟเฎฑเฎเฏเฎเฎตเฏเฎฎเฏ!", show_alert=True)
+
+ elif query.data == "fhin":
+ await query.answer("เคเฅเคชเฅเคฐเคพเคเค เคเฅ เคเคพเคฐเคฃ เคซเคผเคพเคเคฒ เคฏเคนเคพเค เคธเฅ 10 เคฎเคฟเคจเค เคฎเฅเค เคกเคฟเคฒเฅเค เคนเฅ เคเคพเคเคเฅ เคเคธเคฒเคฟเค เคฏเคนเคพเค เคธเฅ เคเคนเฅเค เคเคฐ เคฒเฅ เคเคพเคเคฐ เคกเคพเคเคจเคฒเฅเคก เคเคฐเฅเค!", show_alert=True)
+
elif query.data == "surprise":
btn = [[
InlineKeyboardButton('sแดสแดสษชsแด', callback_data='start')
@@ -642,15 +652,15 @@ async def cb_handler(client: Client, query: CallbackQuery):
elif query.data == "start":
buttons = [[
- InlineKeyboardButton('ร แดแด
แด
แดแด แดแด สแดแดส ษขสแดแดแดs ร', url=f'http://t.me/{temp.U_NAME}?startgroup=true')
- ], [
- InlineKeyboardButton('๐ sแดแดสแดส', switch_inline_query_current_chat=''),
- InlineKeyboardButton('แดแดกษด ษชษดาแด', url='https://t.me/+ipDgG7Qfrps1ZTJl')
- ], [
- InlineKeyboardButton('สแดสแด', callback_data='help'),
- InlineKeyboardButton('แดสแดแดแด', callback_data='about')
- ],[
- InlineKeyboardButton('สแดแดแด แดแด sแดแดสแด', callback_data='surprise')
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ญ", url=f"https://t.me/ARAKAL_THERAVAD_MOVIES"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฎ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_02")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฏ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_03"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฐ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_04")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ", url="https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+ ],[
+ InlineKeyboardButton("โญ๏ธ ๐๐๐ง ๐ข๐จ๐ฅ ๐๐๐๐ก๐ก๐๐ ๐๐๐ก๐๐ฆ โญ๏ธ", url="https://t.me/ARAKAL_THERAVAD_GROUP_LINKS")
]]
reply_markup = InlineKeyboardMarkup(buttons)
await client.edit_message_media(
@@ -666,19 +676,15 @@ async def cb_handler(client: Client, query: CallbackQuery):
await query.answer(MSG_ALRT)
elif query.data == "help":
buttons = [[
- InlineKeyboardButton('แดแดษดแดแดส', callback_data='manuelfilter'),
- InlineKeyboardButton('แดแดแดแด', callback_data='autofilter'),
- InlineKeyboardButton('แดแดษดษดแดแดแด', callback_data='coct')
- ], [
- InlineKeyboardButton('แดxแดสแด', callback_data='extra'),
- InlineKeyboardButton('sแดษดษข', callback_data='song'),
- InlineKeyboardButton('แดแดs', callback_data='tts')
- ], [
- InlineKeyboardButton('แด ษชแด
แดแด', callback_data='video'),
- InlineKeyboardButton('แดษขสแดแดส', callback_data='tele'),
- InlineKeyboardButton('ษดแดxแด', callback_data='aswin')
- ], [
- InlineKeyboardButton('สแดแดแด', callback_data='start')
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ญ", url=f"https://t.me/ARAKAL_THERAVAD_MOVIES"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฎ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_02")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฏ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_03"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฐ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_04")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ", url="https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+ ],[
+ InlineKeyboardButton("โญ๏ธ ๐๐๐ง ๐ข๐จ๐ฅ ๐๐๐๐ก๐ก๐๐ ๐๐๐ก๐๐ฆ โญ๏ธ", url="https://t.me/ARAKAL_THERAVAD_GROUP_LINKS")
]]
reply_markup = InlineKeyboardMarkup(buttons)
await client.edit_message_media(
@@ -702,19 +708,15 @@ async def cb_handler(client: Client, query: CallbackQuery):
)
elif query.data == "aswin":
buttons = [[
- InlineKeyboardButton('แดแดแด
สแดแดแด', callback_data='abook'),
- InlineKeyboardButton('แดแดแด ษชแด
', callback_data='corona'),
- InlineKeyboardButton('ษขแดแดแดs', callback_data='fun')
- ], [
- InlineKeyboardButton('แดษชษดษข', callback_data='pings'),
- InlineKeyboardButton('แดsแดษดแด', callback_data='json'),
- InlineKeyboardButton('sแดษชแดแดษชแด
', callback_data='sticker')
- ], [
- InlineKeyboardButton('แดกสแดษชs', callback_data='whois'),
- InlineKeyboardButton('แดสสsสแดสแด', callback_data='urlshort'),
- InlineKeyboardButton('ษดแดxแด', callback_data='aswins')
- ], [
- InlineKeyboardButton('สแดแดแด', callback_data='help')
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ญ", url=f"https://t.me/ARAKAL_THERAVAD_MOVIES"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฎ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_02")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฏ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_03"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฐ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_04")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ", url="https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+ ],[
+ InlineKeyboardButton("โญ๏ธ ๐๐๐ง ๐ข๐จ๐ฅ ๐๐๐๐ก๐ก๐๐ ๐๐๐ก๐๐ฆ โญ๏ธ", url="https://t.me/ARAKAL_THERAVAD_GROUP_LINKS")
]]
reply_markup = InlineKeyboardMarkup(buttons)
await client.edit_message_media(
@@ -738,15 +740,15 @@ async def cb_handler(client: Client, query: CallbackQuery):
)
elif query.data == "aswins":
buttons = [[
- InlineKeyboardButton('าแดษดแด', callback_data='font'),
- InlineKeyboardButton('ษขแดสแดษดs', callback_data='gtrans'),
- InlineKeyboardButton('แดแดสสแดษด', callback_data='carb'),
- ], [
- InlineKeyboardButton('แดแดแดษดแดสส', callback_data='country'),
- InlineKeyboardButton('แด
แดแดสแดส', callback_data='deploy'),
- InlineKeyboardButton('สแดแดแด', callback_data='start')
- ], [
- InlineKeyboardButton('สแดแดแด', callback_data='aswin')
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ญ", url=f"https://t.me/ARAKAL_THERAVAD_MOVIES"),
+ InlineKeyboardButton("๐ฅ๐๐ฅ๐ข๐จ๐ฃ - ๐ฎ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_02")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฏ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_03"),
+ InlineKeyboardButton("๐ฅ ๐๐ฅ๐ข๐จ๐ฃ - ๐ฐ", url=f"https://t.me/ARAKAL_THERAVAD_GROUP_04")
+ ],[
+ InlineKeyboardButton("๐ฅ ๐ก๐๐ช ๐ข๐ง๐ง ๐จ๐ฃ๐๐๐ง๐๐ฆ ๐ฅ", url="https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS")
+ ],[
+ InlineKeyboardButton("โญ๏ธ ๐๐๐ง ๐ข๐จ๐ฅ ๐๐๐๐ก๐ก๐๐ ๐๐๐ก๐๐ฆ โญ๏ธ", url="https://t.me/ARAKAL_THERAVAD_GROUP_LINKS")
]]
reply_markup = InlineKeyboardMarkup(buttons)
await client.edit_message_media(
@@ -789,7 +791,7 @@ async def cb_handler(client: Client, query: CallbackQuery):
)
elif query.data == "source":
buttons = [[
- InlineKeyboardButton('สแดแดแด', url='https://github.com/Devil-Botz/Elsa'),
+ InlineKeyboardButton('สแดแดแด', url='https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS'),
InlineKeyboardButton('สแดแดแด', callback_data='about')
]]
reply_markup = InlineKeyboardMarkup(buttons)
@@ -947,8 +949,8 @@ async def cb_handler(client: Client, query: CallbackQuery):
)
elif query.data == "deploy":
buttons = [[
- InlineKeyboardButton('สแดแดแด', url='https://github.com/Devil-Botz/Elsa'),
- InlineKeyboardButton('แดแดกษดแดส', url='https://t.me/Aswin_pm_Bot')
+ InlineKeyboardButton('แดแดแด', url='https://t.me/OTT_ARAKAL_THERAVAD_MOVIESS'),
+ InlineKeyboardButton('แดแดกษดแดส', url='https://t.me/ARAKAL_THERAVAD_MOVIES_02_bot')
], [
InlineKeyboardButton('สแดแดแด', callback_data='aswin')
]]
@@ -1240,19 +1242,7 @@ async def auto_filter(client, msg, spoll=False):
]
for file in files
]
- btn.insert(0,
- [
- InlineKeyboardButton(f' โ๏ธ {search} โ๏ธ ', 'qinfo')
- ]
- )
- btn.insert(1,
- [
- InlineKeyboardButton(f'ษชษด๊ฐแด', 'reqinfo'),
- InlineKeyboardButton(f'แดแดแด ษชแด', 'minfo'),
- InlineKeyboardButton(f'sแดสษชแดs', 'sinfo'),
- InlineKeyboardButton(f'แดษชแดs', 'tinfo')
- ]
- )
+
if offset != "":
key = f"{message.chat.id}-{message.id}"
@@ -1301,7 +1291,7 @@ async def auto_filter(client, msg, spoll=False):
**locals()
)
else:
- cap = f"๐๐๐ง๐ ๐๐จ ๐ฌ๐๐๐ฉ ๐๐จ ๐๐ค๐ช๐ฃ๐ ๐ฎ๐ค๐ช๐ง ๐ฆ๐ช๐๐ง๐ฎ:\n {search}\n๐ค๐๐๐ฆ๐ช๐๐จ๐ฉ๐๐ ๐ฝ๐ฎ : {message.from_user.mention}\n๐ฅ๐๐ง๐ค๐ช๐ฅ : {message.chat.title}"
+ cap = f" Hai ๐ {message.from_user.mention} ๐\n๐ ๐๐ผ๐๐ป๐ฑ โจ ๐๐ถ๐น๐ฒ๐ ๐๐ผ๐ฟ ๐ฌ๐ผ๐๐ฟ ๐ค๐๐ฒ๐ฟ๐ : #{search}๐๐ป"
if imdb and imdb.get('poster'):
try:
if message.chat.id == SUPPORT_CHAT_ID:
@@ -1320,7 +1310,7 @@ async def auto_filter(client, msg, spoll=False):
if settings['auto_delete']:
await asyncio.sleep(600)
await hehe.delete()
- await message.delete()
+ await message.delete()
except (MediaEmpty, PhotoInvalidDimensions, WebpageMediaEmpty):
if message.chat.id == SUPPORT_CHAT_ID:
await message.reply_text(f"Hแดส {message.from_user.mention}, {str(total_results)} สแดsแดสแดs แดสแด าแดแดษดแด
ษชษด แดส แด
แดแดแดสแดsแด าแดส สแดแดส แดฬจแดแดสส {search}. Kษชษดแด
สส แดsแด ษชษดสษชษดแด sแดแดสแดส แดส แดแดแดแด แด ษขสแดแดแด แดษดแด
แดแด
แด
แดแด แดs แดแด
แดษชษด แดแด ษขแดแด แดแดแด ษชแด าษชสแดs. Tสษชs ษชs แด sแดแดแดแดสแด ษขสแดแดแด sแด แดสแดแด สแดแด แดแดษด'แด ษขแดแด าษชสแดs าสแดแด สแดสแด...")
@@ -1332,7 +1322,7 @@ async def auto_filter(client, msg, spoll=False):
if settings['auto_delete']:
await asyncio.sleep(600)
await hmm.delete()
- await message.delete()
+ await message.delete()
except KeyError:
grpid = await active_connection(str(message.from_user.id))
await save_group_settings(grpid, 'auto_delete', True)
@@ -1340,7 +1330,7 @@ async def auto_filter(client, msg, spoll=False):
if settings['auto_delete']:
await asyncio.sleep(600)
await hmm.delete()
- await message.delete()
+ await message.delete()
except Exception as e:
if message.chat.id == SUPPORT_CHAT_ID:
await message.reply_text(f"Hแดส {message.from_user.mention}, {str(total_results)} สแดsแดสแดs แดสแด าแดแดษดแด
ษชษด แดส แด
แดแดแดสแดsแด าแดส สแดแดส แดฬจแดแดสส {search}. Kษชษดแด
สส แดsแด ษชษดสษชษดแด sแดแดสแดส แดส แดแดแดแด แด ษขสแดแดแด แดษดแด
แดแด
แด
แดแด แดs แดแด
แดษชษด แดแด ษขแดแด แดแดแด ษชแด าษชสแดs. Tสษชs ษชs แด sแดแดแดแดสแด ษขสแดแดแด sแด แดสแดแด สแดแด แดแดษด'แด ษขแดแด าษชสแดs าสแดแด สแดสแด...")
@@ -1358,7 +1348,7 @@ async def auto_filter(client, msg, spoll=False):
settings = await get_settings(message.chat.id)
if settings['auto_delete']:
await asyncio.sleep(600)
- await fek.delete()
+ await fek.delete()
await message.delete()
else:
if message.chat.id == SUPPORT_CHAT_ID:
@@ -1368,7 +1358,7 @@ async def auto_filter(client, msg, spoll=False):
try:
if settings['auto_delete']:
await asyncio.sleep(600)
- await fuk.delete()
+ await fuk.delete()
await message.delete()
except KeyError:
grpid = await active_connection(str(message.from_user.id))
@@ -1376,7 +1366,7 @@ async def auto_filter(client, msg, spoll=False):
settings = await get_settings(message.chat.id)
if settings['auto_delete']:
await asyncio.sleep(600)
- await fuk.delete()
+ await fuk.delete()
await message.delete()
if spoll:
@@ -1400,7 +1390,7 @@ async def advantage_spell_chok(client, msg):
logger.exception(e)
await client.send_message(chat_id=LOG_CHANNEL, text=(script.NORSLTS.format(reqstr.id, reqstr.mention, mv_rqst)))
k = await msg.reply(script.I_CUDNT.format(reqstr.mention))
- await asyncio.sleep(8)
+ await asyncio.sleep(600)
await k.delete()
return
movielist = []
@@ -1415,7 +1405,7 @@ async def advantage_spell_chok(client, msg):
caption=script.I_CUDNT.format(mv_rqst),
reply_markup=InlineKeyboardMarkup(button)
)
- await asyncio.sleep(30)
+ await asyncio.sleep(600)
await k.delete()
return
movielist += [movie.get('title') for movie in movies]
@@ -1471,12 +1461,14 @@ async def manual_filters(client, message, text=False):
group_id,
reply_text,
disable_web_page_preview=True,
- protect_content=True if settings["file_secure"] else False,
+ protect_content=True if settings["file_secure"] else True,
reply_to_message_id=reply_id
)
try:
if settings['auto_ffilter']:
await auto_filter(client, message)
+ await asyncio.sleep(600)
+ await elsa.delete()
except KeyError:
grpid = await active_connection(str(message.from_user.id))
await save_group_settings(grpid, 'auto_ffilter', True)
@@ -1502,7 +1494,7 @@ async def manual_filters(client, message, text=False):
reply_text,
disable_web_page_preview=True,
reply_markup=InlineKeyboardMarkup(button),
- protect_content=True if settings["file_secure"] else False,
+ protect_content=True if settings["file_secure"] else True,
reply_to_message_id=reply_id
)
try:
@@ -1531,7 +1523,7 @@ async def manual_filters(client, message, text=False):
group_id,
fileid,
caption=reply_text or "",
- protect_content=True if settings["file_secure"] else False,
+ protect_content=True if settings["file_secure"] else True,
reply_to_message_id=reply_id
)
try:
@@ -1647,3 +1639,4 @@ async def global_filters(client, message, text=False):
break
else:
return False
+
diff --git a/plugins/xtra_plugins/status.py b/plugins/xtra_plugins/status.py
deleted file mode 100644
index 3c01df1..0000000
--- a/plugins/xtra_plugins/status.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#Made By @Don_Sflix
-
-import os
-import math
-import time
-import heroku3
-import requests
-
-from pyrogram import Client, filters, enums
-from database.users_chats_db import db
-
-#=====================================================
-BOT_START_TIME = time.time()
-
-HEROKU_API_KEY = (os.environ.get("HEROKU_API_KEY", ""))
-#=====================================================
-
-@Client.on_message(filters.command('status'))
-async def bot_status(client,message):
- if HEROKU_API_KEY:
- try:
- server = heroku3.from_key(HEROKU_API_KEY)
-
- user_agent = (
- 'Mozilla/5.0 (Linux; Android 10; SM-G975F) '
- 'AppleWebKit/537.36 (KHTML, like Gecko) '
- 'Chrome/80.0.3987.149 Mobile Safari/537.36'
- )
- accountid = server.account().id
- headers = {
- 'User-Agent': user_agent,
- 'Authorization': f'Bearer {HEROKU_API_KEY}',
- 'Accept': 'application/vnd.heroku+json; version=3.account-quotas',
- }
-
- path = "/accounts/" + accountid + "/actions/get-quota"
-
- request = requests.get("https://api.heroku.com" + path, headers=headers)
-
- if request.status_code == 200:
- result = request.json()
-
- total_quota = result['account_quota']
- quota_used = result['quota_used']
-
- quota_left = total_quota - quota_used
-
- total = math.floor(total_quota/3600)
- used = math.floor(quota_used/3600)
- hours = math.floor(quota_left/3600)
- minutes = math.floor(quota_left/60 % 60)
- days = math.floor(hours/24)
-
- usedperc = math.floor(quota_used / total_quota * 100)
- leftperc = math.floor(quota_left / total_quota * 100)
-
- quota_details = f"""
-Heroku Account Status
-โช ๐ธ๐๐ ๐๐บ๐๐พ {total} ๐๐๐๐๐ ๐๐ฟ ๐ฟ๐๐พ๐พ ๐ฝ๐๐๐ ๐๐๐๐๐บ ๐บ๐๐บ๐๐
๐บ๐ป๐
๐พ ๐พ๐บ๐ผ๐ ๐๐๐๐๐.
-โช ๐ฃ๐๐๐ ๐๐๐๐๐ ๐๐๐พ๐ฝ ๐๐๐๐ ๐๐๐๐๐:
- โข {used} ๐ง๐๐๐๐ ( {usedperc}% )
-โช ๐ฃ๐๐๐ ๐๐๐๐๐ ๐๐พ๐๐บ๐๐๐๐๐ ๐๐๐๐ ๐๐๐๐๐:
- โข {hours} ๐ง๐๐๐๐ ( {leftperc}% )
- โข Approximately {days} days!"""
- else:
- quota_details = ""
- except:
- print("Check your Heroku API key")
- quota_details = ""
- else:
- quota_details = ""
-
- uptime = time.strftime("%Hh %Mm %Ss", time.gmtime(time.time() - BOT_START_TIME))
-
- try:
- t, u, f = shutil.disk_usage(".")
- total = humanbytes(t)
- used = humanbytes(u)
- free = humanbytes(f)
-
- disk = "\n**Disk Details**\n\n" \
- f"> USED : {used} / {total}\n" \
- f"> FREE : {free}\n\n"
- except:
- disk = ""
-
- await message.reply_text(
- "๐๐๐ฟ๐ฟ๐ฒ๐ป๐ ๐๐๐ฎ๐๐๐ ๐ผ๐ณ ๐๐ผ๐๐ฟ ๐๐ผ๐\n\n"
- "DB Status\n"
- f"โช ๐ก๐๐ ๐ด๐๐๐๐๐พ: {uptime}\n"
- f"{quota_details}"
- f"{disk}",
- quote=True,
- parse_mode=enums.ParseMode.MARKDOWN
- )
diff --git a/requirements.txt b/requirements.txt
index 8f7fe5f..bf434cf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,30 +8,12 @@ requests
bs4
git+https://github.com/Joelkb/cinemagoer
Heroku3
-search_engine_parser
-wget
-aiofiles
-ffmpeg-python
-ffmpeg
-youtube_search
-youtube_search_python
-youtube-search-python==1.4.6
-yt-dlp
-youtube-dl
-youtube_search
requests
aiohttp==3.7.4
-gTTS
-googletrans==3.1.0a0
-telegraph
-PyPDF2
-ujson
-pyshorteners
-countryinfo
datetime
pytz
-dnspython
aiohttp
python-math
Pillow
speedtest-cli
+dnspython==2.3.0
diff --git a/sample_info.py b/sample_info.py
index 731d8ee..a74c1b4 100644
--- a/sample_info.py
+++ b/sample_info.py
@@ -7,7 +7,7 @@
USERBOT_STRING_SESSION = ''
# Bot settings
-CACHE_TIME = 300
+CACHE_TIME = 600
USE_CAPTION_FILTER = False
# Admins, Channels & Users
diff --git a/start.sh b/start.sh
index aa66f5a..f59669d 100644
--- a/start.sh
+++ b/start.sh
@@ -1,7 +1,7 @@
if [ -z $UPSTREAM_REPO ]
then
echo "Cloning main Repository"
- git clone https://github.com/Devil-Botz/Elsa.git /Elsa
+ git clone https://github.com/soulpc/Elsa.git /Elsa
else
echo "Cloning Custom Repo from $UPSTREAM_REPO "
git clone $UPSTREAM_REPO /Elsa