Repository navigation
Releases: theDesConnet/AnixartJS
Release list
v1.1.0 - New endpoints
Changelog
Добавлено
-
Поддержка новых методов API Anixart 10.5.
-
Новые методы управления значками профиля:
profileBadge.list()— получение категорий, последних и закреплённых значков профиля.profileBadge.section()— получение значков определённой категории с пагинацией.profileBadge.pinToShowcase()— закрепление значка в витрине профиля.profileBadge.unpinFromShowcase()— удаление значка из витрины.profileBadge.reorderShowcase()— изменение порядка значков в витрине.
-
Новая группа эндпоинтов
achievement:achievement.preview()— предварительная информация о достижении по коду.achievement.get()— получение достижения по коду.
-
Новые методы существующих эндпоинтов:
release.badges()— получение значков, связанных с релизом.channel.delete()— удаление собственного канала.notification.delete(DeleteNotificationType.Article)— удаление уведомления о публикации статьи.profilePreference.deleteLoginHistory()— очистка истории изменения логина.
-
Новые модели для системы значков и достижений:
IBadgeCategoryIBadgeAwardIBadgeSectionIProfileBadgeSectionsResponseIProfileBadgePageableResponseIProfileBadgeResponseIProfileBadgeShowcaseResponseIReorderBadgeShowcaseRequestIAchievementPreviewIAchievementPreviewResponseIAchievementResponse
-
Новые enum'ы результатов API:
AchievementResultProfileBadgeShowcaseResultChannelDeleteResult
-
Добавлены дополнительные поля значков в моделях профилей и релизов:
badge_countbadges_preview
Изменено
-
Обновлена модель
IBadgeв соответствии с новой системой значков Anixart 10.5:- Добавлены категории, описания и редкость значков.
- Добавлена информация об условиях получения достижений.
- Добавлен процент пользователей, владеющих значком.
- Добавлены признаки владения, выбора, закрепления и доступности значков.
- Добавлены дополнительные URL изображений значков.
-
Изменён тип ответа
profileBadge.edit():- Вместо общего
IResponseиспользуетсяIProfileBadgeResponse. - Ответ теперь типизирован с учётом объекта
badge.
- Вместо общего
-
Расширена модель
IChannel:badge_idbadge_namebadge_typebadge_urllast_article_date
-
Исправлена типизация
IProfileArticleNotification:- Поле
articleтеперь используетIArticleCompactвместо числового идентификатора. - Убраны поля, не соответствующие модели ответа API.
- Поле
-
Обновлены типы результатов и коды ошибок для новых методов управления значками, достижениями и каналами.
-
Новая группа
achievementзарегистрирована вclient.endpoints.
Устаревшие методы
profileBadge.all()помечен как@deprecated.- Вместо него рекомендуется использовать
profileBadge.list()иprofileBadge.section(). - Старый метод сохранён для обратной совместимости.
- Вместо него рекомендуется использовать
Полный список изменений: v1.0.0...v1.1.0
v1.0.0 - Major changes
Changelog
Important
AnixartJS v1.0.0 содержит значительные несовместимые изменения и не полностью совместима с версиями v0.x.
Структура проекта и публичный API были существенно переработаны. Если ваш проект использует AnixartJS v0.x, перед обновлением рекомендуется изучить изменения ниже и заранее заложить дополнительное время на миграцию и тестирование.
Добавлено
- Новая структура проекта:
api— реализация эндпоинтовcore— клиент, HTTP-транспорт и ошибкиmodels— типы и enum'ы APIutils— билдеры, парсеры и вспомогательные утилиты
- Новый endpoint-based API через
client.endpoints.*. - Новые группы эндпоинтов для:
- комментариев к статьям и предложений статей
- комментариев к коллекциям, избранных коллекций и пользовательских коллекций
- настроек уведомлений
- бейджей профиля, блокировок, удаления аккаунта, друзей, health-состояния, списков, настроек, голосов за релизы и ролей
- эпизодов релизов, избранного, фильтров, истории, связанных релизов, комментариев, стриминговых платформ, видео, жалоб на видео и избранных видео
- жалоб, импорта, экспорта и других разделов API
- Новый HTTP-клиент с поддержкой:
GET,POST,PUT,DELETE,PATCH,HEADиOPTIONS- JSON, URL-encoded и multipart-запросов
- авторизации через токен Anixart и Bearer-токен
- пользовательских заголовков и собственного base URL
- Новые параметры запросов:
timeoutMssignalapiVersionthrowOnAnixartError
- Новые классы ошибок:
AnixartErrorHttpError
- Новые параметры конфигурации клиента:
userAgentthrowOnAnixartError
- Добавлены
setToken(),getBaseUrl()иsetBaseUrl(). - Добавлена полноценная документация на базе VitePress и TypeDoc.
- Добавлены руководства по авторизации, параметрам запросов, обработке ошибок и пагинации.
- Добавлены готовые примеры для авторизации, поиска, профилей, закладок, создания статей и парсинга ссылок.
- Добавлен парсер HLS master playlist.
Изменено
- Полностью переработана внутренняя архитектура AnixartJS.
- Публичный API теперь строится вокруг
client.endpoints.*вместо high-level методов классаAnixart. - Реализация эндпоинтов разделена на отдельные классы по функциональным областям.
- Изменён процесс авторизации:
- для входа используется
client.endpoints.auth.signIn(...) - полученный токен устанавливается через
client.setToken(...)
- для входа используется
- Полностью переработаны модели данных.
- Модели теперь ближе соответствуют оригинальным ответам API Anixart.
- Имена полей могут отличаться от
v0.xи использовать API-style формат, напримерtitle_ru. - Выполнение запросов перенесено со старого
client.call()на новыйHttpClient. - Ошибки API теперь могут выбрасываться как типизированные исключения
AnixartError. - Стандартный API endpoint изменён с
https://api-s.anixsekai.comнаhttps://api.anixsekai.com. - Обновлён стандартный
User-AgentAnixart. - Переработаны экспорты пакета: из основного entrypoint теперь доступны новые модели, параметры запросов, ошибки и утилиты.
- Обновлены TypeScript и типы Node.js.
- Упрощены build-скрипты и добавлен
test:typecheck.
Удалено / Breaking Changes
- Удалён старый high-level API класса
Anixart, включая:getChannelById()getProfileById()getLatestFeed()getRandomRelease()getArticleById()getReleaseById()getCollectionById()getFavoriteCollections()getAllCollections()login()call()
- Удалён старый подход с wrapper-классами для релизов, профилей, статей, каналов и коллекций.
- Код из
v0.x, который напрямую использовал изменяемые поля клиента или методы wrapper-классов, необходимо адаптировать под новый API клиента и эндпоинтов. - Код, завязанный на старые имена полей моделей, типы результатов или helper-методы, потребует изменений.
Миграция с v0.x
Старый код на v0.x:
const anixart = new Anixart({});
const release = await anixart.getReleaseById(101, true);
if (release) {
console.log(release.titleRu);
}Новый API в v1.0.0:
const client = new Anixart({});
const { release } = await client.endpoints.release.get(
101,
true,
{ timeoutMs: 15_000 }
);
console.log(release.title_ru);Авторизация также изменилась.
Раньше:
await client.login(username, password);Теперь:
const result = await client.endpoints.auth.signIn({
login: username,
password
});
client.setToken(result.profileToken?.token);При миграции существующего проекта с v0.x рекомендуется отдельно проверить:
- вызовы старых helper-методов
Anixart - процесс авторизации
- модели и имена полей
- обработку ошибок
- работу с токеном
- импортируемые типы и enum'ы
- код, завязанный на старые wrapper-классы сущностей
Рекомендуется сначала протестировать переход в отдельной ветке и только после этого обновлять зависимость в production-проекте.
Полный список изменений: v0.1.8...v1.0.0
v0.1.8 - New parsers
Changelog
Added
- New endpoints
- Profile: [getHealthStatus, getEnforcementContent, getEnforcementAccount, getEnforcement, getArticleComments]
- Channel: [editPinnedArticle, articleEvent, articleMute]
- New types
- Channel: [IArticleEventRequest, ArticleEditPinnedResult]
- Profile: [ICommentPreview, IHealthStatusResponse, IProfileEnforcement, IEditEnforcement, IEditEnforcementChange, IExpiringEnforcement, IProfileEnforcementResponse]
- New parsers: [RutubeParser, VKVideoParser, OKParser]
Changed
- Update type IProfile
- Removed unused imports from LinkParser
v0.1.7 - Bugfix
v0.1.6 - Bugfix
v0.1.5 - Bugfix
v0.1.3 - Update types
Changelog
Changed
- add voted_at to IVoteRelease
- change author info in IArticle
v0.1.2 - Fix AnilibriaParser
Changes
- Add param is_signed to IArticleCreateRequest and ArticleBuilder
Fixes
- Fix AniLibriaParser
v0.1.1 - Endpoints info
Changelog
Added
- Add documentations in endpoints [Profile, Feed, Auth, Search, Discover]
- New endpoints
- Channel: [createBlog, getChannelBlockProfile, getChannelRecommendations, managePermissionChannel, getChannelPermissions]
- Profile: [getLastFriendRequests, getBlocklist]
- Collections: [getRandomRelease]
- Settings: [editBadge, removeBadge]
- Notification: [getArticleNotifications]
- New types
- Channel: [IChannelPermissionManageRequest, IArticleSearchRequest, IFeedSearchResponse]
- Profile: [IProfileChannel]
- Notification: [IArticleNotification]
- Release: [IReleasesInBookmarksSearchRequest]
- New endpoint class Search (all search methods moved here)
Changed
- [addToBlocklist, removeFromBlocklist] methods moved from Settings to Profile
- [BlocklistAddResult] enum moved from Settings to Profile
- Change path in getBadges endpoint
v0.1.0 - Enums for errors
Changelog
Added
- Enums for errors
- New endpoints
Profile: [getSocials, getUnvotedReleases, getRoleProfiles, exportBookmarks],
Release: [getEpisodeUpdates] - New types (ILastEpisodeUpdate, IExportBookmarksResponse, IExportRelease)
Changed
- Rename method from getVotesReleases to getVotedReleases