Does not work with GJS (Introspection)
TotemPlParser is not usable with GJS (Javascript).
Tested version: 3.26.5 (GJS 1.64.3)
- Async:
#!/usr/bin/gjs
const GLib = imports.gi.GLib;
const TotemPlParser = imports.gi.TotemPlParser;
let uri = 'file:///home/me/playlist.m3u';
let parser = new imports.gi.TotemPlParser.Parser();
parser.connect('playlist-started', (parser, uri, metadata) => log("playlist started " + [parser, uri, metadata]));
parser.connect('entry-parsed', (parser, uri, metadata) => log("entry parsed " + [parser, uri, metadata]));
parser.connect('playlist-ended', (parser, uri, metadata) => log("playlist ended " + [parser, uri, metadata]));
parser.parse_async(uri, true, null, (source, result) => {
log('parse callback ' + [source, result]);
});
GLib.MainLoop.new(null, true).run();
/* return:
(gjs:2781): Gjs-WARNING **: 21:48:14.325: JS ERROR: Error: No introspection information found for TotemPlParserMetadata
@./parserASync.js:17:31
......
(gjs:2781): Gjs-WARNING **: 21:48:14.325: JS ERROR: Error: No introspection information found for TotemPlParserMetadata
@./parserASync.js:17:31
Gjs-Message: 21:48:14.325: JS LOG: playlist ended [object instance wrapper GIName:TotemPlParser.Parser jsobj@0x3f0460589080 native@0x55c8213b5580],file:///home/me/playlist.m3u,
Gjs-Message: 21:48:14.330: JS LOG: parse callback [object instance wrapper GIName:TotemPlParser.Parser jsobj@0x3f0460589080 native@0x55c8213b5580],[object instance wrapper GIName:Gio.Task jsobj@0x3f0460588d30 native@0x55c82139ad70]
*/
- Sync:
#!/usr/bin/gjs
const GLib = imports.gi.GLib;
const TotemPlParser = imports.gi.TotemPlParser;
let uri = 'file:///home/me/playlist.m3u';
let parser = new imports.gi.TotemPlParser.Parser();
parser.connect('playlist-started', (parser, uri, metadata) => log("playlist started " + [parser, uri, metadata]));
parser.connect('entry-parsed', (parser, uri, metadata) => log("entry parsed " + [parser, uri, metadata]));
parser.connect('playlist-ended', (parser, uri, metadata) => log("playlist ended " + [parser, uri, metadata]));
parser.parse(uri, true);
GLib.MainLoop.new(null, true).run();
/* return:
(gjs:2716): Gjs-WARNING **: 21:46:23.844: JS ERROR: Error: No introspection information found for TotemPlParserMetadata
@./parserSync.js:13:8
......
(gjs:2716): Gjs-WARNING **: 21:46:23.844: JS ERROR: Error: No introspection information found for TotemPlParserMetadata
@./parserSync.js:13:8
Gjs-Message: 21:41:36.996: JS LOG: playlist ended [object instance wrapper GIName:TotemPlParser.Parser jsobj@0x30d971589080 native@0x55ee3361d200],file:///home/me/playlist.m3u,
*/
Without 'playlist-started' and 'entry-parsed' signal connections, there is no error message.