Super low-budget TpSimpleObserver example in GJS.
const Tp = imports.gi.TelepathyGLib;
const Mainloop = imports.mainloop;
function observe_channels(observer, account, connection, channels,
dispatch_op, requests, context, user_data)
{
print("observe_channels");
print("account = " + account.get_object_path());
print("connection = " + connection.get_object_path());
for (let i in channels) {
let channel = channels[i];
print("channel = " + channel.get_object_path());
}
if (dispatch_op != null)
print("dispatch_op = " + dispatch_op.get_object_path());
else
print("dispatch_op = (null)");
for (let i in requests) {
let request = requests[i];
print("request = " + request.get_object_path());
}
context.accept();
}
let dbus = Tp.DBusDaemon.dup();
let observer = Tp.SimpleObserver.new(dbus, true, "JSObserver", true,
observe_channels);
observer.add_observer_filter({
"org.freedesktop.Telepathy.Channel.ChannelType": Tp.IFACE_CHANNEL_TYPE_TEXT,
});
try {
observer.register();
Mainloop.run("");
} catch (e) {
print("ERROR: " + e);
}
