1 package user.jobengine.server.steps;
\r
3 import java.nio.file.Paths;
\r
5 import org.apache.logging.log4j.LogManager;
\r
6 import org.apache.logging.log4j.Logger;
\r
8 import com.ibm.nosql.json.api.BasicDBObject;
\r
9 import com.ibm.nosql.json.api.DB;
\r
10 import com.ibm.nosql.json.api.DBCollection;
\r
12 import user.commons.MediaCubeMarker;
\r
13 import user.commons.MediaCubeUndoMarker;
\r
14 import user.commons.nosql.NoSQLUtils;
\r
15 import user.jobengine.db.IItemManager;
\r
16 import user.jobengine.db.Media;
\r
17 import user.jobengine.server.IJobEngine;
\r
18 import user.jobengine.server.IJobRuntime;
\r
20 public class CreateMissingLowresStep extends JobStep {
\r
21 private static final Logger logger = LogManager.getLogger();
\r
22 private MediaCubeMarker marker;
\r
25 public Object[] execute(String localHiresPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {
\r
26 Object[] result = new Object[] { null, null, "%s", null, 0, true };
\r
27 marker = (MediaCubeMarker) jobRuntime.getSessionMarker();
\r
28 DB db = NoSQLUtils.getNoSQLDB();
\r
29 DBCollection collection = db.getCollection("missing_lowres");
\r
30 IItemManager manager = jobEngine.getItemManager();
\r
31 Media media = getFirstUntranscodedMedia(manager, collection);
\r
34 if (media == null) {
\r
35 logger.info(new MediaCubeUndoMarker(marker.getSessionID()), "Nincs feldolgozandó hiány.");
\r
36 // throw new Exception("Nincs feldolgozandó hiány.");
\r
41 String name = media.getMediaFileRealName();
\r
43 ArchiveItem archiveItem = new ArchiveItem();
\r
44 archiveItem.setMediaFile(Paths.get(localHiresPath, name).toString());
\r
45 result[1] = archiveItem;
\r
46 collection.save(new BasicDBObject("name", name));
\r
47 logger.info(marker, "Hiányzó lowres mediaId: {}", media.getId());
\r
49 } catch (Exception e) {
\r
51 logger.info(marker, e.getMessage());
\r
59 private Media getFirstUntranscodedMedia(IItemManager manager, DBCollection collection) {
\r
60 Media[] result = new Media[] { null };
\r
61 //String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS WHERE HOUSEID like 'M%' or HOUSEID like 'P%' or HOUSEID like 'R%' ORDER BY modified DESC FETCH FIRST ROW ONLY";
\r
62 String query = "SELECT mediaid FROM VW_MISSING_PROXY_IDS";
\r
63 manager.executeQuery(query, rs -> {
\r
65 long mediaId = rs.getLong(1);
\r
66 Media media = manager.getMedia(mediaId);
\r
67 //a nevgeneralas miatt az eredeti MediaFilesName nem jo, a pontos nev kell nekunk
\r
68 String name = media.getMediaFileRealName();
\r
69 long existing = collection.find(new BasicDBObject("name", name)).count();
\r
74 } catch (Exception e) {
\r