From e632e8fa293f4410ab10496c9eb2d8c8142d0495 Mon Sep 17 00:00:00 2001 From: Chris Dary Date: Wed, 15 Jun 2011 09:38:44 -0400 Subject: [PATCH 1/2] Added a service matcher to the python client - allows you to determine if a URL is serviced by embed.ly or not --- embedly/client.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/embedly/client.py b/embedly/client.py index 20052f9..4604255 100644 --- a/embedly/client.py +++ b/embedly/client.py @@ -8,6 +8,7 @@ import urllib import httplib2 import json +import itertools from models import Url @@ -71,6 +72,26 @@ def get_services(self): return self.services + def service_matcher(self): + """ + Generate a really big regular expression that we can use to determine if a URL is serviced by embedly or not. + Returns a compiled regular expression. + """ + if self.service_re is not None: + return self.service_re + + services = self.get_services() + service_expressions = list(itertools.chain.from_iterable([service['regex'] for service in services])) + self.service_re = re.compile('|'.join(service_expressions), re.I) + + return self.service_re + + def url_is_serviced(self, url): + """ + If a URL is serviced by Embed.ly, return True. Otherwise return False. + """ + return self.service_matcher().match(url) is not None + def _get(self, version, method, url_or_urls, **kwargs): """ _get makes the actual call to pro.embed.ly/api.embed.ly From 8d93b5b7fc73db5b6931d6abf3c8fd19c53962f3 Mon Sep 17 00:00:00 2001 From: Chris Dary Date: Mon, 21 Nov 2011 21:25:43 -0500 Subject: [PATCH 2/2] Updated to match new version of the library. --- embedly/client.py | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/embedly/client.py b/embedly/client.py index 77a3b08..4e8ed1a 100644 --- a/embedly/client.py +++ b/embedly/client.py @@ -63,25 +63,12 @@ def get_services(self): return self.services - def service_matcher(self): - """ - Generate a really big regular expression that we can use to determine if a URL is serviced by embedly or not. - Returns a compiled regular expression. - """ - if self.service_re is not None: - return self.service_re - - services = self.get_services() - service_expressions = list(itertools.chain.from_iterable([service['regex'] for service in services])) - self.service_re = re.compile('|'.join(service_expressions), re.I) - - return self.service_re - def url_is_serviced(self, url): """ If a URL is serviced by Embed.ly, return True. Otherwise return False. """ - return self.service_matcher().match(url) is not None + services = self.get_services() + return self._regex.match(url) is not None @property def regex(self):