frozen_subs/restore_all_trial and more
This commit is contained in:
@@ -42,6 +42,9 @@ CREATE TABLE IF NOT EXISTS keys
|
||||
PRIMARY KEY (tg_id, client_id)
|
||||
);
|
||||
|
||||
ALTER TABLE keys
|
||||
ADD COLUMN is_frozen BOOLEAN DEFAULT FALSE;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS referrals
|
||||
(
|
||||
referred_tg_id BIGINT PRIMARY KEY NOT NULL,
|
||||
|
||||
@@ -3,7 +3,6 @@ import subprocess
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from pathlib import Path
|
||||
from typing import Optional, Tuple, Union
|
||||
|
||||
import aiofiles
|
||||
|
||||
@@ -50,17 +49,14 @@ def _create_database_backup() -> tuple[str | None, Exception | None]:
|
||||
"""
|
||||
date_formatted = datetime.now().strftime("%Y-%m-%d-%H%M%S")
|
||||
|
||||
# Создаем директорию для бэкапов, если она не существует
|
||||
backup_dir = Path(BACK_DIR)
|
||||
backup_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
filename = backup_dir / f"{DB_NAME}-backup-{date_formatted}.sql"
|
||||
|
||||
try:
|
||||
# Устанавливаем пароль PostgreSQL через переменную окружения
|
||||
os.environ["PGPASSWORD"] = DB_PASSWORD
|
||||
|
||||
# Запускаем pg_dump для создания бэкапа
|
||||
subprocess.run(
|
||||
[
|
||||
"pg_dump",
|
||||
@@ -89,7 +85,6 @@ def _create_database_backup() -> tuple[str | None, Exception | None]:
|
||||
logger.error(f"Непредвиденная ошибка при создании бэкапа: {e}")
|
||||
return None, e
|
||||
finally:
|
||||
# Удаляем переменную окружения с паролем
|
||||
if "PGPASSWORD" in os.environ:
|
||||
del os.environ["PGPASSWORD"]
|
||||
|
||||
@@ -106,10 +101,8 @@ def _cleanup_old_backups() -> Exception | None:
|
||||
if not backup_dir.exists():
|
||||
return None
|
||||
|
||||
# Вычисляем дату, старше которой нужно удалить файлы
|
||||
cutoff_date = datetime.now() - timedelta(days=3)
|
||||
|
||||
# Находим и удаляем старые файлы бэкапов
|
||||
for backup_file in backup_dir.glob("*.sql"):
|
||||
if backup_file.is_file():
|
||||
file_mtime = datetime.fromtimestamp(backup_file.stat().st_mtime)
|
||||
@@ -154,7 +147,6 @@ async def _send_backup_to_admins(backup_file_path: str) -> None:
|
||||
filename = os.path.basename(backup_file_path)
|
||||
backup_input_file = BufferedInputFile(file=backup_data, filename=filename)
|
||||
|
||||
# Отправляем файл каждому администратору
|
||||
for admin_id in ADMIN_ID:
|
||||
try:
|
||||
await bot.send_document(chat_id=admin_id, document=backup_input_file)
|
||||
|
||||
@@ -19,7 +19,7 @@ bot = Bot(token=API_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTM
|
||||
storage = MemoryStorage()
|
||||
dp = Dispatcher(bot=bot, storage=storage)
|
||||
|
||||
version = "4.0"
|
||||
version = "4.1-beta(12)"
|
||||
|
||||
register_middleware(dp)
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ async def add_client(xui: py3xui.AsyncApi, config: ClientConfig) -> dict[str, An
|
||||
|
||||
|
||||
async def extend_client_key(
|
||||
xui: py3xui.AsyncApi, inbound_id: int, email: str, new_expiry_time: int, client_id: str, total_gb: int, sub_id: str
|
||||
xui: py3xui.AsyncApi, inbound_id: int, email: str, new_expiry_time: int, client_id: str, total_gb: int, sub_id: str, tg_id: int
|
||||
) -> bool | None:
|
||||
"""
|
||||
Обновляет срок действия ключа клиента.
|
||||
@@ -94,11 +94,11 @@ async def extend_client_key(
|
||||
client = await xui.client.get_by_email(email)
|
||||
|
||||
if not client:
|
||||
logger.warning(f"Клиент с email {email} не найден")
|
||||
logger.warning(f"Клиент с email {email} не найден.")
|
||||
return None
|
||||
|
||||
if not client.id:
|
||||
logger.warning(f"Ошибка: клиент {email} не имеет действительного ID")
|
||||
logger.warning(f"Ошибка: клиент {email} не имеет действительного ID.")
|
||||
return None
|
||||
|
||||
logger.info(f"Обновление ключа клиента {email} с ID {client.id} до {new_expiry_time}")
|
||||
@@ -111,6 +111,7 @@ async def extend_client_key(
|
||||
client.enable = True
|
||||
client.limit_ip = LIMIT_IP
|
||||
client.inbound_id = inbound_id
|
||||
client.tg_id = tg_id
|
||||
|
||||
await xui.client.update(client.id, client)
|
||||
await xui.client.reset_stats(inbound_id, email)
|
||||
@@ -219,21 +220,18 @@ async def toggle_client(xui: py3xui.AsyncApi, inbound_id: int, email: str, clien
|
||||
try:
|
||||
await xui.login()
|
||||
|
||||
# Получаем клиента по email
|
||||
client = await xui.client.get_by_email(email)
|
||||
|
||||
if not client:
|
||||
logger.warning(f"Клиент с email {email} и ID {client_id} не найден.")
|
||||
return False
|
||||
|
||||
# Обновляем параметры клиента
|
||||
client.enable = enable
|
||||
client.id = client_id
|
||||
client.flow = "xtls-rprx-vision"
|
||||
client.limit_ip = LIMIT_IP
|
||||
client.inbound_id = inbound_id
|
||||
|
||||
# Обновляем клиента
|
||||
await xui.client.update(client.id, client)
|
||||
status = "включен" if enable else "отключен"
|
||||
logger.info(f"Клиент с email {email} и ID {client_id} успешно {status}.")
|
||||
|
||||
+2
-1
@@ -1423,7 +1423,7 @@ async def store_gift_link(
|
||||
async def get_key_details(email, session):
|
||||
record = await session.fetchrow(
|
||||
"""
|
||||
SELECT k.server_id, k.key, k.email, k.expiry_time, k.client_id, k.created_at, c.tg_id, c.balance
|
||||
SELECT k.server_id, k.key, k.email, k.is_frozen, k.expiry_time, k.client_id, k.created_at, c.tg_id, c.balance
|
||||
FROM keys k
|
||||
JOIN connections c ON k.tg_id = c.tg_id
|
||||
WHERE k.email = $1
|
||||
@@ -1461,6 +1461,7 @@ async def get_key_details(email, session):
|
||||
"balance": record["balance"],
|
||||
"tg_id": record["tg_id"],
|
||||
"email": record["email"],
|
||||
"is_frozen": record["is_frozen"],
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from typing import Any
|
||||
|
||||
from aiogram import F, Router, types
|
||||
from aiogram import F, Router
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
from aiogram.types import CallbackQuery, Message
|
||||
|
||||
@@ -10,6 +10,7 @@ from aiogram.exceptions import TelegramBadRequest
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
from aiogram.types import CallbackQuery, Message
|
||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
from config import TOTAL_GB
|
||||
|
||||
from database import (
|
||||
@@ -25,7 +26,7 @@ from database import (
|
||||
from filters.admin import IsAdminFilter
|
||||
from handlers.keys.key_utils import delete_key_from_cluster, get_user_traffic, renew_key_in_cluster, update_subscription
|
||||
from handlers.utils import sanitize_key_name
|
||||
from keyboards.admin.panel_kb import AdminPanelCallback, build_admin_back_kb
|
||||
from keyboards.admin.panel_kb import AdminPanelCallback, build_admin_back_kb, build_admin_back_btn
|
||||
from keyboards.admin.users_kb import (
|
||||
AdminUserEditorCallback,
|
||||
AdminUserKeyEditorCallback,
|
||||
@@ -718,3 +719,44 @@ async def handle_user_traffic(
|
||||
result_text += f"\n🔢 <b>Общий трафик:</b> {total_traffic:.2f} ГБ"
|
||||
|
||||
await callback_query.message.edit_text(result_text, reply_markup=build_editor_kb(tg_id, True))
|
||||
|
||||
|
||||
@router.callback_query(AdminPanelCallback.filter(F.action == "restore_trials"), IsAdminFilter())
|
||||
async def confirm_restore_trials(callback_query: types.CallbackQuery):
|
||||
"""
|
||||
Меню подтверждения перед восстановлением пробников.
|
||||
"""
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.button(text="✅ Подтвердить", callback_data=AdminPanelCallback(action="confirm_restore_trials").pack())
|
||||
builder.row(build_admin_back_btn())
|
||||
|
||||
await callback_query.message.edit_text(
|
||||
text="⚠ Вы уверены, что хотите восстановить пробники для пользователей? \n\n"
|
||||
"Только для тех, у кого нет активной подписки!",
|
||||
reply_markup=builder.as_markup()
|
||||
)
|
||||
|
||||
@router.callback_query(AdminPanelCallback.filter(F.action == "confirm_restore_trials"), IsAdminFilter())
|
||||
async def restore_trials(callback_query: types.CallbackQuery, session: Any):
|
||||
"""
|
||||
Восстанавливает пробники для пользователей, у которых нет активной подписки.
|
||||
"""
|
||||
query = """
|
||||
UPDATE connections
|
||||
SET trial = 0
|
||||
WHERE tg_id IN (
|
||||
SELECT DISTINCT c.tg_id
|
||||
FROM connections c
|
||||
LEFT JOIN keys k ON c.tg_id = k.tg_id
|
||||
WHERE k.tg_id IS NULL AND c.trial != 0
|
||||
)
|
||||
"""
|
||||
await session.execute(query)
|
||||
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(build_admin_back_btn())
|
||||
|
||||
await callback_query.message.edit_text(
|
||||
text="✅ Пробники успешно восстановлены для пользователей, у которых нет активных подписок.",
|
||||
reply_markup=builder.as_markup()
|
||||
)
|
||||
|
||||
@@ -2,8 +2,9 @@ import asyncio
|
||||
|
||||
from typing import Any
|
||||
|
||||
from config import ADMIN_PASSWORD, ADMIN_USERNAME, LIMIT_IP, PUBLIC_LINK, SUPERNODE, TOTAL_GB, USE_COUNTRY_SELECTION
|
||||
from config import ADMIN_PASSWORD, ADMIN_USERNAME, LIMIT_IP, PUBLIC_LINK, SUPERNODE, TOTAL_GB, DATABASE_URL
|
||||
from py3xui import AsyncApi
|
||||
import asyncpg
|
||||
|
||||
from client import ClientConfig, add_client, delete_client, extend_client_key, get_client_traffic, toggle_client
|
||||
from database import get_servers, store_key
|
||||
@@ -125,6 +126,16 @@ async def renew_key_in_cluster(cluster_id, email, client_id, new_expiry_time, to
|
||||
else:
|
||||
raise ValueError(f"Кластер или сервер с ID/именем {cluster_id} не найден.")
|
||||
|
||||
async with asyncpg.create_pool(DATABASE_URL) as pool:
|
||||
async with pool.acquire() as conn:
|
||||
tg_id_query = "SELECT tg_id FROM keys WHERE client_id = $1 LIMIT 1"
|
||||
tg_id_record = await conn.fetchrow(tg_id_query, client_id)
|
||||
|
||||
if not tg_id_record:
|
||||
logger.error(f"Не найден пользователь с client_id={client_id} в таблице keys.")
|
||||
return False
|
||||
|
||||
tg_id = tg_id_record["tg_id"]
|
||||
tasks = []
|
||||
for server_info in cluster:
|
||||
xui = AsyncApi(
|
||||
@@ -149,7 +160,9 @@ async def renew_key_in_cluster(cluster_id, email, client_id, new_expiry_time, to
|
||||
sub_id = unique_email
|
||||
|
||||
tasks.append(
|
||||
extend_client_key(xui, int(inbound_id), unique_email, new_expiry_time, client_id, total_gb, sub_id)
|
||||
extend_client_key(
|
||||
xui, int(inbound_id), unique_email, new_expiry_time, client_id, total_gb, sub_id, tg_id
|
||||
)
|
||||
)
|
||||
|
||||
await asyncio.gather(*tasks, return_exceptions=True)
|
||||
|
||||
@@ -25,6 +25,7 @@ from config import (
|
||||
TOTAL_GB,
|
||||
USE_COUNTRY_SELECTION,
|
||||
USE_NEW_PAYMENT_FLOW,
|
||||
TOGGLE_CLIENT
|
||||
)
|
||||
|
||||
from bot import bot
|
||||
@@ -52,6 +53,7 @@ from handlers.keys.key_utils import (
|
||||
delete_key_from_cluster,
|
||||
renew_key_in_cluster,
|
||||
update_subscription,
|
||||
toggle_client_on_cluster
|
||||
)
|
||||
from handlers.payments.robokassa_pay import handle_custom_amount_input
|
||||
from handlers.payments.yookassa_pay import process_custom_amount_input
|
||||
@@ -143,6 +145,7 @@ async def process_callback_view_key(callback_query: CallbackQuery, session: Any)
|
||||
key = record["key"]
|
||||
expiry_time = record["expiry_time"]
|
||||
server_name = record["server_id"]
|
||||
is_frozen = record["is_frozen"]
|
||||
country = server_name
|
||||
expiry_date = datetime.utcfromtimestamp(expiry_time / 1000)
|
||||
current_date = datetime.utcnow()
|
||||
@@ -203,6 +206,22 @@ async def process_callback_view_key(callback_query: CallbackQuery, session: Any)
|
||||
builder.row(
|
||||
InlineKeyboardButton(text="🌍 Сменить локацию", callback_data=f"change_location|{key_name}")
|
||||
)
|
||||
if TOGGLE_CLIENT:
|
||||
if is_frozen:
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text="🟢 Разморозить подписку",
|
||||
callback_data=f"unfreeze_subscription|{key_name}",
|
||||
)
|
||||
)
|
||||
else:
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text="🛑 Заморозить подписку",
|
||||
callback_data=f"freeze_subscription|{key_name}",
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
builder.row(InlineKeyboardButton(text="⬅️ Назад", callback_data="view_keys"))
|
||||
builder.row(InlineKeyboardButton(text="👤 Личный кабинет", callback_data="profile"))
|
||||
@@ -230,6 +249,197 @@ async def process_callback_view_key(callback_query: CallbackQuery, session: Any)
|
||||
)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("unfreeze_subscription|"))
|
||||
async def process_callback_unfreeze_subscription(callback_query: CallbackQuery, session: Any):
|
||||
key_name = callback_query.data.split("|")[1]
|
||||
confirm_text = (
|
||||
"Хотите включить (разморозить) подписку?\n\n"
|
||||
"После включения доступа трафик и время снова начнут расходоваться."
|
||||
)
|
||||
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text="✅ Подтвердить",
|
||||
callback_data=f"unfreeze_subscription_confirm|{key_name}",
|
||||
),
|
||||
InlineKeyboardButton(
|
||||
text="❌ Отмена",
|
||||
callback_data=f"view_key|{key_name}",
|
||||
),
|
||||
)
|
||||
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=confirm_text,
|
||||
reply_markup=builder.as_markup(),
|
||||
)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("unfreeze_subscription_confirm|"))
|
||||
async def process_callback_unfreeze_subscription_confirm(callback_query: CallbackQuery, session: Any):
|
||||
"""
|
||||
Размораживает (включает) подписку без SQLAlchemy.
|
||||
Параметр 'session' предполагается, что это asyncpg.Connection или аналог.
|
||||
"""
|
||||
tg_id = callback_query.message.chat.id
|
||||
key_name = callback_query.data.split("|")[1]
|
||||
|
||||
try:
|
||||
record = await get_key_details(key_name, session)
|
||||
if not record:
|
||||
await callback_query.message.answer("Ключ не найден.")
|
||||
return
|
||||
|
||||
email = record["email"]
|
||||
client_id = record["client_id"]
|
||||
cluster_id = record["server_id"]
|
||||
|
||||
result = await toggle_client_on_cluster(cluster_id, email, client_id, enable=True)
|
||||
|
||||
if result["status"] == "success":
|
||||
update_result = await session.execute(
|
||||
"""
|
||||
UPDATE keys
|
||||
SET is_frozen = FALSE
|
||||
WHERE tg_id = $1
|
||||
AND client_id = $2
|
||||
""",
|
||||
record["tg_id"],
|
||||
client_id
|
||||
)
|
||||
|
||||
text_ok = (
|
||||
"✅ Подписка успешно включена.\n\n"
|
||||
"Теперь трафик и время подписки будут расходоваться."
|
||||
)
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(text="⬅️ Назад", callback_data=f"view_key|{key_name}")
|
||||
)
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=text_ok,
|
||||
reply_markup=builder.as_markup(),
|
||||
)
|
||||
else:
|
||||
text_error = (
|
||||
"Произошла ошибка при включении подписки.\n"
|
||||
f"Детали: {result.get('error') or result.get('results')}"
|
||||
)
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(text="⬅️ Назад", callback_data=f"view_key|{key_name}")
|
||||
)
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=text_error,
|
||||
reply_markup=builder.as_markup(),
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
await handle_error(tg_id, callback_query, f"Ошибка при включении подписки: {e}")
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("freeze_subscription|"))
|
||||
async def process_callback_freeze_subscription(callback_query: CallbackQuery, session: Any):
|
||||
"""
|
||||
Показывает пользователю диалог подтверждения заморозки (отключения) подписки.
|
||||
session здесь всё равно прокидывается, но в этой функции он не нужен,
|
||||
т.к. мы пока ничего не читаем/не пишем в БД, а только задаём вопрос пользователю.
|
||||
"""
|
||||
tg_id = callback_query.message.chat.id
|
||||
key_name = callback_query.data.split("|")[1]
|
||||
|
||||
confirm_text = (
|
||||
"Вы можете заморозить (отключить) свою подписку на любой удобный срок, если временно не будете "
|
||||
"пользоваться VPN. Включить обратно можно будет в этом же меню.\n\n"
|
||||
"<b>Вы уверены, что хотите заморозить подписку?</b>"
|
||||
)
|
||||
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text="✅ Подтвердить",
|
||||
callback_data=f"freeze_subscription_confirm|{key_name}",
|
||||
),
|
||||
InlineKeyboardButton(
|
||||
text="❌ Отмена",
|
||||
callback_data=f"view_key|{key_name}",
|
||||
),
|
||||
)
|
||||
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=confirm_text,
|
||||
reply_markup=builder.as_markup(),
|
||||
)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("freeze_subscription_confirm|"))
|
||||
async def process_callback_freeze_subscription_confirm(callback_query: CallbackQuery, session: Any):
|
||||
"""
|
||||
Замораживает (отключает) подписку.
|
||||
"""
|
||||
tg_id = callback_query.message.chat.id
|
||||
key_name = callback_query.data.split("|")[1]
|
||||
|
||||
try:
|
||||
record = await get_key_details(key_name, session)
|
||||
if not record:
|
||||
await callback_query.message.answer("Ключ не найден.")
|
||||
return
|
||||
|
||||
email = record["email"]
|
||||
client_id = record["client_id"]
|
||||
cluster_id = record["server_id"]
|
||||
|
||||
result = await toggle_client_on_cluster(cluster_id, email, client_id, enable=False)
|
||||
|
||||
if result["status"] == "success":
|
||||
update_result = await session.execute(
|
||||
"""
|
||||
UPDATE keys
|
||||
SET is_frozen = TRUE
|
||||
WHERE tg_id = $1
|
||||
AND client_id = $2
|
||||
""",
|
||||
record["tg_id"],
|
||||
client_id
|
||||
)
|
||||
|
||||
text_ok = (
|
||||
"✅ Подписка успешно заморожена.\n\n"
|
||||
"Чтобы включить обратно, зайдите в меню ключа и нажмите «Включить подписку»."
|
||||
)
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(text="⬅️ Назад", callback_data=f"view_key|{key_name}")
|
||||
)
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=text_ok,
|
||||
reply_markup=builder.as_markup(),
|
||||
)
|
||||
else:
|
||||
text_error = (
|
||||
"Произошла ошибка при заморозке подписки.\n"
|
||||
f"Детали: {result.get('error') or result.get('results')}"
|
||||
)
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(text="⬅️ Назад", callback_data=f"view_key|{key_name}")
|
||||
)
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=text_error,
|
||||
reply_markup=builder.as_markup(),
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
await handle_error(tg_id, callback_query, f"Ошибка при заморозке подписки: {e}")
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("connect_phone|"))
|
||||
async def process_callback_connect_phone(callback_query: CallbackQuery):
|
||||
email = callback_query.data.split("|")[1]
|
||||
|
||||
@@ -17,6 +17,7 @@ from config import (
|
||||
RENEWAL_PRICES,
|
||||
TOTAL_GB,
|
||||
TRIAL_TIME_DISABLE,
|
||||
NOTIFY_INACTIVE_TRAFFIC
|
||||
)
|
||||
|
||||
from database import (
|
||||
@@ -79,8 +80,9 @@ async def periodic_notifications(bot: Bot):
|
||||
await asyncio.sleep(1)
|
||||
await handle_expired_keys(bot, conn, current_time, keys)
|
||||
await asyncio.sleep(0.5)
|
||||
await notify_users_no_traffic(bot, conn, current_time, keys)
|
||||
await asyncio.sleep(0.5)
|
||||
if NOTIFY_INACTIVE_TRAFFIC:
|
||||
await notify_users_no_traffic(bot, conn, current_time, keys)
|
||||
await asyncio.sleep(0.5)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"❌ Ошибка в periodic_notifications: {e}")
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import os
|
||||
|
||||
from typing import Optional
|
||||
|
||||
import aiofiles
|
||||
|
||||
from aiogram import Bot
|
||||
@@ -33,7 +31,6 @@ async def send_notification(
|
||||
"""
|
||||
photo_path = os.path.join("img", image_filename)
|
||||
|
||||
# Проверяем существование файла изображения
|
||||
if os.path.isfile(photo_path):
|
||||
return await _send_photo_notification(bot, tg_id, photo_path, image_filename, caption, keyboard)
|
||||
else:
|
||||
@@ -61,7 +58,6 @@ async def _send_photo_notification(
|
||||
return False
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка отправки фото для пользователя {tg_id}: {e}")
|
||||
# Пробуем отправить текстовое сообщение как запасной вариант
|
||||
return await _send_text_notification(bot, tg_id, caption, keyboard)
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -23,14 +23,14 @@ async def handle_pay(callback_query: CallbackQuery):
|
||||
if YOOKASSA_ENABLE:
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text="💳 ЮКасса: быстрый перевод",
|
||||
text="💳 ЮКасса: быстрая оплата",
|
||||
callback_data="pay_yookassa",
|
||||
)
|
||||
)
|
||||
if YOOMONEY_ENABLE:
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text="💳 ЮМани: оплата по карте",
|
||||
text="💳 ЮМани: перевод по карте",
|
||||
callback_data="pay_yoomoney",
|
||||
)
|
||||
)
|
||||
|
||||
+963
-923
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+234
-221
@@ -2645,30 +2645,29 @@ static const char __pyx_k__5[] = "\320\235\320\260\321\200\321\203\321\210\320\2
|
||||
static const char __pyx_k__6[] = "\360\237\244\226 \320\221\320\276\321\202 \320\264\320\273\321\217 \320\277\320\276\320\272\321\203\320\277\320\272\320\270 \320\267\320\262\320\265\320\267\320\264";
|
||||
static const char __pyx_k__7[] = "\360\237\222\260 \320\222\320\262\320\265\321\201\321\202\320\270 \321\201\320\262\320\276\321\216 \321\201\321\203\320\274\320\274\321\203";
|
||||
static const char __pyx_k__8[] = "\342\254\205\357\270\217 \320\235\320\260\320\267\320\260\320\264";
|
||||
static const char __pyx_k__9[] = "\320\222\321\213\320\261\320\265\321\200\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217:";
|
||||
static const char __pyx_k__9[] = "\320\235\320\265 \321\203\320\264\320\260\320\273\320\276\321\201\321\214 \320\276\321\202\321\200\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \321\201\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265, \320\277\321\200\320\276\320\261\321\203\320\265\320\274 \321\203\320\264\320\260\320\273\320\270\321\202\321\214 \320\270 \320\276\321\202\320\277\321\200\320\260\320\262\320\270\321\202\321\214 \320\275\320\276\320\262\320\276\320\265: ";
|
||||
static const char __pyx_k_gc[] = "gc";
|
||||
static const char __pyx_k_id[] = "id";
|
||||
static const char __pyx_k_ok[] = "ok";
|
||||
static const char __pyx_k_Any[] = "Any";
|
||||
static const char __pyx_k_XTR[] = "XTR";
|
||||
static const char __pyx_k__10[] = "\320\235\320\265 \321\203\320\264\320\260\320\273\320\276\321\201\321\214 \320\276\321\202\321\200\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \321\201\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265, \320\277\321\200\320\276\320\261\321\203\320\265\320\274 \321\203\320\264\320\260\320\273\320\270\321\202\321\214 \320\270 \320\276\321\202\320\277\321\200\320\260\320\262\320\270\321\202\321\214 \320\275\320\276\320\262\320\276\320\265: ";
|
||||
static const char __pyx_k__13[] = "|";
|
||||
static const char __pyx_k__15[] = "\320\235\320\265\320\262\320\265\321\200\320\275\321\213\320\265 \320\264\320\260\320\275\320\275\321\213\320\265 \320\264\320\273\321\217 \320\262\321\213\320\261\320\276\321\200\320\260 \321\201\321\203\320\274\320\274\321\213.";
|
||||
static const char __pyx_k__16[] = "\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\260\321\217 \321\201\321\203\320\274\320\274\320\260.";
|
||||
static const char __pyx_k__17[] = "\320\237\320\276\320\277\320\276\320\273\320\275\320\270\321\202\321\214";
|
||||
static const char __pyx_k__18[] = "\320\222\321\213 \320\262\321\213\320\261\321\200\320\260\320\273\320\270 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265 \320\275\320\260 ";
|
||||
static const char __pyx_k__19[] = " \321\200\321\203\320\261\320\273\320\265\320\271.";
|
||||
static const char __pyx_k__20[] = "";
|
||||
static const char __pyx_k__21[] = "\320\236\321\210\320\270\320\261\320\272\320\260 \320\277\321\200\320\270 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\270 \320\277\320\273\320\260\321\202\320\265\320\266\320\260: ";
|
||||
static const char __pyx_k__22[] = "\320\237\321\200\320\276\320\270\320\267\320\276\321\210\320\273\320\260 \320\276\321\210\320\270\320\261\320\272\320\260 \320\277\321\200\320\270 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\270 \320\277\320\273\320\260\321\202\320\265\320\266\320\260.";
|
||||
static const char __pyx_k__24[] = "\360\237\224\231 \320\235\320\260\320\267\320\260\320\264";
|
||||
static const char __pyx_k__25[] = "\320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.";
|
||||
static const char __pyx_k__27[] = "\320\241\321\203\320\274\320\274\320\260 \320\264\320\276\320\273\320\266\320\275\320\260 \320\261\321\213\321\202\321\214 \320\261\320\276\320\273\321\214\321\210\320\265 ";
|
||||
static const char __pyx_k__28[] = ". \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__29[] = "\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\260\321\217 \321\201\321\203\320\274\320\274\320\260. \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__32[] = "_";
|
||||
static const char __pyx_k__33[] = ".";
|
||||
static const char __pyx_k__43[] = "?";
|
||||
static const char __pyx_k__11[] = "|";
|
||||
static const char __pyx_k__13[] = "\320\235\320\265\320\262\320\265\321\200\320\275\321\213\320\265 \320\264\320\260\320\275\320\275\321\213\320\265 \320\264\320\273\321\217 \320\262\321\213\320\261\320\276\321\200\320\260 \321\201\321\203\320\274\320\274\321\213.";
|
||||
static const char __pyx_k__14[] = "\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\260\321\217 \321\201\321\203\320\274\320\274\320\260.";
|
||||
static const char __pyx_k__15[] = "\320\237\320\276\320\277\320\276\320\273\320\275\320\270\321\202\321\214";
|
||||
static const char __pyx_k__16[] = "\320\222\321\213 \320\262\321\213\320\261\321\200\320\260\320\273\320\270 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265 \320\275\320\260 ";
|
||||
static const char __pyx_k__17[] = " \321\200\321\203\320\261\320\273\320\265\320\271.";
|
||||
static const char __pyx_k__18[] = "";
|
||||
static const char __pyx_k__19[] = "\320\236\321\210\320\270\320\261\320\272\320\260 \320\277\321\200\320\270 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\270 \320\277\320\273\320\260\321\202\320\265\320\266\320\260: ";
|
||||
static const char __pyx_k__20[] = "\320\237\321\200\320\276\320\270\320\267\320\276\321\210\320\273\320\260 \320\276\321\210\320\270\320\261\320\272\320\260 \320\277\321\200\320\270 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\270 \320\277\320\273\320\260\321\202\320\265\320\266\320\260.";
|
||||
static const char __pyx_k__22[] = "\360\237\224\231 \320\235\320\260\320\267\320\260\320\264";
|
||||
static const char __pyx_k__23[] = "\320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.";
|
||||
static const char __pyx_k__25[] = "\320\241\321\203\320\274\320\274\320\260 \320\264\320\276\320\273\320\266\320\275\320\260 \320\261\321\213\321\202\321\214 \320\261\320\276\320\273\321\214\321\210\320\265 ";
|
||||
static const char __pyx_k__26[] = ". \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__27[] = "\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\260\321\217 \321\201\321\203\320\274\320\274\320\260. \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__30[] = "_";
|
||||
static const char __pyx_k__31[] = ".";
|
||||
static const char __pyx_k__41[] = "?";
|
||||
static const char __pyx_k_doc[] = "__doc__";
|
||||
static const char __pyx_k_pay[] = "pay";
|
||||
static const char __pyx_k_row[] = "row";
|
||||
@@ -2740,6 +2739,7 @@ static const char __pyx_k_RUB_TO_XTR[] = "RUB_TO_XTR";
|
||||
static const char __pyx_k_ValueError[] = "ValueError";
|
||||
static const char __pyx_k_amount_str[] = "amount_str";
|
||||
static const char __pyx_k_startswith[] = "startswith";
|
||||
static const char __pyx_k_AMOUNT_TEXT[] = "AMOUNT_TEXT";
|
||||
static const char __pyx_k_StatesGroup[] = "StatesGroup";
|
||||
static const char __pyx_k_add_payment[] = "add_payment";
|
||||
static const char __pyx_k_description[] = "description";
|
||||
@@ -2866,6 +2866,7 @@ typedef struct {
|
||||
PyTypeObject *__pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_6_on_pre_checkout_query;
|
||||
PyTypeObject *__pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment;
|
||||
PyObject *__pyx_kp_u_21U68SOLOBOT;
|
||||
PyObject *__pyx_n_s_AMOUNT_TEXT;
|
||||
PyObject *__pyx_n_s_Any;
|
||||
PyObject *__pyx_n_s_F;
|
||||
PyObject *__pyx_n_s_FSMContext;
|
||||
@@ -2883,25 +2884,24 @@ typedef struct {
|
||||
PyObject *__pyx_n_s_StatesGroup;
|
||||
PyObject *__pyx_n_s_ValueError;
|
||||
PyObject *__pyx_n_u_XTR;
|
||||
PyObject *__pyx_kp_u__10;
|
||||
PyObject *__pyx_kp_u__11;
|
||||
PyObject *__pyx_kp_u__13;
|
||||
PyObject *__pyx_kp_u__15;
|
||||
PyObject *__pyx_kp_u__14;
|
||||
PyObject *__pyx_n_u__15;
|
||||
PyObject *__pyx_kp_u__16;
|
||||
PyObject *__pyx_n_u__17;
|
||||
PyObject *__pyx_kp_u__17;
|
||||
PyObject *__pyx_kp_u__18;
|
||||
PyObject *__pyx_kp_u__19;
|
||||
PyObject *__pyx_kp_u__2;
|
||||
PyObject *__pyx_kp_u__20;
|
||||
PyObject *__pyx_kp_u__21;
|
||||
PyObject *__pyx_kp_u__22;
|
||||
PyObject *__pyx_kp_u__24;
|
||||
PyObject *__pyx_kp_u__23;
|
||||
PyObject *__pyx_kp_u__25;
|
||||
PyObject *__pyx_kp_u__26;
|
||||
PyObject *__pyx_kp_u__27;
|
||||
PyObject *__pyx_kp_u__28;
|
||||
PyObject *__pyx_kp_u__29;
|
||||
PyObject *__pyx_n_u__32;
|
||||
PyObject *__pyx_kp_u__33;
|
||||
PyObject *__pyx_n_s__43;
|
||||
PyObject *__pyx_n_u__30;
|
||||
PyObject *__pyx_kp_u__31;
|
||||
PyObject *__pyx_n_s__41;
|
||||
PyObject *__pyx_kp_u__5;
|
||||
PyObject *__pyx_kp_u__6;
|
||||
PyObject *__pyx_kp_u__7;
|
||||
@@ -3041,8 +3041,9 @@ typedef struct {
|
||||
PyObject *__pyx_int_1;
|
||||
PyObject *__pyx_int_2;
|
||||
PyObject *__pyx_codeobj_;
|
||||
PyObject *__pyx_tuple__11;
|
||||
PyObject *__pyx_tuple__14;
|
||||
PyObject *__pyx_tuple__12;
|
||||
PyObject *__pyx_tuple__32;
|
||||
PyObject *__pyx_tuple__33;
|
||||
PyObject *__pyx_tuple__34;
|
||||
PyObject *__pyx_tuple__35;
|
||||
PyObject *__pyx_tuple__36;
|
||||
@@ -3050,15 +3051,13 @@ typedef struct {
|
||||
PyObject *__pyx_tuple__38;
|
||||
PyObject *__pyx_tuple__39;
|
||||
PyObject *__pyx_tuple__40;
|
||||
PyObject *__pyx_tuple__41;
|
||||
PyObject *__pyx_tuple__42;
|
||||
PyObject *__pyx_codeobj__3;
|
||||
PyObject *__pyx_codeobj__4;
|
||||
PyObject *__pyx_codeobj__12;
|
||||
PyObject *__pyx_codeobj__23;
|
||||
PyObject *__pyx_codeobj__26;
|
||||
PyObject *__pyx_codeobj__30;
|
||||
PyObject *__pyx_codeobj__31;
|
||||
PyObject *__pyx_codeobj__10;
|
||||
PyObject *__pyx_codeobj__21;
|
||||
PyObject *__pyx_codeobj__24;
|
||||
PyObject *__pyx_codeobj__28;
|
||||
PyObject *__pyx_codeobj__29;
|
||||
} __pyx_mstate;
|
||||
|
||||
#if CYTHON_USE_MODULE_STATE
|
||||
@@ -3118,6 +3117,7 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment);
|
||||
Py_CLEAR(clear_module_state->__pyx_type_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u_21U68SOLOBOT);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_AMOUNT_TEXT);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_Any);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_F);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_FSMContext);
|
||||
@@ -3135,25 +3135,24 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_StatesGroup);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u_XTR);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__10);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__11);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__13);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__15);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__14);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u__15);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__16);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u__17);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__17);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__18);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__19);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__2);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__20);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__21);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__22);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__24);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__23);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__25);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__26);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__27);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__28);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__29);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u__32);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__33);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s__43);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u__30);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__31);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s__41);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__5);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__6);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__7);
|
||||
@@ -3293,8 +3292,9 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_int_1);
|
||||
Py_CLEAR(clear_module_state->__pyx_int_2);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj_);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__11);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__14);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__12);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__32);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__33);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__34);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__35);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__36);
|
||||
@@ -3302,15 +3302,13 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__38);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__39);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__40);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__41);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__42);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__3);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__4);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__12);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__23);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__26);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__30);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__31);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__10);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__21);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__24);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__28);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__29);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -3348,6 +3346,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment);
|
||||
Py_VISIT(traverse_module_state->__pyx_type_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u_21U68SOLOBOT);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_AMOUNT_TEXT);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_Any);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_F);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_FSMContext);
|
||||
@@ -3365,25 +3364,24 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_StatesGroup);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u_XTR);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__10);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__11);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__13);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__15);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__14);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u__15);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__16);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u__17);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__17);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__18);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__19);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__2);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__20);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__21);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__22);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__24);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__23);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__25);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__26);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__27);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__28);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__29);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u__32);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__33);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s__43);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u__30);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__31);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s__41);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__5);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__6);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__7);
|
||||
@@ -3523,8 +3521,9 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_int_1);
|
||||
Py_VISIT(traverse_module_state->__pyx_int_2);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj_);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__11);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__14);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__12);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__32);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__33);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__34);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__35);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__36);
|
||||
@@ -3532,15 +3531,13 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__38);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__39);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__40);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__41);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__42);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__3);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__4);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__12);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__23);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__26);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__30);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__31);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__10);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__21);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__24);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__28);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__29);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -3588,6 +3585,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_6_on_pre_checkout_query __pyx_mstate_global->__pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_6_on_pre_checkout_query
|
||||
#define __pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment __pyx_mstate_global->__pyx_ptype_8handlers_8payments_9stars_pay___pyx_scope_struct_7_on_successful_payment
|
||||
#define __pyx_kp_u_21U68SOLOBOT __pyx_mstate_global->__pyx_kp_u_21U68SOLOBOT
|
||||
#define __pyx_n_s_AMOUNT_TEXT __pyx_mstate_global->__pyx_n_s_AMOUNT_TEXT
|
||||
#define __pyx_n_s_Any __pyx_mstate_global->__pyx_n_s_Any
|
||||
#define __pyx_n_s_F __pyx_mstate_global->__pyx_n_s_F
|
||||
#define __pyx_n_s_FSMContext __pyx_mstate_global->__pyx_n_s_FSMContext
|
||||
@@ -3605,25 +3603,24 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_n_s_StatesGroup __pyx_mstate_global->__pyx_n_s_StatesGroup
|
||||
#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
|
||||
#define __pyx_n_u_XTR __pyx_mstate_global->__pyx_n_u_XTR
|
||||
#define __pyx_kp_u__10 __pyx_mstate_global->__pyx_kp_u__10
|
||||
#define __pyx_kp_u__11 __pyx_mstate_global->__pyx_kp_u__11
|
||||
#define __pyx_kp_u__13 __pyx_mstate_global->__pyx_kp_u__13
|
||||
#define __pyx_kp_u__15 __pyx_mstate_global->__pyx_kp_u__15
|
||||
#define __pyx_kp_u__14 __pyx_mstate_global->__pyx_kp_u__14
|
||||
#define __pyx_n_u__15 __pyx_mstate_global->__pyx_n_u__15
|
||||
#define __pyx_kp_u__16 __pyx_mstate_global->__pyx_kp_u__16
|
||||
#define __pyx_n_u__17 __pyx_mstate_global->__pyx_n_u__17
|
||||
#define __pyx_kp_u__17 __pyx_mstate_global->__pyx_kp_u__17
|
||||
#define __pyx_kp_u__18 __pyx_mstate_global->__pyx_kp_u__18
|
||||
#define __pyx_kp_u__19 __pyx_mstate_global->__pyx_kp_u__19
|
||||
#define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
|
||||
#define __pyx_kp_u__20 __pyx_mstate_global->__pyx_kp_u__20
|
||||
#define __pyx_kp_u__21 __pyx_mstate_global->__pyx_kp_u__21
|
||||
#define __pyx_kp_u__22 __pyx_mstate_global->__pyx_kp_u__22
|
||||
#define __pyx_kp_u__24 __pyx_mstate_global->__pyx_kp_u__24
|
||||
#define __pyx_kp_u__23 __pyx_mstate_global->__pyx_kp_u__23
|
||||
#define __pyx_kp_u__25 __pyx_mstate_global->__pyx_kp_u__25
|
||||
#define __pyx_kp_u__26 __pyx_mstate_global->__pyx_kp_u__26
|
||||
#define __pyx_kp_u__27 __pyx_mstate_global->__pyx_kp_u__27
|
||||
#define __pyx_kp_u__28 __pyx_mstate_global->__pyx_kp_u__28
|
||||
#define __pyx_kp_u__29 __pyx_mstate_global->__pyx_kp_u__29
|
||||
#define __pyx_n_u__32 __pyx_mstate_global->__pyx_n_u__32
|
||||
#define __pyx_kp_u__33 __pyx_mstate_global->__pyx_kp_u__33
|
||||
#define __pyx_n_s__43 __pyx_mstate_global->__pyx_n_s__43
|
||||
#define __pyx_n_u__30 __pyx_mstate_global->__pyx_n_u__30
|
||||
#define __pyx_kp_u__31 __pyx_mstate_global->__pyx_kp_u__31
|
||||
#define __pyx_n_s__41 __pyx_mstate_global->__pyx_n_s__41
|
||||
#define __pyx_kp_u__5 __pyx_mstate_global->__pyx_kp_u__5
|
||||
#define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6
|
||||
#define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7
|
||||
@@ -3763,8 +3760,9 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
|
||||
#define __pyx_int_2 __pyx_mstate_global->__pyx_int_2
|
||||
#define __pyx_codeobj_ __pyx_mstate_global->__pyx_codeobj_
|
||||
#define __pyx_tuple__11 __pyx_mstate_global->__pyx_tuple__11
|
||||
#define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14
|
||||
#define __pyx_tuple__12 __pyx_mstate_global->__pyx_tuple__12
|
||||
#define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32
|
||||
#define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
|
||||
#define __pyx_tuple__34 __pyx_mstate_global->__pyx_tuple__34
|
||||
#define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35
|
||||
#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36
|
||||
@@ -3772,15 +3770,13 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_tuple__38 __pyx_mstate_global->__pyx_tuple__38
|
||||
#define __pyx_tuple__39 __pyx_mstate_global->__pyx_tuple__39
|
||||
#define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40
|
||||
#define __pyx_tuple__41 __pyx_mstate_global->__pyx_tuple__41
|
||||
#define __pyx_tuple__42 __pyx_mstate_global->__pyx_tuple__42
|
||||
#define __pyx_codeobj__3 __pyx_mstate_global->__pyx_codeobj__3
|
||||
#define __pyx_codeobj__4 __pyx_mstate_global->__pyx_codeobj__4
|
||||
#define __pyx_codeobj__12 __pyx_mstate_global->__pyx_codeobj__12
|
||||
#define __pyx_codeobj__23 __pyx_mstate_global->__pyx_codeobj__23
|
||||
#define __pyx_codeobj__26 __pyx_mstate_global->__pyx_codeobj__26
|
||||
#define __pyx_codeobj__30 __pyx_mstate_global->__pyx_codeobj__30
|
||||
#define __pyx_codeobj__31 __pyx_mstate_global->__pyx_codeobj__31
|
||||
#define __pyx_codeobj__10 __pyx_mstate_global->__pyx_codeobj__10
|
||||
#define __pyx_codeobj__21 __pyx_mstate_global->__pyx_codeobj__21
|
||||
#define __pyx_codeobj__24 __pyx_mstate_global->__pyx_codeobj__24
|
||||
#define __pyx_codeobj__28 __pyx_mstate_global->__pyx_codeobj__28
|
||||
#define __pyx_codeobj__29 __pyx_mstate_global->__pyx_codeobj__29
|
||||
/* #### Code section: module_code ### */
|
||||
static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
|
||||
|
||||
@@ -5410,7 +5406,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_8generator2(__pyx_Corou
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_target_message, __pyx_t_6) < 0) __PYX_ERR(0, 113, __pyx_L15_error)
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_text, __pyx_kp_u__9) < 0) __PYX_ERR(0, 113, __pyx_L15_error)
|
||||
|
||||
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_AMOUNT_TEXT); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 114, __pyx_L15_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_text, __pyx_t_6) < 0) __PYX_ERR(0, 113, __pyx_L15_error)
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
|
||||
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_builder, __pyx_n_s_as_markup); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 115, __pyx_L15_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
@@ -5513,7 +5513,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_8generator2(__pyx_Corou
|
||||
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
|
||||
__pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_e, __pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 118, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
__pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u__10, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L27_error)
|
||||
__pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u__9, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
|
||||
__pyx_t_11 = NULL;
|
||||
@@ -5680,41 +5680,51 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_8generator2(__pyx_Corou
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
|
||||
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_AMOUNT_TEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
|
||||
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 123, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_14);
|
||||
__Pyx_GIVEREF(__pyx_t_4);
|
||||
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(0, 123, __pyx_L27_error);
|
||||
__pyx_t_4 = 0;
|
||||
|
||||
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_builder, __pyx_n_s_as_markup); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
__pyx_t_12 = NULL;
|
||||
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_builder, __pyx_n_s_as_markup); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_12);
|
||||
__pyx_t_13 = NULL;
|
||||
__pyx_t_5 = 0;
|
||||
#if CYTHON_UNPACK_METHODS
|
||||
if (likely(PyMethod_Check(__pyx_t_11))) {
|
||||
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
|
||||
if (likely(__pyx_t_12)) {
|
||||
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
|
||||
__Pyx_INCREF(__pyx_t_12);
|
||||
if (likely(PyMethod_Check(__pyx_t_12))) {
|
||||
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
|
||||
if (likely(__pyx_t_13)) {
|
||||
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
|
||||
__Pyx_INCREF(__pyx_t_13);
|
||||
__Pyx_INCREF(function);
|
||||
__Pyx_DECREF_SET(__pyx_t_11, function);
|
||||
__Pyx_DECREF_SET(__pyx_t_12, function);
|
||||
__pyx_t_5 = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
|
||||
__pyx_t_14 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
|
||||
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
|
||||
if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_14);
|
||||
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL};
|
||||
__pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
|
||||
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
|
||||
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
|
||||
}
|
||||
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_reply_markup, __pyx_t_14) < 0) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_reply_markup, __pyx_t_11) < 0) __PYX_ERR(0, 125, __pyx_L27_error)
|
||||
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
|
||||
|
||||
__pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, __pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 123, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_14);
|
||||
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 123, __pyx_L27_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_14);
|
||||
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_11);
|
||||
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
|
||||
__Pyx_XGOTREF(__pyx_r);
|
||||
if (likely(__pyx_r)) {
|
||||
__Pyx_XGIVEREF(__pyx_t_3);
|
||||
@@ -5834,8 +5844,8 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_8generator2(__pyx_Corou
|
||||
__Pyx_GOTREF(__pyx_t_7);
|
||||
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ReplenishBalanceState); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 129, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_choosing_amount_stars); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 129, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_14);
|
||||
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_choosing_amount_stars); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 129, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
__pyx_t_6 = NULL;
|
||||
__pyx_t_5 = 0;
|
||||
@@ -5852,10 +5862,10 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_8generator2(__pyx_Corou
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_14};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_11};
|
||||
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
|
||||
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
|
||||
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
|
||||
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
|
||||
@@ -6044,7 +6054,7 @@ static PyObject *__pyx_pf_8handlers_8payments_9stars_pay_9process_amount_selecti
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_11generator3, __pyx_codeobj__12, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_amount_selection, __pyx_n_s_process_amount_selection, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_11generator3, __pyx_codeobj__10, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_amount_selection, __pyx_n_s_process_amount_selection, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -6113,7 +6123,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
|
||||
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__Pyx_GIVEREF(__pyx_t_1);
|
||||
@@ -6133,7 +6143,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target_message, __pyx_t_5) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_text, __pyx_kp_u__15) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_text, __pyx_kp_u__13) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
|
||||
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_reply_markup, Py_None) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
|
||||
|
||||
@@ -6213,7 +6223,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_12);
|
||||
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_target_message, __pyx_t_12) < 0) __PYX_ERR(0, 152, __pyx_L8_except_error)
|
||||
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_text, __pyx_kp_u__16) < 0) __PYX_ERR(0, 152, __pyx_L8_except_error)
|
||||
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_text, __pyx_kp_u__14) < 0) __PYX_ERR(0, 152, __pyx_L8_except_error)
|
||||
|
||||
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_reply_markup, Py_None) < 0) __PYX_ERR(0, 152, __pyx_L8_except_error)
|
||||
|
||||
@@ -6478,7 +6488,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_text, __pyx_n_u__17) < 0) __PYX_ERR(0, 166, __pyx_L17_error)
|
||||
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_text, __pyx_n_u__15) < 0) __PYX_ERR(0, 166, __pyx_L17_error)
|
||||
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pay, Py_True) < 0) __PYX_ERR(0, 166, __pyx_L17_error)
|
||||
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 166, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
@@ -6559,11 +6569,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_3 = 0;
|
||||
__pyx_t_14 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__18);
|
||||
__Pyx_INCREF(__pyx_kp_u__16);
|
||||
__pyx_t_14 = (65535 > __pyx_t_14) ? 65535 : __pyx_t_14;
|
||||
__pyx_t_3 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__18);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__18);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__16);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__16);
|
||||
__pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__pyx_t_14 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_14) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_14;
|
||||
@@ -6571,11 +6581,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GIVEREF(__pyx_t_1);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
|
||||
__pyx_t_1 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__19);
|
||||
__Pyx_INCREF(__pyx_kp_u__17);
|
||||
__pyx_t_14 = (65535 > __pyx_t_14) ? 65535 : __pyx_t_14;
|
||||
__pyx_t_3 += 8;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__19);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__19);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__17);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__17);
|
||||
__pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_3, __pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -6586,11 +6596,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__pyx_t_3 = 0;
|
||||
__pyx_t_14 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__18);
|
||||
__Pyx_INCREF(__pyx_kp_u__16);
|
||||
__pyx_t_14 = (65535 > __pyx_t_14) ? 65535 : __pyx_t_14;
|
||||
__pyx_t_3 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__18);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__18);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__16);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__16);
|
||||
__pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_14 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_14) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_14;
|
||||
@@ -6598,11 +6608,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GIVEREF(__pyx_t_2);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
|
||||
__pyx_t_2 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__19);
|
||||
__Pyx_INCREF(__pyx_kp_u__17);
|
||||
__pyx_t_14 = (65535 > __pyx_t_14) ? 65535 : __pyx_t_14;
|
||||
__pyx_t_3 += 8;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__19);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__19);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__17);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__17);
|
||||
__pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_3, __pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
|
||||
@@ -6635,7 +6645,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__pyx_t_11 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_prices, __pyx_t_1) < 0) __PYX_ERR(0, 173, __pyx_L17_error)
|
||||
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_provider_token, __pyx_kp_u__20) < 0) __PYX_ERR(0, 173, __pyx_L17_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_provider_token, __pyx_kp_u__18) < 0) __PYX_ERR(0, 173, __pyx_L17_error)
|
||||
|
||||
__pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L17_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
@@ -6744,7 +6754,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_e, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L30_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_15 = __Pyx_PyUnicode_Concat(__pyx_kp_u__21, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 182, __pyx_L30_error)
|
||||
__pyx_t_15 = __Pyx_PyUnicode_Concat(__pyx_kp_u__19, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 182, __pyx_L30_error)
|
||||
__Pyx_GOTREF(__pyx_t_15);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -6781,7 +6791,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_11generator3(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_15);
|
||||
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_target_message, __pyx_t_15) < 0) __PYX_ERR(0, 184, __pyx_L30_error)
|
||||
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_text, __pyx_kp_u__22) < 0) __PYX_ERR(0, 184, __pyx_L30_error)
|
||||
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_text, __pyx_kp_u__20) < 0) __PYX_ERR(0, 184, __pyx_L30_error)
|
||||
|
||||
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_reply_markup, Py_None) < 0) __PYX_ERR(0, 184, __pyx_L30_error)
|
||||
|
||||
@@ -7066,7 +7076,7 @@ static PyObject *__pyx_pf_8handlers_8payments_9stars_pay_12process_enter_custom_
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_14generator4, __pyx_codeobj__23, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_14generator4, __pyx_codeobj__21, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -7142,7 +7152,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_14generator4(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 192, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_text, __pyx_kp_u__24) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_text, __pyx_kp_u__22) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_callback_data, __pyx_n_u_back_to_pay_stars) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 192, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
@@ -7182,7 +7192,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_14generator4(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target_message, __pyx_t_6) < 0) __PYX_ERR(0, 195, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_text, __pyx_kp_u__25) < 0) __PYX_ERR(0, 195, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_text, __pyx_kp_u__23) < 0) __PYX_ERR(0, 195, __pyx_L1_error)
|
||||
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_builder, __pyx_n_s_as_markup); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
@@ -7445,7 +7455,7 @@ static PyObject *__pyx_pf_8handlers_8payments_9stars_pay_15process_custom_amount
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_17generator5, __pyx_codeobj__26, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_custom_amount_input, __pyx_n_s_process_custom_amount_input, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_17generator5, __pyx_codeobj__24, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_custom_amount_input, __pyx_n_s_process_custom_amount_input, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -7567,11 +7577,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_6 = 0;
|
||||
__pyx_t_7 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__27);
|
||||
__Pyx_INCREF(__pyx_kp_u__25);
|
||||
__pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7;
|
||||
__pyx_t_6 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__27);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__27);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__25);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__25);
|
||||
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_RUB_TO_XTR); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 209, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_8);
|
||||
__pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 209, __pyx_L1_error)
|
||||
@@ -7582,11 +7592,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GIVEREF(__pyx_t_9);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_9);
|
||||
__pyx_t_9 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__28);
|
||||
__Pyx_INCREF(__pyx_kp_u__26);
|
||||
__pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7;
|
||||
__pyx_t_6 += 36;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__28);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__28);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__26);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__26);
|
||||
__pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 209, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_9);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -7820,7 +7830,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_text, __pyx_n_u__17) < 0) __PYX_ERR(0, 222, __pyx_L9_error)
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_text, __pyx_n_u__15) < 0) __PYX_ERR(0, 222, __pyx_L9_error)
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pay, Py_True) < 0) __PYX_ERR(0, 222, __pyx_L9_error)
|
||||
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 222, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_8);
|
||||
@@ -7898,11 +7908,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_6 = 0;
|
||||
__pyx_t_7 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__18);
|
||||
__Pyx_INCREF(__pyx_kp_u__16);
|
||||
__pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7;
|
||||
__pyx_t_6 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__18);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__18);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__16);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__16);
|
||||
__pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_7;
|
||||
@@ -7910,11 +7920,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GIVEREF(__pyx_t_3);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
|
||||
__pyx_t_3 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__19);
|
||||
__Pyx_INCREF(__pyx_kp_u__17);
|
||||
__pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7;
|
||||
__pyx_t_6 += 8;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__19);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__19);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__17);
|
||||
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__17);
|
||||
__pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -7925,11 +7935,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_6 = 0;
|
||||
__pyx_t_7 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__18);
|
||||
__Pyx_INCREF(__pyx_kp_u__16);
|
||||
__pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7;
|
||||
__pyx_t_6 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__18);
|
||||
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u__18);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__16);
|
||||
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u__16);
|
||||
__pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_7;
|
||||
@@ -7937,11 +7947,11 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_GIVEREF(__pyx_t_2);
|
||||
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
|
||||
__pyx_t_2 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__19);
|
||||
__Pyx_INCREF(__pyx_kp_u__17);
|
||||
__pyx_t_7 = (65535 > __pyx_t_7) ? 65535 : __pyx_t_7;
|
||||
__pyx_t_6 += 8;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__19);
|
||||
PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__19);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__17);
|
||||
PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__17);
|
||||
__pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
@@ -7974,7 +7984,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__pyx_t_8 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_prices, __pyx_t_3) < 0) __PYX_ERR(0, 228, __pyx_L9_error)
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_provider_token, __pyx_kp_u__20) < 0) __PYX_ERR(0, 228, __pyx_L9_error)
|
||||
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_provider_token, __pyx_kp_u__18) < 0) __PYX_ERR(0, 228, __pyx_L9_error)
|
||||
|
||||
__pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L9_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
@@ -8083,7 +8093,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_e, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L22_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__pyx_t_15 = __Pyx_PyUnicode_Concat(__pyx_kp_u__21, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 237, __pyx_L22_error)
|
||||
__pyx_t_15 = __Pyx_PyUnicode_Concat(__pyx_kp_u__19, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 237, __pyx_L22_error)
|
||||
__Pyx_GOTREF(__pyx_t_15);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -8128,7 +8138,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_kp_u__22};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_kp_u__20};
|
||||
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
|
||||
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
|
||||
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 238, __pyx_L22_error)
|
||||
@@ -8271,7 +8281,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_17generator5(__pyx_Coro
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_kp_u__29};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_kp_u__27};
|
||||
__pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
|
||||
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
|
||||
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 240, __pyx_L1_error)
|
||||
@@ -8444,7 +8454,7 @@ static PyObject *__pyx_pf_8handlers_8payments_9stars_pay_18on_pre_checkout_query
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_pre_checkout_query);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pre_checkout_query);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_20generator6, __pyx_codeobj__30, (PyObject *) __pyx_cur_scope, __pyx_n_s_on_pre_checkout_query, __pyx_n_s_on_pre_checkout_query, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_20generator6, __pyx_codeobj__28, (PyObject *) __pyx_cur_scope, __pyx_n_s_on_pre_checkout_query, __pyx_n_s_on_pre_checkout_query, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -8651,7 +8661,7 @@ static PyObject *__pyx_pf_8handlers_8payments_9stars_pay_21on_successful_payment
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_23generator7, __pyx_codeobj__31, (PyObject *) __pyx_cur_scope, __pyx_n_s_on_successful_payment, __pyx_n_s_on_successful_payment, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_9stars_pay_23generator7, __pyx_codeobj__29, (PyObject *) __pyx_cur_scope, __pyx_n_s_on_successful_payment, __pyx_n_s_on_successful_payment, __pyx_n_s_handlers_payments_stars_pay); if (unlikely(!gen)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -8753,7 +8763,7 @@ static PyObject *__pyx_gb_8handlers_8payments_9stars_pay_23generator7(__pyx_Coro
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_u__32};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_u__30};
|
||||
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
|
||||
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L4_error)
|
||||
@@ -10714,6 +10724,7 @@ static PyMethodDef __pyx_methods[] = {
|
||||
static int __Pyx_CreateStringTabAndInitStrings(void) {
|
||||
__Pyx_StringTabEntry __pyx_string_tab[] = {
|
||||
{&__pyx_kp_u_21U68SOLOBOT, __pyx_k_21U68SOLOBOT, sizeof(__pyx_k_21U68SOLOBOT), 0, 1, 0, 0},
|
||||
{&__pyx_n_s_AMOUNT_TEXT, __pyx_k_AMOUNT_TEXT, sizeof(__pyx_k_AMOUNT_TEXT), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_Any, __pyx_k_Any, sizeof(__pyx_k_Any), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_F, __pyx_k_F, sizeof(__pyx_k_F), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_FSMContext, __pyx_k_FSMContext, sizeof(__pyx_k_FSMContext), 0, 0, 1, 1},
|
||||
@@ -10731,25 +10742,24 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
|
||||
{&__pyx_n_s_StatesGroup, __pyx_k_StatesGroup, sizeof(__pyx_k_StatesGroup), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
|
||||
{&__pyx_n_u_XTR, __pyx_k_XTR, sizeof(__pyx_k_XTR), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 1, 0, 0},
|
||||
{&__pyx_n_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__16, __pyx_k__16, sizeof(__pyx_k__16), 0, 1, 0, 0},
|
||||
{&__pyx_n_u__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__22, __pyx_k__22, sizeof(__pyx_k__22), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__24, __pyx_k__24, sizeof(__pyx_k__24), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__23, __pyx_k__23, sizeof(__pyx_k__23), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__25, __pyx_k__25, sizeof(__pyx_k__25), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__26, __pyx_k__26, sizeof(__pyx_k__26), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__27, __pyx_k__27, sizeof(__pyx_k__27), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__28, __pyx_k__28, sizeof(__pyx_k__28), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__29, __pyx_k__29, sizeof(__pyx_k__29), 0, 1, 0, 0},
|
||||
{&__pyx_n_u__32, __pyx_k__32, sizeof(__pyx_k__32), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__33, __pyx_k__33, sizeof(__pyx_k__33), 0, 1, 0, 0},
|
||||
{&__pyx_n_s__43, __pyx_k__43, sizeof(__pyx_k__43), 0, 0, 1, 1},
|
||||
{&__pyx_n_u__30, __pyx_k__30, sizeof(__pyx_k__30), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__31, __pyx_k__31, sizeof(__pyx_k__31), 0, 1, 0, 0},
|
||||
{&__pyx_n_s__41, __pyx_k__41, sizeof(__pyx_k__41), 0, 0, 1, 1},
|
||||
{&__pyx_kp_u__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
|
||||
@@ -10902,56 +10912,52 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
|
||||
__Pyx_RefNannyDeclarations
|
||||
__Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
|
||||
|
||||
__pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u__9); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 123, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__11);
|
||||
__Pyx_GIVEREF(__pyx_tuple__11);
|
||||
__pyx_tuple__12 = PyTuple_Pack(2, __pyx_kp_u__11, __pyx_int_1); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__12);
|
||||
__Pyx_GIVEREF(__pyx_tuple__12);
|
||||
|
||||
__pyx_tuple__14 = PyTuple_Pack(2, __pyx_kp_u__13, __pyx_int_1); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__14);
|
||||
__Pyx_GIVEREF(__pyx_tuple__14);
|
||||
__pyx_tuple__32 = PyTuple_Pack(4, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session, __pyx_n_s_e); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 34, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__32);
|
||||
__Pyx_GIVEREF(__pyx_tuple__32);
|
||||
__pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_back_to_pay_stars_after_invoice, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 34, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__34 = PyTuple_Pack(4, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session, __pyx_n_s_e); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 34, __pyx_L1_error)
|
||||
__pyx_tuple__33 = PyTuple_Pack(3, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 46, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__33);
|
||||
__Pyx_GIVEREF(__pyx_tuple__33);
|
||||
__pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_back_to_pay_stars, 46, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 46, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__34 = PyTuple_Pack(10, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session, __pyx_n_s_expected_hash, __pyx_n_s_tg_id, __pyx_n_s_builder, __pyx_n_s_i, __pyx_n_s_key_count, __pyx_n_s_exists, __pyx_n_s_e); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 52, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__34);
|
||||
__Pyx_GIVEREF(__pyx_tuple__34);
|
||||
__pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_back_to_pay_stars_after_invoice, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 34, __pyx_L1_error)
|
||||
__pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_callback_pay_stars, 52, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 52, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__35 = PyTuple_Pack(3, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 46, __pyx_L1_error)
|
||||
__pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_stars_amount); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__35);
|
||||
__Pyx_GIVEREF(__pyx_tuple__35);
|
||||
__pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_back_to_pay_stars, 46, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 46, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__36 = PyTuple_Pack(10, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session, __pyx_n_s_expected_hash, __pyx_n_s_tg_id, __pyx_n_s_builder, __pyx_n_s_i, __pyx_n_s_key_count, __pyx_n_s_exists, __pyx_n_s_e); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 52, __pyx_L1_error)
|
||||
__pyx_tuple__36 = PyTuple_Pack(7, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_data, __pyx_n_s_amount_str, __pyx_n_s_amount, __pyx_n_s_builder, __pyx_n_s_e); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__36);
|
||||
__Pyx_GIVEREF(__pyx_tuple__36);
|
||||
__pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_callback_pay_stars, 52, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 52, __pyx_L1_error)
|
||||
__pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_amount_selection, 133, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_u_stars_amount); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_tuple__37 = PyTuple_Pack(3, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_builder); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__37);
|
||||
__Pyx_GIVEREF(__pyx_tuple__37);
|
||||
__pyx_tuple__38 = PyTuple_Pack(7, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_data, __pyx_n_s_amount_str, __pyx_n_s_amount, __pyx_n_s_builder, __pyx_n_s_e); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_enter_custom_amount, 189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__38 = PyTuple_Pack(5, __pyx_n_s_message, __pyx_n_s_state, __pyx_n_s_amount, __pyx_n_s_builder, __pyx_n_s_e); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__38);
|
||||
__Pyx_GIVEREF(__pyx_tuple__38);
|
||||
__pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_amount_selection, 133, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_custom_amount_input, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__39 = PyTuple_Pack(3, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_builder); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__pyx_tuple__39 = PyTuple_Pack(1, __pyx_n_s_pre_checkout_query); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__39);
|
||||
__Pyx_GIVEREF(__pyx_tuple__39);
|
||||
__pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_enter_custom_amount, 189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_on_pre_checkout_query, 244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__40 = PyTuple_Pack(5, __pyx_n_s_message, __pyx_n_s_state, __pyx_n_s_amount, __pyx_n_s_builder, __pyx_n_s_e); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__pyx_tuple__40 = PyTuple_Pack(4, __pyx_n_s_message, __pyx_n_s_user_id, __pyx_n_s_amount, __pyx_n_s_e); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__40);
|
||||
__Pyx_GIVEREF(__pyx_tuple__40);
|
||||
__pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_process_custom_amount_input, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__41 = PyTuple_Pack(1, __pyx_n_s_pre_checkout_query); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__41);
|
||||
__Pyx_GIVEREF(__pyx_tuple__41);
|
||||
__pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_on_pre_checkout_query, 244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__42 = PyTuple_Pack(4, __pyx_n_s_message, __pyx_n_s_user_id, __pyx_n_s_amount, __pyx_n_s_e); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__42);
|
||||
__Pyx_GIVEREF(__pyx_tuple__42);
|
||||
__pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_on_successful_payment, 249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_stars_pay_py, __pyx_n_s_on_successful_payment, 249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return 0;
|
||||
__pyx_L1_error:;
|
||||
@@ -11687,11 +11693,14 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
|
||||
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
|
||||
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_INCREF(__pyx_n_s_PAYMENT_OPTIONS);
|
||||
__Pyx_GIVEREF(__pyx_n_s_PAYMENT_OPTIONS);
|
||||
if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PAYMENT_OPTIONS)) __PYX_ERR(0, 19, __pyx_L1_error);
|
||||
__Pyx_INCREF(__pyx_n_s_AMOUNT_TEXT);
|
||||
__Pyx_GIVEREF(__pyx_n_s_AMOUNT_TEXT);
|
||||
if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_AMOUNT_TEXT)) __PYX_ERR(0, 19, __pyx_L1_error);
|
||||
__pyx_t_3 = __Pyx_Import(__pyx_n_s_handlers_texts, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -11699,6 +11708,10 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
if (PyDict_SetItem(__pyx_d, __pyx_n_s_PAYMENT_OPTIONS, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_AMOUNT_TEXT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
if (PyDict_SetItem(__pyx_d, __pyx_n_s_AMOUNT_TEXT, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
|
||||
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20, __pyx_L1_error)
|
||||
@@ -11953,7 +11966,7 @@ if (!__Pyx_RefNanny) {
|
||||
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_startswith); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
||||
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
@@ -11964,7 +11977,7 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_callback_query, __pyx_kp_s_types_CallbackQuery) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_state, __pyx_n_s_FSMContext) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_10process_amount_selection, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_amount_selection, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_10process_amount_selection, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_amount_selection, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 133, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
||||
@@ -11995,7 +12008,7 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_callback_query, __pyx_kp_s_types_CallbackQuery) < 0) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_state, __pyx_n_s_FSMContext) < 0) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_13process_enter_custom_amount, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_enter_custom_amount, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_13process_enter_custom_amount, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_enter_custom_amount, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__21)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 189, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
||||
@@ -12024,7 +12037,7 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_message, __pyx_kp_s_types_Message) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_state, __pyx_n_s_FSMContext) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_16process_custom_amount_input, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_custom_amount_input, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_16process_custom_amount_input, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_custom_amount_input, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -12046,7 +12059,7 @@ if (!__Pyx_RefNanny) {
|
||||
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_pre_checkout_query, __pyx_n_s_PreCheckoutQuery) < 0) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_19on_pre_checkout_query, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_on_pre_checkout_query, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_19on_pre_checkout_query, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_on_pre_checkout_query, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_4);
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
@@ -12074,7 +12087,7 @@ if (!__Pyx_RefNanny) {
|
||||
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_message, __pyx_kp_s_types_Message) < 0) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_22on_successful_payment, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_on_successful_payment, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_9stars_pay_22on_successful_payment, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_on_successful_payment, NULL, __pyx_n_s_handlers_payments_stars_pay, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -16228,7 +16241,7 @@ bad:
|
||||
if (unlikely(!module_name_str)) { goto modbad; }
|
||||
module_name = PyUnicode_FromString(module_name_str);
|
||||
if (unlikely(!module_name)) { goto modbad; }
|
||||
module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__33);
|
||||
module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__31);
|
||||
if (unlikely(!module_dot)) { goto modbad; }
|
||||
full_name = PyUnicode_Concat(module_dot, name);
|
||||
if (unlikely(!full_name)) { goto modbad; }
|
||||
@@ -18079,7 +18092,7 @@ __Pyx_PyType_GetName(PyTypeObject* tp)
|
||||
if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
|
||||
PyErr_Clear();
|
||||
Py_XDECREF(name);
|
||||
name = __Pyx_NewRef(__pyx_n_s__43);
|
||||
name = __Pyx_NewRef(__pyx_n_s__41);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
Binary file not shown.
+2106
-1747
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+174
-164
@@ -2596,23 +2596,22 @@ static const char __pyx_k_i[] = "i";
|
||||
static const char __pyx_k__2[] = "\320\235\320\260\321\200\321\203\321\210\320\265\320\275\320\260 \321\206\320\265\320\273\320\276\321\201\321\202\320\275\320\276\321\201\321\202\321\214 \321\204\320\260\320\271\320\273\320\276\320\262! \320\236\320\261\320\275\320\276\320\262\320\270\321\202\320\265\321\201\321\214 \321\201 \320\277\320\276\320\273\320\275\320\276\320\271 \320\267\320\260\320\274\320\265\320\275\320\276\320\271 \320\277\320\260\320\277\320\272\320\270!";
|
||||
static const char __pyx_k__3[] = "\360\237\222\260 \320\222\320\262\320\265\321\201\321\202\320\270 \321\201\320\262\320\276\321\216 \321\201\321\203\320\274\320\274\321\203";
|
||||
static const char __pyx_k__4[] = "\342\254\205\357\270\217 \320\235\320\260\320\267\320\260\320\264";
|
||||
static const char __pyx_k__5[] = "\320\222\321\213\320\261\320\265\321\200\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217:";
|
||||
static const char __pyx_k__7[] = "|";
|
||||
static const char __pyx_k__9[] = "\320\237\320\276\320\277\320\276\320\273\320\275\320\270\321\202\321\214";
|
||||
static const char __pyx_k__6[] = "|";
|
||||
static const char __pyx_k__8[] = "\320\237\320\276\320\277\320\276\320\273\320\275\320\270\321\202\321\214";
|
||||
static const char __pyx_k__9[] = "\320\222\321\213 \320\262\321\213\320\261\321\200\320\260\320\273\320\270 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265 \320\275\320\260 ";
|
||||
static const char __pyx_k_gc[] = "gc";
|
||||
static const char __pyx_k_id[] = "id";
|
||||
static const char __pyx_k_Any[] = "Any";
|
||||
static const char __pyx_k__10[] = "\320\222\321\213 \320\262\321\213\320\261\321\200\320\260\320\273\320\270 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265 \320\275\320\260 ";
|
||||
static const char __pyx_k__11[] = " \321\200\321\203\320\261\320\273\320\265\320\271.";
|
||||
static const char __pyx_k__13[] = "&";
|
||||
static const char __pyx_k__14[] = "\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260 \321\205\321\215\321\210\320\260 \320\275\320\265 \320\277\321\200\320\276\320\271\320\264\320\265\320\275\320\260";
|
||||
static const char __pyx_k__16[] = "\360\237\224\231 \320\235\320\260\320\267\320\260\320\264";
|
||||
static const char __pyx_k__17[] = "\320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.";
|
||||
static const char __pyx_k__19[] = "\320\241\321\203\320\274\320\274\320\260 \320\264\320\276\320\273\320\266\320\275\320\260 \320\261\321\213\321\202\321\214 \320\261\320\276\320\273\321\214\321\210\320\265 \320\275\321\203\320\273\321\217. \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__20[] = "\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\260\321\217 \321\201\321\203\320\274\320\274\320\260. \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__21[] = "*";
|
||||
static const char __pyx_k__22[] = ".";
|
||||
static const char __pyx_k__29[] = "?";
|
||||
static const char __pyx_k__10[] = " \321\200\321\203\320\261\320\273\320\265\320\271.";
|
||||
static const char __pyx_k__12[] = "&";
|
||||
static const char __pyx_k__13[] = "\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260 \321\205\321\215\321\210\320\260 \320\275\320\265 \320\277\321\200\320\276\320\271\320\264\320\265\320\275\320\260";
|
||||
static const char __pyx_k__15[] = "\360\237\224\231 \320\235\320\260\320\267\320\260\320\264";
|
||||
static const char __pyx_k__16[] = "\320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\277\320\276\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.";
|
||||
static const char __pyx_k__18[] = "\320\241\321\203\320\274\320\274\320\260 \320\264\320\276\320\273\320\266\320\275\320\260 \320\261\321\213\321\202\321\214 \320\261\320\276\320\273\321\214\321\210\320\265 \320\275\321\203\320\273\321\217. \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__19[] = "\320\235\320\265\320\272\320\276\321\200\321\200\320\265\320\272\321\202\320\275\320\260\321\217 \321\201\321\203\320\274\320\274\320\260. \320\237\320\276\320\266\320\260\320\273\321\203\320\271\321\201\321\202\320\260, \320\262\320\262\320\265\320\264\320\270\321\202\320\265 \321\201\321\203\320\274\320\274\321\203 \320\265\321\211\320\265 \321\200\320\260\320\267:";
|
||||
static const char __pyx_k__20[] = "*";
|
||||
static const char __pyx_k__21[] = ".";
|
||||
static const char __pyx_k__28[] = "?";
|
||||
static const char __pyx_k_doc[] = "__doc__";
|
||||
static const char __pyx_k_get[] = "get";
|
||||
static const char __pyx_k_pay[] = "pay";
|
||||
@@ -2693,6 +2692,7 @@ static const char __pyx_k_account_id[] = "account_id";
|
||||
static const char __pyx_k_amount_str[] = "amount_str";
|
||||
static const char __pyx_k_startswith[] = "startswith";
|
||||
static const char __pyx_k_yoomoney_2[] = "yoomoney";
|
||||
static const char __pyx_k_AMOUNT_TEXT[] = "AMOUNT_TEXT";
|
||||
static const char __pyx_k_StatesGroup[] = "StatesGroup";
|
||||
static const char __pyx_k_YOOMONEY_ID[] = "YOOMONEY_ID";
|
||||
static const char __pyx_k_add_payment[] = "add_payment";
|
||||
@@ -2815,6 +2815,7 @@ typedef struct {
|
||||
PyTypeObject *__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_2_yoomoney_webhook;
|
||||
PyTypeObject *__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_3_process_enter_custom_amount;
|
||||
PyTypeObject *__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input;
|
||||
PyObject *__pyx_n_s_AMOUNT_TEXT;
|
||||
PyObject *__pyx_kp_u_Account_ID;
|
||||
PyObject *__pyx_n_s_Any;
|
||||
PyObject *__pyx_n_s_F;
|
||||
@@ -2837,22 +2838,21 @@ typedef struct {
|
||||
PyObject *__pyx_n_s_YOOMONEY_ID;
|
||||
PyObject *__pyx_n_s_YOOMONEY_SECRET_KEY;
|
||||
PyObject *__pyx_kp_u__10;
|
||||
PyObject *__pyx_kp_u__11;
|
||||
PyObject *__pyx_kp_u__12;
|
||||
PyObject *__pyx_kp_u__13;
|
||||
PyObject *__pyx_kp_u__14;
|
||||
PyObject *__pyx_kp_u__15;
|
||||
PyObject *__pyx_kp_u__16;
|
||||
PyObject *__pyx_kp_u__17;
|
||||
PyObject *__pyx_kp_u__18;
|
||||
PyObject *__pyx_kp_u__19;
|
||||
PyObject *__pyx_kp_u__2;
|
||||
PyObject *__pyx_kp_u__20;
|
||||
PyObject *__pyx_n_s__21;
|
||||
PyObject *__pyx_kp_u__22;
|
||||
PyObject *__pyx_n_s__29;
|
||||
PyObject *__pyx_n_s__20;
|
||||
PyObject *__pyx_kp_u__21;
|
||||
PyObject *__pyx_n_s__28;
|
||||
PyObject *__pyx_kp_u__3;
|
||||
PyObject *__pyx_kp_u__4;
|
||||
PyObject *__pyx_kp_u__5;
|
||||
PyObject *__pyx_kp_u__7;
|
||||
PyObject *__pyx_n_u__9;
|
||||
PyObject *__pyx_kp_u__6;
|
||||
PyObject *__pyx_n_u__8;
|
||||
PyObject *__pyx_kp_u__9;
|
||||
PyObject *__pyx_n_s_account_id;
|
||||
PyObject *__pyx_n_s_add_connection;
|
||||
PyObject *__pyx_n_s_add_payment;
|
||||
@@ -3001,17 +3001,17 @@ typedef struct {
|
||||
PyObject *__pyx_int_200;
|
||||
PyObject *__pyx_int_400;
|
||||
PyObject *__pyx_codeobj_;
|
||||
PyObject *__pyx_tuple__8;
|
||||
PyObject *__pyx_tuple__7;
|
||||
PyObject *__pyx_tuple__22;
|
||||
PyObject *__pyx_tuple__23;
|
||||
PyObject *__pyx_tuple__24;
|
||||
PyObject *__pyx_tuple__25;
|
||||
PyObject *__pyx_tuple__26;
|
||||
PyObject *__pyx_tuple__27;
|
||||
PyObject *__pyx_tuple__28;
|
||||
PyObject *__pyx_codeobj__6;
|
||||
PyObject *__pyx_codeobj__12;
|
||||
PyObject *__pyx_codeobj__15;
|
||||
PyObject *__pyx_codeobj__18;
|
||||
PyObject *__pyx_codeobj__5;
|
||||
PyObject *__pyx_codeobj__11;
|
||||
PyObject *__pyx_codeobj__14;
|
||||
PyObject *__pyx_codeobj__17;
|
||||
} __pyx_mstate;
|
||||
|
||||
#if CYTHON_USE_MODULE_STATE
|
||||
@@ -3064,6 +3064,7 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_type_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_3_process_enter_custom_amount);
|
||||
Py_CLEAR(clear_module_state->__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input);
|
||||
Py_CLEAR(clear_module_state->__pyx_type_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_AMOUNT_TEXT);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u_Account_ID);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_Any);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_F);
|
||||
@@ -3086,22 +3087,21 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_YOOMONEY_ID);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_YOOMONEY_SECRET_KEY);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__10);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__11);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__12);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__13);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__14);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__15);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__16);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__17);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__18);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__19);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__2);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__20);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s__21);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__22);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s__29);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s__20);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__21);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s__28);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__3);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__4);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__5);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__7);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u__9);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__6);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_u__8);
|
||||
Py_CLEAR(clear_module_state->__pyx_kp_u__9);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_account_id);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_add_connection);
|
||||
Py_CLEAR(clear_module_state->__pyx_n_s_add_payment);
|
||||
@@ -3250,17 +3250,17 @@ static int __pyx_m_clear(PyObject *m) {
|
||||
Py_CLEAR(clear_module_state->__pyx_int_200);
|
||||
Py_CLEAR(clear_module_state->__pyx_int_400);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj_);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__8);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__7);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__22);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__23);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__24);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__25);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__26);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__27);
|
||||
Py_CLEAR(clear_module_state->__pyx_tuple__28);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__6);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__12);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__15);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__18);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__5);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__11);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__14);
|
||||
Py_CLEAR(clear_module_state->__pyx_codeobj__17);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -3291,6 +3291,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_type_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_3_process_enter_custom_amount);
|
||||
Py_VISIT(traverse_module_state->__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input);
|
||||
Py_VISIT(traverse_module_state->__pyx_type_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_AMOUNT_TEXT);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u_Account_ID);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_Any);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_F);
|
||||
@@ -3313,22 +3314,21 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_YOOMONEY_ID);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_YOOMONEY_SECRET_KEY);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__10);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__11);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__12);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__13);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__14);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__15);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__16);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__17);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__18);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__19);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__2);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__20);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s__21);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__22);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s__29);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s__20);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__21);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s__28);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__3);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__4);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__5);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__7);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u__9);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__6);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_u__8);
|
||||
Py_VISIT(traverse_module_state->__pyx_kp_u__9);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_account_id);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_add_connection);
|
||||
Py_VISIT(traverse_module_state->__pyx_n_s_add_payment);
|
||||
@@ -3477,17 +3477,17 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
Py_VISIT(traverse_module_state->__pyx_int_200);
|
||||
Py_VISIT(traverse_module_state->__pyx_int_400);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj_);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__8);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__7);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__22);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__23);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__24);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__25);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__26);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__27);
|
||||
Py_VISIT(traverse_module_state->__pyx_tuple__28);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__6);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__12);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__15);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__18);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__5);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__11);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__14);
|
||||
Py_VISIT(traverse_module_state->__pyx_codeobj__17);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -3528,6 +3528,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_2_yoomoney_webhook __pyx_mstate_global->__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_2_yoomoney_webhook
|
||||
#define __pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_3_process_enter_custom_amount __pyx_mstate_global->__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_3_process_enter_custom_amount
|
||||
#define __pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input __pyx_mstate_global->__pyx_ptype_8handlers_8payments_12yoomoney_pay___pyx_scope_struct_4_process_custom_amount_input
|
||||
#define __pyx_n_s_AMOUNT_TEXT __pyx_mstate_global->__pyx_n_s_AMOUNT_TEXT
|
||||
#define __pyx_kp_u_Account_ID __pyx_mstate_global->__pyx_kp_u_Account_ID
|
||||
#define __pyx_n_s_Any __pyx_mstate_global->__pyx_n_s_Any
|
||||
#define __pyx_n_s_F __pyx_mstate_global->__pyx_n_s_F
|
||||
@@ -3550,22 +3551,21 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_n_s_YOOMONEY_ID __pyx_mstate_global->__pyx_n_s_YOOMONEY_ID
|
||||
#define __pyx_n_s_YOOMONEY_SECRET_KEY __pyx_mstate_global->__pyx_n_s_YOOMONEY_SECRET_KEY
|
||||
#define __pyx_kp_u__10 __pyx_mstate_global->__pyx_kp_u__10
|
||||
#define __pyx_kp_u__11 __pyx_mstate_global->__pyx_kp_u__11
|
||||
#define __pyx_kp_u__12 __pyx_mstate_global->__pyx_kp_u__12
|
||||
#define __pyx_kp_u__13 __pyx_mstate_global->__pyx_kp_u__13
|
||||
#define __pyx_kp_u__14 __pyx_mstate_global->__pyx_kp_u__14
|
||||
#define __pyx_kp_u__15 __pyx_mstate_global->__pyx_kp_u__15
|
||||
#define __pyx_kp_u__16 __pyx_mstate_global->__pyx_kp_u__16
|
||||
#define __pyx_kp_u__17 __pyx_mstate_global->__pyx_kp_u__17
|
||||
#define __pyx_kp_u__18 __pyx_mstate_global->__pyx_kp_u__18
|
||||
#define __pyx_kp_u__19 __pyx_mstate_global->__pyx_kp_u__19
|
||||
#define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
|
||||
#define __pyx_kp_u__20 __pyx_mstate_global->__pyx_kp_u__20
|
||||
#define __pyx_n_s__21 __pyx_mstate_global->__pyx_n_s__21
|
||||
#define __pyx_kp_u__22 __pyx_mstate_global->__pyx_kp_u__22
|
||||
#define __pyx_n_s__29 __pyx_mstate_global->__pyx_n_s__29
|
||||
#define __pyx_n_s__20 __pyx_mstate_global->__pyx_n_s__20
|
||||
#define __pyx_kp_u__21 __pyx_mstate_global->__pyx_kp_u__21
|
||||
#define __pyx_n_s__28 __pyx_mstate_global->__pyx_n_s__28
|
||||
#define __pyx_kp_u__3 __pyx_mstate_global->__pyx_kp_u__3
|
||||
#define __pyx_kp_u__4 __pyx_mstate_global->__pyx_kp_u__4
|
||||
#define __pyx_kp_u__5 __pyx_mstate_global->__pyx_kp_u__5
|
||||
#define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7
|
||||
#define __pyx_n_u__9 __pyx_mstate_global->__pyx_n_u__9
|
||||
#define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6
|
||||
#define __pyx_n_u__8 __pyx_mstate_global->__pyx_n_u__8
|
||||
#define __pyx_kp_u__9 __pyx_mstate_global->__pyx_kp_u__9
|
||||
#define __pyx_n_s_account_id __pyx_mstate_global->__pyx_n_s_account_id
|
||||
#define __pyx_n_s_add_connection __pyx_mstate_global->__pyx_n_s_add_connection
|
||||
#define __pyx_n_s_add_payment __pyx_mstate_global->__pyx_n_s_add_payment
|
||||
@@ -3714,17 +3714,17 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
||||
#define __pyx_int_200 __pyx_mstate_global->__pyx_int_200
|
||||
#define __pyx_int_400 __pyx_mstate_global->__pyx_int_400
|
||||
#define __pyx_codeobj_ __pyx_mstate_global->__pyx_codeobj_
|
||||
#define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8
|
||||
#define __pyx_tuple__7 __pyx_mstate_global->__pyx_tuple__7
|
||||
#define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22
|
||||
#define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23
|
||||
#define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
|
||||
#define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25
|
||||
#define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26
|
||||
#define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27
|
||||
#define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28
|
||||
#define __pyx_codeobj__6 __pyx_mstate_global->__pyx_codeobj__6
|
||||
#define __pyx_codeobj__12 __pyx_mstate_global->__pyx_codeobj__12
|
||||
#define __pyx_codeobj__15 __pyx_mstate_global->__pyx_codeobj__15
|
||||
#define __pyx_codeobj__18 __pyx_mstate_global->__pyx_codeobj__18
|
||||
#define __pyx_codeobj__5 __pyx_mstate_global->__pyx_codeobj__5
|
||||
#define __pyx_codeobj__11 __pyx_mstate_global->__pyx_codeobj__11
|
||||
#define __pyx_codeobj__14 __pyx_mstate_global->__pyx_codeobj__14
|
||||
#define __pyx_codeobj__17 __pyx_mstate_global->__pyx_codeobj__17
|
||||
/* #### Code section: module_code ### */
|
||||
static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
|
||||
|
||||
@@ -4572,7 +4572,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_2generator(__pyx_Co
|
||||
|
||||
__pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 95, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_text, __pyx_kp_u__5) < 0) __PYX_ERR(0, 95, __pyx_L1_error)
|
||||
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_AMOUNT_TEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 95, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_text, __pyx_t_4) < 0) __PYX_ERR(0, 95, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
|
||||
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_builder, __pyx_n_s_as_markup); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 96, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_11);
|
||||
@@ -4840,7 +4843,7 @@ static PyObject *__pyx_pf_8handlers_8payments_12yoomoney_pay_3process_amount_sel
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_5generator1, __pyx_codeobj__6, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_amount_selection, __pyx_n_s_process_amount_selection, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_5generator1, __pyx_codeobj__5, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_amount_selection, __pyx_n_s_process_amount_selection, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -4896,7 +4899,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_5generator1(__pyx_C
|
||||
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
|
||||
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
|
||||
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__Pyx_GIVEREF(__pyx_t_1);
|
||||
@@ -5126,7 +5129,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_5generator1(__pyx_C
|
||||
__Pyx_GOTREF(__pyx_t_10);
|
||||
__pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 130, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_9);
|
||||
if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_text, __pyx_n_u__9) < 0) __PYX_ERR(0, 130, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_text, __pyx_n_u__8) < 0) __PYX_ERR(0, 130, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_url, __pyx_cur_scope->__pyx_v_payment_url) < 0) __PYX_ERR(0, 130, __pyx_L1_error)
|
||||
__pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 130, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_13);
|
||||
@@ -5191,11 +5194,11 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_5generator1(__pyx_C
|
||||
__Pyx_GOTREF(__pyx_t_10);
|
||||
__pyx_t_3 = 0;
|
||||
__pyx_t_12 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__10);
|
||||
__Pyx_INCREF(__pyx_kp_u__9);
|
||||
__pyx_t_12 = (65535 > __pyx_t_12) ? 65535 : __pyx_t_12;
|
||||
__pyx_t_3 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__10);
|
||||
PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_kp_u__10);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__9);
|
||||
PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_kp_u__9);
|
||||
__pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_9);
|
||||
__pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) : __pyx_t_12;
|
||||
@@ -5203,11 +5206,11 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_5generator1(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_9);
|
||||
PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
|
||||
__pyx_t_9 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__11);
|
||||
__Pyx_INCREF(__pyx_kp_u__10);
|
||||
__pyx_t_12 = (65535 > __pyx_t_12) ? 65535 : __pyx_t_12;
|
||||
__pyx_t_3 += 8;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__11);
|
||||
PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_kp_u__11);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__10);
|
||||
PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_kp_u__10);
|
||||
__pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_10, 3, __pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 137, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_9);
|
||||
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
|
||||
@@ -5384,7 +5387,7 @@ static PyObject *__pyx_pf_8handlers_8payments_12yoomoney_pay_6yoomoney_webhook(C
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2, __pyx_codeobj__12, (PyObject *) __pyx_cur_scope, __pyx_n_s_yoomoney_webhook, __pyx_n_s_yoomoney_webhook, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2, __pyx_codeobj__11, (PyObject *) __pyx_cur_scope, __pyx_n_s_yoomoney_webhook, __pyx_n_s_yoomoney_webhook, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -5654,10 +5657,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_5);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
|
||||
__pyx_t_5 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__12);
|
||||
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_data, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -5690,10 +5693,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_3);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_3);
|
||||
__pyx_t_3 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__12);
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_data, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -5726,10 +5729,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_5);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5);
|
||||
__pyx_t_5 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u__12);
|
||||
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_data, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -5762,10 +5765,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_3);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_3);
|
||||
__pyx_t_3 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u__12);
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_data, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -5798,10 +5801,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_5);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5);
|
||||
__pyx_t_5 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u__12);
|
||||
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_data, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -5834,10 +5837,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_3);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_3);
|
||||
__pyx_t_3 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u__12);
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_data, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__pyx_t_2 = NULL;
|
||||
@@ -5870,10 +5873,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_5);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 12, __pyx_t_5);
|
||||
__pyx_t_5 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 13, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 13, __pyx_kp_u__12);
|
||||
__pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_notification_secret, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_7;
|
||||
@@ -5881,10 +5884,10 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
__Pyx_GIVEREF(__pyx_t_5);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 14, __pyx_t_5);
|
||||
__pyx_t_5 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__13);
|
||||
__Pyx_INCREF(__pyx_kp_u__12);
|
||||
__pyx_t_6 += 1;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__13);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 15, __pyx_kp_u__13);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__12);
|
||||
PyTuple_SET_ITEM(__pyx_t_1, 15, __pyx_kp_u__12);
|
||||
__pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_user_id_str, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 152, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_7;
|
||||
@@ -5983,7 +5986,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_8generator2(__pyx_C
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u__14};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u__13};
|
||||
__pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
|
||||
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 157, __pyx_L1_error)
|
||||
@@ -6617,7 +6620,7 @@ static PyObject *__pyx_pf_8handlers_8payments_12yoomoney_pay_9process_enter_cust
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_11generator3, __pyx_codeobj__15, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_11generator3, __pyx_codeobj__14, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_process_enter_custom_amount, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -6694,7 +6697,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_11generator3(__pyx_
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 179, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_text, __pyx_kp_u__16) < 0) __PYX_ERR(0, 179, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_text, __pyx_kp_u__15) < 0) __PYX_ERR(0, 179, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_callback_data, __pyx_n_u_pay_yoomoney) < 0) __PYX_ERR(0, 179, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 179, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
@@ -6739,7 +6742,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_11generator3(__pyx_
|
||||
|
||||
__pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_text, __pyx_kp_u__17) < 0) __PYX_ERR(0, 183, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_text, __pyx_kp_u__16) < 0) __PYX_ERR(0, 183, __pyx_L1_error)
|
||||
|
||||
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_builder, __pyx_n_s_as_markup); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 184, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
@@ -7004,7 +7007,7 @@ static PyObject *__pyx_pf_8handlers_8payments_12yoomoney_pay_12process_custom_am
|
||||
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
|
||||
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
|
||||
{
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4, __pyx_codeobj__18, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_custom_amount_input, __pyx_n_s_process_custom_amount_input, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4, __pyx_codeobj__17, (PyObject *) __pyx_cur_scope, __pyx_n_s_process_custom_amount_input, __pyx_n_s_process_custom_amount_input, __pyx_n_s_handlers_payments_yoomoney_pay); if (unlikely(!gen)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_cur_scope);
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return (PyObject *) gen;
|
||||
@@ -7115,7 +7118,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4(__pyx_
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u__19};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u__18};
|
||||
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
|
||||
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 196, __pyx_L1_error)
|
||||
@@ -7298,7 +7301,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4(__pyx_
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
__pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 212, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_text, __pyx_n_u__9) < 0) __PYX_ERR(0, 212, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_text, __pyx_n_u__8) < 0) __PYX_ERR(0, 212, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_url, __pyx_cur_scope->__pyx_v_payment_url) < 0) __PYX_ERR(0, 212, __pyx_L1_error)
|
||||
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 212, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_9);
|
||||
@@ -7360,11 +7363,11 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4(__pyx_
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
__pyx_t_7 = 0;
|
||||
__pyx_t_8 = 127;
|
||||
__Pyx_INCREF(__pyx_kp_u__10);
|
||||
__Pyx_INCREF(__pyx_kp_u__9);
|
||||
__pyx_t_8 = (65535 > __pyx_t_8) ? 65535 : __pyx_t_8;
|
||||
__pyx_t_7 += 25;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__10);
|
||||
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u__10);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__9);
|
||||
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u__9);
|
||||
__pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_amount, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8;
|
||||
@@ -7372,11 +7375,11 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4(__pyx_
|
||||
__Pyx_GIVEREF(__pyx_t_3);
|
||||
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
|
||||
__pyx_t_3 = 0;
|
||||
__Pyx_INCREF(__pyx_kp_u__11);
|
||||
__Pyx_INCREF(__pyx_kp_u__10);
|
||||
__pyx_t_8 = (65535 > __pyx_t_8) ? 65535 : __pyx_t_8;
|
||||
__pyx_t_7 += 8;
|
||||
__Pyx_GIVEREF(__pyx_kp_u__11);
|
||||
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u__11);
|
||||
__Pyx_GIVEREF(__pyx_kp_u__10);
|
||||
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u__10);
|
||||
__pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
@@ -7431,7 +7434,7 @@ static PyObject *__pyx_gb_8handlers_8payments_12yoomoney_pay_14generator4(__pyx_
|
||||
}
|
||||
#endif
|
||||
{
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_kp_u__20};
|
||||
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_kp_u__19};
|
||||
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
|
||||
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
|
||||
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error)
|
||||
@@ -8453,6 +8456,7 @@ static PyMethodDef __pyx_methods[] = {
|
||||
|
||||
static int __Pyx_CreateStringTabAndInitStrings(void) {
|
||||
__Pyx_StringTabEntry __pyx_string_tab[] = {
|
||||
{&__pyx_n_s_AMOUNT_TEXT, __pyx_k_AMOUNT_TEXT, sizeof(__pyx_k_AMOUNT_TEXT), 0, 0, 1, 1},
|
||||
{&__pyx_kp_u_Account_ID, __pyx_k_Account_ID, sizeof(__pyx_k_Account_ID), 0, 1, 0, 0},
|
||||
{&__pyx_n_s_Any, __pyx_k_Any, sizeof(__pyx_k_Any), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_F, __pyx_k_F, sizeof(__pyx_k_F), 0, 0, 1, 1},
|
||||
@@ -8475,22 +8479,21 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
|
||||
{&__pyx_n_s_YOOMONEY_ID, __pyx_k_YOOMONEY_ID, sizeof(__pyx_k_YOOMONEY_ID), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_YOOMONEY_SECRET_KEY, __pyx_k_YOOMONEY_SECRET_KEY, sizeof(__pyx_k_YOOMONEY_SECRET_KEY), 0, 0, 1, 1},
|
||||
{&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__16, __pyx_k__16, sizeof(__pyx_k__16), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 1, 0, 0},
|
||||
{&__pyx_n_s__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 0, 1, 1},
|
||||
{&__pyx_kp_u__22, __pyx_k__22, sizeof(__pyx_k__22), 0, 1, 0, 0},
|
||||
{&__pyx_n_s__29, __pyx_k__29, sizeof(__pyx_k__29), 0, 0, 1, 1},
|
||||
{&__pyx_n_s__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 0, 1, 1},
|
||||
{&__pyx_kp_u__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
|
||||
{&__pyx_n_s__28, __pyx_k__28, sizeof(__pyx_k__28), 0, 0, 1, 1},
|
||||
{&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 1, 0, 0},
|
||||
{&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
|
||||
{&__pyx_n_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
|
||||
{&__pyx_n_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 1},
|
||||
{&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0},
|
||||
{&__pyx_n_s_account_id, __pyx_k_account_id, sizeof(__pyx_k_account_id), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_add_connection, __pyx_k_add_connection, sizeof(__pyx_k_add_connection), 0, 0, 1, 1},
|
||||
{&__pyx_n_s_add_payment, __pyx_k_add_payment, sizeof(__pyx_k_add_payment), 0, 0, 1, 1},
|
||||
@@ -8650,37 +8653,37 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
|
||||
__Pyx_RefNannyDeclarations
|
||||
__Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
|
||||
|
||||
__pyx_tuple__8 = PyTuple_Pack(2, __pyx_kp_u__7, __pyx_int_1); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 108, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__8);
|
||||
__Pyx_GIVEREF(__pyx_tuple__8);
|
||||
__pyx_tuple__7 = PyTuple_Pack(2, __pyx_kp_u__6, __pyx_int_1); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 108, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__7);
|
||||
__Pyx_GIVEREF(__pyx_tuple__7);
|
||||
|
||||
__pyx_tuple__23 = PyTuple_Pack(9, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session, __pyx_n_s_expected_hash, __pyx_n_s_tg_id, __pyx_n_s_builder, __pyx_n_s_i, __pyx_n_s_key_count, __pyx_n_s_exists); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 40, __pyx_L1_error)
|
||||
__pyx_tuple__22 = PyTuple_Pack(9, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_session, __pyx_n_s_expected_hash, __pyx_n_s_tg_id, __pyx_n_s_builder, __pyx_n_s_i, __pyx_n_s_key_count, __pyx_n_s_exists); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 40, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__22);
|
||||
__Pyx_GIVEREF(__pyx_tuple__22);
|
||||
__pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_callback_pay_yoomoney, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 40, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__23 = PyTuple_Pack(1, __pyx_n_u_yoomoney_amount); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__23);
|
||||
__Pyx_GIVEREF(__pyx_tuple__23);
|
||||
__pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_callback_pay_yoomoney, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 40, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__24 = PyTuple_Pack(1, __pyx_n_u_yoomoney_amount); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_tuple__24 = PyTuple_Pack(9, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_data, __pyx_n_s_amount_str, __pyx_n_s_amount, __pyx_n_s_customer_id, __pyx_n_s_account_id, __pyx_n_s_payment_url, __pyx_n_s_confirm_keyboard); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__24);
|
||||
__Pyx_GIVEREF(__pyx_tuple__24);
|
||||
__pyx_tuple__25 = PyTuple_Pack(9, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_data, __pyx_n_s_amount_str, __pyx_n_s_amount, __pyx_n_s_customer_id, __pyx_n_s_account_id, __pyx_n_s_payment_url, __pyx_n_s_confirm_keyboard); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_amount_selection, 104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__25 = PyTuple_Pack(11, __pyx_n_s_request, __pyx_n_s_data, __pyx_n_s_user_id_str, __pyx_n_s_amount_str, __pyx_n_s_notification_secret, __pyx_n_s_sha1_hash, __pyx_n_s_string_to_hash, __pyx_n_s_calculated_hash, __pyx_n_s_user_id, __pyx_n_s_amount, __pyx_n_s_e); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__25);
|
||||
__Pyx_GIVEREF(__pyx_tuple__25);
|
||||
__pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_amount_selection, 104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_yoomoney_webhook, 143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__26 = PyTuple_Pack(11, __pyx_n_s_request, __pyx_n_s_data, __pyx_n_s_user_id_str, __pyx_n_s_amount_str, __pyx_n_s_notification_secret, __pyx_n_s_sha1_hash, __pyx_n_s_string_to_hash, __pyx_n_s_calculated_hash, __pyx_n_s_user_id, __pyx_n_s_amount, __pyx_n_s_e); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__pyx_tuple__26 = PyTuple_Pack(3, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_builder); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__26);
|
||||
__Pyx_GIVEREF(__pyx_tuple__26);
|
||||
__pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_yoomoney_webhook, 143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_enter_custom_amount, 174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_s_callback_query, __pyx_n_s_state, __pyx_n_s_builder); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__pyx_tuple__27 = PyTuple_Pack(7, __pyx_n_s_message, __pyx_n_s_state, __pyx_n_s_amount, __pyx_n_s_customer_id, __pyx_n_s_account_id, __pyx_n_s_payment_url, __pyx_n_s_confirm_keyboard); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__27);
|
||||
__Pyx_GIVEREF(__pyx_tuple__27);
|
||||
__pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_enter_custom_amount, 174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
|
||||
__pyx_tuple__28 = PyTuple_Pack(7, __pyx_n_s_message, __pyx_n_s_state, __pyx_n_s_amount, __pyx_n_s_customer_id, __pyx_n_s_account_id, __pyx_n_s_payment_url, __pyx_n_s_confirm_keyboard); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_tuple__28);
|
||||
__Pyx_GIVEREF(__pyx_tuple__28);
|
||||
__pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_custom_amount_input, 191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_handlers_payments_yoomoney_pay_p, __pyx_n_s_process_custom_amount_input, 191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__Pyx_RefNannyFinishContext();
|
||||
return 0;
|
||||
__pyx_L1_error:;
|
||||
@@ -9388,11 +9391,14 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
|
||||
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error)
|
||||
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
__Pyx_INCREF(__pyx_n_s_PAYMENT_OPTIONS);
|
||||
__Pyx_GIVEREF(__pyx_n_s_PAYMENT_OPTIONS);
|
||||
if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_PAYMENT_OPTIONS)) __PYX_ERR(0, 21, __pyx_L1_error);
|
||||
__Pyx_INCREF(__pyx_n_s_AMOUNT_TEXT);
|
||||
__Pyx_GIVEREF(__pyx_n_s_AMOUNT_TEXT);
|
||||
if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_s_AMOUNT_TEXT)) __PYX_ERR(0, 21, __pyx_L1_error);
|
||||
__pyx_t_2 = __Pyx_Import(__pyx_n_s_handlers_texts, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
@@ -9400,6 +9406,10 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
if (PyDict_SetItem(__pyx_d, __pyx_n_s_PAYMENT_OPTIONS, __pyx_t_3) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
__pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_AMOUNT_TEXT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_3);
|
||||
if (PyDict_SetItem(__pyx_d, __pyx_n_s_AMOUNT_TEXT, __pyx_t_3) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
|
||||
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
|
||||
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
|
||||
@@ -9617,7 +9627,7 @@ if (!__Pyx_RefNanny) {
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_startswith); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
||||
__pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
@@ -9628,7 +9638,7 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_callback_query, __pyx_kp_s_types_CallbackQuery) < 0) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_state, __pyx_n_s_FSMContext) < 0) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_4process_amount_selection, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_amount_selection, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_4process_amount_selection, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_amount_selection, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_6);
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
@@ -9642,7 +9652,7 @@ if (!__Pyx_RefNanny) {
|
||||
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_request, __pyx_kp_s_web_Request) < 0) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_7yoomoney_webhook, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_yoomoney_webhook, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_7yoomoney_webhook, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_yoomoney_webhook, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__11)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_6);
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
@@ -9669,7 +9679,7 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_callback_query, __pyx_kp_s_types_CallbackQuery) < 0) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_state, __pyx_n_s_FSMContext) < 0) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_10process_enter_custom_amount, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_enter_custom_amount, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_10process_enter_custom_amount, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_enter_custom_amount, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 174, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_2);
|
||||
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
||||
@@ -9698,7 +9708,7 @@ if (!__Pyx_RefNanny) {
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_message, __pyx_kp_s_types_Message) < 0) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_state, __pyx_n_s_FSMContext) < 0) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_13process_custom_amount_input, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_custom_amount_input, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_8handlers_8payments_12yoomoney_pay_13process_custom_amount_input, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_process_custom_amount_input, NULL, __pyx_n_s_handlers_payments_yoomoney_pay, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 191, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
||||
@@ -13895,7 +13905,7 @@ static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *
|
||||
#endif
|
||||
static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyObject *module, *from_list, *star = __pyx_n_s__21;
|
||||
PyObject *module, *from_list, *star = __pyx_n_s__20;
|
||||
CYTHON_UNUSED_VAR(parts_tuple);
|
||||
from_list = PyList_New(1);
|
||||
if (unlikely(!from_list))
|
||||
@@ -13958,7 +13968,7 @@ static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple)
|
||||
if (unlikely(!module_name_str)) { goto modbad; }
|
||||
module_name = PyUnicode_FromString(module_name_str);
|
||||
if (unlikely(!module_name)) { goto modbad; }
|
||||
module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__22);
|
||||
module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__21);
|
||||
if (unlikely(!module_dot)) { goto modbad; }
|
||||
full_name = PyUnicode_Concat(module_dot, name);
|
||||
if (unlikely(!full_name)) { goto modbad; }
|
||||
@@ -15809,7 +15819,7 @@ __Pyx_PyType_GetName(PyTypeObject* tp)
|
||||
if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
|
||||
PyErr_Clear();
|
||||
Py_XDECREF(name);
|
||||
name = __Pyx_NewRef(__pyx_n_s__29);
|
||||
name = __Pyx_NewRef(__pyx_n_s__28);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
Binary file not shown.
+15
-11
@@ -65,26 +65,30 @@ async def get_least_loaded_cluster() -> str:
|
||||
str: Идентификатор наименее загруженного кластера.
|
||||
"""
|
||||
servers = await get_servers()
|
||||
|
||||
cluster_loads: dict[str, int] = dict.fromkeys(servers.keys(), 0)
|
||||
|
||||
server_to_cluster = {}
|
||||
cluster_loads = {cluster: 0 for cluster in servers.keys()}
|
||||
for cluster_name, cluster_servers in servers.items():
|
||||
for server in cluster_servers:
|
||||
server_to_cluster[server["server_name"]] = cluster_name
|
||||
logger.info(f"Сопоставление серверов и кластеров: {server_to_cluster}")
|
||||
async with asyncpg.create_pool(DATABASE_URL) as pool:
|
||||
async with pool.acquire() as conn:
|
||||
keys = await get_all_keys(conn)
|
||||
for key in keys:
|
||||
cluster_id = key["server_id"]
|
||||
server_id = key["server_id"]
|
||||
|
||||
cluster_id = server_to_cluster.get(server_id, server_id)
|
||||
|
||||
if cluster_id in cluster_loads:
|
||||
cluster_loads[cluster_id] += 1
|
||||
|
||||
logger.info(f"Cluster loads after database query: {cluster_loads}")
|
||||
|
||||
else:
|
||||
logger.warning(f"⚠️ Сервер {server_id} не найден в известных кластерах!")
|
||||
logger.info(f"Загруженность кластеров после запроса к БД: {cluster_loads}")
|
||||
if not cluster_loads:
|
||||
logger.warning("No clusters found in database or configuration.")
|
||||
logger.warning("⚠️ В базе данных или конфигурации нет кластеров!")
|
||||
return "cluster1"
|
||||
|
||||
least_loaded_cluster = min(cluster_loads, key=lambda k: (cluster_loads[k], k))
|
||||
|
||||
logger.info(f"Least loaded cluster selected: {least_loaded_cluster}")
|
||||
logger.info(f"✅ Выбран наименее загруженный кластер: {least_loaded_cluster}")
|
||||
|
||||
return least_loaded_cluster
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ def build_management_kb() -> InlineKeyboardMarkup:
|
||||
builder.button(text="🚫 Заблокировавшие бота", callback_data=AdminPanelCallback(action="bans").pack())
|
||||
builder.button(text="🔄 Перезагрузить бота", callback_data=AdminPanelCallback(action="restart").pack())
|
||||
builder.button(text="🌐 Сменить домен", callback_data=AdminPanelCallback(action="change_domain").pack())
|
||||
builder.button(text="🔑 Восстановить пробники", callback_data=AdminPanelCallback(action="restore_trials").pack())
|
||||
builder.row(build_admin_back_btn())
|
||||
builder.adjust(1)
|
||||
return builder.as_markup()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from collections.abc import Awaitable, Callable
|
||||
from typing import Any, Dict, Set, cast
|
||||
from typing import Any
|
||||
|
||||
from aiogram import BaseMiddleware
|
||||
from aiogram.types import CallbackQuery, Message, TelegramObject
|
||||
@@ -13,7 +13,6 @@ class AdminMiddleware(BaseMiddleware):
|
||||
является ли пользователь администратором.
|
||||
"""
|
||||
|
||||
# Кэш ID администраторов для быстрого доступа
|
||||
_admin_ids: set[int] = set(ADMIN_ID) if isinstance(ADMIN_ID, list | tuple) else {ADMIN_ID}
|
||||
|
||||
async def __call__(
|
||||
@@ -50,7 +49,6 @@ class AdminMiddleware(BaseMiddleware):
|
||||
elif isinstance(event, CallbackQuery):
|
||||
return event.from_user and event.from_user.id in self._admin_ids
|
||||
|
||||
# Для других типов событий пытаемся получить from_user
|
||||
user_id = getattr(getattr(event, "from_user", None), "id", None)
|
||||
return user_id in self._admin_ids if user_id else False
|
||||
except Exception:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from collections.abc import Awaitable, Callable
|
||||
from typing import Any, Dict, Optional, TypedDict, Union
|
||||
from typing import Any,TypedDict
|
||||
|
||||
from aiogram import BaseMiddleware
|
||||
from aiogram.types import CallbackQuery, InlineQuery, Message, TelegramObject, User
|
||||
@@ -45,12 +45,10 @@ class LoggingMiddleware(BaseMiddleware):
|
||||
"""
|
||||
result: UserInfo = {"user_id": None, "username": None, "action": None}
|
||||
|
||||
# Обработка общих атрибутов для разных типов событий
|
||||
if hasattr(event, "from_user") and isinstance(event.from_user, User):
|
||||
result["user_id"] = event.from_user.id
|
||||
result["username"] = event.from_user.username
|
||||
|
||||
# Определение типа действия в зависимости от типа события
|
||||
if isinstance(event, Message):
|
||||
result["action"] = f"Сообщение: {event.text}"
|
||||
elif isinstance(event, CallbackQuery):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from collections.abc import Awaitable, Callable
|
||||
from typing import Any, Optional
|
||||
from typing import Any
|
||||
|
||||
import asyncpg
|
||||
|
||||
@@ -17,11 +17,9 @@ class SessionMiddleware(BaseMiddleware):
|
||||
event: TelegramObject,
|
||||
data: dict[str, Any],
|
||||
) -> Any:
|
||||
# Создаем пул соединений при первом вызове
|
||||
if self.pool is None:
|
||||
self.pool = await asyncpg.create_pool(DATABASE_URL, min_size=5, max_size=20)
|
||||
|
||||
# Получаем соединение из пула
|
||||
async with self.pool.acquire() as conn:
|
||||
data["session"] = conn
|
||||
return await handler(event, data)
|
||||
|
||||
+12
-19
@@ -1,31 +1,24 @@
|
||||
from collections.abc import Awaitable, Callable
|
||||
from typing import Any, Dict
|
||||
|
||||
from aiogram import BaseMiddleware, Bot
|
||||
from aiogram.types import CallbackQuery, TelegramObject
|
||||
from aiogram.types import CallbackQuery
|
||||
from cachetools import TTLCache
|
||||
|
||||
|
||||
THROTTLE_TIME = 1.0
|
||||
|
||||
|
||||
class ThrottlingMiddleware(BaseMiddleware):
|
||||
def __init__(self) -> None:
|
||||
self.cache = TTLCache(maxsize=10_000, ttl=THROTTLE_TIME)
|
||||
self.throttle_notice_cache = TTLCache(maxsize=10_000, ttl=3.0)
|
||||
self.cache = TTLCache(maxsize=10_000, ttl=1.0)
|
||||
self.throttle_notice_cache = TTLCache(maxsize=10_000, ttl=1.0)
|
||||
|
||||
async def __call__(
|
||||
self,
|
||||
handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],
|
||||
event: TelegramObject,
|
||||
data: dict[str, Any],
|
||||
) -> Any:
|
||||
bot: Bot | None = data.get("bot", None)
|
||||
async def __call__(self, handler, event, data):
|
||||
user_id = event.from_user.id if event.from_user else None
|
||||
if user_id is None:
|
||||
return await handler(event, data)
|
||||
|
||||
if user_id in self.cache:
|
||||
current_count = self.cache.get(user_id, 0)
|
||||
|
||||
if current_count >= 3:
|
||||
if isinstance(event, CallbackQuery) and user_id not in self.throttle_notice_cache:
|
||||
self.throttle_notice_cache[user_id] = None
|
||||
bot: Bot = data["bot"]
|
||||
await bot.answer_callback_query(
|
||||
callback_query_id=event.id,
|
||||
text="Слишком много запросов! Пожалуйста, подождите...",
|
||||
@@ -33,6 +26,6 @@ class ThrottlingMiddleware(BaseMiddleware):
|
||||
)
|
||||
return None
|
||||
else:
|
||||
self.cache[user_id] = None
|
||||
self.cache[user_id] = current_count + 1
|
||||
|
||||
return await handler(event, data)
|
||||
return await handler(event, data)
|
||||
+1
-8
@@ -21,20 +21,14 @@ class UserMiddleware(BaseMiddleware):
|
||||
data: dict[str, Any],
|
||||
) -> Any:
|
||||
try:
|
||||
# Получаем пользователя из данных события
|
||||
if user := data.get("event_from_user"):
|
||||
# Получаем сессию из контекста, если она есть
|
||||
session = data.get("session")
|
||||
# Обрабатываем пользователя и получаем его данные из БД
|
||||
db_user = await self._process_user(user, session)
|
||||
# Добавляем данные пользователя из БД в контекст
|
||||
if db_user:
|
||||
data["user"] = db_user
|
||||
except Exception as e:
|
||||
# Логируем ошибку, но не прерываем обработку события
|
||||
logger.error(f"Ошибка при обработке пользователя: {e}")
|
||||
|
||||
# Продолжаем обработку события в любом случае
|
||||
return await handler(event, data)
|
||||
|
||||
async def _process_user(self, user: User, session: Any = None) -> dict:
|
||||
@@ -49,7 +43,6 @@ class UserMiddleware(BaseMiddleware):
|
||||
dict: Словарь с информацией о пользователе из базы данных
|
||||
"""
|
||||
logger.debug(f"Обработка пользователя: {user.id}")
|
||||
# Получаем данные пользователя из БД после вставки/обновления
|
||||
user_data = await upsert_user(
|
||||
tg_id=user.id,
|
||||
username=user.username,
|
||||
@@ -57,7 +50,7 @@ class UserMiddleware(BaseMiddleware):
|
||||
last_name=user.last_name,
|
||||
language_code=user.language_code,
|
||||
is_bot=user.is_bot,
|
||||
session=session, # Передаем сессию, если она есть
|
||||
session=session,
|
||||
)
|
||||
|
||||
logger.debug(f"Получены данные пользователя из БД: {user.id}")
|
||||
|
||||
+59
-32
@@ -15,12 +15,13 @@ from logger import logger
|
||||
|
||||
|
||||
last_ping_times = {}
|
||||
last_notification_times = {}
|
||||
last_down_times = {}
|
||||
notified_servers = set()
|
||||
PING_SEMAPHORE = asyncio.Semaphore(3)
|
||||
|
||||
|
||||
async def ping_server(server_ip: str) -> bool:
|
||||
"""Пингует сервер через ICMP или TCP 443, если ICMP недоступен или возникает ошибка."""
|
||||
"""Пингует сервер через ICMP или TCP 443, если ICMP недоступен."""
|
||||
async with PING_SEMAPHORE:
|
||||
try:
|
||||
response = ping(server_ip, timeout=3)
|
||||
@@ -42,14 +43,8 @@ async def check_tcp_connection(host: str, port: int) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
async def notify_admin(server_name: str):
|
||||
"""Отправляет уведомление администраторам о недоступности сервера (не чаще чем раз в 3 минуты)."""
|
||||
current_time = datetime.now()
|
||||
last_notification_time = last_notification_times.get(server_name)
|
||||
|
||||
if last_notification_time and current_time - last_notification_time < timedelta(minutes=3):
|
||||
return
|
||||
|
||||
async def notify_admin(server_name: str, status: str, down_duration: timedelta = None):
|
||||
"""Отправляет уведомление администратору."""
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
@@ -58,23 +53,27 @@ async def notify_admin(server_name: str):
|
||||
)
|
||||
)
|
||||
|
||||
for admin_id in ADMIN_ID:
|
||||
await bot.send_message(
|
||||
admin_id,
|
||||
(
|
||||
f"❌ <b>Сервер '{server_name}'</b> не отвечает более {PING_TIME * 3} секунд.\n\n"
|
||||
"Проверьте соединение к серверу или удалите его из списка, чтобы не выдавать подписки на неработающий сервер."
|
||||
),
|
||||
reply_markup=builder.as_markup(),
|
||||
if status == "down":
|
||||
message = (
|
||||
f"❌ <b>Сервер '{server_name}'</b> не отвечает!\n\n"
|
||||
"Проверьте соединение или удалите его из списка, чтобы не выдавать подписки на неработающий сервер."
|
||||
)
|
||||
else:
|
||||
downtime = str(down_duration).split(".")[0]
|
||||
message = (
|
||||
f"✅ <b>Сервер '{server_name}' снова в сети!</b>\n\n"
|
||||
f"⏳ Время простоя: {downtime}."
|
||||
)
|
||||
|
||||
last_notification_times[server_name] = current_time
|
||||
for admin_id in ADMIN_ID:
|
||||
logger.info(f"📨 Отправляем уведомление '{status}' администратору {admin_id} о сервере {server_name}")
|
||||
await bot.send_message(admin_id, message, reply_markup=builder.as_markup())
|
||||
|
||||
|
||||
async def check_servers():
|
||||
"""
|
||||
Периодическая проверка серверов.
|
||||
Использует `asyncio.gather()` для ускорения.
|
||||
Использует asyncio.gather() для ускорения.
|
||||
"""
|
||||
while True:
|
||||
servers = await get_servers()
|
||||
@@ -92,25 +91,53 @@ async def check_servers():
|
||||
server_info_list.append((server_name, server_host))
|
||||
tasks.append(ping_server(server_host))
|
||||
|
||||
logger.info(f"🔍 Начинаем проверку {len(server_info_list)} серверов...")
|
||||
|
||||
results = await asyncio.gather(*tasks, return_exceptions=True)
|
||||
|
||||
offline_servers = []
|
||||
offline_servers = set()
|
||||
restored_servers = set()
|
||||
online_servers = set()
|
||||
|
||||
for (server_name, server_host), result in zip(server_info_list, results, strict=False):
|
||||
is_online = bool(result) if not isinstance(result, Exception) else False
|
||||
|
||||
for (server_name, _), is_online in zip(server_info_list, results, strict=False):
|
||||
if is_online:
|
||||
last_ping_times[server_name] = current_time
|
||||
online_servers.add(server_name)
|
||||
|
||||
if server_name in notified_servers:
|
||||
down_time = last_down_times.pop(server_name, current_time)
|
||||
down_duration = current_time - down_time
|
||||
await notify_admin(server_name, "up", down_duration)
|
||||
|
||||
notified_servers.remove(server_name)
|
||||
restored_servers.add(server_name)
|
||||
|
||||
else:
|
||||
last_ping_time = last_ping_times.get(server_name)
|
||||
if last_ping_time and current_time - last_ping_time > timedelta(seconds=PING_TIME * 3):
|
||||
offline_servers.append(server_name)
|
||||
await notify_admin(server_name)
|
||||
elif not last_ping_time:
|
||||
last_ping_times[server_name] = current_time
|
||||
|
||||
online_servers = [name for name, _ in server_info_list if name not in offline_servers]
|
||||
logger.info(f"Проверка серверов завершена. Доступно: {len(online_servers)}, Недоступно: {len(offline_servers)}")
|
||||
if offline_servers:
|
||||
logger.warning(f"🚨 Не отвечает {len(offline_servers)} серверов: {', '.join(offline_servers)}")
|
||||
if last_ping_time is None:
|
||||
last_ping_times[server_name] = current_time
|
||||
last_down_times[server_name] = current_time
|
||||
|
||||
if last_ping_time and (current_time - last_ping_time > timedelta(seconds=PING_TIME * 3)):
|
||||
if server_name not in notified_servers:
|
||||
logger.warning(f"🚨 Уведомление: сервер {server_name} не отвечает более {PING_TIME * 3} секунд!")
|
||||
await notify_admin(server_name, "down")
|
||||
notified_servers.add(server_name)
|
||||
last_down_times[server_name] = current_time
|
||||
offline_servers.add(server_name)
|
||||
|
||||
all_servers = {name for name, _ in server_info_list}
|
||||
true_offline_servers = all_servers - online_servers
|
||||
|
||||
logger.info(f"✅ Доступно серверов: {len(online_servers)}, ❌ Недоступно: {len(true_offline_servers)}")
|
||||
|
||||
if true_offline_servers:
|
||||
logger.warning(f"🚨 Не отвечает {len(true_offline_servers)} серверов: {', '.join(true_offline_servers)}")
|
||||
if restored_servers:
|
||||
logger.info(f"✅ Восстановились {len(restored_servers)} серверов: {', '.join(restored_servers)}")
|
||||
|
||||
await asyncio.sleep(PING_TIME)
|
||||
|
||||
@@ -118,4 +145,4 @@ async def check_servers():
|
||||
def extract_host(api_url: str) -> str:
|
||||
"""Извлекает хост из `api_url`."""
|
||||
match = re.match(r"(https?://)?([^:/]+)", api_url)
|
||||
return match.group(2) if match else api_url
|
||||
return match.group(2) if match else api_url
|
||||
Reference in New Issue
Block a user