Перейти к содержанию
  • Язык

Samurai

Aprel Team
  • В составе

  • Посещение

Телеграммы, опубликованные Samurai

  1. Опубликовано

    Шаг 1: Подготовка бота

    1. Переходим по ссылке и создаём новое приложение: https://discord.com/developers/applications.
    2. Во вкладке Bot добавляем бота, подтверждаем выбор в появившемся окне.
    3. Во вкладке OAuth2 -> URL Generator ставим галочку напротив пункта bot, ниже выбираем необходимые права доступа и копируем появившуюся внизу ссылку на инвайт бота.
    4. Переходим по скопированной ссылке и приглашаем бота в нужный нам сервер.
    5. Генерируем токен бота и сохраняем его у себя.
    6. Включаем SERVER MEMBERS INTENT, дабы отслеживать события пользователей (например, вход на сервер).

    Шаг 2: Скрипт

    Подключаем библиотеку через composer:

    composer require team-reflex/discord-php

    Разберём только базовые вещи. 

    Начинаем с подключения библиотеки, импортируем необходимые для работы классы:

    <?php
    
    require __DIR__ . '/vendor/autoload.php';
    
    
    use Discord\Discord;
    use Discord\WebSockets\Event;
    use Discord\WebSockets\Intents;
    use Discord\Parts\User\Member;
    use Discord\Parts\Channel\Message;

    Создаём экземпляр класса Discord:

    $ds = new Discord( [
        'token' => '*****************', // Токен, который мы сгенерировали ранее
        'intents' => Intents::getDefaultIntents() | Intents::GUILD_MEMBERS, // Понадобится для отслеживания событий участников
    ] );

    Далее вставляем конструкцию, внутри которой будем прописывать конкретные события для отслеживания. В конец сразу добавил $ds->run() для запуска бота:

    $ds->on( 'ready', function( $ds )
    {
    
        // Тут продолжим писать код
    
    } );
    
    
    $ds->run();

    И первое событие, которое мы обработаем - так это входящие сообщения:

    $ds->on( Event::MESSAGE_CREATE, function( Message $msg, Discord $ds )
    {
    
        // Тут будем обрабатывать входящие
    
    } );

    Добавим тестовую команду:

    if ( $msg->content == '/бот' )
    {
        $msg->reply( 'Привет, ' . $msg->author->username );
    }

    Да, бот пока не запущен и не готов к работе, но я забегу наперёд.

    С помощью метода ban() можно заблокировать участника. В первом параметре можно указать, за какой промежуток времени нужно удалить сообщения этого пользователя (я для примера удалю сообщения за последние сутки), а во втором - причину бана:

    else if ( str_contains( $msg->content, 'админ лох' ) )
    {
        $msg->member->ban( 1, 'reason' );
    }

    Такое условие на практике, конечно, использоваться никогда не будет, да и в принципе банить людей по ключевым словам - решение не шибко надёжное. Но сейчас я просто показываю, как можно банить юзеров средствами библиотеки.

    В первом шаге мы включили Members Intent, поэтому теперь можем отслеживать вход новых участников на наш сервер:

    $ds->on( Event::GUILD_MEMBER_ADD, function( Member $member, Discord $ds )
    {
    
        // Тут продолжим писать код
    
    } );

    Давайте выдадим новым участникам какую-нибудь роль, а для этого нам понадобится получить ID этой самой роли. Чтобы его получить - включаем режим разработчика (Настройки -> Настройки приложения -> Расширенное).
    Ну, и теперь копируем ID нужной роли.

    Теперь мы можем воспользоваться методом addRole(), передав в него скопированный айдишник (в виде строки):

    $member->addRole( '1007995229674156102' );

    Ну, и ещё поменяем никнейм присоединившегося участника на сервере методом setNickname():

    $member->setNickname( 'Новый никнейм' );

    Весь код:

    <?php
    
    require __DIR__ . '/vendor/autoload.php';
    
    
    use Discord\Discord;
    use Discord\WebSockets\Event;
    use Discord\WebSockets\Intents;
    use Discord\Parts\User\Member;
    use Discord\Parts\Channel\Message;
    
    
    
    
    $ds = new Discord( [
        'token' => '******************',
        'intents' => Intents::getDefaultIntents() | Intents::GUILD_MEMBERS,
    ] );
    
    
    
    $ds->on( 'ready', function( $ds )
    {
    
    
        $ds->on( Event::MESSAGE_CREATE, function( Message $msg, Discord $ds )
        {
    
            if ( $msg->content == '/бот' )
            {
                $msg->reply( 'Привет, ' . $msg->author->username );
            }
    
            else if ( str_contains( $msg->content, 'админ лох' ) )
            {
                $msg->member->ban( 1, 'reason' );
            }
    
        } );
    
        $ds->on( Event::GUILD_MEMBER_ADD, function( Member $member, Discord $ds )
        {
    
            $member->addRole( '1007995229674156102' );
            $member->setNickname( 'Новый никнейм' );
    
        } );
    
    
    } );
    
    
    $ds->run();

    Шаг 3: Запуск бота

    Запустить бота можно на OpenServer. Для этого нужно перейти в консоль.

    И ввести следующую команду (путь, естественно, указывать нужно свой):

    php "D:\DiscordBOT\bot.php"

    Если же у вас есть купленный хост, который предоставляет возможность юзать консоль, то запустить бота можно там. ISPManager принцип:

    1. Переходим во вкладку Shell-клиент.
    2. Вводим следующую команду.

    /opt/php/8.1/bin/php www/site.ru/bot.php

    Путь и версию PHP меняем под себя.

    Чтобы быстро вставить команду в консоли - нажмите ПКМ -> Paste from browser:

    На этом всё!

  2. Опубликовано

    Вероятно, многие из пытавшихся реализовать скачивание видосов с ютуба уже натыкались на get_video_info. И, к большому сожалению, рабочим этот вариант не оказывался (на сегодняшний день). Поэтому в этой статье поделюсь одной из найденных альтернатив.

    Итак, создаём php-файл и сразу начинаем писать код. Добавим переменную $link, запишем в неё ссылку на любое видео с ютуба:

    <?php
    
    $link = 'https://www.youtube.com/watch?v=x4sWD5qiZT4';

    GET-параметр v - это идентификатор нашего видео. Его из общей ссылки необходимо как-то вычленить. Да, можно было бы сделать всё вручную и в $link вставлять уже вырезанный ID, но всё же лениться не будем и сделаем небольшой задел на будущее (например, для реализации какого-то интерфейса или интеграции скрипта в бота):

    parse_str( parse_url( $link, PHP_URL_QUERY ), $params );
    $video_id = $params['v'] ?? exit;

    Далее формируем POST-запрос к конечной точке youtubei/v1/player:

    $arr = [
        'context' => [
            'client' => [
                'hl' => 'en',
                'clientName' => 'WEB',
                'clientVersion' => '2.20210721.00.00',
                'mainAppWebInfo' => [
                    'graftUrl' => '/watch?v=' . $video_id
                ]
            ]
        ],
        'videoId' => $video_id
    ];
    
    
    $curl = curl_init();
    
    curl_setopt( $curl, CURLOPT_URL, 'https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' );
    curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type:application/json' ] );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $curl, CURLOPT_POST, true );
    curl_setopt( $curl, CURLOPT_POSTFIELDS, json_encode( $arr ) );
    curl_setopt( $curl, CURLOPT_ENCODING, 'gzip, deflate' );
    
    $result = json_decode( curl_exec( $curl ), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES );
    curl_close( $curl );

    На данный момент в переменной $result хранится огромной массив полученных данных, некоторые из которых нам придётся вытащить и использовать для дальнейшей работы:

    $video_details = $result['videoDetails'];
    $streaming_data = $result['streamingData'];
    $formats = $streaming_data['formats'];
    $video_name = $video_details['title'];
    
    $video = [];
    
    foreach ( $formats as $key )
    {
        $data = $key;
    
        $mime_type = explode( ';', $data['mimeType'] );
        $data['mime'] = $mime_type[0];
        $data['format'] = ltrim( substr( $mime_type[0], stripos( $mime_type[0], '/' ) ), '/' );
    
        $video[] = $data;
    }
    
    $video_file_name = strtolower( str_replace( ' ', '_', $video_name ) ) . '.' . $video[0]['format'];
    $download_url = $video[0]['url'];
    $file_name = preg_replace( '/[^A-Za-z0-9.\_\-]/', '', basename( $video_file_name ) );

    Дальше проверяем переменную $download на пустоту:

    if ( $download_url )
    {
        header( 'Cache-Control: public' );
        header( 'Content-Description: File Transfer' );
        header( 'Content-Disposition: attachment; filename=' . $file_name );
        header( 'Content-Type: application/zip' );
        header( 'Content-Transfer-Encoding: binary' );
    
        readfile( $download_url );
    }

    Если всё окей - начнётся загрузка видео. В этот раз я не стал делать интерфейс, поэтому для тестирования достаточно открыть файл со скриптом в браузере.

    Весь код:

    <?php
    
    $link = 'https://www.youtube.com/watch?v=y2YUJ186Ke4';
    
    parse_str( parse_url( $link, PHP_URL_QUERY ), $params );
    $video_id = $params['v'] ?? exit;
    
    $arr = [
        'context' => [
            'client' => [
                'hl' => 'en',
                'clientName' => 'WEB',
                'clientVersion' => '2.20210721.00.00',
                'mainAppWebInfo' => [
                    'graftUrl' => '/watch?v=' . $video_id
                ]
            ]
        ],
        'videoId' => $video_id
    ];
    
    
    $curl = curl_init();
    
    curl_setopt( $curl, CURLOPT_URL, 'https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' );
    curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type:application/json' ] );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $curl, CURLOPT_POST, true );
    curl_setopt( $curl, CURLOPT_POSTFIELDS, json_encode( $arr ) );
    curl_setopt( $curl, CURLOPT_ENCODING, 'gzip, deflate' );
    
    $result = json_decode( curl_exec( $curl ), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES );
    curl_close( $curl );
    
    
    $video_details = $result['videoDetails'];
    $streaming_data = $result['streamingData'];
    $formats = $streaming_data['formats'];
    $video_name = $video_details['title'];
    
    $video = [];
    
    foreach ( $formats as $key )
    {
        $data = $key;
    
        $mime_type = explode( ';', $data['mimeType'] );
        $data['mime'] = $mime_type[0];
        $data['format'] = ltrim( substr( $mime_type[0], stripos( $mime_type[0], '/' ) ), '/' );
    
        $video[] = $data;
    }
    
    $video_file_name = strtolower( str_replace( ' ', '_', $video_name ) ) . '.' . $video[0]['format'];
    $download_url = $video[0]['url'];
    $file_name = preg_replace( '/[^A-Za-z0-9.\_\-]/', '', basename( $video_file_name ) );
    
    
    if ( $download_url )
    {
        header( 'Cache-Control: public' );
        header( 'Content-Description: File Transfer' );
        header( 'Content-Disposition: attachment; filename=' . $file_name );
        header( 'Content-Type: application/zip' );
        header( 'Content-Transfer-Encoding: binary' );
    
        readfile( $download_url );
    }

     

  3. Опубликовано

    WHOIS (произносится как «Кто есть») — это протокол запросов и ответов, который обычно используется для поиска деталей интернет-ресурсов, таких как доменное имя, блок IP-адресов или автономная система, а также другой важной информации. База данных сервера протокола WHOIS хранит и возвращает информацию в удобочитаемом формате. Информация о текущем регистраторе домена, информации о регистранте, дате истечения срока действия и т. д.

    Поскольку в этом руководстве мы рассмотрим живой пример создания сценария поиска домена WHOIS с помощью PHP, основные файлы для этого примера приведены ниже.

    • index.php
    • functions.php


    Шаг 1. Разработка HTML-формы поиска Whois

    Сначала мы создадим файл index.php и разработаем HTML-форму с полем для ввода доменного имени и кнопкой поиска, чтобы получить информацию WHOIS домена при отправке формы.

    <div class="container">    
        <label class="text-info">
        <?php if($message) { ?>
            <span class="text-danger"><strong><?php echo $message; ?></strong></span>
        <?php } ?>    
        </label>                    
        <div class="row">                    
            <form name="form" class="form" 
    action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">                    
                <div class="col-md-6">                
                    <div class="form-group">                            
                        <input type="text" 
    name="domain"
     id="domain" class="form-control" value="<?php echo $domain; ?>"
     placeholder="Enter domain name">
                    </div>    
                </div>
                <div class="col-md-4">                                
                    <div class="form-group">                    
                        <button type="submit" 
    class="btn btn-info btn-md"><i class="fa fa-search"></i> WHOIS</button>                    
                    </div>    
                </div>                    
            </form>                
        </div>    
    </div>

    Шаг 2. Отображение информации WHOIS домена.

    После ввода доменного имени и отправки формы мы получим доменное имя без http или www и перейдем к функции validateDomain() для проверки действительного доменного имени. Затем мы вызовем функцию LookUpDomain() , чтобы получить информацию WHOIS домена, и сохраним ее в переменной $result для ее отображения.

    if(isset($_POST['domain'])){ 
        $domain = $_POST['domain'];    
        $domain = trim($domain);
        if(substr(strtolower($domain), 0, 7) == "http://") $domain = substr($domain, 7);
        if(substr(strtolower($domain), 0, 8) == "https://") $domain = substr($domain, 8);
        if(substr(strtolower($domain), 0, 4) == "www.") $domain = substr($domain, 4);
        if(validateDomain($domain)) {
            $result = lookUpDomain($domain);
        } else {
            $message = "Invalid Input!";
        }
    }

    Мы будем отображать информацию WHOIS домена, используя переменную результата.

    <?php
    if($result) {
        echo "<pre>\n" . $result . "\n</pre>\n";
    }
    ?>

    Шаг 3. Получите информацию WHOIS домена.

    Мы создадим функцию LookUpDomain() и проверим наличие сервера WHOIS домена, используя массив $ whoIsServers , в котором хранится имя сервера WHOIS. Если сервер WHOIS домена существует, мы вызываем функцию getWhoisServerDetails() , чтобы отправить запрос серверу WHOIS для получения сведений о домене.

    function lookUpDomain($domain){
        global $whoIsServers;
        $domainParts = explode(".", $domain);
        $tld = strtolower(array_pop($domainParts));
        $whoIsServer = $whoIsServers[$tld];
        if(!$whoIsServer) {
            return "Error: No appropriate Whois server found for $domain domain!";
        }
        $whoIsResult = getWhoisServerDetails($whoIsServer, $domain);
        if(!$whoIsResult) {
            return "Error: No results retrieved from $whoIsServer server for $domain domain!";
        } else {
            while(strpos($whoIsResult, "Whois Server:") !== FALSE){
                preg_match("/Whois Server: (.*)/", $whoIsResult, $matches);
                $secondary = $matches[1];
                if($secondary) {
                    $whoIsResult = getWhoisServerDetails($secondary, $domain);
                    $whoIsServer = $secondary;
                }
            }
        }
        return "$domain domain lookup results from $whoIsServer server:\n\n" . $whoIsResult;
    }

    Шаг 4. Сделайте запрос к WHOIS-серверу домена.

    В файле function.php мы создадим функцию getWhoisServerDetails() , чтобы сделать запрос к WHOIS-серверу и получить информацию WHOIS.

    function getWhoisServerDetails($whoIsServer, $domain) {
        $port = 43;
        $timeout = 10;
        $whoIsInfo = @fsockopen($whoIsServer, $port, $errno, $errstr, $timeout) or 
    die("Socket Error " . $errno . " - " . $errstr);    
        fputs($whoIsInfo, $domain . "\r\n");
        $output = "";
        while(!feof($whoIsInfo)){
            $output .= fgets($whoIsInfo);
        }
        fclose($whoIsInfo);
        $whosIsResults = "";
        if((strpos(strtolower($output), "error") === FALSE) 
    && (strpos(strtolower($output), "not allocated") === FALSE)) {
            $whoIsRecords = explode("\n", $output);
            foreach($whoIsRecords as $whoIsRecord) {
                $whoIsRecord = trim($whoIsRecord);
                if(($whoIsRecord != '') && ($whoIsRecord{0} != '#') && ($whoIsRecord{0} != '%')) {
                    $whosIsResults .= $whoIsRecord."\n";
                }
            }
        }
        return $whosIsResults;
    }
  4. Опубликовано

    Краткая инструкция по регистрации на сайте openai.com в России и использованию ChatGPT!

    Шаг 1: Окно в Европу (ОВЕ)

    Включать Окно в Европу придётся при каждом входе на сайт openai, поэтому первым делом устанавливаем его себе. Я использовал первый попавшийся бесплатный браузерный, найти можно как правило в расширениях. Заходить на openai до регистрации без ОВЕ не рекомендую.

    Шаг 2: Начало регистрации

    Переходим на сайт openai.com, жмём кнопку «Try ChatGPT».
    Начинаем регаться. Проще всего это сделать через свой Google-аккаунт. Далее предстоит преодолеть самый геморройный момент.

    Шаг 3: Аренда виртуального номера.

    После подтверждения почты или Google/Microsoft-аккаунта потребуют ввести номер телефона и подтвердить его. Соответственно, понадобится виртуальный номер. Для этого временно выключаем ОВЕ и переходим на сайт sms-activate.org. Регистрируемся, потом кладём на счёт рублей 30-50. Самые дешёвые для аренды номера стоят 12 рублей, но личный горький опыт показал, что код подтверждения на них не приходит. Так что лучше закидывать с маленьким запасом, дабы потом не тратиться повторно на комиссию, и арендовать номер рублей за ~40.

    После пополнения баланса уже можно арендовать номер.

    Шаг 4: Подтверждение номера

    После того, как арендовали номер, можно его копировать и вставлять на сайте openai. Ввели - теперь ждём, когда придёт код подтверждения на sms-activate. Если код не приходит - попробуйте отменить аренду номера (благо в течение 20-ти минут сделать это можно бесплатно) и поменять провайдера.

    Если код пришёл - ура! Теперь можно пользоваться ChatGPT. Кстати, есть ещё и плагин для VS Code (называется CODEGPT), но опять же, исходя из личного опыта использования, могу сказать, что комфортнее юзать чат на сайте. Там и время ожидания меньше, и в форме диалога легче доносить свои задачи.

    Теперь пару слов и личное мнение о самом ChatGPT. Общие задачи и вопросы он понимает и интерпретирует очень точно. Причём не только в сфере программирования, но и в любой другой сфере из мною испробованных. Пробовал скормить ему весьма куцое ТЗ, по которому сам когда-то делал проект, и получил вполне внятный ответ с чёткими инструкциями и даже примерами SQL-запросов:

    Что касается конкретных задач - уже чутка послабее. Например, я пробовал получить способ проверки прав доступа к сайту у неавторизованных пользователей при использовании RBAC Yii2. В конечном итоге ИИ зашёл в тупик и по очереди скидывал два неправильных способа решения:

    Вердикт: ЧатЖПТ - хороший помощник разработчика для небольших задач, может помочь найти ошибку, подсказать общий способ решения, написать пример кода. Но стоит заметить, что без навыков в выбранном языке программирования добиться чего-то от бота навряд ли получится. Ибо зачастую приходится самостоятельно разжёвывать способ решения, и только после этого он предложит верный код. 

  5. Опубликовано

    1. Получите API-ключ OpenAI: Первым шагом является получение API-ключа OpenAI. Для этого вам нужно создать аккаунт на платформе OpenAI и получить доступ к OpenAI API. Следуйте инструкциям на официальном сайте OpenAI, чтобы получить свой API-ключ.
    2. Установите необходимые библиотеки: После получения ключа необходимо установить необходимые библиотеки для работы с API. Вы можете использовать библиотеку OpenAI Python, которая предоставляет удобный способ взаимодействия с моделью ChatGPT.
    3. Подключитесь к API с использованием ключа: Используйте свой API-ключ, чтобы установить соединение с сервисом OpenAI. Это обеспечит вам доступ к функциям генерации текста модели ChatGPT.
    4. Определите параметры для запроса: Определите параметры запроса, такие как количество возвращаемых ответов, максимальную длину текста и начальную фразу или контекст для генерации ответа. Эти параметры помогут вам настроить поведение ChatGPT в соответствии с вашими потребностями.
    5. Отправьте запрос модели: Теперь, когда все готово, можно отправить запрос к модели ChatGPT с использованием библиотеки OpenAI Python. Передайте параметры запроса и получите ответ от модели.
    6. Обработайте и отобразите результат: Полученный ответ от модели может потребовать дополнительной обработки и форматирования перед отображением пользователю. Вы можете использовать свою собственную логику обработки результатов, чтобы предоставить наилучший опыт для ваших пользователей.
  6. Опубликовано

    Как получить значок активного разработчика в Discord? (статья ещё обновится, текст ниже скорее всего неактуален, на работе просто)

    Значок активного разработчика — знак признания создателей приложений, которые вы можете использовать на платформе Discord. Как только вы получите значок, он появится рядом с вашим профилем, чтобы обозначить ваш выдающийся статус. Другие пользователи будут знать, что могут обратиться к вам, если им понадобится совет от разработчика или доверенного автора. Однако иногда система выдачи значков Discord может показаться немного запутанной.

    Как получить значок разработчика в Discord?
    Если вы разработчик, то вы должны сначала убедиться, что соответствуете требованиям. Пользователи Discord соответствуют условиям, если у них есть хотя бы одно проверенное или непроверенное активное приложение. Платформа рассматривает приложение только как “активное” если вы использовали его через команду за последние 30 дней.

    Если вы соответствуете вышеуказанным требованиям, вы можете претендовать на сам значок, то вот как это сделать:

    1. Откройте Discord Developer Portal, а затем нажмите кнопку Приложения в главном меню в левой части экрана.
    2. Выберите активное приложение, которое появится в раскрывающемся меню. Обязательно найдите то, которое вы использовали за последние 30 дней, чтобы иметь право на участие.
    3. Discord предложит вам выбрать один из вариантов в меню, отмеченном как выбор сервера, после того, как вы выберете своё приложение и назначите сервер. Нажмите на сервер, чтобы назначить новостной канал для разработчиков, а затем обновите свой профиль.

    Вернувшись в свой профиль Discord, вы должны увидеть значок активного разработчика под изображением вашего профиля. Убедитесь, что указанный вами сервер настроен как сервер сообщества и что у вас есть доступ к нему с правами администратора.

    Как создать приложение для вашего сервера Discord?
    Вот как настроить и создать приложение для сервера Discord:

    1. Перейдите на портал разработчика и выберите Новое приложение вариант.
    2. Откроется окно с предложением назвать ваше приложение. Назвав его, выберите Создать option.
    3. Внесите любые изменения в приложение – таких как аватар, описание или имя – а затем сохраните их, когда закончите.
    4. Перейдите к кнопке приложения в меню слева, выберите Добавить бота и подтвердите это.

    После того, как вы создадите свое приложение, появится окно с вашим токеном бота. Вы можете сбросить его, если хотите. Однако никому не сообщайте этот токен, так как он действует как пароль для вашего приложения. Если кто-то получит его, он сможет использовать ваше приложение. Также стоит отметить, что фактический процесс написания кода для создания новых приложений потребует от вас самостоятельного написания и разработки.

    Часто задаваемые вопросы

    Почему мой значок не отображается, несмотря на то, что я его запрашиваю?

    Как только Discord уведомит вас о том, что вы получили значок, вы сможете обновить экран, используя версию для браузера. Кроме того, вы можете выйти и снова войти в приложение, и значок появится под изображением вашего профиля.

    Могу ли я удалить значок разработчика из своего профиля?
    Вы можете удалить свой значок через портал разработчика, выбрав “Удалить значок” вариант.

    Какие еще значки есть у Discord?
    У Discord есть другие значки, такие как значок Hype Squad House, значок Hype Squad Events, Значок сертифицированного модератора, значок охотника за ошибками и значок раннего сторонника.

    Все ли значки имеют преимущества?
    Некоторые значки дают привилегии, функции и особые преимущества, в то время как другие просто служат украшением вашего профиля, например значок Early Supporter.

    Как я могу получить значок Early Supporter?
    К сожалению, значки Early Supporter были выданный в то время, когда платформа Discord только зарождалась и еще не получила широкого распространения. По этой причине получить этот значок больше невозможно.

  7. Опубликовано

    Чтобы установить сертификат, вам нужно войти на «Госуслуги» и скачать специальный файл. Для разных ОС тип файла свой — на разные аппараты скачивайте его отдельно, выбрав свой. На сайте «Госуслуг» есть пошаговая инструкция по установке, а также все необходимые ссылки для скачивания: https://www.gosuslugi.ru/crt

  8. Опубликовано

    Загрузить актуальную версию SOVA V RE v8.38 [1.2.0]:
    https://t.me/GoSoftMobile/2780

    [+] Быстрые ответы - Теперь вы можете настроить быстрые ответы на сообщения
    [+] Возможность установить приватность времени последнего входа ("Был недавно")
    [+] Возможность включить скруглённое поле ввода
    [+] Возможность поменять местами кнопку вложений и эмоджи
    [+] Возможность включить отображение рекомендаций ленты "Для вас" списком вместо сетки
    [+] Возможность ставить свои подсказки к стикерам Telegram
    [+] Возможность отключить NFT аватары
    [+] Возможность скрыть эмоджи-статусы
    [+] Возможность смотреть голоса опросов без голосования (Предпросмотр опросов)
    [+] Возможность импорта/экспорта настроек совы
    [+] Возможность включить обход "был в сети недавно"
    [+] Добавлена подсказка при включённых ограничениях батареи
    [+] Добавлена подсказка при сломанных анимациях в системе
    [+} Добавлен поиск по настройкам
    [+] Возможность открыть аватарку по тапу на закрытых профилях (Только первая в 400x400)
    [+] Возможность включить классический вид раздела "Моя музыка"
    [=] Исправлено нажатие на кнопки в докбаре для перехода к началу (Кнопка домой обновляет ленту)
    [=] Больше телеметрии считается как телеметрия новостей (Может помочь с умной лентой)
    [=] Изменены строки видео: Скачать -> Кэшировать; Сохранить в галерею -> Скачать в MP4
    [=] Изменены строки музыки: Скачать -> Кэшировать
    [=] Теперь нечиталка голосовых распространяется и на транскрипцию
    [=] Совмещена нечиталка голосовых сообщений с обычной
    [=] Переделаны разделы в настройках сообщений совы

  9. Опубликовано

    11 часов назад, onetimex сказал:

    В списке только Google, Википедия и DuckDuckGo, нужно добавть Яндекс

    Заходишь на Яндекс, в адресной строке (правой кнопкой мыши по домену) и выбираешь Добавить Яндекс.

    image.png.0d168200dc7ae0cd12ede72f5cc5ef25.png
     

    Также в настройках поисковых систем введи @yandex, как на скрине ниже, чтобы выбирать через что и где искать, удобно.

    image.png.8c1db38060cf1201338ec4aafb5f5c8d.png

    Прямая ссылка на ftp сервер с релизами Mozilla Firefox: https://ftp.mozilla.org/pub/firefox/releases/. Просто качай нашу, Россию.


    Если Яндекса по прежнему нет, то скачай поисковик отсюда: https://addons.mozilla.org/ru/firefox/extensions/category/search-tools/ (там есть и другие поисковики, полезные инструменты).
    Вот Яндекс: https://addons.mozilla.org/ru/firefox/addon/yandex-search-engine/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search.

    Чтобы вернуть поиск в мобильной версии приложения сделайте следующее:
    Меню/Настройки/Поиск/Поисковая система по умолчанию/Добавление поисковой системы.
    Вводим имя поисковой системы и следующий адрес:

    https://yandex.ru/search/?lr=194&text=%s

    Скопировать и вставить туда.

    API можно не заполнять.

  10. Опубликовано

    Загрузить актуальную версию SOVA V RE v8.38 [1.1.1]:
    https://t.me/GoSoftMobile/2727

    [+] Monet-тема (Тема на основе обоев. Работает на любой версии Android)
    [+] Новые тоглы в настройках совы: audio_saving_player_state, vas_new_stickers_suggestion, con_posting_redesign, core_christmas_garland, core_new_photo_editor_collage (Описание можно найти прямо в настройках)
    [+] Разблокирован и исправлен мультиаккаунт VK
    [+] Редактор бокового меню
    [+] Редактор бургер-меню (Меню сервисов по трём полоскам)
    [+] Возможность замены вида реакций сообщений с VK на TG
    [+] Возможность скачать все свои треки в mp3
    [+] Выбор папки для скачивания mp3
    [+] Возможность скрыть докбар полностью
    [+] Возможность скрыть дэшборд профиля (Кнопки VK ID и VK Pay в боковом меню)
    [+] Выбор иконки для удалённых сообщений
    [=] Теперь многие разделы не требуют полного перезапуска приложения
    [=] Исправлено скачивание mp3 на некоторых аккаунтах (Затрагивает не всех)

  11. Опубликовано

    Загрузить актуальную версию SOVA V RE v8.38 [1.1.0]:
    https://t.me/GoSoftMobile/2713

    [+] Monet-тема (Тема на основе обоев. Работает на любой версии Android)
    [+] Новые тоглы в настройках совы: audio_saving_player_state, vas_new_stickers_suggestion, con_posting_redesign, core_christmas_garland, core_new_photo_editor_collage (Описание можно найти прямо в настройках)
    [+] Разблокирован и исправлен мультиаккаунт VK
    [+] Редактор бокового меню
    [+] Редактор бургер-меню (Меню сервисов по трём полоскам)
    [+] Возможность замены вида реакций сообщений с VK на TG
    [+] Возможность скачать все свои треки в mp3
    [+] Выбор папки для скачивания mp3
    [+] Возможность скрыть докбар полностью
    [+] Возможность скрыть дэшборд профиля (Кнопки VK ID и VK Pay в боковом меню)
    [+] Выбор иконки для удалённых сообщений
    [=] Теперь многие разделы не требуют полного перезапуска приложения
    [=] Исправлено скачивание mp3 на некоторых аккаунтах (Затрагивает не всех)

  12. Опубликовано

    • Webmoney
      Webmoney остаётся относительно популярным способом пополнения баланса Steam. Однако для этого нужно подтвердить аккаунт и получить формальный аттестат — пройти проверку, предоставить документы и записать видео.
      Перевести средства можно на сервисе Telepay или через мобильное приложение сервиса. Пополнить баланс Webmoney можно и через СБП. Подробнее весь алгоритм описан здесь.
       
    • МТС
      Оплатить баланс Steam можно на специальном сервисе МТС. Алгоритм достаточно простой — нужно указать никнейм, сумму пополнения и перевести средства через СБП.
      Способ подходит для пополнения аккаунтов из РФ и стран СНГ. Комиссия за конвертацию — до 4%, деньги приходят на кошелек примерно за 15 минут.
       
    • «Элекснет-онлайн»
      Еще один рабочий способ — использование сервиса «Элекснет-онлайн». Баланс пополняется мгновенно, правда, комиссия за конвертацию выше, чем у других — до 12%.
       
    • PayBerry
      Для пополнения счет можно использовать систему PayBerry. Операцию можно провести как на сайте платежного оператора, так и в его приложении.
      Все происходит достаточно просто — необходимо выбрать в списке услуг Steam, написать свой логин и ввести желаемую сумму пополнения. Система покажет полную сумму к оплате с учетом комиссии (около 10%).
       
    • Продавцы на Plati.Market
      На Plati.Market есть несколько сот продавцов, которые готовы быстро пополнить кошелек. Правда, комиссии приличные — до 14-15% от внесенной суммы.
      Главное преимущество такого способа — практически мгновенное пополнение счета, а также возможность оплаты через кошельки, криптовалюту и другие способы.
       
    • Kupikod
      Kupikod — еще один сервис, который позволяет оперативно пополнять Steam-аккаунт. Правда, нужно быть готовым к большой комиссии, от 16%. Пополнить баланс можно с помощью российских банковских карт.
       
    • Пополнение с помощью скинов
      Пополнить кошелек Steam также можно с помощью продаж скинов из игр (вроде CS:GO, Rust, Team Fortress 2 и других), а также игровых карточек. Они продаются на торговой площадке Steam, а за некоторые экземпляры можно выручить солидную сумму, которая зачислится на ваш баланс.
      Использование этого способа предлагают и некоторые сервисы: они продают покупателю внутриигровой предмет за определенную сумму, а потом их бот отправляет этот предмет на аккаунт Steam. После этого скин можно продать на торговой площадке.

    В сети есть десятки сервисов, которые обещают оперативное пополнение аккаунта Steam. Однако следует относиться к ним с осторожностью: не исключено, что многие из них созданы мошенниками. На фоне новости об ограничении работы QIWI таких ресурсов появится еще больше.

  13. Опубликовано

    VTLite v5.56.1 (0.1.9):
    https://t.me/GoSoftMobile/2700
    https://github.com/vtosters/lite/releases/latest/download/VTLite.apk

    Список изменений:
    [+] Возможность отключения видео-обложек в группах

    [~] Исправлена работа входа по СМС с 2фа
    [~] Исправлена работа вкладки Понравившиеся в старом дизайне
    [~] Исправлена установка приложения на Android 14
    [~] Исправлена работа загрузки диалогов
    [~] Исправлена работа загрузки чатов
    [~] Переработана работа покраски веб страниц
    [~] Переработана работа загрузки галочек/суперапп/доп информации о пользователе
    [~] Исправлена ложная покраска интерфейса на Android 5.1
    [~] Исправлена работа загрузки фотографий с роумингом (теперь отключение принудительного роуминга в настройках работает корректно)
    [~] Исправлена проблема загрузки рекламы если включена реклама
    [~] Убраны нерабочие пункты в суперапп (VK Pay и Мероприятий маленьких значков) 
    [~] Значительно ускорена работа приложения

  14. Опубликовано

    VTLite v5.56.1 (0.1.8):
    https://t.me/GoSoftMobile/2678
    https://github.com/vtosters/lite/releases/latest/download/VTLite.apk

    Список изменений: 
    [+] Отключение внешнего трафика который не связан со ВКонтакте: Теперь вы можете экономить мобильный трафик. Эта функция идеально подходит для пользователей с безлимитным интернетом для ВК.
    [+] Отключение принудительного режима роуминга
    [+] Папка для скачивания музыки: Вы можете выбрать папку "Downloads" для скачивания музыки, а не только папку "Music".
    [+] SponsorPost*

    [~] Улучшена работа текстов с Genius
    [~] Улучшена работа фильтрации ленты
    [~] Исправлена работа историй 
    [~] Улучшена покраска веб страниц
    [~] Убрана функция рандомного прокси

    *Функция SponsorPost предназначена для получения рекламных списков постов с сервера и актуальных списков слов и выражений для блокировки рекламных постов во ВКонтакте, которые не отмечены как рекламные!

    Эти фильтры и посты собираются людьми, что позволяет эффективно и своевременно выявлять и блокировать нежелательный контент в ленте пользователей.

    Пока что функция работает в тестовом режиме, поэтому далеко не все посты будут скрываться пользователями, но уже сейчас вы можете установить новые обновленные фильтры для более качественной блокировки рекламных постов!

    А для сторонних разработчиков клиентов мы готовы предоставить удобную и понятную документацию и всестороннюю помощь в интеграции новой функции

  15. Опубликовано

    Загрузить актуальную версию SOVA V RE v8.38 [1.0.0]:
    https://t.me/GoSoftMobile/2673

    [+] Темы SOVA (Выбор собственного цвета и AMOLED)
    [+] Локальное переименование пользователей
    [+] Возможность автоматического кэширования музыки
    [+] Возможность скачать все свои треки в кэш
    [+] Возможность очистить весь кэш музыки
    [+] Возможность отключить не всю телеметрию (Для правильного обновления новостей и истории прослушивания музыки)
    [+] Возможность открыть "Мою музыку" по-умолчанию вместо "Главной"
    [+] Проверка на VLFix (Настройки SOVA -> Прочее -> VLFix)
    [+] Новый сплеш-скрин при открытии ссылок в приложении
    [+] Встроенный трекер шагов для "Шагов ВКонтакте" (Теперь может не только открывать раздел шагов, но и верно считать)
    [+] Редактор меню сервисов
    [+] Возможность вернуть старое перемешивание треков (Может помочь, если у вас долго загружаются треки)
    [+] Возможность скрыть кнопку видеосообщений
    [+] Возможность скрыть всплывающие уведомления о новых сообщениях снизу
    [+] Возможность выключить кнопки звонков в сообщениях
    [+] Возможность выбрать оригинальную иконку SOVA V
    [+] Возможность выбрать аудио сервис (Интеграция с VK X)
    [=] Исправлено неверное отображение при двойном нажатии на некоторые иконки в доке
    [=] Я запрещаю вам выключать рекомендуемые блоки в умной ленте (Это её ломает. Прям точно ломает. Просто выключите умную ленту если нужно)
    [=] Я запрещаю серверу VK принудительно менять настройку рекомендуемых собеседников
    [=] Исправлена поддержка REEdit
    [=] Исправлено двойное нажатие в доке

Последние посетители 0

  • Ни одного делегата форума не просматривает данную страницу
Иконка перчаток с несколькими звуками
Иконка перчаток

Досье

Навигация

Розыск

Розыск

Настройка push-извещений браузера

Chrome (Android)
  1. Нажми на значок замка рядом с адресной строкой.
  2. Нажми Разрешения → Извещения.
  3. Корректируй свои предпочтения.
Chrome (Desktop)
  1. Нажми на значок замка в адресной строке.
  2. Выбери Управление сайта.
  3. Разыщи Изввещения и корректируй свои предпочтения.