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

            # 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:
                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:







|







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 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
    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]

    # 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):







|







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.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
# 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 csv, zipfile
import re, json, pq
import ahttp
import config
from config import *
import uikit
from compat2and3 import *







|
>







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
from compat2and3 import StringIO
import csv, zipfile
import re, json, pq
import ahttp
import config
from config import *
import uikit
from compat2and3 import *