Spaces:
Sleeping
Sleeping
File size: 5,889 Bytes
007891e ca4eb6d 2aca525 ca4eb6d af1662b 007891e ca4eb6d 11170eb ca4eb6d 11170eb ca4eb6d 11170eb ca4eb6d 11170eb ca4eb6d 5ec9c41 ca4eb6d 11170eb ca4eb6d 5ec9c41 ca4eb6d 11170eb 982074f 11170eb ca4eb6d 5ec9c41 ca4eb6d 11170eb 982074f ca4eb6d 9da6fea 709df35 8e6421c 9da6fea af1662b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
from Powers import LOGGER
from Powers.bot_class import Gojo
from pyrogram import enums, filters
from Powers.utils.kbhelpers import ikb
from Powers.utils.custom_filters import command
from pyrogram.types import Message, CallbackQuery
async def gen_formatting_kb(m):
return ikb(
[
[
("Markdown Formatting", "formatting.md_formatting"),
("Fillings", "formatting.fillings"),
],
[("Random Content", "formatting.random_content")],
[("« " + "Back", "commands")],
],
)
@Gojo.on_message(
command(["markdownhelp", "formatting"]) & filters.private,
)
async def markdownhelp(_, m: Message):
await m.reply_text(
text=f"plugins.{__PLUGIN__}.help",
quote=True,
reply_markup=(await gen_formatting_kb(m)),
)
LOGGER.info(f"{m.from_user.id} used cmd '{m.command}' in {m.chat.id}")
return
@Gojo.on_callback_query(filters.regex("^formatting."))
async def get_formatting_info(_, q: CallbackQuery):
cmd = q.data.split(".")[1]
kb = ikb([[("Back", "back.formatting")]])
if cmd == "md_formatting":
await q.message.edit_text(
text="""<b>Markdown Formatting</b>
You can format your message using <b>bold</b>, <i>italic</i>, <u>underline</u>, <strike>strike</strike> and much more. Go ahead and experiment!
**Note**: It supports telegram user based formatting as well as html and markdown formattings.
<b>Supported markdown</b>:
- <code>`code words`</code>: Backticks are used for monospace fonts. Shows as: <code>code words</code>.
- <code>__italic__</code>: Underscores are used for italic fonts. Shows as: <i>italic words</i>.
- <code>**bold**</code>: Asterisks are used for bold fonts. Shows as: <b>bold words</b>.
- <code>```pre```</code>: To make the formatter ignore other formatting characters inside the text formatted with '```', like: <code>**bold** | *bold*</code>.
- <code>--underline--</code>: To make text <u>underline</u>.
- <code>~~strike~~</code>: Tildes are used for strikethrough. Shows as: <strike>strike</strike>.
- <code>||spoiler||</code>: Double vertical bars are used for spoilers. Shows as: <spoiler>Spoiler</spoiler>.
- <code>[hyperlink](example.com)</code>: This is the formatting used for hyperlinks. Shows as: <a href="https://example.com/">hyperlink</a>.
- <code>[My Button](buttonurl://example.com)</code>: This is the formatting used for creating buttons. This example will create a button named "My button" which opens <code>example.com</code> when clicked.
If you would like to send buttons on the same row, use the <code>:same</code> formatting.
<b>Example:</b>
<code>[button 1](buttonurl:example.com)</code>
<code>[button 2](buttonurl://example.com:same)</code>
<code>[button 3](buttonurl://example.com)</code>
This will show button 1 and 2 on the same line, while 3 will be underneath.""",
reply_markup=kb,
parse_mode=enums.ParseMode.HTML,
)
elif cmd == "fillings":
await q.message.edit_text(
text="""<b>Fillings</b>
You can also customise the contents of your message with contextual data. For example, you could mention a user by name in the welcome message, or mention them in a filter!
You can use these to mention a user in notes too!
<b>Supported fillings:</b>
- <code>{first}</code>: The user's first name.
- <code>{last}</code>: The user's last name.
- <code>{fullname}</code>: The user's full name.
- <code>{username}</code>: The user's username. If they don't have one, mentions the user instead.
- <code>{mention}</code>: Mentions the user with their firstname.
- <code>{id}</code>: The user's ID.
- <code>{chatname}</code>: The chat's name.""",
reply_markup=kb,
parse_mode=enums.ParseMode.HTML,
)
elif cmd == "random_content":
await q.message.edit_text(
text="""<b>Random Content</b>
Another thing that can be fun, is to randomise the contents of a message. Make things a little more personal by changing welcome messages, or changing notes!
How to use random contents:
- %%%: This separator can be used to add "random" replies to the bot.
For example:
<code>hello
%%%
how are you</code>
This will randomly choose between sending the first message, "hello", or the second message, "how are you".
Use this to make Gojo feel a bit more customised! (only works in filters/notes)
Example welcome message::
- Every time a new user joins, they'll be presented with one of the three messages shown here.
-> /filter "hey"
hello there <code>{first}</code>!
%%%
Ooooh, <code>{first}</code> how are you?
%%%
Sup? <code>{first}</code>""",
reply_markup=kb,
parse_mode=enums.ParseMode.HTML,
)
await q.answer()
return
@Gojo.on_callback_query(filters.regex("^back."))
async def send_mod_help(_, q: CallbackQuery):
await q.message.edit_text(
text="""Formatting
Gojo supports a large number of formatting options to make your messages more expressive. Take a look by clicking the buttons below!""",
reply_markup=(await gen_formatting_kb(q.message)),
)
await q.answer()
return
__PLUGIN__ = "formatting"
__alt_name__ = ["formatting", "markdownhelp", "markdown"]
__buttons__ = [
[
("Markdown Formatting", "formatting.md_formatting"),
("Fillings", "formatting.fillings"),
],
[("Random Content", "formatting.random_content")],
]
__HELP__ = """
***Formatting***
Gojo supports a large number of formatting options to make your messages more expressive. Take a look by clicking the buttons below!"""
|