logo image, interval intro, try fix search
This commit is contained in:
parent
94ecd3234c
commit
0b401e721b
|
|
@ -7,12 +7,12 @@ async def s_api_tonconnect_manifest(request):
|
||||||
return response.json({
|
return response.json({
|
||||||
"url": f"{PROJECT_HOST}/#from=tonconnect",
|
"url": f"{PROJECT_HOST}/#from=tonconnect",
|
||||||
"name": "@MY Node",
|
"name": "@MY Node",
|
||||||
"iconUrl": "https://github.com/projscale/assets/blob/main/ton-connect.png?raw=true",
|
"iconUrl": "https://github.com/projscale/my-assets/blob/main/ton-connect.png?raw=true",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
async def s_api_platform_metadata(request):
|
async def s_api_platform_metadata(request):
|
||||||
return response.json({
|
return response.json({
|
||||||
"name": "@MY",
|
"name": "@MY",
|
||||||
"image": "https://git.projscale.dev/my-dev/assets/raw/commit/890ed9e60a25a65c8ad600d6d0ad3ac4480e3039/images/logo.png"
|
"image": "https://github.com/projscale/my-assets/blob/main/ton-connect.png?raw=true"
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,14 @@ async def t_callback_purchase_node_content(query: types.CallbackQuery, memory=No
|
||||||
return await query.answer(user.translated('error_contentNotFound'), show_alert=True)
|
return await query.answer(user.translated('error_contentNotFound'), show_alert=True)
|
||||||
|
|
||||||
if not is_cancel_request:
|
if not is_cancel_request:
|
||||||
make_log("OwnedContent", f"{user} Try to purchase content: {content_oid}", level='info')
|
# Logging purchase attempt with detailed information
|
||||||
license_price = content.meta.get('license', {}).get('listen', {}).get('price')
|
license_price = content.meta.get('license', {}).get('listen', {}).get('price')
|
||||||
license_price_num = int(license_price)
|
license_price_num = int(license_price)
|
||||||
if license_price_num < 1:
|
if license_price_num < 1:
|
||||||
return await query.answer(user.translated('error_contentPrice'), show_alert=True)
|
return await query.answer(user.translated('error_contentPrice'), show_alert=True)
|
||||||
|
|
||||||
|
make_log("Purchase", f"User {user.id} initiated purchase for content ID {content_oid}. License price: {license_price_num}.", level='info')
|
||||||
|
|
||||||
ton_connect, ton_connection = TonConnect.by_user(db_session, user, callback_fn=())
|
ton_connect, ton_connection = TonConnect.by_user(db_session, user, callback_fn=())
|
||||||
await ton_connect.restore_connection()
|
await ton_connect.restore_connection()
|
||||||
assert ton_connect.connected, "No connected wallet"
|
assert ton_connect.connected, "No connected wallet"
|
||||||
|
|
@ -72,7 +74,8 @@ async def t_callback_purchase_node_content(query: types.CallbackQuery, memory=No
|
||||||
)
|
)
|
||||||
db_session.add(new_action)
|
db_session.add(new_action)
|
||||||
else:
|
else:
|
||||||
make_log("OwnedContent", f"{user} Try to cancel purchase: {content_oid}", level='info')
|
# Logging cancellation attempt with detailed information
|
||||||
|
make_log("Purchase", f"User {user.id} cancelled purchase for content ID {content_oid}.", level='info')
|
||||||
action = db_session.query(UserAction).filter_by(
|
action = db_session.query(UserAction).filter_by(
|
||||||
type='purchase',
|
type='purchase',
|
||||||
content_id=content_oid,
|
content_id=content_oid,
|
||||||
|
|
@ -92,18 +95,19 @@ router.callback_query.register(t_callback_purchase_node_content, F.data.startswi
|
||||||
|
|
||||||
|
|
||||||
async def t_inline_query_node_content(query: types.InlineQuery, memory=None, user=None, db_session=None, chat_wrap=None, **extra):
|
async def t_inline_query_node_content(query: types.InlineQuery, memory=None, user=None, db_session=None, chat_wrap=None, **extra):
|
||||||
make_log("OwnedContent", f"Inline query: {query.query}", level='info')
|
# Logging the received inline query using issuer "InlineSearch"
|
||||||
|
make_log("InlineSearch", f"Received inline query: '{query.query}'", level='info')
|
||||||
try:
|
try:
|
||||||
source_args = query.query[1:]
|
source_args = query.query[1:]
|
||||||
source_args_ext = query.query
|
source_args_ext = query.query
|
||||||
|
|
||||||
if query.query.startswith('Q'):
|
if source_args.startswith('Q'):
|
||||||
license_onchain_address = query.query[1:]
|
license_onchain_address = query.query[1:]
|
||||||
args = db_session.query(UserContent).filter_by(
|
args = db_session.query(UserContent).filter_by(
|
||||||
onchain_address=license_onchain_address,
|
onchain_address=license_onchain_address,
|
||||||
).first().content.cid.serialize_v2()
|
).first().content.cid.serialize_v2()
|
||||||
else:
|
else:
|
||||||
args = query.query[1:]
|
args = source_args[1:]
|
||||||
|
|
||||||
cid = ContentId.deserialize(args)
|
cid = ContentId.deserialize(args)
|
||||||
|
|
||||||
|
|
@ -120,7 +124,8 @@ async def t_inline_query_node_content(query: types.InlineQuery, memory=None, use
|
||||||
with open(metadata_content.filepath, 'r') as f:
|
with open(metadata_content.filepath, 'r') as f:
|
||||||
metadata_content_json = json.loads(f.read())
|
metadata_content_json = json.loads(f.read())
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
make_log("OwnedContent", f"Can't get metadata content: {e}", level='warning')
|
# Logging metadata retrieval failure with detailed query information
|
||||||
|
make_log("InlineSearch", f"Failed to retrieve metadata for query '{query.query}': {e}", level='warning')
|
||||||
return await query.answer(content_list, cache_time=1)
|
return await query.answer(content_list, cache_time=1)
|
||||||
|
|
||||||
audio_title = metadata_content_json.get('name', "").split(' - ')
|
audio_title = metadata_content_json.get('name', "").split(' - ')
|
||||||
|
|
@ -157,16 +162,16 @@ async def t_inline_query_node_content(query: types.InlineQuery, memory=None, use
|
||||||
preview_url = preview_content.web_url
|
preview_url = preview_content.web_url
|
||||||
if content_type_declared == 'video':
|
if content_type_declared == 'video':
|
||||||
preview_message = await query.bot.send_video(
|
preview_message = await query.bot.send_video(
|
||||||
chat_id=CACHE_CHAT_ID, # Cache chat id defined in configuration
|
chat_id=CACHE_CHAT_ID, # English: Cache chat ID defined in configuration
|
||||||
video=types.URLInputFile(preview_url), # Upload video using URL
|
video=types.URLInputFile(preview_url), # English: Upload video using URL
|
||||||
caption="Preview upload", # English caption
|
caption="Preview upload", # English caption
|
||||||
supports_streaming=True
|
supports_streaming=True
|
||||||
)
|
)
|
||||||
preview_file_id = preview_message.video.file_id
|
preview_file_id = preview_message.video.file_id
|
||||||
else:
|
else:
|
||||||
preview_message = await query.bot.send_audio(
|
preview_message = await query.bot.send_audio(
|
||||||
chat_id=CACHE_CHAT_ID, # Cache chat id defined in configuration
|
chat_id=CACHE_CHAT_ID, # English: Cache chat ID defined in configuration
|
||||||
audio=types.URLInputFile(preview_url), # Upload audio using URL
|
audio=types.URLInputFile(preview_url), # English: Upload audio using URL
|
||||||
caption="Preview upload", # English caption
|
caption="Preview upload", # English caption
|
||||||
title=title,
|
title=title,
|
||||||
performer=performer,
|
performer=performer,
|
||||||
|
|
@ -180,7 +185,8 @@ async def t_inline_query_node_content(query: types.InlineQuery, memory=None, use
|
||||||
}
|
}
|
||||||
db_session.commit()
|
db_session.commit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
make_log("OwnedContent", f"Error uploading preview {content_type_declared}: {e}", level='error')
|
# Logging error during preview upload with detailed content type and query information
|
||||||
|
make_log("InlineSearch", f"Error uploading preview for content type '{content_type_declared}' during inline query '{query.query}': {e}", level='error')
|
||||||
|
|
||||||
content_share_link = {
|
content_share_link = {
|
||||||
'text': user.translated('p_shareLinkContext').format(title=' – '.join(audio_title)),
|
'text': user.translated('p_shareLinkContext').format(title=' – '.join(audio_title)),
|
||||||
|
|
@ -198,7 +204,7 @@ async def t_inline_query_node_content(query: types.InlineQuery, memory=None, use
|
||||||
reply_markup=get_inline_keyboard([
|
reply_markup=get_inline_keyboard([
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
'text': {
|
'text': {
|
||||||
'audio': user.translated('shareTrack_button'),
|
'audio': user.translated('shareTrack_button'),
|
||||||
'video': user.translated('shareVideo_button'),
|
'video': user.translated('shareVideo_button'),
|
||||||
}[content_type_declared],
|
}[content_type_declared],
|
||||||
|
|
@ -236,7 +242,6 @@ async def t_inline_query_node_content(query: types.InlineQuery, memory=None, use
|
||||||
'url': f"https://t.me/share/url?text={urllib.parse.quote(content_share_link['text'])}&url={urllib.parse.quote(content_share_link['url'])}"
|
'url': f"https://t.me/share/url?text={urllib.parse.quote(content_share_link['text'])}&url={urllib.parse.quote(content_share_link['url'])}"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
[{
|
[{
|
||||||
'text': user.translated('viewTrack_button'),
|
'text': user.translated('viewTrack_button'),
|
||||||
'url': f"https://t.me/MY_Web3Bot/content?startapp={source_args}"
|
'url': f"https://t.me/MY_Web3Bot/content?startapp={source_args}"
|
||||||
|
|
@ -245,18 +250,23 @@ async def t_inline_query_node_content(query: types.InlineQuery, memory=None, use
|
||||||
**result_kwargs
|
**result_kwargs
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Logging the final inline query result count with detailed explanation
|
||||||
|
make_log("InlineSearch", f"Processed inline query '{query.query}'. Found {len(content_list)} inline result(s) based on query parsing and content retrieval.", level='info')
|
||||||
return await query.answer(content_list, cache_time=1)
|
return await query.answer(content_list, cache_time=1)
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
logger.error(f"Error in t_inline_query_node_content: {e}")
|
# Logging exception during inline query processing with detailed query information
|
||||||
|
make_log("InlineSearch", f"Error processing inline query '{query.query}': {e}", level='error')
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return await query.answer([], cache_time=1)
|
return await query.answer([], cache_time=1)
|
||||||
|
|
||||||
|
|
||||||
async def t_chosen_inline_result_node_content(query: types.ChosenInlineResult, memory=None, user=None, db_session=None, chat_wrap=None, **extra):
|
async def t_chosen_inline_result_node_content(query: types.ChosenInlineResult, memory=None, user=None, db_session=None, chat_wrap=None, **extra):
|
||||||
make_log("OwnedContent", f"Chosen inline result: {query.result_id}", level='info')
|
# Logging chosen inline result with detailed user and result ID
|
||||||
|
make_log("ChosenResult", f"User {user.id} selected inline result with ID '{query.result_id}'.", level='info')
|
||||||
# return await query.answer([])
|
# return await query.answer([])
|
||||||
|
|
||||||
|
|
||||||
router.inline_query.register(t_inline_query_node_content, F.query.startswith('C') | F.query.startswith('Q'))
|
router.inline_query.register(t_inline_query_node_content, F.query.startswith('C'))
|
||||||
|
router.inline_query.register(t_inline_query_node_content, F.query.startswith('Q'))
|
||||||
router.chosen_inline_result.register(t_chosen_inline_result_node_content, lambda: True)
|
router.chosen_inline_result.register(t_chosen_inline_result_node_content, lambda: True)
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,9 @@ async def convert_loop(memory):
|
||||||
|
|
||||||
# Static preview interval in seconds
|
# Static preview interval in seconds
|
||||||
preview_interval = [0, 30]
|
preview_interval = [0, 30]
|
||||||
|
if unprocessed_encrypted_content.onchain_index in [2]:
|
||||||
|
preview_interval = [0, 60]
|
||||||
|
|
||||||
|
|
||||||
# List of conversion options to process
|
# List of conversion options to process
|
||||||
REQUIRED_CONVERT_OPTIONS = ['high', 'low', 'low_preview']
|
REQUIRED_CONVERT_OPTIONS = ['high', 'low', 'low_preview']
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue