diff --git a/src/components/CustomWelcome.vue b/src/components/CustomWelcome.vue index c52139e..bb52b32 100644 --- a/src/components/CustomWelcome.vue +++ b/src/components/CustomWelcome.vue @@ -85,6 +85,8 @@ var state = kiwi.state; var Misc = kiwi.require('helpers/Misc'); var StartupLayout = kiwi.require('components/startups/CommonLayout'); +import * as utils from '../libs/utils.js'; + export default { components: { StartupLayout, @@ -139,6 +141,8 @@ export default { }, created: function created() { let options = state.settings.startupOptions; + let netAddress = _.trim(options.server); + let net = this.network || state.getNetworkFromAddress(netAddress); this.nick = this.processNickRandomNumber(Misc.queryStringVal('nick') || options.nick || ''); this.password = options.password || ''; @@ -153,6 +157,14 @@ export default { options.showPassword : true; + if (net) { + let gecos = utils.getASL2(net.gecos); + + this.age = gecos.a || ''; + this.sex = gecos.s || ''; + this.location = gecos.l || ''; + } + if (options.autoConnect && this.nick && this.channel) { this.startUp(); } diff --git a/src/libs/utils.js b/src/libs/utils.js index e697871..837d4b9 100644 --- a/src/libs/utils.js +++ b/src/libs/utils.js @@ -9,4 +9,16 @@ export function getASL(str) { return {a, s, l}; } return {}; -} \ No newline at end of file +} + +export function getASL2(str) { + let result = str.match(/\[(\d+|U)\/([MFOU])\/(.*)\]/); + if (result && result.length === 4) { + let a = result[1] === 'U' ? null : result[1]; + let s = result[2] === 'U' ? null : result[2]; + let l = result[3] === 'U' ? null : result[3]; + + return {a, s, l}; + } + return {}; +}