Задать вопрос
  • Существует ли легкий аналог Dreamviewer'a?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Не будет ли фризов в играх с такой сборкой?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    сейчас сборка на Xeon E5 2650 v2

    Для игр важна частота процессора, что редко пересекается с зеонами.
    Intel Core i3-13100F

    Нормальный проц, но я бы под Вашу видюху лучше взял мощнее проц.
    Sapphire Radeon RX 7600

    Видюха выше среднего, нормальная, но я бы брал Nvidia.
    Ответ написан
    Комментировать
  • Что делать, если бот не хочет читать сообщение пользователя?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так:
    @bot.message_handler(commands=['sg'])
    def sg(message):
        msg = bot.send_message(message.chat.id, 'Великолепно, приступим... Начнем с знакомства! Как тебя зовут (Хватит Фамилии и Имени)')
        bot.register_next_step_handler(msg, process_name_step)
    
    def process_name_step(message):
        name = message.text
        bot.send_message(message.chat.id, f'Приятно познакомиться, {name}!')
    Ответ написан
    1 комментарий
  • Есть ли смысл учить абсолютно все элементы HTML?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть ли смысл учить абсолютно все элементы HTML?

    Замените HTML на любую другую технологию и получите примерно аналогичные ответы, но имеется достаточно эффективная схема:
    1. Ставим задачу - сверстать input в виде switch.
    2. Гуглим, как сделать тот или иной эффект.
    3. Решаем задачу и приобретаем опыт и понимание, для чего то или иное действие потребовалось, а для чего нет.

    Полученный объем опыта будет определять Вас, как специалиста. Больше опыта - выше грейд.
    Ответ написан
    Комментировать
  • Почему не получается создать страницы с url точь в точь как слаг кастомного типа записи?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    WP интерпретирует url example.com/solutions как запрос к архиву кастомного типа записей solutions, а не к отдельной странице.

    - Приоритет url - wp сначала проверяет, соответствует ли url какому либо типу записей или таксономии. В Вашем случае, solutions - это тип записи, поэтому wp пытается отобразить архив записей этого типа.
    - Шаблоны архивов - wp использует шаблоны архивов для отображения списков записей определенного типа. Если у Вас нет специального шаблона для архива solutions, WordPress использует стандартный шаблон archive.php.
    Ответ написан
    3 комментария
  • Как сделать, чтобы selenium открывал уже авторизированную страничку?

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

    Самый простой вариант - использовать отдельный профиль хрома (независимая постоянная сессия браузера):
    import os
    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    
    # ChromeDriver path (https://sites.google.com/chromium.org/driver/downloads)
    chromedriver_path = r'C:\project\chromedriver.exe'
    
    # Chrome profile path
    profile_dir = r'C:\project\chrome-profiles\1'
    
    # Create chrome profile (run in console):
    # $ chrome C:\project\chrome-profiles\1
    #
    # or
    #
    # auto create chrome profile (if need)
    if not os.path.exists(profile_dir):
        os.makedirs(profile_dir)
    
    # Using chrome profile
    options = webdriver.ChromeOptions()
    options.add_argument(f'--user-data-dir={profile_dir}')
    
    # Init
    service = Service(executable_path=chromedriver_path)
    driver = webdriver.Chrome(service=service, options=options)
    
    # Open website
    driver.get('https://maps.yandex.ru/')
    
    # Delay and close driver
    time.sleep(10)
    driver.quit()

    Проверяем:

    Первый запуск скрипта с переходом на maps.yandex.ru, геолокация запрещена по умолчанию - разрешаем:
    668e3052bf021461087359.png

    второй запуск скрипта с переходом на maps.yandex.ru, геолокация уже разрешена (сессия сохранилась):
    668e30657546e504380167.png
    Ответ написан
    Комментировать
  • Как вам аргумент за выбор React Query вместо RTK Query?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    https://ru.stackoverflow.com/questions/1529010/rea...

    https://www.reddit.com/r/reactjs/comments/15ucdx7/...
    acemarke

    Hi, I'm a Redux maintainer.

    Both the Redux and React Query teams recommend that:
    - If you are using Redux in the app, you should use RTK Query for your data fetching.
    - Otherwise, you should use React Query for you data fetching.

    But mixing Redux + React Query doesn't make any sense.
    Ответ написан
    Комментировать
  • Как получить промежуточное значение между двух слов?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Без регулярки:
    const url = 'www.site.ru/users/agent/512/list/france';
    const parts = url.split('/');
    const agentIndex = parts.indexOf('agent');
    const value = parts[agentIndex + 1];
    console.log(value); // 512

    с регуляркой:
    const url = 'www.site.ru/users/agent/512/list/france';
    const match = url.match(/\/agent\/(\d+)\/list/);
    const value = match ? match[1] : null;
    console.log(value); // 512
    Ответ написан
    Комментировать
  • Можно ли прочитать файл readme.txt из прикрепленного ZIP-архива и вывести в содержимом записи?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Скажите, есть возможность вывести содержимое файла readme.txt в описании публикации?

    Плагином WPDM Pro нет, необходимо прочитать содержимое txt файла из zip, затем вывести информацию на страницу WP в нужном виде.
    Ответ написан
    3 комментария
  • Как добавить переход на выбранную рубрику?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Сомнительный вариант перехода по страницам, ну ладно... Проверил, переход выполняет на нужные url рубрик:
    <div style="max-width:240px; margin:-10px auto 25px;">
        <?php
        $args = [
            'show_option_none' => 'Все рубрики',
            'orderby' => 'name',
            'show_count' => 1,
            'hide_empty' => 1,
            'hide_if_empty' => false,
            'exclude' => '10,754,121',
            'tab_index' => 0,
            'id' => 'category',
        ];
    
        wp_dropdown_categories($args);
        ?>
    </div>
    
    <?php
    $categories = get_categories([
        'exclude' => '10,754,121',
        'hide_empty' => 1,
    ]);
    
    $category_slugs = [];
    foreach ($categories as $category) {
        $category_slugs[$category->term_id] = urldecode($category->slug);
    }
    ?>
    
    <script type="text/javascript">
        document.addEventListener('DOMContentLoaded', () => {
            const dropdown = document.getElementById('category');
            const categorySlugs = <?php echo json_encode($category_slugs); ?>;
    
            console.log('Category slugs:', categorySlugs);
    
            dropdown.addEventListener('change', () => {
                const selectedValue = dropdown.options[dropdown.selectedIndex].value;
                if (selectedValue > 0) {
                    const selectedCategorySlug = decodeURIComponent(categorySlugs[selectedValue]);
                    window.location.href = `<?php echo home_url(); ?>/category/${selectedCategorySlug}`;
                }
            });
        });
    </script>

    Настройка постоянных ссылок

    668ce02d01b82594263475.png
    Ответ написан
    Комментировать
  • Curl смог, а злосчастный fetch (firefox) не может?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    CORS API ограничивает запросы с Вашего домена (Вы же выполняете js код в браузере?). Даже если Вы укажите no-cors, то API домен все равно принимает окончательное решение.

    Вам нужен любой сервер, для проксирования запроса. Выполните свой код на nodejs, и все заработает:
    import fetch from 'node-fetch';
    import {create} from './create.js';
    
    const url = 'https://api.site.ru/endpoint';
    const TOKEN = 'TOKEN';
    
    const options = {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Basic ${Buffer.from(`${TOKEN}:`).toString('base64')}`,
      },
      body: JSON.stringify({
        date: {
          from: '2024-07-01T00:00:00',
          to: '2024-07-09T00:00:00',
        },
      }),
    };
    
    fetch(url, options)
      .then((response) => response.json())
      .then((result) => create(result))
      .catch((error) => console.error(error.message));
    Ответ написан
    Комментировать
  • Как улучшить код?

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

    Никак, в любом случае будет задержка. Попробуйте так, эксперементируйте с паузой, чтобы добиться максимально быстрых кликов:
    import keyboard as kb
    import pyautogui as pt
    
    pt.PAUSE = 0.01
    
    if __name__ == '__main__':
        coordinates = [
            (-1241, 624),
            (-303, 720),
            (604, 634),
            (1363, 679),
            (1363, 679),
            (2265, 654),
            (558, 1342),
            (2476, 1255),
        ]
    
        while True:
            if kb.is_pressed('Space'):
                for x, y in coordinates:
                    pt.click(x, y)
    Ответ написан
    4 комментария
  • React Graphql в чем ошибка?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    react-apollo@3.1.5 требует @types/react ^16.8.0, но Ваш проект использует @types/react@18.3.3.

    react-apollo project is deprecated
    Попробуйте @apollo/clien вместо react-apollo.
    Ответ написан
    Комментировать
  • Как лучше сделать поле в models для нескольких файлов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Или есть какое-нибудь другое решение?

    Для Вашей задачи можно использовать сигнал post_delete, чтобы автоматически удалять связанные файлы из модели File, когда удаляется объект модели Question.
    Ответ написан
    Комментировать
  • Какую выбрать CMS для сайта на Next.js?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    заказчику требуется также CMS

    или подключить все на WordPress, но там все как-то сделано через одно место

    Вопрос стоимости и задач. WP далеко не идеальный инструмент, но дешевый и базовые фунции реализует легко.

    В ином случае, можно выбрать Strapi, cms под все, хоть админку для электрочайника делайте. Максимальная популярность в своем небольшом сегменте.
    Ответ написан
    1 комментарий
  • Как сделать на Python генерацию бейджика из ексель таблицы?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Для gui pyqt или pyside.
    2. Для работы с excell openpyxl.
    3. Для работы с изображениями pillow.
    Ответ написан
    Комментировать
  • Почему не работает callback второй раз?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Зачем светить своим токеном?
    - Зачем 2 раза объявлять одну и туже функцию callback_message?
    - Внутри функции callback_message Вы использовали callback.message.chat.id для отправки сообщений, но callback.message является ссылкой на сообщение, которое инициировало callback, а не на сообщение, которое нужно отправить.
    - А как же обработка callback_data cadastral?
    - message.message_id минус 0?
    import telebot
    from telebot import types
    
    bot = telebot.TeleBot('token')
    file = open('./start1.jpg', 'rb')
    
    @bot.message_handler(commands=['start'])
    def start(message):
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Оценка', url='https://google.com'))
        markup.add(types.InlineKeyboardButton('Кадастровые работы', callback_data='cadastral'))
        markup.add(types.InlineKeyboardButton('Строительные экспертизы', callback_data='expertise'))
        bot.send_photo(message.chat.id, file, 
                       caption='Здравствуйте, это Бот-помощник группы компаний "Стандарт Оценка", я помогу Вам определиться с нужной услугой, оформить заявку и связаться с администратором. Выберете желаемую услугу', 
                       reply_markup=markup)
    
    @bot.callback_query_handler(func=lambda call: True)
    def callback_message(call):
        if call.data == 'cadastral':
            bot.delete_message(call.message.chat.id, call.message.message_id)
            bot.send_message(call.message.chat.id, 'Введите свое ФИО')
            bot.register_next_step_handler(call.message, message_input_step)
        elif call.data == 'expertise':
            bot.send_message(call.message.chat.id, 'Вы выбрали Строительные экспертизы')
        elif call.data == 'all':
            bot.send_message(call.message.chat.id, 'Все данные верны')
    
    def message_input_step(message):
        global name
        name = message.text
        bot.send_message(message.chat.id, 'Введите свой номер телефона')
        bot.register_next_step_handler(message, phone)
    
    def phone(message):
        global phone
        phone = message.text
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Все верно✅', callback_data='all'))
        markup.add(types.InlineKeyboardButton('Начать сначало❌', callback_data='cadastral'))
        bot.send_message(message.chat.id, f'Ваше ФИО: {name}\nВаш номер телефона: {phone}', reply_markup=markup)
    
    if __name__ == "__main__":
        bot.polling(none_stop=True)
    Ответ написан
    3 комментария
  • Почему next.js при билде выдает ошибку Cannot destructure property 'store' of 'useReduxContext2(...)' as it is null?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    А если так?
    // app/layout.js
    'client'
    
    import type { Metadata } from "next";
    import { Inter } from "next/font/google";
    import "@/base.scss";
    import { Provider } from 'react-redux';
    import { store } from '../redux/store';
    import Layout from "@/components/Layout";
    
    const inter = Inter({ subsets: ["latin"] });
    
    export const metadata: Metadata = {
      title: "Home | PlayCloud",
      description: "Unique web application for listening to a huge amount of music in a unique format",
    }
    
    export default function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
      return (
        <html lang="en">
          <body className={inter.className}>
            <Provider store={store}>
              <Layout>
                {children}
              </Layout>
            </Provider>
          </body>
        </html>
      )
    }

    Cannot destructure property 'store' of 'useReduxContext2(...)' as it is null?

    Вам не нужно использовать useReduxContext2, потому что у Вас уже есть Provider, который делает контекст доступным для всех вложенных компонентов. Используйте useSelector и useDispatch из react-redux для получения доступа к состоянию и отправки в Redux.
    Ответ написан
  • Как выводить только записи в Wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Как вариант, для постов можно использовать get_posts():
    <?php
    
    $args = array(
        'post_type' => 'post', // posts
        'posts_per_page' => -1, // counts per page
        'order' => 'ASC', // по умолчанию get_posts() возвращает посты в порядке от новых к старым, изменим на обратное
    );
    
    $posts = get_posts($args);
    
    if (!empty($posts)) :
    
        foreach ($posts as $post) : setup_postdata($post); ?>
            <div>
                <h3><?php the_title(); ?></h3>
                <h4>Краткое описание:</h4>
                <p><?php the_excerpt(); ?></p>
                <a href="<?php the_permalink(); ?>">Ссылка на запись</a>
                <p>Тип записи: <?php echo get_post_type($post); ?></p> <!-- check post type -->
            </div>
        <?php endforeach;
    
        wp_reset_postdata();
    endif; ?>

    КартинкО

    6683aca90858a877454980.png

    P.S. вставлять в button превью и заголовок не самая лучшая идея...
    Ответ написан
    Комментировать
  • Размещать ли связанный сайт на поддомене, как QNA Habr?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть 2 сайта. Тематически второй можно разместить на поддомене.

    Какого рода материал на обоих сайтах? Если близкий по смыслу и подаче, то лучше на 1 домен подпапками, и наоборот.

    На крупные ресурсы я бы не стал ровняться, у них могут быть дополнительные факторы ранжирования, недоступные ресурсам поменьше.
    Ответ написан
    Комментировать