bmlzootown / Hydravion

Unofficial Floatplane client for Roku devices. This project is NOT associated with Floatplane Media (floatplane.com).
MIT License
15 stars 1 forks source link

Map Out API #4

Closed bmlzootown closed 4 years ago

bmlzootown commented 5 years ago
        uploadVideo: "/video/upload",
        submitVideo: "/video/submit",
        postVideoChunk: "/video/chunk/upload",
        checkVideoChunk: "/video/chunk/check",
        updateVideoInfo: "/video/update",
        uploadVideoThumbnail: "/video/upload/thumbnail",
        transcodeProgress: "/video/transcode/progress",
        listVideos: "/video/list",
        readyList: "/video/list/ready",
        transcodingList: "/video/list/transcode",
        deleteVideos: "/video/delete",
        updateLiveConfig: "/live/config/update",
        uploadLiveThumbnail: "/live/thumbnail/upload",
        listDiscordBots: "/discord/bot/list",
        unlinkDiscordBot: "/discord/bot/unlink",
        discordBotInfo: "/discord/bot/info",
        generateDiscordInviteLink: "/discord/bot/invite/generate",
        updateDiscordBot: "/discord/bot/update",
        createMultipartUpload: "/video/upload/s3/multipart",
        listParts: "/video/upload/s3/multipart",
        prepareUploadPart: "/video/upload/s3/multipart/sign",
        abortMultipartUpload: "/video/upload/s3/multipart/abort",
        completeMultipartUpload: "/video/upload/s3/multipart/complete",
        publishSubscriptionPlan: "/plan/publish",
        updateSubscriptionPlans: "/plan/update",
        listSubscriptionPlans: "/plan/list",
        updateSocialLinks: "/creator/social/update",
        getSocialLinks: "/creator/social/get",
        updateChannelInfo: "/creator/info/update",
        getChannelInfo: "/creator/info/get",
        updateChannelImage: "/api/creator/image/update",
        getSubscriptionPlanFeatureLevels: "/creatorplanfeaturelevel/list",
        calculateFeatureCost: "/creatorplanfeaturelevel/cost",
        getPlanFeatures: "plan/feature/list"

        info: "video/info",
        comments: "video/comments",
        commentReplies: "video/comment/replies",
        addComment: "video/comment",
        deleteComment: "video/comment/remove",
        setInteraction: "video/comment/interaction/set",
        clearInteraction: "video/comment/interaction/clear",
        playlistVideos: "playlist/videos",
        relatedVideos: "video/related",
        getVideoUrl: "video/url",
        getStreamingEdges: "edges",
        getDeliveryInfo: "cdn/delivery",
        moderateComment: "comment/moderate/"

        getBraintreeToken: "payment/braintree/token",
        getStripePK: "payment/stripe/pk",
        listAddresses: "payment/address/list",
        addAddress: "payment/address/add",
        updateAddress: "payment/address/update",
        deleteAddress: "payment/address/delete",
        setPrimaryAddress: "payment/address/set",
        listPaymentMethods: "payment/method/list",
        addPaymentMethod: "payment/method/add",
        deletePaymentMethod: "payment/method/delete",
        setPrimaryPaymentMethod: "payment/method/set",
        listInvoices: "payment/invoice/list",
        estimateTaxes: "payment/tax/estimate",
        purchaseSubscription: "payment/subscription/purchase",
        cancelSubscription: "payment/subscription/cancel"

        info: "creator/info",
        infoByName: "creator/named",
        videos: "creator/videos",
        playlists: "creator/playlists",
        list: "creator/list",
        subscription: "plan/info",
        discoverCreators: "creator/discover",
        listCreatorCategories: "creatorcategory/list"

        userList: "/acp/user/list",
        useDetails: "/acp/user/details",
        invoiceList: "/acp/invoice/list",
        invoiceDetails: "/acp/invoice/details",
        moderatorList: "/acp/moderator/list",
        creatorList: "/acp/creator/list",
        creatorDetails: "/acp/creator/details",
        dashboardSummary: "/acp/dashboard/summary",
        creatorSubscriptionPlansList: "/acp/creator/subscriptionplans/list",
        createAdmin: "/acp/user/admin/create",
        findUser: "/acp/user/find",
        createModerator: "/acp/moderator/create",
        usersubscriptionAdd: "/acp/user/usersubscription/add",
        usersubscriptionList: "/acp/user/usersubscription/list",
        usersubscriptionDelete: "/acp/user/usersubscription/delete",
        listUserInvoices: "/acp/user/payment/invoice/list",
        getPaymentProcessorData: "/acp/user/payment/processor/data",
        createCreator: "/acp/creator/create",
        checkEmailAvailable: "/acp/user/email/availability",
        checkUsernameAvailable: "/acp/user/username/availability",
        checkCreatorURLAvailable: "/acp/creator/urlname/availability",
        getCreatorCategory: "/acp/creator/category/list",
        uploadUserAvatar: "/acp/user/avatar/upload",
        updateUser: "/acp/user/update",
        updateAdministrator: "/acp/user/administrator/update",
        updateGlobalModerator: "/acp/moderator/globalupdate",
        removeCreatorModerator: "/acp/moderator/creator/remove",
        addCreatorModerator: "/acp/moderator/creator/add",
        getModeratorAvailableCreators: "/acp/moderator/creator/list",
        getModeratorCreators: "/acp/moderator/creators",
        sendPasswordReset: "/user/password/reset/request",
        getCreatorsTitles: "/acp/creator/list/title",
        searchUserForModeration: "/acp/user/list/notmoderator",
        updateCreator: "/acp/creator/update",
        updateCreatorSubscriontionPlan: "/acp/creator/subscriptionplan/update",
        beginUserSpoofing: "/auth/spoof/begin",
        endUserSpoofing: "/auth/spoof/end",
        getJobStatus: "acp/dashboard/job/status/",
        startJob: "acp/dashboard/job/start/",
        stopJob: "acp/dashboard/job/stop/",
        getFaqSections: "/acp/faq/sections",
        updateFaqSection: "/acp/faq/section/update",
        getFaqSectionDetails: "/acp/faq/section/details",
        updateFaqArticle: "/acp/faq/article/update",
        getFaqArticle: "/acp/faq/article/details",
        uploadFaqImage: "/acp/faq/image/upload",
        getFaqImages: "/acp/faq/image/list",
        saveNewFaqSection: "/acp/faq/section/new",
        saveNewFaqArticle: "/acp/faq/article/new",
        getVideoList: "/acp/transcoding/video/list",
        getVideo: "/acp/transcoding/video",
        getVideoUrl: "/acp/transcoding/video/url",
        getTimelineSpriteUrl: "/acp/transcoding/video/timeline",
        getOrderList: "/acp/transcoding/order/list",
        getOrder: "/acp/transcoding/order",
        restartOrder: "/acp/transcoding/order/restart",
        deleteOrder: "/acp/transcoding/order/delete",
        updateOrder: "/acp/transcoding/order/update",
        getUploadList: "/acp/transcoding/upload/list",
        getUpload: "/acp/transcoding/upload",
        copyUpload: "/acp/transcoding/upload/copy",
        renameUpload: "/acp/transcoding/upload/rename",
        deleteUploads: "/acp/transcoding/upload/delete",
        removeJob: "/acp/transcoding/job/remove",
        retryJob: "/acp/transcoding/job/retry",
        updateJobData: "/acp/transcoding/job/update",
        setTaskState: "/acp/transcoding/task/state",
        promoteJob: "/acp/transcoding/job/promote",
        getJobData: "/acp/transcoding/job/data",
        getTaskData: "/acp/transcoding/task/data",
        fixVideo: "/acp/transcoding/video/fix",
        runFfprobe: "/acp/transcoding/upload/probe",
        startTranscode: "/acp/transcoding/upload/transcode",
        getWorkers: "/acp/transcoding/worker/list",
        stopWorker: "/acp/transcoding/worker/stop",
        pauseWorker: "/acp/transcoding/worker/pause",
        continueWorker: "/acp/transcoding/worker/continue",
        getFeatureConfigs: "acp/feature/configs",
        saveFeatureLevel: "acp/feature/save",
        saveFeatureDependencies: "acp/feature/dependencies/save",
        saveFeatureCategory: "acp/feature/category/save",
        saveFeatureType: "acp/feature/type/save",
        saveFeatureResolution: "acp/feature/resolution/save"

        getSections: "/faq/sections",
        submitSupport: "/support/",
        creatorJoin: "/support/creatorJoin",
        getTicketTypes: "/support/ticket/types"

        getUserBanStatus: "/moderator/userBanStatus/",
        unhideComment: "/moderation/comment/unhide",
        unbanUser: "/moderation/user/unban",
        userInfo: "/moderation/user/info"

