!7 cm UltrafaST > DynWebServee { transient SnippetInstaCache snippetCache; transient S microNewsSnippetID = #1034192; start { snippetCache = new SnippetInstaCache(microNewsSnippetID); } @Override O html(IWebRequest req) { try object redirectToHTTPS(req); if (eq(req.uri(), "/favicon.ico")) ret serveFavIcon(gazelleFavIconSnippet()); if (eq(req.uri(), "/")) { LS newsItems = map( paragraphs(snippetCache.get(microNewsSnippetID)), item -> { LS l = splitAtColon(item); ret second(l) + " [" + first(l) + "]"; } ); addAll(newsItems, targetBlank("https://agi.topicbox.com/groups/agi/T419e8a952205967e", "News post") + " [2022/1/22]", targetBlank("https://agi.topicbox.com/groups/agi/T2dea42566ccf6693", "News post") + " [2022/1/7]", targetBlank("https://agi.topicbox.com/groups/agi/T8ca0db34fc106b16/image-recognizers-should-return-mathematical-proofs", "Image recognizers should return mathematical proofs") + " [2021/9/10]", targetBlank("https://agi.topicbox.com/groups/agi/T2771ec3238f217fa/gazelle-looks-at-its-own-logo-and-paints-it-red", "Gazelle looks at its own logo and paints it red") + " [2021/8/20]" ); ret hhtml( hhead_title("Gazelle 22 - a new image recognizer") + hsansserif() + hbody(hfullcenter( h1("Gazelle 22 - a new image recognizer") + p(hsnippetimg_linkToSameImage(#1103072, width := 250, title := "Gazelle 22 Screenshot 1 - click to enlarge")) + p("This screenshot shows my cute new scripting language which is very flexible.") + pNbsp() + p(hsnippetimg_linkToSameImage(#1103059, width := 250, title := "Gazelle 22 Screenshot 2 - click to enlarge")) + p("Here you see Gazelle's preprocessing filters applied to a screen cam.") + pNbsp() + h3("Quick start (Windows, Mac, Linux)") + p("1. Install " + targetBlank("https://adoptium.net", "Temurin 17") + " formerly known as 'Java'" + " (their smaller \"" + targetBlank("https://adoptium.net/releases.html", "JRE") + "\" version is fine too).") + p("2. Save and double-click " + ahref("https://github.com/stefan-reich/gazelle-22/releases/download/2022-1-29/Gazelle-2022-01-29.jar", "Gazelle-2022-01-29.jar") + " (size: less than 10 MB).") + h3("What it does") + p(joinWithBR( "Gazelle 22 watches your screen and recognizes things.", "It is being developed right now by " + targetBlank("https://BotCompany.de", "Stefan Reich") + " at " + ahref("https://gazelle.rocks", "Gaz.AI") + ". " + ahref("mailto:info@botcompany.de","Contact.") + " " + ahref("https://discord.gg/kcKKZEg", "Discord."))) + p(targetBlank("https://code.botcompany.de/1033860", "Source repository") + ". " + "Older releases on " + ahref("https://github.com/stefan-reich/gazelle-22", "GitHub") + ".") + h3("Privacy statement") + p("Gazelle 22 runs locally on your machine. It does not upload any data to any server. " + "Server connections are made only for downloading program parts and checking for updates. All code is open source.") + h3("News") + mapToLines p(newsItems) ))); } ret subBot_serve404("Four oh four. Bad URL"); } }