handled arguments and removed hardwired sensitive variables
This commit is contained in:
@@ -4,18 +4,35 @@ using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using static console_solaredge.Model;
|
||||
|
||||
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($"ced@pal.it:#zPG6tax1yuiWU*8iw"));
|
||||
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>();
|
||||
|
||||
@@ -79,6 +97,8 @@ if (result.Count > 0)
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("System run without alert!");
|
||||
Console.WriteLine("OK - System run without alert!");
|
||||
Environment.Exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user