@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.
- package/package.json +2 -1
- package/src/category/i18n/de.ts +134 -0
- package/src/category/i18n/id.ts +134 -0
- package/src/category/i18n/it.ts +134 -0
- package/src/category/i18n/ja.ts +134 -0
- package/src/category/i18n/ko.ts +134 -0
- package/src/category/i18n/nl.ts +134 -0
- package/src/category/i18n/pl.ts +134 -0
- package/src/category/i18n/pt.ts +134 -0
- package/src/category/i18n/ru.ts +134 -0
- package/src/category/i18n/sv.ts +134 -0
- package/src/category/i18n/tr.ts +134 -0
- package/src/category/i18n/zh.ts +134 -0
- package/src/category/index.ts +12 -0
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tool/sorteo/i18n/de.ts +256 -0
- package/src/tool/sorteo/i18n/id.ts +256 -0
- package/src/tool/sorteo/i18n/it.ts +256 -0
- package/src/tool/sorteo/i18n/ja.ts +256 -0
- package/src/tool/sorteo/i18n/ko.ts +256 -0
- package/src/tool/sorteo/i18n/nl.ts +256 -0
- package/src/tool/sorteo/i18n/pl.ts +256 -0
- package/src/tool/sorteo/i18n/pt.ts +256 -0
- package/src/tool/sorteo/i18n/ru.ts +256 -0
- package/src/tool/sorteo/i18n/sv.ts +256 -0
- package/src/tool/sorteo/i18n/tr.ts +256 -0
- package/src/tool/sorteo/i18n/zh.ts +256 -0
- package/src/tool/sorteo/index.ts +12 -0
- package/src/tool/tebasCheck/i18n/de.ts +256 -0
- package/src/tool/tebasCheck/i18n/id.ts +256 -0
- package/src/tool/tebasCheck/i18n/it.ts +256 -0
- package/src/tool/tebasCheck/i18n/ja.ts +256 -0
- package/src/tool/tebasCheck/i18n/ko.ts +256 -0
- package/src/tool/tebasCheck/i18n/nl.ts +256 -0
- package/src/tool/tebasCheck/i18n/pl.ts +256 -0
- package/src/tool/tebasCheck/i18n/pt.ts +256 -0
- package/src/tool/tebasCheck/i18n/ru.ts +256 -0
- package/src/tool/tebasCheck/i18n/sv.ts +256 -0
- package/src/tool/tebasCheck/i18n/tr.ts +256 -0
- package/src/tool/tebasCheck/i18n/zh.ts +256 -0
- 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 = 'detektor-blokirovok-isp';
|
|
6
|
+
const title = 'Детектор блокировок ISP Tebas Check';
|
|
7
|
+
const description = 'Диагностический инструмент для обнаружения незаконной блокировки общих IP-адресов Cloudflare испанскими интернет-провайдерами.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Что такое Tebas-Check?',
|
|
12
|
+
answer: 'Это диагностический инструмент, который пытается подключиться к известным IP-адресам Cloudflare, которые были заблокированы в судебном порядке в Испании для предотвращения доступа к пиратским трансляциям. Проблема в том, что при блокировке общего IP-адреса "ломаются" тысячи легальных сайтов.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Почему мой провайдер блокирует IP Cloudflare?',
|
|
16
|
+
answer: 'Из-за динамических предупредительных мер, согласно которым провайдеры должны блокировать IP-адреса серверов, предположительно транслирующих защищенный контент. Используя Cloudflare (CDN), многие сайты делят один и тот же IP-адрес, что наносит побочный ущерб невинным пользователям.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Как работает тест?',
|
|
20
|
+
answer: 'Мы пытаемся загрузить небольшой ресурс с IP-адресов, помеченных как заблокированные. Если соединение прерывается из-за "Тайм-аута" или сброса только на этих IP, это явный признак того, что ваш провайдер применяет фильтрацию IP.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Можно ли обойти эту блокировку?',
|
|
24
|
+
answer: 'Блокировки по IP трудно обойти просто путем смены DNS. Решение обычно заключается в использовании VPN, браузера Tor или ожидании, пока Cloudflare назначит новый IP легальному сервису, который вы пытаетесь посетить.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Отключите VPN или прокси',
|
|
31
|
+
text: 'Для точности теста вы должны использовать прямое соединение вашего роутера (Fiber или 4G/5G) без промежуточных уровней.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Запустите сканирование',
|
|
35
|
+
text: 'Нажмите кнопку диагностики. Инструмент отправит тестовые пакеты на IP-адреса, подозреваемые в блокировке.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Интерпретируйте результаты',
|
|
39
|
+
text: 'Если вы видите результаты красного цвета, это означает, что данный IP недоступен. Если зеленого — трафик проходит нормально.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Создайте отчет',
|
|
43
|
+
text: 'Вы можете использовать результаты для сообщения об инциденте своему провайдеру, если он блокирует легальные сервисы.',
|
|
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: 'ru',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Ссылки и контекст',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Cloudflare: Понимание блокировки IP',
|
|
91
|
+
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Испанские правила динамической блокировки',
|
|
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: 'Почему все перестало работать?',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Добро пожаловать в удивительный мир <strong>"превентивного правосудия"</strong>. Если вы зашли сюда в воскресенье днем и легальные сайты перестали загружаться, в то время как Twitter работает идеально, вы, вероятно, стали случайной жертвой крестового похода против нелегальных футбольных трансляций.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'В Испании судьи дали "красную кнопку" определенным спортивным организациям. Эта кнопка позволяет им блокировать IP-адреса в режиме реального времени без прямого судебного надзора каждую минуту. Проблема в том, что они целятся как из ярмарочного ружья и часто попадают в общие серверы, где помимо "нелегальных матчей" живут больницы, университеты или ваш любимый кулинарный блог.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Теория горящего здания',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Представьте, что из квартиры 4Б небоскреба ведется нелегальная трансляция. Логичным решением было бы постучать в дверь 4Б и отключить электричество, верно?',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Ну уж нет. Текущее решение — <strong>взорвать фундамент всего здания</strong>.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Блокируя IP такого сервиса, как Cloudflare, интернет-провайдер не только отключает пирата, но и остальные 50 000 легальных сайтов, которые делили этот же цифровой адрес. Если вы работали или учились, и ваш сайт использовал этот IP: не повезло, побочный ущерб. Жалуйтесь главному оружейнику.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Что именно делает этот диагностический инструмент?',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Этот инструмент проводит технический анализ в три этапа, чтобы определить, применяет ли ваш провайдер выборочную блокировку IP-адресов:',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
columns: 3,
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Пинг Google',
|
|
146
|
+
description: 'Мы проверяем, есть ли у вас пульс. Если Google не загружается, проблема в том, что вы не оплатили счет за Wi-Fi. Это базовый тест на подключение.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
title: 'Пинг Cloudflare',
|
|
150
|
+
description: 'Мы пытаемся достучаться до 1.1.1.1. Это "канарейка в угольной шахте" для блокировок в Испании и главная цель судебных блокировок.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: 'Вердикт',
|
|
154
|
+
description: 'Если Google работает, а Cloudflare — нет, все предельно ясно: ваш провайдер применяет выборочную блокировку IP для Cloudflare.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Последствия динамической блокировки',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'comparative',
|
|
165
|
+
columns: 3,
|
|
166
|
+
items: [
|
|
167
|
+
{
|
|
168
|
+
title: 'Ложные срабатывания',
|
|
169
|
+
description: 'Сайты компаний, личные блоги и государственные службы могут перестать работать, если они делят IP с неавторизованным стриминговым сервером.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'Фильтрация IP',
|
|
173
|
+
description: 'В отличие от блокировки DNS, фильтрация IP препятствует соединению на сетевом уровне, поэтому простой смены DNS недостаточно для решения проблемы.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: 'Отсутствие прозрачности',
|
|
177
|
+
description: 'Часто пользователь видит только ошибку "Timeout", не зная, в чем проблема: в его соединении или активной блокировке провайдера.',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: 'Вопросы, на которые никто не хочет отвечать',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'list',
|
|
188
|
+
items: [
|
|
189
|
+
'<strong>Законно ли это использовать?</strong> Да. Пинговать сервер так же законно, как смотреть на витрину магазина. Этот инструмент является пассивной сетевой диагностикой. Он не взламывает шифрование, не подбирает пароли и не обращается к защищенному контенту. Он просто сообщает вам, почему вы не можете получить доступ к своим обычным сайтам.',
|
|
190
|
+
'<strong>Как это исправить?</strong> Если у вас есть активная блокировка, смена DNS больше не помогает (они знают все уловки). Единственное реальное решение на сегодня — <strong>VPN</strong>. Шифруя ваш трафик, провайдер не может видеть, что вы запрашиваете и у кого, и, следовательно, не может заблокировать вас "выборочно" (или по ошибке).',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'title',
|
|
195
|
+
text: 'Режим стримера / Виджет OBS',
|
|
196
|
+
level: 3,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'paragraph',
|
|
200
|
+
html: 'Вы стример и хотите показывать статус цензуры в реальном времени на своем стриме? Мы создали специальный ультра-минималистичный режим с прозрачным фоном (chroma-ready) и автообновлением каждые 5 минут.',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'list',
|
|
204
|
+
items: [
|
|
205
|
+
'<strong>Шаг 1:</strong> Добавьте новый источник <strong>Браузер</strong> в OBS.',
|
|
206
|
+
'<strong>Шаг 2:</strong> Используйте этот URL: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
|
+
'<strong>Шаг 3:</strong> Готово! Появится большая иконка (зеленая/красная), указывающая на чистоту вашего соединения или на наличие судебной атаки.',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'tip',
|
|
212
|
+
title: 'Юридическое уведомление',
|
|
213
|
+
html: '<p>Этот инструмент не связан ни с одной спортивной организацией, не облегчает доступ к защищенному контенту и не обходит технологические меры защиты (DRM). Он просто информирует пользователя о том, что его интернет-соединение искусственно деградировано.</p>',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
ui: {
|
|
217
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
218
|
+
bibliographyTitle: 'Ссылки и контекст',
|
|
219
|
+
scanning: 'Сканирование матрицы...',
|
|
220
|
+
seekingBlocks: 'Поиск бетонных блоков в вашем оптоволокне...',
|
|
221
|
+
blockedTitle: 'БЛОКИРОВКА...',
|
|
222
|
+
blockedDiagnosis: 'Диагноз: "Выборочная цензура"',
|
|
223
|
+
blockedReason: 'Мы обнаружили вмешательство вашего провайдера. Cloudflare или DNS подвергаются манипуляциям.',
|
|
224
|
+
noInternetTitle: 'НЕТ СОЕДИНЕНИЯ',
|
|
225
|
+
noInternetReason: 'Похоже, у вас нет доступа к интернету. Проверьте кабель или оплату счета.',
|
|
226
|
+
successTitle: 'ВЫ СВОБОДНЫ',
|
|
227
|
+
successReason: 'Ваше соединение выглядит чистым. Если есть глобальные блокировки, они вас не затрагивают.',
|
|
228
|
+
retryBtn: 'Снова бросить вызов правосудию',
|
|
229
|
+
authorNoteTitle: 'Заметка автора:',
|
|
230
|
+
authorNoteText: 'Я не смог полностью протестировать эту утилиту, так как меня не коснулась "черная рука" Тебаса. Если вы хотите помочь мне улучшить диагностику, свяжитесь со мной.',
|
|
231
|
+
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
|
+
statusNegotiating: 'Переговоры с вашим роутером...',
|
|
233
|
+
statusDodging: 'Уклонение от судебного циркуляра...',
|
|
234
|
+
statusCheckingPirate: 'Проверка, не пират ли вы (подмигивание)...',
|
|
235
|
+
statusPinging: 'Пингуем Google, чтобы проверить ваше существование...',
|
|
236
|
+
statusConsulting: 'Консультация с оракулом общих IP...',
|
|
237
|
+
statusCheckingFee: 'Проверка, оплатил ли Тебас взнос для самозанятых...',
|
|
238
|
+
statusCalculating: 'Расчет вероятности выигрыша в лотерею...',
|
|
239
|
+
statusDeciphering: 'Попытка расшифровать контракт с провайдером...',
|
|
240
|
+
logStarted: "ЗАПУСК АВТОНОМНОГО ПРОТОКОЛА 'TEBAS_WATCH'...",
|
|
241
|
+
logDetecting: '> Определение провайдера и базового подключения...',
|
|
242
|
+
logIspFound: '> Провайдер обнаружен: ',
|
|
243
|
+
logConnError: '> Ошибка базового подключения',
|
|
244
|
+
logDnsCross: '> Выполнение перекрестной проверки данных DNS (DoH vs Local)...',
|
|
245
|
+
logDnsGoogle: '> Реальный DNS (Google): ',
|
|
246
|
+
logDnsPoisoned: '> ТРЕВОГА: Обнаружен отравленный DNS.',
|
|
247
|
+
logDnsNoDoh: '> DoH недоступен, пропуск перекрестной проверки DNS.',
|
|
248
|
+
logLaunchingProbes: '> Запуск зондов по критическим целям...',
|
|
249
|
+
logIpBlocked: '> Цель {ip}: НЕТ ОТВЕТА (Подозрение на блокировку IP)',
|
|
250
|
+
logIpActive: '> Цель {ip}: АКТИВЕН',
|
|
251
|
+
logAlertInterference: '!!! ТРЕВОГА СУДЕБНОГО ВМЕШАТЕЛЬСТВА !!!',
|
|
252
|
+
logNoInternet: 'НЕТ ДОСТУПА В ИНТЕРНЕТ',
|
|
253
|
+
logClean: 'ЧИСТОЕ СОЕДИНЕНИЕ. НАСЛАЖДАЙТЕСЬ.',
|
|
254
|
+
logDiagError: 'ОШИБКА ДИАГНОСТИКИ',
|
|
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 = 'isp-blockerings-detektor';
|
|
6
|
+
const title = 'ISP blockeringsdetektor Tebas Check';
|
|
7
|
+
const description = 'Diagnostikverktyg för att upptäcka olaglig blockering av delade Cloudflare-IP-adresser av spanska internetleverantörer.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Vad är Tebas-Check?',
|
|
12
|
+
answer: 'Det är ett diagnostikverktyg som försöker ansluta till kända Cloudflare-IP-adresser som har blockerats rättsligt i Spanien för att förhindra åtkomst till piratsändningar. Problemet är att genom att blockera en delad IP-adress "går" tusentals legitima webbplatser sönder.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Varför blockerar min internetleverantör en Cloudflare-IP?',
|
|
16
|
+
answer: 'På grund av dynamiska försiktighetsåtgärder där internetleverantörer måste blockera IP-adresser till servrar som påstås sända skyddat innehåll. Genom att använda Cloudflare (CDN) delar många webbplatser samma IP-adress, vilket orsakar sidoskador för oskyldiga användare.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Hur fungerar testet?',
|
|
20
|
+
answer: 'Vi försöker ladda en liten resurs från de IP-adresser som markerats som blockerade. Om anslutningen misslyckas på grund av "Timeout" eller att anslutningen återställs endast på dessa IP-adresser, är det en tydlig indikator på att din leverantör tillämpar IP-filtrering.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Kan jag kringgå denna blockering?',
|
|
24
|
+
answer: 'IP-blockeringar är svåra att kringgå enbart genom att byta DNS. Lösningen innebär vanligtvis att man använder en VPN, Tor-webbläsaren eller väntar på att Cloudflare tilldelar en ny IP-adress till den legitima tjänst du försöker besöka.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Inaktivera VPN eller proxy',
|
|
31
|
+
text: 'För att testet ska vara korrekt måste du använda din routers direktanslutning (Fiber eller 4G/5G) utan mellanhänder.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Starta skanningen',
|
|
35
|
+
text: 'Klicka på diagnostikknappen. Verktyget skickar testpaket till de IP-adresser som misstänks för blockering.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Tolka resultaten',
|
|
39
|
+
text: 'Om du ser resultat i rött betyder det att IP-adressen inte kan nås. Om den är grön flyter din trafik normalt.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Generera rapport',
|
|
43
|
+
text: 'Du kan använda resultaten för att rapportera händelsen till din internetleverantör om de blockerar legitima tjänster.',
|
|
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: 'sv',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Vanliga frågor',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Referenser och kontext',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Cloudflare: Förstå IP-blockering',
|
|
91
|
+
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Spanska regler för dynamisk blockering',
|
|
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: 'Varför har allt slutat fungera?',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Välkommen till den underbara världen av <strong>"förebyggande rättvisa"</strong>. Om du är här en söndagseftermiddag och legitima webbplatser har slutat laddas medan Twitter fungerar perfekt, är du förmodligen ett sidooffer i korståget mot olagliga fotbollssändningar.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'I Spanien har domare gett en "röd knapp" till vissa idrottsorganisationer. Denna knapp låter dem blockera IP-adresser i realtid utan direkt rättslig tillsyn minut för minut. Problemet är att de siktar med ett tivoligevär och ofta träffar delade servrar där, förutom "olagliga matcher", även sjukhus, universitet eller din favoritmatblogg huserar.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Teorin om den brinnande byggnaden',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Föreställ dig att en olaglig stream sänds från lägenhet 4B i en skyskrapa. Den logiska lösningen vore att knacka på dörren till 4B och bryta strömmen, eller hur?',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Nåväl, nej. Den nuvarande lösningen är att <strong>spränga grunden till hela byggnaden</strong>.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Genom att blockera IP-adressen för en tjänst som Cloudflare tar internetleverantören inte bara ner piraten, utan även de andra 50 000 legitima webbplatserna som delade samma digitala adress. Om du arbetade eller studerade och din webbplats använde den IP-adressen: otur, sidoskada. Klaga hos mästersmeden.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Vad gör det här diagnostikverktyget exakt?',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Det här verktyget utför en teknisk analys i tre steg för att identifiera om din leverantör tillämpar selektiv IP-adressblockering:',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
columns: 3,
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Ping Google',
|
|
146
|
+
description: 'Vi kontrollerar om du har en "puls". Om Google inte laddas är problemet att du inte har betalat din Wi-Fi-räkning. Detta är baslinjetestet för anslutning.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
title: 'Ping Cloudflare',
|
|
150
|
+
description: 'Vi försöker nå 1.1.1.1. Det är "kanariefågeln i kolgruvan" för blockering i Spanien och huvudmålet för rättsliga blockeringar.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: 'Dom',
|
|
154
|
+
description: 'Om Google fungerar och Cloudflare misslyckas är det glasklart: din internetleverantör tillämpar selektiv IP-blockering av Cloudflare.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Inverkan av dynamisk blockering',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'comparative',
|
|
165
|
+
columns: 3,
|
|
166
|
+
items: [
|
|
167
|
+
{
|
|
168
|
+
title: 'Falska positiva',
|
|
169
|
+
description: 'Företagswebbplatser, personliga bloggar och statliga tjänster kan sluta fungera om de delar en IP-adress med en obehörig streamingserver.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'IP filtrering',
|
|
173
|
+
description: 'Till skillnad från DNS-blockering förhindrar IP-filtrering anslutning på nätverksnivå, vilket gör att det inte räcker att byta DNS för att lösa problemet.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: 'Brist på transparens',
|
|
177
|
+
description: 'Ofta ser användaren bara ett "Timeout"-fel utan att veta om problemet är deras anslutning eller en aktiv blockering från leverantören.',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: 'Frågor som ingen vill svara på',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'list',
|
|
188
|
+
items: [
|
|
189
|
+
'<strong>Är det olagligt att använda detta?</strong> Nej. Att pinga en server är lika olagligt som att titta i ett skyltfönster. Det här verktyget är en passiv nätverksdiagnostik. Det bryter inte kryptering, knäcker inte lösenord och kommer inte åt skyddat innehåll. Det talar bara om för dig varför du inte kan komma åt dina vanliga webbplatser.',
|
|
190
|
+
'<strong>Hur fixar jag det?</strong> Om du har en aktiv blockering hjälper det inte längre att byta DNS (de kan alla knep). Den enda verkliga lösningen idag är en <strong>VPN</strong>. Genom att kryptera din trafik kan din leverantör inte se vad du frågar efter eller till vem, och kan därför inte blockera dig "selektivt" (eller av misstag).',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'title',
|
|
195
|
+
text: 'Streamer-läge / OBS-widget',
|
|
196
|
+
level: 3,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'paragraph',
|
|
200
|
+
html: 'Är du en streamer och vill visa statusen för censur i realtid i din stream? Vi har skapat ett speciellt ultra-minimalistiskt läge, med transparent bakgrund (chroma-ready) och automatisk uppdatering var 5:e minut.',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'list',
|
|
204
|
+
items: [
|
|
205
|
+
'<strong>Steg 1:</strong> Lägg till en ny <strong>Webbläsare</strong>-källa i OBS.',
|
|
206
|
+
'<strong>Steg 2:</strong> Använd denna URL: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
|
+
'<strong>Steg 3:</strong> Klart! En stor ikon (Grön/Röd) visas som indikerar om din anslutning är ren eller under rättslig attack.',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'tip',
|
|
212
|
+
title: 'Rättsligt meddelande',
|
|
213
|
+
html: '<p>Detta verktyg har ingen anknytning till någon idrottsorganisation, underlättar inte åtkomst till skyddat innehåll och kringgår inte tekniska skyddsåtgärder (DRM). Det informerar helt enkelt användaren om att deras internetanslutning är artificiellt försämrad.</p>',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
ui: {
|
|
217
|
+
faqTitle: 'Vanliga frågor',
|
|
218
|
+
bibliographyTitle: 'Referenser och kontext',
|
|
219
|
+
scanning: 'Skannar matrisen...',
|
|
220
|
+
seekingBlocks: 'Letar efter betongblock i din fiber...',
|
|
221
|
+
blockedTitle: 'BLOCKERAR...',
|
|
222
|
+
blockedDiagnosis: 'Diagnos: "Selektiv censur"',
|
|
223
|
+
blockedReason: 'Vi upptäckte störningar hos din leverantör. Cloudflare eller DNS manipuleras.',
|
|
224
|
+
noInternetTitle: 'INGEN ANSLUTNING',
|
|
225
|
+
noInternetReason: 'Det verkar som om du inte har tillgång till internet. Kontrollera din kabel eller fakturan.',
|
|
226
|
+
successTitle: 'DU ÄR FRI',
|
|
227
|
+
successReason: 'Din anslutning ser ren ut. Om det finns globala blockeringar påverkar de inte dig.',
|
|
228
|
+
retryBtn: 'Utmana rättvisan igen',
|
|
229
|
+
authorNoteTitle: 'Författarens anteckning:',
|
|
230
|
+
authorNoteText: 'Jag har inte kunnat testa detta verktyg fullt ut eftersom jag inte påverkas av Tebas "svarta hand". Om du vill hjälpa mig att förbättra diagnosen, kontakta mig.',
|
|
231
|
+
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
|
+
statusNegotiating: 'Förhandlar med din router...',
|
|
233
|
+
statusDodging: 'Smitar från domstolens cirkulär...',
|
|
234
|
+
statusCheckingPirate: 'Kontrollerar om du är en pirat (blink, blink)...',
|
|
235
|
+
statusPinging: 'Pingar Google för att se om du existerar...',
|
|
236
|
+
statusConsulting: 'Rådfrågar oraklet för delade IP-adresser...',
|
|
237
|
+
statusCheckingFee: 'Kontrollerar om Tebas betalat egenavgiften...',
|
|
238
|
+
statusCalculating: 'Beräknar sannolikheten att vinna på lotto...',
|
|
239
|
+
statusDeciphering: 'Försöker tyda ditt kontrakt med leverantören...',
|
|
240
|
+
logStarted: "STARTAR AUTONOMT PROTOKOLL 'TEBAS_WATCH'...",
|
|
241
|
+
logDetecting: '> Detekterar leverantör och grundläggande anslutning...',
|
|
242
|
+
logIspFound: '> Leverantör hittad: ',
|
|
243
|
+
logConnError: '> Grundläggande anslutningsfel',
|
|
244
|
+
logDnsCross: '> Utför DNS-datakontroll (DoH vs Lokal)...',
|
|
245
|
+
logDnsGoogle: '> Verklig DNS (Google): ',
|
|
246
|
+
logDnsPoisoned: '> VARNING: Förgiftad DNS upptäckt.',
|
|
247
|
+
logDnsNoDoh: '> DoH ej tillgängligt, hoppar över DNS-kontroll.',
|
|
248
|
+
logLaunchingProbes: '> Skickar sonder mot kritiska mål...',
|
|
249
|
+
logIpBlocked: '> Mål {ip}: INGET SVAR (Misstänkt IP-blockering)',
|
|
250
|
+
logIpActive: '> Mål {ip}: AKTIV',
|
|
251
|
+
logAlertInterference: '!!! VARNING FÖR RÄTTSLIG STÖRNING !!!',
|
|
252
|
+
logNoInternet: 'INGEN INTERNETÅTKOMST',
|
|
253
|
+
logClean: 'REN ANSLUTNING. NJUT.',
|
|
254
|
+
logDiagError: 'DIAGNOSTIKFEL',
|
|
255
|
+
},
|
|
256
|
+
};
|