##############################################################################
# save this script to peerbetsatoshibot.py #
# #
# TO RUN IT USE THIS CODE #
# python -u peerbetsatoshibot.py USERNAME PASSWORD #
# PLEASE DONATE SOME TO: 1FpHgWtpQ5bynPpvNXsWbDQNqv6zWJgBv7 #
##############################################################################
import cookielib, urllib2,urllib,random,time,sys,traceback,StringIO,gzip
def call(opener,url,params=None):
time.sleep(1)
url=url+'&compress=1'
if params is not None:
uri=url+"&"+params
else: uri=url
try:
opener.addheaders=[("Accept-Encoding", "gzip")]
# print uri
f=opener.open(uri)
response=f.read()
except urllib2.URLError:
time.sleep(random.uniform(1,5))
return call(opener,url,params)
read=f.info().getheader("Content-Encoding")
if read=='gzip':
sio = StringIO.StringIO(response)
sio.seek(0)
gz=gzip.GzipFile(None,mode='rb',fileobj=sio)
response= gz.read()
gz.close()
sio.close()
# print response
if response is None:
return call(opener,url,params)
else:
try:
read=eval(response)
except:
print '>>> traceback <<<'
traceback.print_exc()
print '>>> end of traceback <<<'
time.sleep(random.uniform(1,5))
return call(opener,url,params)
error=None
try:
error= read['error']
print "|",error,"|"
except:
return read
if 'limit' in str(error):
time.sleep(random.uniform(1,5))
return call(opener,url,params)
else: raise NameError(error)
def login(opener):
global password
global username
params = urllib.urlencode({'username': username, 'password': password})
print "login",call(opener,'https://peerbet.org/api.php?method=login',params)
if sys.argv[1] is not None: username=sys.argv[1]
if sys.argv[2] is not None: password=sys.argv[2]
while True:
try:
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
params = urllib.urlencode({'username': username, 'password': password})
print call(opener,"https://peerbet.org/api.php?method=login",params)
params = urllib.urlencode({'message': 'satoshi'})
message=call(opener,"https://peerbet.org/api.php?method=postchatmessage",params)
print message['message_id'];
except:
print '>>> traceback <<<'
traceback.print_exc()
print '>>> end of traceback <<<'
time.sleep(random.uniform(60*60,2*60*60))