app.js

bmlzootown commented 4 years ago

Login /api/auth/login username password

Logout /api/auth/logout

CheckFor2faLogin /api/auth/checkFor2faLogin token

Signup /api/auth/signup username password email Authorization: "Bearer {Auth_Token}" "Content-Type": "application/json"

REDACTED

Confirm Email /api/activation/email/confirm username code Authorization: "Bearer {Auth_Token}" "Content-Type": "application/json"

Request Password Reset /api/user/password/reset/request email Authorization: "Bearer {Auth_Token}" "Content-Type": "application/json"

Reset Password /api/user/password/reset password key Authorization: "Bearer {Auth_Token}" "Content-Type": "application/json"

Validate Reset Key /api/user/password/reset/validate key Authorization: "Bearer {Auth_Token}" "Content-Type": "application/json"

REDACTED

Push Notifications (Worker URL and Firebase Info) /api/push/web/info __cfduid & sails.sid

Register Push Token /api/push/web/register token

Unregister Push Token /api/push/web/revoke token

Get Users /api/users Authorization: "Bearer {Auth_Token}"

Get User Meta /api/user/info params { id } Authorization: "Bearer {Auth_Token}" "Content-Type": "application/json"

Transcode Connect /api/video/transcode/progress/subscribe?video={videoGUID}

