• Как использовать два контекста в методе правильно JS?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Используя стрелочную функцию:
    init() {
        this.targets.forEach((target, index) => {
            target.index = index;
            target.addEventListener("click", (event) => this.animateTab(event, this));
        });
    }

    Используя метод bind():
    init() {
        for (let i = 0; i < this.targets.length; i++) {
            this.targets[i].index = i;
            this.targets[i].addEventListener("click", this.animateTab.bind(this));
        }
    }
    Ответ написан
    3 комментария
  • Как составить букмарклет для поиска в Yandex из Google?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Так?
    javascript:(function(){var q=encodeURIComponent(document.querySelector('input[name="q"]').value);window.open("https://yandex.ru/search/?text="+q);})();
    Ответ написан
    1 комментарий
  • Как описываются апи роута поиска по имени и части имени?

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

    Начинается на max, на max или vasya:
    api/users/search?name=max&startsWith=true
    api/users/search?name=max|vasya&startsWith=true

    Оканчивается, содержит или похоже:
    api/users/search?name=max&endsWith=true
    api/users/search?name=max&contains=true
    api/users/search?name=max&fuzzy=true

    Взято как база из Java, C#, JS, Python, в которых присутствуют аналогичные методы (как минимум startsWith и endsWith) при проверке расположения значения в строке.
    Ответ написан
    2 комментария
  • Как машина состояний AIOGRAM хранит данные?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если множество пользователей, скажем 500 вызовут её

    А Вы попробуйте, программист должен уметь тестировать.

    При использование await state.update_data(text=message.text) данные сохраняются отдельно, для каждого из пользователей.
    Важное условие, ни бд, ни MemoryStorage не используется.

    В aiogram по дефолту используется MemoryStorage (хранение в оперативе сервера).
    Ответ написан
    Комментировать
  • Картинки мутные только на сафари, есть выход?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте следующие варианты:
    img {
        image-rendering: optimizeQuality;
    }

    или:
    <object type="image/svg+xml" data="img.svg" width="100" height="100"></object>

    или:
    <embed type="image/svg+xml" src="img.svg" width="100" height="100"/>
    Ответ написан
    1 комментарий
  • Платить или не платить за чужую картинку на своём сайте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Мнение юриста компании: Оплатить 50 тыс защитникам законности, ибо суд те выиграют и будет еще хуже.

    Юрист передает бумагу на подпись директору, где изложены его рекомендации и план действий относительно настоящего дела, директор подписывает бумагу и оплачивает штраф. Вы либо слушайте юриста, либо увольте его, если он не компетентен.
    Мнение директора: эти деньги списать с того вебмастера, который 10 лет назад эту картинку из интернета опубликовал.

    Рекомендация выше. Юрист говорит, что все получится, проигрывает 1, 2, 3 дело и на выход с вещами. Либо, говорит что ничего не получится, а значит сразу закрываете вопрос.
    Я думаю, что подобный инцидент не повлечёт за собой никакого судебного разбирательства

    Рекомендация выше. Укажите, что возместите расходы, если Ваше предположение окажется ложным.
    Ответ написан
    2 комментария
  • Как можно обновить head в next.js?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Я бы использовал существующий компонент Head, вместе с контекстом и состоянием, а так же кастомный HeadProvider:
    // _app.js
    import {HeadProvider} from './HeadProvider';
    
    function App({Component, pageProps}) {
        return (
            <HeadProvider>
                <Component {...pageProps} />
            </HeadProvider>
        );
    }

    // HeadProvider.js
    import React, {createContext, useContext, useState} from 'react';
    
    const HeadContext = createContext();
    export const useHead = () => useContext(HeadContext);
    
    export function HeadProvider({children}) {
        const [headData, setHeadData] = useState({
            title: 'Init title',
            description: 'Init description',
            keywords: 'Init keywords'
        });
    
        return (
            <HeadContext.Provider value={{headData, setHeadData}}>
                {children}
            </HeadContext.Provider>
        );
    }

    // MyBestHead.js
    import Head from 'next/head';
    import {useHead} from './HeadProvider';
    
    export function MyBestHead() {
        const {headData} = useHead();
    
        return (
            <Head>
                <title>{headData.title}</title>
                <meta name="description" content={headData.description}/>
                {/* more head items */}
            </Head>
        );
    }

    // MyComponent.js
    import React, {useCallback} from 'react';
    import {useHead} from './HeadProvider';
    
    export function MyComponent() {
        const {setHeadData} = useHead();
    
        const handleClick = useCallback(() => {
            setHeadData({
                title: 'New title',
                description: 'New description',
                keywords: 'New keywords'
            });
        }, [setHeadData]);
    
        return (
            <button onClick={handleClick}>Update Head Data</button>
        );
    }
    Ответ написан
    1 комментарий
  • Как написать функцию для обновления списка комнат для single-page application?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял вопрос, то Вам нужно чистить state между переходами?
    const prevPathname = useRef(pathname);
    
    useEffect(() => {
        if (pathname !== prevPathname.current) {
            dispatch(resetRooms());
        }
    
        prevPathname.current = pathname;
    }, [pathname, dispatch]);
    Ответ написан
    3 комментария
  • Где у меня ошибка в sqlite3?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Вы используете зарезервированное в sql слово order, для названия столбца. Если другого варианта нет, то можно обернуть его кавычками. Да и f строки не рекомендуется использовать при работе с sql (Почему не стоит использовать f строки в SQL Python запросах? и Как сделать безопасно строку с sql запросом и различными параметрами?).

    Попробуйте так:
    async def add_order(self, order, name, tg, number, amount, promo, date):
        with self.connection:
            return self.cursor.execute('INSERT INTO orders ("order", name, tg, number, amount, promo, date) VALUES (?, ?, ?, ?, ?, ?, ?)', (order, name, tg, number, amount, promo, date))
    Ответ написан
    Комментировать
  • Составить карту для парсинга и автоматизации ставок?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Планирую сделать парсер букмекерской конторы

    подскажите какие темы нужно поучить

    Selenium
    selenium-stealth (это букмекеры, Вы у них не первый, а значит броня прокачена).
    есть начальные знания питона, остановился на списках, кортежах и тп

    Это не начальные знания, начальные знания - это весь python (от корки до корки), с малым количеством написанного кода.
    Ответ написан
    3 комментария
  • При параллельном тестировании не происходит запись в файл, что делать?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как вывести ссылку в echo через acf?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    $link_bc = get_field('link-bc');
    $bc = get_field('bc');
    
    echo '<a href="' . esc_url($link_bc) . '"><span class="breadcrumbs__current">' . esc_html($bc) . '</span></a>';
    Ответ написан
    Комментировать
  • С помощью чего можно реализовать такую анимацию?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    В примере используется GSAP + обычный видос.
    Ответ написан
  • Как запустить скрипт на Python по расписанию с csv?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    - Cron (linux и macos).
    - Task Scheduler (windows).
    - Schedule python library (открыть csv, циклом пройтись по строкам, получить значение из ячейки со временем и запустить schedule).

    Первые 2 решения в приоритете.
    Ответ написан
  • Как использовать Instagram API в России?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    всякого рода VPN - банит.

    Не верно, мобильные и резидентские прокси вполне справляются.
    Нужно решение, при этом бесплатное.

    3$, вполне бесплатно.
    Ответ написан
    Комментировать
  • Как работают SSR компоненты?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понимаю работу Next.js: компоненты без состояния рендерятся на сервере и могут индексироваться поисковыми роботами

    Верно, индексация стандартная.
    А с состоянием - на стороне клиента, и роботы их не видят.

    Не совсем. Поисковики индексируют динамику, но ограниченно, и она проиграет классической статике или ssr. То, что Вы видите динамику в топе - это не заслуга динамики, а недоработка конкурентов со статикой.
    Однако в компоненте самой страницы ArticlePage у меня в любом случае будет использование useState. Значит ли это, что вся страница будет отрисовываться на клиенте?

    Не совсем. Часть страницы будет отрисована на сервере, а часть на клиенте.
    И что поисковые роботы обойдут контент страницы стороной?

    Нет, контент в любом случае будет ранжироваться, но не лучше классической статики при прочих равных.
    P.S. Вопрос, возможно, глупый, но я правда не понимаю...

    К нексту у многих имеются вопросы, поэтому Вы не первый и уж тем более, не последний :)
    Ответ написан
    Комментировать
  • Как сделать, адаптивную колонку с изображением?

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

    CSS background-size или object-fit и заранее подготовленное изображение с нужными пропорциями.
    2) если блоки начинают адаптивно перескакивать, допустим flex: wrap или медиа запрос, как сделать так, чтобы это было плавно, я видел как такие вещи как-будто анимированы, как их в общем делают, это библиотеки?

    CSS transition + keyframes.
    Ответ написан
  • Деплой next.js приложения на regru?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Для SSR:
    1. Собрать docker image со своим приложением.
    2. По ssh залить п1 на сервер.
    3. По ssh установить docker и выполнить установку п2.
    4. По ssh установить и настроить nginx.
    5. По ssh настроить iptables (или аналог).
    6. (опционально) По ssh настроить автозапуск контейнера с приложением и nginx, при падение сервера.

    Для слабого vds (1 ядро, <2gb ram) использую Arch (без gui), для всех остальных - Ubuntu.

    Если у Вас SSG, то отдельный сервер не нужен, т.к. Вы можете на обычный shared хостинг залить эту статику, как обычный html сайт.
    Ответ написан
    Комментировать