本文整理汇总了Python中Cheetah.Template.Template.TotalItems方法的典型用法代码示例。如果您正苦于以下问题:Python Template.TotalItems方法的具体用法?Python Template.TotalItems怎么用?Python Template.TotalItems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cheetah.Template.Template
的用法示例。
在下文中一共展示了Template.TotalItems方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Template
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import TotalItems [as 别名]
t = Template(CONTAINER_TEMPLATE_MOBILE, filter=EncodeUnicode)
else:
t = Template(CONTAINER_TEMPLATE, filter=EncodeUnicode)
t.escape = escape
t.quote = quote
t.folder = folder
t.status = status
if tivoIP in queue:
t.queue = queue[tivoIP]
t.has_tivodecode = has_tivodecode
t.tname = tivo_name
t.tivoIP = tivoIP
t.container = handler.cname
t.data = data
t.len = len
t.TotalItems = getint(TotalItems)
t.ItemStart = getint(ItemStart)
t.ItemCount = getint(ItemCount)
t.FirstAnchor = quote(FirstAnchor)
t.shows_per_page = shows_per_page
t.title = title
handler.send_html(str(t), refresh='300')
def get_tivo_file(self, tivoIP, url, mak, togo_path):
# global status
status[url].update({'running': True, 'queued': False})
parse_url = urlparse.urlparse(url)
name = unquote(parse_url[2])[10:].split('.')
id = unquote(parse_url[4]).split('id=')[1]
示例2: Template
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import TotalItems [as 别名]
cname = subcname.split('/')[0]
handler.send_response(200)
handler.send_header('Content-Type', 'text/html; charset=UTF-8')
handler.end_headers()
t = Template(file=os.path.join(SCRIPTDIR,'templates', 'npl.tmpl'))
t.folder = folder
t.status = status
t.tivo_mak = tivo_mak
t.togo_path = togo_path
t.tivos = handler.tivos
t.tivoIP = tivoIP
t.container = cname
t.data = data
t.unquote = unquote
t.len = len
t.TotalItems = int(TotalItems)
t.ItemStart = int(ItemStart)
t.ItemCount = int(ItemCount)
t.FirstAnchor = quote(FirstAnchor)
t.shows_per_page = shows_per_page
t.redirect = quote(unquote_plus(handler.path).split('/')[1])
handler.wfile.write(unicode(t).encode('utf-8'))
def get_tivo_file(self, url, mak, tivoIP, outfile):
#global status
cj = cookielib.LWPCookieJar()
r=urllib2.Request(url)
auth_handler = urllib2.HTTPDigestAuthHandler()
auth_handler.add_password('TiVo DVR', tivoIP, 'tivo', mak)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj), auth_handler)
示例3: NPL
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import TotalItems [as 别名]
def NPL(handler, query):
"""
ToGo.NPL returns an html page displaying the now playing list (NPL)
from a particular TiVo device.
The query may specify:
- TiVo: the IPv4 address of the TiVo whose NPL is to be retrieved
- ItemCount: the number of shows/folders to put on the page (default: 50, max: 50)
- AnchorItem: the url identifying the 1st item in the retrieved list (default 1st item in folder)
- AnchorOffset: the offset from the AnchorItem to start the retrieval from (default 0)
- SortOrder:
- Recurse:
"""
def getint(thing):
try:
result = int(thing)
except: # pylint: disable=bare-except
result = 0
return result
shows_per_page = 50 # Change this to alter the number of shows returned (max is 50)
if 'ItemCount' in query:
shows_per_page = int(query['ItemCount'][0])
if shows_per_page > 50:
shows_per_page = 50
folder = ''
FirstAnchor = ''
has_tivodecode = bool(config.get_bin('tivodecode'))
has_tivolibre = bool(config.get_bin('tivolibre'))
if 'TiVo' in query:
tivoIP = query['TiVo'][0]
try:
tsn = config.tivos_by_ip(tivoIP)
attrs = config.tivos[tsn]
tivo_name = attrs.get('name', tivoIP)
tivo_mak = config.get_tsn('tivo_mak', tsn)
except config.Error as e:
logger.error('NPL: %s', e)
t = Template(ERROR_TEMPLATE)
t.e = e
t.additional_info = 'Your browser may have cached an old page'
handler.send_html(str(t))
return
protocol = attrs.get('protocol', 'https')
ip_port = '%s:%d' % (tivoIP, attrs.get('port', 443))
path = attrs.get('path', DEFPATH)
baseurl = '%s://%s%s' % (protocol, ip_port, path)
theurl = baseurl
if 'Folder' in query:
folder = query['Folder'][0]
theurl = urljoin(theurl, folder)
theurl += '&ItemCount=%d' % shows_per_page
if 'AnchorItem' in query:
theurl += '&AnchorItem=' + quote(query['AnchorItem'][0])
if 'AnchorOffset' in query:
theurl += '&AnchorOffset=' + query['AnchorOffset'][0]
if 'SortOrder' in query:
theurl += '&SortOrder=' + query['SortOrder'][0]
if 'Recurse' in query:
theurl += '&Recurse=' + query['Recurse'][0]
if (theurl not in tivo_cache or
(time.time() - tivo_cache[theurl]['thepage_time']) >= 60):
# if page is not cached or old then retrieve it
auth_handler.add_password('TiVo DVR', ip_port, 'tivo', tivo_mak)
logger.debug('NPL: (1) add password for TiVo DVR netloc: %s', ip_port)
try:
logger.debug("NPL.theurl: %s", theurl)
with tivo_open(theurl) as page:
tivo_cache[theurl] = {'thepage': minidom.parse(page),
'thepage_time': time.time()}
except IOError as e:
handler.redir(UNABLE % (tivoIP, html.escape(str(e))), 10)
return
xmldoc = tivo_cache[theurl]['thepage']
items = xmldoc.getElementsByTagName('Item')
TotalItems = tag_data(xmldoc, 'TiVoContainer/Details/TotalItems')
ItemStart = tag_data(xmldoc, 'TiVoContainer/ItemStart')
ItemCount = tag_data(xmldoc, 'TiVoContainer/ItemCount')
title = tag_data(xmldoc, 'TiVoContainer/Details/Title')
if items:
FirstAnchor = tag_data(items[0], 'Links/Content/Url')
data = []
for item in items:
entry = {}
for tag in ('CopyProtected', 'ContentType'):
value = tag_data(item, 'Details/' + tag)
if value:
entry[tag] = value
if entry['ContentType'].startswith('x-tivo-container'):
entry['Url'] = tag_data(item, 'Links/Content/Url')
entry['Title'] = tag_data(item, 'Details/Title')
#.........这里部分代码省略.........