aboutsummaryrefslogtreecommitdiff
path: root/Source/Assistant
diff options
context:
space:
mode:
authorSergey Chebotar <s.chebotar@gmail.com>2021-12-26 18:22:32 +0300
committerSergey Chebotar <s.chebotar@gmail.com>2021-12-26 18:22:32 +0300
commit54fc3320e7d64d7903b4d091fe0d5c15df01fd78 (patch)
treeac8b9aa1e883a85339a594b2797ab319cca73c4e /Source/Assistant
parent20cfbfcca3a779c04aecdca5e4b465651e2be42a (diff)
Move to /src
Diffstat (limited to 'Source/Assistant')
-rw-r--r--Source/Assistant/HttpClientUtil.cs53
-rw-r--r--Source/Assistant/IProduct.cs9
-rw-r--r--Source/Assistant/ParseUtil.cs44
-rw-r--r--Source/Assistant/RequestModifier.cs67
-rw-r--r--Source/Assistant/SkuAssist.cs22
-rw-r--r--Source/Assistant/SkuExtensions.cs12
-rw-r--r--Source/Assistant/StoreResponse.cs21
7 files changed, 0 insertions, 228 deletions
diff --git a/Source/Assistant/HttpClientUtil.cs b/Source/Assistant/HttpClientUtil.cs
deleted file mode 100644
index 316ea07..0000000
--- a/Source/Assistant/HttpClientUtil.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-using System.Net;
-using System.Net.Http;
-using System.Threading.Tasks;
-
-namespace RehauSku.Assistant
-{
- static class HttpClientUtil
- {
- private static HttpClient _httpClient = AddIn.httpClient;
-
- public async static Task<string> GetContentByRequest(string request)
- {
- Uri uri = request.ConvertToUri();
-
- ServicePointManager.SecurityProtocol =
- SecurityProtocolType.Tls12 |
- SecurityProtocolType.Tls11 |
- SecurityProtocolType.Tls;
-
- return await _httpClient.GetStringAsync(uri);
- }
-
- private static Uri ConvertToUri(this string request)
- {
- UriBuilder baseUri = new UriBuilder("https", "shop-rehau.ru");
-
- baseUri.Path = "/catalogsearch/result/index/";
- string cleanedRequest = request.CleanRequest();
-
- switch (RegistryUtil.StoreResponseOrder)
- {
- case ResponseOrder.Relevance:
- baseUri.Query = "dir=asc&order=relevance&q=" + cleanedRequest;
- break;
- case ResponseOrder.Name:
- baseUri.Query = "dir=asc&order=name&q=" + cleanedRequest;
- break;
- case ResponseOrder.Price:
- baseUri.Query = "dir=asc&order=price&q=" + cleanedRequest;
- break;
- case ResponseOrder.Series:
- baseUri.Query = "dir=asc&order=sch_product_series&q=" + cleanedRequest;
- break;
- default:
- baseUri.Query = "q=" + cleanedRequest;
- break;
- }
-
- return baseUri.Uri;
- }
- }
-} \ No newline at end of file
diff --git a/Source/Assistant/IProduct.cs b/Source/Assistant/IProduct.cs
deleted file mode 100644
index 9494eeb..0000000
--- a/Source/Assistant/IProduct.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace RehauSku.Assistant
-{
- interface IProduct
- {
- string Id { get; }
- string Name { get; }
- string Price { get; }
- }
-}
diff --git a/Source/Assistant/ParseUtil.cs b/Source/Assistant/ParseUtil.cs
deleted file mode 100644
index a93c658..0000000
--- a/Source/Assistant/ParseUtil.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using AngleSharp;
-using AngleSharp.Dom;
-using Newtonsoft.Json;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace RehauSku.Assistant
-{
- static class ParseUtil
- {
- public async static Task<IDocument> ContentToDocAsync(string content)
- {
- IConfiguration config = Configuration.Default;
- IBrowsingContext context = BrowsingContext.New(config);
-
- return await context.OpenAsync(req => req.Content(content));
- }
-
- public static IProduct GetProduct(IDocument document)
- {
- string script = document
- .Scripts
- .Where(s => s.InnerHtml.Contains("dataLayer"))
- .FirstOrDefault()
- .InnerHtml;
-
- string json = script
- .Substring(script.IndexOf("push(") + 5)
- .TrimEnd(new[] { ')', ';', '\n', ' ' });
-
- if (!json.Contains("impressions"))
- return null;
-
- StoreResponce storeResponse = JsonConvert.DeserializeObject<StoreResponce>(json);
- IProduct product = storeResponse
- .Ecommerce
- .Impressions
- .Where(p => p.Id.IsRehauSku())
- .FirstOrDefault();
-
- return product;
- }
- }
-} \ No newline at end of file
diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs
deleted file mode 100644
index 9f42e71..0000000
--- a/Source/Assistant/RequestModifier.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.RegularExpressions;
-
-namespace RehauSku.Assistant
-{
- public static class RequestModifier
- {
- public static string CleanRequest(this string input)
- {
- string replace = new StringBuilder(input)
- .Replace("+", " plus ")
- .Replace("РХ", "")
- .Replace("º", " ")
- .Replace(".", " ")
- .Replace("Ø", " ")
- .ToString();
-
- return replace._tPieceNormalize();
- }
-
- private static string _tPieceNormalize(this string line)
- {
- Regex regex = new Regex(@"\d{2}.\d{2}.\d{2}");
-
- if (!regex.IsMatch(line))
- return line;
-
- string match = regex.Match(line).Value;
-
- int side = int.Parse($"{match[3]}{match[4]}");
- int[] endFaces = new int[]
- {
- int.Parse($"{match[0]}{match[1]}"),
- int.Parse($"{match[6]}{match[7]}")
- };
-
- if (new[] { endFaces[0], endFaces[1], side }.Any(x => x == 45 || x == 90 || x == 87))
- return line;
-
- List<string> additions = new List<string>();
-
- if (endFaces.All(x => x < side))
- additions.Add("увеличенный боковой");
-
- else
- {
- if (new[] { endFaces[0], endFaces[1], side }.Distinct().Count() == 1)
- additions.Add("равнопроходной");
- else
- additions.Add("уменьшенный");
-
- if (endFaces.Any(x => x > side))
- additions.Add("боковой");
-
- if (endFaces[0] != endFaces[1])
- additions.Add("торцевой");
- }
-
- string piece = $" {endFaces.Max()}-{side}-{endFaces.Min()} ";
- string modifiedMatch = string.Join(" ", additions) + piece;
-
- return line.Replace(match, modifiedMatch);
- }
- }
-} \ No newline at end of file
diff --git a/Source/Assistant/SkuAssist.cs b/Source/Assistant/SkuAssist.cs
deleted file mode 100644
index 6c68288..0000000
--- a/Source/Assistant/SkuAssist.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System.Threading.Tasks;
-
-namespace RehauSku.Assistant
-{
- public enum ProductField
- {
- Name,
- Id,
- Price
- }
-
- static class SkuAssist
- {
- public static async Task<IProduct> GetProductAsync(string request)
- {
- var content = await HttpClientUtil.GetContentByRequest(request);
- var document = await ParseUtil.ContentToDocAsync(content);
-
- return ParseUtil.GetProduct(document);
- }
- }
-} \ No newline at end of file
diff --git a/Source/Assistant/SkuExtensions.cs b/Source/Assistant/SkuExtensions.cs
deleted file mode 100644
index e39807b..0000000
--- a/Source/Assistant/SkuExtensions.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System.Text.RegularExpressions;
-
-namespace RehauSku.Assistant
-{
- static class SkuExtensions
- {
- public static bool IsRehauSku(this string line)
- {
- return Regex.IsMatch(line, @"^[1]\d{6}[1]\d{3}$");
- }
- }
-} \ No newline at end of file
diff --git a/Source/Assistant/StoreResponse.cs b/Source/Assistant/StoreResponse.cs
deleted file mode 100644
index 8e1759d..0000000
--- a/Source/Assistant/StoreResponse.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Collections.Generic;
-
-namespace RehauSku.Assistant
-{
- public class StoreResponce
- {
- public Ecommerce Ecommerce { get; set; }
- }
-
- public class Ecommerce
- {
- public List<Product> Impressions { get; set; }
- }
-
- public class Product : IProduct
- {
- public string Id { get; set; }
- public string Name { get; set; }
- public string Price { get; set; }
- }
-} \ No newline at end of file