-
-
Notifications
You must be signed in to change notification settings - Fork 118
Expand file tree
/
Copy pathchatgpt-counter.user.js
More file actions
143 lines (141 loc) · 15.6 KB
/
chatgpt-counter.user.js
File metadata and controls
143 lines (141 loc) · 15.6 KB
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
141
142
143
// ==UserScript==
// @name ChatGPT Character Counter Limit (CCCL)
// @name:zh-CN ChatGPT 字符计数器限制
// @name:ar ChatGPT حد عداد الأحرف
// @name:bg ChatGPT Ограничение на брояча на знаци
// @name:cs ChatGPT Limit počítadla znaků (CCCL)
// @name:da ChatGPT Tegntællergrænse (CCCL)
// @name:de ChatGPT Zeichenzählerlimit
// @name:el ChatGPT Όριο μετρητή χαρακτήρων (CCCL)
// @name:en ChatGPT Character counter limit (CCCL)
// @name:eo ChatGPT Limo de nombrilo de karakteroj (CCCL)
// @name:es ChatGPT Límite del contador de caracteres (CCCL)
// @name:fi ChatGPT Merkkilaskurin raja (CCCL)
// @name:fr ChatGPT Limite du compteur de caractères (CCCL)
// @name:he ChatGPT מגבלת מונה תווים (CCCL)
// @name:hr ChatGPT Ograničenje brojača znakova (CCCL)
// @name:hu ChatGPT Karakterszámláló korlát (CCCL)
// @name:id ChatGPT Batas penghitung karakter (CCCL)
// @name:it ChatGPT Limite del contatore di caratteri (CCCL)
// @name:ja ChatGPT 文字数カウンターの制限 (CCCL)
// @name:ka ChatGPT სიმბოლოების მრიცხველის ლიმიტი (CCCL)
// @name:ko ChatGPT 문자 카운터 제한 (CCCL)
// @name:nl ChatGPT Limiet voor tekenteller (CCCL)
// @name:nb ChatGPT Tegntellergrense (CCCL)
// @name:pl ChatGPT Limit licznika znaków (CCCL)
// @name:pt-BR ChatGPT Limite do contador de caracteres (CCCL)
// @name:ro ChatGPT Limita contorului de caractere (CCCL)
// @name:ru ChatGPT Ограничение счетчика символов (CCCL)
// @name:sk ChatGPT Limit počítadla znakov (CCCL)
// @name:sr ChatGPT Ограничење бројача знакова (CCCL)
// @name:sv ChatGPT Gräns för teckenräknare (CCCL)
// @name:th ChatGPT ขีดจำกัดตัวนับอักขระ (CCCL)
// @name:tr ChatGPT Karakter sayacı sınırı (CCCL)
// @name:ug ChatGPT ھەرپ-بەلگە چەكلىمىسى (CCCL)
// @name:uk ChatGPT Обмеження лічильника символів (CCCL)
// @name:vi ChatGPT Giới hạn bộ đếm ký tự (CCCL)
// @name:zh-TW ChatGPT 字元計數器限制 (CCCL)
// @name:zh-HK ChatGPT 字元計數器限制 (CCCL)
// @name:fr-CA ChatGPT Limite du compteur de caractères (CCCL)
// @description Adds a character counter to the input field with a limit of 32732 characters. (ChatGPT has a limit of 32732 characters.)
// @description:zh-CN 添加一个字符计数器到输入框,限制为 32732 个字符。(ChatGPT 的限制是 32732 个字符。.)
// @description:ar إضافة عداد الأحرف إلى مربع الإدخال,يقتصر على 32732 الشخصيات。(ChatGPT الحد هو 32732 الشخصيات。)
// @description:bg Добавете брояч на символи към полето за въвеждане,ограничен до 32732 герои。(ChatGPT Ограничението е 32732 герои。)
// @description:cs Do vstupního pole přidejte počítadlo znaků,omezena na 32732 postavy。(ChatGPT Limit je 32732 postavy。)
// @description:da Tilføj en tegntæller til inputfeltet,begrænset til 32732 tegn。(ChatGPT Grænsen er 32732 tegn。)
// @description:de Fügen Sie dem Eingabefeld einen Zeichenzähler hinzu,beschränkt auf 32732 Charaktere。(ChatGPT Die Grenze ist 32732 Charaktere。)
// @description:el Προσθέστε έναν μετρητή χαρακτήρων στο πλαίσιο εισαγωγής,περιορίζεται σε 32732 χαρακτήρες。(ChatGPT Το όριο είναι 32732 χαρακτήρες。)
// @description:en Add a character counter to the input box,limited to 32732 characters。(ChatGPT The limit is 32732 characters。)
// @description:eo Aldonu signan nombrilon al la eniga skatolo,limigita al 32732 karakteroj。(ChatGPT La limo estas 32732 karakteroj。)
// @description:es Agregue un contador de caracteres al cuadro de entrada,circunscrito a 32732 personajes。(ChatGPT El límite es 32732 personajes。)
// @description:fi Lisää merkkilaskuri syöttöruutuun,rajoitettu 32732 hahmoja。(ChatGPT Raja on 32732 hahmoja。)
// @description:fr Ajouter un compteur de caractères à la zone de saisie,limité à 32732 personnages。(ChatGPT La limite est 32732 personnages。)
// @description:he הוסף מונה תווים לתיבת הקלט,מוגבל ל 32732 תווים。(ChatGPT הגבול הוא 32732 תווים。)
// @description:hr Dodajte brojač znakova u polje za unos,ograničeno na 32732 likovi。(ChatGPT Granica je 32732 likovi。)
// @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。)
// @description:id Tambahkan penghitung karakter ke kotak input,terbatas pada 32732 karakter。(ChatGPT Batasnya adalah 32732 karakter。)
// @description:it Aggiungi un contatore di caratteri alla casella di input,limitato a 32732 caratteri。(ChatGPT Il limite è 32732 caratteri。)
// @description:ja 入力ボックスに文字カウンターを追加する,に限定される 32732 キャラクター。(ChatGPT 限界は 32732 キャラクター。)
// @description:ka დაამატეთ სიმბოლოების მრიცხველი შეყვანის ველში,შემოიფარგლება 32732 პერსონაჟები。(ChatGPT ლიმიტი არის 32732 პერსონაჟები。)
// @description:ko 입력 상자에 문자 카운터 추가,로 제한됨 32732 문자。(ChatGPT 한도는 32732 문자。)
// @description:nl Voeg een tekenteller toe aan het invoervak,beperkt tot 32732 karakters。(ChatGPT De limiet is 32732 karakters。)
// @description:nb Legg til en tegnteller i inndataboksen,begrenset til 32732 tegn。(ChatGPT Grensen er 32732 tegn。)
// @description:pl Dodaj licznik znaków do pola wprowadzania,ograniczone do 32732 pismo。(ChatGPT Limit jest 32732 pismo。)
// @description:pt-BR Adicione um contador de caracteres à caixa de entrada,limitado a 32732 personagens。(ChatGPT O limite é 32732 personagens。)
// @description:ro Adăugați un numărător de caractere în caseta de introducere,limitat la 32732 personaje。(ChatGPT Limita este 32732 personaje。)
// @description:ru Добавьте счетчик символов в поле ввода,ограничено 32732 персонажи。(ChatGPT Предел 32732 персонажи。)
// @description:sk Do vstupného poľa pridajte počítadlo znakov,obmedzené na 32732 postavy。(ChatGPT Limit je 32732 postavy。)
// @description:sr Додајте бројач знакова у поље за унос,ограничен на 32732 ликова。(ChatGPT Граница је 32732 ликова。)
// @description:sv Lägg till en teckenräknare i inmatningsrutan,begränsat till 32732 tecken。(ChatGPT Gränsen är 32732 tecken。)
// @description:th เพิ่มตัวนับอักขระลงในกล่องอินพุต,จำกัดอยู่ที่ 32732 ตัวอักษร。(ChatGPT ขีดจำกัดคือ 32732 ตัวอักษร。)
// @description:tr Giriş kutusuna karakter sayacı ekleme,sınırlı 32732 karakterler。(ChatGPT Sınır 32732 karakterler。)
// @description:ug كىرگۈزۈش رامكىسىغا ھەرپ ھېسابلىغۇچ قوشۇڭ,بىلەنلا چەكلىنىدۇ 32732 ھەرپلەر。(ChatGPT چەك 32732 ھەرپلەر。)
// @description:uk Додайте лічильник символів у поле введення,обмежується 32732 персонажів。(ChatGPT Межа є 32732 персонажів。)
// @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。)
// @description:zh-TW 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。)
// @description:zh-HK 新增一個字元計數器到輸入框,限制為 32732 個字元。(ChatGPT 的限制是 32732 個字元。)
// @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 ,人民的勤务员 <china.qinwuyuan@gmail.com>
// @match https://chatgpt.com/*
// @grant none
// @license MIT
// @supportURL https://github.com/ChinaGodMan/UserScripts/issues
// @homepageURL https://github.com/ChinaGodMan/UserScripts
// @homepage https://github.com/ChinaGodMan/UserScripts
// @icon data:image/png;base64,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
// ==/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)
})()