]> fortfriendship.online Git - gnargle.github.io.git/blob - RSSGen/Program.cs
gitignore
[gnargle.github.io.git] / RSSGen / Program.cs
1 using RssFeedGenerator;
2 using System;
3 using System.Collections.Generic;
4 using System.IO;
5
6 // See https://aka.ms/new-console-template for more information
7 Console.WriteLine("Scanning entries folder for latest files");
8
9 var filePaths = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "../../../../entries"));
10 var fileInfos = new List<FileInfo>();
11
12 if (filePaths.Any())
13 {
14 foreach (var path in filePaths)
15 {
16 if (Path.GetFileNameWithoutExtension(path).Equals("template", StringComparison.InvariantCultureIgnoreCase))
17 continue;
18 var fInfo = new FileInfo(path);
19 fileInfos.Add(fInfo);
20 }
21 }
22
23 Console.WriteLine("Scanning projects folder for latest files");
24
25 filePaths = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "../../../../projects"));
26
27 if (filePaths.Any())
28 {
29 foreach (var path in filePaths)
30 {
31 var fInfo = new FileInfo(path);
32 fileInfos.Add(fInfo);
33 }
34 }
35
36 fileInfos = fileInfos.OrderByDescending(f => f.CreationTimeUtc).Take(10).ToList();
37
38 var myRSS = new rss();
39
40 myRSS.version = 2.0m;
41
42 myRSS.channel = new rssChannel
43 {
44 title = "athene.gay entries",
45 description = "blog entries for athene.gay",
46 language = "en-GB",
47 link = "https://athene.gay",
48 item = new List<rssChannelItem>()
49 };
50
51 foreach (var file in fileInfos)
52 {
53 var item = new rssChannelItem()
54 {
55 title = Path.GetFileNameWithoutExtension(file.Name),
56 pubDate = file.CreationTimeUtc.ToString(),
57 };
58 if (file.FullName.Contains("entries"))
59 {
60 item.link = "https://athene.gay/entries/" + Path.GetFileName(file.Name);
61 } else if (file.FullName.Contains("projects"))
62 {
63 item.link = "https://athene.gay/projects/" + Path.GetFileName(file.Name);
64 }
65 myRSS.channel.item.Add(item);
66 }
67
68 var output = Generator.SerializeRSS(myRSS);
69
70 var rssPath = Path.Combine(Directory.GetCurrentDirectory(), "../../../../feed.rss");
71
72 if (File.Exists(rssPath)) {
73 File.Delete(rssPath);
74 }
75
76 File.WriteAllText(rssPath, output);