chore(api): rename file model fields
- Removed checksum field - Removed ftype field - Removed silan_check field
This commit is contained in:
parent
05ca410453
commit
f2e947f05f
3 changed files with 375 additions and 360 deletions
|
@ -20,8 +20,8 @@ class TestScheduleViewSet(APITestCase):
|
|||
mime="audio/mp3",
|
||||
filepath=AUDIO_FILENAME,
|
||||
length=timedelta(seconds=40.86),
|
||||
cuein=timedelta(seconds=0),
|
||||
cueout=timedelta(seconds=40.8131),
|
||||
cue_in=timedelta(seconds=0),
|
||||
cue_out=timedelta(seconds=40.8131),
|
||||
)
|
||||
show = baker.make(
|
||||
"schedule.ShowInstance",
|
||||
|
@ -32,7 +32,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
"schedule.Schedule",
|
||||
starts=datetime.now(tz=timezone.utc),
|
||||
ends=datetime.now(tz=timezone.utc) + file.length,
|
||||
cue_out=file.cueout,
|
||||
cue_out=file.cue_out,
|
||||
instance=show,
|
||||
file=file,
|
||||
)
|
||||
|
@ -43,7 +43,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
self.assertEqual(
|
||||
dateparse.parse_datetime(result[0]["ends"]), schedule_item.ends
|
||||
)
|
||||
self.assertEqual(dateparse.parse_duration(result[0]["cue_out"]), file.cueout)
|
||||
self.assertEqual(dateparse.parse_duration(result[0]["cue_out"]), file.cue_out)
|
||||
|
||||
def test_schedule_item_trunc(self):
|
||||
file = baker.make(
|
||||
|
@ -51,8 +51,8 @@ class TestScheduleViewSet(APITestCase):
|
|||
mime="audio/mp3",
|
||||
filepath=AUDIO_FILENAME,
|
||||
length=timedelta(seconds=40.86),
|
||||
cuein=timedelta(seconds=0),
|
||||
cueout=timedelta(seconds=40.8131),
|
||||
cue_in=timedelta(seconds=0),
|
||||
cue_out=timedelta(seconds=40.8131),
|
||||
)
|
||||
show = baker.make(
|
||||
"schedule.ShowInstance",
|
||||
|
@ -83,8 +83,8 @@ class TestScheduleViewSet(APITestCase):
|
|||
mime="audio/mp3",
|
||||
filepath=AUDIO_FILENAME,
|
||||
length=timedelta(seconds=40.86),
|
||||
cuein=timedelta(seconds=0),
|
||||
cueout=timedelta(seconds=40.8131),
|
||||
cue_in=timedelta(seconds=0),
|
||||
cue_out=timedelta(seconds=40.8131),
|
||||
)
|
||||
show = baker.make(
|
||||
"schedule.ShowInstance",
|
||||
|
@ -95,7 +95,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
"schedule.Schedule",
|
||||
starts=datetime.now(tz=timezone.utc),
|
||||
ends=datetime.now(tz=timezone.utc) + file.length,
|
||||
cue_out=file.cueout,
|
||||
cue_out=file.cue_out,
|
||||
instance=show,
|
||||
file=file,
|
||||
)
|
||||
|
@ -103,7 +103,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
"schedule.Schedule",
|
||||
starts=show.ends + timedelta(minutes=1),
|
||||
ends=show.ends + timedelta(minutes=1) + file.length,
|
||||
cue_out=file.cueout,
|
||||
cue_out=file.cue_out,
|
||||
instance=show,
|
||||
file=file,
|
||||
)
|
||||
|
@ -116,7 +116,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
self.assertEqual(
|
||||
dateparse.parse_datetime(result[0]["ends"]), schedule_item.ends
|
||||
)
|
||||
self.assertEqual(dateparse.parse_duration(result[0]["cue_out"]), file.cueout)
|
||||
self.assertEqual(dateparse.parse_duration(result[0]["cue_out"]), file.cue_out)
|
||||
|
||||
def test_schedule_item_range(self):
|
||||
file = baker.make(
|
||||
|
@ -124,8 +124,8 @@ class TestScheduleViewSet(APITestCase):
|
|||
mime="audio/mp3",
|
||||
filepath=AUDIO_FILENAME,
|
||||
length=timedelta(seconds=40.86),
|
||||
cuein=timedelta(seconds=0),
|
||||
cueout=timedelta(seconds=40.8131),
|
||||
cue_in=timedelta(seconds=0),
|
||||
cue_out=timedelta(seconds=40.8131),
|
||||
)
|
||||
filter_point = datetime.now(tz=timezone.utc)
|
||||
|
||||
|
@ -138,7 +138,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
"schedule.Schedule",
|
||||
starts=filter_point,
|
||||
ends=filter_point + file.length,
|
||||
cue_out=file.cueout,
|
||||
cue_out=file.cue_out,
|
||||
instance=show,
|
||||
file=file,
|
||||
)
|
||||
|
@ -146,7 +146,7 @@ class TestScheduleViewSet(APITestCase):
|
|||
"schedule.Schedule",
|
||||
starts=filter_point - timedelta(minutes=5),
|
||||
ends=filter_point - timedelta(minutes=5) + file.length,
|
||||
cue_out=file.cueout,
|
||||
cue_out=file.cue_out,
|
||||
instance=show,
|
||||
file=file,
|
||||
)
|
||||
|
|
|
@ -9,12 +9,38 @@ class File(models.Model):
|
|||
db_column="track_type",
|
||||
)
|
||||
|
||||
name = models.CharField(max_length=255)
|
||||
mime = models.CharField(max_length=255)
|
||||
ftype = models.CharField(max_length=128)
|
||||
owner = models.ForeignKey(
|
||||
"core.User",
|
||||
models.DO_NOTHING,
|
||||
blank=True,
|
||||
null=True,
|
||||
)
|
||||
|
||||
class ImportStatus(models.IntegerChoices):
|
||||
SUCCESS = 0, "Success"
|
||||
PENDING = 1, "Pending"
|
||||
FAILED = 2, "Failed"
|
||||
|
||||
import_status = models.IntegerField(
|
||||
choices=ImportStatus.choices,
|
||||
default=ImportStatus.PENDING,
|
||||
)
|
||||
|
||||
filepath = models.TextField(blank=True, null=True)
|
||||
import_status = models.IntegerField()
|
||||
currently_accessing = models.IntegerField(db_column="currentlyaccessing")
|
||||
size = models.IntegerField(db_column="filesize")
|
||||
exists = models.BooleanField(blank=True, null=True, db_column="file_exists")
|
||||
mime = models.CharField(max_length=255)
|
||||
md5 = models.CharField(max_length=32, blank=True, null=True)
|
||||
|
||||
hidden = models.BooleanField(blank=True, null=True)
|
||||
accessed = models.IntegerField(db_column="currentlyaccessing")
|
||||
scheduled = models.BooleanField(blank=True, null=True, db_column="is_scheduled")
|
||||
part_of_list = models.BooleanField(blank=True, null=True, db_column="is_playlist")
|
||||
|
||||
created_at = models.DateTimeField(blank=True, null=True, db_column="utime")
|
||||
updated_at = models.DateTimeField(blank=True, null=True, db_column="mtime")
|
||||
last_played_at = models.DateTimeField(blank=True, null=True, db_column="lptime")
|
||||
|
||||
edited_by = models.ForeignKey(
|
||||
"core.User",
|
||||
on_delete=models.DO_NOTHING,
|
||||
|
@ -23,73 +49,76 @@ class File(models.Model):
|
|||
related_name="edited_files",
|
||||
db_column="editedby",
|
||||
)
|
||||
mtime = models.DateTimeField(blank=True, null=True)
|
||||
utime = models.DateTimeField(blank=True, null=True)
|
||||
lptime = models.DateTimeField(blank=True, null=True)
|
||||
md5 = models.CharField(max_length=32, blank=True, null=True)
|
||||
track_title = models.CharField(max_length=512, blank=True, null=True)
|
||||
artist_name = models.CharField(max_length=512, blank=True, null=True)
|
||||
|
||||
# Audio
|
||||
bit_rate = models.IntegerField(blank=True, null=True)
|
||||
sample_rate = models.IntegerField(blank=True, null=True)
|
||||
format = models.CharField(max_length=128, blank=True, null=True)
|
||||
length = models.DurationField(blank=True, null=True)
|
||||
album_title = models.CharField(max_length=512, blank=True, null=True)
|
||||
genre = models.CharField(max_length=64, blank=True, null=True)
|
||||
comments = models.TextField(blank=True, null=True)
|
||||
year = models.CharField(max_length=16, blank=True, null=True)
|
||||
track_number = models.IntegerField(blank=True, null=True)
|
||||
format = models.CharField(max_length=128, blank=True, null=True) # ?
|
||||
channels = models.IntegerField(blank=True, null=True)
|
||||
url = models.CharField(max_length=1024, blank=True, null=True)
|
||||
bpm = models.IntegerField(blank=True, null=True)
|
||||
rating = models.CharField(max_length=8, blank=True, null=True)
|
||||
encoded_by = models.CharField(max_length=255, blank=True, null=True)
|
||||
disc_number = models.CharField(max_length=8, blank=True, null=True)
|
||||
mood = models.CharField(max_length=64, blank=True, null=True)
|
||||
label = models.CharField(max_length=512, blank=True, null=True)
|
||||
composer = models.CharField(max_length=512, blank=True, null=True)
|
||||
encoder = models.CharField(max_length=64, blank=True, null=True)
|
||||
checksum = models.CharField(max_length=256, blank=True, null=True)
|
||||
lyrics = models.TextField(blank=True, null=True)
|
||||
orchestra = models.CharField(max_length=512, blank=True, null=True)
|
||||
conductor = models.CharField(max_length=512, blank=True, null=True)
|
||||
lyricist = models.CharField(max_length=512, blank=True, null=True)
|
||||
original_lyricist = models.CharField(max_length=512, blank=True, null=True)
|
||||
radio_station_name = models.CharField(max_length=512, blank=True, null=True)
|
||||
info_url = models.CharField(max_length=512, blank=True, null=True)
|
||||
artist_url = models.CharField(max_length=512, blank=True, null=True)
|
||||
audio_source_url = models.CharField(max_length=512, blank=True, null=True)
|
||||
radio_station_url = models.CharField(max_length=512, blank=True, null=True)
|
||||
buy_this_url = models.CharField(max_length=512, blank=True, null=True)
|
||||
isrc_number = models.CharField(max_length=512, blank=True, null=True)
|
||||
catalog_number = models.CharField(max_length=512, blank=True, null=True)
|
||||
original_artist = models.CharField(max_length=512, blank=True, null=True)
|
||||
copyright = models.CharField(max_length=512, blank=True, null=True)
|
||||
report_datetime = models.CharField(max_length=32, blank=True, null=True)
|
||||
report_location = models.CharField(max_length=512, blank=True, null=True)
|
||||
report_organization = models.CharField(max_length=512, blank=True, null=True)
|
||||
subject = models.CharField(max_length=512, blank=True, null=True)
|
||||
contributor = models.CharField(max_length=512, blank=True, null=True)
|
||||
language = models.CharField(max_length=512, blank=True, null=True)
|
||||
file_exists = models.BooleanField(blank=True, null=True)
|
||||
length = models.DurationField(blank=True, null=True)
|
||||
|
||||
bpm = models.IntegerField(blank=True, null=True) # ?
|
||||
replay_gain = models.DecimalField(
|
||||
max_digits=8, decimal_places=2, blank=True, null=True
|
||||
)
|
||||
owner = models.ForeignKey(
|
||||
"core.User",
|
||||
on_delete=models.DO_NOTHING,
|
||||
max_digits=8,
|
||||
decimal_places=2,
|
||||
blank=True,
|
||||
null=True,
|
||||
)
|
||||
cuein = models.DurationField(blank=True, null=True)
|
||||
cueout = models.DurationField(blank=True, null=True)
|
||||
silan_check = models.BooleanField(blank=True, null=True)
|
||||
hidden = models.BooleanField(blank=True, null=True)
|
||||
is_scheduled = models.BooleanField(blank=True, null=True)
|
||||
is_playlist = models.BooleanField(blank=True, null=True)
|
||||
filesize = models.IntegerField()
|
||||
description = models.CharField(max_length=512, blank=True, null=True)
|
||||
cue_in = models.DurationField(blank=True, null=True, db_column="cuein")
|
||||
cue_out = models.DurationField(blank=True, null=True, db_column="cueout")
|
||||
|
||||
# Metadata
|
||||
name = models.CharField(max_length=255) # ?
|
||||
description = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
|
||||
artwork = models.CharField(max_length=512, blank=True, null=True)
|
||||
|
||||
artist_name = models.CharField(max_length=512, blank=True, null=True)
|
||||
artist_url = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
original_artist = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
album_title = models.CharField(max_length=512, blank=True, null=True)
|
||||
track_title = models.CharField(max_length=512, blank=True, null=True)
|
||||
genre = models.CharField(max_length=64, blank=True, null=True)
|
||||
mood = models.CharField(max_length=64, blank=True, null=True)
|
||||
date = models.CharField(max_length=16, blank=True, null=True, db_column="year")
|
||||
track_number = models.IntegerField(blank=True, null=True)
|
||||
disc_number = models.CharField(max_length=8, blank=True, null=True) # ?
|
||||
comment = models.TextField(blank=True, null=True, db_column="comments")
|
||||
language = models.CharField(max_length=512, blank=True, null=True)
|
||||
label = models.CharField(max_length=512, blank=True, null=True)
|
||||
copyright = models.CharField(max_length=512, blank=True, null=True)
|
||||
composer = models.CharField(max_length=512, blank=True, null=True)
|
||||
conductor = models.CharField(max_length=512, blank=True, null=True)
|
||||
orchestra = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
encoder = models.CharField(max_length=64, blank=True, null=True)
|
||||
encoded_by = models.CharField(max_length=255, blank=True, null=True) # ?
|
||||
isrc = models.CharField(
|
||||
max_length=512,
|
||||
blank=True,
|
||||
null=True,
|
||||
db_column="isrc_number",
|
||||
)
|
||||
|
||||
lyrics = models.TextField(blank=True, null=True) # ?
|
||||
lyricist = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
original_lyricist = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
|
||||
subject = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
contributor = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
rating = models.CharField(max_length=8, blank=True, null=True) # ?
|
||||
url = models.CharField(max_length=1024, blank=True, null=True) # ?
|
||||
info_url = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
audio_source_url = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
buy_this_url = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
catalog_number = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
|
||||
radio_station_name = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
radio_station_url = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
|
||||
report_datetime = models.CharField(max_length=32, blank=True, null=True) # ?
|
||||
report_location = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
report_organization = models.CharField(max_length=512, blank=True, null=True) # ?
|
||||
|
||||
def get_owner(self):
|
||||
return self.owner
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue