1 using RssFeedGenerator;
3 using System.Collections.Generic;
5 using System.Runtime.InteropServices;
7 // See https://aka.ms/new-console-template for more information
8 Console.WriteLine("Scanning entries folder for latest files");
10 var folder = String.Empty;
12 if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
14 folder = Path.Combine(Directory.GetCurrentDirectory(), "../entries");
18 folder = Path.Combine(Directory.GetCurrentDirectory(), "../../../../entries");
20 var filePaths = Directory.EnumerateFiles(folder);
21 var fileInfos = new List<FileInfo>();
25 foreach (var path in filePaths)
27 if (Path.GetFileNameWithoutExtension(path).Equals("template", StringComparison.InvariantCultureIgnoreCase))
29 var fInfo = new FileInfo(path);
34 Console.WriteLine("Scanning projects folder for latest files");
36 if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
38 folder = Path.Combine(Directory.GetCurrentDirectory(), "../projects");
42 folder = Path.Combine(Directory.GetCurrentDirectory(), "../../../../projects");
45 filePaths = Directory.EnumerateFiles(folder);
49 foreach (var path in filePaths)
51 var fInfo = new FileInfo(path);
56 fileInfos = fileInfos.OrderByDescending(f => f.CreationTimeUtc).Take(10).ToList();
58 var myRSS = new rss();
62 myRSS.channel = new rssChannel
64 title = "athene.gay entries",
65 description = "blog entries for athene.gay",
67 link = "https://athene.gay",
68 item = new List<rssChannelItem>(),
71 href = "https://athene.gay/feed.xml",
73 type = "application/rss+xml",
77 foreach (var file in fileInfos)
79 var item = new rssChannelItem()
81 title = Path.GetFileNameWithoutExtension(file.Name),
82 pubDate = file.CreationTimeUtc.ToString("r"),
84 if (file.FullName.Contains("entries"))
86 item.link = "https://athene.gay/entries/" + Path.GetFileName(file.Name);
88 else if (file.FullName.Contains("projects"))
90 item.link = "https://athene.gay/projects/" + Path.GetFileName(file.Name);
92 item.guid = new rssChannelItemGuid()
97 myRSS.channel.item.Add(item);
100 var output = Generator.SerializeRSS(myRSS);
102 var rssPath = String.Empty;
104 if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
106 rssPath = Path.Combine(Directory.GetCurrentDirectory(), "../feed.xml");
110 rssPath = Path.Combine(Directory.GetCurrentDirectory(), "../../../../feed.xml");
113 if (File.Exists(rssPath))
115 File.Delete(rssPath);
118 Console.WriteLine("RSS generated, outputting to console and file");
119 Console.WriteLine(output);
121 File.WriteAllText(rssPath, output);