1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ForteScarlet-CatCode

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Перевод текста на русский язык:

Центр

- 😺 CatCode 😺 -

github    |    gitee
> Спасибо команде разработчиков Simple Robot за создание логотипа кошки <
> Если вы нажмёте на ⭐, кошка будет очень рада! <

CatCode — это милый универсальный специальный код, который продолжает дух CQ-кодов.

CatCode представляет собой строку специального формата с определёнными правилами: [CAT:xxx,param=value,param=value,], где:

  • начинается с [ и заканчивается ];
  • после большого типа (цифры или символы подчёркивания) идёт малый тип (цифры или символ подчёркивания), большой и малый типы разделены двоеточием :;
  • параметры представляют собой пары ключ-значение, которые соединяются знаком равенства =;
  • может не быть параметров;
  • различает регистр.

🎉 CatCode2!

CatCode2 уже доступен! Скорее переходите на 👉CatCode2, чтобы ознакомиться, попробовать, поставить лайк и внести свой вклад!

Применение

CatCode будет использоваться в качестве специального кода для отправки сообщений в рамках фреймворка simpler-robot (версия 2.x simple-robot-core). Он заменит ранее использовавшиеся CQ-коды.

Конечно, CatCode также является форматом сообщения, и в некоторой степени его можно рассматривать как JSON или другой формат сообщения, но я не думаю, что он будет более полезным.

Однако если вам нравится CatCode, вы можете использовать его!

Кошка строгая.

Чтобы избежать путаницы, в тексте CatCode не должно быть следующих символов: [, ], &, табуляции и перевода строки. Кроме того, в CatCode нельзя использовать запятую , и знак равенства =. Поэтому правила экранирования CatCode следующие:

  • & -> &amp;
  • [ -> &#91;
  • ] -> &#93;
  • , -> &#44;
  • = -> &#61;
  • \n -> &#13;
  • \r -> &#10;
  • \t -> &#09;

Кошка ленивая.

В этой библиотеке есть множество инструментов для анализа и упаковки CatCode.

Все инструменты начинаются с Cat (или содержат его), например, CatDecoder, CatCodeUtil и т. д., а все классы, связанные с упаковкой CatCode, начинаются с Neko (или содержат это слово). Например, Neko, Nyanko (FastNeko), MapNeko.

Кошка разнообразная.

Существует несколько типов классов для упаковки CatCode: Neko (консервативная кошка, параметры которой нельзя изменить), MutableNeko (изменчивая кошка, которая может динамически изменять параметры, но не основана на строковых операциях), EmptyNeko (буддийская кошка, статический экземпляр с пустыми параметрами), а также соответствующие NoraNeko (дикая кошка, CatCode с большим типом, отличным от CAT, но соответствующий правилам дикой кошки).

Кошка бдительная.

Инструменты CatCode в основном основаны на строковых операциях, что снижает использование ресурсов и потери при анализе и упаковке, а также повышает эффективность (особенно при использовании неизменяемой кошки).

Кошка гостеприимная.

Любой код, соответствующий правилу [TYPE:type,param=value,param=value,], можно считать CatCode, даже если TYPE не CAT.

Этот тип «дикой кошки» называется WildcatCode (WildcatCode), и его можно анализировать с помощью инструмента WildcatCodeUtil. В качестве упаковки используется класс NoraNeko.

Использование

JVM

Maven

※ Версия доступна по значку версии выше.

<dependency>
    <groupId>love.forte</groupId>
    <artifactId>catcode</artifactId>
    <version>${version}</version>
</dependency>

JS

Будет реализована через Kotlin Multiplatform и предоставлена в виде библиотеки JavaScript, а затем выпущена в виде релиза на GitHub, Maven и npm (ожидается).

Предварительный просмотр: CatCode-multiplatform

Native

Будет реализован через Kotlin Multiplatform, предоставит файлы заголовков .h и соответствующие файлы .dll (Windows), .so (Linux).

Предварительный просмотр: CatCode-multiplatform



