Compare commits

..

No commits in common. "8f0dd9d248f28dc77dc851330de37baaeb0e8cda" and "e983ca64bd8d0cfc7259c64d6b4ba2a3adab19d3" have entirely different histories.

5 changed files with 18 additions and 37 deletions

View File

@ -1,5 +1,3 @@
import math
from django.contrib import admin from django.contrib import admin
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -31,7 +29,7 @@ class SoundInline(admin.TabularInline):
def audio(self, obj): def audio(self, obj):
return mark_safe('<audio src="{}" controls></audio>'.format(obj.file.url)) return mark_safe('<audio src="{}" controls></audio>'.format(obj.file.url))
audio.short_description = _('Audio') audio.short_descripton = _('Audio')
def get_queryset(self, request): def get_queryset(self, request):
return super().get_queryset(request).available() return super().get_queryset(request).available()
@ -62,7 +60,7 @@ class SoundAdmin(admin.ModelAdmin):
def audio(self, obj): def audio(self, obj):
return mark_safe('<audio src="{}" controls></audio>'.format(obj.file.url)) return mark_safe('<audio src="{}" controls></audio>'.format(obj.file.url))
audio.short_description = _('Audio') audio.short_descripton = _('Audio')
@admin.register(Track) @admin.register(Track)
@ -70,7 +68,7 @@ class TrackAdmin(admin.ModelAdmin):
def tag_list(self, obj): def tag_list(self, obj):
return u", ".join(o.name for o in obj.tags.all()) return u", ".join(o.name for o in obj.tags.all())
list_display = ['pk', 'artist', 'title', 'tag_list', 'episode', 'sound', 'ts'] list_display = ['pk', 'artist', 'title', 'tag_list', 'episode', 'sound', 'timestamp']
list_editable = ['artist', 'title'] list_editable = ['artist', 'title']
list_filter = ['artist', 'title', 'tags'] list_filter = ['artist', 'title', 'tags']
@ -82,15 +80,4 @@ class TrackAdmin(admin.ModelAdmin):
# TODO on edit: readonly_fields = ['episode', 'sound'] # TODO on edit: readonly_fields = ['episode', 'sound']
def ts(self, obj):
ts = obj.timestamp
if ts is None:
return ''
h = math.floor(ts / 3600)
m = math.floor((ts - h) / 60)
s = ts-h*3600-m*60
return '{:0>2}:{:0>2}:{:0>2}'.format(h,m,s)
ts.short_description = _('timestamp')

View File

@ -105,8 +105,7 @@ class SoundFile:
self.find_episode(program) self.find_episode(program)
sound.save() sound.save()
if self.info is not None:
# check for playlist
self.find_playlist(sound) self.find_playlist(sound)
return sound return sound
@ -176,12 +175,12 @@ class SoundFile:
""" """
if sound is None: if sound is None:
sound = self.sound sound = self.sound
if sound.track_set.count() > 1:
if sound.track_set.count():
return return
# import playlist # import playlist
path_noext, ext = os.path.splitext(self.sound.file.path) path = os.path.splitext(self.sound.file.path)[0] + '.csv'
path = path_noext + '.csv'
if os.path.exists(path): if os.path.exists(path):
PlaylistImport(path, sound=sound).run() PlaylistImport(path, sound=sound).run()
# use metadata # use metadata
@ -190,18 +189,14 @@ class SoundFile:
self.read_file_info() self.read_file_info()
if self.info.tags: if self.info.tags:
tags = self.info.tags tags = self.info.tags
title, artist, album, year = tuple( info = '{} ({})'.format(tags.get('album'), tags.get('year')) \
t and ', '.join(t) for t in ( if ('album' and 'year' in tags) else tags.get('album') \
tags.get(k) for k in ('title', 'artist', 'album', 'year')) if 'album' in tags else tags.get('year', '')
)
title = title or (self.path_info and self.path_info.get('name')) or \
os.path.basename(path_noext)
info = '{} ({})'.format(album, year) if album and year else \
album or year or ''
track = Track(sound=sound, track = Track(sound=sound,
position=int(tags.get('tracknumber', 0)), position=int(tags.get('tracknumber', 0)),
title=title, title=tags.get('title', self.path_info['name']),
artist=artist or _('unknown'), artist=tags.get('artist', _('unknown')),
info=info) info=info)
track.save() track.save()

View File

@ -126,13 +126,12 @@ class Monitor:
def log(self, **kwargs): def log(self, **kwargs):
""" Create a log using **kwargs, and print info """ """ Create a log using **kwargs, and print info """
kwargs.setdefault('station', self.station)
kwargs.setdefault('date', tz.now())
if self.__last_log_kwargs == kwargs: if self.__last_log_kwargs == kwargs:
return return
self.__last_log_kwargs = kwargs self.__last_log_kwargs = kwargs
kwargs.setdefault('station', self.station)
kwargs.setdefault('date', tz.now())
log = Log(**kwargs) log = Log(**kwargs)
log.save() log.save()
log.print() log.print()

View File

@ -1,5 +1,5 @@
from django.contrib import admin from django.contrib import admin
from django.utils.translation import gettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from . import viewsets from . import viewsets
from aircox.viewsets import SoundViewSet from aircox.viewsets import SoundViewSet

View File

@ -1,4 +1,4 @@
from django.utils.translation import gettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView from django.views.generic import TemplateView
from aircox.views.admin import AdminMixin from aircox.views.admin import AdminMixin