您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Just making it a little easier to track your Y Combinator application status.
// ==UserScript== // @name Y Combinator Application Status // @namespace https://www.linkedin.com/in/jarrettcoggin // @version 2024-05-07 // @description Just making it a little easier to track your Y Combinator application status. // @author Jarrett Coggin // @match https://apply.ycombinator.com/ // @icon https://www.google.com/s2/favicons?sz=64&domain=ycombinator.com // @grant none // ==/UserScript== (function() { 'use strict'; function createAndAppendContent(parent, tag, text) { var element = document.createElement(tag); element.innerText = text; parent.appendChild(element); } window.addEventListener('load', function() { var div = document.querySelector('div[data-react-props]'); if (div) { var rawProps = div.getAttribute("data-react-props"); try { var reactProps = JSON.parse(rawProps); console.log(reactProps); reactProps.all_apps.forEach(app => { if (app.current_batch) { var appId = app.id; var selector = `a[href='apps/${appId}']`; var linkElement = document.querySelector(selector); if (linkElement) { var parentDiv = linkElement.closest('div.mb-8.overflow-hidden.rounded-xl.bg-white.p-12.shadow-md.hover\\:shadow-xl'); var newContent = document.createElement('div'); newContent.innerHTML = '<h2>Application Status:</h2>'; createAndAppendContent(newContent, 'p', 'Status: ' + app.status); createAndAppendContent(newContent, 'p', 'Rejected: ' + app.rejected); createAndAppendContent(newContent, 'p', 'Stage: ' + app.stage); createAndAppendContent(newContent, 'p', 'Invited: ' + app.invited); createAndAppendContent(newContent, 'p', 'Result: ' + app.result); createAndAppendContent(newContent, 'p', 'Updated At: ' + app.updated_at); createAndAppendContent(newContent, 'p', 'Updated By User At: ' + app.updated_by_user_at); createAndAppendContent(newContent, 'p', 'Interview: ' + app.interview); createAndAppendContent(newContent, 'p', 'Interview in Person: ' + app.interview_in_person); createAndAppendContent(newContent, 'p', 'Interview Questions Filled In: ' + app.interview_questions_filled_in); createAndAppendContent(newContent, 'p', 'Interview Time: ' + app.interview_time); createAndAppendContent(newContent, 'p', 'Interview Within 30 Mins: ' + app.interview_within_30_min); createAndAppendContent(newContent, 'p', 'Last Message Replied To: ' + app.last_message_replied_to); createAndAppendContent(newContent, 'p', 'Messages: ' + app.messages); parentDiv.appendChild(newContent); } } }); } catch (e) { console.error('Error parsing JSON or updating the page:', e); } } else { console.log('No div with data-react-props found'); } }); })();