Add initial webfinger
Dependencies
- [2]
FVYTV3D2Add custom notes to new games feed - [3]
XS5FAAN4Add well-known host-meta page - [4]
WVHXYKCVAdd postgresql pools - [5]
WLWTNO4YCreate form to request game password change link - [6]
DNFB7TNIAdd new pages and links to slow games and reset game password - [7]
7R6HAATPOptional publish static files if use reverse-proxy - [8]
556ZESEOAdd RSS for new games - [9]
CMA5SKJ3Copy turns Atom generator - [10]
WW3KRXX6Add page for reset game password - [11]
HZDCKIXQUse constants for templates - [*]
4MZ4VIR7Initial commit
Change contents
- replacement in src/pages/well_known.rs at line 1
use actix_web::{web, HttpResponse};use actix_web::{web, HttpRequest, HttpResponse}; - edit in src/pages/well_known.rs at line 20[3.683]
#[actix_web::get("/.well-known/webfinger")]pub async fn webfinger(req: HttpRequest, data: web::Data<WebData<'_>>) -> HttpResponse {let mut resource = None;for params in req.query_string().split('&') {if let Some((k, v)) = params.split_once('=') {if k == "resource" {resource = Some(v);}}}let resource = match resource {Some(r) => r,None => {log::warn!("Webfinger not found resource in {}", req.query_string());return HttpResponse::BadRequest().body("Incorrect query");}};let resource_clean = resource.trim_start_matches("acct:");let mut parts = resource_clean.splitn(3, '@');let (user, domain) = match (parts.next(), parts.next(), parts.next()) {(Some(u), Some(d), None) => (u, d),_ => {log::error!("Webfinger incorrect resource {}", resource);return HttpResponse::NotFound().body("Not found");}};if domain != data.base_domain {log::error!("Webfinger incorrect resource domain {}", resource);return HttpResponse::NotFound().body("Not found");}log::info!("Webfinger resource user: {}", user);HttpResponse::NotFound().body("Not found")} - edit in src/pages/atom/games.rs at line 69
log::info!("Notes: {}", notes); - replacement in src/main.rs at line 21
use pages::well_known::host_meta;use pages::well_known; - replacement in src/main.rs at line 176
.route("/.well-known/host-meta", web::get().to(host_meta)).route("/.well-known/host-meta",web::get().to(well_known::host_meta),) - replacement in src/main.rs at line 184
.service(atom_turns);.service(atom_turns).service(well_known::webfinger);