парсер
This commit is contained in:
@@ -123,9 +123,12 @@ async def _handle_chat_join_request(event: dict) -> None:
|
||||
return
|
||||
|
||||
from_user = event.get('from')
|
||||
if not from_user:
|
||||
log.error('No user in chat_join_request event')
|
||||
return
|
||||
if not from_user or not from_user.get('id'):
|
||||
user_chat_id = event.get('user_chat_id')
|
||||
if not user_chat_id:
|
||||
log.error('No user or user_chat_id in chat_join_request event')
|
||||
return
|
||||
from_user = {'id': user_chat_id}
|
||||
|
||||
invite_link_obj = event.get('invite_link', {})
|
||||
invite_link = invite_link_obj.get('invite_link')
|
||||
@@ -153,7 +156,8 @@ async def _handle_chat_member_updated(event: dict) -> None:
|
||||
return
|
||||
|
||||
from_user = event.get('from')
|
||||
if not from_user:
|
||||
member_user = event.get('new_chat_member', {}).get('user')
|
||||
if not member_user:
|
||||
log.error('No user in chat_member_updated event')
|
||||
return
|
||||
|
||||
@@ -181,16 +185,16 @@ async def _handle_chat_member_updated(event: dict) -> None:
|
||||
return
|
||||
|
||||
await deps.get_usecase().handle_subscription(
|
||||
user_telegram_id=from_user['id'],
|
||||
username=from_user.get('username'),
|
||||
user_telegram_id=member_user['id'],
|
||||
username=member_user.get('username'),
|
||||
invite_link=invite_link,
|
||||
first_name=from_user.get('first_name'),
|
||||
last_name=from_user.get('last_name'),
|
||||
first_name=member_user.get('first_name'),
|
||||
last_name=member_user.get('last_name'),
|
||||
)
|
||||
|
||||
elif user_left:
|
||||
await deps.get_usecase().handle_unsubscription(
|
||||
user_telegram_id=from_user['id'],
|
||||
user_telegram_id=member_user['id'],
|
||||
channel_telegram_id=chat['id'],
|
||||
)
|
||||
|
||||
|
||||
@@ -42,6 +42,13 @@ async def create_placement(
|
||||
raise domain.ChannelNotFound(project.channel.id)
|
||||
|
||||
invite_link = await self.telegram_bot.create_chat_invite_link(project.channel.telegram_id, requires_approval)
|
||||
log.info(
|
||||
'Created invite link for project=%s channel_telegram_id=%s requires_approval=%s invite_link=%s',
|
||||
project.id,
|
||||
project.channel.telegram_id,
|
||||
requires_approval,
|
||||
invite_link,
|
||||
)
|
||||
|
||||
placement = domain.Placement(
|
||||
project_id=input.project_id,
|
||||
|
||||
@@ -64,4 +64,4 @@ async def fetch_placement_post_cycle(self: 'Usecase', interval_seconds: int) ->
|
||||
post.id,
|
||||
)
|
||||
|
||||
log.info('Fetch placement post cycle completed. Created %s placements', created_count)
|
||||
log.debug('Fetch placement post cycle completed. Created %s placements', created_count)
|
||||
|
||||
@@ -121,6 +121,7 @@ async def tg_add_project(self: 'Usecase', input: dto.ConnectProjectInput) -> dto
|
||||
title=channel.title,
|
||||
username=channel.username,
|
||||
status=project.status,
|
||||
purchase_invite_type_default=project.purchase_invite_type_default,
|
||||
)
|
||||
|
||||
# Если >1 workspace - создаем/обновляем канал и отправляем уведомление
|
||||
|
||||
@@ -97,11 +97,6 @@ async def create_purchase(
|
||||
if not creative or creative.project_id != project.id:
|
||||
raise domain.CreativeNotFound(input.creative_id)
|
||||
|
||||
existing_purchase = await self.database.get_active_purchase(project.id, creative.id)
|
||||
if existing_purchase:
|
||||
channels = await self.database.get_purchase_channels(existing_purchase.id)
|
||||
return _build_purchase_output(existing_purchase, channels)
|
||||
|
||||
details = input.details
|
||||
purchase = domain.Purchase(
|
||||
workspace_id=workspace_id,
|
||||
@@ -143,6 +138,13 @@ async def create_purchase(
|
||||
log.info('Created channel @%s with telegram_id=%s', channel.username, channel.telegram_id)
|
||||
|
||||
invite_link = await self.telegram_bot.create_chat_invite_link(project.channel.telegram_id, requires_approval)
|
||||
log.info(
|
||||
'Created invite link for purchase %s channel_telegram_id=%s requires_approval=%s invite_link=%s',
|
||||
purchase.id,
|
||||
project.channel.telegram_id,
|
||||
requires_approval,
|
||||
invite_link,
|
||||
)
|
||||
|
||||
channel_details = channel_input.details
|
||||
purchase_channel = await self.database.add_channel_to_purchase(
|
||||
|
||||
Reference in New Issue
Block a user