diff --git a/lib/browserified.js b/lib/browserified.js index 7ffae40..8d1727f 100644 --- a/lib/browserified.js +++ b/lib/browserified.js @@ -74,14 +74,14 @@ configDefault = { commands : [ {exe:"clear", msg:"!!clear"}, {exe:"theme", msg:"!!theme"}, - {exe:"load", msg:"!!load"} + {exe:"load", msg:"!!load"}, + {exe:"scale", msg:"!!scale"} ], // 활성화시킬 명령어 - replaceMsgs : [], /* 봇 메세지 등을 대체 + replaceMsgs : [] /* 봇 메세지 등을 대체 { orig: 원문(문자열 또는 정규표현식), to: 대체할 문자열("{no_display}"로 미표시) } */ - scale : 1 // 화면의 확대/축소 배율 조정 }; @@ -338,6 +338,10 @@ if (window.location.href.indexOf("?") != -1) { if ((value!=undefined) && configDefault.hasOwnProperty(key)) { switch (key) { + case "scale": + if (!isNaN(scale)) { window.localStorage.setItem("scale", value); } + return; + case "channel": configData.channel = value.split(",").map( function(channel) { return "#" + channel; @@ -381,6 +385,23 @@ if (window.location.href.indexOf("?") != -1) { } } + + +/* 배율 설정 적용 */ +var setScale = function() { + var scale = window.localStorage.getItem("scale"); + if (!scale) { return; } + + with (document.body.style) { + width = (10000 / scale) + "%"; + transformOrigin = "left bottom"; + transform = "scale(" + scale/100 + ")"; + } +} +setScale(); + + + /* 설정 파일 확인 및 디버그 내용 출력 함수 정의 */ var completeCount = 0; var checkComplete = function() { @@ -756,16 +777,29 @@ var commandExecute = function(exe, arg) { } case "load" : - console.log(arg); if (arg == "" || arg == "디씨콘" || arg == "디시콘" || arg == "dccon") { loadDcCon(); return true; } + break; + + case "scale": + if (arg == "") { + debugLog("현재 배율 : " + (window.localStorage.getItem("scale")||100) + "%"); + return true; + } + if (!isNaN(arg)) { + window.localStorage.setItem("scale", Number(arg)); + setScale(); + return true; + } + break; default: - debugLog("잘못된 명령어입니다."); - return false; + break; } + debugLog("잘못된 명령어입니다."); + return false; } @@ -1011,14 +1045,6 @@ var client = function() { }; client(); -// 확대/축소 -document.body.setAttribute( - "style", - "width: " + (100 / configData.scale) + "%;" + - "transform-origin: left bottom;" + - "transform: scale(" + configData.scale + ");" -); - },{"./cheer_list.json":1,"./twip_apply.js":3}],3:[function(require,module,exports){ var twipMsg = configData&&configData.twipCheersMsg? diff --git a/lib/config.js b/lib/config.js index a5b7bad..9f04eac 100644 --- a/lib/config.js +++ b/lib/config.js @@ -30,10 +30,10 @@ commands : [ {exe:"clear", msg:"!!clear"}, {exe:"theme", msg:"!!theme"}, - {exe:"load", msg:"!!load"} + {exe:"load", msg:"!!load"}, + {exe:"scale", msg:"!!scale"} ], replaceMsgs : [ {orig:/^!{1,2}[a-zA-Z]+/, to:"{no_display}"} // 봇 호출 영문 메세지 미표시 - ], - scale : 1 + ] }; diff --git a/readme.txt b/readme.txt index 4234b77..9385529 100644 --- a/readme.txt +++ b/readme.txt @@ -26,9 +26,14 @@ * * 0.5.3 : From 27th Apr 2020 ... * * * ********************************************** * * 추가 및 개선된 기능 * +* - 채팅방 명령어 추가 * +* scale (배율 숫자) : 화면 배율 조정 * +* 숫자 미입력시 현재 배율 표시 * +* * * - URL로부터 설정을 불러오는 기능 추가 * * "(경로)?(key_1)=(value_1)&...&(key_n)=(value_n)" * * channel은 #을 제외하고, muteUser는 ','를 구분자로 * +* scale로 화면 배율 지정 가능 * * * * - 메세지가 사라질 때 애니메이션의 시간에 대한 설정 추가 * * msgAniDuration 설정 * diff --git a/source/main.js b/source/main.js index e070d94..cb92447 100644 --- a/source/main.js +++ b/source/main.js @@ -43,14 +43,14 @@ configDefault = { commands : [ {exe:"clear", msg:"!!clear"}, {exe:"theme", msg:"!!theme"}, - {exe:"load", msg:"!!load"} + {exe:"load", msg:"!!load"}, + {exe:"scale", msg:"!!scale"} ], // 활성화시킬 명령어 - replaceMsgs : [], /* 봇 메세지 등을 대체 + replaceMsgs : [] /* 봇 메세지 등을 대체 { orig: 원문(문자열 또는 정규표현식), to: 대체할 문자열("{no_display}"로 미표시) } */ - scale : 1 // 화면의 확대/축소 배율 조정 }; @@ -307,6 +307,10 @@ if (window.location.href.indexOf("?") != -1) { if ((value!=undefined) && configDefault.hasOwnProperty(key)) { switch (key) { + case "scale": + if (!isNaN(scale)) { window.localStorage.setItem("scale", value); } + return; + case "channel": configData.channel = value.split(",").map( function(channel) { return "#" + channel; @@ -350,6 +354,23 @@ if (window.location.href.indexOf("?") != -1) { } } + + +/* 배율 설정 적용 */ +var setScale = function() { + var scale = window.localStorage.getItem("scale"); + if (!scale) { return; } + + with (document.body.style) { + width = (10000 / scale) + "%"; + transformOrigin = "left bottom"; + transform = "scale(" + scale/100 + ")"; + } +} +setScale(); + + + /* 설정 파일 확인 및 디버그 내용 출력 함수 정의 */ var completeCount = 0; var checkComplete = function() { @@ -725,16 +746,29 @@ var commandExecute = function(exe, arg) { } case "load" : - console.log(arg); if (arg == "" || arg == "디씨콘" || arg == "디시콘" || arg == "dccon") { loadDcCon(); return true; } + break; + + case "scale": + if (arg == "") { + debugLog("현재 배율 : " + (window.localStorage.getItem("scale")||100) + "%"); + return true; + } + if (!isNaN(arg)) { + window.localStorage.setItem("scale", Number(arg)); + setScale(); + return true; + } + break; default: - debugLog("잘못된 명령어입니다."); - return false; + break; } + debugLog("잘못된 명령어입니다."); + return false; } @@ -979,11 +1013,3 @@ var client = function() { } }; client(); - -// 확대/축소 -document.body.setAttribute( - "style", - "width: " + (100 / configData.scale) + "%;" + - "transform-origin: left bottom;" + - "transform: scale(" + configData.scale + ");" -);