Skip to content

Commit 36bfa5d

Browse files
committed
simplify cookie handling
Cookies can now be handed in as an extra parameter for the requests library.
1 parent 36f1b85 commit 36bfa5d

File tree

2 files changed

+13
-28
lines changed

2 files changed

+13
-28
lines changed

tools/pyosmium-get-changes

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,14 @@ cookies to the server and will save received cookies to the jar file.
2727

2828
from argparse import ArgumentParser, RawDescriptionHelpFormatter, ArgumentTypeError
2929
import datetime as dt
30+
import http.cookiejar as cookiejarlib
31+
3032
from osmium.replication import server as rserv
3133
from osmium.replication import newest_change_from_file
3234
from osmium.replication.utils import get_replication_header
3335
from osmium.version import pyosmium_release
3436
from osmium import SimpleHandler, WriteHandler
3537

36-
try:
37-
import http.cookiejar as cookiejarlib
38-
except ImportError:
39-
import cookielib as cookiejarlib
40-
import urllib.request as urlrequest
4138

4239
import re
4340
import sys
@@ -213,14 +210,12 @@ def main(args):
213210
extra_request_params = dict(stream=True,
214211
timeout=options.socket_timeout or None)
215212

216-
with rserv.ReplicationServer(url, extra_request_params=extra_request_params) as svr:
217-
if options.cookie is not None:
218-
# According to the documentation, the cookie jar loads the file only if FileCookieJar.load is called.
219-
cookie_jar = cookiejarlib.MozillaCookieJar(options.cookie)
220-
cookie_jar.load(options.cookie)
221-
opener = urlrequest.build_opener(urlrequest.HTTPCookieProcessor(cookie_jar))
222-
svr.open_url = opener.open
213+
if options.cookie is not None:
214+
cookie_jar = cookiejarlib.MozillaCookieJar(options.cookie)
215+
cookie_jar.load(options.cookie)
216+
extra_request_params['cookies'] = cookie_jar
223217

218+
with rserv.ReplicationServer(url, extra_request_params=extra_request_params) as svr:
224219
startseq = options.start.get_sequence(svr)
225220
if startseq is None:
226221
log.error("Cannot read state file from server. Is the URL correct?")

tools/pyosmium-up-to-date

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import re
3535
import sys
3636
import traceback
3737
import logging
38+
import http.cookiejar
3839

3940
from argparse import ArgumentParser, RawDescriptionHelpFormatter
4041
import datetime as dt
@@ -46,15 +47,6 @@ from textwrap import dedent as msgfmt
4647
from tempfile import mktemp
4748
import os.path
4849

49-
try:
50-
import http.cookiejar as cookiejarlib
51-
except ImportError:
52-
import cookielib as cookiejarlib
53-
try:
54-
import urllib.request as urlrequest
55-
except ImportError:
56-
import urllib2 as urlrequest
57-
5850
log = logging.getLogger()
5951

6052
def update_from_osm_server(ts, options):
@@ -72,14 +64,12 @@ def update_from_custom_server(url, seq, ts, options):
7264
extra_request_params = dict(stream=True,
7365
timeout=options.socket_timeout or None)
7466

75-
with rserv.ReplicationServer(url, "osc.gz", extra_request_params=extra_request_params) as svr:
76-
if options.cookie is not None:
77-
# According to the documentation, the cookie jar loads the file only if FileCookieJar.load is called.
78-
cookie_jar = cookiejarlib.MozillaCookieJar(options.cookie)
79-
cookie_jar.load(options.cookie)
80-
opener = urlrequest.build_opener(urlrequest.HTTPCookieProcessor(cookie_jar))
81-
svr.open_url = opener.open
67+
if options.cookie is not None:
68+
cookie_jar = http.cookiejar.MozillaCookieJar(options.cookie)
69+
cookie_jar.load(options.cookie)
70+
extra_request_params['cookies'] = cookie_jar
8271

72+
with rserv.ReplicationServer(url, "osc.gz", extra_request_params=extra_request_params) as svr:
8373
log.info("Using replication service at %s", url)
8474

8575
current = svr.get_state_info()

0 commit comments

Comments
 (0)