• Я хочу создать обработчик принятых приглашений. Как я могу это сделать?

    i229194964
    @i229194964
    Веб разработчик
    можно использовать словарь, где ключами будут chat_id игроков, а значениями - булевские переменные, показывающие, приняли ли они приглашение или нет. Начальное значение всех значений в словаре можно установить на False.
    accepted_invites = {}  # словарь для хранения информации о том, принял ли игрок приглашение или нет
    
    @bot.message_handler(func=lambda message: True)
    def handle_all_messages(message):
        chat_id = message.chat.id
    
        if message.text == "Принять приглашение":
            if chat_id in accepted_invites:
                if accepted_invites[chat_id]:
                    bot.send_message(chat_id, "Вы уже приняли приглашение.")
                else:
                    bot.send_message(chat_id, "Вы приняли приглашение. Ожидайте начала игры.")
                    accepted_invites[chat_id] = True
    
                    # проверяем, приняли ли оба игрока приглашение
                    if all(accepted_invites.values()):
                        # начинаем игру
                        start_game()
            else:
                bot.send_message(chat_id, "Вы не получили приглашение на игру.")
    
    def start_game():
        # список chat_id игроков, которые приняли приглашение
        players = [chat_id for chat_id, accepted in accepted_invites.items() if accepted]
    
        # здесь можно продолжить реализацию логики игры
    Ответ написан
  • Webpack ругается на scss что делать?

    i229194964
    @i229194964
    Веб разработчик
    webpack не может обрабатывать sass на прямую
    npm install sass-loader node-sass webpack --save-dev

    следующий код в webpack.config.js
    module: {
      rules: [
        {
          test: /\.scss$/,
          use: [
            "style-loader",
            "css-loader",
            "sass-loader"
          ]
        }
      ]
    }

    После этого вам нужно обновить вашу задачу js, чтобы учитывать изменения
    import webpack from 'webpack-stream';
    
    export const js = () => {
      return app.gulp.src(app.path.src.js, { sourcemaps: true })
        .pipe(app.plugins.plumber(
          app.plugins.notify.onError({
            title: 'JS',
            message: 'Error: <%= error.message %>'
          })
        ))
        .pipe(webpack({
          mode: 'development',
          output: {
            filename: 'script.min.js'
          },
          module: {
            rules: [
              {
                test: /\.scss$/,
                use: [
                  "style-loader",
                  "css-loader",
                  "sass-loader"
                ]
              }
            ]
          }
        }))
        .pipe(app.gulp.dest(app.path.build.js))
        .pipe(app.plugins.browserSync.stream());
    }
    Ответ написан
  • Функция не выводит отрицательные значения стека?

    i229194964
    @i229194964
    Веб разработчик
    В функции funcPlusMinus(), вместо if (isEmpty), необходимо использовать if (isEmpty()), чтобы вызвать функцию isEmpty(), которая проверяет пустой ли стек.
    void funcPlusMinus()
    {
        if (isEmpty()) {
            cout << "The stack is empty" << endl;
        }
        else {
            Stack* temp = top;
            do {
                if (temp->item < 0) {
                    cout << temp->item << " ";
                }
                temp = temp->down;
            } while (temp != NULL);
            cout << endl;
        }
    }
    Ответ написан
    1 комментарий
  • Проблемы с машинным состоянием aiogram?

    i229194964
    @i229194964
    Веб разработчик
    Проблема заключается в том, что при вызове функции support она не переходит к следующему состоянию support_user.subject. Это можно сделать с помощью метода next() объекта state в функции поддержки.
    async def support(message: types.Message, state: FSMContext):
        await message.answer('Введите тему обращения')
        await state.set_state(support_user.subject)  # установить состояние subject
    
    
    async def support_subject(message: types.Message, state: FSMContext):
        await state.update_data(subject=message.text)
        await message.answer('Введите номер заказа')
        await support_user.next()  # переход на следующее состояние

    В support_subject, await support_user.next() также должен быть заменен на await state.set_state(support_user.number_order) для перехода к следующему состоянию.

    Функция support_number_order также должна установить состояние с помощью await state.reset_state() и await state.finish().

    Кроме того, при регистрации обработчика сообщений не забудьте передать объект состояния в функцию support.
    dp.register_message_handler(support, state=support_user.subject)
    Ответ написан
    Комментировать
  • Как преобразовать спектрограмму в изображение?

    i229194964
    @i229194964
    Веб разработчик
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.misc import imresize
    from matplotlib import cm
    
    # Преобразуем спектрограмму в log-шкалу и нормализуем значения
    Zxx_log = np.log10(np.abs(Zxx))
    Zxx_norm = (Zxx_log - Zxx_log.min()) / (Zxx_log.max() - Zxx_log.min())
    
    # Используем colormap 'viridis' для преобразования значений в цвета
    cmap = cm.get_cmap('viridis')
    Zxx_rgb = cmap(Zxx_norm)
    
    # Изменяем размер изображения до 128x128
    Zxx_resized = imresize(Zxx_rgb, (128, 128))
    
    # Переводим изображение в формат (3, 128, 128)
    Zxx_final = np.transpose(Zxx_resized, (2, 0, 1))
    
    # Выводим изображение
    plt.imshow(Zxx_final)
    plt.show()
    Ответ написан
    1 комментарий
  • Как сопоставить два паттерна рисунка вен ладони?

    i229194964
    @i229194964
    Веб разработчик
    Да, существуют алгоритмы, позволяющие решить проблему сопоставления двух рисунков вен с заданными условиями. Один из таких алгоритмов называется анонимизацией отпечатка ладони.

    Алгоритм анонимизации отпечатка ладони основан на биометрической технике, используемой для определения уникальных характеристик линий и вен ладони. Для достижения описанных вами целей алгоритм использует криптографическую процедуру, чтобы сделать отпечаток ладони неузнаваемым и необратимым. В результате генерируется уникальный идентификационный код (шаблон), который может быть использован для сопоставления двух рисунков вен ладони.
    Ответ написан
    Комментировать
  • Как решить проблему с пакетом?

    i229194964
    @i229194964
    Веб разработчик
    Удалите пакет @nestjs/core и @nestjs/microservices
    npm uninstall @nestjs/core @nestjs/microservices
    Убедитесь, что в вашем файле package.json не осталось ссылок на эти пакеты.

    Установите последние версии этих пакетов:

    npm install @nestjs/core@latest @nestjs/microservices@latest
    Ответ написан
    Комментировать
  • Как в php извлечь данные из json?

    i229194964
    @i229194964
    Веб разработчик
    // Получаем JSON-строку
    $json_string = '[{
      "url_img":"url",
      "name":"Виктор"
    },{
      "url_img":"url",
      "name":"Анна"
    }]';
    
    // Преобразуем JSON-строку в массив PHP
    $data = json_decode($json_string, true);
    
    // Извлекаем значение поля "name" для каждого элемента в массиве
    foreach ($data as $item) {
      echo $item['name'] . '<br>';
    }
    Ответ написан
    Комментировать
  • Как изменить цвет текста в html файле если span уже использован?

    i229194964
    @i229194964
    Веб разработчик
    Вы можете изменить цвет текста под картинками, изменив значение свойства color в селекторе .colors> ul > a > span
    .colors> ul > a > span {
      text-align: center;
      height: 4.5vh;
      font-size: 2.0vh;
      color: green;
      display: inline-block;
      position: absolute;
      bottom: -5vh; right: 0; left: 0;
      text-shadow: 0 0 3px var(--color-white);
      margin: auto;
    }
    Ответ написан
    Комментировать
  • FastApi + uvicorn не коннетится?

    i229194964
    @i229194964
    Веб разработчик
    Попробуйте
    python3 -m uvicorn sql_app.main:app --reload --host 0.0.0.0 --port 8000
    так
    Ответ написан
  • В чем ошибка при установке pip пакетов?

    i229194964
    @i229194964
    Веб разработчик
    Ошибка что требуемая версия пакета cffi не найдена в системе, или установлена неправильная версия.

    pip3 install cffi==версия_из_requirements.txt
    Если установлена попробуйте так
    pip3 install -r requirements.txt
    Ответ написан
    Комментировать
  • Как подключиться к OpenVPN в Ubuntu с помощью консоли?

    i229194964
    @i229194964
    Веб разработчик
    sudo apt-get install openvpn
    Скопируйте конфигурационный файл OpenVPN в директорию /etc/openvpn/
    sudo cp /path/to/openvpn/config/file /etc/openvpn/
    запустите
    sudo openvpn --config /etc/openvpn/config_file.ovpn

    где /etc/openvpn/config_file.ovpn - путь к вашему конфигурационному файлу.
    Ответ написан
  • Как сохранять данные и проверять через определенное время?

    i229194964
    @i229194964
    Веб разработчик
    Попробуйте так

    // Читаем данные из localStorage
    let olda = localStorage.getItem('olda');
    let oldb = localStorage.getItem('oldb');
    let oldc = localStorage.getItem('oldc');
    let oldDataTime = localStorage.getItem('oldDataTime');
    
    // Получаем текущее время
    let currentTime = new Date().getTime();
    
    // Если прошло более 5 минут с момента последнего сохранения, сохраняем текущие значения и обновляем время
    if (!oldDataTime || currentTime - oldDataTime >= 5 * 60 * 1000) {
      localStorage.setItem('olda', a);
      localStorage.setItem('oldb', b);
      localStorage.setItem('oldc', c);
      localStorage.setItem('oldDataTime', currentTime);
    }
    
    // Выводим значения в таблицу
    // ...
    Ответ написан
  • Как исправить ошибку при установке pm2 в Kali Linux?

    i229194964
    @i229194964
    Веб разработчик
    Убедитесь, что Node.js правильно установлен.
    Обновите node js
    sudo apt-get install nodejs
    
    sudo npm install -g n && sudo n latest

    Если не помогает попробуйте удалить и заново поставить
    sudo apt-get remove nodejs
    Попробуйте установить pm2 локально в своей директорий
    npm install pm2
    Если не один способ не помог установите pm2 с помощью yarn
    sudo yarn global add pm2
    Ответ написан
  • Как спарсить альбом из канала используя Telethon?

    i229194964
    @i229194964
    Веб разработчик
    вот пример кода
    from telethon.sync import TelegramClient
    
    # параметры авторизации
    api_id = 12345
    api_hash = '0123456789abcdef0123456789abcdef'
    phone_number = '+71234567890'
    
    # создание клиента
    client = TelegramClient('session_name', api_id, api_hash)
    
    # авторизация
    client.connect()
    if not client.is_user_authorized():
        client.send_code_request(phone_number)
        client.sign_in(phone_number, input('Введите код: '))
    
    # получение альбома из канала
    channel_username = 'my_channel_username'
    messages = client.get_messages(channel_username, limit=10, grouped=True)
    
    for group in messages:
        if group[0].media_album_id is not None:
            # это альбом
            for message in group:
                for media in message.media:
                    # это медиа-файл из альбома
                    if hasattr(media, 'document'):
                        # это документ (например, фото или видео)
                        print(f'Найден файл: {media.document.file_name}')
    Ответ написан
    1 комментарий
  • Как подключить https в fastify?

    i229194964
    @i229194964
    Веб разработчик
    const fastify = require('fastify')({
      https: {
        key: fs.readFileSync('/path/to/key.pem'),
        cert: fs.readFileSync('/path/to/cert.pem')
      }
    })
    
    fastify.get('/', (request, reply) => {
      reply.send({ hello: 'world' })
    })
    
    fastify.listen({ port: 3000 }, (err) => {
      if (err) {
        console.error(err)
        process.exit(1)
      }
      console.log('Server running at https://localhost:3000')
    })
    Ответ написан
  • Как из ответа json, с помощью php получить только строку url и в последствии с помощью echo ее вставить на страницу?

    i229194964
    @i229194964
    Веб разработчик
    <?php
    
    // JSON-строка
    $json_str = '{"state": 0,
      "result": {
        "uuid": "f1386fb5-ecfa-41d4-a85d-b151d98df5e1",
        "order_id": "test-28",
        "amount": "10.00000000",
        "payment_amount": "11.95000000",
        "payer_amount": "10.00000000",
        "payer_currency": "USDT",
        "currency": "USDT",
        "comments": null,
        "network": "tron_trc20",
        "address": null,
        "from": null,
        "txid": null,
        "payment_status": "refund_process",
        "url": "https://pay.cryptomus.com/pay/f1386fb5-ecfa-41d4-a85d-b151d98df5e1",
        "expired_at": 1655196355,
        "status": "check",
        "is_final": false,
        "additional_data": null,
        "currencies": [
                {
                    "currency": "USDT",
                    "network": "tron_trc20"
                },
                {
                    "currency": "USDT",
                    "network": "eth_erc20"
                }
            ]
    
      }
    }';
    
    // преобразуем JSON-строку в объект
    $obj = json_decode($json_str);
    
    // получаем значение свойства url
    $url = $obj->result->url;
    
    // выводим url на страницу
    echo $url;
    Ответ написан
    Комментировать
  • Почему ошибка в next.js ReferenceError: require is not defined?

    i229194964
    @i229194964
    Веб разработчик
    Ошибка "ReferenceError: require is not defined" может возникать в Next.js при использовании модулей.
    Чтобы исправить ошибку место использования require вам нужно будет использовать import в вашем коде Rollup.
    import typescript from "@rollup/plugin-typescript";
    import postcss from "rollup-plugin-postcss";
    import url from "@rollup/plugin-url";
    import svgr from "@svgr/rollup";
    import { terser } from "rollup-plugin-terser";
    import dts from "rollup-plugin-dts";
    
    export default [
      {
        input: "src/index.ts",
        output: [
          {
            file: "dist/cjs/index.js",
            format: "cjs",
          },
          {
            file: "dist/esm/index.js",
            format: "esm",
          },
        ],
        external: ["react"],
        plugins: [
          typescript({
            tsconfig: "./tsconfig.json",
          }),
          postcss({
            extract: "index.css",
            modules: true,
            use: ["sass"],
            minimize: true,
          }),
          url(),
          svgr({ icon: true }),
          terser(),
        ],
      },
      {
        input: "dist/esm/index.d.ts",
        output: [{ file: "dist/index.d.ts", format: "esm" }],
        external: [/\.(css|scss)$/],
        plugins: [dts()],
      },
    ];
    Ответ написан
  • Не запускается Kafka в docker-compose, как починить?

    i229194964
    @i229194964
    Веб разработчик
    Чтобы решить эту проблему
    Попробуйте добавить в broker секцию networks с указанием сети, которая была создана для проекта Docker-compose.
    networks:
      default:
        external:
          name: my_network

    Убедитесь, что в вашем /etc/hosts файле есть запись для broker. Например, вы можете добавить следующую запись:127.0.0.1 broker
    Попробуйте использовать IP-адрес вместо имени хоста broker в конфигурации Kafka. Например, замените KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' на KAFKA_ZOOKEEPER_CONNECT: '172.20.0.2:2181', где 172.20.0.2 - это IP-адрес контейнера ZooKeeper.

    Проверьте, что у вас нет блокировки IP-адресов на вашем компьютере или в вашей сети.
    Ответ написан
  • Почему в safari кривой бордер?

    i229194964
    @i229194964
    Веб разработчик
    Это может быть связано с тем, что в Safari используется другой алгоритм отрисовки границ, чем в других браузерах.
    .calculator__content__value-circle__wrapper {
      box-sizing: border-box;
    }
    Ответ написан
    Комментировать