Jansson

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #1
nullent? добавил(а) новый ресурс:

Jansson - Предоставляет возможность плагинам работать с JSON

Расширение позволяет плагинам работать с JSON объектами. За основу был взят: ErikMinekus/sm-ripext

Расширение не включает в себя лишние зависимости.

Краткий курс по работе с JSON: REST in Pawn

Узнать больше об этом ресурсе...
 
Последнее редактирование:

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #3

kylc

Не мир плох, плохи люди, обвиняющие во всем мир
Сообщения
924
Реакции
294
@val-e из-за этого расширение у меня лег плагин AC Board. Вот такая вот ошибочка появлялась.
Screenshot_126.png
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #7

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #9
Ну это нормальная реакция, если стоит ripext, то и смысла в jansson нет.
Всё бы ничего, но некоторые плагины целиком используют функционал RiP (т.е. и HTTP-клиент), и из-за них сам рип перестаёт нормально функционировать.

Дело, как я подозреваю, в том, что несколько расширений "могут" зарегистрировать Handle Type с одним и тем же названием. Может переименовать в данном ответвлении? Добавить какой-то префикс. Хрень получается. Нативы-то точно так же называются.
А если проверять наличие рипа, и просто не вставать в таком случае?..

В общем, ко мне обратился один человек с форума (ника его тут не знаю, его подослал ко мне @GARAYEV), у которого стояло аж три расширения для работы с JSON: оригинальный smjansson (который без методмапов) и RiP + это расширение. Человек видимо по неопытности поставил его как зависимость одного из плагинов, и словил конфликт из-за того, что RiP грузился аккурат после этого расширения.
 
Последнее редактирование:

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #10
Всё бы ничего, но некоторые плагины целиком используют функционал RiP (т.е. и HTTP-клиент), и из-за них сам рип перестаёт нормально функционировать.

Дело, как я подозреваю, в том, что несколько расширений "могут" зарегистрировать Handle Type с одним и тем же названием. Может переименовать в данном ответвлении? Добавить какой-то префикс. Хрень получается. Нативы-то точно так же называются.
А если проверять наличие рипа, и просто не вставать в таком случае?..

В общем, ко мне обратился один человек с форума (ника его тут не знаю, его подослал ко мне @GARAYEV), у которого стояло аж три расширения для работы с JSON: оригинальный smjansson (который без методмапов) и RiP + это расширение. Человек видимо по неопытности поставил его как зависимость одного из плагинов, и словил конфликт из-за того, что RiP грузился аккурат после этого расширения.
Ну, это вполне ожидаемо. RIP и это расширение - конфликтуют, если они стоят вместе. Однако ставить их вместе нет никакого смысла.
Суть этого расширения в том, что нативная база полностью повторяет нативную базу RIP и делает возможным замену json.inc на jansson.inc, который включается в ripext.inc.
Компиляция плагина с подобным костылем позволяет ему работать в независимости от того, что находится на сервере в данный момент(RIP или это расширение), без каких либо проблем. Как пример: ccprocessor/ripext_m.inc at a1bb533aa848059a499be1f5188022b418814e00 · nyood/ccprocessor

Да, это костыль. У меня валяются некоторые наработки по исключению нативного json из RIP и замена его интерфейсом, но до отладки дело так и не дошло.
Сообщения автоматически склеены:

В описании, кстати, висит предупреждение, но до него никому походу дела нет
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #11
В описании, кстати, висит предупреждение, но до него никому походу дела нет
Да, я видел, но там немного другого рода нотайс. Говорится про 2х жор, а на деле - RiP просто умирает.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #13
Умирает с запиской? Или без
Ну, он типа работает, но на деле попытки получить тот же ответ от сервера заканчиваются ошибкой:
C-подобный:
L 01/06/2022 - 08:42:33: Info (map "de_mirage") (file "/home/container/csgo/addons/sourcemod/logs/errors_20220106.log")
L 01/06/2022 - 08:42:33: [SM] Exception reported: Could not create data handle.
L 01/06/2022 - 08:42:33: [SM] Blaming: LCRS_Core.smx
L 01/06/2022 - 08:42:33: [SM] Call stack trace:
L 01/06/2022 - 08:42:33: [SM]   [0] HTTPResponse.Data.get
L 01/06/2022 - 08:42:33: [SM]   [1] Line 264, c:\Users\rafka\Desktop\yedek\scripting\LCRS_Core.sp::OnIPReceived

Попросил его скинуть плагинэкстлист, а там три расширения (по сути) для работы с JSON: smjansson оригинальный без методмапов, RiP и это. Причём это расширение взлетело аккурат перед рипом, потому, видимо, заглушило работоспособность JSON-функционала в рипе, т.к. SM при попытке зарегать уже существующий хэндл тайп возвращает ошибку, которую рип никак не обрабатывает.
 
Последнее редактирование:

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #14
Ну, он типа работает, но на деле попытки получить тот же ответ от сервера заканчиваются ошибкой:
C-подобный:
L 01/06/2022 - 08:42:33: Info (map "de_mirage") (file "/home/container/csgo/addons/sourcemod/logs/errors_20220106.log")
L 01/06/2022 - 08:42:33: [SM] Exception reported: Could not create data handle.
L 01/06/2022 - 08:42:33: [SM] Blaming: LCRS_Core.smx
L 01/06/2022 - 08:42:33: [SM] Call stack trace:
L 01/06/2022 - 08:42:33: [SM]   [0] HTTPResponse.Data.get
L 01/06/2022 - 08:42:33: [SM]   [1] Line 264, c:\Users\rafka\Desktop\yedek\scripting\LCRS_Core.sp::OnIPReceived

Попросил его скинуть плагинэкстлист, а там три расширения (по сути) для работы с JSON: smjansson оригинальный без методмапов, RiP и это. Причём это расширение взлетело аккурат перед рипом, потому, видимо, заглушило работоспособность JSON-функционала в рипе, т.к. SM при попытке зарегать уже существующий хэндл тайп возвращает ошибку, которую рип никак не обрабатывает.
У меня впринципе есть идея, как разрешить эту канифоль, но только после сессии.
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #15
nyood обновил(а) ресурс sm-jansson новой записью:

Update v.1.2.0

## What's Changed

- Added JsonType - json object types enumeration
- Added Json.Json() - constructor
- Added Json.JsonF() - static constructor (from file)
- Added Json.Type.get() - property
- Added JsonObject.GetType()
- Added JsonArray.GetType()
---
- Deprecated JsonObject.IsNull()
- Deprecated JsonObject.SetNull()
- Deprecated JsonArray.SetNull()
-...

Узнать больше об этом обновлении...
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #16

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #17
nyood обновил(а) ресурс sm-jansson новой записью:

Update v. 1.3.0

- Добавлен метод Json.Equals - для сравнения двух Json объектов
- Добавлен метод JsonObject.Update - для обновления набора ключей текущего объекта
- Добавлено перечисление JsonUpdateType - набор типов

Узнать больше об этом обновлении...
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #19

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
  • Автор ресурса
  • #20
rejchev обновил(а) ресурс sm-jansson новой записью:

pre-Update v1.4.1.0

Что изменилось?
- добавлен сток asJSONB() - представление JsonBuilder
- добавлен метод Json.Size(int flags) - получение размера json структуры в байтах (полезно, если необходимо дампить в строку)
- добавлен метод JsonArray.Extend(JsonArray another) - дополняет текущий массив элементами другого массива (добавление происходит в конец);
- свойство JsonObject.Size.get заменен на JsonObject.Elements.get...

Узнать больше об этом обновлении...
 
Сверху Снизу