Fix uuidv4 on Node 18 Closes #2718

3806dcf9fbd767819398acb8890f8bad6483cce7

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +18 -18Ignore whitespace
src/endpoints/translate.js+16 -16
@@ -110,27 +110,27 @@ router.post('/google', jsonParser, async (request, response) => {
110});110});
111111
112router.post('/yandex', jsonParser, async (request, response) => {112router.post('/yandex', jsonParser, async (request, response) => {
113 const chunks = request.body.chunks;113 try {
114 const lang = request.body.lang;114 const chunks = request.body.chunks;
115 const lang = request.body.lang;
115116
116 if (!chunks || !lang) {117 if (!chunks || !lang) {
117 return response.sendStatus(400);118 return response.sendStatus(400);
118 }119 }
119120
120 // reconstruct original text to log121 // reconstruct original text to log
121 let inputText = '';122 let inputText = '';
122123
123 const params = new URLSearchParams();124 const params = new URLSearchParams();
124 for (const chunk of chunks) {125 for (const chunk of chunks) {
125 params.append('text', chunk);126 params.append('text', chunk);
126 inputText += chunk;127 inputText += chunk;
127 }128 }
128 params.append('lang', lang);129 params.append('lang', lang);
129 const ucid = uuidv4().replaceAll('-', '');130 const ucid = uuidv4().replaceAll('-', '');
130131
131 console.log('Input text: ' + inputText);132 console.log('Input text: ' + inputText);
132133
133 try {
134 const result = await fetch(`https://translate.yandex.net/api/v1/tr.json/translate?ucid=${ucid}&srv=android&format=text`, {134 const result = await fetch(`https://translate.yandex.net/api/v1/tr.json/translate?ucid=${ucid}&srv=android&format=text`, {
135 method: 'POST',135 method: 'POST',
136 body: params,136 body: params,
src/util.js+2 -2
@@ -299,8 +299,8 @@ const color = {
299 * @returns {string} A UUIDv4 string299 * @returns {string} A UUIDv4 string
300 */300 */
301function uuidv4() {301function uuidv4() {
302 if ('randomUUID' in crypto) {302 if ('crypto' in global && 'randomUUID' in global.crypto) {
303 return crypto.randomUUID();303 return global.crypto.randomUUID();
304 }304 }
305 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {305 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
306 const r = Math.random() * 16 | 0;306 const r = Math.random() * 16 | 0;