This commit is contained in:
31
CHANGELOG.md
31
CHANGELOG.md
@@ -1,32 +1,33 @@
|
||||
# Changelog
|
||||
|
||||
## [0.9.18] - 2025-01-09
|
||||
## [0.9.19] - 2025-09-01
|
||||
|
||||
### 🔍 Search System Redis Storage
|
||||
- **💾 Redis-based vector index storage**: Переключились обратно на Redis для хранения векторного индекса
|
||||
- Заменили файловое хранение в `/dump` на Redis ключи для надежности
|
||||
### 🔧 Reactions Type Compatibility Fix
|
||||
- **🐛 rating functions**: Исправлена ошибка `AttributeError: 'str' object has no attribute 'value'` в создании реакций
|
||||
- Функции `is_positive()` и `is_negative()` в `orm/rating.py` теперь поддерживают как `ReactionKind` enum, так и строки
|
||||
- Добавлена проверка типа аргумента с автоматическим извлечением `.value` для enum объектов
|
||||
- Исправлена ошибка в `resolvers/reaction.py` при создании рейтинговых реакций
|
||||
|
||||
## [0.9.18] - 2025-09-01
|
||||
|
||||
### 🔍 Search Index Persistent Storage
|
||||
- **💾 vector index storage**: Переключились обратно на Redis для хранения векторного индекса
|
||||
- файловое хранение в `/dump` на Redis ключи для надежности
|
||||
- Исправлена проблема с правами доступа на `/dump` папку на сервере
|
||||
- Векторный индекс теперь сохраняется по ключам `search_index:{name}:data` и `search_index:{name}:metadata`
|
||||
- **🛠️ Improved reliability**: Убрали зависимость от файловой системы для критичных данных
|
||||
- **⚡ Better performance**: Redis обеспечивает более быстрый доступ к индексу
|
||||
- **🔧 Technical changes**:
|
||||
- Заменили `save_index_to_file()` на `save_index_to_redis()`
|
||||
- Заменили `load_index_from_file()` на `load_index_from_redis()`
|
||||
- Обновили автосохранение для использования Redis вместо файлов
|
||||
- Удалили неиспользуемые импорты (`gzip`, `pathlib`, `cast`)
|
||||
- Векторный индекс теперь сохраняется
|
||||
|
||||
## [0.9.17] - 2025-08-31
|
||||
|
||||
### 👥 Author Statistics Enhancement
|
||||
- **📊 Полная статистика авторов**: Добавлены все недостающие счётчики в AuthorStat
|
||||
- `topics`: Количество уникальных тем, в которых участвовал автор
|
||||
- `viewed_shouts`: Общее количество просмотров всех публикаций автора
|
||||
- `coauthors`: Количество соавторов
|
||||
- `replies_count`: Количество вызванных комментариев
|
||||
- `rating_shouts`: Рейтинг публикаций автора (сумма реакций LIKE/AGREE/ACCEPT/PROOF/CREDIT минус DISLIKE/DISAGREE/REJECT/DISPROOF)
|
||||
- `topics`: Темы, в которых у автора есть публикации
|
||||
- `rating_shouts`: Рейтинг публикаций автора
|
||||
- `rating_comments`: Рейтинг комментариев автора (реакции на его комментарии)
|
||||
- `replies_count`: Количество вызванных комментариев
|
||||
- `comments`: Количество созданных комментариев и цитат
|
||||
- `viewed_shouts`: Общее количество просмотров всех публикаций автора
|
||||
- **🔄 Улучшенная сортировка**: Поддержка сортировки по всем новым полям статистики
|
||||
- **⚡ Оптимизированные запросы**: Batch-запросы для получения всей статистики одним вызовом
|
||||
- **🧪 Подробное логирование**: Эмодзи-маркеры для каждого типа статистики
|
||||
|
||||
@@ -15,9 +15,21 @@ POSITIVE_REACTIONS = [ReactionKind.ACCEPT.value, ReactionKind.LIKE.value, Reacti
|
||||
NEGATIVE_REACTIONS = [ReactionKind.REJECT.value, ReactionKind.DISLIKE.value, ReactionKind.DISPROOF.value]
|
||||
|
||||
|
||||
def is_negative(x: ReactionKind) -> bool:
|
||||
return x.value in NEGATIVE_REACTIONS
|
||||
def is_negative(x: ReactionKind | str) -> bool:
|
||||
"""Проверяет, является ли реакция негативной.
|
||||
|
||||
Args:
|
||||
x: ReactionKind enum или строка с названием реакции
|
||||
"""
|
||||
value = x.value if isinstance(x, ReactionKind) else x
|
||||
return value in NEGATIVE_REACTIONS
|
||||
|
||||
|
||||
def is_positive(x: ReactionKind) -> bool:
|
||||
return x.value in POSITIVE_REACTIONS
|
||||
def is_positive(x: ReactionKind | str) -> bool:
|
||||
"""Проверяет, является ли реакция позитивной.
|
||||
|
||||
Args:
|
||||
x: ReactionKind enum или строка с названием реакции
|
||||
"""
|
||||
value = x.value if isinstance(x, ReactionKind) else x
|
||||
return value in POSITIVE_REACTIONS
|
||||
|
||||
Reference in New Issue
Block a user