mirror of
https://github.com/EDeev/vkrepost_to_tg.git
synced 2026-06-15 10:51:00 +03:00
57 lines
2.6 KiB
Python
57 lines
2.6 KiB
Python
import config
|
|
|
|
|
|
def login(user_id, du, db):
|
|
user_id = int(user_id)
|
|
if not du.user_exists(user_id): du.add_user(user_id)
|
|
|
|
user_id = du.get_user_id(user_id)
|
|
if not db.infoUser_exists(user_id): db.add_infoUser(user_id)
|
|
|
|
return user_id
|
|
|
|
|
|
def pars_post(types, output):
|
|
media, ttl, url, audio, poll, link = [], [], [], [], [], []
|
|
|
|
for group in output[0]:
|
|
if group[0] == "poll": poll = group[1]
|
|
elif group[0] == "link": link.append(group[1])
|
|
elif group[0] == "video": ttl.append(group[1])
|
|
elif group[0] == "doc" and group[1][2] != 4: url.append([group[1][0], group[1][1], group[1][3]])
|
|
elif group[0] == "audio": audio.append(types.InputMediaAudio(media=group[1][1], parse_mode=types.ParseMode.MARKDOWN,
|
|
caption=f"*Название: {group[1][0]} / Автор: {group[1][2]}*"))
|
|
|
|
if output[1] != "": text = f"{output[2]}\n\n*{output[1]}*\n"
|
|
else: text = f"{output[2]}\n"
|
|
|
|
if poll:
|
|
text += f"\n*> Проводиться {config.anonymous[poll[3]]} {config.unvote[poll[2]]}!"
|
|
text += f"*\n*---------------------*\n*- Вопрос: {poll[0]} [{poll[1]}]*\n"
|
|
text += ''.join([f'*{i}. Ответ: {ans[0]} [{ans[1]}]*\n' for i, ans in enumerate(poll[4])])
|
|
text += "*---------------------*\n"
|
|
|
|
if ttl: text += f"\n*Видео -* находятся в оригинальном посте в количестве {len(ttl)} записей\n"
|
|
|
|
if url:
|
|
for data in url:
|
|
k, dt = 0, data[2]
|
|
while True:
|
|
if dt > 1024: dt = dt // 1024; k += 1
|
|
else: break
|
|
text += f"\n*Документ - [* [{data[0]}]({data[1]}) ({dt} {config.data[k]}) *]*"
|
|
text += "\n"
|
|
|
|
if link: text += ''.join([f"\n*Ссылка - [* [{s[0]}]({s[1]}) *]*" for s in link]) + "\n"
|
|
if audio: text += '\n*« Также присутствуют аудио файлы »*'
|
|
|
|
for i, group in enumerate(output[0]):
|
|
if group[0] == "photo":
|
|
if i: media.append(types.InputMediaPhoto(media=group[1]))
|
|
else: media.append(types.InputMediaPhoto(media=group[1], caption=text, parse_mode=types.ParseMode.MARKDOWN))
|
|
elif group[0] == "doc":
|
|
if group[1][2] == 4:
|
|
if i: media.append(types.InputMediaPhoto(media=group[1][1]))
|
|
else: media.append(types.InputMediaPhoto(media=group[1][1], caption=text, parse_mode=types.ParseMode.MARKDOWN))
|
|
|
|
return text, audio, media
|