Esempio n. 1
0
        string ConvertToString()
        {
            var sb = new StringBuilder();

            sb.Append("magnet:?");
            sb.Append("xt=urn:btih:");
            sb.Append(InfoHash.ToHex());

            if (!string.IsNullOrEmpty(Name))
            {
                sb.Append("&dn=");
                sb.Append(Name.UrlEncodeUTF8());
            }

            foreach (string tracker in AnnounceUrls)
            {
                sb.Append("&tr=");
                sb.Append(tracker.UrlEncodeUTF8());
            }

            foreach (string webseed in Webseeds)
            {
                sb.Append("&as=");
                sb.Append(webseed.UrlEncodeUTF8());
            }

            return(sb.ToString());
        }
Esempio n. 2
0
        public void HexTest()
        {
            InfoHash hash = Create();
            string   hex  = hash.ToHex();

            Assert.AreEqual(40, hex.Length, "#1");
            InfoHash other = InfoHash.FromHex(hex);

            Assert.AreEqual(hash, other, "#2");
        }
Esempio n. 3
0
        string ToString(int formatVersion)
        {
            var sb = new StringBuilder();

            sb.Append("magnet:?");
            if (formatVersion == 1)
            {
                sb.Append("xt=urn:btih:");
                sb.Append(InfoHash.ToHex());
            }
            else if (formatVersion == 2)
            {
                sb.Append("xt=urn:btmh");
                throw new NotSupportedException("Need to add support for the new 'multihash' thing");
            }
            else
            {
                throw new NotSupportedException();
            }

            if (!string.IsNullOrEmpty(Name))
            {
                sb.Append("&dn=");
                sb.Append(Name.UrlEncodeUTF8());
            }

            foreach (var tracker in AnnounceUrls)
            {
                sb.Append("&tr=");
                sb.Append(tracker.UrlEncodeUTF8());
            }

            foreach (var webseed in Webseeds)
            {
                sb.Append("&as=");
                sb.Append(webseed.UrlEncodeUTF8());
            }

            return(sb.ToString());
        }