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

Function GetSuggestedUsers

twitterv1/user.go:771–838  ·  view source on GitHub ↗
(c *fiber.Ctx)

Source from the content-addressed store, hash-verified

769}
770
771func GetSuggestedUsers(c *fiber.Ctx) error {
772 var err error
773 // limits
774 limit := 30
775 if c.Query("limit") != "" {
776 limit, err = strconv.Atoi(c.Query("limit"))
777 if err != nil {
778 return ReturnError(c, "Invalid limit", 195, 403)
779 }
780 }
781
782 // auth
783 _, pds, _, oauthToken, err := GetAuthFromReq(c)
784 if err != nil {
785 return MissingAuth(c, err)
786 }
787
788 var recommendedUsers []blueskyapi.User
789
790 // see if they provided a user id
791 userID := c.Query("user_id")
792 if userID != "" {
793 userIDInt, err := strconv.ParseInt(userID, 10, 64)
794 if err != nil {
795 return ReturnError(c, "Invalid ID format", 195, 403)
796 }
797 userIDPtr, err := bridge.TwitterIDToBlueSky(&userIDInt)
798 if err != nil {
799 return ReturnError(c, "ID not found.", 144, fiber.StatusNotFound)
800 }
801 if userIDPtr == nil {
802 return ReturnError(c, "ID not found.", 144, fiber.StatusNotFound)
803 }
804 userID = *userIDPtr
805
806 recommendedUsers, err = blueskyapi.GetOthersSuggestedUsers(*pds, *oauthToken, limit, userID)
807 if err != nil {
808 return HandleBlueskyError(c, err.Error(), "app.bsky.graph.getSuggestedFollowsByActor", GetSuggestedUsers)
809 }
810 } else {
811 recommendedUsers, err = blueskyapi.GetMySuggestedUsers(*pds, *oauthToken, limit)
812 if err != nil {
813 fmt.Println("Error:", err)
814 return HandleBlueskyError(c, err.Error(), "app.bsky.actor.getSuggestions", GetSuggestedUsers)
815 }
816 }
817
818 usersDID := []string{}
819 for _, user := range recommendedUsers {
820 usersDID = append(usersDID, user.DID)
821 }
822
823 usersInfo, err := blueskyapi.GetUsersInfo(*pds, *oauthToken, usersDID, false)
824 if err != nil {
825 fmt.Println("Error:", err)
826 return HandleBlueskyError(c, err.Error(), "app.bsky.actor.getProfiles", GetSuggestedUsers)
827 }
828

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected