Roblox Resellers

roblox resellers
import json
import requests
import datetime
import time
import re
from threading import Thread
from bs4 import BeautifulSoup

Roblox Resellers

class Gear(object):
def __init__(self):
self.MELEE = 0
roblox resellers check more roblox resellers
self.RANGED = 1
self.EXPLOSIVE = 2
self.POWERUP = 3
self.NAVIGATION = 4
self.MUSICAL = 5
self.SOCIAL = 6
class Subcategory(object):
def __init__(self):
self.FEATURED = 0
self.ALL = 1
roblox resellers best of roblox resellers
self.COLLECTIBLES = 2
self.CLOTHING = 3
self.BODYPARTS = 4
self.GEAR = 5
self.MODELS = 6
self.PLUGINS = 7
self.DECALS = 8
self.HATS = 9
self.FACES = 10
self.PACKAGES = 11
roblox resellers roblox resellers
self.SHIRTS = 12
self.TSHIRTS = 13
self.PANTS = 14
self.HEADS = 15
self.AUDIO = 16
self.ROBLOXCREATED = 17
self.MESHES = 18
class Genre(object):
def __init__(self):
self.ALL = 0
roblox resellers check more roblox resellers
self.TOWNANDCITY = 1
self.MEDIEVAL = 2
self.SCIFI = 3
self.FIGHTING = 4
self.HORROR = 5
self.NAVAL = 6
self.ADVENTURE = 7
self.SPORTS = 8
self.COMEDY = 9
self.WESTERN = 10
roblox resellers informational roblox resellers
self.MILITARY = 11
self.SKATING = 12
self.BUILDING = 13
self.FPS = 14
self.RPG = 15
class Category(object):
def __init__(self):
self.FEATURED = 0
self.ALL = 1
self.COLLECTIBLES = 2
roblox resellers roblox resellers
self.CLOTHING = 3
self.BODYPARTS = 4
self.GEAR = 5
self.MODELS = 6
self.PLUGINS = 7
self.DECALS = 8
self.AUDIO = 9
self.MESHES = 10
class Currency(object):
def __init__(self):
roblox resellers best of roblox resellers
self.ALL = 0
self.ROBUX = 1
self.FREE = 2
class Sort(object):
def __init__(self):
self.RELEVANCE = 0
self.MOSTFAVORITED = 1
self.BESTSELLING = 2
self.RECENTLYUPDATED = 3
self.PRICELOWTOHIGH = 4
roblox resellers check more roblox resellers
self.PRICEHIGHTOLOW = 5
class Time(object):
def __init__(self):
self.PASTDAY = 0
self.PASTWEEK = 1
self.PASTMONTH = 2
self.ALLTIME = 3

class RobloxApiClient(object):

