forked from cadence/breezewiki
		
	Fix failing test after search was refactored
This commit is contained in:
		
							parent
							
								
									b8a6c5198d
								
							
						
					
					
						commit
						b02e2a4053
					
				
					 3 changed files with 12 additions and 10 deletions
				
			
		| 
						 | 
					@ -25,8 +25,8 @@
 | 
				
			||||||
 page-search)
 | 
					 page-search)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define search-providers
 | 
					(define search-providers
 | 
				
			||||||
  (hash "fandom" generate-results-content-fandom
 | 
					  (hash "fandom" search-fandom
 | 
				
			||||||
        "solr" generate-results-content-solr))
 | 
					        "solr" search-solr))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; this takes the info we gathered from fandom and makes the big fat x-expression page
 | 
					;; this takes the info we gathered from fandom and makes the big fat x-expression page
 | 
				
			||||||
(define (generate-results-page req source-url wikiname query results-content #:siteinfo [siteinfo #f])
 | 
					(define (generate-results-page req source-url wikiname query results-content #:siteinfo [siteinfo #f])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,15 +8,15 @@
 | 
				
			||||||
         "../lib/xexpr-utils.rkt")
 | 
					         "../lib/xexpr-utils.rkt")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(provide
 | 
					(provide
 | 
				
			||||||
 generate-results-content-fandom)
 | 
					 search-fandom)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(module+ test
 | 
					(module+ test
 | 
				
			||||||
  (require rackunit
 | 
					  (require rackunit
 | 
				
			||||||
           "test-utils.rkt")
 | 
					           "test-utils.rkt")
 | 
				
			||||||
  (define search-json-data
 | 
					  (define search-results-data
 | 
				
			||||||
    '#hasheq((batchcomplete . #t) (query . #hasheq((search . (#hasheq((ns . 0) (pageid . 219) (size . 1482) (snippet . "") (timestamp . "2022-08-21T08:54:23Z") (title . "Gacha Capsule") (wordcount . 214)) #hasheq((ns . 0) (pageid . 201) (size . 1198) (snippet . "") (timestamp . "2022-07-11T17:52:47Z") (title . "Badges") (wordcount . 181)))))))))
 | 
					    '(#hasheq((ns . 0) (pageid . 219) (size . 1482) (snippet . "") (timestamp . "2022-08-21T08:54:23Z") (title . "Gacha Capsule") (wordcount . 214)) #hasheq((ns . 0) (pageid . 201) (size . 1198) (snippet . "") (timestamp . "2022-07-11T17:52:47Z") (title . "Badges") (wordcount . 181)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (generate-results-content-fandom wikiname query params)
 | 
					(define (search-fandom wikiname query params)
 | 
				
			||||||
  ;; constructing the URL where I want to get fandom data from...
 | 
					  ;; constructing the URL where I want to get fandom data from...
 | 
				
			||||||
  (define origin (format "https://~a.fandom.com" wikiname))
 | 
					  (define origin (format "https://~a.fandom.com" wikiname))
 | 
				
			||||||
  ;; the dest-URL will look something like https://minecraft.fandom.com/api.php?action=query&list=search&srsearch=Spawner&formatversion=2&format=json
 | 
					  ;; the dest-URL will look something like https://minecraft.fandom.com/api.php?action=query&list=search&srsearch=Spawner&formatversion=2&format=json
 | 
				
			||||||
| 
						 | 
					@ -33,8 +33,10 @@
 | 
				
			||||||
  (define res (easy:get dest-url #:timeouts timeouts))
 | 
					  (define res (easy:get dest-url #:timeouts timeouts))
 | 
				
			||||||
  (define json (easy:response-json res))
 | 
					  (define json (easy:response-json res))
 | 
				
			||||||
  (define search-results (jp "/query/search" json))
 | 
					  (define search-results (jp "/query/search" json))
 | 
				
			||||||
 | 
					  (generate-results-content-fandom wikiname query search-results))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ;; generate content for display in the wiki page layout
 | 
					;;; generate content for display in the wiki page layout
 | 
				
			||||||
 | 
					(define (generate-results-content-fandom wikiname query search-results)
 | 
				
			||||||
  `(div (@ (class "mw-parser-output"))
 | 
					  `(div (@ (class "mw-parser-output"))
 | 
				
			||||||
        ;; header before the search results showing how many we found
 | 
					        ;; header before the search results showing how many we found
 | 
				
			||||||
        (p ,(format "~a results found for " (length search-results))
 | 
					        (p ,(format "~a results found for " (length search-results))
 | 
				
			||||||
| 
						 | 
					@ -60,4 +62,4 @@
 | 
				
			||||||
(module+ test
 | 
					(module+ test
 | 
				
			||||||
  (parameterize ([(config-parameter 'feature_offline::only) "false"])
 | 
					  (parameterize ([(config-parameter 'feature_offline::only) "false"])
 | 
				
			||||||
    (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Gacha_Capsule")
 | 
					    (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Gacha_Capsule")
 | 
				
			||||||
                                      (generate-results-content-fandom test-req "" "test" "Gacha" search-json-data))))))
 | 
					                                      (generate-results-content-fandom "test" "Gacha" search-results-data))))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,11 +9,11 @@
 | 
				
			||||||
         "../lib/xexpr-utils.rkt")
 | 
					         "../lib/xexpr-utils.rkt")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(provide
 | 
					(provide
 | 
				
			||||||
 generate-results-content-solr)
 | 
					 search-solr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(struct result^ (hl-title hl-body kb words page-path) #:transparent)
 | 
					(struct result^ (hl-title hl-body kb words page-path) #:transparent)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (generate-results-content-solr wikiname query params)
 | 
					(define (search-solr wikiname query params)
 | 
				
			||||||
  ;; grab things from params that would modify the search
 | 
					  ;; grab things from params that would modify the search
 | 
				
			||||||
  (define op (if (equal? (dict-ref params 'op #f) "or") '("or" . "OR") '("and" . "AND")))
 | 
					  (define op (if (equal? (dict-ref params 'op #f) "or") '("or" . "OR") '("and" . "AND")))
 | 
				
			||||||
  (define sort (if (equal? (dict-ref params 'sort #f) "len") '("len" . "len desc") '("relevance" . "score desc")))
 | 
					  (define sort (if (equal? (dict-ref params 'sort #f) "len") '("len" . "len desc") '("relevance" . "score desc")))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue