public NzbDecoder CreateDecoder(NzbPart encodedPart, string segmentsFolder, Encoding fileEncoding) { lock (encodedPart.Segments) { var segments = encodedPart.Segments; foreach (var currentSegment in segments) { string filepath = null; lock (currentSegment) { filepath = Path.Combine(segmentsFolder, currentSegment.Id); } using (var reader = new StreamReader(filepath, Encoding.GetEncoding("iso-8859-1"))) { string currentLine = null; while ((currentLine = reader.ReadLine()) != null) { if (currentLine.StartsWith("=ybegin ")) { return new yDecoder(encodedPart, segmentsFolder, fileEncoding); } } } } } return null; }
public yDecoder(NzbPart encodedPart, string segmentsFolder, Encoding fileEncoding) { ArgumentChecker.ThrowIfNull("encodedPart", encodedPart); ArgumentChecker.ThrowIfNullOrWhitespace("segmentsFolder", segmentsFolder); ArgumentChecker.ThrowIfNull("fileEncoding", fileEncoding); _encodedPart = encodedPart; _segmentsFolder = segmentsFolder; _fileEncoding = fileEncoding; }
public NzbDecoderJob(string rawSegmentsDirectory, string destinationDirectory, NzbPart part, Encoding fileEncoding, Action<NzbPart> callWhenDone) { ArgumentChecker.ThrowIfNullOrWhitespace("rawSegmentsDirectory", rawSegmentsDirectory); ArgumentChecker.ThrowIfNullOrWhitespace("destinationDirectory", destinationDirectory); ArgumentChecker.ThrowIfNull("part", part); ArgumentChecker.ThrowIfNull("fileEncoding", fileEncoding); ArgumentChecker.ThrowIfNull("callWhenDone", callWhenDone); this.RawSegmentsDirectory = rawSegmentsDirectory; this.DestinationDirectory = destinationDirectory; this.Part = part; this.FileEncoding = fileEncoding; this.CallWhenDone = callWhenDone; }