Nowpick取代999+為響應中的實際數據

捕獲特定URL,用響應中的實際數據替換999+,並在帶有延遲的Toast中顯示工作信息

  1. // ==UserScript==
  2. // @name Nowpick replace 999+ with actual data from the response
  3. // @description Capture a specific URL, replace 999+ with actual data from the response, and show job info in a toast with delay
  4. // @name:zh-CN 牛客优聘替换999+投递数为真实的数字
  5. // @description:zh-CN 捕获特定URL,用响应中的实际数据替换999+,并在带有延迟的Toast中显示工作信息
  6. // @name:ar Nowpick استبدال 999+ بالبيانات الفعلية من الاستجابة
  7. // @description:ar التقط عنوان URL معين، واستبدل 999+ بالبيانات الفعلية من الاستجابة، واعرض معلومات الوظيفة في نافذة منبثقة مع تأخير
  8. // @name:bg Nowpick замяна на 999+ с действителни данни от отговора
  9. // @description:bg Захваща определен URL адрес, заменя 999+ с действителните данни от отговора и показва информация за работата в известие със закъснение
  10. // @name:cs Nowpick nahradit 999+ skutečnými daty z odpovědi
  11. // @description:cs Zachytí specifickou URL adresu, nahradí 999+ skutečnými daty z odpovědi a zobrazí informace o práci v notifikaci se zpožděním
  12. // @name:da Nowpick erstatter 999+ med faktiske data fra svaret
  13. // @description:da Indfang en specifik URL, erstat 999+ med faktiske data fra svaret, og vis jobinfo i en toast med forsinkelse
  14. // @name:de Nowpick ersetzt 999+ durch tatsächliche Daten aus der Antwort
  15. // @description:de Erfasst eine bestimmte URL, ersetzt 999+ durch tatsächliche Daten aus der Antwort und zeigt Jobinformationen in einem Toast mit Verzögerung an
  16. // @name:el Nowpick αντικαθιστά το 999+ με πραγματικά δεδομένα από την απάντηση
  17. // @description:el Καταγράφει μια συγκεκριμένη διεύθυνση URL, αντικαθιστά το 999+ με πραγματικά δεδομένα από την απάντηση και εμφανίζει πληροφορίες εργασίας σε ένα αναδυόμενο μήνυμα με καθυστέρηση
  18. // @name:eo Nowpick anstataŭigas 999+ per faktaj datumoj el la respondo
  19. // @description:eo Kaptas specifan URL, anstataŭigas 999+ per faktaj datumoj el la respondo, kaj montras laborinformojn en ŝprucfenestro kun prokrasto
  20. // @name:es Nowpick reemplaza 999+ con datos reales de la respuesta
  21. // @description:es Captura una URL específica, reemplaza 999+ con datos reales de la respuesta y muestra información del trabajo en una notificación con demora
  22. // @name:fi Nowpick korvaa 999+ todellisilla tiedoilla vastauksesta
  23. // @description:fi Kaappaa tietyn URL-osoitteen, korvaa 999+ todellisilla tiedoilla vastauksesta ja näyttää työpaikkatietoja ilmoituksessa viiveellä
  24. // @name:fr Nowpick remplace 999+ par les données réelles de la réponse
  25. // @description:fr Capture une URL spécifique, remplace 999+ par les données réelles de la réponse et affiche les informations sur l'emploi dans une notification avec délai
  26. // @name:fr-CA Nowpick remplace 999+ par les données réelles de la réponse
  27. // @description:fr-CA Capture une URL spécifique, remplace 999+ par les données réelles de la réponse et affiche les informations sur l'emploi dans une notification avec délai
  28. // @name:he Nowpick מחליף 999+ בנתונים ממשיים מהתגובה
  29. // @description:he לוכד כתובת URL ספציפית, מחליף 999+ בנתונים ממשיים מהתגובה ומציג מידע על עבודה בהודעה קופצת עם עיכוב
  30. // @name:hr Nowpick zamijeni 999+ stvarnim podacima iz odgovora
  31. // @description:hr Hvata određeni URL, zamjenjuje 999+ stvarnim podacima iz odgovora i prikazuje informacije o poslu u obavijesti s odgodom
  32. // @name:hu Nowpick lecseréli a 999+-t a válaszból származó tényleges adatokra
  33. // @description:hu Elfog egy adott URL-t, lecseréli a 999+-t a válaszból származó tényleges adatokra, és késleltetve jeleníti meg a munkainformációkat egy értesítésben
  34. // @name:id Nowpick mengganti 999+ dengan data aktual dari respons
  35. // @description:id Menangkap URL tertentu, mengganti 999+ dengan data aktual dari respons, dan menampilkan info pekerjaan dalam toast dengan penundaan
  36. // @name:it Nowpick sostituisce 999+ con i dati effettivi dalla risposta
  37. // @description:it Cattura un URL specifico, sostituisce 999+ con i dati effettivi dalla risposta e mostra le informazioni sul lavoro in un toast con ritardo
  38. // @name:ja Nowpickは999+をレスポンスからの実際のデータに置き換えます
  39. // @description:ja 特定のURLをキャプチャし、999+をレスポンスからの実際のデータに置き換え、遅延のあるトーストでジョブ情報を表示します
  40. // @name:ka Nowpick ანაცვლებს 999+-ს პასუხიდან მიღებული ფაქტობრივი მონაცემებით
  41. // @description:ka იჭერს კონკრეტულ URL-ს, ანაცვლებს 999+-ს პასუხიდან მიღებული ფაქტობრივი მონაცემებით და აჩვენებს სამუშაოს ინფორმაციას შეტყობინებაში დაგვიანებით
  42. // @name:ko Nowpick은 응답에서 실제 데이터로 999+를 대체합니다.
  43. // @description:ko 특정 URL을 캡처하고 응답에서 실제 데이터로 999+를 대체하고 지연 시간이 있는 토스트에 작업 정보를 표시합니다.
  44. // @name:nb Nowpick erstatter 999+ med faktiske data fra responsen
  45. // @description:nb Fang en spesifikk URL, erstatt 999+ med faktiske data fra responsen og vis jobbinfo i en toast med forsinkelse
  46. // @name:nl Nowpick vervangt 999+ door actuele gegevens uit de reactie
  47. // @description:nl Legt een specifieke URL vast, vervangt 999+ door actuele gegevens uit de reactie en toont taakinformatie in een toast met vertraging
  48. // @name:pl Nowpick zastępuje 999+ rzeczywistymi danymi z odpowiedzi
  49. // @description:pl Przechwytuje określony adres URL, zastępuje 999+ rzeczywistymi danymi z odpowiedzi i wyświetla informacje o pracy w powiadomieniu z opóźnieniem
  50. // @name:pt-BR Nowpick substitui 999+ pelos dados reais da resposta
  51. // @description:pt-BR Captura um URL específico, substitui 999+ pelos dados reais da resposta e mostra informações de trabalho em um toast com atraso
  52. // @name:ro Nowpick înlocuiește 999+ cu datele reale din răspuns
  53. // @description:ro Capturează un URL specific, înlocuiește 999+ cu datele reale din răspuns și afișează informații despre job într-o notificare tip toast cu întârziere
  54. // @name:ru Nowpick заменяет 999+ на фактические данные из ответа
  55. // @description:ru Перехватывает определенный URL, заменяет 999+ на фактические данные из ответа и отображает информацию о вакансии во всплывающем уведомлении с задержкой
  56. // @name:sk Nowpick nahradí 999+ skutočnými údajmi z odpovede
  57. // @description:sk Zachytí špecifickú URL adresu, nahradí 999+ skutočnými údajmi z odpovede a zobrazí informácie o práci v notifikácii s oneskorením
  58. // @name:sr Nowpick замењује 999+ стварним подацима из одговора
  59. // @description:sr Захвата одређени URL, замењује 999+ стварним подацима из одговора и приказује информације о послу у искачућем прозору са закашњењем
  60. // @name:sv Nowpick ersätter 999+ med faktiska data från svaret
  61. // @description:sv Fånga en specifik URL, ersätt 999+ med faktiska data från svaret och visa jobbinfo i en toast med fördröjning
  62. // @name:th Nowpick แทนที่ 999+ ด้วยข้อมูลจริงจากการตอบกลับ
  63. // @description:th ดักจับ URL ที่ระบุ แทนที่ 999+ ด้วยข้อมูลจริงจากการตอบกลับ และแสดงข้อมูลงานในข้อความแจ้งเตือนพร้อมการหน่วงเวลา
  64. // @name:tr Nowpick, 999+'ı yanıttan gelen gerçek verilerle değiştirir
  65. // @description:tr Belirli bir URL'yi yakalayın, 999+'ı yanıttan gelen gerçek verilerle değiştirin ve iş bilgilerini gecikmeli bir bildirimde gösterin
  66. // @name:ug Nowpick جاۋابتىن كەلگەن ھەقىقىي سانلىق مەلۇماتلار بىلەن 999+ نى ئالماشتۇرىدۇ
  67. // @description:ug مەلۇم بىر URL نى تۇتۇۋېلىپ ، جاۋابتىن كەلگەن ھەقىقىي سانلىق مەلۇماتلار بىلەن 999+ نى ئالماشتۇرۇڭ ۋە خىزمەت ئۇچۇرلىرىنى كېچىكتۈرۈلگەن ئەسكەرتىشتە كۆرسىتىڭ
  68. // @name:uk Nowpick замінює 999+ фактичними даними з відповіді
  69. // @description:uk Захоплює певну URL-адресу, замінює 999+ фактичними даними з відповіді та відображає інформацію про роботу у спливаючому повідомленні із затримкою
  70. // @name:vi Nowpick thay thế 999+ bằng dữ liệu thực tế từ phản hồi
  71. // @description:vi Chụp một URL cụ thể, thay thế 999+ bằng dữ liệu thực tế từ phản hồi và hiển thị thông tin công việc trong thông báo toast có độ trễ
  72. // @name:zh Nowpick替换999+为响应中的实际数据
  73. // @description:zh 捕获特定URL,用响应中的实际数据替换999+,并在带有延迟的Toast中显示工作信息
  74. // @name:zh-HK Nowpick取代999+為響應中的實際數據
  75. // @description:zh-HK 捕獲特定URL,用響應中的實際數據替換999+,並在帶有延遲的Toast中顯示工作信息
  76. // @name:zh-SG Nowpick替换999+为响应中的实际数据
  77. // @description:zh-SG 捕获特定URL,用响应中的实际数据替换999+,并在带有延迟的Toast中显示工作信息
  78. // @name:zh-TW Nowpick取代999+為響應中的實際數據
  79. // @description:zh-TW 捕獲特定URL,用響應中的實際數據替換999+,並在帶有延遲的Toast中顯示工作信息
  80. // @namespace http://tampermonkey.net/
  81. // @version 1.0.4.1
  82. // @author aspen138
  83. // @match *://nowpick.nowcoder.com/*
  84. // @grant GM_xmlhttpRequest
  85. // @grant GM_addStyle
  86. // @require https://update.gf.qytechs.cn/scripts/462234/1322684/Message.js
  87. // @license MIT
  88. // ==/UserScript==
  89.  
  90.  
  91.  
  92. // key: "getDeliverNum",
  93. // value: function(t) {
  94. // if (1 === t.showStatus)
  95. // return "- -";
  96. // var e = t.inviteSuccessCnt + t.initiativeDeliverCnt;
  97. // return e > 999 ? "999+" : e
  98. // }
  99.  
  100.  
  101.  
  102.  
  103.  
  104. (function () {
  105. 'use strict';
  106.  
  107. // Function to execute the main functionality
  108. async function executeMainFunctionality() {
  109. if (window.location.href === "https://nowpick.nowcoder.com/w/hrconsole/job-manage") {
  110. window.QMSG_GLOBALS = {
  111. DEFAULTS: {
  112. showClose: true,
  113. autoClose: false,
  114. timeout: 3600 * 1000 // ms
  115. }
  116. };
  117.  
  118. const name = "JobUpdater";
  119.  
  120. function toast(s, error = false) {
  121. if (error) {
  122. Qmsg.error(`[${name}] ${s}`);
  123. console.error(`[${name}] ${s}`);
  124. } else {
  125. Qmsg.success(`[${name}] ${s}`);
  126. console.log(`[${name}] ${s}`);
  127. }
  128. }
  129.  
  130. // Function to show a toast message
  131. function showToast(message) {
  132. toast(" " + message, false); // Display
  133. }
  134.  
  135. // Function to escape special characters in CSS selectors
  136. function escapeCSSSelector(selector) {
  137. return selector.replace(/([!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g, '\\$1');
  138. }
  139.  
  140. // Function to replace the '999+' value with actual data
  141. async function replaceValues(jobName, unProcessCount) {
  142. const jobTitleElements = document.querySelectorAll('.job-title-name');
  143. const updateTasks = Array.from(jobTitleElements).map(async (el) => {
  144. if (el.textContent.trim() === jobName) {
  145. const jobInfoParent = el.closest('.job-info').parentElement.parentElement;
  146. const unProcessElement = jobInfoParent.querySelector('.tw-font-semibold');
  147. if (unProcessElement && unProcessElement.textContent.trim() === '999+') {
  148. unProcessElement.textContent = unProcessCount;
  149. showToast(`Updated job "${jobName}" with deliverNum: ${unProcessCount}`);
  150. }
  151. }
  152. });
  153. await Promise.all(updateTasks);
  154. }
  155.  
  156. // Function to delay the update (parallelized for faster updates)
  157. async function delayUpdate(summaryDetailList) {
  158. await new Promise(resolve => setTimeout(resolve, 0.0001*1000)); // 1 second delay //why we need the delay here???
  159.  
  160. const updateTasks = summaryDetailList.map(async (job) => {
  161. const deliverNum = job.unProcessCount + job.successCount + job.failCount + job.unDetermined + job.writtenInterviewCount;
  162. await replaceValues(job.jobName, deliverNum);
  163. });
  164.  
  165. await Promise.all(updateTasks);
  166. }
  167.  
  168. // Function to fetch data and initiate update (parallelized)
  169. async function fetchDataAndInitiateUpdate() {
  170. try {
  171. const response = await fetch("https://nowpick.nowcoder.com/h/resume-deliver/summary");
  172. if (response.ok) {
  173. const jsonResponse = await response.json();
  174. if (jsonResponse.data && jsonResponse.data.summaryDetailList) {
  175. const summaryDetailList = jsonResponse.data.summaryDetailList;
  176. await delayUpdate(summaryDetailList);
  177. } else {
  178. showToast("Unexpected response format");
  179. }
  180. } else {
  181. showToast("Error: " + response.statusText);
  182. }
  183. } catch (e) {
  184. showToast("Request failed: " + e.message);
  185. }
  186. }
  187.  
  188. // Execute only if we are on the specific URL
  189. await fetchDataAndInitiateUpdate();
  190. }
  191. }
  192.  
  193. // Execute the main functionality on page load
  194. executeMainFunctionality();
  195.  
  196. // Listen for hash change or pop state to detect URL changes
  197. window.addEventListener('hashchange', executeMainFunctionality);
  198. window.addEventListener('popstate', executeMainFunctionality);
  199.  
  200. // Use a MutationObserver to detect URL changes if the page uses JavaScript-based navigation
  201. const observer = new MutationObserver(() => {
  202. executeMainFunctionality();
  203. });
  204.  
  205. observer.observe(document, { childList: true, subtree: true });
  206. })();
  207.  
  208.  

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址