Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
        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);
        }