Skip to content

Commit 5d2c950

Browse files
Rename AddOEmbedProvider() and Obsolete OEmbedProviders() (#11703)
* Rename AddOEmbedProvider to AddEmbedProvider * Obsolete OEmbedProviders() Obsolete OEmbedProviders() and proxy it to a new EmbedProviders() * Rename EmbedProviderBase to OEmbedProviderBase Rename EmbedProviderBase to OEmbedProviderBase Add an obsoleted class EmbedProviderBase Add todo's to all implementations * remove unintentionally comment Rem: automatic tests failures not linked to this PR.
1 parent 4cd0544 commit 5d2c950

18 files changed

+129
-93
lines changed

src/Umbraco.Core/DependencyInjection/UmbracoBuilder.CollectionBuilders.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ public static IUmbracoBuilder AddMediaUrlProvider<T>(this IUmbracoBuilder builde
7777
/// </summary>
7878
/// <typeparam name="T">The type of the embed provider.</typeparam>
7979
/// <param name="builder">The builder.</param>
80-
public static IUmbracoBuilder AddOEmbedProvider<T>(this IUmbracoBuilder builder)
80+
public static IUmbracoBuilder AddEmbedProvider<T>(this IUmbracoBuilder builder)
8181
where T : class, IEmbedProvider
8282
{
83-
builder.OEmbedProviders().Append<T>();
83+
builder.EmbedProviders().Append<T>();
8484
return builder;
8585
}
8686

src/Umbraco.Core/DependencyInjection/UmbracoBuilder.Collections.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using Umbraco.Cms.Core.Actions;
23
using Umbraco.Cms.Core.Cache;
34
using Umbraco.Cms.Core.Composing;
@@ -102,7 +103,7 @@ internal static void AddAllCoreCollectionBuilders(this IUmbracoBuilder builder)
102103
builder.ManifestFilters();
103104
builder.MediaUrlGenerators();
104105
// register OEmbed providers - no type scanning - all explicit opt-in of adding types, IEmbedProvider is not IDiscoverable
105-
builder.OEmbedProviders()
106+
builder.EmbedProviders()
106107
.Append<YouTube>()
107108
.Append<Twitter>()
108109
.Append<Vimeo>()
@@ -265,7 +266,15 @@ public static MediaUrlGeneratorCollectionBuilder MediaUrlGenerators(this IUmbrac
265266
/// Gets the backoffice OEmbed Providers collection builder.
266267
/// </summary>
267268
/// <param name="builder">The builder.</param>
269+
[Obsolete("Use EmbedProviders() instead")]
268270
public static EmbedProvidersCollectionBuilder OEmbedProviders(this IUmbracoBuilder builder)
271+
=> EmbedProviders(builder);
272+
273+
/// <summary>
274+
/// Gets the backoffice Embed Providers collection builder.
275+
/// </summary>
276+
/// <param name="builder">The builder.</param>
277+
public static EmbedProvidersCollectionBuilder EmbedProviders(this IUmbracoBuilder builder)
269278
=> builder.WithCollectionBuilder<EmbedProvidersCollectionBuilder>();
270279

271280
/// <summary>

src/Umbraco.Core/Media/EmbedProviders/DailyMotion.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Umbraco.Cms.Core.Serialization;
33

44
namespace Umbraco.Cms.Core.Media.EmbedProviders
55
{
6+
// TODO (V10): change base class to OEmbedProviderBase
67
public class DailyMotion : EmbedProviderBase
78
{
89
public override string ApiEndpoint => "https://www.dailymotion.com/services/oembed";
Lines changed: 5 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,14 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Net;
4-
using System.Net.Http;
5-
using System.Text;
6-
using System.Xml;
1+
using System;
72
using Umbraco.Cms.Core.Serialization;
83

94
namespace Umbraco.Cms.Core.Media.EmbedProviders
105
{
11-
public abstract class EmbedProviderBase : IEmbedProvider
6+
[Obsolete("Use OEmbedProviderBase instead")]
7+
public abstract class EmbedProviderBase : OEmbedProviderBase
128
{
13-
private readonly IJsonSerializer _jsonSerializer;
14-
159
protected EmbedProviderBase(IJsonSerializer jsonSerializer)
10+
: base(jsonSerializer)
1611
{
17-
_jsonSerializer = jsonSerializer;
18-
}
19-
20-
private static HttpClient _httpClient;
21-
22-
public abstract string ApiEndpoint { get; }
23-
24-
public abstract string[] UrlSchemeRegex { get; }
25-
26-
public abstract Dictionary<string, string> RequestParams { get; }
27-
28-
public abstract string GetMarkup(string url, int maxWidth = 0, int maxHeight = 0);
29-
30-
public virtual string GetEmbedProviderUrl(string url, int maxWidth, int maxHeight)
31-
{
32-
if (Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute) == false)
33-
throw new ArgumentException("Not a valid URL.", nameof(url));
34-
35-
var fullUrl = new StringBuilder();
36-
37-
fullUrl.Append(ApiEndpoint);
38-
fullUrl.Append("?url=" + WebUtility.UrlEncode(url));
39-
40-
foreach (var param in RequestParams)
41-
fullUrl.Append($"&{param.Key}={param.Value}");
42-
43-
if (maxWidth > 0)
44-
fullUrl.Append("&maxwidth=" + maxWidth);
45-
46-
if (maxHeight > 0)
47-
fullUrl.Append("&maxheight=" + maxHeight);
48-
49-
return fullUrl.ToString();
50-
}
51-
52-
public virtual string DownloadResponse(string url)
53-
{
54-
if (_httpClient == null)
55-
_httpClient = new HttpClient();
56-
57-
using (var request = new HttpRequestMessage(HttpMethod.Get, url))
58-
{
59-
var response = _httpClient.SendAsync(request).Result;
60-
return response.Content.ReadAsStringAsync().Result;
61-
}
62-
}
63-
64-
public virtual T GetJsonResponse<T>(string url) where T : class
65-
{
66-
var response = DownloadResponse(url);
67-
return _jsonSerializer.Deserialize<T>(response);
68-
}
69-
70-
public virtual XmlDocument GetXmlResponse(string url)
71-
{
72-
var response = DownloadResponse(url);
73-
var doc = new XmlDocument();
74-
doc.LoadXml(response);
75-
76-
return doc;
77-
}
78-
79-
public virtual string GetXmlProperty(XmlDocument doc, string property)
80-
{
81-
var selectSingleNode = doc.SelectSingleNode(property);
82-
return selectSingleNode != null ? selectSingleNode.InnerText : string.Empty;
8312
}
8413
}
85-
};
14+
}

src/Umbraco.Core/Media/EmbedProviders/Flickr.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using System.Net;
33
using Umbraco.Cms.Core.Serialization;
44

55
namespace Umbraco.Cms.Core.Media.EmbedProviders
66
{
7+
// TODO(V10) : change base class to OEmbedProviderBase
78
public class Flickr : EmbedProviderBase
89
{
910
public override string ApiEndpoint => "http://www.flickr.com/services/oembed/";

src/Umbraco.Core/Media/EmbedProviders/GettyImages.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Umbraco.Cms.Core.Serialization;
33

44
namespace Umbraco.Cms.Core.Media.EmbedProviders
55
{
6+
// TODO(V10) : change base class to OEmbedProviderBase
67
public class GettyImages : EmbedProviderBase
78
{
89
public override string ApiEndpoint => "http://embed.gettyimages.com/oembed";

src/Umbraco.Core/Media/EmbedProviders/Giphy.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Umbraco.Cms.Core.Serialization;
33

44
namespace Umbraco.Cms.Core.Media.EmbedProviders
55
{
66
/// <summary>
77
/// Embed Provider for Giphy.com the popular online GIFs and animated sticker provider.
88
/// </summary>
9+
/// TODO(V10) : change base class to OEmbedProviderBase
910
public class Giphy : EmbedProviderBase
1011
{
1112
public override string ApiEndpoint => "https://giphy.com/services/oembed?url=";

src/Umbraco.Core/Media/EmbedProviders/Hulu.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Umbraco.Cms.Core.Serialization;
33

44
namespace Umbraco.Cms.Core.Media.EmbedProviders
55
{
6+
// TODO(V10) : change base class to OEmbedProviderBase
67
public class Hulu : EmbedProviderBase
78
{
89
public override string ApiEndpoint => "http://www.hulu.com/api/oembed.json";

src/Umbraco.Core/Media/EmbedProviders/Issuu.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Umbraco.Cms.Core.Serialization;
33

44
namespace Umbraco.Cms.Core.Media.EmbedProviders
55
{
6+
// TODO(V10) : change base class to OEmbedProviderBase
67
public class Issuu : EmbedProviderBase
78
{
89
public override string ApiEndpoint => "https://issuu.com/oembed";

src/Umbraco.Core/Media/EmbedProviders/Kickstarter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using Umbraco.Cms.Core.Serialization;
33

44
namespace Umbraco.Cms.Core.Media.EmbedProviders
55
{
6+
// TODO(V10) : change base class to OEmbedProviderBase
67
public class Kickstarter : EmbedProviderBase
78
{
89
public override string ApiEndpoint => "http://www.kickstarter.com/services/oembed";

0 commit comments

Comments
 (0)