qwertyadrian/TG_AutoPoster

Пост не дублируется в канал Telegram, если в оригинальном посте VK присутствует embedded YouTube Video URL

x0x8x opened this issue · 1 comments

x0x8x commented

Опишите ошибку

  • Пост не дублируется в канал Telegram, если в оригинальном посте VK присутствует embedded на YouTube Video URL
  • Пост на канале Telegram создаётся, но без какого-либо встроенного видео
  • Клиент TG_AutoPoster.py вылетает, Трейсбэк прилагаю

Как получить ошибку
Создать пост со встроенной ютуб ссылкой
Пост с ссылкой на ютуб видео в VK

Ожидаемое поведение
Абсолютно идентичный пост с Embedded видео на YouTube.com

Traceback

   Traceback (most recent call last):
  File "TG_AutoPoster.py", line 167, in <module>
    autoposter.infinity_run(interval=sleep_time)
  File "TG_AutoPoster.py", line 141, in infinity_run
    self.run()
  File "TG_AutoPoster.py", line 114, in run
    for post in posts:
  File "/opt/TG_AutoPoster/parsers.py", line 81, in get_new_posts
    parsed_post.generate_post()
  File "/opt/TG_AutoPoster/parsers.py", line 157, in generate_post
    self.generate_music()
  File "/opt/TG_AutoPoster/parsers.py", line 244, in generate_music
    file = download(track["url"], out=name)
  File "/usr/local/lib/python3.7/dist-packages/wget.py", line 526, in download
    (tmpfile, headers) = ulib.urlretrieve(binurl, tmpfile, callback)
  File "/usr/lib/python3.7/urllib/request.py", line 247, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "/usr/lib/python3.7/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.7/urllib/request.py", line 510, in open
    req = Request(fullurl, data)
  File "/usr/lib/python3.7/urllib/request.py", line 328, in __init__
    self.full_url = url
  File "/usr/lib/python3.7/urllib/request.py", line 354, in full_url
    self._parse()
  File "/usr/lib/python3.7/urllib/request.py", line 383, in _parse
    raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: ''

image

Как должно быть

Message(
 id=1,
 to_id=PeerChannel(
  channel_id=1234567890
 ),
 message='https://youtu.be/Eq6H2qFIIGg',
 out=True,
 post=True,
 media=MessageMediaWebPage(
  webpage=WebPage(
   id=5127856301393798154,
   url='https://youtu.be/Eq6H2qFIIGg',
   display_url='youtube.com/watch?v=Eq6H2qFIIGg',
   hash=0,
   type='video',
   site_name='YouTube',
   title='Hero Pool Draw | Watchpoint | Hosted by Houston Outlaws',
   description="Watch the first Hero Pool Draw of the season! Find out which heroes will be unavailable for next weekend's matches in Washington. Week 4 of the 2020 Overwatc...",
   embed_url='https://www.youtube.com/embed/Eq6H2qFIIGg',
   embed_type='iframe',
   embed_width=1280,
   embed_height=720,
   duration=None,
   author=None,
   document=None,
   cached_page=None,
   attributes=[])),
 entities=[
  MessageEntityUrl(
   offset=0,
   length=28
  )])

image

Это не совсем баг, так как при отправки всех сообщений отключен предпросмотр ссылок. Я ближайшее время добавлю возможность управлять предпросмотром ссылок через файл конфигурации.

Насчет вашего Traceback. Оно не имеет никакого отношения к отправке поста с embedded YouTube Video URL. В данном случае, это ошибка получения аудиозаписей этого поста. Чтобы ее исправить установите мой форк vk_api (с помощью команды pip3 install -U git+https://github.com/qwertyadrian/vk_api). Эта зависимость также указана в файле requirements.txt.