Speed up Userscript by not using BeautifulSoup. fix #796

This commit is contained in:
Ruud committed 2012-09-04 23:10:34 +02:00
1 parent 012ae9769a
commit b62afc63f1
2 files changed
+40 -13

No files matched your search

@@ -1,5 +1,9 @@
from bs4 import BeautifulSoup from couchpotato.core.logger import CPLog
from couchpotato.core.providers.userscript.base import UserscriptBase from couchpotato.core.providers.userscript.base import UserscriptBase
import traceback
log = CPLog(__name__)
class AlloCine(UserscriptBase): class AlloCine(UserscriptBase):
@@ -15,11 +19,17 @@ class AlloCine(UserscriptBase):
except: except:
return return
html = BeautifulSoup(data) name = None
title = html.find('title').contents[0].strip() year = None
split = title.split(') - ')
name = split[0][:-5].strip() try:
year = split[0][-4:] start = data.find('<title>')
end = data.find('</title>', start)
page_title = data[start + len('<title>'):end].strip().split('-')
name = page_title[0].strip()
year = page_title[1].strip()[-4:]
return self.search(name, year)
except:
log.error('Failed parsing page for title and year: %s', traceback.format_exc())
return self.search(name, year)
@@ -1,6 +1,10 @@
from bs4 import BeautifulSoup from couchpotato.core.logger import CPLog
from couchpotato.core.event import fireEvent
from couchpotato.core.providers.userscript.base import UserscriptBase from couchpotato.core.providers.userscript.base import UserscriptBase
import re
import traceback
log = CPLog(__name__)
class RottenTomatoes(UserscriptBase): class RottenTomatoes(UserscriptBase):
@@ -16,7 +20,20 @@ class RottenTomatoes(UserscriptBase):
except: except:
return return
html = BeautifulSoup(data) try:
title = html.find('span', {'itemprop':'name'}).text name = None
info = fireEvent('scanner.name_year', title, single = True) year = None
return self.search(info['name'], info['year']) metas = re.findall("property=\"(video:release_date|og:title)\" content=\"([^\"]*)\"", data)
for meta in metas:
mname, mvalue = meta
if mname == 'og:title':
name = mvalue.decode('unicode_escape')
elif mname == 'video:release_date':
year = mvalue[:4]
if name and year:
return self.search(name, year)
except:
log.error('Failed parsing page for title and year: %s', traceback.format_exc())