1
0

mediaItem.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const DatabaseModel = require("./DatabaseModel.js").DatabaseModel;
  2. function MediaFileModel() {
  3. DatabaseModel.call(this);
  4. this.path = "";
  5. this.md5sum = "";
  6. this.fixedSum = "";
  7. this.date = null;
  8. this.version = 0;
  9. this.inaccessible = 0;
  10. this.updateVersion();
  11. }
  12. MediaFileModel.prototype = Object.create(DatabaseModel.prototype);
  13. MediaFileModel.prototype.getTableName = function() {
  14. return "mediaFile";
  15. }
  16. MediaFileModel.prototype.createOrUpdateBase = async function(dbHelper) {
  17. await dbHelper.runSql(`CREATE TABLE IF NOT EXISTS 'mediaFile' (
  18. path STRING NOT NULL,
  19. md5sum varchar(32) NOT NULL,
  20. fixedSum varchar(32) NOT NULL,
  21. date DateTime NOT NULL,
  22. inaccessible DateTime NOT NULL,
  23. version integer NOT NULL,
  24. PRIMARY KEY (path, md5sum))`);
  25. }
  26. MediaFileModel.prototype.describe = function() {
  27. return {
  28. "path": this.path,
  29. "md5sum": this.md5sum,
  30. "fixedSum": this.fixedSum,
  31. "date": this.date?.getTime(),
  32. "inaccessible": this.inaccessible,
  33. "version": this.version
  34. };
  35. }
  36. MediaFileModel.prototype.versionColumn = function() { return ""; }
  37. MediaFileModel.prototype.fromDb = function(dbObj) {
  38. this.path = dbObj["path"];
  39. this.md5sum = dbObj["md5sum"];
  40. this.fixedSum = dbObj["fixedSum"];
  41. this.date = new Date(dbObj["date"]);
  42. this.inaccessible = dbObj["inaccessible"] || 0;
  43. this.version = dbObj["fixedSum"];
  44. }
  45. MediaFileModel.prototype.updateVersion = function() {
  46. this.version = Date.now();
  47. }
  48. module.exports.MediaFileModel = MediaFileModel;