Skip to content
Snippets Groups Projects
Commit 90e50215 authored by Kristoph Sachsenweger's avatar Kristoph Sachsenweger
Browse files

Entfernen: Google Translate

parent e51500f5
No related branches found
No related tags found
No related merge requests found
// ==UserScript== // ==UserScript==
// @name netzradar-linker // @name netzradar-linker
// @source https://gitlab.ard.de/ida/netzradar-linker // @source https://gitlab.ard.de/ida/netzradar-linker
// @description extrahiert Metadaten (Headline, Hostnamen, URL) des gegenwärtigen Dokuments, generiert Kurz-URL, übersetzt englischsprachigen Titel ins Deutsch, und kopiert Metadaten und Kurz-URL in die Zwischenablage. // @description extrahiert Metadaten (Headline, Hostnamen, URL) des gegenwärtigen Dokuments, generiert Kurz-URL, und kopiert Metadaten und Kurz-URL in die Zwischenablage.
// @version 3 // @version 4
// @grant GM_setClipboard // @grant GM_setClipboard
// @match *://*/* // @match *://*/*
// ==/UserScript== // ==/UserScript==
...@@ -63,26 +63,6 @@ ...@@ -63,26 +63,6 @@
format: "json", format: "json",
}; };
/* Google-Translate-API */
/** URL unter der Google-Translate erreichbar ist */
const GOOGLE_TRANSLATE_API_URL = new URL(
"https://www.googleapis.com/language/translate/v2");
/**
* Parameter für Google-Translate-API.
* @typedef {Object} GoogleTranslateParams
* @property {string} key Google-API-Key
* @property {string} target Code für die Zielsprache.
* @property {string} source Code für die Ursprungssprache (wird automatisch erkannt, wenn leerer String).
*/
/**
* Google Translate-Parameter.
* @type {GoogleTranslateParams}
*/
const GOOGLE_TRANSLATE_PARAMS = {
key: "YOUR_GOOGLE_API_KEY",
target: "de",
source: "",
};
/* /*
...@@ -141,29 +121,6 @@ ...@@ -141,29 +121,6 @@
return data.shorturl; return data.shorturl;
}; };
/**
* Übersetze `text` via Google-Translate-API.
* @param {URL} apiURL URL der Google-Translate-API
* @param {GoogleTranslateParams} apiParams - API-Parameter.
* @param {string} text Zu übersetzender Text.
* @returns {Promise<string>} Der übersetzte Text.
* @throws {Error} Request ist fehlgeschlagen.
*/
const fetchTranslation = async (apiURL, apiParams, text) => {
// GET-URL bauen für Google-Translate-API
const params = { ...apiParams, q: text };
Object.entries(params).forEach(([name, value]) =>
apiURL.searchParams.append(name, value)
);
// Request durchführen
const request = await fetch(apiURL);
if (!request.ok) throw new Error(request);
const data = await request.json();
// Übersetzung zurückgeben (wenn nicht vorhanden, den Originaltext)
return data?.data?.translations[0]?.translatedText || text;
};
/* Button */ /* Button */
...@@ -237,7 +194,6 @@ ...@@ -237,7 +194,6 @@
/** /**
* Extrahiere Metadaten (Headline, Hostnamen, URL) des aktuellen Dokuments, * Extrahiere Metadaten (Headline, Hostnamen, URL) des aktuellen Dokuments,
* generiere Kurz-URL, * generiere Kurz-URL,
* übersetze fremdsprachige Headline ins Deutsch
* und kopiere Metadaten und Kurz-URL in die Zwischenablage. * und kopiere Metadaten und Kurz-URL in die Zwischenablage.
* @param {MouseEvent} event Das auslösende Klick-Event * @param {MouseEvent} event Das auslösende Klick-Event
* @param {HTMLButtonElement} button Der gedrückte Knopf * @param {HTMLButtonElement} button Der gedrückte Knopf
...@@ -270,26 +226,10 @@ ...@@ -270,26 +226,10 @@
throw new Error('Fataler Fehler, konnte short-URL nicht generieren'); throw new Error('Fataler Fehler, konnte short-URL nicht generieren');
} }
/* Wenn nötig: Versuche Headline zu übersetzen */
let translatedHeadline = headline;
if (headline !== HEADLINE_FALLBACK) {
try {
translatedHeadline = await fetchTranslation(
GOOGLE_TRANSLATE_API_URL,
GOOGLE_TRANSLATE_PARAMS,
headline
);
} catch (error) {
console.error(error);
console.error('Fehler, konnte nicht übersetzen -- fahre ohne Übersetzung fort');
}
}
/* Formatiere Ausgabe */ /* Formatiere Ausgabe */
const output = OUTPUT_TEMPLATE.replace("{{domain}}", domainName) const output = OUTPUT_TEMPLATE.replace("{{domain}}", domainName)
.replace("{{headline}}", translatedHeadline) .replace("{{headline}}", headline)
.replace("{{url}}", shortURL); .replace("{{url}}", shortURL);
// Kopiere Ausgabe in den Zwischenspeicher // Kopiere Ausgabe in den Zwischenspeicher
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment