@@ -135,7 +135,10 @@ def copy(source, target):
135135 'Choices are {}' .format (pref_method ,
136136 list (method_map .keys ())))
137137 try :
138- category = self ._category
138+ # todo fix this, proper category mapping,
139+ # e.g. 'music' <-> bb.MusicSubmission
140+ category = ('music' if isinstance (self , AudioSubmission )
141+ else 'movie' )
139142 except AttributeError :
140143 log .warning ("{} does not have a category attribute" ,
141144 type (self ).__name__ )
@@ -1003,7 +1006,7 @@ def _render_tags(self):
10031006 'rid' : tags .get ('musicbrainz_albumid' , [None ])[0 ],
10041007 'format' : type (tags ).__name__ ,
10051008 'bitrate' : tags .info .bitrate ,
1006- 'bitrate_mode' : tags .info . bitrate_mode ,
1009+ 'bitrate_mode' : getattr ( tags .info , ' bitrate_mode' , None ) ,
10071010 'bits_per_sample' : getattr (tags .info , 'bits_per_sample' ,
10081011 None ),
10091012 'encoder_settings' : getattr (tags .info , 'encoder_settings' ,
@@ -1017,7 +1020,8 @@ def _render_release(self):
10171020 log .info ('Found MusicBrainz release in tags' )
10181021 release = mb .musicbrainzngs .get_release_by_id (
10191022 tags ['rid' ],
1020- includes = ['release-groups' , 'media' , 'recordings' ])['release' ]
1023+ includes = ['release-groups' , 'media' , 'recordings' ,
1024+ 'url-rels' ,])['release' ]
10211025 rg = mb .musicbrainzngs .get_release_group_by_id (
10221026 release ['release-group' ]['id' ],
10231027 includes = ['tags' , 'artist-credits' ])['release-group' ]
@@ -1034,8 +1038,9 @@ def _render_release(self):
10341038 # identify self:
10351039 # - num tracks todo
10361040 # - scan for mb tags
1037- #print('rg', rg)
1038- #print('r', release)
1041+ print ('rg' , rg )
1042+ print ('r' , release )
1043+ # todo: assert # of tracks equal
10391044
10401045 return release , rg
10411046
@@ -1067,38 +1072,76 @@ def _render_year(self):
10671072
10681073 @form_field ('tags' )
10691074 def _render_form_tags (self ):
1070- _defaults = ['acoustic' ,'alternative' ,'ambient' ,'blues' ,'classic.rock' ,
1071- 'classical' ,'country' ,'dance' ,'dubstep' ,'electronic' ,
1072- 'experimental' ,'folk' ,'funk' ,'hardcore' ,'heavy.metal' ,
1073- 'hip.hop' ,'indie' ,'indie.pop' ,'instrumental' ,'jazz' ,
1074- 'metal' ,'pop' ,'post.hardcore' ,'post.rock' ,
1075- 'progressive.rock' ,'psychedelic' ,'punk' ,'reggae' ,'rock' ,
1076- 'soul' ,'trance' ,'trip.hop' ]
1077-
1078- return self ['summary' ]['tags' ]
1075+ _defaults = ['acoustic' , 'alternative' , 'ambient' , 'blues' ,
1076+ 'classic.rock' , 'classical' , 'country' , 'dance' ,
1077+ 'dubstep' , 'electronic' , 'experimental' , 'folk' , 'funk' ,
1078+ 'hardcore' , 'heavy.metal' , 'hip.hop' , 'indie' ,
1079+ 'indie.pop' , 'instrumental' , 'jazz' , 'metal' , 'pop' ,
1080+ 'post.hardcore' , 'post.rock' , 'progressive.rock' ,
1081+ 'psychedelic' , 'punk' , 'reggae' , 'rock' , 'soul' , 'trance' ,
1082+ 'trip.hop' ]
1083+ tags = self ['summary' ]['tags' ]
1084+ return list (set (format_tag (tag ) for tag in tags ))
10791085
10801086 def _render_section_information (self ):
1081- pass
1087+ release , rg = self ['release' ]
1088+ urls = release ['url-relation-list' ]
1089+ return dedent ("""\
1090+ [b]Title[/b]: {title} ({links})
1091+ [b]Artist(s)[/b]: {artist}
1092+ [b]MusicBrainz[/b]: [url]{releasegroup}[/url]
1093+ [b]Type[/b]: {type}
1094+ [b]Original release[/b]: {firstrel}""" ).format (
1095+ title = rg ['title' ],
1096+ artist = rg ['artist-credit-phrase' ],
1097+ links = ", " .join (bb .link (u ['type' ], u ['target' ]) for u in urls ),
1098+ releasegroup = "https://musicbrainz.org/release-group/" + rg ['id' ],
1099+ type = rg ['type' ],
1100+ firstrel = rg ['first-release-date' ],
1101+ )
10821102
10831103 def _render_section_tracklist (self ):
10841104 s = ""
10851105 for title , tracks in self ['tracklist' ]:
10861106 s += title
1087- s += "[table]"
1088- for i , tt , l in tracks :
1089- s += "[tr]"
1090- s += "[td]" + i + "[/td]"
1091- s += "[td]" + tt + "[/td]"
1092- s += "[td]" + str (l ) + "[/td]"
1093- s += "[/tr]"
1094- s += "[/table]"
1107+ s += bb .table ("" .join (bb .tr (bb .td (i ) +
1108+ bb .td (tt ) +
1109+ bb .td (str (l ).split ("." )[0 ]))
1110+ for i , tt , l in tracks ))
1111+
10951112 return s
10961113
10971114 @form_field ('album_desc' )
10981115 def _render_description (self ):
1099- sections = [("Information" , self ['section_information' ]),
1116+ sections = [("Information" , self ['section_information' ]),]
1117+
1118+ description = "\n " .join (bb .section (* s ) for s in sections )
1119+ description += bb .release
1120+
1121+ return description
1122+
1123+ @form_field ('release_desc' )
1124+ def _render_release_desc (self ):
1125+ release , rg = self ['release' ]
1126+ tags = self ['tags' ]
1127+ s = dedent ("""\
1128+ [b]MusicBrainz[/b]: [url]{release}[/url]
1129+ [b]Status[/b]: {status}
1130+ [b]Release[/b]: {thisrel} ({country})""" ).format (
1131+ release = "https://musicbrainz.org/release/" + release ['id' ],
1132+ status = release ['status' ],
1133+ thisrel = release ['date' ],
1134+ country = release ['country' ],
1135+ )
1136+
1137+ if tags ['encoder_settings' ]:
1138+ s += "\n [b]Encoder settings[/b]: " + tags ['encoder_settings' ]
1139+
1140+
1141+ sections = [("Release Information" , s ),
11001142 ("Track list" , self ['section_tracklist' ])]
11011143
1144+
11021145 description = "\n " .join (bb .section (* s ) for s in sections )
11031146 description += bb .release
11041147
@@ -1111,3 +1154,7 @@ def _render_artist(self):
11111154 @form_field ('title' )
11121155 def _render_title (self ):
11131156 return self ['summary' ]['title' ]
1157+
1158+ @form_field ('scene' , 'checkbox' )
1159+ def _render_scene (self ):
1160+ return False
0 commit comments