Class Firefish

Implements

Constructors

Properties

Methods

acceptFollowRequest addAccountsToList addReactionToAnnouncement blockAccount blockDomain bookmarkStatus cancel cancelScheduledStatus createApp createEmojiReaction createFeaturedTag createFilter createList deleteAccountsFromList deleteConversation deleteEmojiReaction deleteFeaturedTag deleteFilter deleteList deletePushSubscription deleteStatus directStreaming dismissInstanceAnnouncement dismissNotification dismissNotifications editStatus favouriteStatus fetchAccessToken followAccount followTag generateAuthUrlAndToken getAccount getAccountFavourites getAccountFollowers getAccountFollowing getAccountLists getAccountStatuses getAccountsInList getBlocks getBookmarks getConversationTimeline getDefaultPostPrivacy getDomainBlocks getEmojiReaction getEmojiReactions getEndorsements getFavourites getFeaturedTags getFilter getFilters getFollowRequests getFollowedTags getHomeTimeline getIdentityProof getInstance getInstanceActivity getInstanceAnnouncements getInstanceCustomEmojis getInstanceDirectory getInstancePeers getInstanceTrends getList getListTimeline getLists getLocalTimeline getMarkers getMedia getMutes getNotification getNotifications getPoll getPreferences getPublicTimeline getPushSubscription getRelationship getRelationships getScheduledStatus getScheduledStatuses getStatus getStatusContext getStatusFavouritedBy getStatusRebloggedBy getStatusSource getSuggestedTags getSuggestions getTag getTagTimeline listStreaming localStreaming lookupAccount muteAccount muteStatus pinAccount pinStatus postStatus publicStreaming reactionName readConversation readNotifications reblogStatus refreshToken registerAccount registerApp rejectFollowRequest removeReactionFromAnnouncement report revokeToken saveMarkers scheduleStatus search searchAccount searchAccounts searchAll searchHashtags searchStatuses streamingURL subscribeAccount subscribePushNotification tagStreaming unblockAccount unblockDomain unbookmarkStatus unfavouriteStatus unfollowAccount unfollowTag unmuteAccount unmuteStatus unpinAccount unpinStatus unreblogStatus unsubscribeAccount updateCredentials updateFilter updateList updateMedia updatePushSubscription uploadMedia userStreaming verifyAccountCredentials verifyAppCredentials votePoll

Constructors

  • Parameters

    • baseUrl: string

      hostname or base URL

    • accessToken: null | string = null

      access token from OAuth2 authorization

    • userAgent: null | string = DEFAULT_UA

      UserAgent is specified in header on request.

    Returns Firefish

Properties

baseUrl: string
client: Interface

