From af69cb4a544a1b9be1339546be62ff54b389730e Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Thu, 25 Oct 2018 16:00:28 +0100 Subject: [PATCH] Convert all oembed regexps to raw strings, to avoid escaping bugs Auto-converted from the old code using: >>> from wagtail.embeds.oembed_providers import all_providers >>> for provider in all_providers: ... print(provider['endpoint']) ... for url in provider['urls']: ... print(" r'" + url + "',") and confirmed equal to the original using: >>> from wagtail.embeds.oembed_providers import all_providers >>> from wagtail.embeds.oembed_providers_old import all_providers as all_providers_old >>> all_providers == all_providers_old True --- wagtail/embeds/oembed_providers.py | 296 ++++++++++++++--------------- 1 file changed, 148 insertions(+), 148 deletions(-) diff --git a/wagtail/embeds/oembed_providers.py b/wagtail/embeds/oembed_providers.py index 43035ab3f..f4925ba43 100644 --- a/wagtail/embeds/oembed_providers.py +++ b/wagtail/embeds/oembed_providers.py @@ -1,615 +1,615 @@ speakerdeck = { "endpoint": "https://speakerdeck.com/oembed.{format}", "urls": [ - "^http(?:s)?://speakerdeck\\.com/.+$" + r'^http(?:s)?://speakerdeck\.com/.+$', ], } app_net = { "endpoint": "https://alpha-api.app.net/oembed", "urls": [ - "^http(?:s)?://alpha\\.app\\.net/[^#?/]+/post/.+$", - "^http(?:s)?://photos\\.app\\.net/[^#?/]+/.+$" + r'^http(?:s)?://alpha\.app\.net/[^#?/]+/post/.+$', + r'^http(?:s)?://photos\.app\.net/[^#?/]+/.+$', ], } youtube = { "endpoint": "http://www.youtube.com/oembed", "urls": [ - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/watch.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/v/.+$", - "^http(?:s)?://youtu\\.be/.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/user/.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/[^#?/]+#[^#?/]+/.+$", - "^http(?:s)?://m\\.youtube\\.com/index.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/profile.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/view_play_list.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?youtube\\.com/playlist.+$" + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/watch.+$', + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/v/.+$', + r'^http(?:s)?://youtu\.be/.+$', + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/user/.+$', + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/[^#?/]+#[^#?/]+/.+$', + r'^http(?:s)?://m\.youtube\.com/index.+$', + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/profile.+$', + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/view_play_list.+$', + r'^http(?:s)?://(?:[-\w]+\.)?youtube\.com/playlist.+$', ], } deviantart = { "endpoint": "http://backend.deviantart.com/oembed", "urls": [ - "^http://(?:[-\\w]+\\.)?deviantart\\.com/art/.+$", - "^http://fav\\.me/.+$", - "^http://sta\\.sh/.+$", - "^http://(?:[-\\w]+\\.)?deviantart\\.com/[^#?/]+#/d.+$" + r'^http://(?:[-\w]+\.)?deviantart\.com/art/.+$', + r'^http://fav\.me/.+$', + r'^http://sta\.sh/.+$', + r'^http://(?:[-\w]+\.)?deviantart\.com/[^#?/]+#/d.+$', ], } blip_tv = { "endpoint": "http://blip.tv/oembed/", "urls": [ - "^http://[-\\w]+\\.blip\\.tv/.+$" + r'^http://[-\w]+\.blip\.tv/.+$', ], } dailymotion = { "endpoint": "http://www.dailymotion.com/api/oembed/", "urls": [ - "^http://[-\\w]+\\.dailymotion\\.com/.+$" + r'^http://[-\w]+\.dailymotion\.com/.+$', ], } flikr = { "endpoint": "http://www.flickr.com/services/oembed/", "urls": [ - "^http(?:s)?://[-\\w]+\\.flickr\\.com/photos/.+$", - "^http(?:s)?://flic\\.kr\\.com/.+$" + r'^http(?:s)?://[-\w]+\.flickr\.com/photos/.+$', + r'^http(?:s)?://flic\.kr\.com/.+$', ], } hulu = { "endpoint": "http://www.hulu.com/api/oembed.{format}", "urls": [ - "^http://www\\.hulu\\.com/watch/.+$" + r'^http://www\.hulu\.com/watch/.+$', ], } nfb = { "endpoint": "http://www.nfb.ca/remote/services/oembed/", "urls": [ - "^http://(?:[-\\w]+\\.)?nfb\\.ca/film/.+$" + r'^http://(?:[-\w]+\.)?nfb\.ca/film/.+$', ], } qik = { "endpoint": "http://qik.com/api/oembed.{format}", "urls": [ - "^http://qik\\.com/.+$", - "^http://qik\\.ly/.+$" + r'^http://qik\.com/.+$', + r'^http://qik\.ly/.+$', ], } revision3 = { "endpoint": "http://revision3.com/api/oembed/", "urls": [ - "^http://[-\\w]+\\.revision3\\.com/.+$" + r'^http://[-\w]+\.revision3\.com/.+$', ], } scribd = { "endpoint": "http://www.scribd.com/services/oembed", "urls": [ - "^http://[-\\w]+\\.scribd\\.com/.+$" + r'^http://[-\w]+\.scribd\.com/.+$', ], } viddler = { "endpoint": "http://www.viddler.com/oembed/", "urls": [ - "^http://[-\\w]+\\.viddler\\.com/v/.+$", - "^http://[-\\w]+\\.viddler\\.com/explore/.+$" + r'^http://[-\w]+\.viddler\.com/v/.+$', + r'^http://[-\w]+\.viddler\.com/explore/.+$', ], } vimeo = { "endpoint": "http://www.vimeo.com/api/oembed.{format}", "urls": [ - "^http(?:s)?://(?:www\\.)?vimeo\\.com/.+$", - "^http(?:s)?://player\\.vimeo\\.com/.+$" + r'^http(?:s)?://(?:www\.)?vimeo\.com/.+$', + r'^http(?:s)?://player\.vimeo\.com/.+$', ], } dotsub = { "endpoint": "http://dotsub.com/services/oembed", "urls": [ - "^http://dotsub\\.com/view/.+$" + r'^http://dotsub\.com/view/.+$', ], } yfrog = { "endpoint": "http://www.yfrog.com/api/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?yfrog\\.com/.+$", - "^http(?:s)?://(?:www\\.)?yfrog\\.us/.+$" + r'^http(?:s)?://(?:www\.)?yfrog\.com/.+$', + r'^http(?:s)?://(?:www\.)?yfrog\.us/.+$', ], } clickthrough = { "endpoint": "http://clikthrough.com/services/oembed", "urls": [ - "^http(?:s)?://(?:[-\\w]+\\.)?clikthrough\\.com/.+$" + r'^http(?:s)?://(?:[-\w]+\.)?clikthrough\.com/.+$', ], } kinomap = { "endpoint": "http://www.kinomap.com/oembed", "urls": [ - "^http://[-\\w]+\\.kinomap\\.com/.+$" + r'^http://[-\w]+\.kinomap\.com/.+$', ], } photobucket = { "endpoint": "https://photobucket.com/oembed", "urls": [ - "^http://(?:[-\\w]+\\.)?photobucket\\.com/albums/.+$", - "^http://(?:[-\\w]+\\.)?photobucket\\.com/groups/.+$" + r'^http://(?:[-\w]+\.)?photobucket\.com/albums/.+$', + r'^http://(?:[-\w]+\.)?photobucket\.com/groups/.+$', ], } instagram = { "endpoint": "http://api.instagram.com/oembed", "urls": [ - "^http://instagr\\.am/p/.+$", - "^http[s]?://(?:www\\.)?instagram\\.com/p/.+$" + r'^http://instagr\.am/p/.+$', + r'^http[s]?://(?:www\.)?instagram\.com/p/.+$', ], } facebook_video = { "endpoint": "https://www.facebook.com/plugins/video/oembed.{format}", "urls": [ - "^https://(?:www\\.)?facebook\\.com/.+?/videos/.+$", - "^https://(?:www\\.)?facebook\\.com/video\\.php\\?(?:v|id)=.+$", + r'^https://(?:www\.)?facebook\.com/.+?/videos/.+$', + r'^https://(?:www\.)?facebook\.com/video\.php\?(?:v|id)=.+$', ], } facebook_post = { "endpoint": "https://www.facebook.com/plugins/post/oembed.{format}", "urls": [ - "^https://(?:www\\.)?facebook\\.com/.+?/(?:posts|activity)/.+$", - "^https://(?:www\\.)?facebook\\.com/photo\\.php\\?fbid=.+$", - "^https://(?:www\\.)?facebook\\.com/(?:photos|questions)/.+$", - "^https://(?:www\\.)?facebook\\.com/permalink\\.php\\?story_fbid=.+$", - "^https://(?:www\\.)?facebook\\.com/media/set/?\\?set=.+$", - "^https://(?:www\\.)?facebook\\.com/notes/.+?/.+?/.+$", + r'^https://(?:www\.)?facebook\.com/.+?/(?:posts|activity)/.+$', + r'^https://(?:www\.)?facebook\.com/photo\.php\?fbid=.+$', + r'^https://(?:www\.)?facebook\.com/(?:photos|questions)/.+$', + r'^https://(?:www\.)?facebook\.com/permalink\.php\?story_fbid=.+$', + r'^https://(?:www\.)?facebook\.com/media/set/?\?set=.+$', + r'^https://(?:www\.)?facebook\.com/notes/.+?/.+?/.+$', # At the moment, not documented on https://developers.facebook.com/docs/plugins/oembed-endpoints # Works for posts with a single photo - "^https://(?:www\\.)?facebook\\.com/.+?/photos/.+$", + r'^https://(?:www\.)?facebook\.com/.+?/photos/.+$', ], } slideshare = { "endpoint": "https://www.slideshare.net/api/oembed/2", "urls": [ - "^http://www\\.slideshare\\.net/.+$" + r'^http://www\.slideshare\.net/.+$', ], } major_league_gaming = { "endpoint": "http://tv.majorleaguegaming.com/oembed", "urls": [ - "^http://mlg\\.tv/.+$", - "^http://tv\\.majorleaguegaming\\.com/.+$" + r'^http://mlg\.tv/.+$', + r'^http://tv\.majorleaguegaming\.com/.+$', ], } opera = { "endpoint": "http://my.opera.com/service/oembed", "urls": [ - "^http://my\\.opera\\.com/.+$" + r'^http://my\.opera\.com/.+$', ], } skitch = { "endpoint": "http://skitch.com/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?skitch\\.com/.+$", - "^http://skit\\.ch/.+$" + r'^http(?:s)?://(?:www\.)?skitch\.com/.+$', + r'^http://skit\.ch/.+$', ], } twitter = { "endpoint": "https://api.twitter.com/1/statuses/oembed.{format}", "urls": [ - "^http(?:s)?://twitter\\.com/(?:#!)?[^#?/]+/status/.+$" + r'^http(?:s)?://twitter\.com/(?:#!)?[^#?/]+/status/.+$', ], } soundcloud = { "endpoint": "https://soundcloud.com/oembed", "urls": [ - "^https://soundcloud\\.com/[^#?/]+/.+$" + r'^https://soundcloud\.com/[^#?/]+/.+$', ], } collegehumor = { "endpoint": "http://www.collegehumor.com/oembed.{format}", "urls": [ - "^http://(?:www\\.)?collegehumor\\.com/video/.+$", - "^http://(?:www\\.)?collegehumor\\.com/video:.+$" + r'^http://(?:www\.)?collegehumor\.com/video/.+$', + r'^http://(?:www\.)?collegehumor\.com/video:.+$', ], } polleverywhere = { "endpoint": "http://www.polleverywhere.com/services/oembed/", "urls": [ - "^http://www\\.polleverywhere\\.com/polls/.+$", - "^http://www\\.polleverywhere\\.com/multiple_choice_polls/.+$", - "^http://www\\.polleverywhere\\.com/free_text_polls/.+$" + r'^http://www\.polleverywhere\.com/polls/.+$', + r'^http://www\.polleverywhere\.com/multiple_choice_polls/.+$', + r'^http://www\.polleverywhere\.com/free_text_polls/.+$', ], } ifixit = { "endpoint": "http://www.ifixit.com/Embed", "urls": [ - "^http://www\\.ifixit\\.com/[^#?/]+/[^#?/]+/.+$" + r'^http://www\.ifixit\.com/[^#?/]+/[^#?/]+/.+$', ], } smugmug = { "endpoint": "http://api.smugmug.com/services/oembed/", "urls": [ - "^http(?:s)?://(?:www\\.)?smugmug\\.com/[^#?/]+/.+$" + r'^http(?:s)?://(?:www\.)?smugmug\.com/[^#?/]+/.+$', ], } github_gist = { "endpoint": "https://github.com/api/oembed", "urls": [ - "^http(?:s)?://gist\\.github\\.com/.+$" + r'^http(?:s)?://gist\.github\.com/.+$', ], } animoto = { "endpoint": "http://animoto.com/services/oembed", "urls": [ - "^http://animoto\\.com/play/.+$" + r'^http://animoto\.com/play/.+$', ], } rdio = { "endpoint": "http://www.rdio.com/api/oembed", "urls": [ - "^http://(?:wwww\\.)?rdio\\.com/people/[^#?/]+/playlists/.+$", - "^http://[-\\w]+\\.rdio\\.com/artist/[^#?/]+/album/.+$" + r'^http://(?:wwww\.)?rdio\.com/people/[^#?/]+/playlists/.+$', + r'^http://[-\w]+\.rdio\.com/artist/[^#?/]+/album/.+$', ], } five_min = { "endpoint": "http://api.5min.com/oembed.{format}", "urls": [ - "^http://www\\.5min\\.com/video/.+$" + r'^http://www\.5min\.com/video/.+$', ], } five_hundred_px = { "endpoint": "http://500px.com/photo/{1}/oembed.{format}", "urls": [ - "^http://500px\\.com/photo/([^#?/]+)(?:.+)?$" + r'^http://500px\.com/photo/([^#?/]+)(?:.+)?$', ], } dipdive = { "endpoint": "http://api.dipdive.com/oembed.{format}", "urls": [ - "^http://[-\\w]+\\.dipdive\\.com/media/.+$" + r'^http://[-\w]+\.dipdive\.com/media/.+$', ], } yandex = { "endpoint": "http://video.yandex.ru/oembed.{format}", "urls": [ - "^http://video\\.yandex\\.ru/users/[^#?/]+/view/.+$" + r'^http://video\.yandex\.ru/users/[^#?/]+/view/.+$', ], } mixcloud = { "endpoint": "https://www.mixcloud.com/oembed/", "urls": [ - "^https?://(?:www\\.)?mixcloud\\.com/.+$" + r'^https?://(?:www\.)?mixcloud\.com/.+$', ], } kickstarter = { "endpoint": "http://www.kickstarter.com/services/oembed", "urls": [ - "^http(?:s)://[-\\w]+\\.kickstarter\\.com/projects/.+$" + r'^http(?:s)://[-\w]+\.kickstarter\.com/projects/.+$', ], } coub = { "endpoint": "http://coub.com/api/oembed.{format}", "urls": [ - "^http(?:s)?://coub\\.com/view/.+$", - "^http(?:s)?://coub\\.com/embed/.+$" + r'^http(?:s)?://coub\.com/view/.+$', + r'^http(?:s)?://coub\.com/embed/.+$', ], } screenr = { "endpoint": "http://www.screenr.com/api/oembed.{format}", "urls": [ - "^http://www\\.screenr\\.com/.+$" + r'^http://www\.screenr\.com/.+$', ], } funny_or_die = { "endpoint": "http://www.funnyordie.com/oembed.{format}", "urls": [ - "^http://www\\.funnyordie\\.com/videos/.+$" + r'^http://www\.funnyordie\.com/videos/.+$', ], } wistia = { "endpoint": "http://fast.wistia.com/oembed.{format}", "urls": [ - "^https?://([^/]+\.)?(wistia.com|wi.st)/(medias|embed)/.+$" + r'^https?://([^/]+\.)?(wistia.com|wi.st)/(medias|embed)/.+$', ], } ustream = { "endpoint": "http://www.ustream.tv/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?ustream\\.tv/.+$", - "^http(?:s)?://(?:www\\.)?ustream\\.com/.+$", - "^http://ustre\\.am/.+$" + r'^http(?:s)?://(?:www\.)?ustream\.tv/.+$', + r'^http(?:s)?://(?:www\.)?ustream\.com/.+$', + r'^http://ustre\.am/.+$', ], } wordpress = { "endpoint": "http://wordpress.tv/oembed/", "urls": [ - "^http://wordpress\\.tv/.+$" + r'^http://wordpress\.tv/.+$', ], } polldaddy = { "endpoint": "http://polldaddy.com/oembed/", "urls": [ - "^http(?:s)?://(?:[-\\w]+\\.)?polldaddy\\.com/.+$" + r'^http(?:s)?://(?:[-\w]+\.)?polldaddy\.com/.+$', ], } bambuser = { "endpoint": "http://api.bambuser.com/oembed.{format}", "urls": [ - "^http://bambuser\\.com/channel/[^#?/]+/broadcast/.+$", - "^http://bambuser\\.com/channel/.+$", - "^http://bambuser\\.com/v/.+$" + r'^http://bambuser\.com/channel/[^#?/]+/broadcast/.+$', + r'^http://bambuser\.com/channel/.+$', + r'^http://bambuser\.com/v/.+$', ], } ted = { "endpoint": "http://www.ted.com/talks/oembed.{format}", "urls": [ - "^http(?:s)?://(?:www\\.)?ted\\.com/talks/.+$", - "^http(?:s)?://(?:www\\.)?ted\\.com/talks/lang/[^#?/]+/.+$", - "^http(?:s)?://(?:www\\.)?ted\\.com/index\\.php/talks/.+$", - "^http(?:s)?://(?:www\\.)?ted\\.com/index\\.php/talks/lang/[^#?/]+/.+$" + r'^http(?:s)?://(?:www\.)?ted\.com/talks/.+$', + r'^http(?:s)?://(?:www\.)?ted\.com/talks/lang/[^#?/]+/.+$', + r'^http(?:s)?://(?:www\.)?ted\.com/index\.php/talks/.+$', + r'^http(?:s)?://(?:www\.)?ted\.com/index\.php/talks/lang/[^#?/]+/.+$', ], } chirb = { "endpoint": "http://chirb.it/oembed.{format}", "urls": [ - "^http://chirb\\.it/.+$" + r'^http://chirb\.it/.+$', ], } circuitlab = { "endpoint": "https://www.circuitlab.com/circuit/oembed/", "urls": [ - "^http(?:s)?://(?:www\\.)?circuitlab\\.com/circuit/.+$" + r'^http(?:s)?://(?:www\.)?circuitlab\.com/circuit/.+$', ], } geograph_uk = { "endpoint": "http://api.geograph.org.uk/api/oembed", "urls": [ - "^http://(?:[-\\w]+\\.)?geograph\\.org\\.uk/.+$", - "^http://(?:[-\\w]+\\.)?geograph\\.co\\.uk/.+$", - "^http://(?:[-\\w]+\\.)?geograph\\.ie/.+$" + r'^http://(?:[-\w]+\.)?geograph\.org\.uk/.+$', + r'^http://(?:[-\w]+\.)?geograph\.co\.uk/.+$', + r'^http://(?:[-\w]+\.)?geograph\.ie/.+$', ], } hlipp = { "endpoint": "http://geo.hlipp.de/restapi.php/api/oembed", "urls": [ - "^http://geo-en\\.hlipp\\.de/.+$", - "^http://geo\\.hlipp\\.de/.+$", - "^http://germany\\.geograph\\.org/.+$" + r'^http://geo-en\.hlipp\.de/.+$', + r'^http://geo\.hlipp\.de/.+$', + r'^http://germany\.geograph\.org/.+$', ], } geograph_gg = { "endpoint": "http://www.geograph.org.gg/api/oembed", "urls": [ - "^http://(?:[-\\w]+\\.)?geograph\\.org\\.gg/.+$", - "^http://(?:[-\\w]+\\.)?geograph\\.org\\.je/.+$", - "^http://channel-islands\\.geograph\\.org/.+$", - "^http://channel-islands\\.geographs\\.org/.+$", - "^http://(?:[-\\w]+\\.)?channel\\.geographs\\.org/.+$" + r'^http://(?:[-\w]+\.)?geograph\.org\.gg/.+$', + r'^http://(?:[-\w]+\.)?geograph\.org\.je/.+$', + r'^http://channel-islands\.geograph\.org/.+$', + r'^http://channel-islands\.geographs\.org/.+$', + r'^http://(?:[-\w]+\.)?channel\.geographs\.org/.+$', ], } vzaar = { "endpoint": "http://vzaar.com/api/videos/{1}.{format}", "urls": [ - "^http://(?:www\\.)?vzaar\\.com/videos/([^#?/]+)(?:.+)?$", - "^http://www\\.vzaar\\.tv/([^#?/]+)(?:.+)?$", - "^http://vzaar\\.tv/([^#?/]+)(?:.+)?$", - "^http://vzaar\\.me/([^#?/]+)(?:.+)?$", - "^http://[-\\w]+\\.vzaar\\.me/([^#?/]+)(?:.+)?$" + r'^http://(?:www\.)?vzaar\.com/videos/([^#?/]+)(?:.+)?$', + r'^http://www\.vzaar\.tv/([^#?/]+)(?:.+)?$', + r'^http://vzaar\.tv/([^#?/]+)(?:.+)?$', + r'^http://vzaar\.me/([^#?/]+)(?:.+)?$', + r'^http://[-\w]+\.vzaar\.me/([^#?/]+)(?:.+)?$', ], } minoto = { "endpoint": "http://api.minoto-video.com/services/oembed.{format}", "urls": [ - "^http://api\\.minoto-video\\.com/publishers/[^#?/]+/videos/.+$", - "^http://dashboard\\.minoto-video\\.com/main/video/details/.+$", - "^http://embed\\.minoto-video\\.com/.+$" + r'^http://api\.minoto-video\.com/publishers/[^#?/]+/videos/.+$', + r'^http://dashboard\.minoto-video\.com/main/video/details/.+$', + r'^http://embed\.minoto-video\.com/.+$', ], } videojug = { "endpoint": "http://www.videojug.com/oembed.{format}", "urls": [ - "^http(?:s)?://(?:[-\\w]+\\.)?videojug\\.com/film/.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?videojug\\.com/payer/.+$", - "^http(?:s)?://(?:[-\\w]+\\.)?videojug\\.com/interview/.+$" + r'^http(?:s)?://(?:[-\w]+\.)?videojug\.com/film/.+$', + r'^http(?:s)?://(?:[-\w]+\.)?videojug\.com/payer/.+$', + r'^http(?:s)?://(?:[-\w]+\.)?videojug\.com/interview/.+$', ], } sapo = { "endpoint": "http://videos.sapo.pt/oembed", "urls": [ - "^http(?:s)?://videos\\.sapo\\.pt/.+$" + r'^http(?:s)?://videos\.sapo\.pt/.+$', ], } vhx_tv = { "endpoint": "http://vhx.tv/services/oembed.{format}", "urls": [ - "^http(?:s)?://(?:www\\.)?vhx\\.tv/.+$" + r'^http(?:s)?://(?:www\.)?vhx\.tv/.+$', ], } justin_tv = { "endpoint": "http://api.justin.tv/api/embed/from_url.{format}", "urls": [ - "^http(?:s)?://(?:www\\.)?justin\\.tv/.+$" + r'^http(?:s)?://(?:www\.)?justin\.tv/.+$', ], } official_fm = { "endpoint": "http://official.fm/services/oembed.{format}", "urls": [ - "^http(?:s)?://official\\.fm/.+$" + r'^http(?:s)?://official\.fm/.+$', ], } huffduffer = { "endpoint": "http://huffduffer.com/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?huffduffer\\.com/[^#?/]+/.+$" + r'^http(?:s)?://(?:www\.)?huffduffer\.com/[^#?/]+/.+$', ], } spotify = { "endpoint": "https://embed.spotify.com/oembed/", "urls": [ - "^http(?:s)?://open\\.spotify\\.com/.+$", - "^http(?:s)?://spoti\\.fi/.+$" + r'^http(?:s)?://open\.spotify\.com/.+$', + r'^http(?:s)?://spoti\.fi/.+$', ], } shoudio = { "endpoint": "http://shoudio.com/api/oembed", "urls": [ - "^http://shoudio\\.com/.+$", - "^http://shoud\\.io/.+$" + r'^http://shoudio\.com/.+$', + r'^http://shoud\.io/.+$', ], } mobypicture = { "endpoint": "http://api.mobypicture.com/oEmbed", "urls": [ - "^http(?:s)?://(?:www\\.)?mobypicture\\.com/user/[^#?/]+/view/.+$", - "^http(?:s)?://(?:www\\.)?moby\\.to/.+$" + r'^http(?:s)?://(?:www\.)?mobypicture\.com/user/[^#?/]+/view/.+$', + r'^http(?:s)?://(?:www\.)?moby\.to/.+$', ], } twenty_three_hq = { "endpoint": "http://www.23hq.com/23/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?23hq\\.com/[^#?/]+/photo/.+$" + r'^http(?:s)?://(?:www\.)?23hq\.com/[^#?/]+/photo/.+$', ], } gmep = { "endpoint": "http://gmep.org/oembed.{format}", "urls": [ - "^http(?:s)?://(?:www\\.)?gmep\\.org/.+$", - "^http(?:s)?://gmep\\.imeducate\\.com/.+$" + r'^http(?:s)?://(?:www\.)?gmep\.org/.+$', + r'^http(?:s)?://gmep\.imeducate\.com/.+$', ], } urtak = { "endpoint": "http://oembed.urtak.com/1/oembed", "urls": [ - "^http(?:s)?://(?:[-\\w]+\\.)?urtak\\.com/.+$" + r'^http(?:s)?://(?:[-\w]+\.)?urtak\.com/.+$', ], } cacoo = { "endpoint": "http://cacoo.com/oembed.{format}", "urls": [ - "^http(?:s)?://cacoo\\.com/.+$" + r'^http(?:s)?://cacoo\.com/.+$', ], } dailymile = { "endpoint": "http://api.dailymile.com/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?dailymile\\.com/people/[^#?/]+/entries/.+$" + r'^http(?:s)?://(?:www\.)?dailymile\.com/people/[^#?/]+/entries/.+$', ], } dipity = { "endpoint": "http://www.dipity.com/oembed/timeline/", "urls": [ - "^http(?:s)?://(?:www\\.)?dipity\\.com/timeline/.+$", - "^http(?:s)?://(?:www\\.)?dipity\\.com/voaweb/.+$" + r'^http(?:s)?://(?:www\.)?dipity\.com/timeline/.+$', + r'^http(?:s)?://(?:www\.)?dipity\.com/voaweb/.+$', ], } sketchfab = { "endpoint": "https://sketchfab.com/oembed", "urls": [ - "^http(?:s)?://sketchfab\\.com/show/.+$" + r'^http(?:s)?://sketchfab\.com/show/.+$', ], } meetup = { "endpoint": "https://api.meetup.com/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?meetup\\.com/.+$", - "^http(?:s)?://(?:www\\.)?meetup\\.ps/.+$" + r'^http(?:s)?://(?:www\.)?meetup\.com/.+$', + r'^http(?:s)?://(?:www\.)?meetup\.ps/.+$', ], } roomshare = { "endpoint": "https://roomshare.jp/oembed.{format}", "urls": [ - "^http(?:s)?://(?:www\\.)?roomshare\\.jp/(?:en/)?post/.+$" + r'^http(?:s)?://(?:www\.)?roomshare\.jp/(?:en/)?post/.+$', ], } crowd_ranking = { "endpoint": "http://crowdranking.com/api/oembed.{format}", "urls": [ - "^http(?:s)?://crowdranking\\.com/crowdrankings/.+$", - "^http(?:s)?://crowdranking\\.com/rankings/.+$", - "^http(?:s)?://crowdranking\\.com/topics/.+$", - "^http(?:s)?://crowdranking\\.com/widgets/.+$", - "^http(?:s)?://crowdranking\\.com/r/.+$" + r'^http(?:s)?://crowdranking\.com/crowdrankings/.+$', + r'^http(?:s)?://crowdranking\.com/rankings/.+$', + r'^http(?:s)?://crowdranking\.com/topics/.+$', + r'^http(?:s)?://crowdranking\.com/widgets/.+$', + r'^http(?:s)?://crowdranking\.com/r/.+$', ], } etsy = { "endpoint": "http://openapi.etsy.com/svc/oembed/", "urls": [ - "^http(?:s)?://(?:www\\.)?etsy\\.com/listing/.+$" + r'^http(?:s)?://(?:www\.)?etsy\.com/listing/.+$', ], } audioboom = { "endpoint": "https://audioboom.com/publishing/oembed.{format}", "urls": [ - "^http(?:s)?://audioboom\\.com/boos/.+$", + r'^http(?:s)?://audioboom\.com/boos/.+$', r'^https?://audioboom\.com/posts/.+$', ], } @@ -617,28 +617,28 @@ audioboom = { clikthrough = { "endpoint": "http://demo.clikthrough.com/services/oembed/", "urls": [ - "^http(?:s)?://demo\\.clikthrough\\.com/theater/video/.+$" + r'^http(?:s)?://demo\.clikthrough\.com/theater/video/.+$', ], } ifttt = { "endpoint": "http://www.ifttt.com/oembed/", "urls": [ - "^http(?:s)?://ifttt\\.com/recipes/.+$" + r'^http(?:s)?://ifttt\.com/recipes/.+$', ], } issuu = { "endpoint": "http://issuu.com/oembed", "urls": [ - "^http(?:s)?://(?:www\\.)?issuu\\.com/[^#?/]+/docs/.+$" + r'^http(?:s)?://(?:www\.)?issuu\.com/[^#?/]+/docs/.+$', ], } tumblr = { "endpoint": "https://www.tumblr.com/oembed/1.0", "urls": [ - "^http(?:s)?://.+?\\.tumblr\\.com/post/.+$", + r'^http(?:s)?://.+?\.tumblr\.com/post/.+$', ] }