diff --git a/modules/RichSiteSummary/Data/Post.cs b/modules/RichSiteSummary/Data/Post.cs index 6c72a89..443626c 100644 --- a/modules/RichSiteSummary/Data/Post.cs +++ b/modules/RichSiteSummary/Data/Post.cs @@ -30,7 +30,7 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Data protected override string ViewableUrl { - get => UtmUtility.ApplyParameters(Url, new UtmParameters() + get => UtmUtility.ApplyParameters(new Uri(new(Feed.Url), Url), new UtmParameters() { Source = "telegram", Type = "rss_post", diff --git a/modules/RichSiteSummary/UrchinTrackingModule/UtmUtility.cs b/modules/RichSiteSummary/UrchinTrackingModule/UtmUtility.cs index 90ddb6f..8a97a02 100644 --- a/modules/RichSiteSummary/UrchinTrackingModule/UtmUtility.cs +++ b/modules/RichSiteSummary/UrchinTrackingModule/UtmUtility.cs @@ -9,16 +9,18 @@ namespace Kruzya.TelegramBot.RichSiteSummary.UrchinTrackingModule public class UtmUtility { public static string ApplyParameters(string url, UtmParameters parameters) + => ApplyParameters(new Uri(url), parameters); + + public static string ApplyParameters(Uri uri, UtmParameters parameters) { - var uri = new Uri(url); var query = HttpUtility.ParseQueryString(uri.Query); - + SetIfNotNull(query, "utm_source", parameters.Source); SetIfNotNull(query, "utm_medium", parameters.Type); SetIfNotNull(query, "utm_campaign", parameters.Campaign); SetIfNotNull(query, "utm_term", parameters.Term); SetIfNotNull(query, "utm_content", parameters.Content); - + var uriBuilder = new UriBuilder(uri); uriBuilder.Query = BuildQueryString(query); return uriBuilder.ToString();