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

βŒˆβŒ‹ βŽ‡ branch:  streamtuner2


Check-in [af47020e49]

Overview
Comment:Reorder target types, to prefer XSPF over PLS and M3U. Support .URL exports, keep distinct literal url/direct.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: af47020e49e98c47b198969a2061fce36a9de4e4
User & Date: mario on 2015-04-27 23:45:11
Other Links: manifest | tags
Context
2015-04-27
23:45
Document command line flags in manual. check-in: 6135c7ecac user: mario tags: trunk
23:45
Reorder target types, to prefer XSPF over PLS and M3U. Support .URL exports, keep distinct literal url/direct. check-in: af47020e49 user: mario tags: trunk
21:22
Updated category:/type: check-in: 823b3a3fff user: mario tags: trunk
Changes

Modified channels/dnd.py from [4107767093] to [b8955f0866].

66
67
68
69
70
71
72
73


74
75

76
77
78
79
80
81
82
83



84

85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

104
105
106
107
108
109
110
66
67
68
69
70
71
72

73
74
75

76
77
78
79

80



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112







-
+
+

-
+



-

-
-
-
+
+
+

+



















+







    buf = {}

    # Supported type map
    drag_types = [
      # internal
      ("json/vnd.streamtuner2.station", gtk.TARGET_SAME_APP, 51),
      # literal exports
      ("audio/x-mpegurl", 0, 20),
      ("application/xspf+xml", 0, 22),
      ("application/jspf+json", 0, 25),
      ("application/x-scpls", 0, 21),
      ("application/xspf+xml", 0, 22),
      ("audio/x-mpegurl", 0, 20),
      ("application/smil", 0, 23),
      ("text/html", 0, 23),
      ("text/richtext", 0, 23),
      ("application/jspf+json", 0, 25),
      ("application/x-desktop", 0, 26),
      # direct srv urls
      ("text/url", 0, 15),  #@TODO: support in action.save_/convert_
      ("message/external-body", 0, 15),
      ("text/url", 0, 27),
      ("message/external-body", 0, 27),
      # direct srv urls
      ("url/direct", 0, 15),
      ("text/iri-list", 0, 15),
      # filename, file:// IRL
      ("FILE_NAME", 0, 3),
#     ("text/uri-list;x-format=xspf,pls,m3u,jspf,smil,http", 0, 4),
      ("text/uri-list", 0, 4),
      # url+comments
      ("TEXT", 0, 5),
      ("STRING", 0, 5),
      ("UTF8_STRING", 0, 5),
      ("text/plain", 0, 5),
    ]
    
    # Map target/`info` integers to action. module identifiers
    cnv_types = {
       20: "m3u",
       21: "pls",
       22: "xspf",
       23: "smil",
       25: "jspf",
       26: "desktop",
       27: "url",
       15: "srv",
        4: "temp",
        5: "srv",
       51: "json",
    }


230
231
232
233
234
235
236
237

238
239
240
241
242
243
244
232
233
234
235
236
237
238

239
240
241
242
243
244
245
246







-
+







        context.drop_reply(len(accept) > 0, time)
        if accept:
                widget.drag_get_data(context, accept[0], time) or True
        return True

    # Actual data is being passed,
    def data_received(self, widget, context, x, y, selection, info, time):
        log.DND("dest←in: data-receival", info, selection.get_text(), selection.get_uris())
        log.DND("dest←in: data-receival", info, selection.get_target(), selection.get_text(), selection.get_uris())

        # incoming data
        data = selection.get_text()
        urls = selection.get_uris()
        any = (data or urls) and True

        # Convert/Add