@jjlmoya/utils-streaming 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +134 -0
  3. package/src/category/i18n/id.ts +134 -0
  4. package/src/category/i18n/it.ts +134 -0
  5. package/src/category/i18n/ja.ts +134 -0
  6. package/src/category/i18n/ko.ts +134 -0
  7. package/src/category/i18n/nl.ts +134 -0
  8. package/src/category/i18n/pl.ts +134 -0
  9. package/src/category/i18n/pt.ts +134 -0
  10. package/src/category/i18n/ru.ts +134 -0
  11. package/src/category/i18n/sv.ts +134 -0
  12. package/src/category/i18n/tr.ts +134 -0
  13. package/src/category/i18n/zh.ts +134 -0
  14. package/src/category/index.ts +12 -0
  15. package/src/tests/i18n_coverage.test.ts +36 -0
  16. package/src/tests/locale_completeness.test.ts +1 -1
  17. package/src/tests/slug_uniqueness.test.ts +81 -0
  18. package/src/tool/sorteo/i18n/de.ts +256 -0
  19. package/src/tool/sorteo/i18n/id.ts +256 -0
  20. package/src/tool/sorteo/i18n/it.ts +256 -0
  21. package/src/tool/sorteo/i18n/ja.ts +256 -0
  22. package/src/tool/sorteo/i18n/ko.ts +256 -0
  23. package/src/tool/sorteo/i18n/nl.ts +256 -0
  24. package/src/tool/sorteo/i18n/pl.ts +256 -0
  25. package/src/tool/sorteo/i18n/pt.ts +256 -0
  26. package/src/tool/sorteo/i18n/ru.ts +256 -0
  27. package/src/tool/sorteo/i18n/sv.ts +256 -0
  28. package/src/tool/sorteo/i18n/tr.ts +256 -0
  29. package/src/tool/sorteo/i18n/zh.ts +256 -0
  30. package/src/tool/sorteo/index.ts +12 -0
  31. package/src/tool/tebasCheck/i18n/de.ts +256 -0
  32. package/src/tool/tebasCheck/i18n/id.ts +256 -0
  33. package/src/tool/tebasCheck/i18n/it.ts +256 -0
  34. package/src/tool/tebasCheck/i18n/ja.ts +256 -0
  35. package/src/tool/tebasCheck/i18n/ko.ts +256 -0
  36. package/src/tool/tebasCheck/i18n/nl.ts +256 -0
  37. package/src/tool/tebasCheck/i18n/pl.ts +256 -0
  38. package/src/tool/tebasCheck/i18n/pt.ts +256 -0
  39. package/src/tool/tebasCheck/i18n/ru.ts +256 -0
  40. package/src/tool/tebasCheck/i18n/sv.ts +256 -0
  41. package/src/tool/tebasCheck/i18n/tr.ts +256 -0
  42. package/src/tool/tebasCheck/i18n/zh.ts +256 -0
  43. package/src/tool/tebasCheck/index.ts +12 -0