Methods

  • POST /api/app/create

    Create an application.

    Parameters

    • client_name: string

      Your application's name.

    • options: Partial<{
          redirect_uris: string;
          scopes: string[];
          website: string;
      }> = ...

      Form data.

    Returns Promise<AppData>

  • Create a filter.

    Parameters

    • _phrase: string

      Text to be filtered.

    • _context: string[]

      Array of enumerable strings home, notifications, public, thread, account. At least one context must be specified.

    • Optional _options: {
          expires_in?: string;
          irreversible?: boolean;
          whole_word?: boolean;
      }
      • Optional expires_in?: string
      • Optional irreversible?: boolean
      • Optional whole_word?: boolean

    Returns Promise<Response<Filter>>

    Filter

  • Edit a given status to change its text, sensitivity, media attachments, or poll. Note that editing a poll’s options will reset the votes.

    Parameters

    • _id: string

      The target status id.

    • _options: {
          media_ids?: string[];
          poll?: {
              expires_in?: number;
              hide_totals?: boolean;
              multiple?: boolean;
              options?: string[];
          };
          sensitive?: boolean;
          spoiler_text?: string;
          status?: string;
      }
      • Optional media_ids?: string[]
      • Optional poll?: {
            expires_in?: number;
            hide_totals?: boolean;
            multiple?: boolean;
            options?: string[];
        }
        • Optional expires_in?: number
        • Optional hide_totals?: boolean
        • Optional multiple?: boolean
        • Optional options?: string[]
      • Optional sensitive?: boolean
      • Optional spoiler_text?: string
      • Optional status?: string

    Returns Promise<Response<Status>>

    Status

  • POST /api/auth/session/userkey

    Parameters

    • _client_id: null | string

      This parameter is not used in this method.

    • client_secret: string

      Application secret key which will be provided in createApp.

    • session_token: string

      Session token string which will be provided in generateAuthUrlAndToken.

    • Optional _redirect_uri: string

      This parameter is not used in this method.

    Returns Promise<TokenData>

  • POST /api/auth/session/generate

    Parameters

    • clientSecret: string

    Returns Promise<Session>

  • Favourites timeline of any user.

    Parameters

    • _id: string

      Target account ID.

    • Optional _options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

    Array of statuses.

  • POST /api/users/followers

    Parameters

    • id: string
    • Optional options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Account[]>>

  • POST /api/users/following

    Parameters

    • id: string
    • Optional options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Account[]>>

  • POST /api/users/notes

    Parameters

    • id: string
    • Optional options: {
          exclude_reblogs: boolean;
          exclude_replies: boolean;
          limit?: number;
          max_id?: string;
          only_media?: boolean;
          pinned?: boolean;
          since_id?: string;
      }
      • exclude_reblogs: boolean
      • exclude_replies: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional only_media?: boolean
      • Optional pinned?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

  • POST /api/users/lists/show

    Parameters

    • id: string
    • Optional _options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Account[]>>

  • POST /api/blocking/list

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<Account[]>>

  • Statuses the user has bookmarked.

    Parameters

    • Optional _options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

    Array of statuses.

  • POST /api/notes/mentions

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Conversation[]>>

  • View domains the user has blocked.

    Parameters

    • Optional _options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<string[]>>

    Array of domain name.

  • Accounts that the user is currently featuring on their profile.

    Parameters

    • Optional _options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Account[]>>

    Array of accounts.

  • POST /api/notes/timeline

    Parameters

    • Optional options: {
          limit?: number;
          local?: boolean;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional local?: boolean
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

  • View profile directory.

    Parameters

    • Optional _options: {
          limit?: number;
          local?: boolean;
          offset?: number;
          order?: "active" | "new";
      }
      • Optional limit?: number
      • Optional local?: boolean
      • Optional offset?: number
      • Optional order?: "active" | "new"

    Returns Promise<Response<Account[]>>

    Array of accounts.

  • POST /api/notes/user-list-timeline

    Parameters

    • list_id: string
    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

  • POST /api/notes/local-timeline

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          only_media?: boolean;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional only_media?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

  • POST /api/mute/list

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<Account[]>>

  • POST /api/i/notifications

    Parameters

    • Optional options: {
          account_id?: string;
          exclude_type?: string[];
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional account_id?: string
      • Optional exclude_type?: string[]
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Notification[]>>

  • POST /api/notes/global-timeline

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          only_media?: boolean;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional only_media?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

  • View scheduled statuses.

    Parameters

    • Optional _options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<ScheduledStatus[]>>

    Array of scheduled statuses.

  • POST /api/notes/children

    Parameters

    • id: string
    • Optional options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Context>>

  • POST /api/notes/search-by-tag

    Parameters

    • hashtag: string
    • Optional options: {
          limit?: number;
          local?: boolean;
          max_id?: string;
          min_id?: string;
          only_media?: boolean;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional local?: boolean
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional only_media?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Status[]>>

  • Publish a status with the given parameters.

    Parameters

    • status: string

      Text content of status.

    • Optional options: {
          in_reply_to_id?: string;
          language?: string;
          media_ids?: string[];
          poll?: {
              expires_in: number;
              hide_totals?: boolean;
              multiple?: boolean;
              options: string[];
          };
          quote_id?: string;
          scheduled_at?: string;
          sensitive?: boolean;
          spoiler_text?: string;
          visibility?: StatusVisibility;
      }
      • Optional in_reply_to_id?: string
      • Optional language?: string
      • Optional media_ids?: string[]
      • Optional poll?: {
            expires_in: number;
            hide_totals?: boolean;
            multiple?: boolean;
            options: string[];
        }
        • expires_in: number
        • Optional hide_totals?: boolean
        • Optional multiple?: boolean
        • options: string[]
      • Optional quote_id?: string
      • Optional scheduled_at?: string
      • Optional sensitive?: boolean
      • Optional spoiler_text?: string
      • Optional visibility?: StatusVisibility

    Returns Promise<Response<Status>>

    Status. When options.scheduled_at is present, ScheduledStatus is returned instead.

  • Convert a Unicode emoji or custom emoji name to a Firefish reaction.

    Parameters

    • name: string

    Returns string

    See

    Firefish's reaction-lib.ts

  • Refresh OAuth access token. Send refresh token and get new access token.

    Parameters

    • _client_id: string

      will be generated by #createApp or #registerApp

    • _client_secret: string

      will be generated by #createApp or #registerApp

    • _refresh_token: string

      will be get #fetchAccessToken

    Returns Promise<TokenData>

  • Creates a user and account records. Returns an account access token for the app that initiated the request. The app should save this token for later, and should wait for the user to confirm their account by clicking a link in their email inbox.

    Parameters

    • _username: string

      Username for the account.

    • _email: string

      Email for the account.

    • _password: string

      Password for the account.

    • _agreement: boolean

      Whether the user agrees to the local rules, terms, and policies.

    • _locale: string

      The language of the confirmation email that will be sent

    • Optional _reason: null | string

      Text that will be reviewed by moderators if registrations require manual approval.

    Returns Promise<Response<Token>>

    An account token.

  • First, call createApp to get client_id and client_secret. Next, call generateAuthUrl to get authorization url.

    Parameters

    • client_name: string

      Form Data, which is sent to /api/v1/apps

    • options: Partial<{
          redirect_uris: string;
          scopes: string[];
          website: string;
      }> = ...

      Form Data, which is sent to /api/v1/apps. and properties should be snake_case

    Returns Promise<AppData>

  • POST /api/users/report-abuse

    Parameters

    • account_id: string
    • options: {
          category: Category;
          comment: string;
          forward?: boolean;
          rule_ids?: number[];
          status_ids?: string[];
      }
      • category: Category
      • comment: string
      • Optional forward?: boolean
      • Optional rule_ids?: number[]
      • Optional status_ids?: string[]

    Returns Promise<Response<Report>>

  • Revoke an OAuth token.

    Parameters

    • _client_id: string

      will be generated by #createApp or #registerApp

    • _client_secret: string

      will be generated by #createApp or #registerApp

    • _token: string

      will be get #fetchAccessToken

    Returns Promise<Response<Record<never, never>>>

  • Save your position in a timeline.

    Parameters

    • Optional _options: {
          home?: {
              last_read_id: string;
          };
          notifications?: {
              last_read_id: string;
          };
      }
      • Optional home?: {
            last_read_id: string;
        }
        • last_read_id: string
      • Optional notifications?: {
            last_read_id: string;
        }
        • last_read_id: string

    Returns Promise<Response<Marker>>

    Marker.

  • Update a scheduled status’s publishing date.

    Parameters

    • _id: string

      Target scheduled status ID.

    • Optional _scheduled_at: null | string

      ISO 8601 Datetime at which the status will be published.

    Returns Promise<Response<ScheduledStatus>>

    ScheduledStatus.

  • Perform a search.

    Parameters

    • q: string

      The search query.

    • Optional options: {
          account_id?: string;
          exclude_unreviewed?: boolean;
          following?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          offset?: number;
          resolve?: boolean;
          type: "accounts" | "hashtags" | "statuses";
      }
      • Optional account_id?: string
      • Optional exclude_unreviewed?: boolean
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional offset?: number
      • Optional resolve?: boolean
      • type: "accounts" | "hashtags" | "statuses"

    Returns Promise<Response<Results>>

    Results.

  • POST /api/users/search

    Parameters

    • q: string
    • Optional options: {
          following?: boolean;
          limit?: number;
          max_id?: string;
          resolve?: boolean;
          since_id?: string;
      }
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional resolve?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Account[]>>

  • Parameters

    • q: string
    • Optional options: {
          account_id?: string;
          exclude_unreviewed?: boolean;
          following?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          offset?: number;
          resolve?: boolean;
          type: "accounts" | "hashtags" | "statuses";
      }
      • Optional account_id?: string
      • Optional exclude_unreviewed?: boolean
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional offset?: number
      • Optional resolve?: boolean
      • type: "accounts" | "hashtags" | "statuses"

    Returns Promise<UserDetail[]>

  • Parameters

    • q: string
    • Optional options: {
          account_id?: string;
          exclude_unreviewed?: boolean;
          following?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          offset?: number;
          resolve?: boolean;
          type: "accounts" | "hashtags" | "statuses";
      }
      • Optional account_id?: string
      • Optional exclude_unreviewed?: boolean
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional offset?: number
      • Optional resolve?: boolean
      • type: "accounts" | "hashtags" | "statuses"

    Returns Promise<Response<Results>>

  • Parameters

    • q: string
    • Optional options: {
          account_id?: string;
          exclude_unreviewed?: boolean;
          following?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          offset?: number;
          resolve?: boolean;
          type: "accounts" | "hashtags" | "statuses";
      }
      • Optional account_id?: string
      • Optional exclude_unreviewed?: boolean
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional offset?: number
      • Optional resolve?: boolean
      • type: "accounts" | "hashtags" | "statuses"

    Returns Promise<string[]>

  • Parameters

    • q: string
    • Optional options: {
          account_id?: string;
          exclude_unreviewed?: boolean;
          following?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          offset?: number;
          resolve?: boolean;
          type: "accounts" | "hashtags" | "statuses";
      }
      • Optional account_id?: string
      • Optional exclude_unreviewed?: boolean
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional offset?: number
      • Optional resolve?: boolean
      • type: "accounts" | "hashtags" | "statuses"

    Returns Promise<Note[]>

  • Subscribe to push notifications.

    Parameters

    • _subscription: {
          endpoint: string;
          keys: {
              auth: string;
              p256dh: string;
          };
      }
      • endpoint: string
      • keys: {
            auth: string;
            p256dh: string;
        }
        • auth: string
        • p256dh: string
    • Optional _data: null | {
          alerts: {
              favourite?: boolean;
              follow?: boolean;
              mention?: boolean;
              poll?: boolean;
              reblog?: boolean;
          };
      }

    Returns Promise<Response<PushSubscription>>

    PushSubscription.

  • POST /api/i/update

    Parameters

    • Optional options: {
          avatar?: string;
          bot?: boolean;
          discoverable?: boolean;
          display_name?: string;
          fields_attributes?: {
              name: string;
              value: string;
          }[];
          header?: string;
          locked?: boolean;
          note?: string;
          source?: null | {
              language?: string;
              privacy?: string;
              sensitive?: boolean;
          };
      }
      • Optional avatar?: string
      • Optional bot?: boolean
      • Optional discoverable?: boolean
      • Optional display_name?: string
      • Optional fields_attributes?: {
            name: string;
            value: string;
        }[]
      • Optional header?: string
      • Optional locked?: boolean
      • Optional note?: string
      • Optional source?: null | {
            language?: string;
            privacy?: string;
            sensitive?: boolean;
        }

    Returns Promise<Response<Account>>

  • Replaces a filter’s parameters in-place.

    Parameters

    • _id: string

      The filter ID.

    • _phrase: string

      Text to be filtered.

    • _context: string[]

      Array of enumerable strings home, notifications, public, thread, account. At least one context must be specified.

    • Optional _options: {
          expires_in?: string;
          irreversible?: boolean;
          whole_word?: boolean;
      }
      • Optional expires_in?: string
      • Optional irreversible?: boolean
      • Optional whole_word?: boolean

    Returns Promise<Response<Filter>>

    Filter

  • POST /api/drive/files/update

    Parameters

    • id: string
    • Optional options: {
          description?: string;
          file?: any;
          focus?: string;
          is_sensitive?: boolean;
      }
      • Optional description?: string
      • Optional file?: any
      • Optional focus?: string
      • Optional is_sensitive?: boolean

    Returns Promise<Response<Attachment>>

  • Change types of notifications.

    Parameters

    • Optional _data: null | {
          alerts: {
              favourite?: boolean;
              follow?: boolean;
              mention?: boolean;
              poll?: boolean;
              reblog?: boolean;
          };
      }

    Returns Promise<Response<PushSubscription>>

    PushSubscription.