틀:자동저장/플러그인: 두 판 사이의 차이
< 틀:자동저장
백괴게임>Manymaster (새로운플러그인생성) |
백괴게임>BANIP 잔글 (저작자 수정) |
||
5번째 줄: | 5번째 줄: | ||
{{#vardefine:name|autosave}} | {{#vardefine:name|autosave}} | ||
{{#vardefine:creat| | {{#vardefine:creat|Manymaster}} | ||
{{#vardefine:version|0.0.5}} | {{#vardefine:version|0.0.5}} | ||
{{#vardefine:descript|자동저장 시스템을 위한 플러그인}} | {{#vardefine:descript|자동저장 시스템을 위한 플러그인}} |
2018년 3월 3일 (토) 15:35 판
/* 작동 가능한 네임스페이스 */ const safeNameSpace = [""]; /* autosave 편집모드가 아닐 경우 플러그인 종료 */ const searchParams = new URL(location).searchParams; const isEditMode = searchParams.get("action") === "edit"; const isAutosaveMode = searchParams.get("autosave") === "1"; if(!(isEditMode && isAutosaveMode)) return ""; /* 자동 저장하기에 안전한 네임스페이스가 아닌 경우 플러그인 종료 */ const thisNamespaceNumber = mw.config.get("wgNamespaceNumber"); const nameSpaceIds = mw.config.get("wgNamespaceIds"); const isSafeNameSpace = safeNameSpace .map( function(namespace){ return nameSpaceIds[namespace]; }) .some( function(nsNumber){ return nsNumber == thisNamespaceNumber; }); if(!(isSafeNameSpace)) return ""; /* 자동 인증된 사용자가 아닌 경우 플러그인 종료 */ var userGroups = mw.config.get( 'wgUserGroups' ); var autocheck = 0 if ( userGroups ) { for ( var i = 0; i < userGroups.length; i++ ) { if ( userGroups[i] === 'autoconfirmed' ) { autocheck++; } } } if(!(autocheck == 1 )) return ""; /* 지정된 단락에서 불러오기 */ const savetempDom = $(".game-autosave"); if($(".game-autosave").length === 0) throw new Error("autosave => game-autosave를 클래스명으로 가진 돔을 찾을 수 없습니다."); var savetemp = $(".game-autosave").html(); /* 문제가 되는 문자열 치환 */ savetemp = savetemp.replace(/(<([^>]+)>)/ig,""); savetemp = savetemp.replace(/\n+/gi, "\n"); savetemp = savetemp.replace("\n", ""); savetemp = savetemp.replace(/</gi, "<"); savetemp = savetemp.replace(/>/gi, ">"); /* 기록, 저장하고 빠져나오기 */ $("#wpTextbox1").val(savetemp); $("#wpSave").click(); return; } $( plugin_autosavetest );