Задать вопрос
  • Как наложить png изображения друг на друга в java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Не совсем вижу вашу конечную цель, но вот некоторые мысли по реализации вашей задачи:

    Пишу клиент-серверное приложение (браузерная игра) в команде.

    Если это браузерная игра, то скорее всего вам нужно будет генерировать гербы на клиенте. Т.е. отрисовка на canvas.
    https://www.w3schools.com/graphics/canvas_images.asp
    Наберите в гугл - html javascript canvas image

    Если вы хотите сформировать картинку на сервере, то попробуйте:
    www.java2s.com/Tutorials/Java/Graphics_How_to/Imag...
    https://www.baeldung.com/java-images
    Ответ написан
    Комментировать
  • В каком файле хранятся поля acf? В Админке нету такой вкладки, поэтому в каком файле хранятся поля acf?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    У меня в wordpress нету вкладки Группа полей.

    Поищите еще название на английском - Custom Fields, если его тоже нет, то плагин отключен
    Но сам acf на сайте работает.

    При отключении плагина сохраненные в БД поля доступны ждя уже добавленных записей, но вы не можете добавить поля к новым записям

    Мне нужно посмотреть сами поля, в каком файле и в какой папке хранятся эти поля на сервере? Может в wp-admin?

    Не там и не там и точно не в wp-admin. Они хранятся в базе данных сайта. По факту acf это кастомные мета данные. Соответственно, посмотрите в таблицы:
    wp_postmeta
    wp_usermeta и др. (в зависимости от того, куда эти поля были добавлены)
    Ответ написан
  • Фоновый импорт товаров из csv?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Попробуйте следующее:
    Wp ALL Import + Woocommerce Addon
    Далее там есть возможность создавать крон задачу и тем самым выполнять импорт в "фоне"
    Ответ написан
    1 комментарий
  • Парсинг (скрапинг) получение информации с сайтов, авторизация, инструменты, примеры?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Здравствуйте!
    Начнем с простого, когда контент сайта загружается без фреймворков. Соответственно, нет никаких аяксов, не нужно никуда скроллить, чтобы получить следующую страницу или кликать на кнопки и т.д. для получения материалов. Т.е. вам достаточно отправить GET запрос на некий сайт и получить данные.
    В этом случае для парсинга будет достаточно библиотеки jsoup. Либо для своей кастомной реализации используйте DOM & SAX Parser.

    Теперь, чуть усложним задачу сайт точно также формируется без фреймворков, но для получения доступа к информации нужна авторизация. Если тут используется какая-то простая авторизация, то достаточно будет единожды получить кукисы и при каждом запросе указывать на сервер. Также не забывайте про referrer & User-agent.

    Теперь, еще усложним задачу - контент формируется динамически (посредством js-фреймворков или аякс запроса и т.д.). В этом случае jsoup не поможет, так как для загрузки контента вам нужно прокликать на кнопку (Загрузить еще) или проскроллить вниз, чтобы тригернуть загрузку контента и т.д. Т.е. вам нужна некая интерактивность. Для этого стоит посмотреть в сторону Selenium + (любой браузер). В качестве браузера можно использовать - firefox, chromium и др. Для быстродействия желательно использовать headless браузеры.

    Усложняем задачу дальше. Понадобилось авторизоваться и решить некую капчу. В часности рекапчу. Тут скажу заранее, что я сам когда-то давно искал возможные пути обхода и самое простое решение - использовать платный сервис.
    Ссылка на сайт - https://anti-captcha.com/
    После ввода имени пользователя и пароля селениум триггерит клик на капче, а дальше данные пересылаем на сервер и получаем решение капчи.

    Усложним задачу еще больше - различные honeypot. Тут как говорится кто на что горазд. Все зависит от конкретного сайта и конкретной реализации (софта) honeypot. Некоторые могут заблокировать по ip, если запрос был произведен на несуществующий урл. Например, на сайте всего 100 страниц, а вы запросили 101 страницу и попались в ловушку. Или например, вы заполнили невидимое input поле, которое в норме пользователь не видит и соответственно, не заполняет.

    Идем дальше - если вам нужна некая интерактивность (т.е. пользователь сайта должен иметь возможность самостоятельно парсить сайт), то вам нужна клиентская часть написанная на javascript. Подобные онлайн-сервисы имеются. Наберите в гугл web scraping online и увидите различные сервисы. Как правило, они предлагают установить некое расширение, при клике на котором он получает доступ к элементам DOM, а далее уже можно при помощи селекторов (id, xpath, class ) определить что нужно спарсить. Определить тип навигации / пагинации (например, пагинация при помощи нумерации страниц или пагинация при помощи кнопки Далее и др.). Тут могут свои подводные камни. Например, некоторые сайты при достижении максимальной страницы могут выдавать ошибку (404), некоторые не выдают ошибку и лишь показывают контент заново. Иногда нужно проверять страницу на наличие пустоты на странице (на отсутствие элементов по селектору). Иногда нужно проверять страницу на наличие ошибки 404 и т.д. В общем, это уже работа фронтэндера.

    Некоторые динамически формируемые страницы могут подгружать контент при помощи json или xml. Соответственно, для парсинга некоторых сайтов можно обойтись без использования selenium. А лишь запросить материалы по их внутреннему API, а затем при помощи gson или jackson спарсить их.

    Одним из универсальных инструментов парсинга, с которым мне приходилось сталкиваться была программа Visual Web Ripper. Стоит примерно 250-300 долларов. Программа подгружает контент сайта внутри себя через IE (может уже и обновили этот момент). А далее уже можно задавать условия парсинга и экспортировать данные.
    Ответ написан
    Комментировать
  • Что делать: ошибка в компиляции, связанная с Spring Data репозиторием (Не создаётся бин)?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    IllegalArgumentException: Validation failed for query for method findByBody(String body)

    Вот, краткий лог ошибки. Ошибка валидации метода.
    Могу предположить тут 2 проблемы:

    Вот, ваш код:
    public interface ExpressionRepository extends CrudRepository<ExpressionEntity, Long> {
    
        @Query("FROM ExpressionEntity WHERE ExpressionEntity.body = body")
        public Optional<ExpressionEntity> findByBody(String body);
    
    }


    Скорее всего должно быть так:
    SELECT e FROM ExpressionEntity e WHERE e.body = ?1
    Ответ написан
  • Из за чего может не работать плагин для слабовидящих в моей теме wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Что можно проверить/сделать?

    Нужно сделать дебаг. Покопайте в сторону выявления ошибок РНР или JS.
    Помню, когда-то давно этот плагин у меня на ВП не работал и я подключил его js версию. На гитхаб можно найти js версию скрипта
    Ответ написан
    Комментировать
  • В чем особенность верстки под WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Важно различать понятия верстки и создания новой темы.
    Верстка она и в Африке верстка. Состоит из html, css, js.
    Другое дело, что вам нужно создать тему для ВП, т.е. интегрировать готовую верстку с рнр кодом согласно кодексу ВП.
    1-й этап - верстка макета
    2-й этап - создание темы на ВП. И тут вам нужно изучить кодекс ВП для разработчиков и владеть основами рнр
    Ответ написан
    2 комментария
  • Мини-документооборот в wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте.
    я подобное делал на Use your drive (через Google drive) или Use your Box (через Dropbox)
    Ответ написан
    Комментировать
  • Как реализовать роли пользователей для Spring security?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Здравствуйте!
    добавлять роли для пользователей (non-user, user, admin) со своими паролями и логинами.

    У ролей не бывает логинов и паролей. Они есть у пользователей.
    Роль лишь определяет то, кем данный пользователь является. ADMIN, USER, etc.
    Также есть Privilege (привилегия). Т.е. что данному пользователю разрешено согласно выданному ему ролю. Например, право на комментирование, право на публикацию и т.д.
    Вот, тут наглядный туториал по ролям и привилегиям
    https://www.baeldung.com/role-and-privilege-for-sp...
    Вот, неплохой курс с торрента:
    https://rutracker.org/forum/viewtopic.php?t=5864776
    Рекомендую приобрести данный курс на оф. сайте baeldung.com
    Ответ написан
    Комментировать
  • Не реагирует на ссылки. Как исправить?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Отключите плагин кеширования WP Rocket, а затем сделайте дебаг
    Ответ написан
  • Как скопировать страницу с картинками на Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Напишите парсер, который будет собирать информацию.
    Если скопировать нужно разово, то можете собрать все в xlsx || csv и импортировать через WP All Import.
    Другой вариант после парсинга экспортировать статьи через WP REST API на сайт.
    В обеих вариантах можно импортировать картинки в медиабиблиотеку
    Ответ написан
  • Как получить записи с бд вордпрес в другой проект?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Вам не нужно подключаться к БД ВП для получения данных. Это плохая практика!
    Для этого есть WP REST API. Используйте его возможности.
    https://developer.wordpress.org/rest-api/
    Есть готовые библиотеки для работы с WP REST API. Поищите подходящий для вашего ЯП,
    Ответ написан
    2 комментария
  • С чего лучше начать создание приложения для диагностики авто через сканер elm(OBD2)?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    С учетом оставленных выше комментариев предположу, что вам нужен API для работы с каким-то устройством под названием ELM 327, который подключается к авто через разъем obd2
    Наверняка производитель этих устройств предлагает некий API по работе с ним.
    Погуглил за вас и вот, что нашел:
    Результат поиска по гит - https://github.com/topics/elm327
    Например, Android OBD diagnostics with any ELM327 adapter https://github.com/fr3ts0n/AndrOBD
    https://github.com/pires/obd-java-api
    Остается изучить API данного адаптера

    Вот, аналогичный вопрос на SO
    https://stackoverflow.com/questions/35764056/how-t...
    Вот, очередная библиотека https://github.com/pires/android-obd-reader

    Гугл знает все
    Ответ написан
    Комментировать
  • Как выгрузить каталог товаров в woocoomerce по csv ссылке чтобы он обновлялся?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Можно написать простой скрипт. который скачает файл по CRON и положет его в директорию uploads.
    А далее плагин WP All Import по CRON запускается и проверяет наличие новых товаров и если есть, то обновляет.
    Подробности на оф. сайте плагина. Также понадобится дополнение к этому плагину WP All Import Woocommerce Addon.

    Другое решение - написать свой парсер, который скачивает файл, проверяет наличие обновлений и загружает товары через Woocommerce REST API
    Ответ написан
    Комментировать
  • На чем строить GUI?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Я для GUI использую JavaFX.
    Применять Spring в рамках разработки десктопных приложений тоже приходилось.
    Ссылки по теме:
    https://habr.com/ru/post/203960/
    https://better-coding.com/javafx-spring-boot-gradl...
    https://dzone.com/articles/javafx-spring-day-3-%E2...
    Ответ написан
    Комментировать
  • Php что учить после базы?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) укрепите знания - html, css, js. Наберитесь опыта в них.
    2) укрепите знания РНР.
    3) Изучите паттерны проектирования (Singleton, Factory и др.), алгоритмы и парадигмы (ООП, АОП, функциональное программирование)
    4) Изучите основы рефакторинга (Clean Code), работу с git
    5) Изучите SQL, NoSQL (MongoDB), основы работы с ORM
    6) Изучите фреймворки. Например, laravel, Yii2, Symfony
    Ответ написан
    Комментировать
  • Как делается фронтенд для Java-приложений?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Я думаю, что все в первую очередь зависит от бюджета выделенного на проект.
    Конечно же 1-й вариант (jsp, gsp, thymeleaf, mustache, freemarker) обходится дешевле, чем полноценная разработка фронта на javascript фреймворках (Angular, React, VueJS и др).
    В первом случае на Java делается бекенд на обычных контроллерах (если речь идет о Spring). Во втором случае разрабатывается RESTful сервис, который будет взаимодействовать с js-фреймворком..
    Ответ написан
    5 комментариев
  • Как проверить без регулярных выражении что символ находится среди разрешённых?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Без регулярки можно сделать так:
    создайте метод. который будет принимать char в качестве аргумента
    итерируйте по массиву char символов.
    В кажой итерации проверяйте ранвы ли символы или нет.
    Если нет совпадения возвращайте false иначе true
    Ответ написан
    Комментировать
  • Проблема с Вордпресс и сервером?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Приветствую!
    На самом деле в вопросе вы даже не описали с какой именно проблемой столкнулись, не предоставили логов и даже не описали как именно сайты ведут себя на разных серверах, а лишь отметили, что есть проблема, которая не наблюдается на локальном сервере.
    Отсюда последует лишь общий ответ - очевидно, что что-то на сервере и на локалке отличается. Например, конфигурация сервера, операционная система, версия рнр, конфигурации прописанные для lamp / wamp, права владельца apache, chmod и т.д. Для более точного ответа загляните в логи apache, wordpress и т.д. И тогда вам самому станет понятно в чем может заключаться ваша проблема. Скорее всего, проблема на сервере, раз сайт на локалке работает хорошо
    Ответ написан
    1 комментарий