95 lines
2.2 KiB
Python
95 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
|
|
Copyright (C) 2014-2016 bromix (plugin.video.youtube)
|
|
Copyright (C) 2016-2018 plugin.video.youtube
|
|
|
|
SPDX-License-Identifier: GPL-2.0-only
|
|
See LICENSES/GPL-2.0-only for more information.
|
|
"""
|
|
|
|
from .base_item import BaseItem
|
|
|
|
try:
|
|
from six.moves import html_parser
|
|
|
|
unescape = html_parser.HTMLParser().unescape
|
|
except AttributeError:
|
|
import html
|
|
|
|
unescape = html.unescape
|
|
|
|
|
|
class AudioItem(BaseItem):
|
|
def __init__(self, name, uri, image=u'', fanart=u''):
|
|
BaseItem.__init__(self, name, uri, image, fanart)
|
|
self._duration = None
|
|
self._track_number = None
|
|
self._year = None
|
|
self._genre = None
|
|
self._album = None
|
|
self._artist = None
|
|
self._title = self.get_name()
|
|
self._rating = None
|
|
|
|
def set_rating(self, rating):
|
|
self._rating = float(rating)
|
|
|
|
def get_rating(self):
|
|
return self._rating
|
|
|
|
def set_title(self, title):
|
|
try:
|
|
title = unescape(title)
|
|
except:
|
|
pass
|
|
self._title = title
|
|
|
|
def get_title(self):
|
|
return self._title
|
|
|
|
def set_artist_name(self, artist_name):
|
|
self._artist = artist_name
|
|
|
|
def get_artist_name(self):
|
|
return self._artist
|
|
|
|
def set_album_name(self, album_name):
|
|
self._album = album_name
|
|
|
|
def get_album_name(self):
|
|
return self._album
|
|
|
|
def set_genre(self, genre):
|
|
self._genre = genre
|
|
|
|
def get_genre(self):
|
|
return self._genre
|
|
|
|
def set_year(self, year):
|
|
self._year = int(year)
|
|
|
|
def set_year_from_datetime(self, date_time):
|
|
self.set_year(date_time.year)
|
|
|
|
def get_year(self):
|
|
return self._year
|
|
|
|
def set_track_number(self, track_number):
|
|
self._track_number = int(track_number)
|
|
|
|
def get_track_number(self):
|
|
return self._track_number
|
|
|
|
def set_duration_from_milli_seconds(self, milli_seconds):
|
|
self.set_duration_from_seconds(int(milli_seconds) // 1000)
|
|
|
|
def set_duration_from_seconds(self, seconds):
|
|
self._duration = int(seconds)
|
|
|
|
def set_duration_from_minutes(self, minutes):
|
|
self.set_duration_from_seconds(int(minutes) * 60)
|
|
|
|
def get_duration(self):
|
|
return self._duration
|