Merge branch 'calckey' into 'develop'

Support Calckey, maybe

See merge request soapbox-pub/soapbox!2599
This commit is contained in:
marcin mikołajczak 2023-07-09 20:06:58 +00:00
commit 84d7ce1b67

View file

@ -16,6 +16,12 @@ const overrides = custom('features');
/** Truthy array convenience function */ /** Truthy array convenience function */
const any = (arr: Array<any>): boolean => arr.some(Boolean); const any = (arr: Array<any>): boolean => arr.some(Boolean);
/**
* Calckey, a fork of Misskey.
* @see {@link https://calckey.org/}
*/
export const CALCKEY = 'Calckey';
/** /**
* Ditto, a Nostr server with Mastodon API. * Ditto, a Nostr server with Mastodon API.
* @see {@link https://gitlab.com/soapbox-pub/ditto} * @see {@link https://gitlab.com/soapbox-pub/ditto}
@ -139,6 +145,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see GET /api/v1/accounts/lookup * @see GET /api/v1/accounts/lookup
*/ */
accountLookup: any([ accountLookup: any([
v.software === CALCKEY,
v.software === MASTODON && gte(v.compatVersion, '3.4.0'), v.software === MASTODON && gte(v.compatVersion, '3.4.0'),
v.software === PLEROMA && gte(v.version, '2.4.50'), v.software === PLEROMA && gte(v.version, '2.4.50'),
v.software === TAKAHE && gte(v.version, '0.6.1'), v.software === TAKAHE && gte(v.version, '0.6.1'),
@ -224,6 +231,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see GET /api/v1/bookmarks * @see GET /api/v1/bookmarks
*/ */
bookmarks: any([ bookmarks: any([
v.software === CALCKEY,
v.software === FRIENDICA, v.software === FRIENDICA,
v.software === MASTODON && gte(v.compatVersion, '3.1.0'), v.software === MASTODON && gte(v.compatVersion, '3.1.0'),
v.software === PLEROMA && gte(v.version, '0.9.9'), v.software === PLEROMA && gte(v.version, '0.9.9'),
@ -324,6 +332,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see {@link https://docs.joinmastodon.org/methods/conversations/} * @see {@link https://docs.joinmastodon.org/methods/conversations/}
*/ */
conversations: any([ conversations: any([
v.software === CALCKEY,
v.software === FRIENDICA, v.software === FRIENDICA,
v.software === MASTODON && gte(v.compatVersion, '2.6.0'), v.software === MASTODON && gte(v.compatVersion, '2.6.0'),
v.software === PLEROMA && gte(v.version, '0.9.9'), v.software === PLEROMA && gte(v.version, '0.9.9'),
@ -362,6 +371,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see PATCH /api/v1/accounts/update_credentials * @see PATCH /api/v1/accounts/update_credentials
*/ */
editProfile: any([ editProfile: any([
v.software === CALCKEY,
v.software === FRIENDICA, v.software === FRIENDICA,
v.software === MASTODON, v.software === MASTODON,
v.software === MITRA, v.software === MITRA,
@ -447,6 +457,7 @@ const getInstanceFeatures = (instance: Instance) => {
/** Whether the accounts who favourited or emoji-reacted to a status can be viewed through the API. */ /** Whether the accounts who favourited or emoji-reacted to a status can be viewed through the API. */
exposableReactions: any([ exposableReactions: any([
v.software === CALCKEY,
v.software === FRIENDICA, v.software === FRIENDICA,
v.software === MASTODON, v.software === MASTODON,
v.software === TAKAHE && gte(v.version, '0.6.1'), v.software === TAKAHE && gte(v.version, '0.6.1'),
@ -625,6 +636,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see GET /api/v1/timelines/list/:list_id * @see GET /api/v1/timelines/list/:list_id
*/ */
lists: any([ lists: any([
v.software === CALCKEY,
v.software === FRIENDICA, v.software === FRIENDICA,
v.software === MASTODON && gte(v.compatVersion, '2.1.0'), v.software === MASTODON && gte(v.compatVersion, '2.1.0'),
v.software === PLEROMA && gte(v.version, '0.9.9'), v.software === PLEROMA && gte(v.version, '0.9.9'),
@ -737,6 +749,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see POST /api/v1/statuses * @see POST /api/v1/statuses
*/ */
polls: any([ polls: any([
v.software === CALCKEY,
v.software === MASTODON && gte(v.version, '2.8.0'), v.software === MASTODON && gte(v.version, '2.8.0'),
v.software === PLEROMA, v.software === PLEROMA,
v.software === TRUTHSOCIAL, v.software === TRUTHSOCIAL,
@ -773,6 +786,7 @@ const getInstanceFeatures = (instance: Instance) => {
* @see GET /api/v1/timelines/public * @see GET /api/v1/timelines/public
*/ */
publicTimeline: any([ publicTimeline: any([
v.software === CALCKEY,
v.software === FRIENDICA, v.software === FRIENDICA,
v.software === MASTODON, v.software === MASTODON,
v.software === PLEROMA, v.software === PLEROMA,