package org.oneliveweb.live.streams; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import org.entermediadb.asset.MediaArchive; import org.openedit.ModuleManager; import org.openedit.OpenEditException; import org.openedit.WebPageRequest; import org.openedit.generators.FileGenerator; import org.openedit.generators.Output; import org.openedit.page.Page; import org.openedit.page.PageRequestKeys; public class LiveStreamGenerator extends FileGenerator { protected ModuleManager moduleManager; public ModuleManager getModuleManager() { return moduleManager; } public void setModuleManager(ModuleManager moduleManager) { this.moduleManager = moduleManager; } public void generate(WebPageRequest inReq, Page inPage, Output inOut) throws OpenEditException { // TODO: Revamp all API to use ContentItem instead of Page String catalogid = inReq.findValue("catalogid"); MediaArchive archive = (MediaArchive) getModuleManager().getBean(catalogid, "mediaArchive"); String sourcePath = inReq.getRequestParameter("sourcepath"); if (sourcePath == null) { sourcePath = archive.getSourcePathForPage(inReq); // This already is decoded } else { try { sourcePath = URLDecoder.decode(sourcePath, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new OpenEditException(e); } } Page content = archive.getPageManager().getPage(""); if( content.exists() ) { //its a regular file WebPageRequest req = inReq.copy(content); req.putProtectedPageValue(PageRequestKeys.CONTENT, content); super.generate(req, content, inOut); } else { //stream(inReq, archive, inOut, asset, filename); Stream a default video? } } }