Created
October 31, 2018 12:07
-
-
Save H7-25/150acdd08de6df84fa21b46596ab24cf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.kiwi-statebrowser-register { | |
position: absolute; | |
top: 0; | |
left: 32px; | |
width: auto; | |
text-align: left; | |
padding: 0 10px; | |
font-size: 1em; | |
box-sizing: border-box; | |
line-height: 35px; | |
cursor: pointer; | |
font-weight: 500; | |
letter-spacing: 1px; | |
transition: all 0.3s; | |
border-radius: 0 0 6px 0; | |
opacity: 0.8; | |
} | |
.kiwi-statebrowser-register:hover { | |
opacity: 1; | |
} | |
.kiwi-statebrowser-register span { | |
font-weight: 600; | |
} | |
.kiwi-statebrowser-register i { | |
float: right; | |
line-height: 35px; | |
font-size: 1.2em; | |
} | |
#nickserv-form .kiwi-sky-simple-error { | |
width:468px; | |
margin:0 auto; | |
margin-bottom:10px; | |
text-align:left; | |
} | |
.kiwi-ns-login { | |
font-size:1.0em; | |
} | |
.kiwi-ns-login:before { | |
font-family:FontAwesome; | |
content: "\f090" ; | |
margin-right:5px; | |
} | |
.kiwi-ns-register { | |
font-size:1.0em; | |
} | |
.kiwi-ns-register:before { | |
font-family:FontAwesome; | |
content: "\f023" ; | |
margin-right:5px; | |
} | |
.kiwi-ns-error { | |
font-size:1.0em; | |
} | |
.kiwi-ns-error:before { | |
font-family:FontAwesome; | |
content: "\f071" ; | |
margin-right:5px; | |
} | |
.kiwi-ns-input { | |
border-top:1px solid rgba(0, 0, 0, 0.2) !important; | |
padding:10px !important; | |
width:468px !important; | |
margin:0 auto; | |
} | |
#nickserv-form .input-text-underline { | |
width:468px; | |
margin:0 auto; | |
} | |
.kiwi-ns-button { | |
font-size:1.2em;border-radius:0px; | |
margin-top:10px; | |
margin-bottom:10px; | |
letter-spacing: 2px; | |
padding: .5em 1em; | |
} | |
.kiwi-ns-button:before { | |
font-family:FontAwesome; | |
content: "\f023" ; | |
margin-right:5px; | |
} | |
@media screen and (max-width: 468px) { | |
#nickserv-form .kiwi-sky-simple-error { | |
width:100%; | |
} | |
.kiwi-ns-input { | |
width:100%; | |
} | |
#nickserv-form .input-text-underline { | |
width:100%; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kiwi.plugin('nickserv', function(kiwi) { | |
// Plugin Config ######################################################################### | |
// NickServ Identify Regex | |
var IDString = "^Questo nick è registrato e protetto. Se questo è il tuo"; | |
// NickServ Identify text | |
var IDText = "Il nick scelto risulta registrato, inserisci la password per autenticarti."; | |
// IDentify Button text | |
var LoginText = "Effettua il login ad un account"; | |
// IDentify Button text | |
var RegisterText = "Registra il nickname attualmente in uso:"; | |
// IDentify Button text | |
var IDButton = "IDENTIFICATI"; | |
// IDentify Button text | |
var RegButton = "REGISTRATI"; | |
// Wrong password Regex | |
var WPString = "^Password errata"; | |
// Wrong password text | |
var WPText = "Password errata!"; | |
// Bad password text on register | |
var BPText = "Attenzione, prova di nuovo con una password più sicura.<br> Le password devono essere lunghe almeno 5 caratteri, non devono essere facilmente intuibili (ad es. il proprio nome o nick)<br> e non possono contenere i caratteri di spazio e di tabulazione."; | |
// Services enforce nick Regex | |
var ENString = "^Il tuo nick sarà cambiato in"; | |
// Login success Regex | |
var LSString = "^Password accettata - adesso sei riconosciuto"; | |
// Account confirmation request Regex | |
var ConfirmReqString = "^Il tuo indirizzo email non è stato confermato. Per confermarlo, segui le istruzioni contenute nella email che hai ricevuto quando ti sei registrato"; | |
// Account confirmation text | |
var ConfirmReqText = "Inserisci il codice di conferma ricevuto per email per completare la registrazione dell\' account."; | |
// Invalid Confirmation code Regex | |
var InvalidConfirmString = "^Codice di attivazione non valido"; | |
// Invalid Confirmation code text | |
var InvalidConfirmText = "Codice di attivazione non valido. Inserisci il codice di conferma ricevuto per email per completare la registrazione dell\' account."; | |
// A valid confirmation code has been entered | |
var ValidConfirmString = "^Il tuo indirizzo email per (.*) è stato confermato."; | |
// Bad Password Notify | |
var BadPwdString = "^Attenzione, prova di nuovo con una password più sicura."; | |
// Bad Email Notify | |
var BadEmailString = "non è un indirizzo e-mail valido."; | |
// Register delay | |
var RegDelayString = "^E' necessario aver usato questo nick per almeno 30 secondi prima di poterlo registrare."; | |
// Valid Password | |
var ValidPwdString = "^Password accettata - adesso sei riconosciuto."; | |
// Already identified | |
var AlreadyIdString ="^Sei già identificato."; | |
// Confirm Button text | |
var ConfirmButton = "CONFERMA REGISTRAZIONE"; | |
// End Plugin Config #################################################################### | |
var IDRe = new RegExp(IDString ,""); | |
var WPRe = new RegExp(WPString ,""); | |
var ENRe = new RegExp(ENString ,""); | |
var LSRe = new RegExp(LSString ,""); | |
var ConfirmReqRe = new RegExp(ConfirmReqString ,""); | |
var InvalidConfirmRe = new RegExp(InvalidConfirmString ,""); | |
var ValidConfirmRe = new RegExp(ValidConfirmString ,""); | |
var BadPwdRe = new RegExp(BadPwdString ,""); | |
var BadEmailRe = new RegExp(BadEmailString ,""); | |
var RegDelayRe = new RegExp(RegDelayString ,""); | |
var ValidPwdRe = new RegExp(ValidPwdString ,""); | |
var AlreadyIdRe = new RegExp(AlreadyIdString ,""); | |
var link = document.createElement("link"); | |
link.type = "text/css"; | |
link.rel = "stylesheet"; | |
link.href = "/plugins/nickserv.css"; | |
document.head.appendChild(link); | |
var data = new kiwi.Vue({data: {themeName: ''}}); | |
data.themeName = kiwi.themes.currentTheme().name.toLowerCase(); | |
kiwi.on('theme.change', function(event) { | |
data.themeName = kiwi.themes.currentTheme().name.toLowerCase(); | |
console.log(data.themeName); | |
}); | |
var nsregisterdialog = kiwi.Vue.extend({ | |
data: function data() { | |
return { | |
accountInput:'', | |
pwdInput: '' | |
} | |
}, | |
computed: { | |
themeName: function() { | |
return data.themeName; | |
}, | |
currentNick: function() { | |
var net = kiwi.state.getActiveNetwork(); | |
return net.ircClient.user.nick; | |
} | |
}, | |
methods: { | |
onRegister: function () { | |
kiwi.state.$emit('input.raw', '/NS register '+ this.pwdInput + ' ' + this.accountInput ) | |
} | |
}, | |
template: '<div :class="[\'kiwi-\' + themeName + \'-simple-nick\', \'input-text\', \'input-text--focus\', \'input-text--reveal-value\']" id="nickserv-form" title="NickServ" style="text-align:center;"><p :class="[\'kiwi-\' + themeName + \'-simple-error\', \'kiwi-ns-register\']" id="validate">' + RegisterText + ' {{currentNick}}</p><input class="kiwi-ns-input" placeholder="Inserisci un indirizzo email valido" type="text" v-model="accountInput"><input class="kiwi-ns-input" placeholder="Inserisci la password" type="password" v-model="pwdInput"><div class="input-text-underline"><div class="input-text-underline-active"></div></div><button :class="[\'u-button\', \'u-button-primary\', \'u-submit\', \'kiwi-\' + themeName + \'-simple-start\', \'kiwi-ns-button\']" v-on:click="onRegister" >' + RegButton + '</button></div>', | |
}); | |
var nslogindialog = kiwi.Vue.extend({ | |
data: function data() { | |
return { | |
accountInput:'', | |
pwdInput: '' | |
} | |
}, | |
computed: { | |
themeName: function() { | |
return data.themeName; | |
} | |
}, | |
methods: { | |
onIdentify: function () { | |
kiwi.state.$emit('input.raw', '/NS identify '+ this.accountInput + ' ' + this.pwdInput ) | |
kiwi.state.$emit('input.raw', '/NICK '+ this.accountInput ) | |
var loginNick = this.accountInput; | |
var http = new XMLHttpRequest(); | |
var url = 'https://webcpanel.simosnap.com/'; | |
var params = 'username='+this.accountInput+'&password='+this.pwdInput; | |
http.open('POST', url, true); | |
//Send the proper header information along with the request | |
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); | |
http.withCredentials = true; | |
http.send(params); | |
} | |
}, | |
template: '<div :class="[\'kiwi-\' + themeName + \'-simple-nick\', \'input-text\', \'input-text--focus\', \'input-text--reveal-value\']" id="nickserv-form" title="NickServ" style="text-align:center;"><p :class="[\'kiwi-\' + themeName + \'-simple-error\', \'kiwi-ns-login\']" id="validate">' + LoginText + '</p><input class="kiwi-ns-input" placeholder="Inserisci account NickServ" type="text" v-model="accountInput"><input class="kiwi-ns-input" placeholder="Inserisci la password" type="password" v-model="pwdInput"><div class="input-text-underline"><div class="input-text-underline-active"></div></div><button :class="[\'u-button\', \'u-button-primary\', \'u-submit\', \'kiwi-\' + themeName + \'-simple-start\', \'kiwi-ns-button\']" v-on:click="onIdentify" >' + IDButton + '</button></div>', | |
}); | |
var nsdialog = kiwi.Vue.extend({ | |
data: function data() { | |
return { | |
pwdInput: '' | |
} | |
}, | |
computed: { | |
themeName: function() { | |
return data.themeName; | |
} | |
}, | |
methods: { | |
onIdentify: function () { | |
kiwi.state.$emit('input.raw', '/NS identify '+ this.pwdInput ) | |
var loginNick = kiwi.state.getNetwork(1).nick; | |
var http = new XMLHttpRequest(); | |
var url = 'https://webcpanel.simosnap.com/'; | |
var params = 'username='+loginNick+'&password='+this.pwdInput; | |
http.open('POST', url, true); | |
//Send the proper header information along with the request | |
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); | |
http.withCredentials = true; | |
http.send(params); | |
} | |
}, | |
template: '<div :class="[\'kiwi-\' + themeName + \'-simple-nick\', \'input-text\', \'input-text--focus\', \'input-text--reveal-value\']" id="nickserv-form" title="NickServ" style="text-align:center;"><p :class="[\'kiwi-\' + themeName + \'-simple-error\', \'kiwi-ns-error\']" id="validate">' + IDText + '</p><input class="kiwi-ns-input" placeholder="Inserisci la password" type="password" v-model="pwdInput"><div class="input-text-underline"><div class="input-text-underline-active"></div></div><button :class="[\'u-button\', \'u-button-primary\', \'u-submit\', \'kiwi-\' + themeName + \'-simple-start\', \'kiwi-ns-button\']" v-on:click="onIdentify" >' + IDButton + '</button></div>', | |
}); | |
var confirmdialog = kiwi.Vue.extend({ | |
data: function data() { | |
return { | |
codeInput: '' | |
} | |
}, | |
computed: { | |
themeName: function() { | |
return data.themeName; | |
} | |
}, | |
methods: { | |
onIdentify: function () { | |
kiwi.state.$emit('input.raw', '/NS confirm '+ this.codeInput ) | |
} | |
}, | |
template: '<div :class="[\'kiwi-\' + themeName + \'-simple-nick\', \'input-text\', \'input-text--focus\', \'input-text--reveal-value\']" id="nickserv-form" title="NickServ" style="text-align:center;"><p :class="[\'kiwi-\' + themeName + \'-simple-error\', \'kiwi-ns-error\']" id="validate">' + ConfirmReqText + '</p><input class="kiwi-ns-input" placeholder="Inserisci il codice di conferma" type="text" v-model="codeInput"><div class="input-text-underline"><div class="input-text-underline-active"></div></div><button :class="[\'u-button\', \'u-button-primary\', \'u-submit\', \'kiwi-\' + themeName + \'-simple-start\', \'kiwi-ns-button\']" v-on:click="onIdentify" >' + ConfirmButton + '</button></div>', | |
}); | |
var services = kiwi.Vue.extend({ | |
computed: { | |
themeName: function() { | |
return data.themeName; | |
}, | |
hasr: function() { | |
return data.nsNotify; | |
} | |
}, | |
methods: { | |
close: function close() { | |
kiwi.state.$emit('active.component', null); | |
} | |
}, | |
template: '<div title="NickServ" style="text-align:center;height:100%;width:100%;"><div class="kiwi-appsettings-title"><span>chiudi</span> <i @click="close" style="buttonStyle" class="fa fa-times" aria-hidden="true"></i></div> <iframe src="https://webcpanel.simosnap.com/nickserv/info" width="100%" height="100%" frameborder="0" marginheight="0" marginwidth="0"></iframe></div>', | |
}); | |
kiwi.addView('IRC Services CP', services); | |
function registerFn() { | |
kiwi.state.$emit('mediaviewer.show', {component: nsregisterdialog }); | |
} | |
function cpanelFn() { | |
kiwi.showView('IRC Services CP'); | |
} | |
function logoutFn() { | |
kiwi.state.$emit('input.raw', '/NS Logout' ); | |
} | |
function loginFn() { | |
kiwi.state.$emit('mediaviewer.show', {component: nslogindialog }); | |
} | |
var RegBtn = document.createElement('div'); | |
RegBtn.className = 'kiwi-statebrowser-register'; | |
RegBtn.addEventListener("click", registerFn ); | |
RegBtn.innerHTML = '<i aria-hidden="true" class="fa fa-lock"></i>'; | |
kiwi.addUi('browser', RegBtn); | |
var loginBtn = document.createElement('a'); | |
loginBtn.innerHTML = '<i aria-hidden="true" class="fa fa-sign-in"></i><span>Login</span>'; | |
loginBtn.addEventListener("click", loginFn); | |
kiwi.addUi('header_channel', loginBtn); | |
kiwi.once('network.connecting', function(event) { | |
var loginNick = event.network.nick; | |
var loginPass = event.network.connection.password; | |
//kiwi.addTab('server', 'IRC Services CP', services ); | |
var http = new XMLHttpRequest(); | |
var url = 'https://webcpanel.simosnap.com/'; | |
var params = 'username='+loginNick+'&password='+loginPass; | |
http.open('POST', url, true); | |
//Send the proper header information along with the request | |
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); | |
http.withCredentials = true; | |
http.send(params); | |
}); | |
kiwi.on('irc.mode', function(event, network) { | |
//console.log(event); | |
if ((event.nick == "NickServ") && (event.target == network.nick)) { | |
setTimeout(function() { | |
var net = kiwi.state.getActiveNetwork(); | |
console.log(net.ircClient.user.modes.has('r')); | |
hasR = net.ircClient.user.modes.has('r'); | |
if (hasR == true) { | |
loginBtn.innerHTML = '<i aria-hidden="true" class="fa fa-sign-out"></i><span>Logout</span>'; | |
loginBtn.removeEventListener("click", loginFn); | |
loginBtn.addEventListener("click", logoutFn); | |
RegBtn.removeEventListener("click", registerFn ); | |
RegBtn.addEventListener("click", cpanelFn ); | |
RegBtn.innerHTML = '<i aria-hidden="true" class="fa fa-dashboard"></i>'; | |
//RegBtn.style.visibility="hidden"; | |
} else { | |
loginBtn.innerHTML = '<i aria-hidden="true" class="fa fa-sign-in"></i><span>Login</span>'; | |
loginBtn.removeEventListener("click", logoutFn); | |
loginBtn.addEventListener("click", loginFn); | |
RegBtn.removeEventListener("click", cpanelFn ); | |
RegBtn.addEventListener("click", registerFn ); | |
RegBtn.innerHTML = '<i aria-hidden="true" class="fa fa-lock"></i>'; | |
//RegBtn.style.visibility="visible"; | |
var http = new XMLHttpRequest(); | |
var url = 'https://webcpanel.simosnap.com/logout'; | |
http.open('GET', url, true); | |
//Send the proper header information along with the request | |
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); | |
http.withCredentials = true; | |
http.send(); | |
} | |
}, 0); | |
} | |
}); | |
kiwi.on('irc.notice', function(event) { | |
if ((event.nick == 'NickServ') && (event.message.match(IDRe))) { | |
kiwi.state.$emit('mediaviewer.show', {component: nsdialog }) | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(WPRe))) { | |
var el = document.getElementById("validate") | |
el.innerHTML = WPText ; | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(ConfirmReqRe))) { | |
kiwi.state.$emit('mediaviewer.show', {component: confirmdialog }) | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(InvalidConfirmRe))) { | |
var el = document.getElementById("validate") | |
el.innerHTML = InvalidConfirmText ; | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(ENRe))) { | |
kiwi.state.$emit('mediaviewer.hide') | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(LSRe))) { | |
kiwi.state.$emit('mediaviewer.hide') | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(ValidConfirmRe))) { | |
kiwi.state.$emit('mediaviewer.hide') | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(BadPwdRe))) { | |
var el = document.getElementById("validate") | |
el.innerHTML = BPText ; | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(BadEmailRe))) { | |
var el = document.getElementById("validate") | |
el.innerHTML = event.message ; | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(RegDelayRe))) { | |
var el = document.getElementById("validate"); | |
el.innerHTML = event.message ; | |
setTimeout(function() { | |
kiwi.state.$emit('mediaviewer.hide'); | |
}, 2000); | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(ValidPwdRe))) { | |
var el = document.getElementById("validate"); | |
el.innerHTML = event.message ; | |
setTimeout(function() { | |
kiwi.state.$emit('mediaviewer.hide'); | |
}, 2000); | |
} | |
if ((event.nick == 'NickServ') && (event.message.match(AlreadyIdRe))) { | |
var el = document.getElementById("validate"); | |
el.innerHTML = event.message ; | |
setTimeout(function() { | |
kiwi.state.$emit('mediaviewer.hide'); | |
}, 2000); | |
} | |
}); | |
kiwi.on('input.command.nick', function(event) { | |
kiwi.state.$emit('mediaviewer.hide') | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment