public void SavesFile() { using (var file = File.Open(FileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { var parser = new TorrentSerializer(); var trt = parser.Deserialize(file); var builder = TorrentBuilder.FromExisting(trt); builder.SetName("русский беларускі ў"); var modified = builder.Build(); using (var file2 = File.Create("output.torrent")) { parser.Serialize(file2, modified); } } }
public void TorrentBuilderCorrectlyCalculateHash() { byte[] bytes; using (var ms = new MemoryStream()) { using (var file = File.Open("torrent.torrent", FileMode.Open, FileAccess.Read, FileShare.Read)) { file.CopyTo(ms); } bytes = ms.ToArray(); } var torrent = new TorrentSerializer().Deserialize(bytes); var before = torrent.Info.Pieces; var builder = TorrentBuilder.FromExisting(torrent); builder.CalculatePieces(new FSProvider()); var builded = builder.Build(); Assert.Equal(before, builded.Info.Pieces); }
public void TorrentBuilderBuildsCorrectTorrent() { byte[] bytes; using (var ms = new MemoryStream()) { using (var file = File.Open("torrent.torrent", FileMode.Open, FileAccess.Read, FileShare.Read)) { file.CopyTo(ms); } bytes = ms.ToArray(); } var torrent = new TorrentSerializer().Deserialize(bytes); var builder = new TorrentBuilder(torrent.Encoding ?? Encoding.UTF8); foreach (var(path, len) in torrent.Info.Files) { builder.AddFile(string.Join(Path.DirectorySeparatorChar, path.Select(_ => ((BString)_).ToString())), len); } builder.SetPieceLength(torrent.Info.PieceLength); builder.CalculatePieces(new FSProvider()); var builded = builder.Build(); Assert.Equal(builded.Info.Pieces, torrent.Info.Pieces); }