Added a bunch of changes I don't remember and a bunch of files that shouldn't really be in git

This commit is contained in:
Jers 2025-02-23 18:35:02 -06:00
parent 2ef1b077b4
commit 081a8eb9de
36 changed files with 1128 additions and 24 deletions

133
.gitignore vendored Normal file
View File

@ -0,0 +1,133 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
[Bb]in/
[Oo]bj/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.svclog
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
*.pubxml
*.azurePubxml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
packages/
## TODO: If the tool you use requires repositories.config, also uncomment the next line
!packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
![Ss]tyle[Cc]op.targets
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
# =========================
# Windows detritus
# =========================
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac desktop service store files
.DS_Store
_NCrunch*

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="LocationsWithSilentDeleteHolder">
<option name="locations">
<list>
<option value="$PROJECT_DIR$/Bot/bin/Release/net9.0/win-x64/publish" />
</list>
</option>
</component>
</project>

6
.idea/.idea.Robert/.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -20,4 +20,8 @@
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\RobertMart\RobertMart.csproj" />
</ItemGroup>
</Project>

View File

@ -1,5 +1,6 @@
using Bot.modules;
using DSharpPlus;
using DSharpPlus.Entities;
using DSharpPlus.EventArgs;
using IniParser;
@ -38,15 +39,27 @@ namespace Bot
var politico = new Politico(politicoChannelList, openAiKey);
messageHandlers.Add(politico.MessageCreatedHandler);
}
// Bot client setup
var builder = DiscordClientBuilder.CreateDefault(botToken, DiscordIntents.AllUnprivileged | DiscordIntents.MessageContents);
builder.ConfigureEventHandlers(b =>
{
foreach (var h in messageHandlers) {b.HandleMessageCreated(h);}
});
builder.ConfigureEventHandlers(b =>
{
foreach (var h in messageHandlers) {b.HandleMessageCreated(h);}
});
await builder.ConnectAsync();
DiscordActivity status = new("You.", DiscordActivityType.Watching);
var client = builder.Build();
// RobertMart Setup
if (config["RobertMart"]["active"] == "true")
{
var robertMartChannelList = config["RobertMart"]["channels"].Split(",").ToList();
var robertMart = new RobertMartClient(client, robertMartChannelList.Select(ulong.Parse).ToList(), openAiKey);
robertMart.SendScheduledMessage();
}
await client.ConnectAsync();
await Task.Delay(-1);
}
}

View File

