Задать вопрос
  • Телеграм бот. SQlite3 как выводить id?

    shabelski89
    @shabelski89
    engineer
    для начала сделать импорты:
    import sqlite3
    from sqlite3 import Error
    from time import sleep, ctime


    вызов всех SQL выражений сделать через функцию:
    def post_sql_query(sql_query):
        with sqlite3.connect('my.db') as connection:
            cursor = connection.cursor()
            try:
                cursor.execute(sql_query)
            except Error:
                pass
            result = cursor.fetchall()
            return result


    далее нужно создать таблицу в sqlite и в качестве primary key (именно он на уникальность определит) сделать id user:
    def create_tables():
        users_query = '''CREATE TABLE IF NOT EXISTS USERS 
                            (user_id INTEGER PRIMARY KEY NOT NULL,
                            username TEXT,
                            first_name TEXT,
                            last_name TEXT,
                            reg_date TEXT);'''
        post_sql_query(users_query)


    и функцию регистрации пользователя:
    def register_user(user, username, first_name, last_name):
        user_check_query = f'SELECT * FROM USERS WHERE user_id = {user};'
        user_check_data = post_sql_query(user_check_query)
        if not user_check_data:
            insert_to_db_query = f'INSERT INTO USERS (user_id, username, first_name,  last_name, reg_date) VALUES ({user}, "{username}", "{first_name}", "{last_name}", "{ctime()}");'
            post_sql_query(insert_to_db_query )

    а дальше вызывать её из хендлера:
    create_tables()  # вызываем функцию создания таблицы users
    
    
    @bot.message_handler(commands=['start'])
    def start(message):
        register_user(message.from_user.id, message.from_user.username,
                      message.from_user.first_name, message.from_user.last_name)
        bot.send_message(message.from_user.id, f'Welcome  {message.from_user.first_name}' )


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

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Как обезопасить андроид от вирусов?

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

    Я думаю мало чем поможет. Обновление сигнатур происходит не так часто, и шанс подцепить какую нибудь бяку - будет все равно высокий(в случае неадекватного серфинга). За последние 10 лет использования андроида, не разу не использовал антивирус, и вам советую не заморачиваться. Если андроид захочет отдать концы, он это сделает.
    Ответ написан
    Комментировать
  • Как подключить файл с определённым именем только 1 раз php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    require_once / include_once

    PS: Если автор вопроса реально имеет десяток разных файлов с одинаковыми названиями, то вопросов два - нафига, а главное зачем? Хотя чему я удивляюсь, в тегах же вордпресс, а значит автор должен страдать...
    Ответ написан
    3 комментария
  • Почему бот работает неправильно?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Можно сделать отдельные списки со словами, а потом проверять, есть ли ответ от пользователя в нужном списке:
    print("Привет, какое у тебя настроение?")
    
    good = ["хорошо","хорошее","отлично","отличное","прекрасно","прекрасное","замечательно","замечательное","идеально","норм"]
    bad = ["плохо","плохое","ужасно","ужасное","не очень","такое себе" ]
    
    a =  input().lower()
    if  a in good:
        print("У меня тоже хорошее настроение")
    elif a in bad:
        print("Ничего страшного, скоро все наладится")
    else:
        print("Извини, я тебя не понимаю")
    Ответ написан
    1 комментарий
  • Как сделать свой REST API?

    VlasenkoFedor
    @VlasenkoFedor
    Программист: php, js, go
    index.php
    <?php
    # Author - Fedor Vlasenko, vlasenkofedor@gmail.com
    define('METHOD', $_SERVER['REQUEST_METHOD']);
    define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    
    function router($url, ...$args)
    {
        (empty($args[1]) || false !== strpos(METHOD, $args[0]))
        && (URI === $url || preg_match('#^' . $url . '$#iu', URI, $match))
        && die(call_user_func_array(end($args), $match ?? []));
    }
    
    router('/api/games', 'GET', function () {
        echo 'список игрушек';
    });
    
    router('/api/game/(\d+)', 'GET', function (...$args) {
        echo 'информация о игрушке: ', $args[1];
    });
    
    router('/api/games', 'POST', function () {
        echo 'добавить новую игрушку';
    });
    
    router('/api/games/(\d+)', 'PUT', function (...$args) {
        echo 'обновить существующую игрушку: ', $args[1];
    });
    
    router('/api/games/(\d+)', 'DELETE', function (...$args) {
        echo ' удалить игрушку: ', $args[1];
    });
    
    header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    echo '404';

    далее в консоли запускаем встроенный php сервер
    php -S localhost:8000 index.php
    тестируем и наслаждаемся :-)
    Ответ написан
    2 комментария
  • Можно ли использовать endl вместо "\n" в C++?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://ru.wikipedia.org/wiki/CP866
    https://ru.wikipedia.org/wiki/Windows-1251
    https://ru.wikipedia.org/wiki/UTF-8

    Желаю веселых выходных

    Исправление. Запостил не в то окно.
    Поведение зависит от операционной системы и режима открытия файла

    Сорри, случайно ответил на вопрос про использование в свиче.

    В вашем случае все зависит от операционной системы и режима открытия файла

    Opening a file in text mode should cause std::endl to be converted to the appropriate line ending for your platform. Your problem is that newline is appropriate for your platform, but the files you create aren't intended for your platform.

    I'm not sure how you plan on overloading or changing endl, and changing its behavior would certainly be surprising for any developers new to your project. I'd recommend switching to win_endl (should be a simple search-and-replace) or maybe switching from a standard ostream to a Boost.Iostreams filtering stream to do the conversion for you.
    Ответ написан
    3 комментария
  • Почему не обрабатывается тег BR?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    "Вопрос1: $otvet1\nВопрос2: $otvet2\nВопрос3: $otvet3\nВопрос4: $otvet4\nЕмайл: $email\nТелефон: $phone";
    Ответ написан
    Комментировать
  • Как установить интернет драйвер на linux ubuntu с диска?

    Zoominger
    @Zoominger
    System Integrator
    1. Вставьте диск;
    2. Примонтируйте диск;
    3. Найдите драйвер на диске;
    4. Прочитайте инструкцию по установке;
    5. Повторять шаг 4 до понимания инструкции по установке;
    6. Выполнить установку драйвера.

    Можно ещё проще:
    1. Установить нормальную десктопную ОС, где не будет таких глупых проблем.
    Ответ написан
    3 комментария
  • Почему не работает preg_replace в другой версии PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    <?php
    $str = '12$34%56';
    var_dump(preg_replace('~[^-a-z0-9_]+~u', '-', $str));
    // 7.1.0: string(8) "12-34-56"
    // 7.2.4: string(8) "12-34-56"
    // 7.3.5: string(8) "12-34-56"
    // 7.4.7: string(8) "12-34-56"

    Где-то не там копаете, не в версии PHP дело.
    Ответ написан
    1 комментарий
  • Покритикуете bash-скрипт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    if (( $GET_TIME > $OLD_TIME )); then


    Тут идет арифметическое сравнение.
    Скорее всего блок все время выполняется с ошибкой, потому что непонятно что в $GET_TIME, и там вряд-ли распознаваемая команда. Разве что случайно попадает что-то внятное. Если приведете примеры того, что у вас в эти переменные попадает, будет понятнее.

    Сравнивать нужно не даты, а таймстампы
    Ответ написан
    3 комментария
  • Стоит ли учить C++ в 2020?

    0xD34F
    @0xD34F
    Стоит. Или не стоит. Не знаю. Монетку подбросьте.
    Ответ написан
    Комментировать
  • Как программисту стать биоинформатиком?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    А теперь, тщательно изучив существующие сферы программирования, поняла, что мне просто НЕОБХОДИМО стать биоинформатиком!


    Поэтому, программисты-биоинформатики, поделитесь, пожалуйста, своим опытом и ответьте на вопросы:
    1. Чем именно вы занимаетесь на своей работе?
    2. Какое у вас образование?
    3. В каком объеме вы изучали биологию, генетику, биотехнологии и прочее? Или не изучали совсем?
    4. Что вообще нужно знать и уметь?
    5. Где можно найти работу или хотя бы стажировку? Вакансий днем с огнем не сыщешь, особенно для начинающего биоинформатика (а ведь я в Москве!). А если вдруг что-то попадается, то для биологов, а не программистов.
    6. На какую зарплату можно рассчитывать начинающему биоинформатику и на какую опытному специалисту?


    Сори что я влезаю, но если вы ТЩАТЕЛЬНО изучили, то откуда у вас такие вопросы?
    Ведь если вы даже не знаете есть ли вообще такая работа в Мск, и чем там занимаются люди, то откуда вы решили, что знаете что такое биоинформатик? И что такое вообще существует?
    Ответ написан
    1 комментарий
  • Входящее подключение в режиме реального времени?

    Nird_o
    @Nird_o
    Побил рекорд по количеству прожитых мной дней
    Для мониторинга сетевой активности используем программу iptraf-ng из пакета iptraf.
    Или tcptrack -i enp2s0
    Сортируем по пакетам или байтам. Детектим активное соединение съедающее трафик.
    Для прерывания соединения используем программу iptstate -d 51.15.188.205 -D 8015 x y enter
    Ответ написан
    Комментировать
  • Где можно скачать оригинальный образ Windows 7?

    ranebull
    @ranebull
    Официальный вариант:
    Microsoft Software Recovery
    Неофициальный:
    google: Windows 7 msdn torrent
    Ответ написан
    Комментировать
  • Как на linux запустить тяжелую игру через виртуальную машину с OS Windows 10?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    никак
    забудь про игры или возвращайся на винду
    Ответ написан
    Комментировать
  • Как на linux запустить тяжелую игру через виртуальную машину с OS Windows 10?

    Zoominger
    @Zoominger
    System Integrator
    Лол, абсолютно никак. VBox вообще никак не вывозит проброс видеокарты, а даже если бы и вывозил, то выше драйвера на видео от Linux не прыгнешь, а он в нём традиционно отвратителен и никак видеокарту не раскрывает.
    Ответ написан
    Комментировать
  • Где черпать информацию?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Из учебников черпать. Если прочитать Лутца, то в коде на скрине будет понятно 98% Оставшиеся два процента можно будет почерпнуть из документации PyQt.
    Ответ написан
    Комментировать
  • Можно ли упростить код?

    @AstraVlad
    Финансист, консультант, программист-любитель
    Например положить команды и вызываемые ими смайлики с словарь вроде smileys = {text: smile_list} и сделать цикл:
    for text, smile_list in smileys:
        if text in message.text:
            msg = message.text
            for i in range(0, len(smile_list)):
                wtf = (text+"{0}]").format(i)
                if wtf in msg:
                      bot.send_message(message.chat.id,msg.replace(wtf,smile_list[i]))


    Список смайлов генерируется аналогично. Вообще, если мы видим, что у нас дважды встречается один и тот же (по структуре) фрагмент кода, значит мы что-то уже сделали не так и тут или нужен цикл или надо выделить его в отдельную функцию.
    Ответ написан
    1 комментарий
  • 100% uptime c CloudFlare?

    1 Отчасти, если хостинг сдох. то и сайт сдох. cloudflare поднимет статическую копию из кеша.
    2 Можно купить, если купите тариф бизнес за 200 долларов в месяц.
    Ответ написан
    3 комментария