diff --git a/DOC/TODO то что пока отложенно на будущее.md b/DOC/TODO то что пока отложенно на будущее.md index 184a98e..3d8aba7 100644 --- a/DOC/TODO то что пока отложенно на будущее.md +++ b/DOC/TODO то что пока отложенно на будущее.md @@ -1,2 +1,6 @@ Сделать возможность убрать свой лайк. (пока не надо а сложность что надо больше проверок) - хотя можно и без проверки, просто за двойной лайк или за снятие двойное лайка. Будет двойное проникновение :)) тому кто изменил код клиента и убрал проверку на клиенте - и блокчейн заблокируется и всё. поэтому просто на каждую реакцию добавиться убрать эту ракцию . + + + +сделать сессион пасворд тоже ключём подписи устройства!! \ No newline at end of file diff --git a/shine-server-blockchain/src/main/java/blockchain/LineIndex.java b/shine-server-blockchain/src/main/java/blockchain/LineIndex.java index 2211d4d..f2f5cfb 100644 --- a/shine-server-blockchain/src/main/java/blockchain/LineIndex.java +++ b/shine-server-blockchain/src/main/java/blockchain/LineIndex.java @@ -10,8 +10,8 @@ public final class LineIndex { private LineIndex() {} public static final short HEADER = 0; // genesis / идентификация - public static final short TEXT = 1; // сообщения - public static final short REACTION = 2; // реакции - public static final short CONNECTION = 3; // связи (friend/contact/follow) - public static final short USER_PARAM = 4; // параметры профиля + public static final short TEXT = 1; // сообщения да надо + public static final short REACTION = 2; // реакции не надо + public static final short CONNECTION = 3; // связи (friend/contact/follow) да надо + public static final short USER_PARAM = 4; // параметры профиля да надо } \ No newline at end of file diff --git a/shine-server-blockchain/src/main/java/blockchain/MsgSubType.java b/shine-server-blockchain/src/main/java/blockchain/MsgSubType.java new file mode 100644 index 0000000..0b3cbc4 --- /dev/null +++ b/shine-server-blockchain/src/main/java/blockchain/MsgSubType.java @@ -0,0 +1,55 @@ +package blockchain; + +/** + * shine.db.MsgSubType — единое место для ВСЕХ subType сообщений (msg_sub_type). + * + * Правило: + * - НИКАКИХ "магических чисел" subType по проекту. + * - В тестах, в body-классах и в SQL-триггерах используем только эти константы. + * + * Важно: + * - Значения менять после релиза нельзя (иначе сломается совместимость). + */ +public final class MsgSubType { + + private MsgSubType() {} + + /* ===================== TEXT (msg_type=1) ===================== */ + + /** Новое сообщение (начало ветки). */ + public static final short TEXT_NEW = 1; + + /** Ответ на сообщение (reply). */ + public static final short TEXT_REPLY = 2; + + /** Репост (repost). */ + public static final short TEXT_REPOST = 3; + + /** Редактирование (edit). ВАЖНО: серверное значение = 10. */ + public static final short TEXT_EDIT = 10; + + /* ===================== REACTION (msg_type=2) ===================== */ + + /** Лайк (LIKE). */ + public static final short REACTION_LIKE = 1; + + /* ===================== CONNECTION (msg_type=3) ===================== */ + + /** Добавить в друзья. */ + public static final short CONNECTION_FRIEND = 10; + + /** Удалить из друзей. */ + public static final short CONNECTION_UNFRIEND = 11; + + /** Подписаться (follow). */ + public static final short CONNECTION_FOLLOW = 20; + + /** Отписаться (unfollow). */ + public static final short CONNECTION_UNFOLLOW = 21; + + /** Заблокировать. */ + public static final short CONNECTION_BLOCK = 30; + + /** Разблокировать. */ + public static final short CONNECTION_UNBLOCK = 31; +} \ No newline at end of file diff --git a/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java b/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java index 5ce7672..0777bf6 100644 --- a/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java +++ b/shine-server-db/src/main/java/shine/db/DatabaseInitializer.java @@ -1,7 +1,6 @@ package shine.db; import utils.config.AppConfig; -import utils.config.MsgSubType; import java.io.BufferedReader; import java.io.IOException; @@ -371,14 +370,14 @@ public class DatabaseInitializer { replies_count ) SELECT - substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 3), + substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 4), NEW.to_bch_name, NEW.to_block_global_number, NEW.to_block_hashe, 1, 0 WHERE NEW.to_bch_name IS NOT NULL - AND length(NEW.to_bch_name) > 3 + AND length(NEW.to_bch_name) > 4 AND NEW.to_block_global_number IS NOT NULL AND NEW.to_block_hashe IS NOT NULL ON CONFLICT(to_login, to_bch_name, to_block_global_number, to_block_hash) @@ -402,14 +401,14 @@ public class DatabaseInitializer { replies_count ) SELECT - substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 3), + substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 4), NEW.to_bch_name, NEW.to_block_global_number, NEW.to_block_hashe, 0, 1 WHERE NEW.to_bch_name IS NOT NULL - AND length(NEW.to_bch_name) > 3 + AND length(NEW.to_bch_name) > 4 AND NEW.to_block_global_number IS NOT NULL AND NEW.to_block_hashe IS NOT NULL ON CONFLICT(to_login, to_bch_name, to_block_global_number, to_block_hash) @@ -442,7 +441,7 @@ public class DatabaseInitializer { edits_count ) SELECT - substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 3), + substr(NEW.to_bch_name, 1, length(NEW.to_bch_name) - 4), NEW.to_bch_name, NEW.to_block_global_number, NEW.to_block_hashe, @@ -450,7 +449,7 @@ public class DatabaseInitializer { 0, 1 WHERE NEW.to_bch_name IS NOT NULL - AND length(NEW.to_bch_name) > 3 + AND length(NEW.to_bch_name) > 4 AND NEW.to_block_global_number IS NOT NULL AND NEW.to_block_hashe IS NOT NULL ON CONFLICT(to_login, to_bch_name, to_block_global_number, to_block_hash) diff --git a/shine-server-config/src/main/java/utils/config/MsgSubType.java b/shine-server-db/src/main/java/shine/db/MsgSubType.java similarity index 93% rename from shine-server-config/src/main/java/utils/config/MsgSubType.java rename to shine-server-db/src/main/java/shine/db/MsgSubType.java index 0bacd9b..92d121b 100644 --- a/shine-server-config/src/main/java/utils/config/MsgSubType.java +++ b/shine-server-db/src/main/java/shine/db/MsgSubType.java @@ -1,7 +1,7 @@ -package utils.config; +package shine.db; /** - * MsgSubType — единое место для ВСЕХ subType сообщений (msg_sub_type). + * shine.db.MsgSubType — единое место для ВСЕХ subType сообщений (msg_sub_type). * * Правило: * - НИКАКИХ "магических чисел" subType по проекту. diff --git a/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/tempToTest/entyties/Net_AddUser_Request.java b/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/tempToTest/entyties/Net_AddUser_Request.java index acae651..0a7ea45 100644 --- a/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/tempToTest/entyties/Net_AddUser_Request.java +++ b/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/tempToTest/entyties/Net_AddUser_Request.java @@ -12,7 +12,7 @@ import server.logic.ws_protocol.JSON.entyties.Net_Request; * "requestId": "test-add-1", * "payload": { * "login": "anya", - * "blockchainName": "anya0001", + * "blockchainName": "anya-001", * "solanaKey": "base64-ed25519-public-key-login", * "blockchainKey": "base64-ed25519-public-key-blockchain", * "deviceKey": "base64-ed25519-public-key-device", diff --git a/src/main/запросы.sh b/src/main/запросы.sh new file mode 100644 index 0000000..02c8a81 --- /dev/null +++ b/src/main/запросы.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +set -euo pipefail + +# OUTFILE: +# - если пустая строка ("") -> в файл НЕ пишем, только в буфер +# - если не пустая -> пишем в файл + (если есть wl-copy) копируем в буфер +OUTFILE="all_files.txt" +# OUTFILE="" + +# === НАСТРОЙКА: перечисляй тут пути (каталоги и/или конкретные файлы) === +# - Если путь указывает на ФАЙЛ: берём его ВСЕГДА, даже если это не .java +# - Если путь указывает на КАТАЛОГ: рекурсивно берём только *.java внутри +# - Пустые строки игнорируются +TARGETS=( + #"./src/main/java" +# "./server" +# /home/ai/work/SHiNE/SHiNE-server/shine-server-blockchain + "/home/ai/work/SHiNE/SHiNE-server/shine-server-blockchain" + "/home/ai/work/SHiNE/SHiNE-server/shine-server-db" +) + +RED=$'\033[0;31m' +RESET=$'\033[0m' + +warn_red() { + echo "${RED}WARN:${RESET} $*" >&2 +} + +# временные файлы +TMP_LIST="$(mktemp)" +TMP_OUT="$(mktemp)" +trap 'rm -f "$TMP_LIST" "$TMP_OUT"' EXIT + +# собрать пути +for path in "${TARGETS[@]}"; do + path="$(printf '%s' "$path" | sed -e 's/^[[:space:]]\+//' -e 's/[[:space:]]\+$//')" + [[ -z "$path" ]] && continue + + if [[ -f "$path" ]]; then + printf '%s\n' "$path" >> "$TMP_LIST" + elif [[ -d "$path" ]]; then + find "$path" -type f -name "*.java" >> "$TMP_LIST" + else + warn_red "Не найдено (пропускаю): $path" + fi +done + +# склеиваем в TMP_OUT +sort -u "$TMP_LIST" | while IFS= read -r f; do + if [[ ! -f "$f" ]]; then + warn_red "Файл исчез (пропускаю): $f" + continue + fi + cat "$f" >> "$TMP_OUT" + echo >> "$TMP_OUT" +done + +# если OUTFILE не пуст — пишем файл +if [[ -n "${OUTFILE:-}" ]]; then + : > "$OUTFILE" + cat "$TMP_OUT" > "$OUTFILE" +fi + +# копирование в буфер (Wayland), если доступно +if command -v wl-copy >/dev/null 2>&1; then + wl-copy < "$TMP_OUT" +else + warn_red "wl-copy не найден — в буфер не скопировано." +fi + +echo "Готово!" +if [[ -n "${OUTFILE:-}" ]]; then + echo "Все файлы собраны в $OUTFILE" +else + echo "OUTFILE пуст — в файл не писали, только буфер (если wl-copy доступен)" +fi