(define-package "shirakumo") (define-extension "shirakumo-backfill" (define-object shirakumo:backfill (lichat:channel-update) (:since integer :optional))) (define-extension "shirakumo-data" (define-object shirakumo:data (lichat:channel-update lichat:text-update) (:content-type string) (:filename string :optional) (:payload string)) (define-object shirakumo:bad-content-type (lichat:update-failure) (:allowed-content-types (list string)))) (define-extension "shirakumo-emotes" (define-object shirakumo:emotes (lichat:channel-update) (:names (list string) :optional)) (define-object shirakumo:emote (lichat:channel-update) (:content-type string) (:name string) (:payload string)) (define-object shirakumo:emote-list-full (lichat:update-failure))) (define-extension "shirakumo-edit" (define-object shirakumo:edit (lichat:message))) (define-extension "shirakumo-channel-trees" (define-object-extension lichat:channels () (:channel string :optional)) (define-object shirakumo:no-such-parent-channel (lichat:update-failure))) (define-extension "shirakumo-channel-info" (define-object shirakumo:channel-info (lichat:channel-update) (:keys (or (list symbol) T))) (define-object shirakumo:set-channel-info (lichat:channel-update lichat:text-update) (:key symbol)) (define-object shirakumo:no-such-channel-info (lichat:update-failure) (:key symbol)) (define-object shirakumo:malformed-channel-info (lichat:update-failure))) (define-extension "shirakumo-server-management" (define-object shirakumo:kill (lichat:target-update)) (define-object shirakumo:destroy (lichat:channel-update)) (define-object shirakumo:ban (lichat:target-update)) (define-object shirakumo:unban (lichat:target-update)) (define-object shirakumo:blacklist (lichat:update) (:target (list string) :optional))) (define-extension "shirakumo-pause" (define-object shirakumo:pause (lichat:channel-update) (:by integer))) (define-extension "shirakumo-quiet" (define-object shirakumo:quiet (lichat:channel-update lichat:target-update)) (define-object shirakumo:unquiet (lichat:channel-update lichat:target-update)) (define-object shirakumo:quieted (lichat:channel-update) (:target (list string) :optional))) (define-extension "shirakumo-ip" (define-object shirakumo:ip-ban (lichat:update) (:ip string) (:mask string)) (define-object shirakumo:ip-unban (lichat:update) (:ip string) (:mask string)) (define-object shirakumo:ip-blacklist (lichat:update) (:target (list (list string)) :optional)) (define-object shirakumo:bad-ip-format (lichat:update-failure))) (define-extension "shirakumo-bridge" (define-object shirakumo:bridge (lichat:channel-update)) (define-object-extension lichat:channel-update () (shirakumo:bridge string :optional))) (define-extension "shirakumo-link" (define-object-extension lichat:message () (shirakumo:link string :optional) (shirakumo:data-fields list :optional))) (define-extension "shirakumo-markup" (define-object-extension lichat:text-update () (shirakumo:rich list :optional))) (define-extension "shirakumo-user-info" (define-object shirakumo:set-user-info (lichat:text-update) (:key string)) (define-object-extension lichat:user-info () (shirakumo:info list :optional)) (define-object shirakumo:malformed-user-info (lichat:update-failure)) (define-object shirakumo:no-such-user-info (lichat:update-failure) (:key symbol))) (define-extension "shirakumo-shared-identity" (define-object shirakumo:share-identity (lichat:update) (:key string :optional)) (define-object shirakumo:unshare-identity (lichat:update) (:key string :optional)) (define-object shirakumo:list-shared-identities (lichat:update) (:identities list :optional)) (define-object shirakumo:assume-identity (lichat:target-update) (:key string)) (define-object shirakumo:identity-already-used (lichat:update-failure))) (define-extension "shirakumo-sign" (define-object-extension lichat:update () (shirakumo:signature string :optional))) (define-extension "shirakumo-history" (define-object shirakumo:search (lichat:channel-update) (:results list :optional) (:offset integer :optional) (:query list :optional))) (define-extension "shirakumo-block" (define-object shirakumo:block (lichat:target-update)) (define-object shirakumo:unblock (lichat:target-update)) (define-object shirakumo:blocked (lichat:update) (:target (list string) :optional))) (define-extension "shirakumo-reactions" (define-object shirakumo:react (lichat:channel-update) (:target string) (:update-id id) (:emote string))) (define-extension "shirakumo-replies" (define-object-extension lichat:message () (shirakumo:reply-to list :optional))) (define-extension "shirakumo-last-read" (define-object shirakumo:last-read (lichat:channel-update) (:target string :optional) (:update-id id :optional))) (define-extension "shirakumo-typing" (define-object shirakumo:typing (lichat:channel-update))) (define-extension "shirakumo-otp" (define-object shirakumo:enable-otp (lichat:update) (shirakumo:otp-token string :optional)) (define-object shirakumo:disable-otp (lichat:update) (shirakumo:otp-token string)) (define-object shirakumo:invalid-otp (lichat:update-failure)) (define-object-extension lichat:connect () (shirakumo:otp-token string :optional)) (define-object-extension lichat:register () (shirakumo:otp-token string :optional))) (define-extension "shirakumo-roles" (define-object shirakumo:role-update (lichat:channel-update) (shirakumo:role string)) (define-object shirakumo:role (shirakumo:role-update) (:permissions (list list) :optional)) (define-object shirakumo:delete-role (shirakumo:role-update)) (define-object shirakumo:assign-role (shirakumo:role-update lichat:target-update)) (define-object shirakumo:remove-role (shirakumo:role-update lichat:target-update)) (define-object shirakumo:set-role-info (lichat:text-update shirakumo:role-update) (:key string)) (define-object shirakumo:roles (lichat:channel-update) (shirakumo:roles (list list) :optional)) (define-object shirakumo:too-many-roles (shirakumo:update-failure)) (define-object shirakumo:too-many-role-members (shirakumo:update-failure)) (define-object shirakumo:no-such-role (shirakumo:update-failure)) (define-object shirakumo:no-such-role-info (shirakumo:update-failure)) (define-object shirakumo:malformed-role-info (shirakumo:update-failure))) (define-extension "shirakumo-leave-message" (define-object-extension lichat:leave () (:text string :optional))) (define-extension "shirakumo-localization" (define-object-extension lichat:connect () (:language string :optional)) (define-object shirakumo:unsupported-language (lichat:warning))) (define-extension "shirakumo-user-notes" (define-object shirakumo:user-notes (lichat:update) (shirakumo:notes list :optional)) (define-object shirakumo:no-such-user-note (lichat:update-failure) (shirakumo:key symbol)) (define-object shirakumo:malformed-user-note (lichat:update-failure) (shirakumo:key symbol))) (define-extension "shirakumo-sessions" (define-object shirakumo:sessions (lichat:update) (shirakumo:sessions (list list) :optional)) (define-object shirakumo:set-session-info (lichat:text-update) (:key string)) (define-object shirakumo:invalid-session (lichat:update-failure)) (define-object shirakumo:no-such-session-info (lichat:update-failure)) (define-object shirakumo:malformed-session-info (lichat:update-failure)) (define-object-extension lichat:connect () (shirakumo:session-token string :optional)) (define-object-extension lichat:disconnect () (shirakumo:session-token string :optional))) (define-extension "shirakumo-stickers" (define-object shirakumo:sticker-pack (lichat:update) (:name string) (:description string :optional) (:content-type string :optional) (:payload string :optional)) (define-object shirakumo:set-sticker (lichat:update) (:name string) (:pack string) (:description string :optional) (:content-type string :optional) (:payload string :optional)) (define-object shirakumo:list-stickers (lichat:update) (:pack string)) (define-object shirakumo:list-sticker-packs (lichat:update)) (define-object shirakumo:sticker (lichat:update) (:sticker string) (:pack string)) (define-object shirakumo:sticker-pack-name-taken (lichat:update-failure)) (define-object shirakumo:no-such-sticker (lichat:update-failure)) (define-object shirakumo:no-such-sticker-pack (lichat:update-failure)) (define-object shirakumo:too-many-sticker-packs (lichat:update-failure)) (define-object shirakumo:too-many-stickers (lichat:update-failure)) (define-object shirakumo:malformed-image (lichat:update-failure))) (define-extension "shirakumo-calls" (define-object shirakumo:call (lichat:channel-update) (shirakumo:sdb string) (shirakumo:ice-servers (list list) :optional)) (define-object shirakumo:upgrade-call (lichat:channel-update) (shirakumo:status string) (shirakumo:sdb string)) (define-object shirakumo:negotiate-call (lichat:channel-update) (shirakumo:sdb string)) (define-object shirakumo:caller (lichat:channel-update) (shirakumo:status string)) (define-object shirakumo:calls (lichat:target-update) (shirakumo:calls (list list))) (define-object shirakumo:callers (lichat:channel-update) (shirakumo:callers (list list))) (define-object shirakumo:call-in-other-connection (lichat:update-failure) (shirakumo:session-token string)) (define-object shirakumo:bad-call-status (lichat:update-failure)) (define-object shirakumo:bad-call-sdb (lichat:update-failure)) (define-object shirakumo:not-in-call (lichat:update-failure)) (define-object shirakumo:too-many-callers (lichat:update-failure) (shirakumo:max-callers integer)) (define-object shirakumo:too-many-calls (lichat:update-failure) (shirakumo:max-callers integer)) (define-object shirakumo:too-many-calls-everywhere (lichat:update-failure)))