@ -10,6 +10,7 @@
"dependencies": {
"DSharpPlus": "5.0.0-nightly-02450",
"OpenAI": "2.1.0",
"RobertMart": "1.0.0",
"ini-parser": "2.5.2"
},
"runtime": {
@ -42,6 +43,14 @@
}
}
},
"HtmlAgilityPack/1.11.72": {
"runtime": {
"lib/netstandard2.0/HtmlAgilityPack.dll": {
"assemblyVersion": "1.11.72.0",
"fileVersion": "1.11.72.0"
}
}
},
"ini-parser/2.5.2": {
"runtime": {
"lib/net20/INIFileParser.dll": {
@ -222,6 +231,17 @@
"fileVersion": "1.3.4.0"
}
}
},
"RobertMart/1.0.0": {
"dependencies": {
"HtmlAgilityPack": "1.11.72"
},
"runtime": {
"RobertMart.dll": {
"assemblyVersion": "1.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
@ -245,6 +265,13 @@
"path": "dsharpplus/5.0.0-nightly-02450",
"hashPath": "dsharpplus.5.0.0-nightly-02450.nupkg.sha512"
},
"HtmlAgilityPack/1.11.72": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RNLgXxTFdIGFI+o5l8c2aJ2L5StIRn9Uv8HKR76p7QP4ZUL26wzpWUCWh08xWUdkL2kocl+Xhv6VUu0rA1npVg==",
"path": "htmlagilitypack/1.11.72",
"hashPath": "htmlagilitypack.1.11.72.nupkg.sha512"
},
"ini-parser/2.5.2": {
"type": "package",
"serviceable": true,
@ -384,6 +411,11 @@
"sha512": "sha512-6IaGquwjjfW+BoHSV844y12Uy2kxbboYNmsibxr2lotcSPAA3LKy1CKcAQ8JOdAdL4xMoDNXA1oxG41w7fbr6Q==",
"path": "ulid/1.3.4",
"hashPath": "ulid.1.3.4.nupkg.sha512"
},
"RobertMart/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -5,3 +5,7 @@ channels=trash-compactor
[Politico]
active=false
channels=make-the-cantina-great-again,politics
[RobertMart]
active=false
channels=437393972990836738

View File

@ -5,3 +5,7 @@ channels=trash-compactor
[Politico]
active=false
channels=make-the-cantina-great-again,politics
[RobertMart]
active=true
channels=437393972990836738

View File

@ -0,0 +1,74 @@
using DSharpPlus;
using DSharpPlus.Entities;
using OpenAI.Chat;
namespace Bot.modules;
public class RobertMartClient
{
private readonly HashSet<ulong> _channels = [];
private readonly ChatClient? _chatClient;
private readonly DiscordClient _discordClient;
public RobertMartClient(DiscordClient discord, IEnumerable<ulong> channels, string? openAiKey = null, string model = "gpt-4o")
{
_discordClient = discord;
foreach (var channel in channels)
{
_channels.Add(channel);
}
if (openAiKey != null)
{
_chatClient = new ChatClient(model, openAiKey);
}
}
public async Task SendScheduledMessage()
{
while (true)
{
try
{
if (_chatClient == null) return;
var yesterdayEggPrice = RobertMart.CommodityTracker.Commodities["Eggs"];
var yesterdayGasPrice = RobertMart.CommodityTracker.Commodities["Gas"];
RobertMart.CommodityTracker.FetchCommodities();
var todayEggPrice = RobertMart.CommodityTracker.Commodities["Eggs"];
var todayGasPrice = RobertMart.CommodityTracker.Commodities["Gas"];
var messages = new List<ChatMessage>()
{
new SystemChatMessage(
"This is a private assistant, for use among consenting adults that find crude and dark humor, even if in bad taste, hilarious and desirable. " +
"The assitant will take on the persona of Robocop, and answer as him. Answers should be plausibly something Robocop would say in his movies. " +
"It is not mandatory that you refer to yourself, but if you do, respond as if your name was Robert. " +
"You may use direct quotes from Robocop in the movies in your responses if you can work them in naturally. " +
"Do not include quotation marks in your response. Your response should focus on punishment of the corrupt corporations driving up the prices. " +
"You will be given a list of the price of commodities from yesterday and today, you are expected to give what you think robocop's opinion would be on the difference "),
new UserChatMessage(
$"The price of eggs yesterday was {yesterdayEggPrice}. The price of eggs today is {todayEggPrice}. " +
$"The price of gas yesterday was {yesterdayGasPrice}. The price of gas today is {todayGasPrice}. What are your thoughts on this?"),
};
var resp = await _chatClient.CompleteChatAsync(messages);
var respText = resp.Value.Content.Last().Text;
foreach (var channelId in _channels)
{
var c = await _discordClient.GetChannelAsync(channelId);
await c.SendMessageAsync($"Gas Price Today/Yesterday: ${todayGasPrice}/${yesterdayGasPrice}\n" +
$"Egg Price Today/Yesterday: ${todayEggPrice}/${yesterdayEggPrice}\n" +
$"{respText}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error sending message: {ex.Message}");
}
// Wait for 24 hours
await Task.Delay(TimeSpan.FromHours(24));
}
}
}

View File

@ -1,3 +1,4 @@
using System.Text.RegularExpressions;
using DSharpPlus;
using DSharpPlus.EventArgs;
using OpenAI.Chat;
@ -27,10 +28,16 @@ public class TextFreeChannels
public async Task MessageCreatedHandler(DiscordClient c, MessageCreatedEventArgs e)
{
if (e.Author.IsCurrent || !_channels.Contains(e.Channel.Name)) return;
if (e.Message.Embeds.Count == 0 && e.Message.Attachments.Count > 0)
if ((e.Message.Embeds.Count > 0 || e.Message.Attachments.Count > 0) && e.Message.Content == "")
{
return;
}
if (MessageOnlyContainsURL(e.Message.Content))
{
return;
}
await e.Message.DeleteAsync();
if (_chatClient != null)
@ -57,4 +64,11 @@ public class TextFreeChannels
}
}
private bool MessageOnlyContainsURL(string input)
{
// Regular expression to match only an image URL
string pattern = @"^(https?:\/\/.*\.(?:png|jpg|jpeg|gif|bmp|webp)|https?:\/\/(media\.)?tenor\.com\/\S+)$";
return Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase);
}
}

