From 5b4efdd292d84028a4222c3592d86b547db96574 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Thu, 13 Oct 2022 22:40:14 +1300 Subject: [PATCH 1/5] Add a funny redirect that I can make use of later --- breezewiki.rkt | 2 ++ dist.rkt | 2 ++ src/dispatcher-tree.rkt | 1 + src/page-home.rkt | 2 +- src/page-it-works.rkt | 15 +++++++++++++++ 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/page-it-works.rkt diff --git a/breezewiki.rkt b/breezewiki.rkt index 3fc9b8f..a8b8c28 100644 --- a/breezewiki.rkt +++ b/breezewiki.rkt @@ -12,6 +12,7 @@ (require-reloadable "src/page-category.rkt" page-category) (require-reloadable "src/page-global-search.rkt" page-global-search) (require-reloadable "src/page-home.rkt" page-home) +(require-reloadable "src/page-it-works.rkt" page-it-works) (require-reloadable "src/page-not-found.rkt" page-not-found) (require-reloadable "src/page-proxy.rkt" page-proxy) (require-reloadable "src/page-redirect-wiki-home.rkt" redirect-wiki-home) @@ -35,6 +36,7 @@ page-category page-global-search page-home + page-it-works page-not-found page-proxy page-search diff --git a/dist.rkt b/dist.rkt index 805df48..777e81a 100644 --- a/dist.rkt +++ b/dist.rkt @@ -6,6 +6,7 @@ (require (only-in "src/page-category.rkt" page-category)) (require (only-in "src/page-global-search.rkt" page-global-search)) (require (only-in "src/page-home.rkt" page-home)) +(require (only-in "src/page-it-works.rkt" page-it-works)) (require (only-in "src/page-not-found.rkt" page-not-found)) (require (only-in "src/page-proxy.rkt" page-proxy)) (require (only-in "src/page-redirect-wiki-home.rkt" redirect-wiki-home)) @@ -24,6 +25,7 @@ page-category page-global-search page-home + page-it-works page-not-found page-proxy page-search diff --git a/src/dispatcher-tree.rkt b/src/dispatcher-tree.rkt index b68cf9c..9e072bc 100644 --- a/src/dispatcher-tree.rkt +++ b/src/dispatcher-tree.rkt @@ -44,6 +44,7 @@ (pathprocedure:make "/" (hash-ref ds 'page-home)) (pathprocedure:make "/proxy" (hash-ref ds 'page-proxy)) (pathprocedure:make "/search" (hash-ref ds 'page-global-search)) + (pathprocedure:make "/buddyfight/wiki/It_Doesn't_Work!!" (hash-ref ds 'page-it-works)) (filter:make (pregexp (format "^/~a/wiki/Category:.+$" px-wikiname)) (lift:make (hash-ref ds 'page-category))) (filter:make (pregexp (format "^/~a/wiki/File:.+$" px-wikiname)) (lift:make (hash-ref ds 'page-file))) (filter:make (pregexp (format "^/~a/wiki/.+$" px-wikiname)) (lift:make (hash-ref ds 'page-wiki))) diff --git a/src/page-home.rkt b/src/page-home.rkt index b16f66a..86c316d 100644 --- a/src/page-home.rkt +++ b/src/page-home.rkt @@ -49,7 +49,7 @@ ,(apply format "~a: ~a" x)))) examples)) (h2 "Testimonials") - (p (@ (class "testimonial")) ">So glad to never have to touch fandom's garbage platform directly ever again —RNL") + (p (@ (class "testimonial")) ">so glad someone introduced me to a F*ndom alternative (BreezeWiki) because that x-factorized spillway of an ad-infested radioactive dumpsite can go die in a fire —RB") (p (@ (class "testimonial")) ">you are so right that fandom still sucks even with adblock somehow. even zapping all the stupid padding it still sucks —Minimus") (p (@ (class "testimonial")) ">attempting to go to a wiki's forum page with breezewiki doesn't work, which is based honestly —Tom Skeleton") (p (@ (class "testimonial")) ">Fandom pages crashing and closing, taking forever to load and locking up as they load the ads on the site... they are causing the site to crash because they are trying to load video ads both at the top and bottom of the site as well as two or three banner ads, then a massive top of site ad and eventually my anti-virus shuts the whole site down because it's literally pulling more resources than WoW in ultra settings... —Anonymous") diff --git a/src/page-it-works.rkt b/src/page-it-works.rkt new file mode 100644 index 0000000..ce9e05f --- /dev/null +++ b/src/page-it-works.rkt @@ -0,0 +1,15 @@ +#lang racket/base +(require racket/dict + net/url + web-server/http + web-server/dispatchers/dispatch + "application-globals.rkt") + +(provide + page-it-works) + +(define (page-it-works req) + (define b? (dict-ref (url-query (request-uri req)) 'b #f)) + (if b? + (generate-redirect "/stampylongnose/wiki/It_Works") + (next-dispatcher))) From 2e6fa6088b91cfc1a920cc42e5866f141e8cbe4d Mon Sep 17 00:00:00 2001 From: blankie Date: Mon, 3 Oct 2022 21:56:17 +0700 Subject: [PATCH 2/5] Proxy links with class image Some images don't have an image-thumbnail class, for example: https://breezewiki.pussthecat.org/minecraft/wiki/Enchanting%20Table#Usage --- src/page-wiki.rkt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/page-wiki.rkt b/src/page-wiki.rkt index 07f2f81..6499a86 100644 --- a/src/page-wiki.rkt +++ b/src/page-wiki.rkt @@ -188,7 +188,8 @@ (λ (v) (and (config-true? 'strict_proxy) (eq? element-type 'a) - (has-class? "image-thumbnail" v))) + (or (has-class? "image-thumbnail" v) + (has-class? "image" v)))) (λ (v) (attribute-maybe-update 'href u-proxy-url v))) ; proxy images from src attributes, if strict_proxy is set (curry u From 9c05e95f0797d17afca3e2ca04a096cfd73c697e Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Thu, 13 Oct 2022 22:53:05 +1300 Subject: [PATCH 3/5] Test for proxy links with class image --- src/page-wiki.rkt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/page-wiki.rkt b/src/page-wiki.rkt index 6499a86..488886f 100644 --- a/src/page-wiki.rkt +++ b/src/page-wiki.rkt @@ -52,7 +52,7 @@ (a (@ (data-test-wikilink) (href "https://test.fandom.com/wiki/Another_Page") (title "Another Page")) "Another Page")))) (figure (@ (class "thumb tnone")) - (a (@ (href "https://static.wikia.nocookie.net/nice-image.png") (class "image")) + (a (@ (href "https://static.wikia.nocookie.net/nice-image.png") (class "image") (data-test-figure-a)) (img (@ (src "data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D") (data-src "https://static.wikia.nocookie.net/nice-image-thumbnail.png") (class "thumbimage lazyload")))) @@ -255,6 +255,11 @@ (λ (t a c) (and (eq? t 'a) (has-class? "image-thumbnail" a))) transformed)))) "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fnice-image.png") + (check-equal? (get-attribute 'href (bits->attributes + ((query-selector + (λ (t a c) (member '(data-test-figure-a) a)) + transformed)))) + "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fnice-image.png") ; check that noscript images are removed (check-equal? ((query-selector (λ (t a c) (eq? t 'noscript)) transformed)) #f)) From 722b0589cb7449a4c5dfe9badc724954dbd03f2e Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Thu, 13 Oct 2022 22:54:46 +1300 Subject: [PATCH 4/5] Update minimum wikiname length to 1 Example: https://m.fandom.com/no/wiki/Forside --- src/url-utils.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/url-utils.rkt b/src/url-utils.rkt index 10df089..b70b245 100644 --- a/src/url-utils.rkt +++ b/src/url-utils.rkt @@ -22,7 +22,7 @@ (module+ test (require "typed-rackunit.rkt")) -(define px-wikiname "[a-zA-Z0-9-]{3,50}") +(define px-wikiname "[a-zA-Z0-9-]{1,50}") ;; https://url.spec.whatwg.org/#urlencoded-serializing From 71705d6e7486f7cfce4e58a821d3e87372ec9e34 Mon Sep 17 00:00:00 2001 From: blankie Date: Mon, 10 Oct 2022 17:04:11 +0700 Subject: [PATCH 5/5] Fix used in links that have a namespace in file pages Example: /ben10/wiki/File:OS_Timespan.png https://github.com/Wikia/app/blob/fe60579a53f16816d65dad1644363160a63206a6/includes/Title.php#L1266 --- src/page-file.rkt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/page-file.rkt b/src/page-file.rkt index a8a41a8..1802568 100644 --- a/src/page-file.rkt +++ b/src/page-file.rkt @@ -31,8 +31,7 @@ (rawImageUrl . "https://static.wikia.nocookie.net/examplefile") (userName . "blankie") (isPostedIn . #t) - (smallerArticleList . (#hasheq((title . "Example_article") - (titleText . "Example article")))) + (smallerArticleList . (#hasheq((titleText . "Test:Example article")))) (articleListIsSmaller . 0) (exists . #t) (imageDescription . #f)))) @@ -89,8 +88,8 @@ ,(if is-posted-in `(p "This file is used in " ,@(map (λ (article) - (define page-path (jp "/title" article)) - (define title (jp "/titleText" article page-path)) + (define title (jp "/titleText" article)) + (define page-path (regexp-replace* #rx" " title "_")) `(span ,(if (eq? (car smaller-article-list) article) "" ", ") (a (@ (href ,(format "/~a/wiki/~a" wikiname page-path))) ,title)))