// This file is part of Locus . // Copyright (C) 2022-2022 Fuwn // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 3. // // This program is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Copyright (C) 2022-2022 Fuwn // SPDX-License-Identifier: GPL-3.0-only use windmark::context::HookContext; pub fn module(router: &mut windmark::Router) { router.set_pre_route_callback(move |context: HookContext| { info!( "accepted connection from {} to {}", context.peer_address.unwrap().ip(), context.url.to_string(), ); super::ticker::module(&context); }); router.set_post_route_callback({ |context: HookContext, response: &mut windmark::Response| { info!( "closed connection from {} to {}", context.peer_address.unwrap().ip(), context.url.to_string(), ); if let Some(language) = windmark::utilities::queries_from_url(&context.url).get("translate") { if super::translate::module(&context, response, language).is_err() { response.content = format!( "An error occurred during the translation process. Your language \ might not be supported.\n\n=> {} View Original\n\n{}", context .url .to_string() .replace(&format!("translate={language}"), ""), response.content ); } } } }); }