add function to fmkorea
// ==UserScript==
// @name fmkoreaPlus
// @name:ko 펨코 플러스
// @namespace https://www.fmkorea.com/
// @version 0.0.114
// @description add function to fmkorea
// @author 초연
// @match https://www.fmkorea.com/
// @match https://www.fmkorea.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=fmkorea.com
// @grant none
// @license MIT
// @run-at document-end
// ==/UserScript==
(function () {
'use strict';
var text = "아이디 들어가는 자리"
console.log("펨코 플러스?")
// Your code here...
//////////////////////////////////////////////
setInterval(() => {
// 확인된 클래스를 담을 배열 초기화
var foundClasses = [];
var classNames = [];
var foundfindParent = [];
var foundAuthor = [];
// 모든 요소 선택
var allElements = document.querySelectorAll('*');
// 각 요소의 클래스 검사
allElements.forEach(function (element) {
var classNames = element.classList;
// 특정 문자열을 포함하는 클래스가 있는지 확인
if (classNames && Array.from(classNames).some(className => className.includes('member'))) {
// 배열에 클래스 추가
foundClasses.push(classNames);
}
});
allElements.forEach(function (element) {
var classNames = element.classList;
// 특정 문자열을 포함하는 클래스가 있는지 확인
if (classNames && Array.from(classNames).some(className => className.includes('findParent'))) {
// 배열에 클래스 추가
foundfindParent.push(classNames);
}
});
allElements.forEach(function (element) {
var classNames = element.classList;
// 특정 문자열을 포함하는 클래스가 있는지 확인
if (classNames && Array.from(classNames).some(className => className.includes('author'))) {
// 배열에 클래스 추가
//console.log("aaaaa" + classNames);
foundAuthor.push(classNames);
}
});
// 확인된 클래스 배열 출력
//console.log('확인된 클래스 배열:', foundClasses[2]);
for (var i = 0; i < foundClasses.length; i++) {
//console.log('확인된 클래스 배열:', foundClasses[i].value);
classNames.push(foundClasses[i].value);
//console.log(document.getElementsByClassName(classNames[i])[0].innerText);
//console.log(document.getElementsByClassName(classNames[i])[0].id);
//console.log(document.getElementsByClassName(classNames[i])[0].innerHTML);
//document.getElementsByClassName(classNames[i])[0].innerText = "" // 기본 감지
//document.getElementsByClassName(classNames[i])[i].innerText = "" // 기본 감지 2
}
for (var i = 0; i < foundfindParent.length; i++) {
//console.log('확인된 클래스 배열:', foundClasses[i].value);
//console.log(foundfindParent[i]);
//console.log(document.getElementsByClassName(foundfindParent[i])[0].innerText);
//console.log(document.getElementsByClassName(foundfindParent[i])[0].id);
//console.log(document.getElementsByClassName(foundfindParent[i])[0].innerHTML);
document.getElementsByClassName(foundfindParent[i])[0].innerText = text // 대댓글 감지 // 1차 대댓글 감지
document.getElementsByClassName(foundfindParent[i])[i].innerText = text // 대댓글 감지 2 // 연속된 대댓글 감지
//document.getElementsByClassName(foundfindParent[0])[i].innerText = text // 대댓글 감지 3
}
for (var i = 0; i < foundAuthor.length; i++) {
//console.log('확인된 클래스 배열:', foundClasses[i].value);
//console.log(foundfindParent[i]);
//console.log(document.getElementsByClassName(foundAuthor[i])[i].innerText);
//console.log(document.getElementsByClassName(foundfindParent[i])[0].innerHTML);
//document.getElementsByClassName(foundAuthor[i])[i].innerText = text // 글 목록의 닉네임 감지 //temp
}
// 모든 span.author 요소 선택
var allAuthorSpans = document.querySelectorAll('span.author');
var allSpan = [];
// 각 span.author 요소에 대해 검사
allAuthorSpans.forEach(function (authorSpan) {
// 해당 span 요소의 하위 요소가 없는지 확인
if (authorSpan.childElementCount === 0) {
console.log('클래스가 "author"이고 하위 요소가 없는 span 요소를 찾았습니다:', authorSpan);
allSpan.push(authorSpan);
// 원하는 동작 수행
}
});
for (var i = 0; i < allSpan.length; i++) {
//console.log('확인된 클래스 배열:', foundClasses[i].value);
//console.log(foundfindParent[i]);
//console.log(document.getElementsByClassName(foundAuthor[i])[i].innerText);
//console.log(document.getElementsByClassName(foundfindParent[i])[0].innerHTML);
allSpan[i].innerText = text // 글 목록의 닉네임 감지 2 //temp
}
var aaaa = [];
// 대댓글 감지 안 되서 다시 한번 더
var allElements = document.querySelectorAll('[class^="member"]');
// comment_으로 시작하는 어떤 숫자든지 선택
var xpathExpression = '//*[starts-with(@id, "comment_")]/div[1]/a';
var xpathExpression2 = '//*[starts-with(@id, "comment_")]/div[1]/a[1]';
var matchingElements = document.evaluate(xpathExpression, document, null, XPathResult.ANY_TYPE, null);
var matchingElements2 = document.evaluate(xpathExpression2, document, null, XPathResult.ANY_TYPE, null);
// 결과를 배열로 변환
var elementsArray = [];
var elementsArray2 = [];
var element = matchingElements.iterateNext();
var element2 = matchingElements2.iterateNext();
while (element) {
elementsArray.push(element);
element = matchingElements.iterateNext();
}
while (element2) {
elementsArray2.push(element2);
element2 = matchingElements2.iterateNext();
}
// 이제 배열을 반복하여 각 요소에 접근
/**
for (var i = 0; i < elementsArray2.length; i++) {
console.log('매칭된 요소:', elementsArray2[i]);
// element가 null이 아닌 경우에만 innerText를 설정
if (elementsArray2[i]) {
elementsArray2[i].innerText = "★ BEST";
// 원하는 동작 수행
}
}
*/
for (var i = 0; i < elementsArray.length; i++) {
//console.log('매칭된 요소:', elementsArray[i]);
// element가 null이 아닌 경우에만 innerText를 설정
if (elementsArray[i]) {
if (elementsArray[i].innerText == "★ BEST") {
elementsArray[i].innerText = "★ BEST";
}
else {
elementsArray[i].innerText = text;
}
// 원하는 동작 수행
} if (elementsArray2[i]) {
// elementsArray2[i].innerText = "★ BEST";
// 원하는 동작 수행
}
}
var element = document.querySelector('.icon-hit[onclick="moveToBest(); return false;"]');
if (element) {
element.innerText = "★ BEST";
}
// 모든 <a> 태그 선택
var allAnchorTags = document.querySelectorAll('a');
allAnchorTags.forEach(function (anchorTag) {
// onclick 속성 값이 "return false;"을 가지는지 확인
if (anchorTag.getAttribute('onclick') === 'return false;') {
console.log('onclick 속성 값이 "return false;"을 가진 <a> 태그를 찾았습니다:', anchorTag);
anchorTag.innerText = text
// 원하는 동작 수행
}
});
// 각 <a> 태그에 대해 검사
allAnchorTags.forEach(function (anchorTag) {
// 클래스 이름이 "icon-hit"이면서 onclick 속성 값에 findComment과 숫자가 들어가 있는지 확인
if (anchorTag.classList.contains('icon-hit') /*&& /findComment\(\d+\)/.test(anchorTag.getAttribute('onclick'))*/) {
anchorTag.innerText = "★ BEST"
// 원하는 동작 수행
}
});
// 글 목록에서 갤로그 바로가기 가능하게 만들기
var allElements = document.querySelectorAll('[class^="author"]');
allElements.forEach(function (span) {
span.addEventListener("click", function () {
window.location.href = "#popup_menu_area"
})
}, 500)
})();
})();