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

⌈⌋ branch:  streamtuner2


Check-in [3d48a4ac68]

Overview
Comment:Minor Python 3 fixes (syntax and str.decode)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 3d48a4ac684eb860276409cb6dfb2760641f4ca7
User & Date: mario on 2020-05-16 10:08:06
Other Links: manifest | tags
Context
2020-05-16
10:08
peertube use correct /search/videos api for searches check-in: 652576b7b3 user: mario tags: trunk
10:08
Minor Python 3 fixes (syntax and str.decode) check-in: 3d48a4ac68 user: mario tags: trunk
10:07
Documentation typos fixed and itemized more config options for some plugins. check-in: 04648f1c1c user: mario tags: trunk
Changes

Modified channels/radiotray.py from [381392f6f0] to [093047988d].

141
142
143
144
145
146
147
148

149
150
151
152
153
154
155
141
142
143
144
145
146
147

148
149
150
151
152
153
154
155







-
+








            # Radiotray-NG
            try:
                if conf.radiotray_map == "play":
                    self.radiotray_ng().play_url(row["url"])
                else:
                    self.radiotray_ng().add_radio(row["title"], row["url"], group)
            except Exception, e:
            except Exception as e:
                log.ERR("RTNG DBUS error", e)
                try:
                    cfg = self.radiotray_ng().get_config()
                    self.save_rtng_json(cfg, row, group)
                    self.radiotray_ng().reload_bookmarks()
                    self.parent.status("Exported to Radiotray. You may need to use Preferences > Reload Bookmarks.")
                except Exception as e:

Modified channels/specbuttons.py from [f76050e966] to [5399e5934f].

109
110
111
112
113
114
115
116

117
118
119
120
121
122
123
109
110
111
112
113
114
115

116
117
118
119
120
121
122
123







-
+







    def locate(self, btn, f=None):
        try:
            f = subprocess.Popen(["locate", "/usr/share/[pi]*s/*%s*.*" % btn], stdout=subprocess.PIPE)
        except:
            return None
        path, err = f.communicate()
        if not err:
            return path.split("\n")[0]
            return path.decode("utf-8").split("\n")[0]

    # Update paths when saving config dialog
    def update_paths(self):
        r = {}
        for btn, cmd in conf.specbuttons.items():
            # replace "gtk." to "gtk-"
            if re.match("^gtk\.\w+", btn, re.I):

Modified contrib/scripts.py from [d8221b6773] to [ef9d94e4e4].

36
37
38
39
40
41
42
43


44
45
46
47
48
49
50
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50
51







-
+
+







# This is implemented using the action.handler hooks for urn:
# modules. But ensures the resolver script is run each time - by
# not caching the final stream url.
# Conversly this plugin prevents editing of script station entries.
#


import os, shutil, copy, subprocess, sys, StringIO
import os, shutil, copy, subprocess, sys
from compat2and3 import StringIO
import csv, zipfile
import re, json, pq
import ahttp
import config
from config import *
import uikit
from compat2and3 import *