Disable category, file, search pages in offline mode
This commit is contained in:
		
							parent
							
								
									b8ccd6cc3e
								
							
						
					
					
						commit
						9611b8c164
					
				
					 3 changed files with 156 additions and 138 deletions
				
			
		|  | @ -65,6 +65,12 @@ | |||
| 
 | ||||
| (define (page-category req) | ||||
|   (response-handler | ||||
|    (cond | ||||
|      [(config-true? 'feature_offline::only) | ||||
|       (response/output #:code 503 | ||||
|                        #:headers (build-headers always-headers) | ||||
|                        (λ (out) (write-html '(p "Sorry, category pages are temporarily disabled. I hope to have them back soon.") out)))] | ||||
|      [else | ||||
|       (define wikiname (path/param-path (first (url-path (request-uri req))))) | ||||
|       (define prefixed-category (string-join (map path/param-path (cddr (url-path (request-uri req)))) "/")) | ||||
|       (define origin (format "https://~a.fandom.com" wikiname)) | ||||
|  | @ -122,7 +128,7 @@ | |||
|        #:code 200 | ||||
|        #:headers (build-headers always-headers) | ||||
|        (λ (out) | ||||
|       (write-html body out))))) | ||||
|          (write-html body out)))]))) | ||||
| (module+ test | ||||
|   (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Ankle_Monitor") | ||||
|                                     (generate-results-page | ||||
|  |  | |||
|  | @ -104,6 +104,12 @@ | |||
| 
 | ||||
| (define (page-file req) | ||||
|   (response-handler | ||||
|    (cond | ||||
|      [(config-true? 'feature_offline::only) | ||||
|       (response/output #:code 503 | ||||
|                        #:headers (build-headers always-headers) | ||||
|                        (λ (out) (write-html '(p "Sorry, file pages are temporarily disabled. I hope to have them back soon.") out)))] | ||||
|      [else | ||||
|       (define wikiname (path/param-path (first (url-path (request-uri req))))) | ||||
|       (define prefixed-title (path/param-path (caddr (url-path (request-uri req))))) | ||||
|       (define origin (format "https://~a.fandom.com" wikiname)) | ||||
|  | @ -147,7 +153,7 @@ | |||
|              (xexp->html body)) | ||||
|            (response/output #:code 200 | ||||
|                             #:headers (build-headers always-headers) | ||||
|                          (λ (out) (write-html body out))))))) | ||||
|                             (λ (out) (write-html body out)))))]))) | ||||
| (module+ test | ||||
|   (parameterize ([(config-parameter 'strict_proxy) "true"]) | ||||
|     (check-equal? (get-media-html "https://static.wikia.nocookie.net/a" "image/jpeg") | ||||
|  |  | |||
|  | @ -68,6 +68,12 @@ | |||
| (define (page-search req) | ||||
|   ;; this just means, catch any errors and display them in the browser. it's a function somewhere else | ||||
|   (response-handler | ||||
|    (cond | ||||
|      [(config-true? 'feature_offline::only) | ||||
|       (response/output #:code 503 | ||||
|                        #:headers (build-headers always-headers) | ||||
|                        (λ (out) (write-html '(body (p "Sorry, full search is temporarily broken, but I have a plan to fix it.") (p "In the meantime, please use the popup search suggestions below the search box.")) out)))] | ||||
|      [else | ||||
|       ;; the URL will look like "/minecraft/wiki/Special:Search?q=Spawner" | ||||
|       ;; grab the first part to use as the wikiname, in this case, "minecraft" | ||||
|       (define wikiname (path/param-path (first (url-path (request-uri req))))) | ||||
|  | @ -109,7 +115,7 @@ | |||
|        #:code 200 | ||||
|        #:headers (build-headers always-headers) | ||||
|        (λ (out) | ||||
|       (write-html body out))))) | ||||
|          (write-html body out)))]))) | ||||
| (module+ test | ||||
|   (parameterize ([(config-parameter 'feature_offline::only) "false"]) | ||||
|     (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Gacha_Capsule") | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue