• Как передать параметры в виде словаря в функцию?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Пока писал вопрос, подумал с другого конца и нашел решение :)

    d = dict(p1=1, p2=2)
    def f2(p1,p2):
        print p1, p2
    f2(**d)
    Ответ написан
    3 комментария
  • Как правильно преобразовать запрос из curl-формата в Python requests?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Была внутреняя проблема сервиса (редирект на предыдущую версию API), код заработал, все хорошо :)
    Ответ написан
    Комментировать
  • Как получать значения от нескольких одновременно работающих процессов на Python?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Решил переносом соединения в базу и проверки результата в саму функцию-worker. Примерно так:

    def worker_email(keyword, task_id):
    
        # Соединяюсь с базой
        client = MongoClient('mongodb://localhost:27017/')
        db = client.admetric
        stream = db.stream
    
        sleep(10)
        print('Yo:' + keyword)
    
        # Обновляю статус задачи на "Выполнено" (если все ок) или не меняю статус и отправляю на повторое выполнение (если не ок)
        if True:
            stream.update_one({'_id': task_id}, {"$set": {"status": True}}, upsert=False)
    
        # Отключаюсь от базы
        client.close()
        return True


    UPD: Более разобранный вариант:

    def update_status(task_id, func_result):
        # Соединяюсь с базой
        client = MongoClient('mongodb://localhost:27017/')
        db = client.admetric
        stream = db.stream
    
        # Обновляю статус задачи на "Выполнено" (если все ок) или не меняю статус и отправляю на повторое выполнение (если не ок)
        if func_result:
            stream.update_one({'_id': task_id}, {"$set": {"status": True}}, upsert=False)
    
        # Отключаюсь от базы
        client.close()
    
    def yo_func(keyword):
        sleep(10)
        print('Yo:' + keyword)
        return True
    
    def worker_email(keyword, task_id):
        update_status(task_id, yo_func(keyword))
    Ответ написан
    Комментировать
  • Как использовать asyncio в стандартном for цикле?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Ответ от товарища enchantner:

    Если тебе надо две корутины запустить “параллельно” - делай два инстанса через asyncio.ensure_future(), и поверх них делай asyncio.gather().

    Если у тебя цикл в синхронном коде - то внутри цикла делай то же самое, только с шелухой сверху:

    loop.run_until_complete(
      asyncio.gather(
           asyncio.ensure_future(first_cor()),
    asyncio.ensure_future(second_cor())
      )
    )
    Ответ написан
    Комментировать
  • Как заставить ботов видеть коды счетчиков и OpenGraph-метки по https?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    В техподдержке хоста посоветовали удалить AAAA запись, которую генерит Let's Encrypt. Удалил, жду. Возможно, проблема была в этом.
    Ответ написан
    1 комментарий
  • Как скорректировать работу фильтра по ценам в WooCommerce?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Посоветовали убрать разделитель между тысячами - все заработало. Огромное спасибо Валентину Туру (https://freelansim.ru/freelancers/dvakarandasha)
    Ответ написан
    Комментировать
  • Как правильно настроить 301 редирект в nginx?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Вот весь конфиг, на всякий случай:

    server {
         listen  194.67.213.162:80;
         server_name  www.realebedev.ru;
         rewrite ^ https://realebedev.ru$request_uri? permanent; #301 redirect
    }
    server {
        listen      194.67.213.162:80;
        server_name realebedev.ru;
        root        /home/admin/web/realebedev.ru/public_html;
        index       index.php index.html index.htm;
        access_log  /var/log/nginx/domains/realebedev.ru.log combined;
        access_log  /var/log/nginx/domains/realebedev.ru.bytes bytes;
        error_log   /var/log/nginx/domains/realebedev.ru.error.log error;
    
        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }
    
        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
    
        location / {
            try_files $uri $uri/ /index.php?$args;
    
            location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
                expires     max;
            }
    
            location ~ [^/]\.php(/|$) {
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                if (!-f $document_root$fastcgi_script_name) {
                    return  404;
                }
    
                fastcgi_pass    unix:/var/run/php/realebedev.ru.sock;
                fastcgi_index   index.php;
                include         /etc/nginx/fastcgi_params;
            }
        }
    
        error_page  403 /error/404.html;
        error_page  404 /error/404.html;
        error_page  500 502 503 504 /error/50x.html;
    
        location /error/ {
            alias   /home/admin/web/realebedev.ru/document_errors/;
        }
    
        location ~* "/\.(htaccess|htpasswd)$" {
            deny    all;
            return  404;
        }
    
        location /vstats/ {
            alias   /home/admin/web/realebedev.ru/stats/;
            include /home/admin/web/realebedev.ru/stats/auth.conf*;
        }
    
        include     /etc/nginx/conf.d/phpmyadmin.inc*;
        include     /etc/nginx/conf.d/phppgadmin.inc*;
        include     /etc/nginx/conf.d/webmail.inc*;
    
        include     /home/admin/conf/web/nginx.realebedev.ru.conf*;
    
    
        if ( $request_filename ~ index.html ) {
            rewrite ^ https://realebedev.ru permanent;
        }
    
        if ( $request_filename ~ contacts.html ) {
            rewrite ^ https://realebedev.ru/kontakty/? permanent;
        }
    
        if ( $request_filename ~ ipotechnie-kredity.html ) {
            rewrite ^ https://realebedev.ru/uslugi-rieltora-pri-pokupke-kvartiry-v-ipoteku/? permanent;
        }
    
        if ( $request_filename ~ konsultacii.html ) {
            rewrite ^ https://realebedev.ru/konsultatsiya-rieltora/? permanent;
        }
    
        if ( $request_filename ~ obmen-kvartir.html ) {
            rewrite ^ https://realebedev.ru/obmen-kvartir-v-moskve-rieltor/? permanent;
        }
    
        if ( $request_filename ~ pokupka-kvartir.html ) {
            rewrite ^ https://realebedev.ru/rieltor-dlya-pokupki-kvartiry/? permanent;
        }
    
        if ( $request_filename ~ prodaja-kvartir.html ) {
            rewrite ^ https://realebedev.ru/rieltor-dlya-prodazhi-kvartiry/? permanent;
        }
    
        if ( $request_filename ~ rieltory.html ) {
            rewrite ^ https://realebedev.ru/? permanent;
        }
    
        if ( $request_filename ~ source.html ) {
            rewrite ^ https://realebedev.ru/? permanent;
        }
    
        if ( $request_filename ~ uslugi.html ) {
            rewrite ^ https://realebedev.ru/uslugi-rieltora/? permanent;
        }
    
        if ( $request_filename ~ vukyp-kvartir.html ) {
            rewrite ^ https://realebedev.ru/srochnyj-vykup-kvartir-v-moskve-rieltor/? permanent;
        }
    
        if ( $request_filename ~ zarybajnaya-nedvijimost.html ) {
            rewrite ^ https://realebedev.ru/rieltor-po-zarubezhnoj-nedvizhimosti/? permanent;
        }
    
        if ( $request_filename ~ special ) {
            rewrite ^ https://realebedev.ru/? permanent;
        }
    
        if ( $request_filename ~ msk ) {
            rewrite ^ https://realebedev.ru/? permanent;
        }
        if ( $request_filename ~ msc ) {
            rewrite ^ https://realebedev.ru/? permanent;
        }
    
        if ( $request_filename ~ sitemap.xml ) {
            rewrite ^ https://realebedev.ru/sitemap.xml  permanent;
        }
    
        if ($scheme = http) {
            return 301 https://$server_name$request_uri;
        }
    }
    Ответ написан
    Комментировать
  • Как настроить real-time сихронизацию с FTP сайта на облачные хранилища?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Пока нашел промежуточный вариант в виде FTPBox, он мониторит каждые 10 секунд и загружает обновленные файлы. Сложно, конечно, но если закладывать паузу в минуту-две после изменений, то уже полбеды, главное чтобы он весь сайт не перекачивал заново.
    Ответ написан
  • Как сделать 301 редирект с директории поддомена на директорию домена?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    gidranty.ispytanie01.ru/spb/vodosnabzhenie переводит на ispytanie01.ru/vodosnabzhenie/spb/vodosnabzhenie. То етсь вроде близко, но муть :)
    Ответ написан
    Комментировать
  • Как исправить css-фон?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Все, разобрался. Добавил banner-background. Спасибо :)
    Ответ написан
    Комментировать
  • Как дать прямую ссылку на одну из вкладок, управляемых JS?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Теоретически, я понимаю, что скрипт должен при старте проанализировать url на наличие #якоря, и если якорь есть, то распознать его как "href" и совершить действие "click" самостоятельно. Но вот с реализацией у меня проблемы)
    Ответ написан
    Комментировать
  • Изменение цвета строки в Excel через VBA-скрипт/макрос?

    sortarage
    @sortarage Автор вопроса
    Я тучка-тучка-тучка, я вовсе не медведь
    Все, пардон, сам разобрался, заменил

    cell.Interior.color = cols(CStr(cell.Value))

    на

    cell.EntireRow.Interior.color = cols(CStr(cell.Value))
    Ответ написан
    Комментировать