Skip to content

Instantly share code, notes, and snippets.

View PaulAsaf2's full-sized avatar
🏠

Pavel Asafov PaulAsaf2

🏠
View GitHub Profile
@PaulAsaf2
PaulAsaf2 / autoscroll.js
Created December 2, 2024 17:45
Авто скролл при нахождении на нижней границе чата
let autoScroll = true;
function checkAtBottom() {
const atBottom = Math.abs(chat.scrollHeight - chat.clientHeight - chat.scrollTop) <= 2;
autoScroll = atBottom ? true : false;
}
function moveToBottom(el, force = false) {
if (autoScroll || force) {
el.scrollIntoView({ behavior: 'smooth', block: 'end' });
@PaulAsaf2
PaulAsaf2 / initDataValidation.php
Created July 16, 2024 12:46
Валидация initData передаваемая из Telegram Mini App [PHP]
<?php
// Разрешаем CORS
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
header('HTTP/1.1 200 OK');
exit();
@PaulAsaf2
PaulAsaf2 / initDataValidation.js
Created July 12, 2024 11:16
Валидация initData передаваемая из Telegram Mini App
const crypto = require('crypto'); // Импортируем встроенный модуль crypto
const initData = "ваша строка initData"; // замените на реальные данные, которые вы получили
// Парсинг initData
const params = new URLSearchParams(initData); // Создаем объект URLSearchParams для парсинга строки initData
const parsedData = {}; // Создаем пустой объект для хранения разобранных данных
// Проходим по всем записям (парам "ключ-значение") в params и добавляем их в parsedData
for (const [key, value] of params.entries()) {