Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # _*_ coding:ascii _*_
- from termcolor import colored as c
- from getpass import getpass
- from requests import get, post, Session as session
- from json import loads
- import os
- import re
- import subprocess
- import imghdr
- import requests
- #
- class account:
- username = 'V_ext' # Your account username.
- password = 'blankbot' # Your account password.
- group = '' # Leave this at blank if you don't want to upload to group.
- price = 0 # Leave this at 0 if you don't want to sell.
- #
- d_session = session()
- d_title = 'Shirter V1'
- d_title_2 = 'by '
- d_creator = '@DominusTrexV2'
- d_color_1 = 'green'
- d_color_2 = 'white'
- #
- requests.packages.urllib3.disable_warnings()
- #
- def login(u = account.username, p = account.password, s = d_session):
- captcha_message = 'Please fill out the CAPTCHA correctly'
- success_message = 'Update Status'
- bad_message = 'Wrong username or password'
- twofa_message = 'Please enter the Identification code.'
- r = s.post('https://m.roblox.com/login', verify = False, data = {'UserName':u,'Password':p})
- if captcha_message and 'keep in touch' in r.content:
- return 'CAPTCHA'
- elif success_message in r.content:
- return 'SUCCESS'
- elif twofa_message in r.content:
- return '2FA'
- elif bad_message and 'keep in touch' in r.content:
- return 'BAD'
- def clear():
- if os.name == 'nt' or os.name == 'dos':
- os.system('cls')
- elif os.name == 'linux' or os.name == 'osx' or os.name == 'posix':
- os.system('clear')
- else:
- print ('\n' * 120)
- def title():
- print c(d_title, d_color_1).center(50)
- print (c(d_title_2, d_color_1) + c(d_creator, d_color_2)).center(58)
- print ''
- def upload(data, name, typeid, ses = d_session):
- datatype = imghdr.what(None, data)
- rvt = re.findall('Token.+value?=?\"(.+)\"', ses.get('https://www.roblox.com/build/upload').content)[0]
- ses.post('https://www.roblox.com/build/upload', data = {
- '__RequestVerificationToken': rvt,
- 'assetTypeId': typeid,
- 'isOggUploadEnabled': 'True',
- 'isTgaUploadEnabled': 'True',
- 'groupId': account.group,
- 'onVerificationPage': 'False',
- 'name': name
- }, files = {
- 'file': ('template.' + datatype, data, 'image/' + datatype)
- }, verify = False)
- #
- def main():
- clear()
- title()
- if account.username == '' or account.password == '':
- print c('Username or password not set, please enter account info below.', 'yellow')
- account.username = raw_input('Username: ')
- account.password = getpass('Password: ')
- else:
- print c('Account details already set...', 'green')
- print c('Logging into account...', 'green')
- attempt = login()
- if attempt == 'CAPTCHA':
- print c('Captcha detected, please fill it out in the link below and press enter:', 'red')
- print 'https://www.roblox.com/Login/iFrameLogin.aspx'
- raw_input()
- main()
- elif attempt == 'BAD':
- print c('Bad username or password, press enter to try again', 'red')
- account.username = ''
- account.password = ''
- raw_input()
- main()
- elif attempt == '2FA':
- print c('It looks like you have enabled Two Factor Authentication on your account, please disable it and press enter.', 'yellow')
- raw_input()
- main()
- elif attempt == 'SUCCESS':
- def main2():
- clear()
- title()
- print c('Enter asset ID\'s to copy seperated by commas:', 'yellow')
- ids = raw_input().split(',')
- for aid in ids:
- ainfo = re.sub(r'[^\x00-\x7f]', r'', d_session.get('https://api.roblox.com/Marketplace/ProductInfo?assetId=' + aid, verify=False).content)
- ainfo = loads(ainfo)
- aname = ainfo['Name']
- atid = ainfo['AssetTypeId']
- print c('Copying \'' + c(ainfo['Name'], 'white') + c('\' created by ', 'green') + c(ainfo['Creator']['Name'], 'white') + c('.', 'green'), 'green')
- tid = re.findall('\?id=(.+)</url', d_session.get('https://www.roblox.com/asset?id='+aid, verify=False).content)[0]
- templatereq = d_session.get('https://www.roblox.com/asset?id=' + tid, stream=True, verify=False)
- template = templatereq.content
- upload(template, aname, atid)
- main2()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement