Check-in [c5e06b031a]
Overview
| Comment: | Reuse mime_guess+list_guess functions from action.heuristic_funcs | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | c5e06b031a36f2dc495ac040fa236f97 | 
| User & Date: | mario on 2017-02-26 21:45:10 | 
| Other Links: | manifest | tags | 
Context
| 2017-02-26 | ||
| 21:45 | ... and also bump version check-in: b068c34740 user: mario tags: trunk | |
| 21:45 | Reuse mime_guess+list_guess functions from action.heuristic_funcs check-in: c5e06b031a user: mario tags: trunk | |
| 21:44 | Collect audio format form URL guessing into new class heuristic_funcs check-in: 7a1577bf74 user: mario tags: trunk | |
Changes
Modified contrib/radiolist.py from [4692e7b068] to [22b5dbfc08].
| ︙ | ︙ | |||
| 42 43 44 45 46 47 48 | # extraction afterwards (instead of a block match). # # Β· Entries may contain more than one streaming url. Each accompanied by a # bitrate. β Therefore the .best_url() sorting method. # # Β· Later versions might of course use multi-urls againβ¦ # | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 
#   extraction afterwards (instead of a block match).
#
# Β· Entries may contain more than one streaming url. Each accompanied by a
#   bitrate. β Therefore the .best_url() sorting method.
#
# Β· Later versions might of course use multi-urls againβ¦
#
class radiolist (ChannelPlugin, action.heuristic_funcs):
    # module attributes
    listformat = "pls"
    has_search = False
    categories = ["Europe", "America", "Canada", "Oceania", "Asia"]
    catmap = {"Europe":"", "America":"world", "Canada":"world/canada", "Oceania":"world/oceania", "Asia":"world/asia"}
    titles = dict( genre="Genre", title="Station", playing="Location", bitrate="Bitrate", listeners=False )
 | 
| ︙ | ︙ | |||
| 89 90 91 92 93 94 95 | 
            if ut and uu and lg:
                url, br = self.best_url(uu)
                entries.append(dict(
                    homepage = ut[0][0],
                    title = unhtml(ut[0][1]),
                    url = url,
                    bitrate = br,
 | | | < < < < < < < | < < < < < < < < | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 
            if ut and uu and lg:
                url, br = self.best_url(uu)
                entries.append(dict(
                    homepage = ut[0][0],
                    title = unhtml(ut[0][1]),
                    url = url,
                    bitrate = br,
                    format = self.mime_guess(url, "audio/mpeg"),
                    listformat = self.list_guess(url),
                    playing = lg[0],
                    genre = lg[1]
                ))
        # done    
        [log.DATA(e) for e in entries]
        return entries
    # pick highest rated URL from [(url,bitrate),β¦] tuples
    def best_url(self, urls):
        r = dict([(u, to_int(b)) for u,b in urls])  # {url: bitrate, β¦}
        best = sorted(r, key=r.get, reverse=True)
        return best[0], r[best[0]]
    
 |