View File

@ -22,6 +22,108 @@
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {
"C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj": {
"projectPath": "C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "9.0.100"
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"DSharpPlus": {
"target": "Package",
"version": "[5.0.0-nightly-02450, )"
},
"Microsoft.NET.ILLink.Tasks": {
"suppressParent": "All",
"target": "Package",
"version": "[9.0.0, )",
"autoReferenced": true
},
"OpenAI": {
"target": "Package",
"version": "[2.1.0, )"
},
"ini-parser": {
"target": "Package",
"version": "[2.5.2, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.linux-x64",
"version": "[9.0.0, 9.0.0]"
},
{
"name": "Microsoft.NETCore.App.Host.linux-x64",
"version": "[9.0.0, 9.0.0]"
},
{
"name": "Microsoft.NETCore.App.Runtime.linux-x64",
"version": "[9.0.0, 9.0.0]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Users\\jerem\\.dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"
}
},
"runtimes": {
"linux-x64": {
"#import": []
}
}
},
"C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj",
"projectName": "RobertMart",
"projectPath": "C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj",
"packagesPath": "C:\\Users\\jerem\\.nuget\\packages\\",
"outputPath": "C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\jerem\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net9.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
@ -44,17 +146,15 @@
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"DSharpPlus": {
"HtmlAgilityPack": {
"target": "Package",
"version": "[5.0.0-nightly-02450, )"
"version": "[1.11.72, )"
},
"OpenAI": {
"Microsoft.NET.ILLink.Tasks": {
"suppressParent": "All",
"target": "Package",
"version": "[2.1.0, )"
},
"ini-parser": {
"target": "Package",
"version": "[2.5.2, )"
"version": "[9.0.0, )",
"autoReferenced": true
}
},
"imports": [
@ -68,6 +168,16 @@
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.linux-x64",
"version": "[9.0.0, 9.0.0]"
},
{
"name": "Microsoft.NETCore.App.Runtime.linux-x64",
"version": "[9.0.0, 9.0.0]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
@ -75,6 +185,11 @@
},
"runtimeIdentifierGraphPath": "C:\\Users\\jerem\\.dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"
}
},
"runtimes": {
"linux-x64": {
"#import": []
}
}
}
}

View File

