ログイン時の初期設定を変更する
/home/user/.lounge/config.js を編集する。
あるいは
lounge config
でviが立ち上がる。configの内容は公式を参考にする。
https://thelounge.github.io/docs/server/configuration.html
特にdefaultsはよく編集するだろう。
Client Settingの初期設定を変える
初期はこんな感じ。

これを変更するには
/usr/lib/node_modules/thelounge/client/js/lounge.js
を修正する。
このあたり
var options = $.extend({
coloredNicks: true,
desktopNotifications: false,
join: true,
links: true,
mode: true,
motd: false,
nick: true,
notification: true,
notifyAllMessages: false,
part: true,
quit: true,
theme: $("#theme").attr("href").replace(/^themes\/(.*).css$/, "$1"), // Extracts default theme name, set on the server configuration
thumbnails: true,
userStyles: userStyles.text(),
}, JSON.parse(window.localStorage.getItem("settings")));
“motd”で検索するとわかりやすい。
実際にはバンドルされたbundle.jsが実行されるので、Browserifyで作成する必要がある。
bundleを作るにはnpm-run-allが必要だったり、依存関係を洗い出すのが面倒なのでとりあえずペンディング。
直接/usr/lib/node_modules/thelounge/client/js/bundle.jsをいじくった。これも”motd”で検索。
確認するときはF12ツールなどでLocalStorageを削除する必要がある。LocalStorageの扱いはFireFoxよりChromeの方が楽だった。
ちなみにnpm-run-allのインストール
npm install npm-run-all --save-dev
URIパラメータ
公式ドキュメントに見当たらないが、ソースを見るとURIパラメータのパース機能が付属している。
https://github.com/thelounge/lounge/blob/master/client/js/lounge.js
// Possible parameters: name, host, port, password, tls, nick, username, realname, join
たとえば
?name=TestIRC&host=irc.example.com&port=6697&tls=true&join=%23test_channel
こんな感じ。joinは参加チャンネル名。#は%23で指定する。
指定しないとデフォルトのものが使用される。
自動ログイン
自動ログインは推奨されないが自動ログイン機能をつける。
/usr/lib/node_modules/thelounge/client/index.html
のbodyタグ終了前くらいに
<script src="js/myscript.js"></script>
を追加、別のファイルにjavascriptを記述する。直接ここにインラインで記述すると怒られた。
またcdnでjqueryをインポートしようとしても怒られたので純粋なjavascriptのみで記述。
jsフォルダつくるmyscript.jsは
var get_vars = getUrlVars();
if(get_vars["autologin"]=="yes"){
console.log("test");
window.onload = function () {
var count = 0;
var countup = function(){
console.log(count++);
}
var id = setInterval(function(){
var clickMe = document.getElementById("connect_button");
clickMe.click();
countup();
if(count > 0){
clearInterval(id);
}}, 1000);
};
}
function getUrlVars(){
var vars = {};
var param = location.search.substring(1).split("&");
for(var i = 0; i < param.length; i++) {
var keySearch = param[i].search(/=/);
var key = "";
if(keySearch != -1) key = param[i].slice(0, keySearch);
var val = param[i].slice(param[i].indexOf("=", 0) + 1);
if(key != "") vars[key] = decodeURI(val);
}
return vars;
}
URIパラメータautologin=yesの時のみ発動するようにした。
TheLoungeの自動nick name
nick nameが被ったときのみ数字を追加する機能がついているが、これを拡張したい。
ソースは
/usr/lib/node_modules/thelounge/src/plugins/irc-events/error.js
の
irc.on("nick in use", function(data) {
var lobby = network.channels[0];
var msg = new Msg({
type: Msg.Type.ERROR,
text: data.nick + ": " + (data.reason || "Nickname is already in use."),
});
lobby.pushMessage(client, msg, true);
if (irc.connection.registered === false) {
var random = (data.nick || irc.user.nick) + Math.floor(10 + (Math.random() * 89));
irc.changeNick(random);
}
client.emit("nick", {
network: network.id,
nick: irc.user.nick
});
});
このあたりを修正すれば良い。
変更した内容を確認するには、nodejsのキャッシュを削除して再読み込みさせる必要がある。
やり方がよくわからない。
ページ遷移時のアラートを無効化
lounge.jsの
function confirmExit() {
if ($("body").hasClass("public")) {
window.onbeforeunload = function() {
return "Are you sure you want to navigate away from this page?";
};
}
}
confirmExit内をコメントアウトすればよい。実際に読み込まれるのはbundle.jsなのでこちらを変更する。
ブラウザで確認する場合はブラウザキャッシュを削除する。