(() => { const REF_PAGE_URLS = [ 'https://5-quantum.com/teach/control/stream/view/id/934978823', 'https://5-quantum.com/teach/control/stream/view/id/935954593' ]; const REF_PAGE_SELECTOR = '.cst-achievements .badge'; const getAccessTraining = (accessTrainings) => { const arr = accessTrainings; const path = location.pathname; if (path.indexOf('editMode/1') === -1 && location.search.indexOf('editMode=1') === -1) { for (const id of arr) { if (path.indexOf(id) !== - 1) { return true; } if (document.querySelector('.breadcrumbs')) { const breadcrumbsItems = document.querySelectorAll('.breadcrumbs a'); for (const item of breadcrumbsItems) { if (item.href.indexOf(id) !== -1) { return true; } } } if (document.querySelector('.breadcrumb')) { const breadcrumbsItems = document.querySelectorAll('.breadcrumb a'); for (const item of breadcrumbsItems) { if (item.href.indexOf(id) !== -1) { return true; } } } if (document.querySelector('.cst-lesson-page-container')) { const idTraining = document.querySelector('.cst-lesson-page-container').dataset.idTraining; if (Number(id) === Number(idTraining)) { return true; } } } } }; const createStyleTemplate = () => { return ( `` ); }; const createInterfaceColumnsTemplate = () => { return ( `
` ); }; const createInterfaceInnerTemplate = () => { return ( `` ); }; const updateClever = (urls, selector) => { const tryNext = (index) => { if (index >= urls.length) return; fetch(urls[index]) .then(function (response) { return response.text(); }) .then(function (html) { let parser = new DOMParser(); let doc = parser.parseFromString(html, "text/html"); let badge = doc.querySelector(selector); if (!badge) { tryNext(index + 1); return; } let cleverCount = badge.textContent.split(' ')[0]; const progress = document.querySelector('.cst-interface-header__progress-indicator'); const sidebarClever = document.querySelector('.cst-interface-leftbar__clever'); if (progress) { progress.classList.add(`cst-interface-header__progress-indicator--${cleverCount}`); } if (sidebarClever) { const cleverFalseImg = '//fs.getcourse.ru/fileservice/file/download/a/298472/sc/117/h/17ef7409c3901778c12edf19b9d8725d.webp'; const cleverTrueImg = '//fs.getcourse.ru/fileservice/file/download/a/298472/sc/479/h/52591f5934f40509922e766b707fa60d.webp'; sidebarClever.innerHTML = ` `; } }) .catch(function (err) { console.log('Failed to fetch page: ', err); tryNext(index + 1); }); }; tryNext(0); }; const updateLinks = (urls) => { const fetchLessonState = (index, bonusFound, secretFound) => { if (index >= urls.length) { const interfaceFooter = document.querySelector('.cst-interface-footer'); if (interfaceFooter) { interfaceFooter.innerHTML = ``; } return; } fetch(urls[index]) .then(function (response) { return response.text(); }) .then(function (html) { let parser = new DOMParser(); let doc = parser.parseFromString(html, "text/html"); let bonusLesson = doc.querySelector('.user-state-reached[data-lesson-id="345350377"]'); let secretLesson = doc.querySelector('.user-state-reached[data-lesson-id="345350378"]'); fetchLessonState( index + 1, bonusFound || !!bonusLesson, secretFound || !!secretLesson ); }) .catch(function (err) { console.log('Failed to fetch page: ', err); fetchLessonState(index + 1, bonusFound, secretFound); }); }; fetchLessonState(0, false, false); }; const updateAPI = () => { fetch('https://5-quantum.com/api/user/variables') .then(function (response) { return response.text() }) .then(function (html) { let parser = new DOMParser(); let doc = parser.parseFromString(html, "text/html"); let tg_username = doc.querySelector('.tg_username'); let user_deadline = doc.querySelector('.user_deadline'); let steps_bonus = doc.querySelector('.steps_bonus'); if (tg_username.textContent.length > 0) { const interfaceUser = document.querySelector('.cst-interface-leftbar__user'); if (interfaceUser) { interfaceUser.insertAdjacentHTML('beforeend', ``); } } if (user_deadline.textContent.length > 0) { const interfaceDeadlineDate = document.querySelector('.cst-interface-header__deadline-date'); if (interfaceDeadlineDate) { interfaceDeadlineDate.textContent = user_deadline.textContent; } } if (steps_bonus.textContent.length > 0) { const earnings = document.querySelector('.cst-interface-leftbar__earnings-count'); earnings.textContent = steps_bonus.textContent + '$'; } }) .catch(function (err) { console.log('Failed to fetch page: ', err); }); }; const createInterfaceHeaderTemplate = () => { let cleverCount = 0; let userDeadline = ''; const cstAchievements = document.querySelector('.cst-achievements .badge'); if (cstAchievements) { cleverCount = cstAchievements.textContent.split(' ')[0]; } return ( `
Дедлайн
${userDeadline}
Прогресс