--- /dev/null
+using RssFeedGenerator;
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+// See https://aka.ms/new-console-template for more information
+Console.WriteLine("Scanning entries folder for latest files");
+
+var filePaths = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "../../../../entries"));
+var fileInfos = new List<FileInfo>();
+
+if (filePaths.Any())
+{
+ foreach (var path in filePaths)
+ {
+ if (Path.GetFileNameWithoutExtension(path).Equals("template", StringComparison.InvariantCultureIgnoreCase))
+ continue;
+ var fInfo = new FileInfo(path);
+ fileInfos.Add(fInfo);
+ }
+}
+
+Console.WriteLine("Scanning projects folder for latest files");
+
+filePaths = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "../../../../projects"));
+
+if (filePaths.Any())
+{
+ foreach (var path in filePaths)
+ {
+ var fInfo = new FileInfo(path);
+ fileInfos.Add(fInfo);
+ }
+}
+
+fileInfos = fileInfos.OrderByDescending(f => f.CreationTimeUtc).Take(10).ToList();
+
+var myRSS = new rss();
+
+myRSS.version = 2.0m;
+
+myRSS.channel = new rssChannel
+{
+ title = "athene.gay entries",
+ description = "blog entries for athene.gay",
+ language = "en-GB",
+ link = "https://athene.gay",
+ item = new List<rssChannelItem>()
+};
+
+foreach (var file in fileInfos)
+{
+ var item = new rssChannelItem()
+ {
+ title = Path.GetFileNameWithoutExtension(file.Name),
+ pubDate = file.CreationTimeUtc.ToString(),
+ };
+ if (file.FullName.Contains("entries"))
+ {
+ item.link = "https://athene.gay/entries/" + Path.GetFileName(file.Name);
+ } else if (file.FullName.Contains("projects"))
+ {
+ item.link = "https://athene.gay/projects/" + Path.GetFileName(file.Name);
+ }
+ myRSS.channel.item.Add(item);
+}
+
+var output = Generator.SerializeRSS(myRSS);
+
+var rssPath = Path.Combine(Directory.GetCurrentDirectory(), "../../../../feed.rss");
+
+if (File.Exists(rssPath)) {
+ File.Delete(rssPath);
+}
+
+File.WriteAllText(rssPath, output);
\ No newline at end of file
--- /dev/null
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>net8.0</TargetFramework>
+ <ImplicitUsings>enable</ImplicitUsings>
+ <Nullable>enable</Nullable>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="RssFeedGenerator" Version="1.2.1" />
+ </ItemGroup>
+
+</Project>
--- /dev/null
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.12.35707.178 d17.12
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RSSGen", "RSSGen.csproj", "{5B1B1ED0-6FEF-45A8-A5F1-60EB2EFE5B8A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5B1B1ED0-6FEF-45A8-A5F1-60EB2EFE5B8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5B1B1ED0-6FEF-45A8-A5F1-60EB2EFE5B8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5B1B1ED0-6FEF-45A8-A5F1-60EB2EFE5B8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5B1B1ED0-6FEF-45A8-A5F1-60EB2EFE5B8A}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
--- /dev/null
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "RSSGen/1.0.0": {
+ "dependencies": {
+ "RssFeedGenerator": "1.2.1"
+ },
+ "runtime": {
+ "RSSGen.dll": {}
+ }
+ },
+ "RssFeedGenerator/1.2.1": {
+ "runtime": {
+ "lib/netstandard2.0/RssFeedGenerator.dll": {
+ "assemblyVersion": "1.1.0.0",
+ "fileVersion": "1.1.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "RSSGen/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "RssFeedGenerator/1.2.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Eg+Ud0wPR1HUG0WC5jFN7vGKbslBi6jMphm2zSE2fjIJkkY2qq+9Lhfpj1iuNgnGS/fH13pJuFn4QZUP+JsUkw==",
+ "path": "rssfeedgenerator/1.2.1",
+ "hashPath": "rssfeedgenerator.1.2.1.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
--- /dev/null
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("RSSGen")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a63496f298639a2a3a6e85dd6cc3bb4d8b69b554")]
+[assembly: System.Reflection.AssemblyProductAttribute("RSSGen")]
+[assembly: System.Reflection.AssemblyTitleAttribute("RSSGen")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Generated by the MSBuild WriteCodeFragment class.
+
--- /dev/null
+0f27cc3839f40b227fb505a300404518ad8d68351d0a05f6b2cc7c49b8ed53ca
--- /dev/null
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = RSSGen
+build_property.ProjectDir = C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
+build_property.EffectiveAnalysisLevelStyle = 8.0
+build_property.EnableCodeStyleSeverity =
--- /dev/null
+// <auto-generated/>
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
--- /dev/null
+1b4ba178b774718641d3d96dca03370db86bd1305372ad438c64953e7b5d0daa
--- /dev/null
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\bin\Debug\net8.0\RSSGen.exe
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\bin\Debug\net8.0\RSSGen.deps.json
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\bin\Debug\net8.0\RSSGen.runtimeconfig.json
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\bin\Debug\net8.0\RSSGen.dll
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\bin\Debug\net8.0\RSSGen.pdb
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\bin\Debug\net8.0\RssFeedGenerator.dll
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.csproj.AssemblyReference.cache
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.GeneratedMSBuildEditorConfig.editorconfig
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.AssemblyInfoInputs.cache
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.AssemblyInfo.cs
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.csproj.CoreCompileInputs.cache
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.sourcelink.json
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.csproj.Up2Date
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.dll
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\refint\RSSGen.dll
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.pdb
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\RSSGen.genruntimeconfig.cache
+C:\Users\gnarg\source\repos\gnargle\gnargle.github.io\RSSGen\obj\Debug\net8.0\ref\RSSGen.dll
--- /dev/null
+7f83a240900a47b9e69c9ae9bbdbbbd15cc8e69b1231f83f69a7c51ae0b1739d
--- /dev/null
+{"documents":{"C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\*":"https://raw.githubusercontent.com/gnargle/gnargle.github.io/a63496f298639a2a3a6e85dd6cc3bb4d8b69b554/*"}}
\ No newline at end of file
--- /dev/null
+{
+ "format": 1,
+ "restore": {
+ "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj": {}
+ },
+ "projects": {
+ "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj",
+ "projectName": "RSSGen",
+ "projectPath": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj",
+ "packagesPath": "C:\\Users\\gnarg\\.nuget\\packages\\",
+ "outputPath": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\gnarg\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "9.0.100"
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "RssFeedGenerator": {
+ "target": "Package",
+ "version": "[1.2.1, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.102/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+ <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+ <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+ <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
+ <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+ <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\gnarg\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
+ <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
+ <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.3</NuGetToolVersion>
+ </PropertyGroup>
+ <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+ <SourceRoot Include="C:\Users\gnarg\.nuget\packages\" />
+ <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
\ No newline at end of file
--- /dev/null
+{
+ "version": 3,
+ "targets": {
+ "net8.0": {
+ "RssFeedGenerator/1.2.1": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/RssFeedGenerator.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/RssFeedGenerator.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "RssFeedGenerator/1.2.1": {
+ "sha512": "Eg+Ud0wPR1HUG0WC5jFN7vGKbslBi6jMphm2zSE2fjIJkkY2qq+9Lhfpj1iuNgnGS/fH13pJuFn4QZUP+JsUkw==",
+ "type": "package",
+ "path": "rssfeedgenerator/1.2.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "lib/netstandard2.0/RssFeedGenerator.dll",
+ "rssfeedgenerator.1.2.1.nupkg.sha512",
+ "rssfeedgenerator.nuspec"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ "net8.0": [
+ "RssFeedGenerator >= 1.2.1"
+ ]
+ },
+ "packageFolders": {
+ "C:\\Users\\gnarg\\.nuget\\packages\\": {},
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj",
+ "projectName": "RSSGen",
+ "projectPath": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj",
+ "packagesPath": "C:\\Users\\gnarg\\.nuget\\packages\\",
+ "outputPath": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\obj\\",
+ "projectStyle": "PackageReference",
+ "fallbackFolders": [
+ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
+ ],
+ "configFilePaths": [
+ "C:\\Users\\gnarg\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "9.0.100"
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "RssFeedGenerator": {
+ "target": "Package",
+ "version": "[1.2.1, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.102/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+{
+ "version": 2,
+ "dgSpecHash": "k0lqg6bxS1A=",
+ "success": true,
+ "projectFilePath": "C:\\Users\\gnarg\\source\\repos\\gnargle\\gnargle.github.io\\RSSGen\\RSSGen.csproj",
+ "expectedPackageFiles": [
+ "C:\\Users\\gnarg\\.nuget\\packages\\rssfeedgenerator\\1.2.1\\rssfeedgenerator.1.2.1.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding ="UTF-8"?>
+<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="2.0">
+ <channel>
+ <title>athene.gay entries</title>
+ <description>blog entries for athene.gay</description>
+ <link>https://athene.gay</link>
+ <language>en-GB</language>
+ <item>
+ <title>thiswebsite</title>
+ <pubDate>29/01/2025 10:02:13</pubDate>
+ <link>https://athene.gay/projects/thiswebsite.html</link>
+ </item>
+ <item>
+ <title>youbeat</title>
+ <pubDate>26/01/2025 18:30:27</pubDate>
+ <link>https://athene.gay/projects/youbeat.html</link>
+ </item>
+ <item>
+ <title>miku</title>
+ <pubDate>26/01/2025 18:30:03</pubDate>
+ <link>https://athene.gay/entries/miku.html</link>
+ </item>
+ <item>
+ <title>dalamudplugins</title>
+ <pubDate>25/01/2025 21:47:06</pubDate>
+ <link>https://athene.gay/projects/dalamudplugins.html</link>
+ </item>
+ <item>
+ <title>1</title>
+ <pubDate>25/01/2025 21:47:06</pubDate>
+ <link>https://athene.gay/entries/1.html</link>
+ </item>
+ </channel>
+</rss>
\ No newline at end of file