Задать вопрос
  • Вы когда-нибудь встречались с данной ошибкой?

    deepblack
    @deepblack Куратор тега Python
    Python пытается преобразовать байт byte 0x81 в cp1252 и в результате возникает UnicodeDecodeError.
    Потому что его тут нет.
    spoiler
    Python 3.6 использует Unicode API для ввода/вывода в консоль как упомянутый ниже win_unicode_console пакет (подробнее в PEP 528). По умолчанию поддерживаются произвольные Unicode символы. Простой print(unicode_string) теперь работает без установки дополнительного ПО (консольный шрифт, поддерживающий желаемые символы, по прежнему нужно настраивать).

    На границе с Windows-консолью используется Unicode, внутри sys.stdin, sys.stdout, sys.stderr используют utf-8 кодировку. Это может сломать код, который использовал двоичный интерфейс для вывода в консоль и соответственно использовал OEM codepage, к примеру cp866 кодировку. cp866 не совместима с utf-8, можно получить кракозябры в таком случае. Необходимо либо исправить код, чтобы он текст, а не байты в консоль выводил, либо выставить %PYTHONLEGACYWINDOWSIOENCODING% переменную окружения, чтобы старое поведение восстановить.

    https://ru.stackoverflow.com/a/359348/290600

    Это часто под виндой встречается.

    1. Обновите pip, setuptools ,virtualenv до последних версий
    2. Если не поможет, попробуйте Python 3.7.x
    Ответ написан
    Комментировать
  • Можно ли вывести на сайте баланс смарт-контракта?

    deepblack
    @deepblack
    Можно взять этот API: https://github.com/EverexIO/Ethplorer/wiki/Ethplor...

    Пример:
    /getAddressInfo/{address}
    api.ethplorer.io/getAddressInfo/0x32Be343B94f86012...
    spoiler
    {
      "address": "0x32be343b94f860124dc4fee278fdcbd38c102d88",
      "ETH": {
        "balance": 2.0542680760545484
      },
      "countTxs": 2446019,
      "tokens": [
        {
          "tokenInfo": {
            "address": "0x2bdc0d42996017fce214b21607a515da41a9e0c5",
            "name": "SkinCoin",
            "decimals": "6",
            "symbol": "SKIN",
            "totalSupply": "388183000000000",
            "owner": "0x6f2010d0fbaf8b7dbc13ee7252ff8594a2be3c51",
            "lastUpdated": 1566777665,
            "issuancesCount": 0,
            "holdersCount": 4167,
            "image": "https://ethplorer.io/images/skincoin.png",
            "description": "First Universal Cryptocurrency based on Ethereum for instant trading CS:GO, Dota 2 skins, and making bets on eSports events\n\nhttps://skincoin.org\nhttps://www.facebook.com/skincoin/\nhttps://twitter.com/skincoin_org",
            "ethTransfersCount": 29,
            "price": {
              "rate": 0.000476030266457,
              "diff": -11.51,
              "diff7d": -0.26,
              "ts": 1566827043,
              "marketCapUsd": 41978.00690959633,
              "availableSupply": 88183483,
              "volume24h": 1571.26022094368,
              "diff30d": -33.46333000860204,
              "currency": "USD"
            }
          },
          "balance": 186088535060,
          "totalIn": 11474050000,
          "totalOut": 0
        },
        {
          "tokenInfo": {
            "address": "0xa4ec83c8907888d006a37debf755ee39766f38ae",
            "name": "Global Currency Unit",
            "decimals": "18",
            "symbol": "GCU",
            "totalSupply": "88888888000000000000000000000",
            "owner": "0x5d01bad722f5b6856c34851f16a22f7d967c39c5",
            "lastUpdated": 1566825626,
            "issuancesCount": 0,
            "holdersCount": 27547,
            "price": false
          },
          "balance": 2.5e+22,
          "totalIn": 0,
          "totalOut": 0
        }
      ]
    }
    Ответ написан
    1 комментарий
  • Как реализовать нестрогий поиск на php?

    deepblack
    @deepblack
    $search_text = 'лист';
    
    array_filter($array, function($el) use ($search_text) {
            return ( strpos($el['text'], $search_text) !== false );
        });


    https://github.com/loilo/Fuse
    spoiler
    <?php
    require_once 'vendor/autoload.php';
    
    $fuse = new \Fuse\Fuse([
      [
        "title" => "Old Man's War",
        "author" => "John Scalzi"
      ],
      [
        "title" => "The Lock Artist",
        "author" => "Steve Hamilton"
      ],
      [
        "title" => "HTML5",
        "author" => "Remy Sharp"
      ],
      [
        "title" => "Right Ho Jeeves",
        "author" => "P.D Woodhouse"
      ],
    ], [
      "keys" => [ "title", "author" ],
    ]);
    
    $fuse->search('hamil');
    
    /*
    Array
    (
      [0] => Array
        (
          [title] => The Lock Artist
          [author] => Steve Hamilton
        )
      [1] => Array
        (
          [title] => HTML5
          [author] => Remy Sharp
        )
    )
    */
    Ответ написан
    Комментировать
  • Как можно перевести jQuery в javascript?

    deepblack
    @deepblack
    https://gist.github.com/dorokhin/8d47e91676a39c045...
    overapi.com/javascript
    document.querySelector(".button").addEventListener("click", (e) => { /* ... */ });
    /* и т.д. в таком же духе */


    Учите JS и переделывайте, по ссылке можете посмотреть примеры.
    Ответ написан
    Комментировать
  • Как сделать, чтобы форма регистрации и авторизации была на одной странице сайта?

    deepblack
    @deepblack Куратор тега Django
    Первая ссылка в Google:
    https://stackoverflow.com/a/45599302/2981702

    spoiler
    <!-- Sign In Form -->
    <form>
       <button type='submit' name='submit' value='sign_in'></button>
    </form>
    <!-- Sign Up Form -->
    <form>
       <button type='submit' name='submit' value='sign_up'></button>
    </form>


    #views.py
    def index(request):
        if request.method == "POST":
            if request.POST.get('submit') == 'sign_in':
                # your sign in logic goes here
            elif request.POST.get('submit') == 'sign_up':
                # your sign up logic goes here


    P.S. Вы уж определитесь CBV у вас или FBV.
    Ответ написан
    6 комментариев
  • Как отследить новые сессии Django?

    deepblack
    @deepblack Куратор тега Django
    Показывайте сообщение всем у кого не установлена cookie, соответственно вместе с просмотром устанавливайте её.
    Ответ написан
    Комментировать
  • Как вывести количество дочитываний статьи в Вордпрессе?

    deepblack
    @deepblack
    Внизу каждой статьи разместить элемент (или привязаться к уже существующему), и на JS проверять его нахождение во viewport,
    если элемент входит во viewport, уведомлять об этом сервер, на кастомный роут.
    + можно дабавить проверку того, сколько пользователь находился на странице (для того чтобы отсеять пролистывание вниз сразу после открытия страницы).
    Т.е. если время чтения материала 9 минут (в среднем), убираем 20-30 % (кто-то может и быстрее читать),
    и далее совмещаем с проверкой нахождения во viewport.

    JavaScript: Is element in viewport?
    /*
    No jQuery necessary.
    Thanks to Dan's StackOverflow answer for this:
    http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport
    */
    
    function isElementInViewport(el) {
      var rect = el.getBoundingClientRect();
      return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.bottom <= (window.innerHeight || document. documentElement.clientHeight) &&
        rect.right <= (window.innerWidth || document. documentElement.clientWidth)
      );
    }
    Ответ написан
    Комментировать
  • Почему вылезает ошибка валидности?

    deepblack
    @deepblack Куратор тега Django
    Причем ошибка появляется что символов больше 50 а именно 51

    Подозреваю что у модели в одном из полей указано max_length=50

    CharField.max_length
    The maximum length (in characters) of the field. The max_length is enforced at the database level and in Django’s validation using MaxLengthValidator.

    UPD 1
    models.CharField(max_length=50, db_index=True)
    как я и предполагал.
    UPD 2
    И можно решить эту проблему не убирая max_length или не делая max_length=None

    Насчёт базы данных надо или нет но использую sqllite

    Т.к. в SQLite VARCHAR не имеет ограничения по длине, и технически можно обойти ограничение в Django переопределив атрибуты TextInput
    class MyCustomForm(forms.ModelForm):
    
        var1 = forms.CharField(
            widget=forms.TextInput(attrs={
                # override/add custom HTML attributes in this dictionary
                'maxlength': '70',
            })
        )


    Но это плохое решение.
    Ответ написан
  • Как ограничить скачивание документов в ВК. Сделать доступными только для подписчиков?

    deepblack
    @deepblack
    Нет.
    К документам доступ для всех, они видны в поиске и доступны по ссылке.
    Ответ написан
    1 комментарий
  • Laravel 5.8 требует php7.2?

    deepblack
    @deepblack
    В composer.json вашего проекта зафиксируйте версию doctrine/lexer которая не требует PHP 7.2

    Смотря на содержимое composer.json EmailValidator
    можно сказать что требуется doctrine/lexer "^1.0.1"
    А lexer 1.0.1 работает на php: >=5.3.2

    spoiler

    {
      "name":         "egulias/email-validator",
      "description":  "A library for validating emails against several RFCs",
      "homepage":     "https://github.com/egulias/EmailValidator",
      "type":         "Library",
      "keywords":     ["email", "validation", "validator", "emailvalidation", "emailvalidator"],
      "license":      "MIT",
      "authors": [
        {"name": "Eduardo Gulias Davis"}
      ],
      "extra": {
        "branch-alias": {
          "dev-master": "2.1.x-dev"
        }
      },
      "repositories": [
        {
          "type": "git",
          "url": "https://github.com/dominicsayers/isemail"
        }
      ],
      "require":      {
        "php": ">= 5.5",
        "doctrine/lexer": "^1.0.1"
      },
      "require-dev" :   {
        "satooshi/php-coveralls": "^1.0.1",
        "phpunit/phpunit": "^4.8.35||^5.7||^6.0",
        "symfony/phpunit-bridge": "^4.4@dev",
        "dominicsayers/isemail": "dev-master"
      },
      "suggest": {
        "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
      },
      "autoload": {
        "psr-4": {
          "Egulias\\EmailValidator\\": "EmailValidator"
        }
      },
      "autoload-dev": {
        "psr-4": {
          "Egulias\\Tests\\": "test"
        }
      }
    }

    Ответ написан
    3 комментария
  • Программа удаленного доступа к пользовательским компьютерам в крупных распределенных сетях?

    deepblack
    @deepblack
    DameWare - платно, но очень удобно.
    Ответ написан
    Комментировать
  • Как подключить патч-панель?

    deepblack
    @deepblack
    У вас на фото подписаны номера контактов,
    подключите кабель одной стороной в патч-панель, на другой обожмите коннектор (естественно согласно нумерации).
    Там ничего сложного нет.

    Обычно жмут по B (T568B)
    Ответ написан
    Комментировать
  • Зачем тут вложенный в класс класс Мета?

    deepblack
    @deepblack Куратор тега Python
    Задаёт опции модели
    https://docs.djangoproject.com/en/dev/ref/models/o...
    Ответ написан
    Комментировать
  • Почему монтируется папка .env вместо файла .env при попытке поднять Octobercms на docker?

    deepblack
    @deepblack
    Потому что .env подключается вот так
    version: "3.5"
    services:
      db:
        build:
          context: ./docker
          dockerfile: postgresql.Dockerfile
        env_file:
          - .env
        restart: always
        volumes:
          - postgres:/var/lib/postgresql/data
        ports:
          - "127.0.0.1:5432:5432"
      redis:
        env_file:
          - .env
        restart: always
        image: redis:3.0
        expose:
          - "6379"


    UPD:
    .env файл обычно (всегда) не ложат в контейнер, скорее наоборот всячески избегают этого,
    т.к. в нём хранится чувствительная информация, как правило это различные токены и т.д.
    Хранение подобного в репозитории это плохой тон. Но можно хранить какой-нибудь example.env
    в качестве образца.

    В данном образе .env файл создается автоматически при билде образа и содержит одну единственную строку.
    Вот команда которой он создается:
    echo 'APP_ENV=docker' > .env

    Если вы внимательно посмотрите в README, то увидите что там об этом говорится .
    Помимо этого, автор рекомендует монтировать .env файл из вне, либо копировать его в контейнер (что является общепринятой практикой)

    В Readme написано:
    Database credentials and other sensitive information should not be committed to the repository. Those required settings should be outlined in .env.example

    Passing environment variables via Docker can be problematic in production. A phpinfo() call may leak secrets by outputting environment variables. Consider mounting a .env volume or copying it to the container directly.


    Честно говоря, не понятно ваше стремление редактировать .env в самом контейнере, вместо того чтобы его пробрасывать внутрь.
    Ответ написан
    4 комментария
  • Как добавить Django в Pycharm?

    deepblack
    @deepblack Куратор тега Django
    Если версия Community то никак.
    Если вам в учебных целях, то можете воспользоваться предложением от JetBrains для учащихся
    JetBrains Product Pack for Students
    https://www.jetbrains.com/student/

    Подтвердить статус можно через ISIC, email в домене учебного заведения, через аккаунт GitHub при активированном Students Pack.
    Ответ написан
  • Как создать сайт, для проверки слития пароля?

    deepblack
    @deepblack
    мне не понятно, как сервер ищет значение по базе. Или куда он загружает все это?

    Берёт хеш от пароля и ищет такой-же хеш в БД.
    Хеши паролей попадают в базу путём поиска слитых паролей в открытом доступе (и не только), далее
    импортируется в БД сервиса.

    Автор этого сервиса Трой Хант
    Вот его блог:
    https://www.troyhunt.com/project-svalbard-the-futu...

    Тут многие пишут, что подобным сервисам лучше не доверять. И в общем-то они правы.
    Но касательно haveibeenpwned, есть возможность скачать дамп хешей паролей (SHA-1, NTLM) email там нет по понятным причинам
    haveibeenpwned.com/Passwords (внизу страницы).

    Скачав можно залить себе в БД, сгенерировать хеш от нужного пароля и поскать совпадение в базе.
    Ответ написан
  • Django 2.Как сделать такую модель?

    deepblack
    @deepblack Куратор тега Django
    То есть, что бы можно было, в любое место описания, вставить картинку, ссылку, список, и т. д. Как можно реализовать эту задачу?


    Обычный TextField либо CharField.

    Можно использовать CKEditor - он довольно гибкий в настройках
    https://django-ckeditor.readthedocs.io/en/latest/
    Или посмотрите в исходниках как это сделано и напишите под себя с нужным функционалом.
    Ответ написан
    1 комментарий
  • Как передать данные из хвоста ссылки на сервер?

    deepblack
    @deepblack
    Но как мне отловить данные "start"?


    https://core.telegram.org/bots#deep-linking
    Deep linking
    Telegram bots have a deep linking mechanism, that allows for passing additional parameters to the bot on startup. It could be a command that launches the bot — or an auth token to connect the user's Telegram account to their account on some external service.

    Each bot has a link that opens a conversation with it in Telegram — https://telegram.me/. You can add the parameters start or startgroup to this link, with values up to 64 characters long. For example:

    https://telegram.me/triviabot?startgroup=test


    Далее посмотреть в примерах:
    deep_linking.py

    Пример на python, но думаю вы разберётесь.

    подсказка

    Вам надо обрабатывать хэндлер /start.


    Telegram отдает данные через WebHook, но в json ответе нет нужных данных.

    Вы бы показали как пытаетесь это сделать.
    Ответ написан
    2 комментария
  • Как сделать бота CallBack API?

    deepblack
    @deepblack
    Но я так и не могу понять где взять этот сервер, у меня есть на AWS машина на Linux, подойдёт ли она? Как вообще сделать этот сервер,


    AWS подойдет.
    Если на Python, то для простоты можно сделать на Flask.

    По сути это обычный вебсервер, с проектом на %framework_name%.
    CallBack url это путь на вашем сервере куда будет прилетать запрос (POST) от ВКонтакте.
    И же по этому пути вы обрабатываете, те данные которые присылает ВК.
    Ответ написан
    2 комментария
  • Как можно написать текст в определённом месте на фотографии?

    deepblack
    @deepblack Куратор тега Python
    Как можно написать текст в определённом месте на фотографии?

    from PIL import Image
    from PIL import ImageFont
    from PIL import ImageDraw 
    
    img = Image.open("sample_in.jpg")
    draw = ImageDraw.Draw(img)
    # font = ImageFont.truetype(<font-file>, <font-size>)
    font = ImageFont.truetype("sans-serif.ttf", 16)
    draw.text((0, 0),"Sample Text",(255,255,255),font=font)
    img.save('sample-out.jpg')


    https://pillow.readthedocs.io/en/3.1.x/reference/I...
    Ответ написан
    2 комментария