최근 수정 시각 : 2022-07-01 18:48:59

엔트리(교육 플랫폼)/콘솔 명령어

파일:상위 문서 아이콘.svg   상위 문서: 엔트리(교육 플랫폼)

1. 개요2. 계정 관련 코드
2.1. 로그인 코드2.2. 아이디로 16진수 id 찾기
3. 커뮤니티 관련 코드4. 작품 관련 코드
4.1. 리스트에 항목 추가4.2. 리스트에 n번째 항목 삭제4.3. 리스트에 n번째 항목의 값을 변경4.4. 리스트에 항목을 n번째에 넣기4.5. 리스트에 포함되어 있을때 그 항목 위치(응용)

[clearfix]

1. 개요

엔트리(교육 플랫폼)에서 사용할 수 있는 콘솔 코드이다. 이걸로 많은 기능을 사용할 수 있다. 그러나 콘솔 코드로 엔트리 서버에 피해가 가는 행동을 할 경우 불법이고 코렁탕 먹을 수 있다.
개발자 도구[1]를 열고 Console 탭에서 입력하는 코드이다.
비공식 블럭이나 자동화 기능 등에 사용이 가능하다.
https://github.com/entrylabs/entryjs 사이트에 엔트리 블럭 Javascript 코드를 볼 수 있다.

참고로 작품 보기 화면에서는 Entry 객체를 사용하면 오류가 나니 미리 콘솔에다가 다음 코드를 실행하고 해야 한다. # #
#!syntax javascript
window.Entry = document.querySelector('iframe.css-1sbyuvq.eaizycc0').contentWindow.Entry;
window.EntryStatic = document.querySelector('iframe.css-1sbyuvq.eaizycc0').contentWindow.EntryStatic;

2. 계정 관련 코드

2.1. 로그인 코드

변수 username과 password 값은 엔트리 계정 아이디와 비밀번호를 입력하면 된다.
#!syntax javascript
var username = '';
var password = '';
var remember = false;
await fetch('https://playentry.org/graphql', {
	method: 'POST',
	headers: {
		'content-type': 'application/json',
	},
	body: JSON.stringify({
	query: `mutation(
		$username: String!
		$password: String!
		$rememberme: Boolean
		$captchaValue: String
		$captchaKey: String
		$captchaType: String
	) {
		signinByUsername(
		username: $username
		password: $password
		rememberme: $rememberme
		captchaValue: $captchaValue
		captchaKey: $captchaKey
		captchaType: $captchaType
	) {
		id
		username
		nickname
		role
		isEmailAuth
		isSnsAuth
		isPhoneAuth
		studentTerm
		status {
			userStatus
		}
		profileImage {
			id
			name
			label {
				ko
				en
				ja
				vn
			}
			filename
			imageType
			dimension {
				width
				height
			}
			trimmed {
				filename
				width
				height
			}
		}
		banned {
			username
			nickname
			reason
			bannedCount
			bannedType
			projectId
			startDate
			userReflect {
				status
					endDate
				}
			}
		}
	}
	`,
	variables: { username, password, rememberme: remember },
	}),
});

2.2. 아이디로 16진수 id 찾기

아이디(유저네임)으로 16진수 id를 찾는 코드이다. 해당 코드를 실행하면 그 값을 반환한다.
#!syntax javascript
var username = '';
var id = (await (await fetch('https://playentry.org/graphql', {
	method: 'POST',
	headers: {
		'Content-Type': 'application/json'
	},
	body: JSON.stringify({
		query: `
			query ($username: String) {
				user(username: $username) {
					id
				}
			}
		`,
		variables: { username: username }
	})
})).json()).data.user.id;
return id;

3. 커뮤니티 관련 코드

4. 작품 관련 코드

4.1. 리스트에 항목 추가

'리스트' 이름의 리스트에 '0'이라는 항목을 추가한다.
#!syntax javascript
Entry.variableContainer.getListByName("리스트").appendValue("0");

4.2. 리스트에 n번째 항목 삭제

'리스트' 이름의 리스트에 1번째 항목을 삭제한다.
#!syntax javascript
Entry.variableContainer.getListByName("리스트").deleteValue(1);

4.3. 리스트에 n번째 항목의 값을 변경

'리스트' 이름의 리스트에 1번째 항목의 값을 '엔트리'로 변경한다.
#!syntax javascript
Entry.variableContainer.getListByName("리스트").replaceValue(1, "엔트리");

4.4. 리스트에 항목을 n번째에 넣기

'리스트' 이름의 리스트에 '엔트리' 항목을 1번째에 넣는다.
#!syntax javascript
Entry.variableContainer.getListByName("리스트").insertValue(1, "엔트리");

4.5. 리스트에 포함되어 있을때 그 항목 위치(응용)

위 코드를 응용해서 만든 것이다. 엔트리 반복문으로 찾는것보다 훨씬 빠르다(!)
'리스트' 이름의 리스트에 '내용'이 포함되어 있다면 몇 번째 항목에 위치하는지 반환하고 없으면 null을 반환한다.
#!syntax javascript
var list = Entry.variableContainer.getListByName("리스트");
var data = '내용';
if (!list) {
	return null;
}
const arr = list.getArray();
for (var i = 0, len = arr.length; i < len; i++) {
	if (arr[i].data.toString() == data.toString()) {
		return i + 1;
	}
}
return null;


[1] F12키나 Ctrl + Shift + I키