fix
This commit is contained in:
parent
c90ce0fc70
commit
c485bd27e3
|
|
@ -63,6 +63,12 @@ async def t_callback_node_content(query: types.CallbackQuery, memory=None, user=
|
||||||
db_session, db_session.query(StoredContent).filter_by(
|
db_session, db_session.query(StoredContent).filter_by(
|
||||||
id=content_oid
|
id=content_oid
|
||||||
).first(),
|
).first(),
|
||||||
|
extra_buttons=[
|
||||||
|
[{
|
||||||
|
'text': user.translated('back_button'),
|
||||||
|
'callback_data': 'ownedContent'
|
||||||
|
}]
|
||||||
|
],
|
||||||
message_id=query.message.message_id
|
message_id=query.message.message_id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,71 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from aiogram import types, Router
|
from aiogram import types, Router, F
|
||||||
|
|
||||||
|
from app.core._keyboards import get_inline_keyboard
|
||||||
|
from app.core.models.node_storage import StoredContent
|
||||||
|
import json
|
||||||
|
from app.core.logger import make_log
|
||||||
|
|
||||||
from app.client_bot.routers.home import router as home_router
|
from app.client_bot.routers.home import router as home_router
|
||||||
from app.client_bot.routers.tonconnect import router as tonconnect_router
|
from app.client_bot.routers.tonconnect import router as tonconnect_router
|
||||||
|
from app.core._config import CLIENT_TELEGRAM_BOT_USERNAME
|
||||||
from app.core.logger import logger
|
from app.core.logger import logger
|
||||||
|
from app.core.content.content_id import ContentId
|
||||||
|
import base58
|
||||||
|
|
||||||
router = Router()
|
router = Router()
|
||||||
|
|
||||||
# router.message.register(t_, Command('dev_tonconnect'))
|
|
||||||
# router.callback_query.register(t_callback_init_tonconnect, F.data.startswith('initTonconnect_'))
|
async def t_inline_query_node_content(query: types.InlineQuery, memory=None, user=None, db_session=None, chat_wrap=None, **extra):
|
||||||
# router.callback_query.register(t_callback_disconnect_wallet, F.data == 'disconnectWallet')
|
args = query.query[1:]
|
||||||
|
cid = ContentId.deserialize(args)
|
||||||
|
|
||||||
|
content_list = []
|
||||||
|
content = db_session.query(StoredContent).filter_by(hash=cid.content_hash_b58).first()
|
||||||
|
decrypted_content = None
|
||||||
|
if content:
|
||||||
|
if content.encrypted:
|
||||||
|
decrypted_content = db_session.query(StoredContent).filter_by(id=content.decrypted_content_id).first()
|
||||||
|
else:
|
||||||
|
decrypted_content = content
|
||||||
|
|
||||||
|
if not decrypted_content:
|
||||||
|
make_log("OwnedContent", f"Can't get decrypted content: {content.id}", level='warning')
|
||||||
|
return await query.answer(content_list)
|
||||||
|
|
||||||
|
try:
|
||||||
|
metadata_content = StoredContent.from_cid(db_session, content.json_format()['metadata_cid'])
|
||||||
|
with open(metadata_content.filepath, 'r') as f:
|
||||||
|
metadata_content_json = json.loads(f.read())
|
||||||
|
except BaseException as e:
|
||||||
|
make_log("OwnedContent", f"Can't get metadata content: {e}", level='warning')
|
||||||
|
return await query.answer(content_list)
|
||||||
|
|
||||||
|
audio_title = metadata_content_json.get('name', "").split(' - ')
|
||||||
|
title, performer = None
|
||||||
|
if len(audio_title) > 1:
|
||||||
|
performer = audio_title[0].strip()
|
||||||
|
audio_title = audio_title[1:]
|
||||||
|
|
||||||
|
title = audio_title[0].strip()
|
||||||
|
|
||||||
|
content_list.append(
|
||||||
|
types.InlineQueryResultAudio(
|
||||||
|
id=content.id,
|
||||||
|
audio_url=decrypted_content.web_url,
|
||||||
|
title=title,
|
||||||
|
performer=performer,
|
||||||
|
reply_markup=get_inline_keyboard([
|
||||||
|
[{
|
||||||
|
'text': user.translated('viewTrack_button'),
|
||||||
|
'url': f"https://t.me/{CLIENT_TELEGRAM_BOT_USERNAME}?start=C{content.cid.serialize_v2()}"
|
||||||
|
}]
|
||||||
|
])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
return await query.answer(content_list)
|
||||||
|
|
||||||
|
router.inline_query.register(t_inline_query_node_content, F.data.startswith('C'))
|
||||||
|
|
@ -78,7 +78,7 @@ async def t_home_menu(__msg, **extra):
|
||||||
|
|
||||||
if args[0].startswith('C'):
|
if args[0].startswith('C'):
|
||||||
content = StoredContent.from_cid(db_session, args[0][1:])
|
content = StoredContent.from_cid(db_session, args[0][1:])
|
||||||
return await chat_wrap.send_content(content, message_id=message_id)
|
return await chat_wrap.send_content(db_session, content, message_id=message_id)
|
||||||
|
|
||||||
return await send_home_menu(chat_wrap, user, wallet_connection, message_id=message_id)
|
return await send_home_menu(chat_wrap, user, wallet_connection, message_id=message_id)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,10 @@ TELEGRAM_API_KEY = os.environ.get('TELEGRAM_API_KEY')
|
||||||
assert TELEGRAM_API_KEY, "Telegram API_KEY required"
|
assert TELEGRAM_API_KEY, "Telegram API_KEY required"
|
||||||
CLIENT_TELEGRAM_API_KEY = os.environ.get('CLIENT_TELEGRAM_API_KEY')
|
CLIENT_TELEGRAM_API_KEY = os.environ.get('CLIENT_TELEGRAM_API_KEY')
|
||||||
assert CLIENT_TELEGRAM_API_KEY, "Client Telegram API_KEY required"
|
assert CLIENT_TELEGRAM_API_KEY, "Client Telegram API_KEY required"
|
||||||
|
import httpx
|
||||||
|
TELEGRAM_BOT_USERNAME = httpx.get(f"https://api.telegram.org/bot{TELEGRAM_API_KEY}/getMe").json()['result']['username']
|
||||||
|
CLIENT_TELEGRAM_BOT_USERNAME = httpx.get(f"https://api.telegram.org/bot{CLIENT_TELEGRAM_API_KEY}/getMe").json()['result']['username']
|
||||||
|
|
||||||
|
|
||||||
MYSQL_URI = os.environ['MYSQL_URI']
|
MYSQL_URI = os.environ['MYSQL_URI']
|
||||||
MYSQL_DATABASE = os.environ['MYSQL_DATABASE']
|
MYSQL_DATABASE = os.environ['MYSQL_DATABASE']
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from app.core.models.node_storage import StoredContent
|
||||||
from app.core.models.content.user_content import UserContent
|
from app.core.models.content.user_content import UserContent
|
||||||
from app.core.logger import make_log
|
from app.core.logger import make_log
|
||||||
from app.core._utils.tg_process_template import tg_process_template
|
from app.core._utils.tg_process_template import tg_process_template
|
||||||
from app.core._config import PROJECT_HOST
|
from app.core._config import PROJECT_HOST, CLIENT_TELEGRAM_BOT_USERNAME
|
||||||
from app.core._keyboards import get_inline_keyboard
|
from app.core._keyboards import get_inline_keyboard
|
||||||
from aiogram.types import URLInputFile
|
from aiogram.types import URLInputFile
|
||||||
import json
|
import json
|
||||||
|
|
@ -66,6 +66,16 @@ class PlayerTemplates:
|
||||||
if cover_content:
|
if cover_content:
|
||||||
template_kwargs['thumbnail'] = URLInputFile(cover_content.web_url)
|
template_kwargs['thumbnail'] = URLInputFile(cover_content.web_url)
|
||||||
|
|
||||||
|
if self.bot_id == 1:
|
||||||
|
inline_keyboard_array.append([{
|
||||||
|
'text': self.user.translated('shareTrack_button'),
|
||||||
|
'switch_inline_query': f"C{content.cid.serialize_v2()}"
|
||||||
|
}])
|
||||||
|
else:
|
||||||
|
inline_keyboard_array.append([{
|
||||||
|
'text': self.user.translated('viewTrackAsClient_button'),
|
||||||
|
'url': f"https://t.me/{CLIENT_TELEGRAM_BOT_USERNAME}?start=C{content.telegram_cid}"
|
||||||
|
}])
|
||||||
else:
|
else:
|
||||||
local_content = None
|
local_content = None
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class Wrapped_CBotChat(T, PlayerTemplates):
|
||||||
CLIENT_TELEGRAM_API_KEY: 1
|
CLIENT_TELEGRAM_API_KEY: 1
|
||||||
}[self._bot_key]
|
}[self._bot_key]
|
||||||
|
|
||||||
async def return_result(self, result, message_type='common', message_meta={}):
|
async def return_result(self, result, message_type='common', message_meta={}, content_id=None, **kwargs):
|
||||||
if self.db_session:
|
if self.db_session:
|
||||||
if message_type == 'common':
|
if message_type == 'common':
|
||||||
ci = 0
|
ci = 0
|
||||||
|
|
@ -71,7 +71,8 @@ class Wrapped_CBotChat(T, PlayerTemplates):
|
||||||
message_id=message_id,
|
message_id=message_id,
|
||||||
from_user=False,
|
from_user=False,
|
||||||
created=datetime.now(),
|
created=datetime.now(),
|
||||||
meta=message_meta or {}
|
meta=message_meta or {},
|
||||||
|
content_id=content_id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.db_session.commit()
|
self.db_session.commit()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue