本文整理汇总了Python中exe.export.websiteexport.WebsiteExport类的典型用法代码示例。如果您正苦于以下问题:Python WebsiteExport类的具体用法?Python WebsiteExport怎么用?Python WebsiteExport使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WebsiteExport类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testExport
def testExport(self):
# Delete the output dir
outdir = TempDirPath()
G.application = Application()
G.application.loadConfiguration()
G.application.preLaunch()
# Load a package
package = Package.load('testing/testPackage2.elp')
# Do the export
style_dir = G.application.config.stylesDir / package.style
exporter = WebsiteExport(G.application.config,
style_dir,
outdir)
exporter.export(package)
# Check that it all exists now
assert outdir.isdir()
assert (outdir / 'index.html').isfile()
# Check that the style sheets have been copied
for filename in style_dir.files():
assert ((outdir / filename.basename()).exists(),
'Style file "%s" not copied' % (outdir / filename.basename()))
# Check that each node in the package has had a page made
pagenodes = Set([p.node for p in exporter.pages])
othernodes = Set(self._getNodes([], package.root))
assert pagenodes == othernodes
for page in exporter.pages:
self._testPage(page, outdir)
示例2: exportWebSite
def exportWebSite(self, client, filename, stylesDir):
"""
Export 'client' to a web site,
'webDir' is just read from config.webDir
'stylesDir' is where to copy the style sheet information from
"""
try:
# filename is a directory where we will export the website to
# We assume that the user knows what they are doing
# and don't check if the directory is already full or not
# and we just overwrite what's already there
filename = Path(filename)
# Append the package name to the folder path if necessary
if filename.basename() != self.package.name:
filename /= self.package.name
if not filename.exists():
filename.makedirs()
elif not filename.isdir():
client.alert(_(u'Filename %s is a file, cannot replace it') %
filename)
log.error("Couldn't export web page: "+
"Filename %s is a file, cannot replace it" % filename)
return
else:
client.alert(_(u'Folder name %s already exists. '
'Please choose another one or delete existing one then try again.') % filename)
return
# Now do the export
websiteExport = WebsiteExport(self.config, stylesDir, filename)
websiteExport.export(self.package)
except Exception, e:
client.alert(_('EXPORT FAILED!\n%s') % str(e))
raise
示例3: get_tincan_id
def get_tincan_id(self):
from exe.export.websiteexport import WebsiteExport
return WebsiteExport.getTinCanId(suffix="", id_type=EXETinCan.PAGE)
示例4: export_website
def export_website(self, pkg, outputf):
outputfp = Path(outputf)
outputfp.makedirs()
websiteExport = WebsiteExport(self.config, self.styles_dir, outputf)
websiteExport.export(pkg)
示例5: export_report
def export_report(self, pkg, outputf):
websiteExport = WebsiteExport(self.config, self.styles_dir, outputf, report=True)
websiteExport.export(pkg)
示例6: export
#.........这里部分代码省略.........
hasInstructions = True
if not hasMediaelement:
hasMediaelement = common.ideviceHasMediaelement(idevice)
if not hasTooltips:
hasTooltips = common.ideviceHasTooltips(idevice)
if not hasABCMusic:
hasABCMusic = common.ideviceHasABCMusic(idevice)
if hasattr(idevice, "_iDeviceDir"):
listIdevicesFiles.append((Path(idevice._iDeviceDir)/'export'))
common.exportJavaScriptIdevicesFiles(page.node.idevices, outputDir);
if hasFlowplayer:
videofile = (self.templatesDir/'flowPlayer.swf')
videofile.copyfile(outputDir/'flowPlayer.swf')
controlsfile = (self.templatesDir/'flowplayer.controls.swf')
controlsfile.copyfile(outputDir/'flowplayer.controls.swf')
if hasMagnifier:
videofile = (self.templatesDir/'mojomagnify.js')
videofile.copyfile(outputDir/'mojomagnify.js')
if hasXspfplayer:
videofile = (self.templatesDir/'xspf_player.swf')
videofile.copyfile(outputDir/'xspf_player.swf')
if hasGallery:
exeLightbox = (self.scriptsDir/'exe_lightbox')
exeLightbox.copyfiles(outputDir)
if hasFX:
exeEffects = (self.scriptsDir/'exe_effects')
exeEffects.copyfiles(outputDir)
if hasSH:
exeSH = (self.scriptsDir/'exe_highlighter')
exeSH.copyfiles(outputDir)
if hasGames:
exeGames = (self.scriptsDir/'exe_games')
exeGames.copyfiles(outputDir)
# Add game js string to common_i18n
langGameFile = open(outputDir + '/common_i18n.js', "a")
langGameFile.write(common.getGamesJavaScriptStrings(False))
langGameFile.close()
if hasElpLink or package.get_exportElp():
# Export the elp file
currentPackagePath = Path(package.filename)
currentPackagePath.copyfile(outputDir/package.name+'.elp')
if hasWikipedia:
wikipediaCSS = (self.cssDir/'exe_wikipedia.css')
wikipediaCSS.copyfile(outputDir/'exe_wikipedia.css')
if hasInstructions:
common.copyFileIfNotInStyle('panel-amusements.png', self, outputDir)
common.copyFileIfNotInStyle('stock-stop.png', self, outputDir)
if hasMediaelement:
mediaelement = (self.scriptsDir/'mediaelement')
mediaelement.copyfiles(outputDir)
if dT != "HTML5":
jsFile = (self.scriptsDir/'exe_html5.js')
if hasTooltips:
exe_tooltips = (self.scriptsDir/'exe_tooltips')
exe_tooltips.copyfiles(outputDir)
if hasABCMusic:
pluginScripts = (self.scriptsDir/'tinymce_4/js/tinymce/plugins/abcmusic/export')
pluginScripts.copyfiles(outputDir)
ext = ".html"
if G.application.config.cutFileName == "1":
ext = ".htm"
if self.scormType == "scorm1.2" or self.scormType == "scorm2004":
if package.license == "license GFDL":
# include a copy of the GNU Free Documentation Licence
(self.templatesDir/'fdl' + ext).copyfile(outputDir/'fdl' + ext)
if hasattr(package, 'scowsinglepage') and package.scowsinglepage:
page = SinglePage("singlepage_index", 1, package.root)
page.save(outputDir/"singlepage_index" + ext)
# Incluide eXe's icon if the Style doesn't have one
themePath = Path(G.application.config.stylesDir/package.style)
themeFavicon = themePath.joinpath("favicon.ico")
if not themeFavicon.exists():
faviconFile = (self.imagesDir/'favicon.ico')
faviconFile.copyfile(outputDir/'favicon.ico')
if hasattr(package, 'scowwebsite') and package.scowwebsite:
website = WebsiteExport(self.config, self.styleDir, outputDir, "website_")
website.export(package)
(self.styleDir/'nav.css').copyfile(outputDir/'nav.css')
# Incluide eXe's icon if the Style doesn't have one
themePath = Path(G.application.config.stylesDir/package.style)
themeFavicon = themePath.joinpath("favicon.ico")
if not themeFavicon.exists():
faviconFile = (self.imagesDir/'favicon.ico')
faviconFile.copyfile(outputDir/'favicon.ico')
if hasattr(package, 'exportSource') and package.exportSource:
(G.application.config.webDir/'templates'/'content.xsd').copyfile(outputDir/'content.xsd')
(outputDir/'content.data').write_bytes(encodeObject(package))
(outputDir/'contentv3.xml').write_bytes(encodeObjectToXML(package))
# Zip it up!
self.filename.safeSave(self.doZip, _('EXPORT FAILED!\nLast succesful export is %s.'), outputDir)
# Clean up the temporary dir
outputDir.rmtree()
return modifiedMetaData
示例7: testExport
def testExport(self):
# Delete the output dir
outdir = TempDirPath()
G.application = Application()
G.application.loadConfiguration()
G.application.preLaunch()
# Load a package
package = Package.load('testing/testPackage2.elp')
# Do the export
style_dir = G.application.config.stylesDir / package.style
exporter = WebsiteExport(G.application.config,
style_dir,
outdir)
exporter.export(package)
# Check that it all exists now
assert outdir.isdir()
assert (outdir / 'index.html').isfile()
# Check that the style sheets have been copied
for filename in style_dir.files():
#Skip the styles config.xml - that should not be included
if filename.basename() == "config.xml":
continue
assert ((outdir / filename.basename()).exists(),
'Style file "%s" not copied' % (outdir / filename.basename()))
#check the modification time is correct
f_dst = Path(outdir/filename.basename())
f_src = Path(filename)
self.assertTrue(
TestUtils.mod_time_diff(f_dst, f_src) < 0.1,
"Modification time in style dir preserved")
for res_file in package.resourceDir.files():
dst_file = Path(outdir/ res_file.basename())
self.assertTrue(dst_file.isfile())
self.assertTrue(
TestUtils.mod_time_diff(res_file, dst_file) < 0.1,
"Resource file %s has same mod time as origin" \
% res_file.basename())
#test that everything that was copied hahs the right mod time
copy_list = package.make_system_copy_list(style_dir,
G.application.config.webDir/"scripts" ,
G.application.config.webDir/"templates",
G.application.config.webDir/"images",
G.application.config.webDir/"css",
outdir)
TestUtils.check_copy_list_mod_time(copy_list, self)
# Check that each node in the package has had a page made
pagenodes = Set([p.node for p in exporter.pages])
othernodes = Set(self._getNodes([], package.root))
assert pagenodes == othernodes
for page in exporter.pages:
self._testPage(page, outdir)
示例8: export
#.........这里部分代码省略.........
and hasInstructions
and hasMediaelement
):
isBreak = True
break
if not hasFlowplayer:
if "flowPlayer.swf" in idevice.systemResources:
hasFlowplayer = True
if not hasMagnifier:
if "mojomagnify.js" in idevice.systemResources:
hasMagnifier = True
if not hasXspfplayer:
if "xspf_player.swf" in idevice.systemResources:
hasXspfplayer = True
if not hasGallery:
hasGallery = common.ideviceHasGallery(idevice)
if not hasWikipedia:
if "WikipediaIdevice" == idevice.klass:
hasWikipedia = True
if not hasInstructions:
if (
"TrueFalseIdevice" == idevice.klass
or "MultichoiceIdevice" == idevice.klass
or "VerdaderofalsofpdIdevice" == idevice.klass
or "EleccionmultiplefpdIdevice" == idevice.klass
):
hasInstructions = True
if not hasMediaelement:
hasMediaelement = common.ideviceHasMediaelement(idevice)
if hasFlowplayer:
videofile = self.templatesDir / "flowPlayer.swf"
videofile.copyfile(outputDir / "flowPlayer.swf")
controlsfile = self.templatesDir / "flowplayer.controls.swf"
controlsfile.copyfile(outputDir / "flowplayer.controls.swf")
if hasMagnifier:
videofile = self.templatesDir / "mojomagnify.js"
videofile.copyfile(outputDir / "mojomagnify.js")
if hasXspfplayer:
videofile = self.templatesDir / "xspf_player.swf"
videofile.copyfile(outputDir / "xspf_player.swf")
if hasGallery:
imageGalleryCSS = self.cssDir / "exe_lightbox.css"
imageGalleryCSS.copyfile(outputDir / "exe_lightbox.css")
imageGalleryJS = self.scriptsDir / "exe_lightbox.js"
imageGalleryJS.copyfile(outputDir / "exe_lightbox.js")
self.imagesDir.copylist(
(
"exe_lightbox_close.png",
"exe_lightbox_loading.gif",
"exe_lightbox_next.png",
"exe_lightbox_prev.png",
),
outputDir,
)
if hasWikipedia:
wikipediaCSS = self.cssDir / "exe_wikipedia.css"
wikipediaCSS.copyfile(outputDir / "exe_wikipedia.css")
if hasInstructions:
common.copyFileIfNotInStyle("panel-amusements.png", self, outputDir)
common.copyFileIfNotInStyle("stock-stop.png", self, outputDir)
if hasMediaelement:
mediaelement = self.scriptsDir / "mediaelement"
mediaelement.copyfiles(outputDir)
if dT != "HTML5":
jsFile = self.scriptsDir / "exe_html5.js"
if self.scormType == "scorm1.2" or self.scormType == "scorm2004":
if package.license == "license GFDL":
# include a copy of the GNU Free Documentation Licence
(self.templatesDir / "fdl.html").copyfile(outputDir / "fdl.html")
if hasattr(package, "scowsinglepage") and package.scowsinglepage:
page = SinglePage("singlepage_index", 1, package.root)
page.save(outputDir / "singlepage_index.html")
# Incluide eXe's icon if the Style doesn't have one
themePath = Path(G.application.config.stylesDir / package.style)
themeFavicon = themePath.joinpath("favicon.ico")
if not themeFavicon.exists():
faviconFile = self.imagesDir / "favicon.ico"
faviconFile.copyfile(outputDir / "favicon.ico")
if hasattr(package, "scowwebsite") and package.scowwebsite:
website = WebsiteExport(self.config, self.styleDir, outputDir, "website_")
website.export(package)
(self.styleDir / "nav.css").copyfile(outputDir / "nav.css")
# Incluide eXe's icon if the Style doesn't have one
themePath = Path(G.application.config.stylesDir / package.style)
themeFavicon = themePath.joinpath("favicon.ico")
if not themeFavicon.exists():
faviconFile = self.imagesDir / "favicon.ico"
faviconFile.copyfile(outputDir / "favicon.ico")
if hasattr(package, "exportSource") and package.exportSource:
(G.application.config.webDir / "templates" / "content.xsd").copyfile(outputDir / "content.xsd")
(outputDir / "content.data").write_bytes(encodeObject(package))
(outputDir / "contentv3.xml").write_bytes(encodeObjectToXML(package))
# Zip it up!
self.filename.safeSave(self.doZip, _("EXPORT FAILED!\nLast succesful export is %s."), outputDir)
# Clean up the temporary dir
outputDir.rmtree()
示例9: export_webzip
def export_webzip(self, pkg, outputf):
websiteExport = WebsiteExport(self.config, self.styles_dir, outputf)
websiteExport.exportZip(pkg)
示例10: export
#.........这里部分代码省略.........
'imsmd_rootv1p2p1.xsd',
'adlcp_rootv1p2.xsd',
'ims_xml.xsd'), outputDir)
elif self.scormType == "scorm2004":
schemasDir = self.schemasDir/"scorm2004"
schemasDir.copylist(('adlcp_v1p3.xsd',
'adlnav_v1p3.xsd',
'adlseq_v1p3.xsd',
'datatypes.dtd',
'imscp_v1p1.xsd',
'imsssp_v1p0.xsd',
'imsss_v1p0.xsd',
'imsss_v1p0auxresource.xsd',
'imsss_v1p0control.xsd',
'imsss_v1p0delivery.xsd',
'imsss_v1p0limit.xsd',
'imsss_v1p0objective.xsd',
'imsss_v1p0random.xsd',
'imsss_v1p0rollup.xsd',
'imsss_v1p0seqrule.xsd',
'imsss_v1p0util.xsd',
'ims_xml.xsd',
'lom.xsd',
'lomCustom.xsd',
'xml.xsd',
'XMLSchema.dtd'), outputDir)
try:
import shutil, errno
shutil.copytree(schemasDir/"lom", outputDir/"lom")
except OSError as exc:
if exc.errno == errno.ENOTDIR:
shutil.copy(schemasDir/"lom", outputDir/"lom")
else: raise
# copy players for media idevices.
hasFlowplayer = False
hasMagnifier = False
hasXspfplayer = False
hasGallery = False
isBreak = False
for page in self.pages:
if isBreak:
break
for idevice in page.node.idevices:
if (hasFlowplayer and hasMagnifier and hasXspfplayer and hasGallery):
isBreak = True
break
if not hasFlowplayer:
if 'flowPlayer.swf' in idevice.systemResources:
hasFlowplayer = True
if not hasMagnifier:
if 'magnifier.swf' in idevice.systemResources:
hasMagnifier = True
if not hasXspfplayer:
if 'xspf_player.swf' in idevice.systemResources:
hasXspfplayer = True
if not hasGallery:
if 'GalleryIdevice' == idevice.klass:
hasGallery = True
if hasFlowplayer:
videofile = (self.templatesDir/'flowPlayer.swf')
videofile.copyfile(outputDir/'flowPlayer.swf')
controlsfile = (self.templatesDir/'flowplayer.controls.swf')
controlsfile.copyfile(outputDir/'flowplayer.controls.swf')
if hasMagnifier:
videofile = (self.templatesDir/'magnifier.swf')
videofile.copyfile(outputDir/'magnifier.swf')
if hasXspfplayer:
videofile = (self.templatesDir/'xspf_player.swf')
videofile.copyfile(outputDir/'xspf_player.swf')
if hasGallery:
imageGalleryCSS = (self.cssDir/'exe_lightbox.css')
imageGalleryCSS.copyfile(outputDir/'exe_lightbox.css')
imageGalleryJS = (self.scriptsDir/'exe_lightbox.js')
imageGalleryJS.copyfile(outputDir/'exe_lightbox.js')
self.imagesDir.copylist(('exeGallery_actions.png', 'exeGallery_loading.gif', 'stock-insert-image.png'), outputDir)
if self.scormType == "scorm1.2" or self.scormType == "scorm2004":
if package.license == "GNU Free Documentation License":
# include a copy of the GNU Free Documentation Licence
(self.templatesDir/'fdl.html').copyfile(outputDir/'fdl.html')
if hasattr(package, 'scowsinglepage') and package.scowsinglepage:
page = SinglePage("singlepage_index", 1, package.root)
page.save(outputDir/"singlepage_index.html")
if hasattr(package, 'scowwebsite') and package.scowwebsite:
website = WebsiteExport(self.config, self.styleDir, outputDir, "website_")
website.export(package)
(self.styleDir/'nav.css').copyfile(outputDir/'nav.css')
if hasattr(package, 'scowsource') and package.scowsource:
(G.application.config.webDir/'templates'/'content.xsd').copyfile(outputDir/'content.xsd')
(outputDir/'content.data').write_bytes(encodeObject(package))
(outputDir/'contentv2.xml').write_bytes(encodeObjectToXML(package))
# Zip it up!
self.filename.safeSave(self.doZip, _('EXPORT FAILED!\nLast succesful export is %s.'), outputDir)
# Clean up the temporary dir
outputDir.rmtree()