Ejemplo n.º 1
0
    # Gapless support via comments
    "TIT1": "grouping",
    # Sorting
    "TSOA": "album sort order",
    "TSOT": "title sort order",
    "TSOP": "artist sort order",
    # Miscellaneous
    "TCOP": "copyright",
    "TPE3": "conductor",
    "TLEN": "length",
    "TEXT": "lyricist",
    "TENC": "encoder",
    "TSSE": "encoder settings",
}

norm_frame_mapping = dictionary_reverse(id3_frame_mapping)


class ID3Tag(Tag):
    """The Tag implementation for ID3 tags"""

    def __init__(self, tag, lang="eng", encoding=encodings["utf-8"]):
        super(ID3Tag, self).__init__(tag)
        self.lang = lang
        if encoding in encodings:
            self.encoding = encodings[encoding]
        elif encoding <= 3 and encoding >= 0:
            self.encoding = encoding
        else:
            raise TagException("Encoding %s not supported by ID3" % encoding)
Ejemplo n.º 2
0
    "\xa9grp": "grouping",
    # Sorting
    "soal": "album sort order",
    "sonm": "title sort order",
    "soaa": "album artist sort order",
    "soar": "artist sort order",
    "soco": "composer sort order",
    # Miscellaneous
    "\xa9cmt": "comment",
    "cprt": "copyright",
    "tvsh": "show",
    "purd": "purchased",
    "apID": "apple id",
}

norm_frame_mapping = dictionary_reverse(m4a_frame_mapping)


class M4ATag(Tag):
    """The Tag implementation for m4a (iTunes) tags"""

    def _get_real_key(self, key):
        if key in norm_frame_mapping:
            return norm_frame_mapping[key]
        else:
            return key

    def _make_date_from_year(self, year):
        return "%s-01-01T07:00:00Z" % year

    def _get_year_from_date(self, date):