Check-in [d9a4e95fc9]
Overview
| Comment: | Add more detailed user-agent string, introduce conf.version (from pmd) |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
d9a4e95fc91c083da13cf09c8e9733cd |
| User & Date: | mario on 2020-05-21 11:54:03 |
| Other Links: | manifest | tags |
Context
|
2020-05-21
| ||
| 11:54 | safeguard wiki/links retrieval check-in: 3ab6b3fa94 user: mario tags: trunk | |
| 11:54 | Add more detailed user-agent string, introduce conf.version (from pmd) check-in: d9a4e95fc9 user: mario tags: trunk | |
|
2020-05-20
| ||
| 07:02 | Remove *.js remnants again from help/html/ check-in: 6d04cfab23 user: mario tags: trunk | |
Changes
Modified ahttp.py from [e3550d5d4c] to [70322b0ca9].
| ︙ | ︙ | |||
11 12 13 14 15 16 17 | # Provides a http "GET" method, but also does POST and AJAX- # simulating requests too. Hooks into mains gtk.statusbar(). # And can normalize URLs to always carry a trailing slash # after the domain name. from config import * | | < < > > > > > > > > | > | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# Provides a http "GET" method, but also does POST and AJAX-
# simulating requests too. Hooks into mains gtk.statusbar().
# And can normalize URLs to always carry a trailing slash
# after the domain name.
from config import *
import requests, platform
#-- extra debugging, http://stackoverflow.com/questions/10588644/how-can-i-see-the-entire-http-request-thats-being-sent-by-my-python-application
if conf.debug >= 2:
import logging
import httplib
httplib.HTTPConnection.debuglevel = 1
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True
#-- ssl
try:
import certifi
ca_certs = certifi.where()
except Exception as e:
log.WARN("No SSL support. Try `sudo pip install urllib3[secure] certifi`", e)
ca_certs = False
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
#-- hooks to progress meter and status bar in main window
feedback = None
# Sets either text or percentage of main windows' status bar.
#
# Can either take a float parameter (e.g. 0.99 for % indicator)
# or text message. Alternatively two parameters to update both.
def progress_feedback(*args, **kwargs):
# use reset values if none given
if not args:
args = ["", 1.0]
timeout = kwargs.get("timeout", 50)
# send to main win
if feedback:
try: [feedback(d, timeout=timeout) for d in args]
except: pass
#-- more detailed U-A string
def user_agent():
desc = {"Darwin":"MacOS", "Windows":"NT", "Linux":"X11"}.get(platform.system(), "X11")
return "streamtuner2/{} ({}; {} {}; Python/{}; rv:{}) like WinAmp/2.1".format(
conf.version, desc, platform.system(), platform.machine(), platform.python_version(), "72.0"
)
# prepare default query object
session = requests.Session()
#if ca_certs:
# session.certs = certifi
#log.SESS(session.__dict__)
# default HTTP headers for requests
session.headers.update({
"User-Agent": user_agent(),
"Accept": "*/*",
"Accept-Language": "en-US,en,de,es,fr,it,*;q=0.1",
"Accept-Encoding": "gzip, deflate",
"Accept-Charset": "UTF-8, ISO-8859-1;q=0.5, *;q=0.1",
})
|
| ︙ | ︙ |
Modified channels/useragentswitcher.py from [71f46e84c4] to [f18e75e82e].
| ︙ | ︙ | |||
23 24 25 26 27 28 29 |
# override ahttp.session headers, hooks into config dialog
class useragentswitcher():
module = 'useragentswitcher'
meta = plugin_meta()
map = {
| | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# override ahttp.session headers, hooks into config dialog
class useragentswitcher():
module = 'useragentswitcher'
meta = plugin_meta()
map = {
"default": ahttp.user_agent(),
"vlc": "vlc 1.1.0-git-20100330-0003",
"firefox": "Mozilla/5.0 (Windows NT 6.3; rv:62.0) Gecko/20100101 Firefox/62.0",
"chrome": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
"android": "Mozilla/5.0 (Linux; U; Android 4.2; en-us; Nexus 10 Build/JVP15I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
"msie": "Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko",
"itunes": "iTunes/9.0.3 (Macintosh; U; Intel Mac OS X 10_6_2; en-ca)",
"googlebot": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
|
| ︙ | ︙ |
Modified config.py from [0fccb051e3] to [f8ba9ac1af].
| ︙ | ︙ | |||
98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
del last["share"]
self.update(last)
self.migrate()
# store defaults in file
else:
self.save("settings")
self.firstrun = 1
# temporary files
if not os.path.exists(self.tmp):
os.mkdir(self.tmp)
# add argv
self.args = self.init_args(argparse.ArgumentParser())
| > > > > | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
del last["share"]
self.update(last)
self.migrate()
# store defaults in file
else:
self.save("settings")
self.firstrun = 1
try:
self.version = plugin_meta(frame=3).get("version", "2.2")
except Exception as e:
self.version = "2.2"
# temporary files
if not os.path.exists(self.tmp):
os.mkdir(self.tmp)
# add argv
self.args = self.init_args(argparse.ArgumentParser())
|
| ︙ | ︙ |