1
0
Fork 0
mirror of https://github.com/sbrl/PolyFeed.git synced 2024-11-22 06:23:02 +00:00

Start creating CLI

This commit is contained in:
Starbeamrainbowlabs 2019-07-28 18:15:00 +01:00
parent 14fca32a5e
commit b497ffb0d7
Signed by: sbrl
GPG key ID: 1BE5172E637709C2
4 changed files with 43 additions and 8 deletions

View file

@ -29,7 +29,7 @@ namespace PolyFeed
// Write the header // Write the header
await feed.WriteGenerator("Polyfeed", "https://gitlab.com/sbrl/PolyFeed.git", Program.getProgramVersion()); await feed.WriteGenerator("Polyfeed", "https://gitlab.com/sbrl/PolyFeed.git", Program.GetProgramVersion());
await feed.WriteId(source.Url); await feed.WriteId(source.Url);
string lastModified = response.Headers.Get("last-modified"); string lastModified = response.Headers.Get("last-modified");
if (string.IsNullOrWhiteSpace(lastModified)) if (string.IsNullOrWhiteSpace(lastModified))

View file

@ -8,6 +8,7 @@
<RootNamespace>PolyFeed</RootNamespace> <RootNamespace>PolyFeed</RootNamespace>
<AssemblyName>PolyFeed</AssemblyName> <AssemblyName>PolyFeed</AssemblyName>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion> <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@ -130,6 +131,9 @@
<Reference Include="Microsoft.SyndicationFeed.ReaderWriter"> <Reference Include="Microsoft.SyndicationFeed.ReaderWriter">
<HintPath>..\packages\Microsoft.SyndicationFeed.ReaderWriter.1.0.2\lib\netstandard1.3\Microsoft.SyndicationFeed.ReaderWriter.dll</HintPath> <HintPath>..\packages\Microsoft.SyndicationFeed.ReaderWriter.1.0.2\lib\netstandard1.3\Microsoft.SyndicationFeed.ReaderWriter.dll</HintPath>
</Reference> </Reference>
<Reference Include="Nett">
<HintPath>..\packages\Nett.0.13.0\lib\net40\Nett.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />

View file

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using Nett;
namespace PolyFeed namespace PolyFeed
{ {
@ -9,7 +10,9 @@ namespace PolyFeed
{ {
public readonly string ProgramName = "PolyFeed"; public readonly string ProgramName = "PolyFeed";
public readonly string Description = "creates Atom feeds from websites that don't support it"; public readonly string Description = "creates Atom feeds from websites that don't support it";
// Settings here
public string ConfigFilepath = "feed.toml";
public string OutputFilepath = "feed.atom";
} }
class Program class Program
@ -33,7 +36,7 @@ namespace PolyFeed
{ {
case "-h": case "-h":
case "--help": case "--help":
Console.WriteLine($"{settings.ProgramName}, {getProgramVersion()}"); Console.WriteLine($"{settings.ProgramName}, {GetProgramVersion()}");
Console.WriteLine(" By Starbeamrainbowlabs"); Console.WriteLine(" By Starbeamrainbowlabs");
Console.WriteLine(); Console.WriteLine();
@ -45,12 +48,24 @@ namespace PolyFeed
Console.WriteLine("Options:"); Console.WriteLine("Options:");
Console.WriteLine(" -h --help Displays this message"); Console.WriteLine(" -h --help Displays this message");
Console.WriteLine(" -v --version Outputs the version number of this program"); Console.WriteLine(" -v --version Outputs the version number of this program");
Console.WriteLine(" -c --config Specifies the location of the feed configuration file to use to generate a feed (default: feed.toml)");
Console.WriteLine(" -o --output Specifies the location to write the output feed to (default: feed.atom)");
return 0; return 0;
case "-v": case "-v":
case "--version": case "--version":
Console.WriteLine($"{settings.ProgramName}\t{getProgramVersion()}"); Console.WriteLine($"{settings.ProgramName}\t{GetProgramVersion()}");
return 0; return 0;
case "-c":
case "--config":
settings.ConfigFilepath = args[++i];
break;
case "-o":
case "--output":
settings.OutputFilepath = args[++i];
break;
} }
} }
@ -64,10 +79,25 @@ namespace PolyFeed
return 0; return 0;
} }
private static void run()
{
FeedSource feedSource = new FeedSource();
TomlTable config = Toml.ReadFile(settings.ConfigFilepath, TomlSettings.Create());
foreach (KeyValuePair<string, TomlObject> item in config) {
string key = item.Key;
string value = item.Value.Get<TomlString>().Value;
feedSource.GetType().GetProperty(value).SetValue(
feedSource,
value
);
}
}
#region Helper Methods #region Helper Methods
public static string getProgramVersion() public static string GetProgramVersion()
{ {
Version version = Assembly.GetExecutingAssembly().GetName().Version; Version version = Assembly.GetExecutingAssembly().GetName().Version;
return $"{version.Major}.{version.Minor}"; return $"{version.Major}.{version.Minor}";

View file

@ -7,6 +7,7 @@
<package id="Microsoft.SyndicationFeed.ReaderWriter" version="1.0.2" targetFramework="net47" /> <package id="Microsoft.SyndicationFeed.ReaderWriter" version="1.0.2" targetFramework="net47" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net47" /> <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net47" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="net47" /> <package id="NETStandard.Library" version="2.0.3" targetFramework="net47" />
<package id="Nett" version="0.13.0" targetFramework="net47" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net47" /> <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net47" />
<package id="System.AppContext" version="4.3.0" targetFramework="net47" /> <package id="System.AppContext" version="4.3.0" targetFramework="net47" />
<package id="System.Collections" version="4.3.0" targetFramework="net47" /> <package id="System.Collections" version="4.3.0" targetFramework="net47" />