/* * ### * Phresco Service Tools * * Copyright (C) 1999 - 2012 Photon Infotech Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ### */ package com.photon.phresco.service.tools; <<<<<<< Updated upstream import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.codehaus.plexus.util.StringUtils; import com.google.gson.Gson; import com.photon.phresco.exception.PhrescoException; import com.photon.phresco.model.VideoInfo; import com.photon.phresco.model.VideoType; import com.photon.phresco.service.api.PhrescoServerFactory; import com.photon.phresco.service.api.RepositoryManager; import com.photon.phresco.service.data.api.PhrescoDataManager; import com.photon.phresco.service.model.ArtifactInfo; import com.photon.phresco.service.model.ServerConstants; ======= import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.codehaus.plexus.util.StringUtils; import com.google.gson.Gson; import com.photon.phresco.exception.PhrescoException; import com.photon.phresco.model.VideoInfo; import com.photon.phresco.model.VideoType; import com.photon.phresco.service.api.PhrescoServerFactory; import com.photon.phresco.service.api.RepositoryManager; import com.photon.phresco.service.model.ArtifactInfo; import com.photon.phresco.service.util.ServerConstants; >>>>>>> Stashed changes public class VideoInfoGenerator implements ServerConstants { private static final String VIDEO_INFO_JSON_FILE = "videoInfo.json"; private static final String VIDEO_EXCEL_FILE = "Videos.xls"; private static final String VIDEOS = "Videos"; private static final String DELIMITER = ","; HSSFWorkbook workBook = null; private File outFile = null; private File videoFile = null; private RepositoryManager repoMan = null; Map<String, String> codecMap = new HashMap<String, String>(); private void initMap() { codecMap.put("webm", "webm"); codecMap.put("mp4", "MPEG"); codecMap.put("ogg", "ogg , vorbis"); codecMap.put("ogv", "ogv , vorbis"); } public VideoInfoGenerator(File inputDir, File outDir, File videoDir) throws PhrescoException { super(); this.workBook = getWorkBook(new File(inputDir, VIDEO_EXCEL_FILE)); this.outFile = new File(outDir, VIDEO_INFO_JSON_FILE); this.videoFile = videoDir; PhrescoServerFactory.initialize(); this.repoMan = PhrescoServerFactory.getRepositoryManager(); initMap(); } private HSSFWorkbook getWorkBook(File inputFile) throws PhrescoException { FileInputStream fs = null; try { fs = new FileInputStream(inputFile); return new HSSFWorkbook(fs); } catch (IOException e) { throw new PhrescoException(e); } finally { if (fs != null) { try { fs.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void publish() throws PhrescoException { List<VideoInfo> infos = new ArrayList<VideoInfo>(); HSSFSheet sheet = workBook.getSheet(VIDEOS); Iterator<Row> rowiIterator = sheet.iterator(); for (int i = 0; i < 1; i++) { rowiIterator.next(); } VideoInfo info = null; while (rowiIterator.hasNext()) { Row row = rowiIterator.next(); info = createVideo(row); infos.add(info); } writesJson(infos, outFile); uploadToRepository(infos); uploadVideoToRepository(infos,videoFile); } private void uploadVideoToRepository(List<VideoInfo> infos,File videoDir) throws PhrescoException { System.out.println("Video Files Uploading............."); for (VideoInfo videoInfo : infos) { List<VideoType> videoList = videoInfo.getVideoList(); for (VideoType videoType : videoList) { String videoUrl = videoType.getUrl(); File videoFile = new File(videoDir, videoUrl); if(videoFile.exists()) { ArtifactInfo info = new ArtifactInfo("videos.homepage", findArtifactName(videoUrl), "" ,videoType.getType() , "1.0"); repoMan.addArtifact(info, videoFile); } } } System.out.println("Video Images Uploading............."); for (VideoInfo videoInfo : infos) { String imageUrl = videoInfo.getImageurl(); File imageFile = new File(videoDir, imageUrl); if(imageFile.exists()) { ArtifactInfo info = new ArtifactInfo("videos.homepage", findArtifactName(imageUrl), "", "png", "1.0"); repoMan.addArtifact(info, imageFile); } } } private VideoInfo createVideo(Row row) { VideoInfo info = new VideoInfo(); Cell name = row.getCell(1); String Name = getValue(name); Cell description = row.getCell(2); String Description = getValue(description); Cell imageurl = row.getCell(3); String Imageurl = getValue(imageurl); Cell categories = row.getCell(4); String Categories = getValue(categories); Cell type = row.getCell(5); String videoType = getValue(type); Cell url = row.getCell(6); String videoUrl = getValue(url); String[] videoTypes = StringUtils.split(videoType,DELIMITER); List<VideoType> videotypes = new ArrayList<VideoType>(8); for (String vidType : videoTypes) { VideoType vtype = new VideoType(); vtype.setType(vidType); vtype.setUrl(videoUrl + "." + vidType); vtype.setCodecs(codecMap.get(vidType)); videotypes.add(vtype); } info.setName(Name); info.setDescription(Description); info.setImageurl(Imageurl); info.setCategories(Categories); info.setVideoList(videotypes); return info; } private static String getValue(Cell cell) { if (Cell.CELL_TYPE_STRING == cell.getCellType()) { return cell.getStringCellValue(); } if (Cell.CELL_TYPE_NUMERIC == cell.getCellType()) { return String.valueOf(cell.getNumericCellValue()); } return null; } private void writesJson(List<VideoInfo> VideoInfo, File file) throws PhrescoException { try { Gson gson = new Gson(); String value = gson.toJson(VideoInfo); BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write(value); writer.close(); } catch (Exception e) { throw new PhrescoException(e); } } private void uploadToRepository(List<VideoInfo> infos) throws PhrescoException { ArtifactInfo info = new ArtifactInfo("videos.homepage", "videoinfo", "", "json", "1.0"); repoMan.addArtifact(info, outFile); } private static String findArtifactName(String fileName){ String name = fileName.substring(0,fileName.lastIndexOf("-")); int index = name.lastIndexOf("/"); String context = name.substring(index + 1); return context; } public static void main(String[] args) throws PhrescoException { File inputFile = new File("D:\\work\\phresco\\agra\\service\\trunk\\phresco-service-runner\\delivery\\tools\\files"); File outFile = new File("D:\\work\\phresco\\agra\\service\\trunk\\phresco-service-runner\\delivery\\tools\\files"); File videoDir = new File("D:\\work\\phresco\\Phresco-binaries\\"); VideoInfoGenerator videoGen = new VideoInfoGenerator(inputFile, outFile,videoDir); videoGen.publish(); } }