internal static bool TryParseGalleryPopup(UriHandlerData data, out GalleryInfo info, out GalleryLaunchStatus type) { info = default; type = default; if (data.Paths.Count < 1) { return(false); } if (!Array.Exists(_Popups, s => data.Path0.Equals(s, StringComparison.OrdinalIgnoreCase))) { return(false); } if (!long.TryParse(data.Queries.GetString("gid"), out var gId)) { return(false); } var tokenstr = data.Queries.GetString("t") + data.Queries.GetString("token"); if (!EToken.TryParse(tokenstr, out var token)) { return(false); } info = new GalleryInfo(gId, token); type = GalleryLaunchStatus.Default; switch (data.Path0) { case "gallerytorrents.php": type = GalleryLaunchStatus.Torrent; break; case "stats.php": type = GalleryLaunchStatus.Stats; break; case "archiver.php": type = GalleryLaunchStatus.Archive; break; default: switch (data.Queries.GetString("act")) { case "addfav": type = GalleryLaunchStatus.Favorite; break; case "expunge": type = GalleryLaunchStatus.Expunge; break; case "rename": type = GalleryLaunchStatus.Rename; break; } break; } return(true); }
internal static bool TryParse(UriHandlerData data, out ImageInfo info) { if (data.Path0 == "s" && data.Paths.Count >= 3) { var sp = data.Paths[2].Split('-'); if ((sp.Length == 2) && long.TryParse(sp[0], out var gID) && int.TryParse(sp[1], out var pID) && EToken.TryParse(data.Paths[1], out var token)) { info = new ImageInfo(gID, token, pID); return(true); } } info = default; return(false); }
internal static bool TryParseGallery(UriHandlerData data, out GalleryInfo info) { info = default; if (data.Paths.Count < 3) { return(false); } if (!Array.Exists(_GalleryPaths, s => data.Path0.Equals(s, StringComparison.OrdinalIgnoreCase))) { return(false); } if (!long.TryParse(data.Paths[1], out var gId)) { return(false); } if (!EToken.TryParse(data.Paths[2], out var token)) { return(false); } info = new GalleryInfo(gId, token); return(true); }