mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-12 06:03:37 +00:00
60 lines
1.2 KiB
Python
60 lines
1.2 KiB
Python
import logging
|
|
|
|
import requests
|
|
|
|
from cachecontrol.adapter import CacheControlAdapter
|
|
from cachecontrol.cache import DictCache
|
|
from cachecontrol.controller import logger
|
|
|
|
from argparse import ArgumentParser
|
|
|
|
|
|
def setup_logging():
|
|
logger.setLevel(logging.DEBUG)
|
|
handler = logging.StreamHandler()
|
|
logger.addHandler(handler)
|
|
|
|
|
|
def get_session():
|
|
adapter = CacheControlAdapter(
|
|
DictCache(),
|
|
cache_etags=True,
|
|
serializer=None,
|
|
heuristic=None,
|
|
)
|
|
sess = requests.Session()
|
|
sess.mount('http://', adapter)
|
|
sess.mount('https://', adapter)
|
|
|
|
sess.cache_controller = adapter.controller
|
|
return sess
|
|
|
|
|
|
def get_args():
|
|
parser = ArgumentParser()
|
|
parser.add_argument('url', help='The URL to try and cache')
|
|
return parser.parse_args()
|
|
|
|
|
|
def main(args=None):
|
|
args = get_args()
|
|
sess = get_session()
|
|
|
|
# Make a request to get a response
|
|
resp = sess.get(args.url)
|
|
|
|
# Turn on logging
|
|
setup_logging()
|
|
|
|
# try setting the cache
|
|
sess.cache_controller.cache_response(resp.request, resp.raw)
|
|
|
|
# Now try to get it
|
|
if sess.cache_controller.cached_request(resp.request):
|
|
print('Cached!')
|
|
else:
|
|
print('Not cached :(')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|