104
104
if self.controller.artist:
105
dfr = common.application.store.find(FavoritesItem,
106
FavoritesItem.foreign_id == self.controller.artist.name,
107
FavoritesItem.foreign_class == u'Artist')
105
uri = getattr(self.controller.artist, 'uri', None)
107
dfr = common.application.store.find(FavoritesItem,
108
FavoritesItem.uri == unicode(uri),
109
FavoritesItem.type == u'artist')
111
dfr = common.application.store.find(FavoritesItem,
112
FavoritesItem.foreign_id == self.controller.artist.name,
113
FavoritesItem.foreign_class == u'Artist')
108
114
dfr.addCallback(lambda rs: rs.one())
109
115
dfr.addCallback(self.remove)
114
120
# expecting an AlbumsController
115
121
if self.controller.artist:
116
favorite.foreign_id = self.controller.artist.name
117
favorite.foreign_class = u'Artist'
122
uri = getattr(self.controller.artist, 'uri', None)
124
favorite.uri = unicode(uri)
126
favorite.foreign_id = self.controller.artist.name
127
favorite.foreign_class = u'Artist'
128
favorite.type = u'artist'
118
129
favorite.title = self.controller.artist.name
119
130
self.store(favorite)
121
133
class TrackAddToFavoritesAction(AddToFavoritesAction):
125
if self.controller.album:
126
dfr = common.application.store.find(FavoritesItem,
127
FavoritesItem.foreign_id == self.controller.album.name,
128
FavoritesItem.foreign_class == u'MusicAlbum')
137
if self.controller.track:
138
uri = getattr(self.controller.track, 'uri', None)
140
dfr = common.application.store.find(FavoritesItem,
141
FavoritesItem.uri == unicode(uri),
142
FavoritesItem.type == u'music_track')
144
dfr = common.application.store.find(FavoritesItem,
145
FavoritesItem.foreign_id == self.controller.track.file_path,
146
FavoritesItem.foreign_class == u'MusicTrack')
129
147
dfr.addCallback(lambda rs: rs.one())
130
148
dfr.addCallback(self.remove)
131
elif self.controller.track:
132
dfr = common.application.store.find(FavoritesItem,
133
FavoritesItem.foreign_id == self.controller.track.file_path,
134
FavoritesItem.foreign_class == u'MusicTrack')
149
elif self.controller.album:
150
uri = getattr(self.controller.album, 'uri', None)
152
dfr = common.application.store.find(FavoritesItem,
153
FavoritesItem.uri == unicode(uri),
154
FavoritesItem.type == u'music_album')
156
dfr = common.application.store.find(FavoritesItem,
157
FavoritesItem.foreign_id == self.controller.album.name,
158
FavoritesItem.foreign_class == u'MusicAlbum')
135
159
dfr.addCallback(lambda rs: rs.one())
136
160
dfr.addCallback(self.remove)
139
163
favorite.added_time = datetime.datetime.now()
141
165
# expecting a TracksController
142
if self.controller.album:
143
favorite.foreign_id = self.controller.album.name
144
favorite.foreign_class = u'MusicAlbum'
145
favorite.title = self.controller.album.name
147
elif self.controller.track:
148
favorite.foreign_id = self.controller.track.file_path
149
favorite.foreign_class = u'MusicTrack'
166
if self.controller.track:
167
uri = getattr(self.controller.track, 'uri', None)
169
favorite.uri = unicode(uri)
171
favorite.foreign_id = self.controller.track.file_path
172
favorite.foreign_class = u'MusicTrack'
173
favorite.type = u'music_track'
150
174
favorite.title = self.controller.track.title
151
175
self.store(favorite)
176
elif self.controller.album:
177
uri = getattr(self.controller.album, 'uri', None)
179
favorite.uri = unicode(uri)
181
favorite.foreign_id = self.controller.album.name
182
favorite.foreign_class = u'MusicAlbum'
183
favorite.type = u'music_album'
184
favorite.title = self.controller.album.name
153
187
class PhotoAddToFavoritesAction(AddToFavoritesAction):