handled arguments and removed hardwired sensitive variables

This commit is contained in:
Claudio Boggian
2023-11-13 12:00:10 +01:00
parent 6e46e413ba
commit 33977d5047
+39 -19
View File
@@ -4,18 +4,35 @@ using System.Net.Http.Headers;
using System.Text;
using static console_solaredge.Model;
SolarEdgeModel result = new();
var credential = Convert.ToBase64String(Encoding.ASCII.GetBytes($"ced@pal.it:#zPG6tax1yuiWU*8iw"));
var handler = new HttpClientHandler();
handler.CookieContainer = new CookieContainer();
using (var client = new HttpClient(handler))
internal class Program
{
/// <summary>
/// This method retrive alerts from SolarEdge Monitoring site
/// </summary>
/// <param name="args"> [0] UserName - [1] Password - [2] SiteId </param>
/// <returns>Write on console the result</returns>
private static async Task Main(string[] args)
{
if (args.Length == 0) {
Console.WriteLine("No args found, use di this script with folowing args:");
Console.WriteLine("./console_solaredge <UserName> <Password> <SiteId>");
throw new ArgumentNullException(nameof(args));
}
SolarEdgeModel result = new();
var credential = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{args[0]}:{args[1]}"));
var handler = new HttpClientHandler();
handler.CookieContainer = new CookieContainer();
using (var client = new HttpClient(handler))
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credential);
var response = await client.GetAsync("https://monitoring.solaredge.com/solaredge-web/p/site/3834979/#/dashboard");
var response = await client.GetAsync($"https://monitoring.solaredge.com/solaredge-web/p/site/{args[2]}/#/dashboard");
var cookies = handler.CookieContainer.GetCookies(new Uri("https://monitoring.solaredge.com"));
string csrfToken = null;
string? csrfToken = null;
foreach (Cookie cookie in cookies)
{
if (cookie.Name == "CSRF-TOKEN")
@@ -27,13 +44,13 @@ using (var client = new HttpClient(handler))
ArgumentNullException.ThrowIfNull(csrfToken);
var alertRequest = new HttpRequestMessage(HttpMethod.Post, "https://monitoring.solaredge.com/solaredge-apigw/api/rna/v1.0/site/3834979/alerts?count=20&page=1");
var alertRequest = new HttpRequestMessage(HttpMethod.Post, $"https://monitoring.solaredge.com/solaredge-apigw/api/rna/v1.0/site/{args[2]}/alerts?count=20&page=1");
alertRequest.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0");
alertRequest.Headers.Add("Accept", "application/json, text/plain, */*");
alertRequest.Headers.Add("Accept-Language", "it,it-IT;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
alertRequest.Headers.Add("Connection", "keep-alive");
alertRequest.Headers.Add("Origin", "https://monitoring.solaredge.com");
alertRequest.Headers.Add("Referer", "https://monitoring.solaredge.com/solaredge-web/p/site/3834979/");
alertRequest.Headers.Add("Referer", $"https://monitoring.solaredge.com/solaredge-web/p/site/{args[2]}/");
alertRequest.Headers.Add("Sec-Fetch-Dest", "empty");
alertRequest.Headers.Add("Sec-Fetch-Mode", "cors");
alertRequest.Headers.Add("Sec-Fetch-Site", "same-origin");
@@ -47,8 +64,9 @@ using (var client = new HttpClient(handler))
string responseText = await alertResponse.Content.ReadAsStringAsync();
var apiResult = JsonConvert.DeserializeObject<SolarEdgeModel>(responseText);
var groupOpenAlert = apiResult.Alerts.Where(x => x.Open == true).ToList();
var groupOpenAlert = apiResult?.Alerts?.Where(x => x.Open == true).ToList();
ArgumentNullException.ThrowIfNull(groupOpenAlert);
result.Count = groupOpenAlert.Count;
result.Alerts = new List<Alert>();
@@ -56,16 +74,16 @@ using (var client = new HttpClient(handler))
{
result.Alerts.Add(alert);
}
}
}
if (result.Count > 0)
{
if (result.Count > 0)
{
Console.WriteLine("Alert Count: " + result.Count);
Console.WriteLine("");
foreach (var alert in result.Alerts)
{
Console.WriteLine($"[{ result.Alerts.ToList().IndexOf(alert) + 1}]");
Console.WriteLine($"[{result.Alerts.ToList().IndexOf(alert) + 1}]");
Console.WriteLine("Type :\t\t" + alert.AlertType);
Console.WriteLine("Impact :\t" + alert.Impact);
Console.WriteLine("Device :\t" + alert.ComponentType);
@@ -76,9 +94,11 @@ if (result.Count > 0)
}
Environment.Exit(2);
}
else
{
Console.WriteLine("System run without alert!");
}
else
{
Console.WriteLine("OK - System run without alert!");
Environment.Exit(0);
}
}
}