本文整理汇总了Python中trac.attachment.Attachment.href方法的典型用法代码示例。如果您正苦于以下问题:Python Attachment.href方法的具体用法?Python Attachment.href怎么用?Python Attachment.href使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.attachment.Attachment
的用法示例。
在下文中一共展示了Attachment.href方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_file
# 需要导入模块: from trac.attachment import Attachment [as 别名]
# 或者: from trac.attachment.Attachment import href [as 别名]
def get_file(self, filespec, req):
# parse filespec argument to get module and id if contained.
parts = filespec.split(':')
url = None
if len(parts) == 3: # module:id:attachment
if parts[0] in ['wiki', 'ticket']:
module, id, file = parts
else:
return None
elif len(parts) == 2:
from trac.versioncontrol.web_ui import BrowserModule
try:
browser_links = [link for link,_ in
BrowserModule(self.env).get_link_resolvers()]
except Exception:
browser_links = []
if parts[0] in browser_links: # source:path
module, file = parts
rev = None
if '@' in file:
file, rev = file.split('@')
url = req.href.browser(file, rev=rev)
raw_url = req.href.browser(file, rev=rev, format='raw')
else: # #ticket:attachment or WikiPage:attachment
# FIXME: do something generic about shorthand forms...
id, file = parts
if id and id[0] == '#':
module = 'ticket'
id = id[1:]
elif id == 'htdocs':
raw_url = url = req.href.chrome('site', file)
elif id in ('http', 'https', 'ftp'): # external URLs
raw_url = url = id+':'+file
else:
module = 'wiki'
elif len(parts) == 1: # attachment
# determine current object
# FIXME: should be retrieved from the formatter...
# ...and the formatter should be provided to the macro
file = filespec
module, id = 'wiki', 'WikiStart'
path_info = req.path_info.split('/',2)
if len(path_info) > 1:
module = path_info[1]
if len(path_info) > 2:
id = path_info[2]
if module not in ['wiki', 'ticket']:
raise Exception('Cannot reference local attachment from here')
else:
raise Exception('No filespec given')
if not url: # this is an attachment
from trac.attachment import Attachment
attachment = Attachment(self.env, module, id, file)
url = attachment.href(req)
raw_url = attachment.href(req, format='raw')
return url
示例2: render_macro
# 需要导入模块: from trac.attachment import Attachment [as 别名]
# 或者: from trac.attachment.Attachment import href [as 别名]
def render_macro(self, req, name, content):
# args will be null if the macro is called without parenthesis.
if not content:
return ''
# parse arguments
# we expect the 1st argument to be a filename (filespec)
args = content.split(',')
if len(args) == 0:
raise Exception("No argument.")
filespec = args[0]
size_re = re.compile('[0-9]+%?$')
attr_re = re.compile('(align|border|width|height|alt'
'|title|longdesc|class|id|usemap)=(.+)')
quoted_re = re.compile("(?:[\"'])(.*)(?:[\"'])$")
attr = {}
style = {}
nolink = False
for arg in args[1:]:
arg = arg.strip()
if size_re.match(arg):
# 'width' keyword
attr['width'] = arg
continue
if arg == 'nolink':
nolink = True
continue
if arg in ('left', 'right', 'top', 'bottom'):
style['float'] = arg
continue
match = attr_re.match(arg)
if match:
key, val = match.groups()
m = quoted_re.search(val) # unquote "..." and '...'
if m:
val = m.group(1)
if key == 'align':
style['float'] = val
elif key == 'border':
style['border'] = ' %dpx solid' % int(val);
else:
attr[str(key)] = val # will be used as a __call__ keyword
# parse filespec argument to get module and id if contained.
parts = filespec.split(':')
url = None
if len(parts) == 3: # module:id:attachment
if parts[0] in ['wiki', 'ticket']:
module, id, file = parts
else:
raise Exception("%s module can't have attachments" % parts[0])
elif len(parts) == 2:
from trac.versioncontrol.web_ui import BrowserModule
try:
browser_links = [link for link,_ in
BrowserModule(self.env).get_link_resolvers()]
except Exception:
browser_links = []
if parts[0] in browser_links: # source:path
module, file = parts
rev = None
if '@' in file:
file, rev = file.split('@')
url = req.href.browser(file, rev=rev)
raw_url = req.href.browser(file, rev=rev, format='raw')
desc = filespec
else: # #ticket:attachment or WikiPage:attachment
# FIXME: do something generic about shorthand forms...
id, file = parts
if id and id[0] == '#':
module = 'ticket'
id = id[1:]
elif id == 'htdocs':
raw_url = url = req.href.chrome('site', file)
desc = os.path.basename(file)
elif id in ('http', 'https', 'ftp'): # external URLs
raw_url = url = desc = id+':'+file
else:
module = 'wiki'
elif len(parts) == 1: # attachment
# determine current object
# FIXME: should be retrieved from the formatter...
# ...and the formatter should be provided to the macro
file = filespec
module, id = 'wiki', 'WikiStart'
path_info = req.path_info.split('/',2)
if len(path_info) > 1:
module = path_info[1]
if len(path_info) > 2:
id = path_info[2]
if module not in ['wiki', 'ticket']:
raise Exception('Cannot reference local attachment from here')
else:
raise Exception('No filespec given')
if not url: # this is an attachment
from trac.attachment import Attachment
attachment = Attachment(self.env, module, id, file)
url = attachment.href(req)
raw_url = attachment.href(req, format='raw')
desc = attachment.description
for key in ['title', 'alt']:
#.........这里部分代码省略.........
示例3: render_macro
# 需要导入模块: from trac.attachment import Attachment [as 别名]
# 或者: from trac.attachment.Attachment import href [as 别名]
def render_macro(self, req, name, content):
# args will be null if the macro is called without parenthesis.
if not content:
return ''
args = content.split(',')
filespec = args[0]
# parse filespec argument to get module and id if contained.
parts = filespec.split(':')
url = None
if len(parts) == 3: # module:id:attachment
if parts[0] in ['wiki', 'ticket']:
module, id, file = parts
else:
raise Exception("%s module can't have attachments" % parts[0])
elif len(parts) == 2:
from trac.versioncontrol.web_ui import BrowserModule
try:
browser_links = [link for link,_ in
BrowserModule(self.env).get_link_resolvers()]
except Exception:
browser_links = []
if parts[0] in browser_links: # source:path
module, file = parts
rev = None
if '@' in file:
file, rev = file.split('@')
url = req.href.browser(file, rev=rev)
raw_url = req.href.browser(file, rev=rev, format='raw')
desc = filespec
else: # #ticket:attachment or WikiPage:attachment
# FIXME: do something generic about shorthand forms...
id, file = parts
if id and id[0] == '#':
module = 'ticket'
id = id[1:]
elif id == 'htdocs':
raw_url = url = req.href.chrome('site', file)
desc = os.path.basename(file)
elif id in ('http', 'https', 'ftp'): # external URLs
raw_url = url = desc = id+':'+file
else:
module = 'wiki'
elif len(parts) == 1: # attachment
# determine current object
# FIXME: should be retrieved from the formatter...
# ...and the formatter should be provided to the macro
file = filespec
module, id = 'wiki', 'WikiStart'
path_info = req.path_info.split('/',2)
if len(path_info) > 1:
module = path_info[1]
if len(path_info) > 2:
id = path_info[2]
if module not in ['wiki', 'ticket']:
raise Exception('Cannot reference local attachment from here')
else:
raise Exception('No filespec given')
if not url: # this is an attachment
from trac.attachment import Attachment
attachment = Attachment(self.env, module, id, file)
url = attachment.href(req)
raw_url = attachment.href(req, format='raw')
desc = attachment.description
width, height = swfsize(attachment.open())
if len(args) == 3:
if args[1][0] == '*':
width = int(width * float(args[1][1:]))
else:
width = args[1]
if args[2][0] == '*':
height = int(height * float(args[2][1:]))
else:
height = args[2]
elif len(args) != 1:
raise Exception('Too few arguments. (filespec, width, height)')
else:
if len(args) < 3:
raise Exception('Too few arguments. (filespec, width, height)')
else:
width = args[1]
height = args[2]
vars = {
'width': width,
'height': height,
'raw_url': raw_url
}
return """
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"
width="%(width)s" height="%(height)s">
<param name="movie" value="%(raw_url)s">
<param name="quality" value="low">
<param name="play" value="true">
<embed src="%(raw_url)s" quality="low" width="%(width)s" height="%(height)s"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
#.........这里部分代码省略.........
示例4: render_macro
# 需要导入模块: from trac.attachment import Attachment [as 别名]
# 或者: from trac.attachment.Attachment import href [as 别名]
def render_macro(self, req, name, content):
# args will be null if the macro is called without parenthesis.
if not content:
return ''
# parse arguments
# we expect the 1st argument to be a filename (filespec)
args = content.split(',')
if len(args) == 0:
raise Exception("No argument.")
filespec = args[0]
size_re = re.compile('[0-9]+%?$')
attr_re = re.compile('(align|border|width|height|alt'
'|title|longdesc|class|id|usemap)=(.+)')
quoted_re = re.compile("(?:[\"'])(.*)(?:[\"'])$")
attr = {}
style = {}
nolink = False
for arg in args[1:]:
arg = arg.strip()
if size_re.match(arg):
# 'width' keyword
attr['width'] = arg
continue
if arg == 'nolink':
nolink = True
continue
if arg in ('left', 'right', 'top', 'bottom'):
style['float'] = arg
continue
match = attr_re.match(arg)
if match:
key, val = match.groups()
m = quoted_re.search(val) # unquote "..." and '...'
if m:
val = m.group(1)
if key == 'align':
style['float'] = val
elif key == 'border':
style['border'] = ' %dpx solid' % int(val);
else:
attr[str(key)] = val # will be used as a __call__ keyword
# parse filespec argument to get module and id if contained.
parts = filespec.split(':')
url = None
if len(parts) == 3: # module:id:attachment
if parts[0] in ['wiki', 'ticket']:
module, id, file = parts
else:
raise Exception("%s module can't have attachments" % parts[0])
elif len(parts) == 2:
from trac.versioncontrol.web_ui import BrowserModule
try:
browser_links = [link for link,_ in
BrowserModule(self.env).get_link_resolvers()]
except Exception:
browser_links = []
if parts[0] in browser_links: # source:path
module, file = parts
rev = None
if '@' in file:
file, rev = file.split('@')
url = req.href.browser(file, rev=rev)
raw_url = req.href.browser(file, rev=rev, format='raw')
desc = filespec
else: # #ticket:attachment or WikiPage:attachment
# FIXME: do something generic about shorthand forms...
id, file = parts
if id and id[0] == '#':
module = 'ticket'
id = id[1:]
elif id == 'htdocs':
raw_url = url = req.href.chrome('site', file)
desc = os.path.basename(file)
elif id in ('http', 'https', 'ftp'): # external URLs
raw_url = url = desc = id+':'+file
else:
module = 'wiki'
elif len(parts) == 1: # attachment
# determine current object
# FIXME: should be retrieved from the formatter...
# ...and the formatter should be provided to the macro
file = filespec
module, id = 'wiki', 'WikiStart'
path_info = req.path_info.split('/',2)
if len(path_info) > 1:
module = path_info[1]
if len(path_info) > 2:
id = path_info[2]
if module not in ['wiki', 'ticket']:
raise Exception('Cannot reference local attachment from here')
else:
raise Exception('No filespec given')
if not url: # this is an attachment
from trac.attachment import Attachment
attachment = Attachment(self.env, module, id, file)
url = attachment.href(req)
dia_url = attachment.href(req, format='raw')
dia_path = attachment.path
#.........这里部分代码省略.........
示例5: render_macro
# 需要导入模块: from trac.attachment import Attachment [as 别名]
# 或者: from trac.attachment.Attachment import href [as 别名]
def render_macro(self, req, name, content):
# args will be null if the macro is called without parenthesis.
if not content:
return ""
# parse arguments
# we expect the 1st argument to be a filename (filespec)
args = content.split(",")
if len(args) == 0:
raise Exception(u"Aucun argument")
filespec = args[0]
size_re = re.compile("[0-9]+%?$")
attr_re = re.compile("(align|border|width|height|alt" "|title|longdesc|class|id|usemap)=(.+)")
quoted_re = re.compile("(?:[\"'])(.*)(?:[\"'])$")
attr = {}
style = {}
nolink = False
for arg in args[1:]:
arg = arg.strip()
if size_re.match(arg):
# 'width' keyword
attr["width"] = arg
continue
if arg == "nolink":
nolink = True
continue
if arg in ("left", "right", "top", "bottom"):
style["float"] = arg
continue
match = attr_re.match(arg)
if match:
key, val = match.groups()
m = quoted_re.search(val) # unquote "..." and '...'
if m:
val = m.group(1)
if key == "align":
style["float"] = val
elif key == "border":
style["border"] = " %dpx solid" % int(val)
else:
attr[str(key)] = val # will be used as a __call__ keyword
# parse filespec argument to get module and id if contained.
parts = filespec.split(":")
url = None
if len(parts) == 3: # module:id:attachment
if parts[0] in ["wiki", "ticket"]:
module, id, file = parts
else:
raise Exception(u"Le module %s ne peut pas posséder de fichiers " "joints" % parts[0])
elif len(parts) == 2:
from trac.versioncontrol.web_ui import BrowserModule
try:
browser_links = [link for link, _ in BrowserModule(self.env).get_link_resolvers()]
except Exception:
browser_links = []
if parts[0] in browser_links: # source:path
module, file = parts
rev = None
if "@" in file:
file, rev = file.split("@")
url = req.href.browser(file, rev=rev)
raw_url = req.href.browser(file, rev=rev, format="raw")
desc = filespec
else: # #ticket:attachment or WikiPage:attachment
# FIXME: do something generic about shorthand forms...
id, file = parts
if id and id[0] == "#":
module = "ticket"
id = id[1:]
elif id == "htdocs":
raw_url = url = req.href.chrome("site", file)
desc = os.path.basename(file)
elif id in ("http", "https", "ftp"): # external URLs
raw_url = url = desc = id + ":" + file
else:
module = "wiki"
elif len(parts) == 1: # attachment
# determine current object
# FIXME: should be retrieved from the formatter...
# ...and the formatter should be provided to the macro
file = filespec
module, id = "wiki", "WikiStart"
path_info = req.path_info.split("/", 2)
if len(path_info) > 1:
module = path_info[1]
if len(path_info) > 2:
id = path_info[2]
if module not in ["wiki", "ticket"]:
raise Exception(u"Impossible de référencer un fichier joint " u"depuis cet endroit")
else:
raise Exception(u"Pas de définition de fichier reçue")
if not url: # this is an attachment
from trac.attachment import Attachment
attachment = Attachment(self.env, module, id, file)
url = attachment.href(req)
raw_url = attachment.href(req, format="raw")
desc = attachment.description
for key in ["title", "alt"]:
#.........这里部分代码省略.........