• Как внешне открыть файл с помощью python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Суть в том, чтобы открывать файл нажатием на него, а не выбором в приложении. (Как при открытии тех же .docx и .txt файлов, но с собственным расширением)

    Ниче не понятно...

    Пример открытия файла:
    import subprocess  # from all OS
    
    # open file win32
    filename = 'path/to/file.doc'
    subprocess.run(['open', filename])
    
    # subprocess.run(['open', filename])  # macOS
    # subprocess.run(['xdg-open', filename])  # linux
    Ответ написан
    4 комментария
  • Как сделать многостраничный сайт (онлайн-каталог)?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    На сайте могут быть представлены сотни позиций товаров, вручную верстать каждую страничку это бред, наверняка существуют какие-то оптимизированные методы для создания подобных проектов, хотел бы попросить рассказать о них, ибо я не смог найти нормальной информации по этому поводу.

    Есть, называется - cистема управления содержимым (CMS, Content Management System).
    вручную верстать каждую страничку это бред

    В большинстве CMS, Вы создаете шаблон страницы, который будет выводить "содержимое" страницы. Рекомендую сразу гребсти в сторону WordPress+WooCommerce, а когда его станет Вам не хватать (и Вы поймете, чего именно не хватает) - выберите себе более узкоспециализированный инструмент.
    Ответ написан
    2 комментария
  • Что я не так делаю?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вотакая ошибка: cannot access local variable 'd' where it is not associated with a value

    Обращение к переменной d происходит вне контекста (вне цикла for d in cur.fetchall()).

    Попробуйте так:
    for d in cur.fetchall():
        await call.message.edit_media(InputMediaPhoto(media=d['photo'], caption=smiles[page][1]), reply_markup=kb.paginator(url=d['url'], page=page))
    Ответ написан
    5 комментариев
  • Не могу определиться с пайплайном, как разобраться?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Изучил основы JavaScript, понял что всякие манипуляции DOM мне не нужны, потому что это не используется больше

    Где и кем больше не используется?
    Думаю такой, может мне надо выучить React?

    Но есть почему-то ощущение что React в чистом виде мне не нужен, чтобы пользоваться Next.js.

    NextJS: The React Framework for the Web...
    А в "грязном" виде React какой?
    Я остановился и понял что я занимаюсь какой-то фигней. Что я хватаю отовсюду понемногу знаний, но они не складываются в общую картинку.

    Собственно вопрос: по какому пути лучше пойти, чтобы потихоньку прийти к желаемому?

    Все так и есть. Вам необходимо изучать JS в следующем порядке:
    1. Vanilla JS.
    2. React.
    3. Frontend React + NextJS.
    4. Fullstack React + NextJS (+NestJS?).
    При этом чтобы не потратить время впустую на изучения вещей, которые абсолютно не нужны.

    А вот здесь интересный момент. Видите ли, исходя из количества вакансий, NodeJS и все ее производные в качестве backend фреймворков - не сильно востребованы, относительно более специализированных backend языков/фреймворков. Если у Вас нет особой страсти к NodeJS, то рекомендую сфокусироваться лишь на frontend (учитывая, Ваш контекст), а затем (если будет возможность) - учить в дополнение к frontend более специализированные backend языки/фреймворки.
    Ответ написан
    2 комментария
  • Как исправить TypeError: Node() takes no arguments?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    # class Node:
    #     def init(self, x, y, next):
    #         self.x = x
    #         self.y = y
    #         self.next = next
    
    #     def repr(self):
    #         return str((self.x, self.y))
    
    class Node:
        def __init__(self, x, y, next=None):
            self.x = x
            self.y = y
            self.next = next
    
        def __repr__(self):
            return str((self.x, self.y))
    Ответ написан
    Комментировать
  • Как определить изменение состояния видимости элемента?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Расширю ответ imko кодом:
    // return true, if element visible
    function isVisible(element) {
      return window.getComputedStyle(element).display !== 'none';
    }
    
    // MutationObserver
    const observer = new MutationObserver((mutations, obs) => {
      const modal = document.querySelector('#modalWindow'); // modal selector
      const dropdown = document.querySelector('#dropdownMenu'); // dropdown menu selector
    
      // check is visible?
      if (isVisible(modal) && isVisible(dropdown)) {
        console.log('Element is visible');
        obs.disconnect();
      }
    });
    
    // config
    const config = {
      attributes: true,
      attributeFilter: ['style']
    }
    
    // run
    observer.observe(document.querySelector('#modalWindow'), config);
    observer.observe(document.querySelector('#dropdownMenu'), config);
    Ответ написан
    1 комментарий
  • Ошибка установка плагинов WP. как исправить?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Вероятно, проблема с tmp директорией. Можно проверить методом тыка, объявите другую временную директорию, затем заново попробуйте установить плагины.

    wp-config.php:
    define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/test/');

    Важно! Директория /wp-content/test/ уже должна существовать.
    Ответ написан
    1 комментарий
  • Как определить локатор?

    Mike_Ro
    @Mike_Ro Куратор тега Selenium
    Python, JS, WordPress, SEO, Bots, Adversting
    BS4:
    import requests
    from bs4 import BeautifulSoup
    
    # go to url
    url = "example.com"
    res = requests.get(url)
    
    # pasing page
    soup = BeautifulSoup(res.text, 'html.parser')
    
    # search "Черновик" from span
    els = soup.find_all(lambda tag: tag.name == "span" and "Черновик" in tag.text)
    
    # ptint
    for els in el:
        print(el.text)

    Важно! Если необходимый элемент появляется динамически, то BS4 не сможет его дождаться.
    Ответ написан
    1 комментарий
  • Можно ли форму с отзывами считать сбором данных?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    152 ФЗ от 27.07.2006

    Персональные данные — это любая информация, прямо или косвенно относящаяся к физическому лицу, и позволяющая его определить. Это из статьи 3 ФЗ «О персональных данных», от 27.07.2006 № 152-ФЗ (далее — Закон).

    К персональным данным, согласно данному закону, относят:

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

    Можно ли форму с отзывами считать сбором данных?

    Присутствуют поля : ФИО*, телефон, номер участка*.

    - Не можно, а нужно на 146%.
    - Добавляйте в форму галочку "согласен на обработку своих персональных данных" с ссылкой на страницу с "политикой обработки персональных данных".
    - Пользователь должен выразить явное согласие, т.е. галочка не должна быть активна автоматически по умолчанию.
    - И еще момент, если Вы генерируете какие то данные на основе собранных ПД пользователя и сгенерированные данные "позволяют определить" этого пользователя - это ПД (id, ник, хеш итп). Если же по сгенерированному хешу (например) не получится "определить" конкретного пользователя, то - это не ПД, а обезличенные данные.
    Ответ написан
  • Почему парсер считывает всегда рандомное число обьявлений у пользователя, и как сделать так чтобы он мог нормально их считыывать?

    Mike_Ro
    @Mike_Ro Куратор тега Selenium
    Python, JS, WordPress, SEO, Bots, Adversting
    time.sleep(1)

    Рекомендую использовать WebDriverWait.
    soup = BeautifulSoup(driver.page_source, features="lxml")

    Вы создаете объект soup вне переходов по страницам, соответственно у Вас в soup лежит html начальной страницы. Попробуйте использовать soup в цикле:
    for i in range(57, 58):
        # ...
        soup = BeautifulSoup(driver.page_source, features="lxml")
        # ...
    Ответ написан
    2 комментария
  • Какой плагин подойдет для создания закрытого раздела в WP?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как уменьшить поля в Пайчарм?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Или сделать хотя бы какой-то контраст между ними?

    - File > Settings > Editor > Color Scheme > General > Gutter background (цвет фона под нумерацией строк).
    - File > Settings > Editor > Color Scheme > General > Caret row (цвет фона строки под кареткой).
    - File > Settings > Editor > Color Scheme > General > Line number (цвет нумерации строк).
    Ответ написан
    Комментировать
  • Какая ошибка допущена в коде? Либо почему не работает fetch?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    А если так?
    return (
      <>
        {collections.map((obj) => (
          <Collection name={obj.name} images={obj.photos} />
        ))}
      </>
    );
    Ответ написан
    Комментировать
  • Не работает команда discord.py?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    https://www.folkstalk.com/2022/10/purge-command-di...
    @bot.command(pass_context=True)
    @commands.has_permissions(administrator=True)
    async def clean(ctx, limit: int):
            await ctx.channel.purge(limit=limit)
            await ctx.send('Cleared by {}'.format(ctx.author.mention))
            await ctx.message.delete()
    
    @clean.error
    async def clear_error(ctx, error):
        if isinstance(error, commands.MissingPermissions):
            await ctx.send("You cant do that!")
    Ответ написан
  • Как разделить отображение видеопотоков после yolo в Джанго?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Грубо говоря, необходимо сделать "видеостену" в Джанго, на которой бы выводились потоки со всех камер.

    Как минимум, видеопоток нужно выводить по отдельности:
    <div>
        <img src="{% url 'stream_1' %}" alt="Stream 1" width="1024" height="768"/>
        <img src="{% url 'stream_2' %}" alt="Stream 2" width="1024" height="768"/>
    </div>

    Затем нужно модифицировать функцию video_stream так, чтобы она обрабатывала отдельные видеопотоки.
    Затем, необходимо модифицировать функцию с маршрутами urls.py, чтобы мы имели несколько маршрутов, например:
    path('video/stream_1/', views.video_stream, {'camera_id': 0}, name='stream_1'),
    path('video/stream_2/', views.video_stream, {'camera_id': 1}, name='stream_2'),
    Ответ написан
  • Можно ли ослабить процессор понижением таймингов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно, но эффект незначительный. Лучше понижать напряжение и частоту проца.
    Ответ написан
    Комментировать
  • Как правильно вывести результат?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    categories.map
    А из map что то выйдет (вернется) сегодня погулять?
    <main class="content">
      {
        categories.map(category => (
          <div>
            {category.name}
            {entries.map(entry => {
              if (category.id === entry.category_id) {
                return <div>{entry.name}</div>;
              }
            })}
          </div>
        ))
      }
    </main>
    Ответ написан
    Комментировать
  • Какую ошибку допустил в данном случае?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    А где объявление i? Попробуйте так:
    for (let i = 0, len = match.length; i < len; i += 4) {
      parts.push(match.substring(i, i + 4));
    }

    Очень интересная конструкция addEventListener.oninput = function(). Попробуйте так:
    inputus[i].addEventListener('input', () => {
      this.value = cc_format(this.value);
    });

    UPD: не ожидал обнаружить this, соответственно использовал стрелочную функцию по дефолту (а у нее нет собственного this). Вариант с this:
    for (let i = 0; i < inputus.length; i++) {
      inputus[i].addEventListener('input', function() {
      this.value = cc_format(this.value);
    });
    Ответ написан
    4 комментария