{"id":359,"date":"2026-05-04T14:45:51","date_gmt":"2026-05-04T12:45:51","guid":{"rendered":"https:\/\/blirtyapp.com\/?page_id=359"},"modified":"2026-07-06T10:15:50","modified_gmt":"2026-07-06T08:15:50","slug":"spolecznosc","status":"publish","type":"page","link":"https:\/\/blirtyapp.com\/index.php\/spolecznosc\/","title":{"rendered":"Spo\u0142eczno\u015b\u0107"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h1 class=\"wp-block-heading has-medium-font-size\">Standardy bezpiecze\u0144stwa dzieci<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Blirty jest aplikacj\u0105 spo\u0142eczno\u015bciow\u0105 przeznaczon\u0105 wy\u0142\u0105cznie dla os\u00f3b, kt\u00f3re uko\u0144czy\u0142y 18 lat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Blirty stanowczo zabrania wykorzystywania seksualnego dzieci i nadu\u017cy\u0107 wobec dzieci, w tym child sexual abuse and exploitation (CSAE) oraz child sexual abuse material (CSAM).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W Blirty zabronione jest tworzenie, publikowanie, przesy\u0142anie, udost\u0119pnianie, promowanie, \u017c\u0105danie lub rozpowszechnianie jakichkolwiek tre\u015bci lub zachowa\u0144 zwi\u0105zanych z wykorzystywaniem seksualnym dzieci lub nara\u017caniem dzieci na niebezpiecze\u0144stwo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W szczeg\u00f3lno\u015bci zabronione s\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>child sexual abuse material (CSAM), czyli materia\u0142y przedstawiaj\u0105ce seksualne wykorzystywanie dzieci;<\/li>\n\n\n\n<li>grooming, czyli nawi\u0105zywanie relacji z dzieckiem w celu wykorzystania seksualnego;<\/li>\n\n\n\n<li>sextortion, czyli szanta\u017c seksualny wobec dziecka;<\/li>\n\n\n\n<li>seksualizacja os\u00f3b nieletnich;<\/li>\n\n\n\n<li>nak\u0142anianie os\u00f3b nieletnich do czynno\u015bci seksualnych;<\/li>\n\n\n\n<li>handel dzie\u0107mi lub u\u0142atwianie ich wykorzystywania;<\/li>\n\n\n\n<li>publikowanie, udost\u0119pnianie lub \u017c\u0105danie intymnych tre\u015bci dotycz\u0105cych os\u00f3b nieletnich;<\/li>\n\n\n\n<li>ka\u017cde inne zachowanie, kt\u00f3re wykorzystuje, krzywdzi lub zagra\u017ca dzieciom.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">U\u017cytkownicy mog\u0105 zg\u0142asza\u0107 naruszenia bezpo\u015brednio w aplikacji Blirty, w tym zg\u0142asza\u0107 u\u017cytkownik\u00f3w, posty oraz inne tre\u015bci dost\u0119pne w aplikacji. U\u017cytkownicy mog\u0105 r\u00f3wnie\u017c skontaktowa\u0107 si\u0119 z naszym supportem, aby zg\u0142osi\u0107 obawy dotycz\u0105ce bezpiecze\u0144stwa, nadu\u017cy\u0107 lub tre\u015bci naruszaj\u0105cych nasze zasady.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ka\u017cde zg\u0142oszenie dotycz\u0105ce bezpiecze\u0144stwa dzieci traktujemy priorytetowo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po uzyskaniu informacji o tre\u015bciach lub zachowaniach zwi\u0105zanych z CSAE lub CSAM podejmujemy odpowiednie dzia\u0142ania, kt\u00f3re mog\u0105 obejmowa\u0107:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>analiz\u0119 zg\u0142oszenia;<\/li>\n\n\n\n<li>usuni\u0119cie niedozwolonych tre\u015bci;<\/li>\n\n\n\n<li>ograniczenie, zawieszenie lub usuni\u0119cie konta u\u017cytkownika;<\/li>\n\n\n\n<li>zabezpieczenie informacji wymaganych przez prawo;<\/li>\n\n\n\n<li>zg\u0142oszenie potwierdzonych przypadk\u00f3w CSAM w\u0142a\u015bciwym organom lub odpowiednim organizacjom, je\u015bli jest to wymagane przez obowi\u0105zuj\u0105ce przepisy.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Blirty zobowi\u0105zuje si\u0119 do przestrzegania obowi\u0105zuj\u0105cych przepis\u00f3w dotycz\u0105cych bezpiecze\u0144stwa dzieci, przeciwdzia\u0142ania wykorzystywaniu seksualnemu dzieci oraz reagowania na child sexual abuse material (CSAM).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kontakt ds. bezpiecze\u0144stwa dzieci:<br><strong>support@blirtyapp.com<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Te standardy dotycz\u0105 aplikacji Blirty publikowanej przez BLIRTY SP\u00d3\u0141KA Z OGRANICZON\u0104 ODPOWIEDZIALNO\u015aCI\u0104.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><br><strong>Usuni\u0119cie konta<\/strong><\/p>\n\n\n\n<div id=\"delete-root\" style=\"max-width:520px;margin:32px auto;padding:24px;border:1px solid #eee;border-radius:12px;font-family:system-ui, -apple-system, Segoe UI, Roboto;\">\n  <div id=\"step-phone\">\n    <label for=\"phone\" style=\"display:block;margin:8px 0 4px;\">Podaj numer telefonu u\u017cyty do tworzenia konta<\/label>\n    <div style=\"display:flex;gap:8px;align-items:center;\">\n      <input id=\"phone\" type=\"tel\" maxlength=\"9\" placeholder=\"123 456 789\" style=\"flex:1;padding:10px 12px;border:1px solid #ccc;border-radius:8px;\">\n      <button id=\"send-sms\" style=\"padding:10px 14px;border:0;background:#111;color:#fff;border-radius:8px;cursor:pointer;\">Wy\u015blij SMS<\/button>\n    <\/div>\n    <small style=\"color:#666;\"><b>+48<\/b> zostanie dodane automatycznie.<\/small>\n  <\/div>\n\n  <div id=\"step-code\" style=\"display:none;margin-top:16px;\">\n    <label for=\"code\" style=\"display:block;margin:8px 0 4px;\">Kod z SMS (6 cyfr)<\/label>\n    <div style=\"display:flex;gap:8px;align-items:center;\">\n      <input id=\"code\" type=\"text\" inputmode=\"numeric\" maxlength=\"6\" placeholder=\"123456\" style=\"flex:1;padding:10px 12px;border:1px solid #ccc;border-radius:8px;\">\n      <button id=\"verify\" style=\"padding:10px 14px;border:0;background:#111;color:#fff;border-radius:8px;cursor:pointer;\">Potwierd\u017a kod<\/button>\n    <\/div>\n  <\/div>\n\n  <div id=\"step-delete\" style=\"display:none;margin-top:16px;\">\n    <label for=\"reason\" style=\"display:block;margin:8px 0 4px;\">Pow\u00f3d (opcjonalnie)<\/label>\n    <select id=\"reason\" style=\"padding:10px 12px;border:1px solid #ccc;border-radius:8px;width:100%;\">\n      <option value=\"\">\u2013 wybierz \u2013<\/option>\n      <option value=\"user_request\">Chc\u0119 usun\u0105\u0107 konto<\/option>\n      <option value=\"privacy\">Prywatno\u015b\u0107<\/option>\n      <option value=\"no_matches\">Za ma\u0142o dopasowa\u0144<\/option>\n      <option value=\"other\">Inny pow\u00f3d<\/option>\n    <\/select>\n\n    <button id=\"delete\" style=\"margin-top:14px;padding:12px 16px;border:0;background:#d32f2f;color:#fff;border-radius:8px;cursor:pointer;width:100%;\">Usu\u0144 konto<\/button>\n  <\/div>\n\n  <div id=\"msg\" style=\"margin-top:12px;color:#333;\"><\/div>\n\n  <!-- Niewidoczny kontener reCAPTCHA (wymagany przez Firebase Phone Auth) -->\n  <div id=\"recaptcha-container\"><\/div>\n<\/div>\n\n<script type=\"module\">\n\nconst friendlyError = (err) => {\n    const code = err?.code || \"\";\n    switch (code) {\n      case \"auth\/invalid-phone-number\":\n        return \"Nieprawid\u0142owy numer telefonu. Sprawd\u017a format (np. +48XXXXXXXXX).\";\n      case \"auth\/missing-phone-number\":\n        return \"Podaj numer telefonu.\";\n      case \"auth\/quota-exceeded\":\n        return \"Przekroczono limit SMS. Spr\u00f3buj p\u00f3\u017aniej.\";\n      case \"auth\/too-many-requests\":\n        return \"Zbyt wiele pr\u00f3b. Spr\u00f3buj ponownie za chwil\u0119.\";\n      case \"auth\/captcha-check-failed\":\n      case \"auth\/captcha-check-expired\":\n        return \"Weryfikacja reCAPTCHA nie powiod\u0142a si\u0119. Od\u015bwie\u017c stron\u0119 i spr\u00f3buj ponownie.\";\n      case \"auth\/network-request-failed\":\n        return \"B\u0142\u0105d sieci. Sprawd\u017a po\u0142\u0105czenie internetowe.\";\n      case \"auth\/unauthorized-domain\":\n        return \"Domena nie jest autoryzowana w Firebase Authentication.\";\n      case \"auth\/invalid-verification-code\":\n        return \"Nieprawid\u0142owy kod SMS.\";\n      case \"auth\/code-expired\":\n        return \"Kod wygas\u0142. Wy\u015blij SMS ponownie.\";\n      default:\n        return `Nie uda\u0142o si\u0119 wykona\u0107 operacji. (${code || \"unknown\"})`;\n    }\n  };\n\n  \/\/ 1) Firebase SDK (modu\u0142owy v10)\n  import { initializeApp } from \"https:\/\/www.gstatic.com\/firebasejs\/10.13.2\/firebase-app.js\";\n  import { getAuth, RecaptchaVerifier, signInWithPhoneNumber, onAuthStateChanged, setPersistence, inMemoryPersistence } from \"https:\/\/www.gstatic.com\/firebasejs\/10.13.2\/firebase-auth.js\";\n  import { initializeAppCheck, ReCaptchaV3Provider } from \"https:\/\/www.gstatic.com\/firebasejs\/10.13.2\/firebase-app-check.js\";\n\n  \/\/ 2) KONFIGURACJA FIREBASE\n  const firebaseConfig = {\n  apiKey: \"AIzaSyAeDy-oSX1PSFNutZehacTve8QsccRALtA\",\n  authDomain: \"blirty-61e48.firebaseapp.com\",\n  projectId: \"blirty-61e48\",\n  storageBucket: \"blirty-61e48.firebasestorage.app\",\n  messagingSenderId: \"245368367879\",\n  appId: \"1:245368367879:web:5d5dededbf737e3bc573a2\",\n  measurementId: \"G-YRS8LXSK3V\"\n  };\n  const app   = initializeApp(firebaseConfig);\n  initializeAppCheck(app, {\n    provider: new ReCaptchaV3Provider(\"6LcdTd8rAAAAAII9d3Im3cV_vDN0zmw2Cmkks6P_\"),\n    isTokenAutoRefreshEnabled: true\n  });\n  const auth  = getAuth(app);\n  await setPersistence(auth, inMemoryPersistence);\n\n  \/\/ 3) UI helpers\n  const $ = (id) => document.getElementById(id);\n  const msg = (t, color=\"#333\") => { const m=$(\"msg\"); m.textContent=t; m.style.color=color; };\n\n  \/\/ 4) reCAPTCHA (niewidoczna)\n  let verifier = new RecaptchaVerifier(auth, \"recaptcha-container\", {\n    size: \"invisible\"\n  });\n\n  let confirmationResult = null;\n\n  const normalizePhone = (raw) => {\n    const digits = raw.replace(\/\\D\/g, \"\").slice(0, 9);\n    if (digits.length !== 9) return null;\n    return \"+48\" + digits;\n  };\n\n$(\"send-sms\").addEventListener(\"click\", async () => {\n  msg(\"Wysy\u0142am SMS\u2026\");\n  try {\n    const phone = normalizePhone($(\"phone\").value.trim());\n    if (!phone) { msg(\"Podaj 9 cyfr numeru telefonu.\", \"#d32f2f\"); return; }\n    if (!\/^\\+\\d{7,15}$\/.test(phone)) { msg(\"Nieprawid\u0142owy numer telefonu.\", \"#d32f2f\"); return; }\n\n    try { await verifier.clear(); } catch(e) {}\n    verifier = new RecaptchaVerifier(auth, \"recaptcha-container\", { size: \"invisible\" });\n\n    confirmationResult = await signInWithPhoneNumber(auth, phone, verifier);\n    $(\"step-code\").style.display = \"\";\n    msg(\"SMS wys\u0142any. Wpisz 6-cyfrowy kod.\");\n  } catch (e) {\n    console.error(e);\n    msg(friendlyError(e), \"#d32f2f\");\n  }\n});\n\n  $(\"verify\").addEventListener(\"click\", async () => {\n    const code = $(\"code\").value.trim();\n    if (code.length !== 6) { msg(\"Kod powinien mie\u0107 6 cyfr.\", \"#d32f2f\"); return; }\n\n    try {\n      await confirmationResult.confirm(code);\n      \/\/ onAuthStateChanged poni\u017cej poka\u017ce sekcj\u0119 usuwania\n    } catch (e) {\n      console.error(e);\n      msg(friendlyError(e), \"#d32f2f\");\n    }\n  });\n\nonAuthStateChanged(auth, async (user) => {\n  if (user) {\n    $(\"step-phone\").style.display = \"none\";\n    $(\"step-code\").style.display  = \"none\";\n    $(\"step-delete\").style.display = \"\";\n    window.__idToken = await user.getIdToken(true);\n    msg(\"Uwierzytelniono. Mo\u017cesz usun\u0105\u0107 konto.\");\n  }\n});\n\nconst REASON_LABELS = {\n  APP_NOT_COOL: \"Aplikacja nie podoba mi si\u0119\",\n  MET_SOMEONE_ON_BLIRTY: \"Pozna\u0142am\/em kogo\u015b na blirty\",\n  MET_SOMEONE_OUTSIDE: \"Pozna\u0142am\/em kogo\u015b poza aplikacj\u0105\",\n  DID_NOT_MEET_ANYONE: \"Nie uda\u0142o mi si\u0119 nikogo pozna\u0107\",\n  NEED_A_BREAK: \"Potrzebuj\u0119 przerwy\",\n  APP_HARD_TO_USE: \"Trudno\u015b\u0107 w obs\u0142udze aplikacji\",\n  TECHNICAL_ISSUES: \"Problemy techniczne\",\n  NONE_OF_THE_ABOVE: \"\u017badne z powy\u017cszych\"\n};\nconst reasonEl = document.getElementById(\"reason\");\nreasonEl.innerHTML =\n  `<option value=\"\">\u2013 wybierz \u2013<\/option>` +\n  Object.entries(REASON_LABELS)\n    .map(([key, label]) => `<option value=\"${key}\">${label}<\/option>`)\n    .join(\"\");\nconst reasonEnum = reasonEl.value || null;\n\n$(\"delete\").addEventListener(\"click\", async () => {\n  const token = window.__idToken;\n  if (!token) { msg(\"Brak uwierzytelnienia.\", \"#d32f2f\"); return; }\n\n  \/\/ wy\u015blij null je\u015bli puste lub nieznany klucz\n  const raw = reasonEl.value;\n  const reason = raw && Object.prototype.hasOwnProperty.call(REASON_LABELS, raw) ? raw : null;\n\n  msg(\"Usuwam konto\u2026\");\n\n  try {\n    const resp = await fetch(\"https:\/\/ktor-service-245368367879.europe-central2.run.app\/api\/delete\", {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application\/json\",\n        \"Authorization\": \"Bearer \" + token\n      },\n      body: JSON.stringify({ reasonOfAccountDeletion: reason })\n    });\n\n    if (resp.ok) {\n      msg(\"Konto zosta\u0142o usuni\u0119te.\", \"#2e7d32\");\n    } else if (resp.status === 401) {\n      msg(\"Sesja wygas\u0142a \u2014 zaloguj si\u0119 ponownie.\", \"#d32f2f\");\n    } else {\n      msg(\"Nie uda\u0142o si\u0119 usun\u0105\u0107 konta. Spr\u00f3buj ponownie p\u00f3\u017aniej.\", \"#d32f2f\");\n    }\n  } catch (e) {\n    console.error(e);\n    msg(\"B\u0142\u0105d sieci. Spr\u00f3buj ponownie.\", \"#d32f2f\");\n  }\n});\n<\/script>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Standardy bezpiecze\u0144stwa dzieci Blirty jest aplikacj\u0105 spo\u0142eczno\u015bciow\u0105 przeznaczon\u0105 wy\u0142\u0105cznie dla os\u00f3b, kt\u00f3re uko\u0144czy\u0142y 18 lat. Blirty stanowczo zabrania wykorzystywania seksualnego [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-359","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin-iPcaUszA","author_link":"https:\/\/blirtyapp.com\/index.php\/author\/admin-ipcausza\/"},"uagb_comment_info":0,"uagb_excerpt":"Standardy bezpiecze\u0144stwa dzieci Blirty jest aplikacj\u0105 spo\u0142eczno\u015bciow\u0105 przeznaczon\u0105 wy\u0142\u0105cznie dla os\u00f3b, kt\u00f3re uko\u0144czy\u0142y 18 lat. Blirty stanowczo zabrania wykorzystywania seksualnego [&hellip;]","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/pages\/359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/comments?post=359"}],"version-history":[{"count":7,"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/pages\/359\/revisions"}],"predecessor-version":[{"id":447,"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/pages\/359\/revisions\/447"}],"wp:attachment":[{"href":"https:\/\/blirtyapp.com\/index.php\/wp-json\/wp\/v2\/media?parent=359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}