本文整理汇总了Python中util.substr函数的典型用法代码示例。如果您正苦于以下问题:Python substr函数的具体用法?Python substr怎么用?Python substr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了substr函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: film
def film(self,page):
result=[]
data = util.substr(page,self.od,self.do)
pattern='background: url\((?P<img>.+?)\)[\s|\S]*?<h2><a href=\"(?P<url>.+?)\".[^>]+>(?P<name>.+?)</a></h2>'
for m in re.finditer(pattern,data,re.IGNORECASE | re.DOTALL ):
item = self.video_item()
item['url'] = m.group('url')
item['title'] = m.group('name')
item['img'] = m.group('img')
result.append(item)
data = util.substr(page,'<div class=\'wp-pagenavi\'>','<div id=\"sidebar\">')
pattern='<span class=\'pages\'>(?P<pg>.+?)</span>'
m = re.search(pattern, data, re.IGNORECASE | re.DOTALL)
last_page=''
if not m == None:
last_page=m.group('pg').split(' ')
next_page=int(last_page[1])+1
last_page=last_page[-1]
pattern = 'href=\"(?P<url>.+?)\".?><div class=\"next"></div>'
m = re.search(pattern, data, re.IGNORECASE | re.DOTALL)
next_url=''
if not m == None:
next_url=m.group('url')
try:
item = self.dir_item()
item['title'] = 'Přejít na stranu '+ str(next_page)+' z '+ str(last_page)
item['url'] = '#film#'+next_url
result.append(item)
except:
pass
return result
开发者ID:cplaiasu,项目名称:xbmc-doplnky,代码行数:34,代码来源:najfilmy.py
示例2: _search_person_cb
def _search_person_cb(what):
print "searching for " + what
page = util.request(BASE_URL + "hledat/complete-films/?q=" + urllib.quote(what))
results = []
data = util.substr(page, '<div id="search-creators', '<div class="footer')
for m in re.finditer(
'<h3 class="subject"[^<]+<a href="(?P<url>[^"]+)[^>]+>(?P<name>[^<]+).+?<p>(?P<info>[^<]+)',
data,
re.DOTALL | re.IGNORECASE,
):
results.append((m.group("url"), m.group("name") + " (" + m.group("info") + ")"))
for m in re.finditer(
"<li(?P<item>.+?)</li>", util.substr(data, '<ul class="creators others', "</div"), re.DOTALL | re.IGNORECASE
):
base = re.search('<a href="(?P<url>[^"]+)[^>]+>(?P<name>[^<]+)', m.group("item"))
if base:
name = base.group("name")
for n in re.finditer("<span[^>]*>(?P<data>[^<]+)", m.group("item")):
name = "%s %s" % (name, n.group("data"))
results.append((base.group("url"), name))
for url, name in results:
info = scrapper._empty_info()
info["url"] = url
add_person(name, info)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
开发者ID:lzoubek,项目名称:xbmc-doplnky-old,代码行数:27,代码来源:default.py
示例3: list_show_page
def list_show_page(self, url, page, seasons=False, episodes=False):
result = []
if "/p/epizody" in url or "/p/epiz%C3%B3dy" in url or "p/archiv" in url:
if seasons:
season_data = util.substr(page, SERIES_START2, SERIES_END2)
for m in re.finditer(SERIES_ITER_RE2, season_data, re.DOTALL | re.IGNORECASE):
item = self.dir_item()
item['title'] = m.group('title')
item['url'] = url + '#post=%s' % (m.group('id'))
self._filter(result, item)
if episodes:
for m in re.finditer(EPISODE_ITER_RE2, page, re.DOTALL | re.IGNORECASE):
item = self.video_item()
item['title'] = "%s (%s)" % (m.group('title'), m.group('date'))
item['url'] = m.group('url')
self._filter(result, item)
else:
if seasons:
season_data = util.substr(page, SERIES_START, SERIES_END)
for m in re.finditer(SERIES_ITER_RE, season_data, re.DOTALL | re.IGNORECASE):
item = self.dir_item()
item['title'] = m.group('title')
item['url'] = 'http://' + urlparse.urlparse(url).netloc + '/ajax.json?' + m.group('url')
self._filter(result, item)
if episodes:
episodes_data = util.substr(page, EPISODE_START, EPISODE_END)
for m in re.finditer(EPISODE_ITER_RE, page, re.DOTALL | re.IGNORECASE):
item = self.video_item()
item['title'] = "%s. %s (%s)" % (m.group('episode'), m.group('title'), m.group('date'))
item['url'] = m.group('url')
self._filter(result, item)
return result
开发者ID:Jakub2013,项目名称:plugin.video.joj.sk,代码行数:32,代码来源:joj.py
示例4: _search_movie_cb
def _search_movie_cb(what):
print "searching for movie " + what
url = BASE_URL + "hledat/complete-films/?q=" + urllib.quote(what)
page = util.request(url)
results = []
data = util.substr(page, '<div id="search-films', '<div class="footer')
for m in re.finditer(
'<h3 class="subject"[^<]+<a href="(?P<url>[^"]+)[^>]+>(?P<name>[^<]+).+?<p>(?P<info>[^<]+)',
data,
re.DOTALL | re.IGNORECASE,
):
results.append((m.group("url"), "%s (%s)" % (m.group("name"), m.group("info"))))
for m in re.finditer(
"<li(?P<item>.+?)</li>", util.substr(data, '<ul class="films others', "</div"), re.DOTALL | re.IGNORECASE
):
base = re.search('<a href="(?P<url>[^"]+)[^>]+>(?P<name>[^<]+)', m.group("item"))
if base:
name = base.group("name")
for n in re.finditer("<span[^>]*>(?P<data>[^<]+)", m.group("item")):
name = "%s %s" % (name, n.group("data"))
results.append((base.group("url"), name))
if preload():
return preload_items(results)
add_items(results)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
开发者ID:lzoubek,项目名称:xbmc-doplnky-old,代码行数:27,代码来源:default.py
示例5: list
def list(self, url):
if url.find("#fm#") == 0:
return self.list_folder(url[5:])
url = self._url(url)
page = util.request(
url, headers={"X-Requested-With": "XMLHttpRequest", "Referer": url, "Cookie": "uloz-to-id=1561277170;"}
)
script = util.substr(page, "var kn", "</script>")
keymap = None
key = None
k = re.search('{([^\;]+)"', script, re.IGNORECASE | re.DOTALL)
if k:
keymap = json.loads("{" + k.group(1) + '"}')
j = re.search('kapp\(kn\["([^"]+)"', script, re.IGNORECASE | re.DOTALL)
if j:
key = j.group(1)
if not (j and k):
self.error("error parsing page - unable to locate keys")
return []
burl = b64decode("I2h0dHA6Ly9kZWNyLWNlY2gucmhjbG91ZC5jb20vZGVjcnlwdC8/a2V5PSVzJnZhbHVlPSVz")
murl = b64decode("aHR0cDovL2RlY3ItY2VjaC5yaGNsb3VkLmNvbS9kZWNyeXB0Lw==")
data = util.substr(page, '<ul class="chessFiles', "</ul>")
result = []
req = {"seed": keymap[key], "values": keymap}
decr = json.loads(util.post_json(murl, req))
for li in re.finditer('<li data-icon="(?P<key>[^"]+)', data, re.IGNORECASE | re.DOTALL):
body = urllib.unquote(b64decode(decr[li.group("key")]))
m = re.search(
'<li>.+?<div data-icon="(?P<key>[^"]+)[^<]+<img(.+?)src="(?P<logo>[^"]+)(.+?)<div class="fileInfo(?P<info>.+?)</h4>',
body,
re.IGNORECASE | re.DOTALL,
)
if not m:
continue
value = keymap[m.group("key")]
info = m.group("info")
iurl = burl % (keymap[key], value)
item = self.video_item()
item["title"] = ".. title not found.."
title = re.search('<div class="fileName.+?<a[^>]+>(?P<title>[^<]+)', info, re.IGNORECASE | re.DOTALL)
if title:
item["title"] = title.group("title")
size = re.search('<span class="fileSize[^>]+>(?P<size>[^<]+)', info, re.IGNORECASE | re.DOTALL)
if size:
item["size"] = size.group("size").strip()
time = re.search('<span class="fileTime[^>]+>(?P<time>[^<]+)', info, re.IGNORECASE | re.DOTALL)
if time:
item["length"] = time.group("time")
item["url"] = iurl
item["img"] = m.group("logo")
self._filter(result, item)
# page navigation
data = util.substr(page, '<div class="paginator', "</div")
mnext = re.search('<a href="(?P<url>[^"]+)" class="next', data)
if mnext:
item = self.dir_item()
item["type"] = "next"
item["url"] = mnext.group("url")
result.append(item)
return result
开发者ID:lzoubek,项目名称:xbmc-doplnky-old,代码行数:60,代码来源:ulozto.py
示例6: show
def show(self, page):
result = []
data = util.substr(page, '<div id="search', "<hr>")
for m in re.finditer(
'<div.+?class="scene[^>]*>.+?<img src="(?P<img>[^"]+)" alt="(?P<name>[^"]+).+?<div class="sc-name">(?P<author>[^<]+).+?<a href="(?P<url>[^"]+)',
data,
re.IGNORECASE | re.DOTALL,
):
name = "%s (%s)" % (m.group("name"), m.group("author"))
item = self.video_item()
item["title"] = name
item["url"] = m.group("url")
item["img"] = m.group("img")
self._filter(result, item)
data = util.substr(page, 'class="pages">', "</div>")
next = re.search('<a href="(?P<url>[^"]+)"[^<]+<img src="/images/page-right.gif', data)
prev = re.search('<a href="(?P<url>[^"]+)"[^<]+<img src="/images/page-left.gif', data)
if prev:
item = self.dir_item()
item["type"] = "prev"
item["url"] = prev.group("url")
result.append(item)
if next:
item = self.dir_item()
item["type"] = "next"
item["url"] = next.group("url")
result.append(item)
return result
开发者ID:lzoubek,项目名称:xbmc-doplnky-old,代码行数:29,代码来源:nastojaka.py
示例7: list
def list(self,url):
result = []
url = self._url(url)
page = util.request(url)
q = url.find('?')
if q > 0:
url = url[:q]
data = util.substr(page,'<div id=\"videolist','<div class=\"paging-adfox\">')
pattern='<div class=\"img-wrapper\"><a href=\"(?P<url>[^\"]+)\" title=\"(?P<name>[^\"]+)(.+?)<img(.+?)src=\"(?P<img>[^\"]+)(.+?)<p class=\"dsc\">(?P<plot>[^<]+)'
for m in re.finditer(pattern, data, re.IGNORECASE | re.DOTALL):
item = self.video_item()
item['title'] = m.group('name')
item['url'] = m.group('url')
item['img'] = m.group('img')
item['plot'] = m.group('plot')
self._filter(result,item)
data = util.substr(page,'<div class=\"jumpto\"','</div>')
data = util.substr(page,'<p class=\"paging','</p>')
next = re.search('<a href=\"(?P<url>[^\"]+)\"><img(.+?)next\.png',data,re.IGNORECASE | re.DOTALL)
if next:
item = self.dir_item()
item['type'] = 'next'
item['url'] = url+next.group('url')
result.append(item)
return result
开发者ID:skata890,项目名称:xbmc-doplnky,代码行数:27,代码来源:zkouknito.py
示例8: list_by_letter
def list_by_letter(self, url):
result = []
page = self.get_data_cached(url)
data = util.substr(page, '<ul class=\"content', '</ul>')
subs = self.get_subs()
for m in re.finditer('<a class=\"title\" href=\"(?P<url>[^\"]+)[^>]+>(?P<name>[^<]+)', data,
re.IGNORECASE | re.DOTALL):
item = {'url': m.group('url'), 'title': m.group('name')}
if item['url'] in subs:
item['menu'] = {"[B][COLOR red]Remove from subscription[/COLOR][/B]": {
'url': m.group('url'), 'action': 'remove-subscription', 'name': m.group('name')}
}
else:
item['menu'] = {"[B][COLOR red]Add to library[/COLOR][/B]": {
'url': m.group('url'), 'action': 'add-to-library', 'name': m.group('name')}}
self._filter(result, item)
paging = util.substr(page, '<div class=\"pagination\"', '</div')
next = re.search('<li class=\"next[^<]+<a href=\"\?page=(?P<page>\d+)', paging,
re.IGNORECASE | re.DOTALL)
if next:
next_page = int(next.group('page'))
current = re.search('\?page=(?P<page>\d)', url)
current_page = 0
if self.is_most_popular(url) and next_page > 10:
return result
if current:
current_page = int(current.group('page'))
if current_page < next_page:
url = re.sub('\?.+?$', '', url) + '?page=' + str(next_page)
result += self.list_by_letter(url)
return result
开发者ID:CZ-2W,项目名称:plugin.video.prehraj.me,代码行数:31,代码来源:prehrajme.py
示例9: filmoteka
def filmoteka(p):
if p["filmoteka"] == "":
data = login()
if data:
userid = get_userid(data)
if userid:
page = util.request(furl(userid + "filmoteka"))
data = util.substr(page, '<select name="filter', "</select>")
for m in re.finditer(
'<option value="(?P<value>[^"]+)[^>]+>(?P<name>[^<]+)', data, re.DOTALL | re.IGNORECASE
):
p["filmoteka"] = userid + "filmoteka/filtr-" + m.group("value")
xbmcutil.add_dir(m.group("name"), p)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
else:
page = login(p["filmoteka"])
data = util.substr(page, '<table class="ui-table-list', "</table")
results = []
for m in re.finditer(
'<tr[^<]+<td>(?P<added>[^<]+)</td[^<]+<td[^<]+<a href="(?P<url>[^"]+)[^>]+>(?P<name>[^<]+)',
data,
re.DOTALL | re.IGNORECASE,
):
results.append((m.group("url"), m.group("name")))
if preload():
return preload_items(results)
add_items(results)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
开发者ID:lzoubek,项目名称:xbmc-doplnky-old,代码行数:28,代码来源:default.py
示例10: list_archive_page
def list_archive_page(self, show_page, showon=False, showoff=False):
showonlist = []
if showon:
page = util.substr(show_page, VYSIELANE_START, NEVYSIELANE_START)
for m in re.finditer(VYSIELANE_ITER_RE, page, re.DOTALL | re.IGNORECASE):
item = self.dir_item()
item['title'] = m.group('title')
item['plot'] = m.group('desc')
item['url'] = m.group('url') + "#season_episode"
if m.group('itime') is not None:
item['type'] = "showon7d"
else:
item['type'] = "showon"
showonlist.append(item)
showonlist.sort(key=lambda x: x['title'].lower())
showofflist = []
if showoff:
page = util.substr(show_page, NEVYSIELANE_START, NEVYSIELANE_END)
for m in re.finditer(NEVYSIELANE_ITER_RE, page, re.DOTALL | re.IGNORECASE):
item = self.dir_item()
item['title'] = m.group('title')
item['url'] = m.group('url') + "#season_episode"
item['type'] = "showoff"
showofflist.append(item)
showofflist.sort(key=lambda x: x['title'].lower())
result = showonlist + showofflist
return result
开发者ID:Jakub2013,项目名称:plugin.video.joj.sk,代码行数:27,代码来源:joj.py
示例11: list_content
def list_content(self, page, url=None):
result = []
if not url: url = self.base_url
data = util.substr(page, '<div class=\"items no-wrapper no-padder', '<div class=\"my-pagination>')
pattern = '<article class=\"video\".+?<a href=\"(?P<url>[^\"]+)\" *title=\"(?P<title>[^\"]+)\"(.+?)<img src=\"(?P<img>[^\"]+)\".+?<p>(?P<plot>[^<]+?)<\/p>.+?<li class=\"i-published\".+?title=\"(?P<date>[^\"]+)\"'
for m in re.finditer(pattern, data, re.IGNORECASE | re.DOTALL):
item = self.video_item()
item['title'] = m.group('title')
item['img'] = m.group('img').strip()
item['plot'] = self.decode_plot(m.group('plot'))
item['url'] = self.base_url[:-1] + m.group('url')
item['menu'] = {'$30060':{'list':'#related#' + item['url'], 'action-type':'list'}}
print item
self._filter(result, item)
data = util.substr(page, '<ul class=\"my-pagination', '</div>')
n = re.search('<li class=\"paginate_button previous *\"[^<]+<a href=\"(?P<url>[^\"]+)\">(?P<name>[^<]+)<', data)
k = re.search('<li class=\"paginate_button next *\"[^<]+<a href=\"(?P<url>[^\"]+)\">(?P<name>[^<]+)<', data)
if not n == None:
item = self.dir_item()
item['type'] = 'prev'
# item['title'] = '%s - %s' % (m.group(1), n.group('name'))
item['url'] = n.group('url')
result.append(item)
if not k == None:
item = self.dir_item()
item['type'] = 'next'
# item['title'] = '%s - %s' % (m.group(1), k.group('name'))
item['url'] = k.group('url')
result.append(item)
return result
开发者ID:mx3L,项目名称:archivczsk-doplnky,代码行数:30,代码来源:videacesky.py
示例12: list_episodes
def list_episodes(self, url, page=0):
result = []
if url.find('ajax.json') != -1:
headers = {'X-Requested-With':'XMLHttpRequest',
'Referer':util.substr(url, url, url.split('/')[-1])
}
httpdata = util.request(url, headers)
httpdata = util.json.loads(httpdata)['content']
else:
httpdata = util.request(url)
httpdata = util.substr(httpdata, EPISODE_START, EPISODE_END)
entries = 0
skip_entries = MAX_PAGE_ENTRIES * page
for m in re.finditer(EPISODE_ITER_RE, httpdata, re.DOTALL | re.IGNORECASE):
entries += 1
if entries < skip_entries:
continue
item = self.video_item()
item['title'] = "%s. %s (%s)" % (m.group('episode'), m.group('title'), m.group('date'))
item['url'] = m.group('url')
self._filter(result, item)
if entries >= (skip_entries + MAX_PAGE_ENTRIES):
page += 1
item = self.dir_item()
item['type'] = 'next'
item['url'] = "#episodes##%d#" % (page) + url
result.append(item)
break
return result
开发者ID:mx3L,项目名称:xbmc-doplnky,代码行数:31,代码来源:joj.py
示例13: list_content
def list_content(self, page):
result = []
data = util.substr(page, LISTING_START, LISTING_END)
for m in re.finditer(LISTING_ITER_RE, data, re.DOTALL | re.VERBOSE):
item = self.video_item()
item['title'] = "%s - (%s)" % (m.group('title').strip(), m.group('date').strip())
item['img'] = m.group('img')
item['url'] = m.group('url')
if 'section_title' in m.groupdict() and 'section_url' in m.groupdict():
item['menu'] = {"Sekcia - "+m.group('section_title'):{'list':m.group('section_url'), 'action-type':'list'}}
self._filter(result, item)
pager_data = util.substr(page, PAGER_START, PAGER_END)
for m in re.finditer("<a.+?</a>", pager_data, re.DOTALL):
p = re.search(PAGE_PREV_RE, m.group(), re.DOTALL)
n = re.search(PAGE_NEXT_RE, m.group(), re.DOTALL)
if p:
item = self.dir_item()
item['type'] = 'prev'
item['url'] = p.group('url')
result.append(item)
if n:
item = self.dir_item()
item['type'] = 'next'
item['url'] = n.group('url')
result.append(item)
return result
开发者ID:Pepo48,项目名称:plugin.video.markiza.sk,代码行数:26,代码来源:markiza.py
示例14: list
def list(self,url):
result = []
url = self._url(url)
print url
page = util.request(url)
data = util.substr(page,'<div id=\"archive','end #archive')
pattern = '<div class=\"cover\"><a href=\"(?P<url>[^\"]+)(.+?)title=\"(?P<name>[^\"]+)(.+?)<img src=\"(?P<logo>[^\"]+)(.+?)<p class=\"postmetadata\">(?P<fired>[^<]+)(.+?)<p>(?P<plot>[^<]+)'
for m in re.finditer(pattern, data, re.IGNORECASE | re.DOTALL):
name = ('%s - %s' % (m.group('name'),m.group('fired').replace('/',''))).strip()
item = self.video_item()
item['title'] = name
item['img'] = m.group('logo')
item['plot'] = m.group('plot')
item['url'] = m.group('url')
self._filter(result,item)
data = util.substr(page,'<div class=\"navigation\">','</div>')
type = 'next'
for m in re.finditer('<a href=\"(.+?)(?P<page>/page/[\d]+)',data,re.IGNORECASE | re.DOTALL):
item = self.dir_item()
item['type'] = type
if type == 'next':
type = 'prev'
item['url'] = m.group('page')
result.append(item)
return result
开发者ID:cplaiasu,项目名称:xbmc-doplnky,代码行数:26,代码来源:replay.py
示例15: list_content
def list_content(self, page, url=None):
result = []
if not url: url = self.base_url
data = util.substr(page, '<div class=\"contentArea', '<div class=\"pagination\">')
pattern = '<h\d class=\"postTitle\"><a href=\"(?P<url>[^\"]+)(.+?)<span>(?P<title>[^<]+)</span></a></h\d>(.+?)<span class=\"postDate\">(?P<date>[^\<]+)</span>(.+?)<div class=\"postContent">[^<]+<a[^>]+[^<]+<img src=\"(?P<img>[^\"]+)(.+?)<div class=\"obs\">(?P<plot>.+?)</div>'
for m in re.finditer(pattern, data, re.IGNORECASE | re.DOTALL):
plot = re.sub('<br[^>]*>', '', m.group('plot'))
item = self.video_item()
item['title'] = m.group('title')
item['img'] = m.group('img')
item['plot'] = plot
item['url'] = m.group('url')
self._filter(result, item)
data = util.substr(page, '<div class=\"pagination\">', '</div>')
m = re.search('<li class=\"info\"><span>([^<]+)', data)
n = re.search('<li class=\"prev\"[^<]+<a href=\"(?P<url>[^\"]+)[^<]+<span>(?P<name>[^<]+)', data)
k = re.search('<li class=\"next\"[^<]+<a href=\"(?P<url>[^\"]+)[^<]+<span>(?P<name>[^<]+)', data)
# replace last / + everyting till the end
#myurl = re.sub('\/[\w\-]+$', '/', url)
if not m == None:
if not n == None:
item = self.dir_item()
item['type'] = 'prev'
#item['title'] = '%s - %s' % (m.group(1), n.group('name'))
item['url'] = n.group('url')
result.append(item)
if not k == None:
item = self.dir_item()
item['type'] = 'next'
#item['title'] = '%s - %s' % (m.group(1), k.group('name'))
item['url'] = k.group('url')
result.append(item)
return result
开发者ID:mx3L,项目名称:xbmc-doplnky,代码行数:33,代码来源:videacesky.py
示例16: list_movie_recently_added
def list_movie_recently_added(self, url):
result = []
page = self.get_data_cached(url)
data = util.substr(page, '<div class=\"content\"', '</ul>')
for m in re.finditer(
'<a class=\"content-block\" href=\"(?P<url>[^\"]+)\" title=\"(?P<name>[^\"]+)',
data, re.IGNORECASE | re.DOTALL):
item = self.video_item()
item['url'] = m.group('url')
item['title'] = m.group('name')
item['menu'] = {"[B][COLOR red]Add to library[/COLOR][/B]": {
'url': m.group('url'), 'action': 'add-to-library', 'name': m.group('name')}}
self._filter(result, item)
paging = util.substr(page, '<div class=\"pagination\"', '</div')
next = re.search('<li class=\"next[^<]+<a href=\"\?page=(?P<page>\d+)', paging,
re.IGNORECASE | re.DOTALL)
if next:
next_page = int(next.group('page'))
current = re.search('\?page=(?P<page>\d)', url)
current_page = 0
if next_page > 5:
return result
if current:
current_page = int(current.group('page'))
if current_page < next_page:
url = re.sub('\?.+?$', '', url) + '?page=' + str(next_page)
result += self.list_movie_recently_added(url)
return result
开发者ID:CZ-2W,项目名称:plugin.video.prehraj.me,代码行数:28,代码来源:prehrajme.py
示例17: list_videos
def list_videos(self, url):
result = []
page = util.request(url)
data = util.substr(page, '<div class="articles">','<div class="paginator">')
listing_iter_re = r"""
<article\ class=\"row\">.+?
<a\ href=\"(?P<url>[^\"]+)\"><i\ class=\"ta3-icon-video\"[^>]+>[^>]+>(?P<title>[^<]+)</a>.+?
</article> """
for m in re.finditer(listing_iter_re, data, re.DOTALL | re.VERBOSE):
item = self.video_item()
item['title'] = m.group('title').strip()
#item['title'] = "%s (%s)" % (m.group('title').strip(), m.group('date').strip())
item['url'] = m.group('url')
self._filter(result, item)
pager_data = util.substr(page,'<div class="paginator">', '</div>')
next_page_match = re.search(r'<li class="next"><a href="(?P<url>[^"]+)', pager_data)
if next_page_match:
item = self.dir_item()
item['type'] = 'next'
next_url = next_page_match.group('url').replace('&','&')
# ta3.com gives invalid page urls for publicistika
if "publicistika.html" in url:
purl = urlparse.urlparse(url)
pnext_url = urlparse.urlparse(next_url)
next_url = "http://" + purl.netloc + purl.path + "?" + pnext_url.query
item['url'] = next_url
self._filter(result, item)
return result
开发者ID:kodi-czsk,项目名称:plugin.video.ta3.com,代码行数:28,代码来源:ta3.py
示例18: resolve
def resolve(self,item,captcha_cb=None,select_cb=None):
item = item.copy()
url = self._url(item['url']).replace('×', '%c3%97')
data = util.substr(util.request(url), '<div id=\"content\"', '#content')
visionone_resolved, onevision_resolved, scz_resolved = [],[],[]
onevision = re.search('(?P<url>http://onevision\.ucoz\.ua/[^<]+)', data, re.IGNORECASE)
if onevision:
onevision_data = util.substr(util.request(onevision.group('url')),'<td class=\"eText\"','<td class=\"rightColumn\"')
onevision_resolved=resolver.findstreams(onevision_data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>'])
visionone = re.search('(?P<url>http://visionone\.ucoz\.ru/[^<]+)', data, re.IGNORECASE)
if visionone:
visionone_data = util.substr(util.request(visionone.group('url')),'<td class=\"eText\"','<td class=\"rightColumn\"')
visionone_resolved = resolver.findstreams(visionone_data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>'])
scz = re.search('(?P<url>http://scz\.uvadi\.cz/\?p=[\d]+)', data, re.IGNORECASE)
if scz:
scz_data = util.substr(util.request(scz.group('url')),'<div id=\"content\"', '#content')
scz_resolved = resolver.findstreams(scz_data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>'])
serialy_resolved = resolver.findstreams(data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>',
'<p><code><strong>(?P<url>http.+?)</strong></code></p>',
'<p><code><strong><big>(?P<url>.+?)</big></strong></code></p>'])
resolved = []
resolved+= serialy_resolved or []
resolved+= visionone_resolved or []
resolved+= onevision_resolved or []
resolved+= scz_resolved or []
resolved = len(resolved) > 0 and resolved or None
result = []
for i in resolved:
item = self.video_item()
item['title'] = i['name']
item['url'] = i['url']
item['quality'] = i['quality']
item['surl'] = i['surl']
item['headers'] = i['headers']
result.append(item)
if len(result) == 1:
return result[0]
elif len(result) > 1 and select_cb:
return select_cb(result)
开发者ID:skata890,项目名称:xbmc-doplnky,代码行数:56,代码来源:serialy.py
示例19: list
def list(self,url):
if url.find('#fm#') == 0:
return self.list_folder(url[5:])
url = self._url(url)
page = util.request(url,headers={'X-Requested-With':'XMLHttpRequest','Referer':url,'Cookie':'uloz-to-id=1561277170;'})
script = util.substr(page,'var kn','</script>')
keymap = None
key = None
k = re.search('{([^\;]+)"',script,re.IGNORECASE | re.DOTALL)
if k:
keymap = json.loads("{"+k.group(1)+"\"}")
j = re.search('kapp\(kn\[\"([^\"]+)"',script,re.IGNORECASE | re.DOTALL)
if j:
key = j.group(1)
if not (j and k):
self.error('error parsing page - unable to locate keys')
return []
burl = b64decode('I2h0dHA6Ly9jcnlwdG8uamV6em92by5uZXQvZGVjcnlwdC8/a2V5PSVzJnZhbHVlPSVzCg==')
murl = b64decode('aHR0cDovL2NyeXB0by5qZXp6b3ZvLm5ldC9kZWNyeXB0Lwo=')
murl = 'http://crypto.jezzovo.net/decrypt/'
data = util.substr(page,'<ul class=\"chessFiles','</ul>')
result = []
req = {'seed':keymap[key],'values':keymap}
decr = json.loads(util.post_json(murl,req))
for li in re.finditer('<li data-icon=\"(?P<key>[^\"]+)',data, re.IGNORECASE | re.DOTALL):
body = urllib.unquote(b64decode(decr[li.group('key')]))
m = re.search('<li>.+?<div data-icon=\"(?P<key>[^\"]+)[^<]+<img(.+?)src=\"(?P<logo>[^\"]+)(.+?)<div class=\"fileInfo(?P<info>.+?)</h4>',body, re.IGNORECASE | re.DOTALL)
if not m:
continue
value = keymap[m.group('key')]
info = m.group('info')
iurl = burl % (keymap[key],value)
item = self.video_item()
item['title'] = '.. title not found..'
title = re.search('<div class=\"fileName.+?<a[^>]+>(?P<title>[^<]+)',info, re.IGNORECASE|re.DOTALL)
if title:
item['title'] = title.group('title')
size = re.search('<span class=\"fileSize[^>]+>(?P<size>[^<]+)',info, re.IGNORECASE|re.DOTALL)
if size:
item['size'] = size.group('size').strip()
time = re.search('<span class=\"fileTime[^>]+>(?P<time>[^<]+)',info, re.IGNORECASE|re.DOTALL)
if time:
item['length'] = time.group('time')
item['url'] = iurl
item['img'] = m.group('logo')
self._filter(result,item)
# page navigation
data = util.substr(page,'<div class=\"paginator','</div')
mnext = re.search('<a href=\"(?P<url>[^\"]+)\" class="next',data)
if mnext:
item = self.dir_item()
item['type'] = 'next'
item['url'] = mnext.group('url')
result.append(item)
return result
开发者ID:mx3L,项目名称:xbmc-doplnky,代码行数:55,代码来源:ulozto.py
示例20: resolve
def resolve(self,item,captcha_cb=None,select_cb=None):
item = item.copy()
url = self._url(item['url']).replace('×', '%c3%97')
data = util.substr(util.request(url), '<div id=\"content\"', '#content')
for script in re.finditer('<script.+?src=\"([^\"]+)',data,re.IGNORECASE|re.DOTALL):
try:
data += util.request(script.group(1)).replace('\\\"','\"')
except:
pass
util.init_urllib() # need to reinitialize urrlib, because anyfiles could have left some cookies
visionone_resolved, onevision_resolved, scz_resolved = [],[],[]
onevision = re.search('(?P<url>http://onevision\.ucoz\.ua/[^<]+)', data, re.IGNORECASE)
if onevision:
onevision_data = util.substr(util.request(onevision.group('url')),'<td class=\"eText\"','<td class=\"rightColumn\"')
onevision_resolved=self.findstreams(onevision_data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>'])
visionone = re.search('(?P<url>http://visionone\.ucoz\.ru/[^<]+)', data, re.IGNORECASE)
if visionone:
visionone_data = util.substr(util.request(visionone.group('url')),'<td class=\"eText\"','<td class=\"rightColumn\"')
visionone_resolved = self.findstreams(visionone_data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>'])
scz = re.search('(?P<url>http://scz\.uvadi\.cz/\?p=[\d]+)', data, re.IGNORECASE)
if scz:
scz_data = util.substr(util.request(scz.group('url')),'<div id=\"content\"', '#content')
scz_resolved = self.findstreams(scz_data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<object.*?data=(?P<url>.+?)</object>'])
serialy_resolved = self.findstreams(data, ['<embed( )src=\"(?P<url>[^\"]+)',
'<object(.+?)data=\"(?P<url>[^\"]+)',
'<iframe(.+?)src=[\"\'](?P<url>.+?)[\'\"]',
'<
|
请发表评论