Вывод переменной JSON в макросе PHP_SCRIPT

Тема в разделе "Подгрузка данных, которых нет в коде WEB-документа", создана пользователем Sokol, 7 фев 2021.

  1. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Всем привет, не нашел никакой информации если я делаю GET запрос
    <PHP_SCRIPT=Ссылки недоступны для гостей
    <HEADERS></HEADERS>
    </PHP_SCRIPT>
    ответом приходит
    {
    "data": {
    "translations": [
    {
    "translatedText": "nibble"
    }
    ]
    }
    }
    Как получить значение переменной translatedText ?

    Всем спасибо заранее за ответ.

    Еще вопрос возможно ли как-то результат всех этих строчек записать в переменную чтобы удобно подставить в шаблоне вывода а то там уже такая вермишель))
     
  2. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Еще доп вопрос, вдруг сможете ответить, возможно ли как-то разбить статьи при парсинге допустим по 500 символов и заменить русский текст на англ в файле вывода, ну в конечном итоге просто чтобы текущий текст без html разметки перевести на англ яз. или это сложно через парсер и лучше думать что-то другое ?

    В целом досточно будет псевдокода маркеров и последовательности, чтобы я хоть знал за что цепляться) спасибо) К сожалению полный проект кинуть не могу, так как там платный ключ на гугл транслейт, чтобы другие юзеры в публичном доступе не использовали.
    Еслиб можно было лично админу закинуть, и есть варианты как это сделать, плз сообщите как можно сделать это безопасно
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Постараюсь сделать на днях.
     
    Sokol нравится это.
  4. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Решение моего вопроса было по ссылке Ссылки недоступны для гостей
    Все еще остался вопрос как можно разделить большую статью на несколько частей, а потом собрать заново (естественно для того чтобы прогнать через переводчик) так как гугл транслейт за раз большое количество текста не может скушать =(
     
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Посмотрите на этот вариант: Ссылки недоступны для гостей (там вроде ограничения по длине текста нет).
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    На днях планирую сделать макрос для авторазбивки длинного текста.
     
    Sokol нравится это.
  7. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    ааа я думал в этой программе уже все есть что можно))) хорошо буду ждать, если можно будет делать такой перевод, и сохранять при этом теги, это же будет просто космос! Спасибо большое, это очень полезная фича
     
  8. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    К сожалению есть(
    Сделал запрос на 3269 символов и все, запрос улетел в ошибку
    That’s an error. 413
    Your client issued a request that was too large.
    По моим попыткам обычно более 1000 символов он уже не вывозит в диапазоне 1000-1500 символов. Где-то сработает где-то нет.
    Но больше 1500 символов уже не переваривает никакой запрос

    Буду ждать макроса, без него никак не реализовать задуманное)
     
    Последнее редактирование: 8 фев 2021
    Root нравится это.
  9. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Когдато на форуме писал решение по разбивке текста.

    В дополнительных настройках границы (Ctrl+4), добавить замены которые вставят маркеры через каждые 700-900 символов в статье:
    Предположим что статья не больше 8000 символов.
    Код:
    {get}|<start>{get}<end>
    re:<start>(.{700,900})([\.\?\!]+)|<start>$1$2<end><start2>
    re:<start2>(.{700,900})([\.\?\!]+)|<start2>$1$2<end><start3>
    re:<start3>(.{700,900})([\.\?\!]+)|<start3>$1$2<end><start4>
    re:<start4>(.{700,900})([\.\?\!]+)|<start4>$1$2<end><start5>
    re:<start5>(.{700,900})([\.\?\!]+)|<start5>$1$2<end><start6>
    re:<start6>(.{700,900})([\.\?\!]+)|<start6>$1$2<end><start7>
    re:<start7>(.{700,900})([\.\?\!]+)|<start7>$1$2<end><start8>
    re:<start8>(.{700,900})([\.\?\!]+)|<start8>$1$2<end><start9>
    re:<start9>(.{700,900})([\.\?\!]+)|<start9>$1$2<end><start10>
    re:<start10>(.{700,900})([\.\?\!]+)|<start10>$1$2<end>
    
    Далее настроить надо повторяющиеся границы, для которой указана простая граница как область кода. Каждый цикл начинается <start и оканчивается на <end> в итоге получается что распарсиваете порции, отправляя каждую в переводчик используя макрос PHP_SCRIPT
     
    kadishev1997 и Root нравится это.
  10. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Ухх спаси и сохрани... сложно чет, я сделал чтобы оно разделило на по тегам как вы показали выше, но вот как циклично отправить в PHP_SCRIPT + потом собрать все воедино...мне что-то сложно... могу попросить видео-пример, пожалуйста? Реально очень сложно, у меня настолько много вопросов что реально лучше просто попросить видео-пример =(
    Например:
    1) Как задать повторяющиеся границы парсинга если этот инструмент у нас работает на оригинальном сайте а не на шаблоне вывода, где уже все почищено и уже добавлены <start> <end>
    2) Как потом это прогнать через PHP_SCRIPT по частям, да еще и соединить результаты в единый текст....ааа голова взрывается...

    Прикладываю файл проекта...
     

    Вложения:

    • fihsx_org.cdp
      Размер файла:
      208,4 КБ
      Просмотров:
      1
    Последнее редактирование: 10 фев 2021
  11. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Content Downloader X1 версии 11.1.1711114 (10.02.2021)

    - Добавлен макрос шаблона вывода [SLICE_STRING] (Ссылки недоступны для гостей
    - Несколько других доработок.
     
    Sokol нравится это.
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Тут добавлен пример использования нового макроса для вашей задачи
    Ссылки недоступны для гостей
     
  13. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Большое спасибо за новый макрос, вроде работает, но есть то-ли баги, то-ли мое непонимание, которые не позволяют нормально выпустить текст через макрос, а именно:
    1) Указание переменных типа [VAR:GRAN_2_DESC] в теле [FIRST_REPLACE("|\")] не отрабатывает, также если я перенесу все что я закинул в эту переменную, оно переведет весь тот набор макросов просто и все. Как я понял баг в том что оно просто считывает все как текст, когда я хардкодом ввожу туда текст - все отрабатывает идеально
     
  14. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Вот примерно фото как отрабатывает 1.PNG 2.PNG 3.PNG 4.PNG
     
  15. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Странно как-то выводит ссылки, все экранировано :(
     

    Вложения:

    • 5.PNG
      5.PNG
      Размер файла:
      262,8 КБ
      Просмотров:
      7
  16. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    На всякий случай прикладываю проект + ключ от гугл транслейта чтобы вы могли тестануть
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 13000 постов.**
     

    Вложения:

  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Тут написано, как использовать API переводчика.

    Ссылки недоступны для гостей

    Там не указано, что текст нужно вставлять в URL в параметр q. Там указано, что текст вставляется в POST данные. Там вроде как и нет ограничения на длину переводимого контента. Сделайте, как в мануале.
     
  18. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Из рекомендаций

    1) Если непонятно, как работают функции или макросы всегда смотрите лог в нижней части окна предпросмотра парсинга контента

    2021-02-11_10-33-58.png

    2) Множество макросов шаблона вывода имеют дубликаты (которые отличаются только порядком выполнения) это тоже нужно учитывать.

    Например, вместо [VAR] в вашем случае нужно использовать [VARF].

    2021-02-11_10-36-47.png

    3) Добавил обработчик макроса CLEARTAGSATTRS внутрь VARF (напишите на почту или в ЛС, скину ссылку на доработанный установщик программы).
     
  19. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    Делал как в мануале 1 в 1 , POST запросы не работают с апи ключем, я хз че за проблема у гугла, и почему POST API не работает, а GET работает, я проверял этот функционал через Postman дополнительно, также, само апи не работает. Я хз в чем проблема.

    По поводу рекомендаций, я так и понял что можно смотреть этапы работы на предпросмотре, иногда это бывает полезно, но в конкретном случае к сожалению результата не дало =(
    "Например, вместо [VAR] в вашем случае нужно использовать [VARF]." - а вот это попробую, не знал что эту вещь, буду у компьютера попробую, спасибо
    по 3 пункту сейчас напишу

    Попробую еще раз через ПОСТ глянуть в чем там дело было мб в нете решение найду, по результатам отпишу
     
    Последнее редактирование: 11 фев 2021
  20. Sokol

    Sokol New Member Пользователи

    Регистрация:
    2 фев 2021
    Сообщения:
    23
    Город:
    Киев
    В общем вы были правы пост по идее не имеет ограничений, скормил ему всю статью, выдал без проблем. Видимо я сталкивался с ограничениями поля GET, оказалось что в гугл доке как обычно старье написано, которое никто обновлять и не думает, там написано что ключ надо через
    Authorization: Bearer КЛЮЧ прокидывать а на самом деле нужно в параметрах ?key=КЛЮЧ передать... таким образом оно заработало =)
    Как я вижу в вашей инструкции уже все с параметром key написано, видимо вы нарвались уже на эти грабли.

    В целом по моим тестам,все супер и переводи классно, осталась одна проблема с этими переменными, пытаюсь результат записать в VARF и всеравно оно выводит код а не результат работы, пробовал также вставлять внутрь PHP_SCRIPT_1, PHP_SCRIPT_0 результат примерно один и тот-же, не происходит корректной записи в переменную полученного результата =(
    Надеюсь в фикс версии заработает гуд, так как это последнее по сути препятствие перед тем как я получу необходимый мне результат =))) Естественно с вашей помощью :)
    Код:
    [VARF]
    [SET:GRAN_1_DESC]
    <CD_GRAN_1!>
    [/SET]
    [SET:GRAN_2_DESC]
    [REPLACE(<p>Советую прочитать:{skip}|
    <p><strong>Советую прочитать:{skip}|
    <p><strong>Поделись с друзьями{skip}|
    <p> <strong>Советую прочитать:{skip}|
    <p> <strong>Поделись с друзьями{skip}|)]
    [CLEARTAGSATTRS(img:src)]
    [HTMTOTXT:img,p,h1,h2,h3,strong,br,table,td,tr,caption,th]<CD_GRAN_2!>[/HTMTOTXT]
    [/CLEARTAGSATTRS]
    [/REPLACE]
    [/SET]
    [/VARF]
    Сделал по сути вот так все и ожидаю получить результаты в переменных [VARF:GRAN_1_DESC] и [VARF:GRAN_2_DESC], я же все правильно понимаю ?
     

Поделиться этой страницей