monkey patch `requests.Response.text` to remove BOM header

pull/475/head
yzqzss 1 year ago committed by yzqzss
parent 20691b56c5
commit 48670ab4db

@ -5,6 +5,7 @@ def getJSON(request: requests.Response):
"""Strip Unicode BOM"""
if request.text.startswith("\ufeff"):
request.encoding = "utf-8-sig"
# request.encoding = request.apparent_encoding
try:
return request.json()
except:

@ -19,6 +19,7 @@ from wikiteam3.utils import getUserAgent
from wikiteam3.dumpgenerator.version import getVersion
from wikiteam3.dumpgenerator.api import getWikiEngine
from wikiteam3.dumpgenerator.config import Config, newConfig
from wikiteam3.utils import mod_requests_text
from typing import *
@ -152,7 +153,7 @@ def getParameters(params=None) -> Tuple[Config, Dict]:
if args.cookies:
cj.load(args.cookies)
print("Using cookies from %s" % args.cookies)
mod_requests_text(requests)
session = requests.Session()
try:
from requests.adapters import HTTPAdapter

@ -5,3 +5,4 @@ from .xmlutil import fixBOM
from .user_agent import getUserAgent
from .domain import domain2prefix
from .wiki_avoid import avoidWikimediaProjects
from .monkey_patch import mod_requests_text

@ -0,0 +1,6 @@
import requests
def mod_requests_text(requests: requests):
def new_text(self):
return self.content.lstrip(b'\xef\xbb\xbf').decode(self.encoding)
requests.Response.text = property(new_text)
Loading…
Cancel
Save