Merge pull request #710 from glowing-bear/weechatconf
fetch weechat configuration variables
This commit is contained in:
commit
8b045049ce
4 changed files with 98 additions and 4 deletions
|
@ -99,7 +99,7 @@ weechat.factory('connection',
|
||||||
$log.info("Connected to relay");
|
$log.info("Connected to relay");
|
||||||
$rootScope.connected = true;
|
$rootScope.connected = true;
|
||||||
},
|
},
|
||||||
function(e) {
|
function() {
|
||||||
handleWrongPassword();
|
handleWrongPassword();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -306,6 +306,17 @@ weechat.factory('connection',
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var fetchConfValue = function(name) {
|
||||||
|
ngWebsockets.send(
|
||||||
|
weeChat.Protocol.formatInfolist({
|
||||||
|
name: "option",
|
||||||
|
pointer: 0,
|
||||||
|
args: name
|
||||||
|
})
|
||||||
|
).then(function(i) {
|
||||||
|
handlers.handleConfValue(i);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
var fetchMoreLines = function(numLines) {
|
var fetchMoreLines = function(numLines) {
|
||||||
$log.debug('Fetching ', numLines, ' lines');
|
$log.debug('Fetching ', numLines, ' lines');
|
||||||
|
|
|
@ -13,6 +13,27 @@ weechat.factory('handlers', ['$rootScope', '$log', 'models', 'plugins', 'notific
|
||||||
models.version = version.split(".").map(function(c) { return parseInt(c); });
|
models.version = version.split(".").map(function(c) { return parseInt(c); });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var handleConfValue = function(message) {
|
||||||
|
var infolist = message.objects[0].content;
|
||||||
|
for (var i = 0; i < infolist.length ; i++) {
|
||||||
|
var key, val;
|
||||||
|
var item = infolist[i];
|
||||||
|
for (var j = 0; j < item.length ; j++) {
|
||||||
|
var confitem = item[j];
|
||||||
|
if (confitem.full_name) {
|
||||||
|
key = confitem.full_name;
|
||||||
|
}
|
||||||
|
if (confitem.value) {
|
||||||
|
val = confitem.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (key && val) {
|
||||||
|
$log.debug('Setting wconfig "' + key + '" to value "' + val + '"');
|
||||||
|
models.wconfig[key] = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var handleBufferClosing = function(message) {
|
var handleBufferClosing = function(message) {
|
||||||
var bufferMessage = message.objects[0].content[0];
|
var bufferMessage = message.objects[0].content[0];
|
||||||
var bufferId = bufferMessage.pointers[0];
|
var bufferId = bufferMessage.pointers[0];
|
||||||
|
@ -393,6 +414,7 @@ weechat.factory('handlers', ['$rootScope', '$log', 'models', 'plugins', 'notific
|
||||||
|
|
||||||
return {
|
return {
|
||||||
handleVersionInfo: handleVersionInfo,
|
handleVersionInfo: handleVersionInfo,
|
||||||
|
handleConfValue: handleConfValue,
|
||||||
handleEvent: handleEvent,
|
handleEvent: handleEvent,
|
||||||
handleLineInfo: handleLineInfo,
|
handleLineInfo: handleLineInfo,
|
||||||
handleHotlistInfo: handleHotlistInfo,
|
handleHotlistInfo: handleHotlistInfo,
|
||||||
|
|
|
@ -11,6 +11,9 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter)
|
||||||
// WeeChat version
|
// WeeChat version
|
||||||
this.version = null;
|
this.version = null;
|
||||||
|
|
||||||
|
// WeeChat configuration values
|
||||||
|
this.wconfig = {};
|
||||||
|
|
||||||
// Save outgoing queries
|
// Save outgoing queries
|
||||||
this.outgoingQueries = [];
|
this.outgoingQueries = [];
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,7 @@
|
||||||
'buf': this._getString,
|
'buf': this._getString,
|
||||||
'arr': this._getArray,
|
'arr': this._getArray,
|
||||||
'htb': this._getHashTable,
|
'htb': this._getHashTable,
|
||||||
'inl': function() {
|
'inl': this._getInfolist,
|
||||||
this._warnUnimplemented('infolist');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// string value for some object types
|
// string value for some object types
|
||||||
|
@ -699,6 +697,37 @@
|
||||||
return WeeChatProtocol._formatCmd(params.id, 'info', parts);
|
return WeeChatProtocol._formatCmd(params.id, 'info', parts);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Formats an infolist command.
|
||||||
|
*
|
||||||
|
* @param params Parameters:
|
||||||
|
* id: command ID (optional)
|
||||||
|
* name: infolist name (mandatory)
|
||||||
|
* pointer: optional
|
||||||
|
* arguments: optional
|
||||||
|
* @return Formatted infolist command string
|
||||||
|
*/
|
||||||
|
WeeChatProtocol.formatInfolist = function(params) {
|
||||||
|
var defaultParams = {
|
||||||
|
id: null,
|
||||||
|
pointer: null,
|
||||||
|
args: null
|
||||||
|
|
||||||
|
};
|
||||||
|
var parts = [];
|
||||||
|
|
||||||
|
params = WeeChatProtocol._mergeParams(defaultParams, params);
|
||||||
|
parts.push(params.name);
|
||||||
|
if (params.pointer !== null) {
|
||||||
|
parts.push(params.pointer);
|
||||||
|
}
|
||||||
|
if (params.pointer !== null) {
|
||||||
|
parts.push(params.args);
|
||||||
|
}
|
||||||
|
|
||||||
|
return WeeChatProtocol._formatCmd(params.id, 'infolist', parts);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats a nicklist command.
|
* Formats a nicklist command.
|
||||||
*
|
*
|
||||||
|
@ -1143,6 +1172,35 @@
|
||||||
return values;
|
return values;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads an infolist object from the current set of data
|
||||||
|
*
|
||||||
|
* @return Array
|
||||||
|
*/
|
||||||
|
_getInfolist: function() {
|
||||||
|
var self = this;
|
||||||
|
var name;
|
||||||
|
var count;
|
||||||
|
var values;
|
||||||
|
|
||||||
|
name = this._getString();
|
||||||
|
count = this._getInt();
|
||||||
|
values = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < count; i++) {
|
||||||
|
var itemcount = self._getInt();
|
||||||
|
var litem = [];
|
||||||
|
for (var j = 0; j < itemcount; j++) {
|
||||||
|
var item = {};
|
||||||
|
item[self._getString()] = self._runType(self._getType());
|
||||||
|
litem.push(item);
|
||||||
|
}
|
||||||
|
values.push(litem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a specified number of bytes from current set data.
|
* Reads a specified number of bytes from current set data.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue