Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
pip install yandex-bot-py
Depends requests >= 2.32.3
from yandex_bot import Client, Button, Message, User
bot = Client(os.getenv("YANDEX_BOT_KEY"))
@bot.on_message(phrase="/start")
def command_start(message):
btn = Button(text="What is your name", phrase="/name")
bot.send_message("Select an action", login=message.user.login, inline_keyboard=[btn])
@bot.on_message(phrase="/name")
def command_start(message):
bot.send_message("Type your name", login=message.user.login)
bot.register_next_step_handler(message.user.login, type_your_name)
def type_your_name(message):
bot.send_message(f"Your name is {message.text}", login=message.user.login)
bot.run()
To process all messages starting with a specific phrase, use decorator @bot.on_message
.
Specify in the parameters phrase
to handle messages that begin with the specified phrase.
phrase
checks the first word of the text from the user
@bot.on_message(phrase="/start")
def command_start(message):
bot.send_message(f"Hello, {message.user.login}", login=message.user.login)
To send a message use bot.send_message
. You can provide chat_id
or login
there.
bot.send_message("Hello, I'm bot", login=message.user.login)
bot.send_message("Hello, I'm bot", chat_id="12512571242")
inline_keyboard
is used to add buttons to a chat with a user. Just create a Button class and provide text
(The text on the button).
You can provide phrase
for fast binding to the processing function, or you can provide any callback_data
to a Button and it will be returned on Message
class in callback_data
.
btn = Button(text="My button", phrase="/data", callback_data={"foo": "bar", "bar": "foo"})
bot.send_message("Select an action", login=message.user.login, inline_keyboard=[btn])
You can also delete_message()
in chats and channels where the bot is located.
Pass the message_id
and the login
or chat_id
to the method. Return message_id
deleted message
data = bot.delete_message(12356532, login="test@login.com")
For example, to wait for a response from a user to a question, you can use bot.register_next_step_handler()
. This method will store the session with the current user. The method includes:
user_login
- the username of the user from whom to wait for the message;callback
- the handler function@bot.on_message(phrase="/name")
def get_user_name(message):
bot.send_message("Type your name", login=message.user.login)
bot.register_next_step_handler(message.user.login, type_your_name)
def type_your_name(message):
bot.send_message(f"Your name is {message.text}", login=message.user.login)
To process messages for which no handler is specified, use the decorator @bot.unhandled_message()
. By default, messages without a handler are not processed in any way
@bot.unhandled_message()
def unhandled(message: Message):
print(message)
The method allows you to send files to private or group chats.
send_file()
example. Returns a dictionary containing the message id
and file id
data = bot.send_file("files/test.txt", login="login@login.ru")
send_image()
example. Returns the message id
with the sent image.
data = bot.send_image("files/test.jpg", login="login@login.ru")
create_chat()
The method allows you to create a chat or channel, add its description and icon, assign administrators, add members (for the chat) or subscribers (for the channel).
@bot.on_message(phrase="/create_chat")
def command_create_chat(message: Message):
chat = Chat(name="Test chat 1", description="Description")
users = [User(login="login1@login.ru"), User(login="login2@login.ru")]
chat.set_admins(users)
chat_id = bot.create_chat(chat=chat)
change_chat_users()
The method allows you to add and remove participants to the chat, add and remove subscribers to the channel, as well as appoint chat or channel administrators.
data = bot.change_chat_users("3424234", admins=[User(login="login2")],
remove=[User(login="login")])
FAQs
Python Yandex messenger bot api
We found that yandex-bot-py demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.