@ -12,4 +12,10 @@
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\jerem\.nuget\packages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.net.illink.tasks\9.0.0\build\Microsoft.NET.ILLink.Tasks.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.illink.tasks\9.0.0\build\Microsoft.NET.ILLink.Tasks.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_NET_ILLink_Tasks Condition=" '$(PkgMicrosoft_NET_ILLink_Tasks)' == '' ">C:\Users\jerem\.nuget\packages\microsoft.net.illink.tasks\9.0.0</PkgMicrosoft_NET_ILLink_Tasks>
</PropertyGroup>
</Project>

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Bot")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2ef1b077b44fbb933d26f4071c1c05ee384bc114")]
[assembly: System.Reflection.AssemblyProductAttribute("Bot")]
[assembly: System.Reflection.AssemblyTitleAttribute("Bot")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
98dca81d57bca6811d958e20fdedd41c52c2d1e7e01d7bc1f139fcf6d943c82e
a580ba8fcb7d8656f75baf85e8b3928ca384a15ccb48cd8a9895acdcf7c48dec

View File

@ -1,4 +1,8 @@
is_global = true
build_property.EnableAotAnalyzer =
build_property.EnableSingleFileAnalyzer =
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.TargetFramework = net9.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =

View File

@ -1 +1 @@
c9dbf835067ef6048df7f78ca9d2a34a4314f49ea6108350674fb83e5f991d3b
92b273f1ec765e67e7747d6fdd8b4d10439f8cab94488b163f0133f4eeff88df

View File

@ -33,3 +33,6 @@ C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\INIFileParser.dll
C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\OpenAI.dll
C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\System.ClientModel.dll
C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\System.Memory.Data.dll
C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\HtmlAgilityPack.dll
C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\RobertMart.dll
C:\Users\jerem\RiderProjects\Robert\Bot\bin\Debug\net9.0\RobertMart.pdb

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -38,6 +38,19 @@
}
}
},
"HtmlAgilityPack/1.11.72": {
"type": "package",
"compile": {
"lib/netstandard2.0/HtmlAgilityPack.dll": {
"related": ".deps.json;.pdb;.xml"
}
},
"runtime": {
"lib/netstandard2.0/HtmlAgilityPack.dll": {
"related": ".deps.json;.pdb;.xml"
}
}
},
"ini-parser/2.5.2": {
"type": "package",
"compile": {
@ -204,6 +217,12 @@
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.NET.ILLink.Tasks/9.0.0": {
"type": "package",
"build": {
"build/Microsoft.NET.ILLink.Tasks.props": {}
}
},
"NetEscapades.EnumGenerators/1.0.0-beta11": {
"type": "package",
"compile": {
@ -391,6 +410,437 @@
"related": ".xml"
}
}
},
"RobertMart/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v9.0",
"dependencies": {
"HtmlAgilityPack": "1.11.72"
},
"compile": {
"bin/placeholder/RobertMart.dll": {}
},
"runtime": {
"bin/placeholder/RobertMart.dll": {}
}
}
},
"net9.0/linux-x64": {
"CommunityToolkit.HighPerformance/8.3.2": {
"type": "package",
"compile": {
"lib/net8.0/CommunityToolkit.HighPerformance.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net8.0/CommunityToolkit.HighPerformance.dll": {
"related": ".pdb;.xml"
}
}
},
"DSharpPlus/5.0.0-nightly-02450": {
"type": "package",
"dependencies": {
"CommunityToolkit.HighPerformance": "8.3.2",
"Microsoft.Extensions.Caching.Memory": "9.0.0",
"Microsoft.Extensions.Logging": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "9.0.0",
"NetEscapades.EnumGenerators": "1.0.0-beta11",
"Newtonsoft.Json": "13.0.3",
"Polly.Core": "8.5.0",
"Ulid": "1.3.4"
},
"compile": {
"lib/net9.0/DSharpPlus.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/DSharpPlus.dll": {
"related": ".xml"
}
}
},
"HtmlAgilityPack/1.11.72": {
"type": "package",
"compile": {
"lib/netstandard2.0/HtmlAgilityPack.dll": {
"related": ".deps.json;.pdb;.xml"
}
},
"runtime": {
"lib/netstandard2.0/HtmlAgilityPack.dll": {
"related": ".deps.json;.pdb;.xml"
}
}
},
"ini-parser/2.5.2": {
"type": "package",
"compile": {
"lib/net20/INIFileParser.dll": {
"related": ".dll.mdb;.xml"
}
},
"runtime": {
"lib/net20/INIFileParser.dll": {
"related": ".dll.mdb;.xml"
}
}
},
"Microsoft.Extensions.Caching.Abstractions/9.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.Primitives": "9.0.0"
},
"compile": {
"lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.Extensions.Caching.Memory/9.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "9.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "9.0.0",
"Microsoft.Extensions.Options": "9.0.0",
"Microsoft.Extensions.Primitives": "9.0.0"
},
"compile": {
"lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.Extensions.DependencyInjection/9.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0"
},
"compile": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": {
"type": "package",
"compile": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.Extensions.Logging/9.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "9.0.0",
"Microsoft.Extensions.Options": "9.0.0"
},
"compile": {
"lib/net9.0/Microsoft.Extensions.Logging.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Logging.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.Extensions.Logging.Abstractions/9.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0"
},
"compile": {
"lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {}
}
},
"Microsoft.Extensions.Options/9.0.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
"Microsoft.Extensions.Primitives": "9.0.0"
},
"compile": {
"lib/net9.0/Microsoft.Extensions.Options.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Options.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {}
}
},
"Microsoft.Extensions.Primitives/9.0.0": {
"type": "package",
"compile": {
"lib/net9.0/Microsoft.Extensions.Primitives.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Primitives.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.NET.ILLink.Tasks/9.0.0": {
"type": "package",
"build": {
"build/Microsoft.NET.ILLink.Tasks.props": {}
}
},
"NetEscapades.EnumGenerators/1.0.0-beta11": {
"type": "package",
"compile": {
"lib/netstandard2.0/NetEscapades.EnumGenerators.Attributes.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/NetEscapades.EnumGenerators.Attributes.dll": {
"related": ".xml"
}
},
"build": {
"build/_._": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"OpenAI/2.1.0": {
"type": "package",
"dependencies": {
"System.ClientModel": "1.2.1",
"System.Diagnostics.DiagnosticSource": "6.0.1"
},
"compile": {
"lib/net6.0/OpenAI.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/OpenAI.dll": {
"related": ".xml"
}
}
},
"Polly.Core/8.5.0": {
"type": "package",
"compile": {
"lib/net8.0/Polly.Core.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net8.0/Polly.Core.dll": {
"related": ".pdb;.xml"
}
}
},
"System.ClientModel/1.2.1": {
"type": "package",
"dependencies": {
"System.Memory.Data": "6.0.0",
"System.Text.Json": "6.0.10"
},
"compile": {
"lib/net6.0/System.ClientModel.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.ClientModel.dll": {
"related": ".xml"
}
}
},
"System.Diagnostics.DiagnosticSource/6.0.1": {
"type": "package",
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
},
"compile": {
"lib/net6.0/System.Diagnostics.DiagnosticSource.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.Diagnostics.DiagnosticSource.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/_._": {}
}
},
"System.Memory.Data/6.0.0": {
"type": "package",
"dependencies": {
"System.Text.Json": "6.0.0"
},
"compile": {
"lib/net6.0/System.Memory.Data.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.Memory.Data.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/_._": {}
}
},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
"type": "package",
"compile": {
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/_._": {}
}
},
"System.Text.Encodings.Web/6.0.0": {
"type": "package",
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
},
"compile": {
"lib/net6.0/System.Text.Encodings.Web.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.Text.Encodings.Web.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/_._": {}
}
},
"System.Text.Json/6.0.10": {
"type": "package",
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
"System.Text.Encodings.Web": "6.0.0"
},
"compile": {
"lib/net6.0/System.Text.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.Text.Json.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/System.Text.Json.targets": {}
}
},
"Ulid/1.3.4": {
"type": "package",
"compile": {
"lib/net8.0/Ulid.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Ulid.dll": {
"related": ".xml"
}
}
},
"RobertMart/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v9.0",
"dependencies": {
"HtmlAgilityPack": "1.11.72"
},
"compile": {
"bin/placeholder/RobertMart.dll": {}
},
"runtime": {
"bin/placeholder/RobertMart.dll": {}
}
}
}
},
@ -440,6 +890,55 @@
"lib/net9.0/DSharpPlus.xml"
]
},
"HtmlAgilityPack/1.11.72": {
"sha512": "RNLgXxTFdIGFI+o5l8c2aJ2L5StIRn9Uv8HKR76p7QP4ZUL26wzpWUCWh08xWUdkL2kocl+Xhv6VUu0rA1npVg==",
"type": "package",
"path": "htmlagilitypack/1.11.72",
"files": [
".nupkg.metadata",
".signature.p7s",
"htmlagilitypack.1.11.72.nupkg.sha512",
"htmlagilitypack.nuspec",
"lib/Net35/HtmlAgilityPack.dll",
"lib/Net35/HtmlAgilityPack.pdb",
"lib/Net35/HtmlAgilityPack.xml",
"lib/Net40-client/HtmlAgilityPack.dll",
"lib/Net40-client/HtmlAgilityPack.pdb",
"lib/Net40-client/HtmlAgilityPack.xml",
"lib/Net40/HtmlAgilityPack.XML",
"lib/Net40/HtmlAgilityPack.dll",
"lib/Net40/HtmlAgilityPack.pdb",
"lib/Net45/HtmlAgilityPack.XML",
"lib/Net45/HtmlAgilityPack.dll",
"lib/Net45/HtmlAgilityPack.pdb",
"lib/NetCore45/HtmlAgilityPack.XML",
"lib/NetCore45/HtmlAgilityPack.dll",
"lib/NetCore45/HtmlAgilityPack.pdb",
"lib/netstandard1.3/HtmlAgilityPack.deps.json",
"lib/netstandard1.3/HtmlAgilityPack.dll",
"lib/netstandard1.3/HtmlAgilityPack.pdb",
"lib/netstandard1.3/HtmlAgilityPack.xml",
"lib/netstandard1.6/HtmlAgilityPack.deps.json",
"lib/netstandard1.6/HtmlAgilityPack.dll",
"lib/netstandard1.6/HtmlAgilityPack.pdb",
"lib/netstandard1.6/HtmlAgilityPack.xml",
"lib/netstandard2.0/HtmlAgilityPack.deps.json",
"lib/netstandard2.0/HtmlAgilityPack.dll",
"lib/netstandard2.0/HtmlAgilityPack.pdb",
"lib/netstandard2.0/HtmlAgilityPack.xml",
"lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.XML",
"lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll",
"lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb",
"lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.XML",
"lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll",
"lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb",
"lib/uap10.0/HtmlAgilityPack.XML",
"lib/uap10.0/HtmlAgilityPack.dll",
"lib/uap10.0/HtmlAgilityPack.pdb",
"lib/uap10.0/HtmlAgilityPack.pri",
"readme.md"
]
},
"ini-parser/2.5.2": {
"sha512": "hp3gKmC/14+6eKLgv7Jd1Z7OV86lO+tNfOXr/stQbwmRhdQuXVSvrRAuAe7G5+lwhkov0XkqZ8/bn1PYWMx6eg==",
"type": "package",
@ -744,6 +1243,57 @@
"useSharedDesignerContext.txt"
]
},
"Microsoft.NET.ILLink.Tasks/9.0.0": {
"sha512": "zAwp213evC3UkimtVXRb+Dlgc/40QG145nmZDtp2LO9zJJMfrp+i/87BnXN7tRXEA4liyzdFkjqG1HE8/RPb4A==",
"type": "package",
"path": "microsoft.net.illink.tasks/9.0.0",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"Sdk/Sdk.props",
"THIRD-PARTY-NOTICES.TXT",
"analyzers/dotnet/cs/ILLink.CodeFixProvider.dll",
"analyzers/dotnet/cs/ILLink.RoslynAnalyzer.dll",
"build/Microsoft.NET.ILLink.Analyzers.props",
"build/Microsoft.NET.ILLink.Tasks.props",
"build/Microsoft.NET.ILLink.targets",
"microsoft.net.illink.tasks.9.0.0.nupkg.sha512",
"microsoft.net.illink.tasks.nuspec",
"tools/net472/ILLink.Tasks.dll",
"tools/net472/ILLink.Tasks.dll.config",
"tools/net472/Mono.Cecil.Mdb.dll",
"tools/net472/Mono.Cecil.Pdb.dll",
"tools/net472/Mono.Cecil.Rocks.dll",
"tools/net472/Mono.Cecil.dll",
"tools/net472/Sdk/Sdk.props",
"tools/net472/System.Buffers.dll",
"tools/net472/System.Collections.Immutable.dll",
"tools/net472/System.Memory.dll",
"tools/net472/System.Numerics.Vectors.dll",
"tools/net472/System.Reflection.Metadata.dll",
"tools/net472/System.Runtime.CompilerServices.Unsafe.dll",
"tools/net472/build/Microsoft.NET.ILLink.Analyzers.props",
"tools/net472/build/Microsoft.NET.ILLink.Tasks.props",
"tools/net472/build/Microsoft.NET.ILLink.targets",
"tools/net9.0/ILLink.Tasks.deps.json",
"tools/net9.0/ILLink.Tasks.dll",
"tools/net9.0/Mono.Cecil.Mdb.dll",
"tools/net9.0/Mono.Cecil.Pdb.dll",
"tools/net9.0/Mono.Cecil.Rocks.dll",
"tools/net9.0/Mono.Cecil.dll",
"tools/net9.0/Sdk/Sdk.props",
"tools/net9.0/build/Microsoft.NET.ILLink.Analyzers.props",
"tools/net9.0/build/Microsoft.NET.ILLink.Tasks.props",
"tools/net9.0/build/Microsoft.NET.ILLink.targets",
"tools/net9.0/illink.deps.json",
"tools/net9.0/illink.dll",
"tools/net9.0/illink.runtimeconfig.json",
"useSharedDesignerContext.txt"
]
},
"NetEscapades.EnumGenerators/1.0.0-beta11": {
"sha512": "37btDZQX5OzwUmF6xvqxDb0mRTXi3O/h3nVKjvri2XEwyUnHsY5g43jbPJo8Sp2gxbfJd2lto7fLLQujw5aT5Q==",
"type": "package",
@ -1035,12 +1585,19 @@
"ulid.1.3.4.nupkg.sha512",
"ulid.nuspec"
]
},
"RobertMart/1.0.0": {
"type": "project",
"path": "../RobertMart/RobertMart.csproj",
"msbuildProject": "../RobertMart/RobertMart.csproj"
}
},
"projectFileDependencyGroups": {
"net9.0": [
"DSharpPlus >= 5.0.0-nightly-02450",
"Microsoft.NET.ILLink.Tasks >= 9.0.0",
"OpenAI >= 2.1.0",
"RobertMart >= 1.0.0",
"ini-parser >= 2.5.2"
]
},
@ -1068,7 +1625,11 @@
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {}
"projectReferences": {
"C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj": {
"projectPath": "C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj"
}
}
}
},
"warningProperties": {
@ -1091,6 +1652,12 @@
"target": "Package",
"version": "[5.0.0-nightly-02450, )"
},
"Microsoft.NET.ILLink.Tasks": {
"suppressParent": "All",
"target": "Package",
"version": "[9.0.0, )",
"autoReferenced": true
},
"OpenAI": {
"target": "Package",
"version": "[2.1.0, )"
@ -1111,6 +1678,20 @@
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.linux-x64",
"version": "[9.0.0, 9.0.0]"
},
{
"name": "Microsoft.NETCore.App.Host.linux-x64",
"version": "[9.0.0, 9.0.0]"
},
{
"name": "Microsoft.NETCore.App.Runtime.linux-x64",
"version": "[9.0.0, 9.0.0]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
@ -1118,6 +1699,11 @@
},
"runtimeIdentifierGraphPath": "C:\\Users\\jerem\\.dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"
}
},
"runtimes": {
"linux-x64": {
"#import": []
}
}
},
"logs": [

View File

@ -1,11 +1,12 @@
{
"version": 2,
"dgSpecHash": "6DG89n12Fl0=",
"dgSpecHash": "h+hcN35o2Y0=",
"success": true,
"projectFilePath": "C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\Bot.csproj",
"expectedPackageFiles": [
"C:\\Users\\jerem\\.nuget\\packages\\communitytoolkit.highperformance\\8.3.2\\communitytoolkit.highperformance.8.3.2.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\dsharpplus\\5.0.0-nightly-02450\\dsharpplus.5.0.0-nightly-02450.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\htmlagilitypack\\1.11.72\\htmlagilitypack.1.11.72.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\ini-parser\\2.5.2\\ini-parser.2.5.2.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\9.0.0\\microsoft.extensions.caching.abstractions.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.extensions.caching.memory\\9.0.0\\microsoft.extensions.caching.memory.9.0.0.nupkg.sha512",
@ -15,6 +16,7 @@
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.0\\microsoft.extensions.logging.abstractions.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.extensions.options\\9.0.0\\microsoft.extensions.options.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.0\\microsoft.extensions.primitives.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.net.illink.tasks\\9.0.0\\microsoft.net.illink.tasks.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\netescapades.enumgenerators\\1.0.0-beta11\\netescapades.enumgenerators.1.0.0-beta11.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\openai\\2.1.0\\openai.2.1.0.nupkg.sha512",
@ -25,7 +27,10 @@
"C:\\Users\\jerem\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\system.text.encodings.web\\6.0.0\\system.text.encodings.web.6.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\system.text.json\\6.0.10\\system.text.json.6.0.10.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\ulid\\1.3.4\\ulid.1.3.4.nupkg.sha512"
"C:\\Users\\jerem\\.nuget\\packages\\ulid\\1.3.4\\ulid.1.3.4.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.netcore.app.runtime.linux-x64\\9.0.0\\microsoft.netcore.app.runtime.linux-x64.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.aspnetcore.app.runtime.linux-x64\\9.0.0\\microsoft.aspnetcore.app.runtime.linux-x64.9.0.0.nupkg.sha512",
"C:\\Users\\jerem\\.nuget\\packages\\microsoft.netcore.app.host.linux-x64\\9.0.0\\microsoft.netcore.app.host.linux-x64.9.0.0.nupkg.sha512"
],
"logs": [
{

View File

@ -1 +1 @@
"restore":{"projectUniqueName":"C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\Bot.csproj","projectName":"Bot","projectPath":"C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\Bot.csproj","outputPath":"C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net9.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"all"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"DSharpPlus":{"target":"Package","version":"[5.0.0-nightly-02450, )"},"OpenAI":{"target":"Package","version":"[2.1.0, )"},"ini-parser":{"target":"Package","version":"[2.5.2, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Users\\jerem\\.dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"}}
"restore":{"projectUniqueName":"C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\Bot.csproj","projectName":"Bot","projectPath":"C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\Bot.csproj","outputPath":"C:\\Users\\jerem\\RiderProjects\\Robert\\Bot\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net9.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{"C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj":{"projectPath":"C:\\Users\\jerem\\RiderProjects\\Robert\\RobertMart\\RobertMart.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"all"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"DSharpPlus":{"target":"Package","version":"[5.0.0-nightly-02450, )"},"OpenAI":{"target":"Package","version":"[2.1.0, )"},"ini-parser":{"target":"Package","version":"[2.5.2, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Users\\jerem\\.dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"}}

View File

@ -1 +1 @@
17376010223077519
17393804755893759

View File

@ -1 +1 @@
17376089123902687
17393793386527819

View File

@ -2,6 +2,8 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bot", "Bot\Bot.csproj", "{15F2CD23-B53C-4C59-9D68-B2FD3F0F2C48}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RobertMart", "RobertMart\RobertMart.csproj", "{FA57B949-39DA-44CD-9F9F-880A0F585D7D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -12,5 +14,9 @@ Global
{15F2CD23-B53C-4C59-9D68-B2FD3F0F2C48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15F2CD23-B53C-4C59-9D68-B2FD3F0F2C48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15F2CD23-B53C-4C59-9D68-B2FD3F0F2C48}.Release|Any CPU.Build.0 = Release|Any CPU
{FA57B949-39DA-44CD-9F9F-880A0F585D7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA57B949-39DA-44CD-9F9F-880A0F585D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FA57B949-39DA-44CD-9F9F-880A0F585D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA57B949-39DA-44CD-9F9F-880A0F585D7D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -1,4 +1,7 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHtmlDocument_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F6639e2215cb1e329eef326070ce358eabd3bb52447f6e435b4ed1ae57ad9f_003FHtmlDocument_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANumber_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc73b3c6c598640c592fd3c6fa226c286e90908_003F39_003F6013bd39_003FNumber_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fc7102cd0ffb8973777e61b1942c3fffac7e14016a511d055c3adf73ff91748_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue">&lt;AssemblyExplorer&gt;&#xD;
&lt;Assembly Path="C:\Users\jerem\.nuget\packages\dsharpplus\4.5.0\lib\netstandard2.0\DSharpPlus.dll" /&gt;&#xD;
&lt;/AssemblyExplorer&gt;</s:String></wpf:ResourceDictionary>

View File

@ -0,0 +1,69 @@
using HtmlAgilityPack;
namespace RobertMart
{
public class CommodityTracker
{
public static readonly Dictionary<string, decimal> Commodities = new Dictionary<string, decimal>()
{
{"Eggs", 6.00m},
{"Gas", 3.000m},
};
private const string EggsSourceUri = "https://tradingeconomics.com";
private const string GasSourceUri = "https://gasprices.aaa.com/";
public static async void FetchCommodities()
{
try
{
var client = new HttpClient();
var httpRequest = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri($"{EggsSourceUri}/commodity/eggs-us"),
Headers =
{
{"Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},
{ "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0" },
}
};
var html = await client.SendAsync(httpRequest).Result.Content.ReadAsStringAsync();
var doc = new HtmlDocument();
doc.LoadHtml(html);
var tableNode = doc.DocumentNode.SelectSingleNode("//table[@class='table']");
var tr = tableNode.SelectSingleNode("./tr");
var priceNode = tr.SelectSingleNode("./td[2]");
var price = decimal.Parse(priceNode.InnerText.Trim());
Commodities["Eggs"] = price;
var gasHttpRequest = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(GasSourceUri),
Headers =
{
{ "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" },
{
"User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"
},
},
};
var gasClient = new HttpClient();
var gasHtml = await gasClient.SendAsync(gasHttpRequest).Result.Content.ReadAsStringAsync();
var gasDoc = new HtmlDocument();
gasDoc.LoadHtml(gasHtml);
var gasPriceNode = gasDoc.DocumentNode.SelectSingleNode("//p[@class='numb']");
var stringGasPrice = gasPriceNode.SelectSingleNode("text()").InnerText.Trim();
var gasPrice = decimal.Parse(stringGasPrice.Replace("$", ""));
Commodities["Gas"] = gasPrice;
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
}

View File

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="HtmlAgilityPack" Version="1.11.72" />
</ItemGroup>
</Project>