Files
Arne Moerman ea58deab8c initial commit
2024-12-15 19:04:29 +01:00

38 lines
1.4 KiB
C#

namespace LetterBoxdUnwatchedGenerator
{
public class LetterBoxdWatchedMovie : IMovie
{
public DateTime Date { get; }
public string Title { get; }
public int Year { get; }
public string LetterboxdUri { get; }
public LetterBoxdWatchedMovie(DateTime date, string title, int year, string letterboxdUri)
{
Date = date;
Title = title;
Year = year;
LetterboxdUri = letterboxdUri;
}
public static IEnumerable<LetterBoxdWatchedMovie> FromFile(string path)
{
var lines = File.ReadAllLines(path);
if (lines.Length < 1 || !lines[0].StartsWith("Date,Name,Year,Letterboxd URI")) return Enumerable.Empty<LetterBoxdWatchedMovie>();
return lines.Skip(1).Select(line =>
{
var lineParts = line.SplitCommandLine(',');
var date = !string.IsNullOrEmpty(lineParts.First()) && DateTime.TryParse(lineParts.First(), out DateTime dateOut) ? dateOut : DateTime.MinValue;
var title = lineParts.Skip(1).First();
var year = !string.IsNullOrEmpty(lineParts.Skip(2).First()) && int.TryParse(lineParts.Skip(2).First(), out int yearOut) ? yearOut : 0;
var letterboxdUri = lineParts.Skip(3).First();
return new LetterBoxdWatchedMovie(date, title, year, letterboxdUri);
});
}
}
}