Skip to content

Commit 5d4c2ae

Browse files
committed
Add option to add additional center or doctor
1 parent 477c90b commit 5d4c2ae

File tree

3 files changed

+49
-2
lines changed

3 files changed

+49
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ Further optional arguments:
5454
exclude centers
5555
--center-exclude-regex CENTER_EXCLUDE_REGEX
5656
exclude centers by regex
57+
--additional-center "name;city;link", -ac "name;city;link
58+
Add additional centers or doctors e.g. "Corona Impfzentren - Berlin;Berlin;/institut/berlin/ciz-berlin-berlin"
5759
--include-neighbor-city, -n
5860
include neighboring cities
5961
--start-date START_DATE

doctoshotgun.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ def do_login(self, code):
264264

265265
return True
266266

267-
def find_centers(self, where, motives=None):
267+
def find_centers(self, where, motives=None, additional_centers=None):
268268
if motives is None:
269269
motives = self.vaccine_motives.keys()
270270
for city in where:
@@ -300,6 +300,17 @@ def find_centers(self, where, motives=None):
300300
except KeyError:
301301
pass
302302

303+
if additional_centers:
304+
for additional_center in additional_centers:
305+
splitted = additional_center.split(';')
306+
if len(splitted) == 3:
307+
yield {
308+
"name_with_title": splitted[0], #"Corona Impfzentren - Berlin",
309+
"city": splitted[1], #"Berlin",
310+
"url": splitted[2], #"/institut/berlin/ciz-berlin-berlin"
311+
}
312+
313+
303314
def get_patients(self):
304315
self.master_patient.go()
305316

@@ -618,6 +629,8 @@ def main(self, cli_args=None):
618629
action='append', help='exclude centers')
619630
parser.add_argument('--center-exclude-regex',
620631
action='append', help='exclude centers by regex')
632+
parser.add_argument('--additional-center', '-ac',
633+
action='append', help='Add additional centers or doctors: "name;city;link" e.g. "Corona Impfzentren - Berlin;Berlin;/institut/berlin/ciz-berlin-berlin"')
621634
parser.add_argument(
622635
'--include-neighbor-city', '-n', action='store_true', help='include neighboring cities')
623636
parser.add_argument('--start-date', type=str, default=None,
@@ -756,7 +769,7 @@ def main(self, cli_args=None):
756769
while True:
757770
log_ts()
758771
try:
759-
for center in docto.find_centers(cities, motives):
772+
for center in docto.find_centers(cities, motives, args.additional_center):
760773
if args.center:
761774
if center['name_with_title'] not in args.center:
762775
logging.debug("Skipping center '%s'" %

test_browser.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,38 @@ def test_find_centers_de_returns_502_should_fail(tmp_path):
114114
pass
115115

116116

117+
@responses.activate
118+
def test_find_centers_de_should_return_additional_centers(tmp_path):
119+
docto = DoctolibDE("roger.phillibert@gmail.com",
120+
"1234", responses_dirname=tmp_path)
121+
docto.BASEURL = "https://127.0.0.1"
122+
123+
responses.add(
124+
responses.GET,
125+
"https://127.0.0.1/impfung-covid-19-corona/K%C3%B6ln?ref_visit_motive_ids%5B%5D=6768&ref_visit_motive_ids%5B%5D=6769&ref_visit_motive_ids%5B%5D=6936&ref_visit_motive_ids%5B%5D=6937&ref_visit_motive_ids%5B%5D=7978&ref_visit_motive_ids%5B%5D=7109&ref_visit_motive_ids%5B%5D=7110",
126+
status=200,
127+
body="{}"
128+
)
129+
130+
additional_centers = [
131+
'Corona Impfzentren - Köln;Köln;/institut/koeln/ciz-koeln-koeln',
132+
'Dr. Dre;Köln;/allgemeinmedizin/koeln/dr-dre'
133+
]
134+
135+
centers = 0
136+
for result in docto.find_centers(["Köln"], None, additional_centers):
137+
splitted = additional_centers[centers].split(';')
138+
139+
assert result['name_with_title'] == splitted[0]
140+
assert result['city'] == splitted[1]
141+
assert result['url'] == splitted[2]
142+
143+
centers += 1
144+
145+
assert centers == len(additional_centers)
146+
assert len(responses.calls) == 1
147+
148+
117149
@responses.activate
118150
def test_book_slots_should_succeed(tmp_path):
119151
"""

0 commit comments

Comments
 (0)