Check-in [3c94abea16]
Overview
Comment: | Skip new_streams with undefined title or url |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
3c94abea16ac5d21af3e5a12a98caea5 |
User & Date: | mario on 2014-05-10 21:40:48 |
Other Links: | manifest | tags |
Context
2014-05-11
| ||
01:21 | load Jamendo images in favour of favicons check-in: 6d065627b5 user: mario tags: trunk | |
2014-05-10
| ||
21:40 | Skip new_streams with undefined title or url check-in: 3c94abea16 user: mario tags: trunk | |
2014-05-09
| ||
00:01 | Support /get2/ URLs for albums and playlists now. Genres are queried for /tracks. check-in: 590edd0877 user: mario tags: trunk | |
Changes
Modified channels/_generic.py from [f4b3b96251] to [d2e1c8074b].
︙ | ︙ | |||
181 182 183 184 185 186 187 188 189 190 | # switch stream category, # load data, # update treeview content def load(self, category, force=False): # get data from cache or download if (force or not category in self.streams): new_streams = self.update_streams(category) if new_streams: | > | > > | | > > > > > > > | 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | # switch stream category, # load data, # update treeview content def load(self, category, force=False): # get data from cache or download if (force or not category in self.streams): __print__(dbg.PROC, "load", "update_streams") new_streams = self.update_streams(category) if new_streams: # check and modify entry; # assert that title and url are present modified = [] for row in new_streams: if None in [row.get("title"), row.get("url")]: next try: modified.append( self.postprocess(row) ) except Exception as e: __print__(e, dbg.ERR, row) new_streams = modified # don't lose forgotten streams if conf.retain_deleted: self.streams[category] = new_streams + self.deleted_streams(new_streams, self.streams.get(category,[])) else: self.streams[category] = new_streams |
︙ | ︙ | |||
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | if ("url" in row and (row.get("url") not in new)): row["deleted"] = 1 diff.append(row) return diff # prepare data for display def prepare(self, streams): for i,row in enumerate(streams): # oh my, at least it's working # at start the bookmarks module isn't fully registered at instantiation in parent.channels{} - might want to do that step by step rather # then display() is called too early to take effect - load() & co should actually be postponed to when a notebook tab gets selected first # => might be fixed now, 1.9.8 # state icon: bookmark star if (conf.show_bookmarks and "bookmarks" in self.parent.channels and self.parent.bookmarks.is_in(streams[i].get("url", "file:///tmp/none"))): | > > > > > > | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | if ("url" in row and (row.get("url") not in new)): row["deleted"] = 1 diff.append(row) return diff # prepare data for display # # - favourite icon # - or deleted icon # def prepare(self, streams): __print__(dbg.PROC, "prepare", streams) for i,row in enumerate(streams): # oh my, at least it's working # at start the bookmarks module isn't fully registered at instantiation in parent.channels{} - might want to do that step by step rather # then display() is called too early to take effect - load() & co should actually be postponed to when a notebook tab gets selected first # => might be fixed now, 1.9.8 # state icon: bookmark star if (conf.show_bookmarks and "bookmarks" in self.parent.channels and self.parent.bookmarks.is_in(streams[i].get("url", "file:///tmp/none"))): |
︙ | ︙ | |||
271 272 273 274 275 276 277 | # check for availability of PNG file, inject local icons/ filename if homepage_url and favicon.available(homepage_url): streams[i]["favicon"] = favicon.file(homepage_url) return streams | | > > > > | 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 | # check for availability of PNG file, inject local icons/ filename if homepage_url and favicon.available(homepage_url): streams[i]["favicon"] = favicon.file(homepage_url) return streams # data preparations directly after reload # # - drop shoutcast homepage links # - or find homepage name in title # def postprocess(self, row): # remove non-homepages from shoutcast if row.get("homepage") and row["homepage"].find("//yp.shoutcast.")>0: row["homepage"] = "" # deduce homepage URLs from title |
︙ | ︙ |