@@ -249,7 +249,7 @@ class UnixBrowser(BaseBrowser):
249249 remote_action = None
250250 remote_action_newwin = None
251251 remote_action_newtab = None
252- remote_action_incognito = ""
252+ remote_action_incognito = None
253253
254254 def _invoke (self , args , remote , autoraise , url = None ):
255255 raise_opt = []
@@ -288,20 +288,20 @@ def _invoke(self, args, remote, autoraise, url=None):
288288
289289 def open (self , url , new = 0 , autoraise = True ):
290290 sys .audit ("webbrowser.open" , url )
291- if new == 0 :
292- action = self .remote_action
293- elif new == 1 :
294- action = self .remote_action_newwin
295- elif new == 2 :
296- if self .remote_action_newtab is None :
291+ match new :
292+ case 0 :
293+ action = self .remote_action
294+ case 1 :
297295 action = self .remote_action_newwin
298- else :
299- action = self .remote_action_newtab
300- elif new == 3 :
301- action = self .remote_action_incognito
302- else :
303- raise Error ("Bad 'new' parameter to open(); " +
304- f"expected 0, 1, 2, or 3, got { new } " )
296+ case 2 :
297+ if (action := self .remote_action_newtab ) is None :
298+ action = self .remote_action_newwin
299+ case 3 :
300+ if (action := self .remote_action_incognito ) is None :
301+ action = self .remote_action_newwin
302+ case _:
303+ raise Error ("Bad 'new' parameter to open(); " +
304+ f"expected 0, 1, 2, or 3, got { new } " )
305305
306306 args = [arg .replace ("%s" , url ).replace ("%action" , action )
307307 for arg in self .remote_args ]
@@ -333,7 +333,7 @@ class Epiphany(UnixBrowser):
333333 remote_args = ['%action' , '%s' ]
334334 remote_action = "-n"
335335 remote_action_newwin = "-w"
336- remote_action_incognito = "--incognito-mode "
336+ remote_action_incognito = "-i "
337337 background = True
338338
339339
@@ -357,6 +357,7 @@ class Opera(UnixBrowser):
357357 remote_action = ""
358358 remote_action_newwin = "--new-window"
359359 remote_action_newtab = ""
360+ remote_action_incognito = "--private"
360361 background = True
361362
362363
@@ -367,6 +368,7 @@ class Elinks(UnixBrowser):
367368 remote_action = ""
368369 remote_action_newwin = ",new-window"
369370 remote_action_newtab = ",new-tab"
371+ remote_action_incognito = ""
370372 background = False
371373
372374 # elinks doesn't like its stdout to be redirected -
@@ -434,6 +436,7 @@ class Edge(UnixBrowser):
434436 remote_action = ""
435437 remote_action_newwin = "--new-window"
436438 remote_action_newtab = ""
439+ remote_action_incognito = "--inprivate"
437440 background = True
438441
439442
@@ -641,6 +644,7 @@ def main():
641644 usage = """Usage: %s [-l] | [-b browser] [-i | -n | -t | -h] url
642645 -n: open new window
643646 -t: open new tab
647+ -i: open new incognito / private tab
644648 -b <browser>: uses <browser> to open
645649 -h, --help: show help""" % sys .argv [0 ]
646650 try :
@@ -651,19 +655,18 @@ def main():
651655 sys .exit (1 )
652656 new_win = 0
653657 for o , a in opts :
654- if o == '-n' : new_win = 1
655- elif o == '-t' : new_win = 2
656- elif o == "-i" :
657- new_win = 3
658- elif o == "-b" :
659- browser = a
660- elif o == "-l" :
661- for nam in _get_supported_browsers ():
662- print (nam )
663- sys .exit ()
664- elif o == '-h' or o == '--help' :
665- print (usage , file = sys .stderr )
666- sys .exit ()
658+ match o :
659+ case '-n' : new_win = 1
660+ case '-t' : new_win = 2
661+ case '-i' : new_win = 3
662+ case '-b' : browser = a
663+ case '-l' :
664+ for nam in _get_supported_browsers ():
665+ print (nam )
666+ sys .exit ()
667+ case '-h' | '--help' :
668+ print (usage , file = sys .stderr )
669+ sys .exit ()
667670 if len (args ) != 1 :
668671 print (usage , file = sys .stderr )
669672 sys .exit (1 )
0 commit comments