Вы можете реализовать стандарт CatCode самостоятельно.

Документация

Адрес документации: https://www.yuque.com/simpler-robot/catcode

Документация находится в разработке.

Часто используемые CatCode

Есть несколько часто используемых типов CatCode, у которых есть стандартные параметры.

text Текст

Тип text является базовым и представляет собой текст без CatCode. У него только один параметр text, представляющий текстовое содержимое.

Причина существования text заключается в том, что иногда требуется представить текстовый контент как экземпляр Neko.

at Автор

at — очень распространённый тип, представляющий @ определённого человека. У него есть два общих параметра: code и all.

code представляет идентификатор пользователя, которому адресован at, это строка или число.

Например: [CAT:at,code=1149159218].

all указывает, является ли этот CAT @ всем, имеет логический тип.

Например: [CAT:at,all=true].

Обычно существует только один из параметров code и all.

image Изображение

image представляет изображение. У этого типа есть несколько общих параметров: id, file, url и flash.

id обычно представляет идентификатор изображения на сервере.

file обычно представляет путь к файлу изображения или может использоваться вместо id.

url представляет сетевой путь изображения.

flash имеет логический тип и указывает, является ли изображение снимком экрана или временным изображением.

Например: [CAT:image,id=1,file=1.jpg,flash=true]

Как правило, существуют file и url, или хотя бы один из них, а id определяется наличием значения id.

voice Речь

voice представляет речь. Его параметры аналогичны параметрам image.

face Эмоджи

face — ещё один распространённый тип, но он может поддерживаться не всеми платформами. Тем не менее он широко используется. Он имеет один параметр id, представляющий эмоджи.

Например: [CAT:face,id=1] Контент представляет собой краткое описание ссылки для обмена.

URL представляет ссылку для обмена.

Image представляет обложку ссылки для обмена.

При этом параметр URL является обязательным.

Например: [CAT:share,url=www.baidu.com,title=«Байду» вам в помощь,content=«Байду» вам в помощь]

Создание Cat-кода

Java

1. Создание CatCode с помощью Builder

        // Получаем экземпляр утилиты.
        final CatCodeUtil catUtil = CatCodeUtil.INSTANCE;

        // Создаём код Cat — строку
        // Например, создаём строку типа: [CAT:at,code=123456,name=forte,age=12]
        // 1. StringCodeBuilder
        final CodeBuilder<String> stringBuilder = catUtil.getStringCodeBuilder("at");
        String catCode1 = stringBuilder
                .key("code").value(123456)
                .key("name").value("forte")
                .key("age").value(12)
                .build();

        System.out.println(catCode1);

        // Создаем код Cat — Neko
        // Например, создаем код типа Neko: [CAT:image,file=1.jpg,dis=true]
        // 2. NekoBuilder
        final CodeBuilder<Neko> nekoBuilder = catUtil.getNekoBuilder("image");
        Neko catCode2 = nekoBuilder
                .key("file").value("1.jpg")
                .key("dis").value(true)
                .build();

        System.out.println(catCode2);

2. Непосредственное получение частичного шаблона без параметров

// NekoObjects содержит доступные значения, которые являются постоянными без параметров, например, at целиком.
final Neko alAll = NekoObjects.getNekoAtAll();

3. Получение через класс инструмента

final String at = CatCodeUtil.toCat("at", "qq=123");

Neko : ねこ (нэко), что означает «кот».

NoraNeko : のらねこ (нора нэко), что означает «дикий кот».

В будущем планируется выпустить универсальную библиотеку, совместимую со всеми платформами, которая будет работать с кодами Cat на JVM/JS/Native. С переносом кода на разные платформы проблем нет, выполнение тестов на native также не вызывает особых трудностей, но я не знаю, как опубликовать его, поэтому... поговорим об этом позже.

LICENSE

см. LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ForteScarlet-CatCode.git
git@api.gitlife.ru:oschina-mirror/ForteScarlet-CatCode.git
oschina-mirror
ForteScarlet-CatCode
ForteScarlet-CatCode
master