pl-api: add feature definitions for shonk idk why it didn't have them before

Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
nicole mikołajczyk
2025-06-21 18:08:45 +02:00
parent 19efa1350d
commit 43126a2d04
5 changed files with 33 additions and 16 deletions

View File

@ -87,6 +87,14 @@ const PIXELFED = 'Pixelfed';
*/
const PLEROMA = 'Pleroma';
/**
* Sharkey, a Sharkish microblogging platform.
*
* @category Software
* @see {@link https://activitypub.software/TransFem-org/Sharkey}
*/
const SHARKEY = 'Sharkey';
/**
* snac, a simple, minimalistic ActivityPub instance written in portable C
*
@ -215,6 +223,7 @@ const getFeatures = (instance: Instance) => {
v.software === GOTOSOCIAL,
v.software === MASTODON,
v.software === MITRA,
v.software === SHARKEY,
instance.api_versions['profile_directory.pleroma.pl-api'] >= 1,
]),
@ -259,6 +268,7 @@ const getFeatures = (instance: Instance) => {
v.software === MASTODON,
v.software === MITRA,
v.software === PLEROMA && gte(v.version, '2.5.0'),
v.software === SHARKEY,
v.software === SNAC,
v.software === TAKAHE && gte(v.version, '0.6.1'),
v.software === TOKI,
@ -426,6 +436,7 @@ const getFeatures = (instance: Instance) => {
v.software === MITRA && gte(v.version, '3.3.0'),
v.software === PIXELFED,
v.software === PLEROMA,
v.software === SHARKEY,
v.software === TAKAHE && gte(v.version, '0.9.0'),
v.software === TOKI,
]),
@ -487,6 +498,7 @@ const getFeatures = (instance: Instance) => {
v.software === MASTODON,
v.software === PIXELFED,
v.software === PLEROMA,
v.software === SHARKEY,
v.software === TAKAHE,
]),
@ -741,6 +753,7 @@ const getFeatures = (instance: Instance) => {
v.software === ICESHRIMP_NET,
v.software === MASTODON,
v.software === MITRA && gte(v.version, '4.5.0'),
v.software === SHARKEY,
v.software === TAKAHE && gte(v.version, '0.6.1'),
v.software === TOKI,
instance.api_versions['exposable_reactions.pleroma.pl-api'] >= 1,
@ -778,6 +791,7 @@ const getFeatures = (instance: Instance) => {
v.software === AKKOMA,
v.software === GOTOSOCIAL,
v.software === PLEROMA,
v.software === SHARKEY,
]),
/**
@ -1008,6 +1022,7 @@ const getFeatures = (instance: Instance) => {
v.software === MASTODON,
v.software === MITRA,
v.software === PLEROMA,
v.software === SHARKEY,
v.software === SNAC,
]),
@ -1169,6 +1184,7 @@ const getFeatures = (instance: Instance) => {
v.software === MITRA,
v.software === PIXELFED,
v.software === PLEROMA,
v.software === SHARKEY,
v.software === TAKAHE,
]),
@ -1312,12 +1328,13 @@ const getFeatures = (instance: Instance) => {
*/
polls: any([
v.software === FIREFISH,
v.software === GOTOSOCIAL,
v.software === ICESHRIMP,
v.software === ICESHRIMP_NET,
v.software === MASTODON,
v.software === MITRA && gte(v.version, '3.15.0'),
v.software === SHARKEY,
v.software === TAKAHE && gte(v.version, '0.8.0'),
v.software === GOTOSOCIAL,
instance.api_versions['polls.pleroma.pl-api'] >= 1,
]),
@ -1327,10 +1344,11 @@ const getFeatures = (instance: Instance) => {
*/
postLanguages: any([
v.software === AKKOMA,
v.software === GOTOSOCIAL,
v.software === MASTODON,
v.software === MITRA && gte(v.version, '3.23.0'),
v.software === PLEROMA && gte(v.version, '2.9.0'),
v.software === GOTOSOCIAL,
v.software === SHARKEY,
]),
/**
@ -1369,6 +1387,7 @@ const getFeatures = (instance: Instance) => {
v.software === MASTODON,
v.software === MITRA,
v.software === PLEROMA,
v.software === SHARKEY,
v.software === SNAC,
v.software === TAKAHE && gte(v.version, '0.7.0'),
]),
@ -1411,6 +1430,7 @@ const getFeatures = (instance: Instance) => {
quotePosts: any([
v.software === ICESHRIMP_NET,
v.software === FRIENDICA && gte(v.version, '2023.3.0'),
v.software === SHARKEY,
instance.api_versions['quote_posting.pleroma.pl-api'] >= 1,
instance.feature_quote === true,
]),
@ -1496,9 +1516,10 @@ const getFeatures = (instance: Instance) => {
v.software === AKKOMA,
v.software === FIREFISH,
v.software === FRIENDICA,
v.software === GOTOSOCIAL && gte(v.version, '0.18.0'),
v.software === MASTODON,
v.software === PLEROMA,
v.software === GOTOSOCIAL && gte(v.version, '0.18.0'),
v.software === SHARKEY,
]),
/**
@ -1645,6 +1666,7 @@ const getFeatures = (instance: Instance) => {
v.software === FRIENDICA,
v.software === ICESHRIMP,
v.software === MASTODON,
v.software === SHARKEY,
instance.api_versions['v2_suggestions.pleroma.pl-api'] >= 1,
]),
@ -1675,6 +1697,7 @@ const getFeatures = (instance: Instance) => {
v.software === ICESHRIMP,
v.software === MASTODON,
v.software === PIXELFED,
v.software === SHARKEY,
]),
/**

View File

@ -1,6 +1,6 @@
{
"name": "pl-api",
"version": "1.0.0-rc.80",
"version": "1.0.0-rc.81",
"type": "module",
"homepage": "https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api",
"repository": {

View File

@ -105,7 +105,7 @@
"multiselect-react-dropdown": "^2.0.25",
"mutative": "^1.1.0",
"path-browserify": "^1.0.1",
"pl-api": "^1.0.0-rc.80",
"pl-api": "^1.0.0-rc.81",
"postcss": "^8.5.3",
"process": "^0.11.10",
"punycode": "^2.1.1",

View File

@ -1,14 +1,8 @@
import { Features } from 'pl-api';
import { useAppSelector } from './use-app-selector';
import { useInstance } from './use-instance';
/** Get features for the current instance. */
const useFeatures = (): Features => {
useInstance();
const features = useAppSelector(state => state.auth.client.features);
return features;
};
const useFeatures = (): Features => useAppSelector(state => state.auth.client.features);
export { useFeatures };

View File

@ -6875,10 +6875,10 @@ pkg-dir@^4.1.0:
dependencies:
find-up "^4.0.0"
pl-api@^1.0.0-rc.80:
version "1.0.0-rc.80"
resolved "https://registry.yarnpkg.com/pl-api/-/pl-api-1.0.0-rc.80.tgz#669cc9c8747e03c78314a6a2f8290a32db620623"
integrity sha512-4rJRk+xkoPPRMMdLn7+h7zRA/N07Ho5oEEkE92pSx7HA/CxwFPGOXA1VttJ6p6my27zxPIduMM2RHwCLYbUfVA==
pl-api@^1.0.0-rc.81:
version "1.0.0-rc.81"
resolved "https://registry.yarnpkg.com/pl-api/-/pl-api-1.0.0-rc.81.tgz#51c64c5ccf5749f56d1df63748ae9c664032b390"
integrity sha512-ZRwYel2XhT+4z3X33b5jydiqDP9RjK9hPwngqvaWT7Nm6m+GrtljLa1X5S0GN622/7Ko2oGZYGMVzGt0nB0knQ==
dependencies:
blurhash "^2.0.5"
http-link-header "^1.1.3"