models.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. class Model:
  2. def __init__(self, id_=None):
  3. self.id = id_
  4. def as_fields_and_values(self):
  5. fields, values = [], []
  6. for attr, val in self.__dict__.items():
  7. if attr[0] == '_' or val is None:
  8. continue
  9. fields.append(attr)
  10. values.append(val)
  11. return fields, values
  12. class MusicFolder(Model):
  13. STATUS_UNKNOWN = 0
  14. STATUS_FOUND = 1
  15. STATUS_UNAVAILABLE = 2
  16. STATUS_DELETED = 3
  17. def __init__(self, id_=None, path_=None, last_scan=None, status=None):
  18. super().__init__(id_)
  19. self.path = path_
  20. self.last_scan = last_scan
  21. self.status = status if status is not None else MusicFolder.STATUS_UNKNOWN
  22. class Profile(Model):
  23. def __init__(self, id_=None, name=None, created_on=None):
  24. super().__init__(id_)
  25. self.name = name
  26. self.created_on = created_on
  27. class Tag(Model):
  28. def __init__(self, id_=None, label=None, color=None, deleted=0):
  29. super().__init__(id_)
  30. self.label = label
  31. self.color = color
  32. self.deleted = deleted
  33. class Track(Model):
  34. def __init__(self, id_=None, profile_id=None, music_folder_id=None, name=None,
  35. format_=None, artist=None, album=None, track_num=None, year=None,
  36. duration=None, size=None, note=None, status=None, path_=None,
  37. hash_=None, origin=None):
  38. super().__init__(id_)
  39. self.profile_id = profile_id
  40. self.music_folder_id = music_folder_id
  41. self.name = name
  42. self.format = format_
  43. self.artist = artist
  44. self.album = album
  45. self.track_num = track_num
  46. self.year = year
  47. self.duration = duration
  48. self.size = size
  49. self.note = note
  50. self.status = status
  51. self.path = path_
  52. self.hash = hash_
  53. self.origin = origin
  54. class TrackTag(Model):
  55. def __init__(self, id_=None, track_id=None, tag_id=None):
  56. super().__init__(id_)
  57. self.track_id = track_id
  58. self.tag_id = tag_id
  59. class Session(Model):
  60. def __init__(self, id_=None, name=None, date_=None, notes=None):
  61. super().__init__(id_)
  62. self.name = name
  63. self.date = date_
  64. self.notes = notes