[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키