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
|