@@ -99,13 +99,14 @@ def finish(self) -> None:
9999
100100 def process_result (self , result : CheckResult ) -> None :
101101 filename = self .env .doc2path (result .docname , False )
102+ res_uri = result .uri
102103
103104 linkstat : dict [str , str | int | _Status ] = {
104105 'filename' : str (filename ),
105106 'lineno' : result .lineno ,
106107 'status' : result .status ,
107108 'code' : result .code ,
108- 'uri' : result . uri ,
109+ 'uri' : res_uri ,
109110 'info' : result .message ,
110111 }
111112 self .write_linkstat (linkstat )
@@ -119,71 +120,75 @@ def process_result(self, result: CheckResult) -> None:
119120 pass
120121 case _Status .IGNORED :
121122 if result .message :
122- msg = f'{ result . uri } : { result .message } '
123+ msg = f'{ res_uri } : { result .message } '
123124 else :
124- msg = result . uri
125+ msg = res_uri
125126 logger .info (darkgray ('-ignored- ' ) + msg )
126127 case _Status .WORKING :
127- logger .info (darkgreen ('ok ' ) + f'{ result . uri } { result .message } ' )
128+ logger .info (darkgreen ('ok ' ) + f'{ res_uri } { result .message } ' )
128129 case _Status .TIMEOUT :
129130 if self .app .quiet :
130- msg = 'timeout ' + f'{ result . uri } { result .message } '
131+ msg = 'timeout ' + f'{ res_uri } { result .message } '
131132 logger .warning (msg , location = (result .docname , result .lineno ))
132133 else :
133- msg = red ('timeout ' ) + result . uri + red (f' - { result .message } ' )
134+ msg = red ('timeout ' ) + res_uri + red (f' - { result .message } ' )
134135 logger .info (msg )
135136 self .write_entry (
136137 _Status .TIMEOUT ,
137138 result .docname ,
138139 filename ,
139140 result .lineno ,
140- f'{ result . uri } : { result .message } ' ,
141+ f'{ res_uri } : { result .message } ' ,
141142 )
142143 self .timed_out_hyperlinks += 1
143144 case _Status .BROKEN :
144145 if self .app .quiet :
145146 logger .warning (
146147 __ ('broken link: %s (%s)' ),
147- result . uri ,
148+ res_uri ,
148149 result .message ,
149150 location = (result .docname , result .lineno ),
150151 )
151152 else :
152- msg = red ('broken ' ) + result . uri + red (f' - { result .message } ' )
153+ msg = red ('broken ' ) + res_uri + red (f' - { result .message } ' )
153154 logger .info (msg )
154155 self .write_entry (
155156 _Status .BROKEN ,
156157 result .docname ,
157158 filename ,
158159 result .lineno ,
159- f'{ result . uri } : { result .message } ' ,
160+ f'{ res_uri } : { result .message } ' ,
160161 )
161162 self .broken_hyperlinks += 1
162163 case _Status .REDIRECTED :
163- try :
164- text , color = {
165- 301 : ('permanently' , purple ),
166- 302 : ('with Found' , purple ),
167- 303 : ('with See Other' , purple ),
168- 307 : ('temporarily' , turquoise ),
169- 308 : ('permanently' , purple ),
170- }[result .code ]
171- except KeyError :
172- text , color = ('with unknown code' , purple )
164+ match result .code :
165+ case 301 :
166+ text = 'permanently'
167+ case 302 :
168+ text = 'with Found'
169+ case 303 :
170+ text = 'with See Other'
171+ case 307 :
172+ text = 'temporarily'
173+ case 308 :
174+ text = 'permanently'
175+ case _:
176+ text = 'with unknown code'
173177 linkstat ['text' ] = text
174178 redirection = f'{ text } to { result .message } '
175179 if self .config .linkcheck_allowed_redirects :
176- msg = f'redirect { result . uri } - { redirection } '
180+ msg = f'redirect { res_uri } - { redirection } '
177181 logger .warning (msg , location = (result .docname , result .lineno ))
178182 else :
179- msg = color ('redirect ' ) + result .uri + color (' - ' + redirection )
183+ colour = turquoise if result .code == 307 else purple
184+ msg = colour ('redirect ' ) + res_uri + colour (f' - { redirection } ' )
180185 logger .info (msg )
181186 self .write_entry (
182187 f'redirected { text } ' ,
183188 result .docname ,
184189 filename ,
185190 result .lineno ,
186- f'{ result . uri } to { result .message } ' ,
191+ f'{ res_uri } to { result .message } ' ,
187192 )
188193 case _Status .UNKNOWN :
189194 msg = 'Unknown status.'
0 commit comments