~ruther/NosTale-PacketLogger

72d58cb93a3e490154970d4b1e116ec368ddcbea — František Boháček 2 years ago c6c25ec
feat: check whether file looks like packet log file
1 files changed, 15 insertions(+), 3 deletions(-)

M src/PacketLogger/Models/Packets/FilePacketProvider.cs
M src/PacketLogger/Models/Packets/FilePacketProvider.cs => src/PacketLogger/Models/Packets/FilePacketProvider.cs +15 -3
@@ 10,6 10,7 @@ using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Net;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;


@@ 70,13 71,22 @@ public class FilePacketProvider : IPacketProvider
            return new NotFoundError($"Could not find file {_fileName}");
        }

        int successfulLines = 0;
        var packets = new SourceList<PacketInfo>();
        _index = 0;
        foreach (var line in await File.ReadAllLinesAsync(_fileName))
        using var file = File.OpenRead(_fileName);
        using var fileStream = new StreamReader(file);
        if (fileStream.Peek() != '[')
        {
            if (line.Length <= 1)
            return new GenericError("Looks like the file is not a packet log or in wrong format.");
        }

        while (!fileStream.EndOfStream)
        {
            var line = await fileStream.ReadLineAsync();
            if (line is null)
            {
                continue;
                break;
            }

            var splitted = line.Split('\t', 3);


@@ 92,6 102,7 @@ public class FilePacketProvider : IPacketProvider
                        splitted[1]
                    )
                );
                successfulLines++;
            }
            else if (splitted.Length == 3)
            {


@@ 105,6 116,7 @@ public class FilePacketProvider : IPacketProvider
                        splitted[2]
                    )
                );
                successfulLines++;
            }
        }


Do not follow this link