• Возникла проблема с Telegram Bot как решить?

    150_Kirill_150
    @150_Kirill_150
    FX, Python, C# (Unity), Coding, адепт Linux
    И так я понял что вы хотите вынести функцию в другой файл
    У меня реализовано следующим образом:
    Файл func.py
    def admin_key():
        keyboard_admin = types.InlineKeyboardMarkup()
        keyboard_admin.add(types.InlineKeyboardButton(text='⛔️Забанить пользователя', callback_data='ban_user'))
    def step2_ban(message):
        pass

    Файл bot.py
    import func as f
    @bot.callback_query_handler(func=lambda message:True)
    def tech_ob(message):
        try:
            chat_id = message.message.chat.id
            if 'ban_user' == message.data:
                msg = bot.send_message(chat_id, 'Введи ID пользователя которого надо забанить')
                bot.register_next_step_handler(msg, f.step2_ban)
                #Здесь перенаправляет на функцию step2_ban если пользователь нажал на забанить пользователя
        except:
            error(message)

    Код написан на pytelegrambotapi
    Ответ написан
    Комментировать
  • Почему не создает таблицу?

    @hello_my_name_is_dany
    Backend Developer (Node.js, PHP, C#)
    Если у вас такая же табуляция в коде, то потому что создание таблицы у вас в блоке except, а не после него
    Ответ написан
    2 комментария
  • Проблемы с nuitka, как решить?

    MinTnt
    @MinTnt
    Так как в той же директории находятся несколько других Python файлов. Программа просит при компиляции уточнить:
    --follow-imports | Компилировать их всех так же
    --unfollow-imports | Некомпилировать
    Ответ написан
    Комментировать
  • Прошу взглянуть на мой код и подсказать где я возможно не прав?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    <input type="file" name="avatar" accept="image/gif, image/jpeg">
    облегчает человеку выбор верного формата

    if(isset($file))не гарантирует что файл загрузился, по этому нужно проверять еще и еррор, перед тем как передавать несуществующие свойства в функцию

    $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    ваще жесть, про хэш не слышали? Тем более еще и в разных регистрах называть файлы...

    В остальном обычный такой код из начала нулевых, пхп4 и вот это все...
    Ответ написан
    Комментировать
  • Как оптимизировать худ (GLua)?

    @hawww
    Это происходит из-за того, что ты создаешь новый vgui объект (панель DImage) каждый кадр (хук HUDPaint вызывается каждый фрейм). Могу предложить два варианта решения:
    1. Вынести создание DImage за пределы хука (вне функции ShowHud)
    local img_health = vgui.Create('DImage')
    img_health:SetImage("//garrysmod/materials/icon16/heart.png")
    img_health:SetSize(20,20)
    
    local img_armor = vgui.Create('DImage')
    img_armor:SetImage("//garrysmod/materials/icon16/money.png")
    img_armor:SetSize(20,20)
    
    local function ShowHud()    
        if ValidPanel(img_health) then
            img_health:SetPos(24,12)
        end
        
        if ValidPanel(img_armor) then
            img_armor:SetPos(325,12)
        end
    end
    hook.Add("HUDPaint","paintedhud",ShowHud)

    В этом случае при перезагрузке кода или повторном запуске предыдущие иконки не удаляются, но создаются новые. Если это мешает, то можно сделать переменные глобальными, удалять прошлый DImage до создания нового:
    if ValidPanel(DarkRPHUD_Img_Health) then
        DarkRPHUD_Img_Health:Remove()
        DarkRPHUD_Img_Health = nil
    end
    
    if ValidPanel(DarkRPHUD_Img_Armor) then
        DarkRPHUD_Img_Armor:Remove()
        DarkRPHUD_Img_Armor = nil
    end
    
    DarkRPHUD_Img_Health = vgui.Create('DImage')
    DarkRPHUD_Img_Health:SetImage("//garrysmod/materials/icon16/heart.png")
    DarkRPHUD_Img_Health:SetSize(20,20)
    
    DarkRPHUD_Img_Armor = vgui.Create('DImage')
    DarkRPHUD_Img_Armor:SetImage("//garrysmod/materials/icon16/money.png")
    DarkRPHUD_Img_Armor:SetSize(20,20)
    
    local function ShowHud()    
        if ValidPanel(DarkRPHUD_Img_Health) then
            DarkRPHUD_Img_Health:SetPos(24,12)
        end
        
        if ValidPanel(DarkRPHUD_Img_Armor) then
            DarkRPHUD_Img_Armor:SetPos(325,12)
        end
    end
    hook.Add("HUDPaint","paintedhud",ShowHud)

    2. Использовать текстуру или материал + библиотеку surface
    Отрисовка изображений этим способом упрощается.
    local img_health = Material( "icon16/heart.png" )
    local img_armor = Material( "icon16/money.png" )
    
    local function ShowHud()    
        surface.SetDrawColor( 255, 255, 255 ) -- устанавливается цвет (r, g, b, a)
    
        surface.SetMaterial( img_health ) -- устанавливается материал, созданный заранее
        surface.DrawTexturedRect( 24, 12, 20, 20 ) -- x, y, width, height
    
        surface.SetMaterial( img_armor ) -- устанавливается материал, созданный заранее
        surface.DrawTexturedRect( 325, 12, 20, 20 ) -- x, y, width, height
    end
    hook.Add("HUDPaint","paintedhud",ShowHud)

    surface.SetMaterial( Material( "icon16/heart.png" ) ) -- тоже возможно, но советуется выносить создание Material в переменную вне хука (согласно вики)

    Как-то так:
    surface.CreateFont( "HUD", {
      font = "TargetID",
      extended = false,
      size = 18,
      weight = 600,
    })
    
    local img_health = Material( "icon16/heart.png" )
    local img_armor = Material( "icon16/money.png" )
    
    local function ShowHud()
        local ply = LocalPlayer()
        local heart = ply:Health()
        local armor = ply:Armor()
        local money = ply:getDarkRPVar("money")
        local salary = ply:getDarkRPVar("salary")
        draw.RoundedBox(0,0,0,2000,45,Color(45,45,45,225))
    
        draw.DrawText("Здоровья:" .. ' ' .. heart .. '%',"HUD",50,12,Color(255,255,255),0)
        draw.DrawText("Броня:" .. ' ' .. armor .. '%',"HUD",210,12,Color(255,255,255),0)
        draw.DrawText("Деньги:" .. ' ' .. money .. '$',"HUD",355,12,Color(255,255,255),0)
        draw.DrawText("Зарплата:" .. ' ' .. salary .. '$',"HUD",525,12,Color(255,255,255),0)
    
        surface.SetDrawColor( 255, 255, 255 ) -- устанавливается цвет (r, g, b, a)
    
        surface.SetMaterial( img_health ) -- устанавливается материал, созданный заранее
        surface.DrawTexturedRect( 24, 12, 20, 20 ) -- x, y, width, height
    
        surface.SetMaterial( img_armor ) -- устанавливается материал, созданный заранее
        surface.DrawTexturedRect( 325, 12, 20, 20 ) -- x, y, width, height
    end
    hook.Add("HUDPaint","paintedhud",ShowHud)
    Ответ написан
    Комментировать
  • Скажите как вам мой код?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    require_once 'classes.php';
    Перейти на Композер и неймспейсы

    class smartPhoneProduct
    Оставить Product, а тип товара вынести в свойство товара type или в category

    Все, что касается модификаций — вынести в характеристики, например может подойтиEAV, то есть некая сущность Характеристика с product_id, name, value и таких быть может много у одного товара. Или иной способ работы, главное чтобы при добавлении сотен характеристик вам не пришлось бы сотнями файлов классы придумывать и всегда был один Product, ну или были др причины создавать детей, например простой товар и цифровой...
    Альтернативы EAV обсуждались например тут: Альтернатива EAV, структура базы?

    getProduct()
    После исправления предыдущего шага данная штука product->getProduct() устранится, а сериализация должна быть в другом слое, товар не должен знать ничего про то, как отображать его, тк отображений может быть много (в каталоге, в письме, в отчетах, в корзине)

    echo "\nСкидка: " .$discountOnProduct. "P";
    echo — вывод, бизнес-объект не должен ничего знать про вывод, ответ сервера и прочее, должен быть просто return $this->description()
    Тем более цена не должна идти в описании, а быть неким getPrice(), причем как правило это делают не у товара, а у вариантов/предложений товара, которые с товаром связаны 1 к 1

    Скидка не должна быть частью товара, чтобы ее можно было навешивать по разным правилам/стратегиям и ситуациям, это скорее часть корзины/заказа, крч отдельная сущность со своим поведением (размер, проценты или абсолютный размер, когда применять ее).

    это основное... к код-стайлу пока претензии не имеют смысла
    Ответ написан
    6 комментариев
  • Какой подойдёт бп?

    @NPCc
    Дд. Зависеть от того какие комплектующие используется, и сколько в общем будет жрать система в нагрузке, советую посмотреть рынок блок питания https://www.youtube.com/watch?v=a81PRb8EAA0
    Ответ написан
    Комментировать
  • Как сделать вывод только определьного количества товара?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Юзайте LIMIT в sql.

    Ваш код довел до слез этого кота.
    c0ef47087edbb2ff747718af5f34c649.jpg
    Ответ написан
    2 комментария
  • Здравствуйте вопрос, по реализации % в php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Считаете сумму интервалов-шансов всех элементов массива и получаете общий диапазон.
    2. Берём случайное число на всём диапазоне.
    3. Смотрим: в какой интервал-шанса попало выпавшее случайное число - тот элемент и берём.

    Пусть нам нужно, чтобы шансы появлений букв были такие:
    A - 50%
    B - 30%
    C - остальное (20%)

    0. Сокращаем на 10 ;)
    1. Считаем: 5+3+2=10
    2. Берём случайное число на интервале от 0 до 10.
    3. Число от 0 до 5 - выводим A; от 5 до 8 - выводим B, оставшийся (8 до 10) - это C.
    Ответ написан
    1 комментарий
  • Как брать переменные из сессии как работать с ними?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    https://www.php.net/manual/ru/session.examples.bas...

    Получаешь $_POST данные из формы аутентификации, проверяешь данные по базе - если все ок, добавляешь в сессию значение $_SESSION['admin'] = true; . В контроллерах админки проверяешь наличие $_SESSION['admin'], если отсутствует редиректишь на страницу с формой.
    Ответ написан
    Комментировать