roblox resellers best of roblox resellers
def __init__(self):
self.s = requests.session()
self.token = None
def friends(self,id1,id2):
t = self.s.get(‘https://www.roblox.com/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerId=’+id1+’&userId=’+id2).text
t=t.replace(”,”)
t=t.replace(”,”)
if t == ‘true’:
return True
else:
roblox resellers check more roblox resellers
return False
def name(self,iyd):
r = self.s.get(‘https://api.roblox.com/Users/’+iyd)
jdict = json.loads(r.text)
return jdict[“Username”]

def assetComments(self,id1):
r = self.s.get(‘https://www.roblox.com/API/Comments.ashx?rqtype=getComments&assetID=’+id1+’&startIndex=0′)
js = json.loads(r.text)
return js
roblox resellers informational roblox resellers

def catalogSearch(self,geartype = -1, genre = -1, subcategory = -1, category = -1, currency = -1, sort = -1, freq = -1, keyword = None, creatorID = None, minim = 0, maxim = None, notforsale = True, pagenumber = -1, resultsperpage = -1):
req = ‘http://roblox.com/catalog/json?’
if geartype != -1:
req += ‘&Gears={}’.format(geartype)
if genre != -1:
req += ‘&Genres={}’.format(genre)
if subcategory != -1:
req += ‘&Subcategory={}’.format(subcategory)
if category != -1:
roblox resellers roblox resellers
req += ‘&Category={}’.format(category)
if currency != -1:
req += ‘&CurrencyType={}’.format(currency)
if sort != -1:
req += ‘&SortType={}’.format(sort)
if freq != -1:
req += ‘&AggregationFrequency={}’.format(freq)
if keyword != None:
req += ‘&Keyword={}’.format(keyword)
if creatorID != None:
roblox resellers check more roblox resellers
req += ‘&CreatorID={}’.format(creatorID)
req += ‘&PxMin={}’.format(minim)
if maxim != None:
req += ‘&PxMax={}’.format(maxim)
if notforsale:
req += ‘&IncludeNotForSale=true’
else:
req += ‘&IncludeNotForSale=false’
if pagenumber != -1:
req += ‘&PageNumber={}’.format(pagenumber)
roblox resellers informational roblox resellers
if resultsperpage != -1:
req += ‘&ResultsPerPage={}’.format(resultsperpage)
r = self.s.get(req)
return json.loads(r.text)
def getFriends(self,userid):
return self.s.get(‘https://api.roblox.com/users/’+str(userid)+’/friends’).json()

def friendCrawl(self,userid, maxfr = 100):
usercount = 0
users = []
roblox resellers informational roblox resellers
friendlist1 = getFriends(userid)
for friend in friendlist1:
if len(users) < maxfr:
if self.s.get('https://www.roblox.com/users/’+str(friend[‘Id’])+’/profile’).status_code != 404:
users.append({‘Id’:friend[‘Id’],’Username’:friend[‘Username’]})
usercount += 1
print(“Users: “+ str(usercount))
else:
return users
for user in users:
roblox resellers informational roblox resellers
req = self.s.get(“https://api.roblox.com/users/”+str(user[‘Id’])+”/friends”)
if req.status_code != 404:
friendlist1 = json.loads(req.text)
else:
pass
for friend in friendlist1:
if len(users) < maxfr:
if self.s.get('https://www.roblox.com/users/’+str(friend[‘Id’])+’/profile’).status_code != 404:
d = {‘Id’:friend[‘Id’],’Username’:friend[‘Username’]}
if d not in users:
roblox resellers informational roblox resellers
users.append(d)
usercount += 1
print(“Users: “+ str(usercount))
else:
return users

def getCurrentStatus(self):
return self.s.get(‘https://www.roblox.com/client-status’).text

def getUserPresence(self,userid):
roblox resellers roblox resellers
return self.s.get(‘https://www.roblox.com/presence/user?userId={}’.format(userid)).json()

def createAccount(self,username,password,birthday,gender = 2): #birthday is a datetime object
params = {
“isEligibleForHideAdsAbTest”:False,
“username”:username,
“password”:password,
“birthday”: birthday.strftime(“%d %b %Y”).lstrip(“0″).replace(” 0″, ” “),
“gender”: gender, #1 for female, 2 for male
“context”:”RollerCoasterSignupForm”
roblox resellers best of roblox resellers
}
print(params)
r = self.s.post(“https://api.roblox.com/signup/v1″,data = params)
return r

def getItemInfo(self,itemid):
return self.s.get(“https://api.roblox.com/marketplace/productinfo?assetId=”+str(itemid)).json()

def buyItem(self,itemid):
info = self.getItemInfo(itemid)
roblox resellers best of roblox resellers
url=”https://web.roblox.com/api/item.ashx?rqtype=purchase&productID={}&expectedCurrency=1&expectedPrice={}&expectedSellerID={}&userAssetID=”.format(info[“ProductId”], 0 if info[“PriceInRobux”] == None else info[“PriceInRobux”],info[“Creator”][“Id”])
self.token = self.s.post(url).headers[‘X-CSRF-TOKEN’]
r = self.s.post(url, headers = {“X-CSRF-TOKEN”:self.token})
return r

def logIn(self,username,password,returnurl = “”):
r = self.s.post(“https://www.roblox.com/newlogin”,data={“username”:username,”password”:password,”submitLogin”:”Log In”,”ReturnUrl”:returnurl})
return r

def giveBadge(self,userid,badgeid,placeid):
roblox resellers roblox resellers
return self.s.post(“https://api.roblox.com/assets/award-badge”, data = {‘userId’:userid,’badgeId’:badgeid,’placeId’:placeid}).json()

def getVersions(self,itemid):
return self.s.get(“https://api.roblox.com/assets/{}/versions”.format(itemid)).json()

def getCurrency(self):
return self.s.get(“https://api.roblox.com/currency/balance”).json()

def setXsrfToken(self):
r = self.s.get(“https://roblox.com/home”)
roblox resellers best of roblox resellers
tok = r.text[r.text.find(“Roblox.XsrfToken.setToken(‘”) + 27::]
tok = tok[:tok.find(“‘);”):]
self.token = tok
return tok

def sendMessage(self,subject,body,recipientid):
if not self.token:
self.setXsrfToken()
r = self.s.post(‘https://www.roblox.com/messages/send’,headers = {‘Content-Type’:”application/x-www-form-urlencoded; charset=UTF-8″,”X-CSRF-TOKEN”:self.token}, data = {“subject”:subject,”body”:body,”recipientid”:recipientid,”cacheBuster”:round(time.time(),3)})
return r
roblox resellers check more roblox resellers

def forumPost(self,forumid,subject,body,disablereplies = False): #currently nonfunctional
earl = “https://forum.roblox.com/Forum/AddPost.aspx?ForumID={}”.format(forumid)
view = self.s.get(earl)
soup = BeautifulSoup(view.text,’html.parser’)
params = {
“__EVENTTARGET” : ”,
“__EVENTARGUMENT”: ”,
‘__VIEWSTATE’:soup.find(id=”__VIEWSTATE”)[‘value’],
“__VIEWSTATEGENERATOR”:soup.find(id=”__VIEWSTATEGENERATOR”)[‘value’],
roblox resellers check more roblox resellers
“__EVENTVALIDATION” : soup.find(id=”__EVENTVALIDATION”)[‘value’],
“ctl00$cphRoblox$Createeditpost1$PostForm$NewPostSubject”:subject,
“ctl00$cphRoblox$Createeditpost1$PostForm$PostBody”:body,
“ctl00$cphRoblox$Createeditpost1$PostForm$PostButton”:” Post ”
}
if disablereplies:
params[“ctl00$cphRoblox$Createeditpost1$PostForm$AllowReplies”] = ‘on’
r = self.s.post(earl, data = params, headers = {“Content-Type”:”application/x-www-form-urlencoded”})
return r

roblox resellers informational roblox resellers
def replyToForumPost(self, postid, text, disablereplies = False):
earl = “https://forum.roblox.com/Forum/AddPost.aspx?PostID={}”.format(postid)
view = self.s.get(earl)
soup = BeautifulSoup(view.text,’html.parser’)
params = {
“__EVENTTARGET” : ”,
“__EVENTARGUMENT”: ”,
‘__VIEWSTATE’:soup.find(id=”__VIEWSTATE”)[‘value’],
“__VIEWSTATEGENERATOR”:soup.find(id=”__VIEWSTATEGENERATOR”)[‘value’],
“__EVENTVALIDATION” : soup.find(id=”__EVENTVALIDATION”)[‘value’],
roblox resellers roblox resellers
“ctl00$cphRoblox$Createeditpost1$PostForm$PostBody”:text,
“ctl00$cphRoblox$Createeditpost1$PostForm$PostButton”:” Post ”
}
if disablereplies:
params[“ctl00$cphRoblox$Createeditpost1$PostForm$AllowReplies”] = ‘on’
r = self.s.post(earl, data = params, headers = {“Content-Type”:”application/x-www-form-urlencoded”})
return r

def getRobloSecurityCookie(self):
roblox resellers roblox resellers
return self.s.cookies.get_dict()[‘.ROBLOSECURITY’]

def commentOnAsset(self,assetid,text):
if not self.token:
self.setXsrfToken()
r = self.s.post(“https://www.roblox.com/comments/post”,data = {‘assetId’:assetid,’text’:text}, headers = {“X-CSRF-TOKEN”:self.token})
return r

def joinGroup(self,groupid):
viewpage = self.s.get(“https://www.roblox.com/groups/group.aspx?gid={}”.format(groupid))
roblox resellers best of roblox resellers
soup = BeautifulSoup(viewpage.text,’html.parser’)
params = {
‘__EVENTTARGET’:”JoinGroupDiv”,
‘__EVENTARGUMENT’:”Click”,
‘__LASTFOCUS’:”,
‘__VIEWSTATE’:soup.find(name=”__VIEWSTATE”)[‘value’],
‘__VIEWSTATEGENERATOR’:soup.find(name=”__VIEWSTATEGENERATOR”)[‘value’],
‘__EVENTVALIDATION’:soup.find(name=”__EVENTVALIDATION”)[‘value’],
‘ctl00$cphRoblox$GroupSearchBar$SearchKeyword’:”Search all groups”,
‘ctl00$cphRoblox$rbxGroupRoleSetMembersPane$dlRolesetList’:soup.find(id=”ctl00_cphRoblox_rbxGroupRoleSetMembersPane_dlRolesetList”).find(selected=”selected”)[‘value’],
roblox resellers informational roblox resellers
‘ctl00$cphRoblox$rbxGroupRoleSetMembersPane$RolesetCountHidden’:soup.find(id=”ctl00_cphRoblox_rbxGroupRoleSetMembersPane_RolesetCountHidden”)[‘value’],
‘ctl00$cphRoblox$rbxGroupRoleSetMembersPane$dlUsers_Footer$ctl01$PageTextBox’:soup.find(id=”ctl00_cphRoblox_rbxGroupRoleSetMembersPane_dlUsers_Footer_ctl01_PageTextBox”)[‘value’],
‘ctl00$cphRoblox$rbxGroupRoleSetMembersPane$currentRoleSetID’:soup.find(id=”ctl00_cphRoblox_rbxGroupRoleSetMembersPane_currentRoleSetID”)[‘value’]
}
r = self.s.post(“https://www.roblox.com/groups/group.aspx?gid={}”.format(groupid), data = params, headers = {‘Content-Type’:’application/x-www-form-urlencoded’})
return r

def reportAbuse(self,userid,category,comment):
view = self.s.get(“https://www.roblox.com/abusereport/UserProfile?id={}”.format(userid))
params = {
roblox resellers best of roblox resellers
‘__RequestVerificationToken’:re.search(‘name=”__RequestVerificationToken” type=”hidden” value=”(.+)”‘,view.text).group(1),
‘ReportCategory’:category,
‘Comment’:comment,
‘Id’:userid,
‘RedirectUrl’:’/Login’,
‘PartyGuid’:”,
‘ConversationId’:”
}
r = self.s.post(“https://www.roblox.com/abusereport/UserProfile?id={}”,data=params)
return r
roblox resellers informational roblox resellers

def getRAP(self,aid, returnv = None):
txt = requests.get(“https://www.roblox.com/asset/{}/sales-data”.format(aid)).json()
value = txt[‘data’][‘AveragePrice’]
if returnv:
returnv[0] += value
else:
return value

def getUserRAP(self,uid):
roblox resellers best of roblox resellers
hats = self.s.get(“https://www.roblox.com/users/inventory/list-json?assetTypeId=8&cursor=&itemsPerPage=999999&pageNumber=1&userId={}”.format(uid)).json()
gear = self.s.get(“https://www.roblox.com/users/inventory/list-json?assetTypeId=19&cursor=&itemsPerPage=999999&pageNumber=1&userId={}”.format(uid)).json()
faces = self.s.get(“https://www.roblox.com/users/inventory/list-json?assetTypeId=18&cursor=&itemsPerPage=999999&pageNumber=1&userId={}”.format(uid)).json()
hatlist = []
gearlist = []
facelist = []
if hats[‘IsValid’] == False:
return None
for hat in hats[‘Data’][‘Items’]:
try:
roblox resellers informational roblox resellers
if hat[‘Product’] and hat[‘Product’][‘IsLimited’] or hat[‘Product’][‘IsLimitedUnique’]:
hatlist.append(hat[‘Item’][‘AssetId’])
except TypeError as e:
pass
for hat in gear[‘Data’][‘Items’]:
try:
if hat[‘Product’] and hat[‘Product’][‘IsLimited’] or hat[‘Product’][‘IsLimitedUnique’]:
gearlist.append(hat[‘Item’][‘AssetId’])
except TypeError as e:
pass
roblox resellers best of roblox resellers
for hat in faces[‘Data’][‘Items’]:
try:
if hat[‘Product’] and hat[‘Product’][‘IsLimited’] or hat[‘Product’][‘IsLimitedUnique’]:
facelist.append(hat[‘Item’][‘AssetId’])
except TypeError as e:
pass
threadarr = []
returnval = [0]
for item in hatlist+gearlist+facelist:
threadarr.append(Thread(target=self.getRAP,args=(item,returnval)))
roblox resellers informational roblox resellers
for thread in threadarr:
thread.start()
for thread in threadarr:
thread.join()
return returnval[0]

def getSellers(self,aid):
return requests.get(“https://www.roblox.com/asset/resellers?productId={}&startIndex=0&maxRows=9999999″.format(self.getItemInfo(aid)[‘ProductId’])).json()

def getSalesData(self,aid):
roblox resellers roblox resellers
return requests.get(“https://www.roblox.com/asset/{}/sales-data”.format(aid)).json()

def snipeLimited(self,aid,desiredprice):
self.token = requests.post(“https://web.roblox.com/api/item.ashx?rqtype=purchase&productID={}&expectedCurrency=1&expectedPrice={}&expectedSellerID={}&userAssetID={}”).headers[‘X-CSRF-TOKEN’]
sellers = self.getSellers(aid)
for seller in sellers[‘data’][‘Resellers’]:
if seller[‘Price’] <= desiredprice:
return requests.post("https://web.roblox.com/api/item.ashx?rqtype=purchase&productID={}&expectedCurrency=1&expectedPrice={}&expectedSellerID={}&userAssetID={}”.format(self.getItemInfo(aid)[‘ProductId’],seller[‘Price’],seller[‘SellerId’],seller[‘UserAssetId’]),headers = {“X-CSRF-TOKEN”:self.token})
return False

roblox resellers check more roblox resellers
def logOut(self):
if not self.token:
self.setXsrfToken()
r = self.s.post(“https://api.roblox.com/sign-out/v1″,headers={‘X-CSRF-TOKEN’:self.token})
return r

## do stuff
roblox resellers

Shoshanna Dresses

Essentials Sell Hand Permission Node

[wprpi][wprpi][wprpi]