[directlink] manually encode Referer URLs (fixes #1647)

Trying to send a non-latin-1-encodable header raises an exception,
so we encode the Referer value ourselves with 'errors=ignore'.
This commit is contained in:
Mike Fährmann
2021-06-21 20:28:19 +02:00
parent 8bdeb2a6dd
commit a416e54765

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2017-2020 Mike Fährmann
# Copyright 2017-2021 Mike Fährmann
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -59,7 +59,8 @@ class DirectlinkExtractor(Extractor):
data["path"], _, name = data["path"].rpartition("/")
data["filename"], _, ext = name.rpartition(".")
data["extension"] = ext.lower()
data["_http_headers"] = {"Referer": self.url}
data["_http_headers"] = {
"Referer": self.url.encode("latin-1", "ignore")}
yield Message.Version, 1
yield Message.Directory, data