Как правильно перенаправить запрос от QWebEngineUrlRequestInfo?

Пишу небольшой плагин для Falkon, задача которого очень проста: перенаправить запросы с youtube.com на Piped.video. Он это делает, но только если в URL-адресе нет ничего, кроме домена (т. е. просто «youtube.com»), и если он есть, страница YouTube появляется с ошибкой подключения к Интернету. Вот код:

      import Falkon
from PySide2 import QtCore, QtGui, QtWidgets, QtWebEngineCore
from urllib.parse import urlparse


class YoutubeToPiped(Falkon.PluginInterface, QtCore.QObject):
    def init(self, state, settingsPath):
        self.interceptor = YoutubeToPipedInterceptor()

        Falkon.MainApplication.instance().networkManager().installUrlInterceptor(self.interceptor)

    def unload(self):
        pass

    def testPlugin(self):
        return True


class YoutubeToPipedInterceptor(Falkon.UrlInterceptor):
    def interceptRequest(self, info: QtWebEngineCore.QWebEngineUrlRequestInfo):
        requestUrl = urlparse(info.requestUrl().toString())
        if "youtube.com" in requestUrl.netloc or "youtu.be" in requestUrl.netloc:
            info.redirect(QtCore.QUrl(f"https://piped.video{requestUrl.path}?{requestUrl.query}"))


Falkon.registerPlugin(YoutubeToPiped())

Что я делаю не так и/или есть ли другой способ решить эту проблему?

0 ответов

Другие вопросы по тегам