Задать вопрос
  • Как обойти блокировку консоли разработчика в браузерах?

    @ZoomLS
    Попробовал в Firefox. По F12 не срабатывало. Через меню был запуск DevTools, но сразу закрылся. На второй или третий раз - уже не закрылся. А ещё можно js на странице отключить, скрипт тогда не сработает. Или конкретный скрипт запретить.
    Ответ написан
    Комментировать
  • Ошибка при запуске телеграм бота aiogram. Как исправить?

    @Everything_is_bad
    это не ошибка, а предупреждение, для понимая смыла достаточно просто перевести
    Ответ написан
    1 комментарий
  • Как выводить русские буквы в консоль на С++?

    @res2001
    Developer, ex-admin
    Вечная проблема :-)
    Каждый начинающий виндовый С++ программист должен пройти через это!

    1. Виндовая командная строка по умолчанию имеет кодировку cp866 (да-да, не cp1251). Не рекомендую выводить в UTF8, т.к. cmd до сих пор коряво работает с этой кодировкой.
    2. cmd и консоль powershell - это разные консоли
    3. Компилятор и стандартная библиотека (cin/cout) никак не конвертируют кодировки при вводе/выводе.
    (Возможно преобразование можно как-то задать, но по умолчанию это не делается.)
    4. Компилятор никак не преобразует ваши текстовые строки в программе при сборке, т.е. в какой кодировке вы написали строковую константу, та же кодировка будет выведена на консоль. Таким образом - имеет значение в какой кодировке у вас исходники!
    5. Кодировку в консоли можно поменять из самой консоли командой chcp. Часто так и делают. В русской винде 2 широко используемые кодировки консоли: cp866 и cp1251. Не стоит надеяться на то, что программа всегда будет запускаться только при одной кодировке.

    Исходя из вышенаписанного:
    1. Исходники всегда пишем в UTF8
    2. Перед выводом всегда преобразуем UTF8 в кодировку консоли. После ввода - то же самое. Есть соответствующие функции в WinAPI.
    3. Никогда не меняем принудительно кодировку консоли - это не удобно пользователям программы

    Для самого простого варианта - вы можете написать исходники в cp866 и по умолчанию в cmd у вас все будет нормально с кодировками.

    Удачи!
    Ответ написан
    Комментировать
  • Зачем добавлять пользователя в группу docker?

    @q2digger
    никого не трогаю, починяю примус
    еще проще - вы теперь от своего пользователя можете работать с докером, вам не придется это делать через sudo или вообще от рута.
    Ответ написан
    4 комментария
  • Какие есть аналоги программы Rufus, для андройд?

    EtchDroid прекрасно записывает линуксы. Если нужно винду и у вас UEFI, просто копируйте файлы из образа на флешку, отформатировав ее в fat32
    Ответ написан
    Комментировать
  • Как сделать аутентификацию на сайте через телеграм?

    CoDeR2006
    @CoDeR2006 Автор вопроса
    TS
    И так, для меня в будущем, и для тех кто это нагуглил:

    Дело в том что без виджета на начало 2024 сделать авторизацию практический не возможно, вот реально правильное решение если у вас похожий стэк, и вы планируете делегировать саму регистрацию на сервер, а не делать все через front.

    Интегрируем виджет в приложение react + ts:
    (это если вам надо что бы был не редирект, а вызов функции со стороны telegram)
    import { useEffect } from 'react'
    import { ITelegramUser } from '../../../../types/telegram/api-telegram-user.ts'
    
    declare global {
      interface Window {
        onTelegramAuth: (user: ITelegramUser) => void
      }
    }
    
    export const ButtonTelegramAuth = () => {
      useEffect(() => {
        const button = document.createElement('script')
        button.async = true
        button.src = 'https://telegram.org/js/telegram-widget.js?22'
        button.setAttribute('data-telegram-login', 'name_bot')
        button.setAttribute('data-size', 'large')
        button.setAttribute('data-radius', '20')
        button.setAttribute('data-onauth', 'onTelegramAuth')
    
        document.body.appendChild(button)
    
        window.onTelegramAuth = function (user) {
          alert(
            'Logged in as ' +
              user.first_name +
              ' ' +
              user.last_name +
              ' (' +
              user.id +
              (user.username ? ', @' + user.username : '') +
              ')'
          )
        }
    
        return () => {
          document.body.removeChild(button)
        }
      }, [])
    
      return <div id="telegram-widget-container"></div>
    }


    если нужен все таки редирект мы добавляем такое поле:
    script.setAttribute('data-auth-url', 'https://site.pw');

    и удаляем это:
    button.setAttribute('data-onauth', 'onTelegramAuth')
    
    declare global {
      interface Window {
        onTelegramAuth: (user: ITelegramUser) => void
      }
    }
    
     window.onTelegramAuth = function (user) {
          alert(
            'Logged in as ' +
              user.first_name +
              ' ' +
              user.last_name +
              ' (' +
              user.id +
              (user.username ? ', @' + user.username : '') +
              ')'
          )
        }


    И так объясняю в чем задумка:
    В ваше приложение react интегрируется все тот же виджет, но правильным образом. После нажатия на виджет происходит авторизация пользователя (он вводит свои данные / просто нажимает войти). Потом телеграм передает все его данные вам (в функцию - №1 способ / по get параметрам в url). Если вы делегируете
    регистрацию на сервер (а так правильно) то выбираете 2 способ. Сервер получает данные валидирует их и заносит в БД, затем делает редирект вашего пользователя к вам обратно на front, и заносит token (или что там еще не разобрался) в HttpOnly Ckookie. Ну а далее в моем случае Guard будет проверять есть этот token или нет, годен он или нет.

    Передаю привет Максиму в будущем. Как дела Макс ?
    Ответ написан
    11 комментариев
  • Почему Copilot не доступен в VSCode?

    Dee3
    @Dee3
    Можно попросить VS-Code в Remote Development, запускать Copilot в локальной оболочке. Добавляем в настройки
    //Enable local Copilot
        "remote.extensionKind": {
            "GitHub.copilot": [
                "ui"
            ],
            "GitHub.copilot-chat": [
                "ui"
            ],
        },


    Тогда расширение будет грузиться на локальном ПК, в "особой экономической зоне" :D
    Ответ написан
    4 комментария