4
4
import requests
5
5
from fastapi_sqlalchemy import db
6
6
7
- from social .models import CreateGroupRequest , VkChat
7
+ from social .models import CreateGroupRequest , VkChat , VkGroup
8
8
from social .settings import get_settings
9
9
10
10
14
14
15
15
def get_chat_info (peer_id ) -> dict :
16
16
"""Получить название чата ВК"""
17
- conversation = requests .post (
17
+ resp = requests .post (
18
18
"https://api.vk.com/method/messages.getConversationsById" ,
19
19
json = {
20
20
"peer_ids" : peer_id ,
@@ -24,25 +24,47 @@ def get_chat_info(peer_id) -> dict:
24
24
},
25
25
)
26
26
try :
27
- return conversation .json ()["response" ]["items" ][0 ]["chat_settings" ]
27
+ conversation = resp .json ()
28
+ logger .info ("Chat info: %s" , conversation )
29
+ return conversation ["response" ]["items" ][0 ]["chat_settings" ]
28
30
except Exception as exc :
29
31
logger .exception (exc )
30
32
return None
31
33
32
34
33
35
def get_chat_invite_link (peer_id ):
34
36
"""Получить название чата ВК"""
35
- conversation = requests .post (
37
+ resp = requests .post (
36
38
"https://api.vk.com/method/messages.getInviteLink" ,
37
- json = {
39
+ data = {
38
40
"peer_ids" : peer_id ,
39
41
"group_id" : settings .VK_BOT_GROUP_ID ,
40
42
"access_token" : settings .VK_BOT_TOKEN ,
41
43
"v" : 5.199 ,
42
44
},
43
45
)
44
46
try :
45
- return conversation .json ()["response" ]["link" ]
47
+ link = resp .json ()
48
+ logger .info ("Chat link: %s" , link )
49
+ return link ["response" ]["link" ]
50
+ except Exception as exc :
51
+ logger .exception (exc )
52
+ return None
53
+
54
+
55
+ def get_group_info (group_id ) -> dict :
56
+ """Получить название чата ВК"""
57
+ groups = requests .post (
58
+ "https://api.vk.com/method/groups.getById" ,
59
+ data = {
60
+ "group_id" : group_id ,
61
+ "access_token" : settings .VK_BOT_TOKEN ,
62
+ "fields" : "description" ,
63
+ "v" : 5.199 ,
64
+ },
65
+ )
66
+ try :
67
+ return groups .json ()["response" ]["groups" ][0 ]
46
68
except Exception as exc :
47
69
logger .exception (exc )
48
70
return None
@@ -84,12 +106,22 @@ def approve_vk_chat(request_data: dict[str]):
84
106
logger .info ("VK group %d validated (secret=%s)" , group .id , text )
85
107
86
108
87
- def update_vk_chat (group : VkChat ):
109
+ def update_vk_chat (chat : VkChat ):
88
110
"""Обновляет информацию о группе ВК"""
89
- chat_info = get_chat_info (group .peer_id )
90
- chat_invite = get_chat_invite_link (group .peer_id )
111
+ chat_info = get_chat_info (chat .peer_id )
112
+ chat_invite = get_chat_invite_link (chat .peer_id )
91
113
logger .info ("Chat info: %s, invite: %s" , chat_info , chat_invite )
114
+ chat .name = chat_info .get ("title" )
115
+ chat .description = chat_info .get ("description" )
116
+ chat .invite_link = chat_invite
117
+ return chat
118
+
119
+
120
+ def update_vk_group (group : VkGroup ):
121
+ """Обновляет информацию о группе ВК"""
122
+ chat_info = get_group_info (group .group_id )
123
+ logger .info ("Chat info: %s" , chat_info )
92
124
group .name = chat_info .get ("title" )
93
125
group .description = chat_info .get ("description" )
94
- group .invite_link = chat_invite
126
+ group .invite_link = f"https://vk.com/public { group . group_id } "
95
127
return group
0 commit comments