-
Notifications
You must be signed in to change notification settings - Fork 0
/
attachmentslib.py
120 lines (115 loc) · 5.54 KB
/
attachmentslib.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# coding=utf8
def merge_attachments(data, request):
try:
attachments = data['attachments']
for i in range(len(attachments)):
if attachments[i]['type'] == 'audio_playlist':
fields = []
for n in range(len(attachments[i]['audio_playlist']['audios'])):
songs = {
"name": attachments[i]['audio_playlist']['audios'][n]['title'],
"value": "by {}".format(attachments[i]['audio_playlist']['audios'][n]['artist']),
}
fields.append(songs)
embed = {
"thumbnail": attachments[i]['audio_playlist']['photo']['photo_300'],
"title": "**{}**".format(attachments[i]['audio_playlist']['title']),
"url": "https://vk.com/audio?z=audio_playlist{}_{}".format(
attachments[i]['audio_playlist']['owner_id'],
attachments[i]['audio_playlist']['id']),
"fields": fields,
"color": 4880040
}
request["embeds"].append(embed)
if attachments[i]['type'] == 'photo':
embed = {
"image": {
"url": attachments[i]['photo']['sizes'][
len(attachments[i]['photo']['sizes']) - 1]['url']
},
"color": 4880040
}
request["embeds"].append(embed)
if attachments[i]['type'] == 'doc':
if attachments[i]['doc']['type'] == 4:
embed = {
"image": {
"url": attachments[i]['doc']['url']
},
"color": 4880040
}
request["embeds"].append(embed)
if attachments[i]['doc']['type'] == 3:
print(len(attachments[i]['doc']['preview']['photo']['sizes']))
print(i)
embed = {
"image": {
"url": attachments[i]['doc']['preview']['photo']['sizes'][
len(attachments[i]['doc']['preview']['photo']['sizes']) - 1]['src'],
},
"color": 4880040
}
request["embeds"].append(embed)
if attachments[i]['type'] == 'video':
embed = {
"title": "**{}**".format(attachments[i]['video']['title']),
"url": "https://vk.com/video?z=video{}_{}".format(attachments[i]['video']['owner_id'],
attachments[i]['video']['id']),
"thumbnail": {
"url": "https://image.flaticon.com/icons/png/24/61/61139.png",
},
"image": {
"url": attachments[i]['video']['photo_800']
},
"color": 4880040
}
request["embeds"].append(embed)
if attachments[i]['type'] == 'poll':
fields = []
for n in range(len(attachments[i]['poll']['answers'])):
answer_field = {
"name": attachments[i]['poll']['answers'][n]['text'],
"value": "{} голосов, {}% всех проголосовавших".format(
attachments[i]['poll']['answers'][n]['votes'],
attachments[i]['poll']['answers'][n]['rate']),
}
fields.append(answer_field)
try:
embed = {
"title": "**{}**".format(attachments[i]['poll']['question']),
"url": "https://vk.com/poll{}_{}".format(attachments[i]['poll']['owner_id'],
attachments[i]['poll']['id']),
"image": {
"url": attachments[i]['poll']['photo']['images'][0]['url']
},
"fields": fields,
"color": 4880040
}
request["embeds"].append(embed)
except KeyError:
embed = {
"title": "**{}**".format(attachments[i]['poll']['question']),
"url": "https://vk.com/poll{}_{}".format(attachments[i]['poll']['owner_id'],
attachments[i]['poll']['id']),
"fields": fields,
"color": 4880040
}
request["embeds"].append(embed)
if attachments[i]['type'] == 'link':
embed = {
"thumbnail": {
"url": "https://image.flaticon.com/icons/png/24/61/61020.png",
},
"description": "**[{}]({})**".format(attachments[i]['link']['title'],
attachments[i]['link']['url']),
"image": {
"url": attachments[i]['link']['photo']['sizes'][2]['url']
},
"color": 4880040
}
request["embeds"].append(embed)
else:
pass
except KeyError:
pass
return (request)