@@ -0,0 +1,256 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { TebasCheckUI } from '../types';
4
+
5
+ const slug = 'isp-block-detektor';
6
+ const title = 'ISP Sperren Detektor Tebas Check';
7
+ const description = 'Diagnosetool zur Erkennung illegaler Sperren gemeinsamer Cloudflare-IPs durch spanische Internetanbieter.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Was ist der Tebas-Check?',
12
+ answer: 'Es handelt sich um ein Diagnosetool, das versucht, eine Verbindung zu bekannten Cloudflare-IPs herzustellen, die in Spanien gerichtlich gesperrt wurden, um den Zugriff auf illegale Übertragungen zu verhindern. Das Problem ist, dass durch das Sperren einer gemeinsam genutzten IP tausende legitime Websites „kaputt“ gehen.',
13
+ },
14
+ {
15
+ question: 'Warum sperrt mein Internetanbieter eine Cloudflare-IP?',
16
+ answer: 'Aufgrund dynamischer Vorsichtsmaßnahmen müssen Internetanbieter IPs von Servern sperren, die angeblich geschützte Inhalte übertragen. Durch die Nutzung von Cloudflare (CDN) teilen sich viele Websites dieselbe IP, was zu Kollateralschäden bei unschuldigen Nutzern führt.',
17
+ },
18
+ {
19
+ question: 'Wie funktioniert der Test?',
20
+ answer: 'Wir versuchen, eine kleine Ressource von den als gesperrt markierten IPs zu laden. Wenn die Verbindung aufgrund von „Timeouts“ oder Verbindungsabbrüchen nur bei diesen IPs fehlschlägt, ist dies ein klares Indiz dafür, dass Ihr Anbieter eine IP-Filterung vornimmt.',
21
+ },
22
+ {
23
+ question: 'Kann ich diese Sperre umgehen?',
24
+ answer: 'IP-Sperren sind allein durch die Änderung des DNS schwer zu umgehen. Die Lösung besteht in der Regel in der Verwendung eines VPN, des Tor-Browsers oder darin, darauf zu warten, dass Cloudflare dem legitimen Dienst, den Sie besuchen möchten, eine neue IP zuweist.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'VPN oder Proxys deaktivieren',
31
+ text: 'Damit der Test genau ist, müssen Sie die direkte Verbindung Ihres Routers (Glasfaser oder 4G/5G) ohne Zwischenschichten verwenden.',
32
+ },
33
+ {
34
+ name: 'Scan starten',
35
+ text: 'Klicken Sie auf die Diagnose-Schaltfläche. Das Tool sendet Testpakete an die unter Sperrverdacht stehenden IPs.',
36
+ },
37
+ {
38
+ name: 'Ergebnisse interpretieren',
39
+ text: 'Wenn die Ergebnisse rot angezeigt werden, bedeutet dies, dass die IP nicht erreichbar ist. Wenn sie grün sind, fließt Ihr Datenverkehr normal.',
40
+ },
41
+ {
42
+ name: 'Bericht erstellen',
43
+ text: 'Sie können die Ergebnisse verwenden, um den Vorfall Ihrem Internetanbieter zu melden, falls dieser legitime Dienste blockiert.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howToData.map((step, i) => ({
63
+ '@type': 'HowToStep',
64
+ position: i + 1,
65
+ name: step.name,
66
+ text: step.text,
67
+ })),
68
+ };
69
+
70
+ const appSchema: WithContext<SoftwareApplication> = {
71
+ '@context': 'https://schema.org',
72
+ '@type': 'SoftwareApplication',
73
+ name: title,
74
+ description,
75
+ applicationCategory: 'UtilityApplication',
76
+ operatingSystem: 'All',
77
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
78
+ inLanguage: 'de',
79
+ };
80
+
81
+ export const content: ToolLocaleContent<TebasCheckUI> = {
82
+ slug,
83
+ title,
84
+ description,
85
+ faqTitle: 'Häufig gestellte Fragen',
86
+ faq: faqData,
87
+ bibliographyTitle: 'Referenzen und Kontext',
88
+ bibliography: [
89
+ {
90
+ name: 'Cloudflare: IP-Sperren verstehen',
91
+ url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
92
+ },
93
+ {
94
+ name: 'Spanische Regelungen zu dynamischen Sperren',
95
+ url: 'https://www.poderjudicial.es/',
96
+ },
97
+ ],
98
+ howTo: howToData,
99
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
100
+ seo: [
101
+ {
102
+ type: 'title',
103
+ text: 'Warum funktioniert plötzlich nichts mehr?',
104
+ level: 2,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Willkommen in der wunderbaren Welt der <strong>„präventiven Justiz“</strong>. Wenn Sie an einem Sonntagnachmittag hier sind und legitime Websites nicht mehr geladen werden, während Twitter einwandfrei funktioniert, sind Sie wahrscheinlich ein Kollateralschaden des Kreuzzugs gegen illegale Fußballübertragungen.',
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'In Spanien haben Richter bestimmten Sportorganisationen einen „roten Knopf“ in die Hand gegeben. Dieser Knopf erlaubt es ihnen, IP-Adressen in Echtzeit und ohne direkte gerichtliche Aufsicht von Minute zu Minute zu sperren. Das Problem ist, dass sie mit einer Kirmes-Schrotflinte zielen und oft auf gemeinsam genutzte Server schießen, auf denen neben „illegalen Spielen“ auch Krankenhäuser, Universitäten oder Ihr Lieblings-Kochblog zu Hause sind.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Die Theorie des brennenden Gebäudes',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Stellen Sie sich vor, aus Wohnung 4B eines Wolkenkratzers wird ein illegaler Stream gesendet. Die logische Lösung wäre, an die Tür von 4B zu klopfen und den Strom abzustellen, oder?',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Nun, nein. Die aktuelle Lösung lautet: <strong>Das Fundament des gesamten Gebäudes wegsprengen</strong>.',
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Indem der Internetanbieter die IP eines Dienstes wie Cloudflare sperrt, schaltet er nicht nur den Piraten ab, sondern auch die anderen 50.000 legitimen Websites, die sich dieselbe digitale Adresse teilen. Wenn Sie gerade arbeiten oder lernen wollten und Ihre Website diese IP nutzt: Pech gehabt, Kollateralschaden. Beschweren Sie sich beim Oberbüchsenmacher.',
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Was genau macht dieses Diagnosetool?',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Dieses Tool führt eine technische Analyse in drei Schritten durch, um festzustellen, ob Ihr Anbieter selektive IP-Sperren anwendet:',
139
+ },
140
+ {
141
+ type: 'comparative',
142
+ columns: 3,
143
+ items: [
144
+ {
145
+ title: 'Google anpingen',
146
+ description: 'Wir prüfen, ob Sie noch „Puls“ haben. Wenn Google nicht lädt, haben Sie wahrscheinlich Ihre WLAN-Rechnung nicht bezahlt. Dies ist der grundlegende Konnektivitätstest.',
147
+ },
148
+ {
149
+ title: 'Cloudflare anpingen',
150
+ description: 'Wir versuchen, 1.1.1.1 zu erreichen. Das ist der „Kanarienvogel im Bergwerk“ für Sperren in Spanien und das Hauptziel gerichtlicher Blockaden.',
151
+ },
152
+ {
153
+ title: 'Urteil',
154
+ description: 'Wenn Google funktioniert und Cloudflare fehlschlägt, ist die Sache klar: Ihr Anbieter wendet eine selektive IP-Sperre gegen Cloudflare an.',
155
+ },
156
+ ],
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Auswirkungen dynamischer Sperren',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'comparative',
165
+ columns: 3,
166
+ items: [
167
+ {
168
+ title: 'Falsch positive Ergebnisse',
169
+ description: 'Unternehmens-Websites, private Blogs und Behördendienste können den Betrieb einstellen, wenn sie eine IP mit einem nicht autorisierten Streaming-Server teilen.',
170
+ },
171
+ {
172
+ title: 'IP Filterung',
173
+ description: 'Im Gegensatz zur DNS-Sperre verhindert die IP-Filterung die Verbindung auf Netzwerkebene, wodurch eine Änderung des DNS nicht ausreicht, um das Problem zu lösen.',
174
+ },
175
+ {
176
+ title: 'Mangelnde Transparenz',
177
+ description: 'Oft sieht der Nutzer nur einen „Timeout“-Fehler, ohne zu wissen, ob das Problem an seiner eigenen Verbindung oder an einer aktiven Sperre des Anbieters liegt.',
178
+ },
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Fragen, die niemand beantworten will',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'list',
188
+ items: [
189
+ '<strong>Ist die Verwendung illegal?</strong> Nein. Einen Server anzupingen ist so illegal wie der Blick in ein Schaufenster. Dieses Tool ist eine passive Netzwerkdiagnose. Es bricht keine Verschlüsselung, knackt keine Passwörter und greift nicht auf geschützte Inhalte zu. Es sagt Ihnen lediglich, warum Sie Ihre gewohnten Websites nicht erreichen können.',
190
+ '<strong>Wie behebe ich das?</strong> Wenn bei Ihnen eine aktive Sperre vorliegt, hilft das Ändern des DNS nicht mehr (sie kennen alle Tricks). Die einzige echte Lösung ist heute ein <strong>VPN</strong>. Durch die Verschlüsselung Ihres Datenverkehrs kann Ihr Anbieter nicht sehen, was Sie anfordern oder von wem, und kann Sie daher nicht „selektiv“ (oder versehentlich) sperren.',
191
+ ],
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: 'Streamer-Modus / OBS-Widget',
196
+ level: 3,
197
+ },
198
+ {
199
+ type: 'paragraph',
200
+ html: 'Sind Sie Streamer und möchten den Status der Zensur in Echtzeit in Ihrem Stream anzeigen? Wir haben einen speziellen, ultra-minimalistischen Modus entwickelt, mit transparentem Hintergrund (chroma-ready) und automatischer Aktualisierung alle 5 Minuten.',
201
+ },
202
+ {
203
+ type: 'list',
204
+ items: [
205
+ '<strong>Schritt 1:</strong> Fügen Sie eine neue <strong>Browser</strong>-Quelle in OBS hinzu.',
206
+ '<strong>Schritt 2:</strong> Verwenden Sie diese URL: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
207
+ '<strong>Schritt 3:</strong> Fertig! Ein großes Symbol (Grün/Rot) zeigt an, ob Ihre Verbindung sauber ist oder unter gerichtlichem Beschuss steht.',
208
+ ],
209
+ },
210
+ {
211
+ type: 'tip',
212
+ title: 'Rechtlicher Hinweis',
213
+ html: '<p>Dieses Tool steht in keiner Verbindung zu Sportorganisationen, ermöglicht keinen Zugriff auf geschützte Inhalte und umgeht keine technologischen Schutzmaßnahmen (DRM). Es informiert den Nutzer lediglich darüber, dass seine Internetverbindung künstlich verschlechtert wird.</p>',
214
+ },
215
+ ],
216
+ ui: {
217
+ faqTitle: 'Häufig gestellte Fragen',
218
+ bibliographyTitle: 'Referenzen und Kontext',
219
+ scanning: 'Scanne die Matrix...',
220
+ seekingBlocks: 'Suche nach Betonblöcken in deiner Leitung...',
221
+ blockedTitle: 'GESPERRT...',
222
+ blockedDiagnosis: 'Diagnose: „Selektive Zensur“',
223
+ blockedReason: 'Interferenzen beim Internetanbieter erkannt. Cloudflare oder DNS werden manipuliert.',
224
+ noInternetTitle: 'KEINE VERBINDUNG',
225
+ noInternetReason: 'Es scheint, als hätten Sie keinen Internetzugriff. Prüfen Sie Kabel oder Rechnung.',
226
+ successTitle: 'SIE SIND FREI',
227
+ successReason: 'Ihre Verbindung sieht sauber aus. Falls es globale Sperren gibt, betreffen sie Sie nicht.',
228
+ retryBtn: 'Die Justiz erneut herausfordern',
229
+ authorNoteTitle: 'Anmerkung des Autors:',
230
+ authorNoteText: 'Ich konnte dieses Tool nicht vollständig testen, da ich nicht von Tebas\' „schwarzer Hand“ betroffen bin. Wenn du mir helfen willst, die Diagnose zu verbessern, kontaktiere mich.',
231
+ consoleHeader: 'TEBAS_OS v3.2.0',
232
+ statusNegotiating: 'Verhandle mit deinem Router...',
233
+ statusDodging: 'Weiche dem Gerichtsbeschluss aus...',
234
+ statusCheckingPirate: 'Prüfe, ob du ein Pirat bist (Zwinker, Zwinker)...',
235
+ statusPinging: 'Pinge Google an, um zu sehen, ob du existierst...',
236
+ statusConsulting: 'Befrage das Orakel der geteilten IPs...',
237
+ statusCheckingFee: 'Prüfe, ob Tebas die Selbstständigengebühr bezahlt hat...',
238
+ statusCalculating: 'Berechne die Gewinnwahrscheinlichkeit im Lotto...',
239
+ statusDeciphering: 'Versuche, deinen Providervertrag zu entziffern...',
240
+ logStarted: "STARTE AUTONOMES PROTOKOLL ‚TEBAS_WATCH‘...",
241
+ logDetecting: '> Erkenne Anbieter und Basis-Konnektivität...',
242
+ logIspFound: '> Anbieter erkannt: ',
243
+ logConnError: '> Basis-Verbindungsfehler',
244
+ logDnsCross: '> Führe DNS-Datenabgleich aus (DoH vs. Lokal)...',
245
+ logDnsGoogle: '> Echtes DNS (Google): ',
246
+ logDnsPoisoned: '> ALARM: Manipuliertes DNS erkannt.',
247
+ logDnsNoDoh: '> DoH nicht verfügbar, überspringe DNS-Abgleich.',
248
+ logLaunchingProbes: '> Starte Sonden auf kritische Ziele...',
249
+ logIpBlocked: '> Ziel {ip}: KEINE ANTWORT (Verdacht auf IP-Sperre)',
250
+ logIpActive: '> Ziel {ip}: AKTIV',
251
+ logAlertInterference: '!!! ALARM: GERICHTLICHE INTERFERENZ !!!',
252
+ logNoInternet: 'KEIN INTERNETZUGRIFF',
253
+ logClean: 'SAUBERE VERBINDUNG. VIEL SPASS.',
254
+ logDiagError: 'DIAGNOSEFEHLER',
255
+ },
256
+ };
@@ -0,0 +1,256 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { TebasCheckUI } from '../types';
4
+
5
+ const slug = 'detektor-pemblokiran-isp';
6
+ const title = 'Detektor Pemblokiran ISP Tebas Check';
7
+ const description = 'Alat diagnosis untuk mendeteksi pemblokiran tidak sah terhadap IP Cloudflare bersama oleh ISP Spanyol.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Apa itu Tebas-Check?',
12
+ answer: 'Ini adalah alat diagnosis yang mencoba menghubungkan ke IP Cloudflare yang diketahui telah diblokir secara hukum di Spanyol untuk mencegah akses ke siaran bajakan. Masalahnya adalah dengan memblokir IP bersama, ribuan situs web sah menjadi "rusak".',
13
+ },
14
+ {
15
+ question: 'Mengapa ISP saya memblokir IP Cloudflare?',
16
+ answer: 'Karena tindakan pencegahan dinamis di mana ISP harus memblokir IP server yang diduga menyiarkan konten yang dilindungi. Dengan menggunakan Cloudflare (CDN), banyak situs web berbagi IP yang sama, menyebabkan kerusakan tambahan pada pengguna yang tidak bersalah.',
17
+ },
18
+ {
19
+ question: 'Bagaimana cara kerja tes ini?',
20
+ answer: 'Kami mencoba memuat sumber daya kecil dari IP yang ditandai sebagai diblokir. Jika koneksi gagal karena "Timeout" atau reset koneksi hanya pada IP tersebut, itu adalah indikator jelas bahwa ISP Anda menerapkan pemfilteran IP.',
21
+ },
22
+ {
23
+ question: 'Bisakah saya melewati blokir ini?',
24
+ answer: 'Pemblokiran IP sulit dilewati hanya dengan mengganti DNS. Solusinya biasanya melibatkan penggunaan VPN, browser Tor, atau menunggu Cloudflare memberikan IP baru ke layanan sah yang ingin Anda kunjungi.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Nonaktifkan VPN atau Proxy',
31
+ text: 'Agar tes akurat, Anda harus menggunakan koneksi langsung router Anda (Fiber atau 4G/5G) tanpa lapisan perantara.',
32
+ },
33
+ {
34
+ name: 'Mulai pemindaian',
35
+ text: 'Klik tombol diagnosis. Alat akan mengirim paket tes ke IP yang dicurigai diblokir.',
36
+ },
37
+ {
38
+ name: 'Interpretasikan hasil',
39
+ text: 'Jika Anda melihat hasil berwarna merah, berarti IP tersebut tidak dapat dijangkau. Jika hijau, lalu lintas Anda mengalir normal.',
40
+ },
41
+ {
42
+ name: 'Buat laporan',
43
+ text: 'Anda dapat menggunakan hasil ini untuk melaporkan insiden ke ISP Anda jika mereka memblokir layanan sah.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howToData.map((step, i) => ({
63
+ '@type': 'HowToStep',
64
+ position: i + 1,
65
+ name: step.name,
66
+ text: step.text,
67
+ })),
68
+ };
69
+
70
+ const appSchema: WithContext<SoftwareApplication> = {
71
+ '@context': 'https://schema.org',
72
+ '@type': 'SoftwareApplication',
73
+ name: title,
74
+ description,
75
+ applicationCategory: 'UtilityApplication',
76
+ operatingSystem: 'All',
77
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
78
+ inLanguage: 'id',
79
+ };
80
+
81
+ export const content: ToolLocaleContent<TebasCheckUI> = {
82
+ slug,
83
+ title,
84
+ description,
85
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
86
+ faq: faqData,
87
+ bibliographyTitle: 'Referensi dan Konteks',
88
+ bibliography: [
89
+ {
90
+ name: 'Cloudflare: Memahami Pemblokiran IP',
91
+ url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
92
+ },
93
+ {
94
+ name: 'Peraturan pemblokiran dinamis Spanyol',
95
+ url: 'https://www.poderjudicial.es/',
96
+ },
97
+ ],
98
+ howTo: howToData,
99
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
100
+ seo: [
101
+ {
102
+ type: 'title',
103
+ text: 'Mengapa semuanya berhenti berfungsi?',
104
+ level: 2,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Selamat datang di dunia <strong>"Keadilan Preventif"</strong> yang menakjubkan. Jika Anda berada di sini pada Minggu sore dan situs web sah berhenti dimuat sementara Twitter berfungsi dengan sempurna, Anda mungkin adalah korban tambahan dari kampanye melawan siaran sepak bola ilegal.',
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Di Spanyol, hakim telah memberikan "tombol merah" kepada entitas olahraga tertentu. Tombol ini memungkinkan mereka memblokir alamat IP secara real-time tanpa pengawasan yudisial langsung menit demi menit. Masalahnya adalah mereka menembak sembarangan, dan mereka sering menembak server bersama di mana, selain "pertandingan ilegal", rumah sakit, universitas, atau blog memasak favorit Anda berada.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Teori Gedung yang Terbakar',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Bayangkan sebuah siaran ilegal disiarkan dari apartemen 4B di sebuah gedung pencakar langit. Solusi logisnya adalah mengetuk pintu 4B dan memutus aliran listriknya, bukan?',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Tentu saja tidak. Solusi saat ini adalah <strong>meledakkan fondasi seluruh gedung</strong>.',
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: 'Dengan memblokir IP layanan seperti Cloudflare, penyedia internet tidak hanya menjatuhkan pembajak, tetapi juga 50.000 situs web sah lainnya yang berbagi alamat digital yang sama. Jika Anda sedang bekerja atau belajar dan situs web Anda menggunakan IP tersebut: nasib buruk, kerusakan tambahan. Silakan mengadu ke pembuat senjata.',
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Apa yang dilakukan alat diagnosis ini sebenarnya?',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Alat ini melakukan analisis teknis dalam tiga langkah untuk mengidentifikasi apakah ISP Anda menerapkan pemblokiran alamat IP selektif:',
139
+ },
140
+ {
141
+ type: 'comparative',
142
+ columns: 3,
143
+ items: [
144
+ {
145
+ title: 'Ping Google',
146
+ description: 'Kami memeriksa apakah Anda memiliki denyut nadi. Jika Google tidak dimuat, masalahnya adalah Anda belum membayar tagihan Wi-Fi. Ini adalah tes konektivitas dasar.',
147
+ },
148
+ {
149
+ title: 'Ping Cloudflare',
150
+ description: 'Kami mencoba menjangkau 1.1.1.1. Ini adalah "kenari di tambang batu bara" untuk pemblokiran di Spanyol dan target utama pemblokiran yudisial.',
151
+ },
152
+ {
153
+ title: 'Vonis',
154
+ description: 'Jika Google berfungsi dan Cloudflare gagal, sudah sangat jelas: ISP Anda menerapkan pemblokiran IP selektif terhadap Cloudflare.',
155
+ },
156
+ ],
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Dampak Pemblokiran Dinamis',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'comparative',
165
+ columns: 3,
166
+ items: [
167
+ {
168
+ title: 'Positif Palsu',
169
+ description: 'Situs web perusahaan, blog pribadi, dan layanan pemerintah dapat berhenti berfungsi jika mereka berbagi IP dengan server streaming yang tidak sah.',
170
+ },
171
+ {
172
+ title: 'Pemfilteran IP',
173
+ description: 'Berbeda dengan pemblokiran DNS, pemfilteran IP mencegah koneksi di tingkat jaringan, membuat penggantian DNS tidak cukup untuk menyelesaikan masalah.',
174
+ },
175
+ {
176
+ title: 'Kurangnya Transparansi',
177
+ description: 'Seringkali, pengguna hanya melihat kesalahan "Timeout" tanpa mengetahui apakah masalahnya adalah koneksi mereka atau pemblokiran ISP yang aktif.',
178
+ },
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Pertanyaan yang tidak ingin dijawab oleh siapa pun',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'list',
188
+ items: [
189
+ '<strong>Apakah ilegal menggunakan ini?</strong> Tidak. Melakukan ping ke server sama ilegalnya dengan melihat etalase toko. Alat ini adalah diagnosis jaringan pasif. Alat ini tidak melanggar enkripsi, tidak meretas kata sandi, dan tidak mengakses konten yang dilindungi. Alat ini hanya memberi tahu Anda mengapa Anda tidak dapat mengakses situs web biasa Anda.',
190
+ '<strong>Bagaimana cara memperbaikinya?</strong> Jika Anda memiliki blokir aktif, mengganti DNS tidak lagi membantu (mereka tahu semua triknya). Satu-satunya solusi nyata saat ini adalah <strong>VPN</strong>. Dengan mengenkripsi lalu lintas Anda, ISP Anda tidak dapat melihat apa yang Anda minta atau kepada siapa, dan oleh karena itu tidak dapat memblokir Anda "secara selektif" (atau secara tidak sengaja).',
191
+ ],
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: 'Mode Streamer / Widget OBS',
196
+ level: 3,
197
+ },
198
+ {
199
+ type: 'paragraph',
200
+ html: 'Apakah Anda seorang streamer dan ingin menunjukkan status sensor secara real-time di siaran Anda? Kami telah membuat mode khusus ultra-minimalis, dengan latar belakang transparan (siap-chroma) dan penyegaran otomatis setiap 5 menit.',
201
+ },
202
+ {
203
+ type: 'list',
204
+ items: [
205
+ '<strong>Langkah 1:</strong> Tambahkan sumber <strong>Browser</strong> baru di OBS.',
206
+ '<strong>Langkah 2:</strong> Gunakan URL ini: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
207
+ '<strong>Langkah 3:</strong> Selesai! Ikon besar (Hijau/Merah) akan muncul menunjukkan apakah koneksi Anda bersih atau berada di bawah serangan yudisial.',
208
+ ],
209
+ },
210
+ {
211
+ type: 'tip',
212
+ title: 'Pemberitahuan Hukum',
213
+ html: '<p>Alat ini tidak memiliki afiliasi dengan entitas olahraga mana pun, tidak memfasilitasi akses ke konten yang dilindungi, dan tidak menghindari tindakan perlindungan teknologi (DRM). Alat ini hanya memberi tahu pengguna bahwa koneksi internet mereka diturunkan kualitasnya secara artifisial.</p>',
214
+ },
215
+ ],
216
+ ui: {
217
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
218
+ bibliographyTitle: 'Referensi dan Konteks',
219
+ scanning: 'Memindai matriks...',
220
+ seekingBlocks: 'Mencari blokade beton di serat Anda...',
221
+ blockedTitle: 'MEMBLOKIR...',
222
+ blockedDiagnosis: 'Diagnosis: "Sensor Selektif"',
223
+ blockedReason: 'Kami mendeteksi gangguan pada ISP Anda. Cloudflare atau DNS sedang dimanipulasi.',
224
+ noInternetTitle: 'TIDAK ADA KONEKSI',
225
+ noInternetReason: 'Sepertinya Anda tidak memiliki akses internet. Periksa kabel atau tagihan Anda.',
226
+ successTitle: 'ANDA BEBAS',
227
+ successReason: 'Koneksi Anda terlihat bersih. Jika ada pemblokiran global, itu tidak memengaruhi Anda.',
228
+ retryBtn: 'Provokasi keadilan lagi',
229
+ authorNoteTitle: 'Catatan Penulis:',
230
+ authorNoteText: 'Saya belum bisa menguji utilitas ini sepenuhnya karena saya tidak terkena "tangan hitam" Tebas. Jika Anda ingin membantu saya meningkatkan diagnosis, hubungi saya.',
231
+ consoleHeader: 'TEBAS_OS v3.2.0',
232
+ statusNegotiating: 'Bernegosiasi dengan router Anda...',
233
+ statusDodging: 'Menghindari surat edaran pengadilan...',
234
+ statusCheckingPirate: 'Memeriksa apakah Anda bajak laut (kedipan mata)...',
235
+ statusPinging: 'Melakukan ping ke Google untuk melihat apakah Anda ada...',
236
+ statusConsulting: 'Berkonsultasi dengan ramalan IP bersama...',
237
+ statusCheckingFee: 'Memeriksa apakah Tebas membayar biaya mandiri...',
238
+ statusCalculating: 'Menghitung probabilitas memenangkan lotre...',
239
+ statusDeciphering: 'Mencoba menguraikan kontrak ISP Anda...',
240
+ logStarted: "MEMULAI PROTOKOL OTONOM 'TEBAS_WATCH'...",
241
+ logDetecting: '> Mendeteksi ISP dan konektivitas dasar...',
242
+ logIspFound: '> ISP terdeteksi: ',
243
+ logConnError: '> Kesalahan koneksi dasar',
244
+ logDnsCross: '> Mengeksekusi pemeriksaan silang data DNS (DoH vs Lokal)...',
245
+ logDnsGoogle: '> DNS Asli (Google): ',
246
+ logDnsPoisoned: '> WASPADA: DNS beracun terdeteksi.',
247
+ logDnsNoDoh: '> DoH tidak tersedia, melewati pemeriksaan silang DNS.',
248
+ logLaunchingProbes: '> Meluncurkan probe pada target kritis...',
249
+ logIpBlocked: '> Target {ip}: TIDAK ADA RESPON (Dicurigai blokir IP)',
250
+ logIpActive: '> Target {ip}: AKTIF',
251
+ logAlertInterference: '!!! PERINGATAN GANGGUAN YUDISIAL !!!',
252
+ logNoInternet: 'TIDAK ADA AKSES INTERNET',
253
+ logClean: 'KONEKSI BERSIH. NIKMATI.',
254
+ logDiagError: 'KESALAHAN DIAGNOSIS',
255
+ },
256
+ };