Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Check-in [4fb2d74c67]

Overview
Comment:Prevent .row() - row["url"]/urn_resolve from crashing for homepage-only entries (from e.g. links channel).
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4fb2d74c67acaed0b5057afa0c109ddf5d993c89
User & Date: mario on 2017-01-01 15:25:27
Other Links: manifest | tags
Context
2017-01-01
15:31
Fix typo in default config save/load filename. check-in: 7b225c5888 user: mario tags: trunk
15:25
Prevent .row() - row["url"]/urn_resolve from crashing for homepage-only entries (from e.g. links channel). check-in: 4fb2d74c67 user: mario tags: trunk
14:59
Update to #pack: specified of channels/*.py check-in: 8599474f19 user: mario tags: trunk
Changes

Modified channels/__init__.py from [a524c74978] to [76451770e4].

251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
    def model_iter(self):
        return self.gtk_list.get_selection().get_selected()

    # Currently selected entry in stations list, return complete data dict
    def row(self):
        row = self.stations() [ self.rowno() ]
        # resolve stream url for some plugins
        if row.get("url", "urn:x-streamtuner2:no").startswith("urn:"):
            self.status("Resolving actual stream URL for `%s`" % row["url"], timeout=2)
            # most urn: handlers update `row` - some return a new value - which is handled in action.run_fmt_url() however
            action.resolve_urn(row)  # row = ..() or row
        return row
        
    # Fetches a single varname from currently selected station entry
    def selected(self, name="url"):







|







251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
    def model_iter(self):
        return self.gtk_list.get_selection().get_selected()

    # Currently selected entry in stations list, return complete data dict
    def row(self):
        row = self.stations() [ self.rowno() ]
        # resolve stream url for some plugins
        if row.get("url") and row.get("url", "urn:x-streamtuner2:no").startswith("urn:"):
            self.status("Resolving actual stream URL for `%s`" % row["url"], timeout=2)
            # most urn: handlers update `row` - some return a new value - which is handled in action.run_fmt_url() however
            action.resolve_urn(row)  # row = ..() or row
        return row
        
    # Fetches a single varname from currently selected station entry
    def selected(self, name="url"):