1 using RssFeedGenerator;
3 using System.Collections.Generic;
6 // See https://aka.ms/new-console-template for more information
7 Console.WriteLine("Scanning entries folder for latest files");
9 var filePaths = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "../../../../entries"));
10 var fileInfos = new List<FileInfo>();
14 foreach (var path in filePaths)
16 if (Path.GetFileNameWithoutExtension(path).Equals("template", StringComparison.InvariantCultureIgnoreCase))
18 var fInfo = new FileInfo(path);
23 Console.WriteLine("Scanning projects folder for latest files");
25 filePaths = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "../../../../projects"));
29 foreach (var path in filePaths)
31 var fInfo = new FileInfo(path);
36 fileInfos = fileInfos.OrderByDescending(f => f.CreationTimeUtc).Take(10).ToList();
38 var myRSS = new rss();
42 myRSS.channel = new rssChannel
44 title = "athene.gay entries",
45 description = "blog entries for athene.gay",
47 link = "https://athene.gay",
48 item = new List<rssChannelItem>(),
51 href = "https://athene.gay/feed.xml",
53 type = "application/rss+xml",
57 foreach (var file in fileInfos)
59 var item = new rssChannelItem()
61 title = Path.GetFileNameWithoutExtension(file.Name),
62 pubDate = file.CreationTimeUtc.ToString("r"),
64 if (file.FullName.Contains("entries"))
66 item.link = "https://athene.gay/entries/" + Path.GetFileName(file.Name);
68 else if (file.FullName.Contains("projects"))
70 item.link = "https://athene.gay/projects/" + Path.GetFileName(file.Name);
72 item.guid = new rssChannelItemGuid()
77 myRSS.channel.item.Add(item);
80 var output = Generator.SerializeRSS(myRSS);
82 var rssPath = Path.Combine(Directory.GetCurrentDirectory(), "../../../../feed.xml");
84 if (File.Exists(rssPath))
89 Console.WriteLine("RSS generated, outputting to console and file");
90 Console.WriteLine(output);
92 File.WriteAllText(rssPath, output);