• Как написать скрипт/софт на Python который будет автоматически отвечать на сообщения в телеграмме по шаблону?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как написать скрипт/софт на Python который будет автоматически отвечать на сообщения в телеграмме по шаблону?

    Рекомендую начать с гугла и запроса "python telegram libraries".
    С помощью какого фреймворка вообще пишутся подобные скрипты ?

    python-telegram-bot
    Telethon
    Aiogram
    И возможно ли это реализовать с помощью телеграмм бота написанного на aiogram?

    Возможно.
    Ответ написан
    Комментировать
  • Как отправить запрос с конкретной формы и передать ID или Class формы в PHP-скрипт через ajax-запрос?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Как нужно вызывать js-функцию, чтобы она брала данные с той формы которую отправили? И как передать через ajax или ID, или Class формы?

    Модифицировать кнопку форм, чтобы она вызывала событие формы submit:
    <button type="submit" class="button">Отправить</button>

    Создадим один обработчик для всех форм:
    async function sendForm(form) {
      const data = {
        name: form.querySelector("input[name='name']").value,
        email: form.querySelector("input[name='email']").value,
        phone: form.querySelector("input[name='phone']").value,
        message: form.querySelector("textarea[name='message']").value,
        formId: form.id,
        formClass: form.className
      }
    
      try {
        const response = await fetch('php/send.php', {
          method: 'POST',
          headers: {'Content-Type': 'application/json'},
          body: JSON.stringify(data)
        });
    
        if(response.ok) {console.log('Success send form')}
        else console.log('Error send form', response);
      }
    
      catch(error) {console.log('Error: ' + error.message)}
    }

    Вешаем слушателей на submit форм:
    document.querySelector('#form1').addEventListener('submit', (e) => {
      e.preventDefault();
      sendForm(event.target);
    });
    
    document.querySelector('#form2').addEventListener('submit', (e) => {
      e.preventDefault();
      sendForm(event.target);
    });

    В зависимости от формы нужно в PHP-скрипте менять тему письма.

    В php обработчике формы обрабатываем полученные данные от js (php у меня не очень):
    $json = file_get_contents("php://input");
    $data = json_decode($jsonData, true);
    
    // get formId and formClass
    $id = $data['formId'];
    $class = $data['formClass'];
    
    // this change type email message
    Ответ написан
    4 комментария
  • Как зафиксировать ключевые запросы в директ?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Изучаем как работают операторы в Яндексе:

    - "купить машину иркутск":
    -- Фиксированное количество слов.
    -- Порядок слов не фиксирован (купить машину иркутск == иркутск купить машину).
    -- Словоформы разрешены (купить машины иркутске).
    -- Запрещены стоп-слова/служебные части речи (купить машину иркутск != купить машину из иркутска).

    - "купить машину +в иркутск" (оптимально для большинства случаев):
    -- Изменения? Зафиксировали присутствие "в" (стоп-слова/служебные части речи). Все остальное тоже самое - купить машину +в иркутск == купить машины +в иркутске == машины купить +в иркутск == +в машину купить иркутск.

    - "[купить машину в иркутск]":
    -- Закрепление количества, порядка и стоп-слов/служебных частей речи (но лишь в том случае, если точно понимаете, зачем это делать).
    Ответ написан
    Комментировать
  • Где искать JS код если в консоль показывает что он в VM?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    JS из WM - это что то вроде выполнение кода в контексте браузера, но не из js файла при загрузке страницы. Как вариант, где искать: innerHTML, eval, createElement(script).
    Ответ написан
    Комментировать
  • Next JS это только про SSR или на нём приложение ничем не отличается от реакта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Next JS это только про SSR

    Это про любой тип веб-приложения:
    - SSR.
    - SSG.
    - ISR.

    Ну а еще, это фактически единственный инструмент, который может все и сразу под React.

    Next JS это тот же реакт в котором сразу есть все необходимые пакеты для работы с ним или он все же медленней обычного spa приложения на реакте с пакетами?

    - Все инструменты в наличие.
    - Next может экспортировать собранное React приложение, после чего - некста там уже не будет, а статика, маршрутизация и реактивность останется. Что быстрее статики?
    что в нексте реакт всегда обращается к своему серверу для SSR

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

    На Next тоже самое можно. А Ваш SPA в SEO может? А рендерить одни страницы без SEO, вторые ПРЕрендерить с SEO, а остальные и так и так на лету может? А единовременно в рамках одного приложения? А еще и без дополнительных библиотек? А еще с конским комьюнити в рамках одного инструмента?

    Еще начинают активно внедряться Server Components, которые по некоторым отзывам - могут стать отраслевым стандартом.

    Если Вас интересует лишь SPA без SEO и дополнительных опций рендеринг, который будет рендериться лишь на клиенте, то оптимальнее будет выбрать лишь React + Роутер + WebPack в качестве сборщика.

    Vercel

    Vercel, оплата интеграции по стандартному тарифу, ну Вы знаете ;)
    Ответ написан
    1 комментарий
  • Не получается подключить js файл через CDN, в чём может быть проблема?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Впервые подключаю js через cdn и не могу понять в чём проблема?!

    А если в консоль браузера глянуть?

    Один из вариантов:
    1. Неправильная ссылка.
    2. Блочит браузер (сам браузер или расширение).
    3. Блочит провайдер.
    Ответ написан
    Комментировать
  • Какие есть видеоплееры с возможностью добавления серий?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - https://github.com/CookPete/react-player (библиотека поддерживает возможность создания плейлистов из массива).
    - https://videojs.com/guides/react/ (можно создать видеоплеер с возможностью добавления серий или плейлистов).
    - https://github.com/vidstack/vidstack ("серии" нужно реализовать руками, хотя частично, функционал имеется).
    Ответ написан
    2 комментария
  • Несуществующие URL ведут на главную страницу. Как это может повлиять на SEO?

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

    По сути - у Вас множество страниц с контентом главной, это значит, что существует множество одинаковых страниц, значит произойдет склейка страниц.
    Как это может повлиять на SEO?

    Варианты, между плохим и очень плохим, зависит от настроения поисковика.
    Сайт сделан на JQuery

    Это некий вариант SPA? Можно ссылку? Я пишу это к тому, что возможно, основные проблемы в SEO начинаются здесь...
    Ответ написан
    Комментировать
  • Сайт с www ведёт на страницу хостинга, а без www работает нормально. Нужно ли делать редирект?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Нужно ли с этим что-то делать?

    Вижу тег "ПОИСКОВАЯ ОПТИМИЗАЦИЯ", попробую угадать, что Вы имеете ввиду. Скорее всего, вы хотели сказать "Нужно ли мне с этим что-то делать, чтобы поисковая оптимизация стала лучше"?
    Нужно! На данный момент у Вас 2 сайта, один с www, а другой без www. Делайте редирект с www на без www. Аналогичное сделайте с http > https.
    Ответ написан
    Комментировать
  • На чем быстрее запрограммировать сайт каталог?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Подскажите на чем быстрее запрограммируется сайт каталог? На вордпресс или на чистом коде?

    Зависит от ТЗ и разработчика. Если это простой сайт состоящий из простых статей - WP будет быстрее.
    И почему?

    Зачем разрабатывать то, что уже реализовано?
    При условии что верстка программисту будет предоставлена.

    Кстати, не факт, что этот фактор поспособствует ускорению ;)
    Сайт стандартный, без лишних дополнительных плюшек.

    А Вы откуда знаете, у Вас имеется необходимая компетенция так судить? Яндекс тоже простой, всего 1 желтая поисковая строка, работы на 10 минут...
    Ответ написан
  • Нужно ли снова устанавливать Node.js для каждого нового проекта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробую объяснить простым языком.

    0. Каждый проект по умолчанию имеет свои локальный пакеты (библиотеки), которые самостоятельно устанавливаются в корневую директорию node_modules, они устанавливаются на основе файла проекта package.json (инициализация).

    Предположим, что Вы не используете контейнеризацию, то:
    1. Ноду необходимо ставить глобально, например 18 версии. Что такое глобально? В таком случае, все Ваши проекты NodeJS смогут использовать эту ноду, хотя нода при этом не будет находиться локально ни в одном из Ваших проектов.
    2. Если все Ваши проекты используют исключительно ноду 18 версии, то дополнительную ноду ставить не требуется.
    ---
    3. Если у Вас проекты используют разные версии ноды, то рекомендую с нодой работать не на прямую, а через nvm (установка/удаление/переключение).
    ---
    4. Если Вы используете контейнеризацию, то обычно, нода+проект ставится в каждый контейнер.
    Ответ написан
    Комментировать
  • Является ли замена iframe ютуб ролика на lite-youtube таким кодом оптимальной?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Цикл можно оптимизировать:
    foreach($matches[1] as $index => $video_id) {
        $replacement = '<lite-youtube videoid="' . $video_id . '" params="controls=1"></lite-youtube>';
        $content = str_replace($matches[0][$index], $replacement, $content);
    }

    А существует ли вообще matches?
    if(!empty($matches[0]))
    Если src не идет первым во фрейме, то Ваша регулярка не сработает, можно сделать так:
    '/<iframe[^>]*src=\"https:\/\/www\.youtube\.com\/embed\/([^\?"]+)(\?[^\"]*)?\"[^>]*><\/iframe>/';
    Ответ написан
    Комментировать
  • Как получить список всех групп/каналов в которых находится пользователь Telegram?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    https://github.com/LonamiWebs/Telethon
    https://docs.telethon.dev/en/stable/concepts/entit...
    from telethon import TelegramClient, utils
    
    # config
    api_id = 'id'
    api_hash = 'hash'
    phone = 'phone'
    
    client = TelegramClient('session_name', api_id, api_hash)
    
    async def main():
        # authentication
        await client.start(phone)
        
        # get group and channel list
        dialogs = await client.get_dialogs()
    
        # print group and channel data
        for dialog in dialogs:
            if dialog.is_group or dialog.is_channel:
                print(f"{dialog.name}: {dialog.id}")
    
    # start
    client.loop.run_until_complete(main())
    Ответ написан
    4 комментария
  • Хочу сделать что при нажатии кнопка постепенно становится зеленой, но не могу понять, что я делаю не так?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Заменить:
    button.style.background = linear-gradient(to right, ${color} ${currentWidth}px, transparent ${currentWidth}px);

    На:
    button.style.background = `linear-gradient(to right, ${color} ${currentWidth}px, transparent ${currentWidth}px)`;

    Если бы Вы использовали современную IDE, например WebStorm (PhpStrom итп), то она сразу бы подсказала, где у Вас проблема:
    651ea7052f61d672134203.png
    Ответ написан
  • Как избавиться от ломающих тегов HTML которые создаются пользователем на странице?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Использовать санитайзеры, например, библиотеки:
    https://github.com/cure53/DOMPurify
    https://github.com/apostrophecms/sanitize-html
    Какие есть способы убрать эту лазейку ?

    Предположим, что пользователь вводит текст и жмет кнопку Сохранить > Получаем текст (на сервере или где?) > Чистим его (библиотеки выше) > Публикуем.
    Ответ написан
    2 комментария
  • Как обернуть в цикл консольную программу на Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Погуглив нашел только вариант, где мы оборачиваем всю нашу программу в функцию и при согласии пользователя, повторяем выполнение этой функции. Есть ли другие варианты?

    Есть:
    import time
    from math import sqrt
    
    def visual_effects(f):
        def wrapper(*args, **kwargs):
            print('The result is being calculated, please wait...')
            time.sleep(2)
            res = f(*args, **kwargs)
            print(f'The area of the triangle is: {res} cm.')
    
        return wrapper
    
    @visual_effects
    def area_of_triangle(side1, side2, side3):
        if side1 <= 0 or side2 <= 0 or side3 <= 0:
            print('Error! All sides of the triangle must be greater than zero.')
            return None
        perimeter = (side1 + side2 + side3) / 2
        result = round(sqrt(perimeter * (perimeter - side1) * (perimeter - side2) * (perimeter - side3)), 2)
        return result
    
    # бесконечный цикл, пока пользователь его не прервет
    while True:
        try:
            side1 = float(input('Enter the length of side of triangle 1 (cm): '))
            side2 = float(input('Enter the length of side of triangle 2 (cm): '))
            side3 = float(input('Enter the length of side of triangle 3 (cm): '))
        except ValueError:
            print('Error! Please enter an integer or fractional number for the program to work correctly.')
            continue
    
        area_of_triangle(side1, side2, side3)
    
        user_input = input('Repeat calculate? (yes/no): ').lower()
        if user_input != 'yes':
            break  # Прерываем цикл, если пользователь ответил != yes
    Ответ написан
    Комментировать
  • Как с помощью python прочитать свойство fill-opacity в тэге path?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Заходим на сайт.
    2. Ищем html тег по css селектору.
    3. Достаем значение атрибута fill-opacity.
    4. Печатаем значение атрибута fill-opacity.
    import requests
    from bs4 import BeautifulSoup
    
    # go to website
    url = 'https://example.com'
    response = requests.get(url)
    
    if response.status_code == 200:
        soup = BeautifulSoup(response.text, 'html.parser')
        path_tag = soup.find('path', {'class': 'shape'})  # CSS selector
    
        if path_tag is not None:
            fill_opacity = path_tag.get('fill-opacity', 'Ошибка: fill-opacity не обнаружен!')
        else:
            fill_opacity = 'Ошибка: fill-opacity не обнаружен!'
    else:
        fill_opacity = f'Ошибка: не удалось подключиться к сайту {response.status_code}'
    
    # result
    print(fill_opacity)
    Ответ написан
    Комментировать
  • Как настроить локальную работу с уже созданным проектом Wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    можно ли как-то этот проект переключить на локальную работу?

    Макеты страниц (Page Layout) в WordPress представляют собой шаблоны отдельных страниц, которые можно настроить, добавив или изменив содержимое блоков из административной панели.

    Соответственно, если это (некая конвертация) не предусмотрено макетом страницы, то ответ - нельзя. С другой стороны, Вы можете подключать свои стили, которые будут перебивать стили макета, но html и js отдельных блоков из макета перебить не удастся.
    Ответ написан
  • Бесплатный API антиплагиата?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Под "антиплагиатом" понимается https://antiplagiat.ru/ ?

    да. Проверка на уникальность, по сути

    Бесплатный API антиплагиата?

    Есть ли бесплатные API?

    https://docs.antiplagiat.ru/ru/api/index.html
    API у них только один, и он принимает токен в качестве одного из параметров запроса. Соответственно, API не может быть полностью бесплатным.
    Ответ написан
    Комментировать
  • Как спарсить начальную цену предмета стим на торговой площадке?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Не обновлялась пару лет, но можно исследовать исходники - https://github.com/offish/steam_community_market
    - Посмотреть, что шлет фронт для получения цены - https://tyrrrz.me/blog/parsing-steam-market
    - На край - https://steamapis.com/docs
    Ответ написан
    Комментировать