MCPcopy Create free account
hub / github.com/Preloading/TwitterAPIBridge / GetStatusesFollows

Function GetStatusesFollows

twitterv1/user.go:596–655  ·  view source on GitHub ↗

https://web.archive.org/web/20120407214017/https://dev.twitter.com/docs/api/1/get/statuses/friends

(c *fiber.Ctx)

Source from the content-addressed store, hash-verified

594
595// https://web.archive.org/web/20120407214017/https://dev.twitter.com/docs/api/1/get/statuses/friends
596func GetStatusesFollows(c *fiber.Ctx) error {
597 // auth
598 _, pds, _, oauthToken, err := GetAuthFromReq(c)
599 if err != nil {
600 return MissingAuth(c, err)
601 }
602
603 // lets go get our user data
604
605 actor := c.FormValue("user_id")
606 if actor == "" {
607 actor = c.FormValue("screen_name")
608 if actor == "" {
609 return ReturnError(c, "No user was specified", 195, 403)
610 }
611 } else {
612 id, err := strconv.ParseInt(actor, 10, 64)
613 if err != nil {
614 return ReturnError(c, "Invalid ID format", 195, 403)
615 }
616 actorPtr, err := bridge.TwitterIDToBlueSky(&id)
617 if err != nil {
618 return ReturnError(c, "ID not found.", 144, fiber.StatusNotFound)
619 }
620 if actorPtr == nil {
621 return ReturnError(c, "ID not found.", 144, fiber.StatusNotFound)
622 }
623 actor = *actorPtr
624 }
625
626 // fetch follows
627 followers, err := blueskyapi.GetFollows(*pds, *oauthToken, "", actor)
628 if err != nil {
629 fmt.Println("Error:", err)
630 return HandleBlueskyError(c, err.Error(), "app.bsky.graph.getFollows", GetStatusesFollows)
631 }
632
633 // convert users into twitter format
634 // This right now doesn't act on pagination, i'll figure that out later
635 var actorsToLookUp []string
636 for _, user := range followers.Followers {
637 actorsToLookUp = append(actorsToLookUp, user.DID)
638 }
639
640 twitterUsers, err := blueskyapi.GetUsersInfo(*pds, *oauthToken, actorsToLookUp, false)
641 if err != nil {
642 fmt.Println("Error:", err)
643 return HandleBlueskyError(c, err.Error(), "app.bsky.actor.getProfiles", GetStatusesFollows)
644 }
645
646 // Convert []*bridge.TwitterUser to []bridge.TwitterUser
647 var twitterUsersConverted []bridge.TwitterUser
648 for _, user := range twitterUsers {
649 twitterUsersConverted = append(twitterUsersConverted, *user)
650 }
651
652 return EncodeAndSend(c, bridge.TwitterUsers{
653 Users: twitterUsersConverted,

Callers

nothing calls this directly

Calls 6

TwitterIDToBlueSkyFunction · 0.92
GetAuthFromReqFunction · 0.85
MissingAuthFunction · 0.85
ReturnErrorFunction · 0.85
HandleBlueskyErrorFunction · 0.85
EncodeAndSendFunction · 0.85

Tested by

no test coverage detected