Transcode Disconnect /api/video/transcode/progress/unsubscribe?video={videoGUID}

Post Image /api/image/optimizations?imageType=video_thumbnails /api/image/optimizations?imageType=profile_images /api/user/avatar

Link Discord Bot /api/discord/bot/link?creator={creatorGUID}&redirect=/cms/integrations/discord/callback

connectedLogin /api/connect/{unknown}?redirect=/connect/login/callback&create=true&login=true

onReload /api/connect/refresh id

onDissociate /api/connect/dissociate id

onConnect /api/connect/{key}?redirect=/connect/link/callback

loadConnection /api/connect/list

updateCreatorCover /api/acp/creator/coverImage/uploadCover

updateCreatorCard /api/acp/creator/creatorCard/uploadCard

updateCreatorIcon /api/acp/creator/creatorIcon/uploadIcon

connect /api/sync/connect

disconnect /api/sync/disconnect

bmlzootown commented 4 years ago

Stream Info /api/cdn/delivery?type=live&creator={creatorGUID}

PyFloatplane is a great source for API info in general.

bmlzootown commented 4 years ago

So, at least on the Javascript side of things, they've made some big changes (including more obscured usage of API endpoints). This is gonna take a while to sift through since I'm not too familiar with Javascript usage in this manner. All sorts of functions have shortened names like "e", and function e is defined throughout the code so often that keeping track is kind of painful.

Please tell me a human didn't write this, but if they did, at least tell me that they are receiving proper medical care!

bmlzootown commented 4 years ago

The wiki is where I will continue this endeavor. If you have any suggestions, especially in regard to formatting (as the current is horrible), feel free to re-open this issue, or open a new one.