-
-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathchatgpt-counter.user.js
140 lines (140 loc) · 15.5 KB
/
chatgpt-counter.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// ==UserScript==
// @name ChatGPT Character Counter Limit (CCCL)
// @description Adds a character counter to the input field with a limit of 32732 characters. (ChatGPT has a limit of 32732 characters.)
// @name:zh-CN ChatGPT 字符计数器限制
// @description:zh-CN 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.)
// @name:ar ChatGPT حد عداد الأحرف
// @description:ar إضافة عداد الأحرف إلى مربع الإدخال,يقتصر على 32732 الشخصيات。(ChatGPT الحد هو 32732 الشخصيات。)
// @name:bg ChatGPT Ограничение на брояча на знаци
// @description:bg Добавете брояч на символи към полето за въвеждане,ограничен до 32732 герои。(ChatGPT Ограничението е 32732 герои。)
// @name:cs ChatGPT Limit počítadla znaků (CCCL)
// @description:cs Do vstupního pole přidejte počítadlo znaků,omezena na 32732 postavy。(ChatGPT Limit je 32732 postavy。)
// @name:da ChatGPT Tegntællergrænse (CCCL)
// @description:da Tilføj en tegntæller til inputfeltet,begrænset til 32732 tegn。(ChatGPT Grænsen er 32732 tegn。)
// @name:de ChatGPT Zeichenzählerlimit
// @description:de Fügen Sie dem Eingabefeld einen Zeichenzähler hinzu,beschränkt auf 32732 Charaktere。(ChatGPT Die Grenze ist 32732 Charaktere。)
// @name:el ChatGPT Όριο μετρητή χαρακτήρων (CCCL)
// @description:el Προσθέστε έναν μετρητή χαρακτήρων στο πλαίσιο εισαγωγής,περιορίζεται σε 32732 χαρακτήρες。(ChatGPT Το όριο είναι 32732 χαρακτήρες。)
// @name:en ChatGPT Character counter limit (CCCL)
// @description:en Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。)
// @name:eo ChatGPT Limo de nombrilo de karakteroj (CCCL)
// @description:eo Aldonu signan nombrilon al la eniga skatolo,limigita al 32732 karakteroj。(ChatGPT La limo estas 32732 karakteroj。)
// @name:es ChatGPT Límite del contador de caracteres (CCCL)
// @description:es Agregue un contador de caracteres al cuadro de entrada,circunscrito a 32732 personajes。(ChatGPT El límite es 32732 personajes。)
// @name:fi ChatGPT Merkkilaskurin raja (CCCL)
// @description:fi Lisää merkkilaskuri syöttöruutuun,rajoitettu 32732 hahmoja。(ChatGPT Raja on 32732 hahmoja。)
// @name:fr ChatGPT Limite du compteur de caractères (CCCL)
// @description:fr Ajouter un compteur de caractères à la zone de saisie,limité à 32732 personnages。(ChatGPT La limite est 32732 personnages。)
// @name:he ChatGPT מגבלת מונה תווים (CCCL)
// @description:he הוסף מונה תווים לתיבת הקלט,מוגבל ל 32732 תווים。(ChatGPT הגבול הוא 32732 תווים。)
// @name:hr ChatGPT Ograničenje brojača znakova (CCCL)
// @description:hr Dodajte brojač znakova u polje za unos,ograničeno na 32732 likovi。(ChatGPT Granica je 32732 likovi。)
// @name:hu ChatGPT Karakterszámláló korlát (CCCL)
// @description:hu Adjon hozzá egy karakterszámlálót a beviteli mezőhöz,korlátozva 32732 karakterek。(ChatGPT A határ az 32732 karakterek。)
// @name:id ChatGPT Batas penghitung karakter (CCCL)
// @description:id Tambahkan penghitung karakter ke kotak input,terbatas pada 32732 karakter。(ChatGPT Batasnya adalah 32732 karakter。)
// @name:it ChatGPT Limite del contatore di caratteri (CCCL)
// @description:it Aggiungi un contatore di caratteri alla casella di input,limitato a 32732 caratteri。(ChatGPT Il limite è 32732 caratteri。)
// @name:ja ChatGPT 文字数カウンターの制限 (CCCL)
// @description:ja 入力ボックスに文字カウンターを追加する,に限定される 32732 キャラクター。(ChatGPT 限界は 32732 キャラクター。)
// @name:ka ChatGPT სიმბოლოების მრიცხველის ლიმიტი (CCCL)
// @description:ka დაამატეთ სიმბოლოების მრიცხველი შეყვანის ველში,შემოიფარგლება 32732 პერსონაჟები。(ChatGPT ლიმიტი არის 32732 პერსონაჟები。)
// @name:ko ChatGPT 문자 카운터 제한 (CCCL)
// @description:ko 입력 상자에 문자 카운터 추가,로 제한됨 32732 문자。(ChatGPT 한도는 32732 문자。)
// @name:nl ChatGPT Limiet voor tekenteller (CCCL)
// @description:nl Voeg een tekenteller toe aan het invoervak,beperkt tot 32732 karakters。(ChatGPT De limiet is 32732 karakters。)
// @name:nb ChatGPT Tegntellergrense (CCCL)
// @description:nb Legg til en tegnteller i inndataboksen,begrenset til 32732 tegn。(ChatGPT Grensen er 32732 tegn。)
// @name:pl ChatGPT Limit licznika znaków (CCCL)
// @description:pl Dodaj licznik znaków do pola wprowadzania,ograniczone do 32732 pismo。(ChatGPT Limit jest 32732 pismo。)
// @name:pt-BR ChatGPT Limite do contador de caracteres (CCCL)
// @description:pt-BR Adicione um contador de caracteres à caixa de entrada,limitado a 32732 personagens。(ChatGPT O limite é 32732 personagens。)
// @name:ro ChatGPT Limita contorului de caractere (CCCL)
// @description:ro Adăugați un numărător de caractere în caseta de introducere,limitat la 32732 personaje。(ChatGPT Limita este 32732 personaje。)
// @name:ru ChatGPT Ограничение счетчика символов (CCCL)
// @description:ru Добавьте счетчик символов в поле ввода,ограничено 32732 персонажи。(ChatGPT Предел 32732 персонажи。)
// @name:sk ChatGPT Limit počítadla znakov (CCCL)
// @description:sk Do vstupného poľa pridajte počítadlo znakov,obmedzené na 32732 postavy。(ChatGPT Limit je 32732 postavy。)
// @name:sr ChatGPT Ограничење бројача знакова (CCCL)
// @description:sr Додајте бројач знакова у поље за унос,ограничен на 32732 ликова。(ChatGPT Граница је 32732 ликова。)
// @name:sv ChatGPT Gräns för teckenräknare (CCCL)
// @description:sv Lägg till en teckenräknare i inmatningsrutan,begränsat till 32732 tecken。(ChatGPT Gränsen är 32732 tecken。)
// @name:th ChatGPT ขีดจำกัดตัวนับอักขระ (CCCL)
// @description:th เพิ่มตัวนับอักขระลงในกล่องอินพุต,จำกัดอยู่ที่ 32732 ตัวอักษร。(ChatGPT ขีดจำกัดคือ 32732 ตัวอักษร。)
// @name:tr ChatGPT Karakter sayacı sınırı (CCCL)
// @description:tr Giriş kutusuna karakter sayacı ekleme,sınırlı 32732 karakterler。(ChatGPT Sınır 32732 karakterler。)
// @name:ug ChatGPT ھەرپ-بەلگە چەكلىمىسى (CCCL)
// @description:ug كىرگۈزۈش رامكىسىغا ھەرپ ھېسابلىغۇچ قوشۇڭ,بىلەنلا چەكلىنىدۇ 32732 ھەرپلەر。(ChatGPT چەك 32732 ھەرپلەر。)
// @name:uk ChatGPT Обмеження лічильника символів (CCCL)
// @description:uk Додайте лічильник символів у поле введення,обмежується 32732 персонажів。(ChatGPT Межа є 32732 персонажів。)
// @name:vi ChatGPT Giới hạn bộ đếm ký tự (CCCL)
// @description:vi Thêm bộ đếm ký tự vào hộp nhập liệu,giới hạn ở 32732 nhân vật。(ChatGPT Giới hạn là 32732 nhân vật。)
// @name:zh-TW ChatGPT 字元計數器限制 (CCCL)
// @description:zh-TW 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。)
// @name:zh-HK ChatGPT 字元計數器限制 (CCCL)
// @description:zh-HK 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。)
// @name:fr-CA ChatGPT Limite du compteur de caractères (CCCL)
// @description:fr-CA Ajouter un compteur de caractères à la zone de saisie,limité à 32732 personnages。(ChatGPT La limite est 32732 personnages。)
// @namespace https://github.com/ChinaGodMan/UserScripts
// @version 1.3.1.14
// @author Emree.el on instagram ,人民的勤务员 <[email protected]>
// @match https://chatgpt.com/*
// @grant none
// @license MIT
// @supportURL https://github.com/ChinaGodMan/UserScripts/issues
// @homepageURL https://github.com/ChinaGodMan/UserScripts
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAALp0lEQVR4nO2aeUzUZxrHp81ms/vHdq9kk002u9n9o5tme2pbryoiKIcgAorcI/dwDIhQTpkBuVSuIreCity3MIAHoiheVbfac6u2tdp2u0ez2aSHtQqfzevrLE6HmYEytrbhST5h5nm+3+f5vQ8zzDAZhWI2ZmM2ZmM2ZmM27ld4FPAH+200Ls7g2nPx3HwmkvEnw+GZaMbmJ/GZbRYXHIuJV2h5WPFDO7hdFhfnqOCpUMvM28iXjgVsVfwQwrWA5HlRjM0JgTmhsFwDvnUQ1Q/xRyFhFGIOQEgHuBXDgli4ow0BuzQ+8Cvmt4rva7jls+P5EHguCJangFoHqSfMk3wcfCthfrj0LY3ji9WFPKr4vsXabaTPD4L568G7BNKPw6bRqROvg6XR0m8fz6duWex3yeCCczqXVmk5vjqHlrUFrFQ8iOFbxBM2YYwvUkLAS5A5+s1Q1YPoYQ67GG56ZtOjLuURxYMS7mlcWRIIHumw+RhkH58emiHwyQMbJYg+DjHgvxVCK0C1E4JLwTsH7CNkXbBcxS2ffNK+67MrArfw/FJ/WBYIm3SQd2x6qGthRRjoe4QUQ85RE/oR2NgIrnFSbxsAvpn0f6cL8NvEMTs/CNDCtpGpk9kLa18E4RWI29reKfqPQkQJ2PlLr5+Wvm/10GE5BHsncdk1lNsrfEGQXA9FI5YpGIaoInAMkD6XEEjYAYVHp+a/lxfrYIUfOPhBSA4Z9/3g0VtwWBfLf5x84OvkdUPpUfNom2CNSuqdfSEsEwoPWPaZI65Y9lsdyq24En5x3w4fkcEuN39w8Qb3QIjbCvkd4B0pc1u6oPzI5BQPQIQGXH2kdl0kZDeb1hf1Q1aD6fq9lA2DX4zsG5bOwH05vCqNZrd1sMoLojJg+yBUDUt8wmW+sGsip6fyMKRXgGeg1Kz2hcRCqBgy1ur1yaXg4S/1oYlQ2D259l6y66XeK4hbwENWPfwGLTkeXiDIKIWdhw0JCAP3tVDSaVwLi5c1gbhd2m2s0VPQBMrICb2n98TPhFyoGjTt3SFeRoOkPiEXL6sdPnkzT/n4MbZmDWwqhF2HjVGGgqiXdRrXvH1lLbtycq+gZgDiM6ROEBAEW2qhWgcbNk3k/QJln7qhyfts1EhdXCr7rLYAdQIX13lCdCzUH4K9Q8aEhILQVLYb1/x9ZK1uwLgm+uVVQIC/1HivheRM2DVoqCtrBlW01AjCVVDaaNwvq1DWYxM4b5XDa/N41N8L/Dyhpg2aDk1ORAj4ekD1JBqlt6zt6TfMV7dATKSsCdRqqGk3PaPxIGwtgyD/CU9KOuzundAUVN7tFcM1qywgLYXagNWwUQ2tB00TGQRCV9tqXAv2krUGnbzfqAONBpQeMi9Qh0Njv/kZeoQuM2vCH7wO8gugZT8UlMrchmjes8oCNkbzvtINCoug84BpYtaD0O1uMa6FrJW11j7YXg4RvvK+0o0x5WqGA1cxJu6LfOl26Nhvfpae+lZIiv1/rzvXkLxB3k6Ks9JTQK3ki+BVsKcReg6YJlYJQtfQYlwLXyNrCRHypyDUnfNKN54WM4JX8WzQKk7ra4kRlufdS/UOUAdM9BZkJlFllQXEeDEW5godXaDbb5qNgSB0zc3GtShPWROEr+K/oa6EKBRff53moXBXlKGufHxXR24KdPWYn6undwBK8iDSQ85JCuXfWi0/nvEC1J6MqVbCvi4YHDRNoj8IXXuTcU3tIWsRztRFr+bXZuc58ojKmSLVSr4SnljxyrINBgbMz9fT1iQ9wquN5uyMF5Dkw41oZ2ivh4MDpknxA6HrbDSubXCXtXB7fj7VuVHO7BQePWlKaN5p/hr0tNRBjIv0FafjN6MFZAbxT7UT7C2F4QHTpPqC0PU2Gtc2ir/yTtNbQIwTNcKzRQ3J66Q/1hm2boCBdvPXIihNlR7Nej6Z0QKKYunZ4AgFahjpN02GDwhdaSIc6jSsJbrJWvI0FhDnQI3w7NkKw71QrYGElbJPoivUZpu/nqHuibmVGTh84wXUprAg0RGSXOBIB5zQTU5NKghdggOkusHeXBjtlbUU8QrgML0FJDhQIzyN+RMzDjZDYaTsJXqauhY9pbFSW6Ke4adFWwL5R9JyqIyH032mObgbCoJBaAU566C3DNJXyvvTWUCSPTXC05xvOON4h+yV7mL+WgSdxVK7JYB/zWgBu1JwTl8BafYwUAFne82zrwRyPSHV3pDpLCDVnhrhacs17H2yXfbSrLR8HYfrpDZvDTcUM40qFSPpdpDpBMM18Eqvec73QKtG6oVPkLaM7Skv8EtLs9LsWZm+jGvC05Vr2Pfldtkr09nyNZxuvatdyfiMF6DV8nB5IO9qlkG2I7RnwCud8Oo+85xtgd2xoLUD4dXY8olmGdFaG35kNMOOP2ls6buju0tPjmG/820yn+1kefbpRqnNc+G2whrRncwLWbagp9ANDmyFN7vhzR7znNoJVQET3sylvKG1ZYXoWzSfn2bZkpllyw1Ry3VgvNhD6vqzDftcbJX5PEfLM0erpPYlTz6zygKaoijPsYHytVDuCeK2oHIdnCyHt7stM1wAJa6M6b3ZSziQY8N7d+4vhQYVXGyEphhZ359l6H+tRea3rbA8q2+T1NYGcMUqC9i7nnP5S0CXApc74dBmKHECkcu3gYYQuLgbrnSZ51I7tEbf9d2lyhNOl01o2qJk/mCWoffNZpkvWm55zk5vqW2NpNgqC9jjz7vbFsOxXLjaJbnSCrpEKF4Gola4FHo3wOWWCc29XGkD3UapE/qXlsOQBt7rNNR1Rsn6cKZh/nKzzJfYT95fz7lyqSu2Y3xQze+ssoC93lwrfAFO5MH1TkPe3gMdYVAklvAClNnDkQx4v31CcyofKp1kXei6VXClwbiXoDtS6ka0hvl3m2S+1G5yn0DM3L1W6lqCOKawVrQH8NeShXA0FT7qmJw3KqDJC4ROUOcCJ7OgyXsiV+8Or5eZ7iHoi5Da4xrD/PuNMl9ua9o7qJaaquXc7ovl91ZbwL5gdNsXwIAK/t5hnvP5sMsZhF5P9TI4IQ7UbtnfEyQ9Qn9v/lqjzFctncTXDofiZL1sEQxGE66wZhyKwadiPuxaLodZOsSHbTCaCrW2MBgB1xose67shG5fEHMEpyZZgMjvsDHMv1MHHd6yVrkIdGFsV1g7gIfq7bhVPQ9eK7R8GD1T+Y1/0AzDsbBjIYj+dUtgNFku8V7d9QZZr7WB603wagH0B0HNXd8uG8b2q+7j9wV0SgZ3PA/tq6b2KLBIO5zPhr12IPrunAeDwXC1fnK9WIDQ7ZgntXdu3/V1reGdEyr+rLifcSqeXzXYcLvuWRhNmNnhL1VAjzuIXoJOV3hru3nP5eoJ/e750O7Ep/1+jByJYp7i24ojEWjqnwXBhc3TP7j4W3AkXPr3zIXmJXAuY2pPlZfTpKfHjY+vavmJ4ruKw4HoGuZA41w4FT+1ixeac2nQugiEt+lZGImQD+upLq9PfPQ+B4aUVCu+6xj2Z1/LHGh+Bnod4fV804v4WzH0OUmtYNAdrlRN75Ejeghv2wLGz1jr3d1MYySUtJ7F3Gp7GgTdC2EkEM7EwYV0OJ8MR/ygTVz407DPBl7Lnv7T5kPxllt8QPI0DPtwWPEgxYkX+dmILz26JdzseBJMcTIMPmyZ/uHFo2rEV/bQ2fDlSRW/UTyocToMp1Ffmo96cfyIG5eG3XlrYAk3u5+A/cvgau00f/PNcNwXhH/fXMbPRLJa8X2Ll0N59KANn/c+DgPPw8Uk+Ohrb3Am4+2tcEj8d/k46OYyfi6MGMX3Nc6E8scRRz7u/wsIhhbBuXC4VADX6uCjVri+B94phQvxcNRB6u5oF3PjTChrFD+EOBtIzuEFfLX/MbDEobmMnVrDgTPqB+j7wNYItDx8Ppiw0268MrKYz4eeYfzgY3B4DmMjC7lx0oVLL/vz0gXlffy+32zMxmzMxmzMhkLE/wB0D3c/kOHNbgAAAABJRU5ErkJggg==
// ==/UserScript==
(function () {
'use strict'
// Function to add character counter and handle its behavior
function addCharacterCounter() {
if (document.querySelector('.gpt-charCounter')) {//存在返回
return
}
let textarea = document.querySelector('#prompt-textarea')
if (textarea) {
let charCounter = document.createElement('div')
charCounter.className = 'gpt-charCounter'
charCounter.style.fontSize = '14px'
charCounter.style.fontWeight = 'bold'
charCounter.style.marginTop = '5px'
charCounter.style.color = 'white'
charCounter.style.textShadow = '0px 0px 5px white' // Default text shadow
charCounter.textContent = '0/32732'
textarea.parentElement.appendChild(charCounter)
function updateCounter() {
let charCount = textarea.value.length
charCounter.textContent = `${charCount}/32732`
if (charCount > 32732) {
charCounter.style.color = 'white'
charCounter.style.textShadow = '0px 0px 8px red'
} else if (charCount > 0) {
charCounter.style.color = 'white'
charCounter.style.textShadow = '0px 0px 8px green'
} else {
charCounter.style.color = 'white'
charCounter.style.textShadow = '0px 0px 5px white'
}
}
textarea.addEventListener('input', function () {
updateCounter()
})
document.querySelector('body').addEventListener('click', function (event) {
const button = event.target.closest('button[data-testid="send-button"]')
if (button) updateCounter()
})
}
}
let lastUrl = location.href
new MutationObserver(() => {
const url = location.href
if (url !== lastUrl) {
lastUrl = url
addCharacterCounter()
console.log('change', url)
}
}).observe(document, { subtree: true, childList: true })
// Run the function after the page loads
window.addEventListener('load', addCharacterCounter)
})()