Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import json
- import random
- import re
- import time
- class Gramblrscripter:
- def __init__(self):
- self.localhost_url="http://localhost.gramblr.com:4343"
- self.earn_coins_url="http://localhost.gramblr.com:4343/api/gen_list_likes/didzislauva"
- self.gramblr_url="http://localhost.gramblr.com:4343/api/users/current_identity"
- self.add_likes_url="http://localhost.gramblr.com:4343/api/add_likes"
- self.give_like_url="http://localhost.gramblr.com:4343/api/send_likes"
- self.h_language="en-US,en;q=0.8,lv;q=0.6"
- self.h_useragent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36"
- self.h_cookie="gramblr.sessid=S_-puNAnE0jlhyAitQsYvzJvmLI4J5OMfcnqYFcVCUSiGYRJC5DNMbW3lKm2eEFw9j_Pw-VReMkShfEUR0g7T4Ng"; \
- "IsMember=1;"\
- "_ga=GA1.2.956286745.1516910888" \
- "validate_didzislauva=1; " \
- "NG_TRANSLATE_LANG_KEY=%22en%22"
- self.h_connection="keep-alive' --compressed"
- self.h_encoding="gzip, deflate, sdch"
- self.h_accept="application/json, text/plain, */*"
- self.users=[]
- self.incomingString=""
- self.payload=""
- self.results=""
- self.liste=""
- self.coins=0
- def POST_list(self):
- """
- Does POST request with JSON edited list
- """
- headers = {
- "Accept":"application/json, text/plain, */*",
- "Accept-Encoding":"gzip, deflate",
- "Accept-Language":"en-US,en;q=0.8,lv;q=0.6",
- "Connection":"keep-alive",
- "Content-Length":439,
- "Content-Type":"application/json;charset=UTF-8",
- "Cookie":self.h_cookie,
- "Host":"localhost.gramblr.com:4343",
- "Origin":self.localhost_url,
- "Referer":self.localhost_url+"/"
- }
- values=self.liste
- results = requests.post(self.give_like_url,values,headers=headers)
- print "POST LIST status code: \t\t\t| \t",results.status_code
- def gramblr_req(self):
- """
- Does GET request to get basic info of user
- """
- headers = {
- "Accept-Encoding":self.h_encoding,
- "Accept-Language":self.h_language,
- "User-Agent":self.h_useragent,
- "Accept":"application/json, text/plain, */*",
- "Referer":self.localhost_url,
- "Cookie":self.h_cookie,
- "Connection":self.h_connection
- }
- try:
- results = requests.get(self.gramblr_url, headers=headers)
- self.coins=json.loads(results._content)["coins"]
- print "Amount of coins: \t\t\t\t|\t", json.loads(results._content)["coins"]
- except:
- print "unable to load"
- self.gramblr_req()
- def pickIGfromFile(self,fname):
- #fname='iglinks.txt'
- with open(fname) as f:
- content = f.readlines()
- content = [x.strip() for x in content]
- content=random.choice(content)
- links=content
- p=re.compile("(https?:\/\/(www\.)?)?instagram\.com(\/p\/[a-zA-Z0-9_-]*\/?)")
- igLinkEnd= p.findall(content)[0][2][3:-1]
- headers = {
- "Accept-Encoding":self.h_encoding,
- "Accept-Language":self.h_language,
- "User-Agent":self.h_useragent,
- "Accept":"application/json, text/plain, */*",
- "Referer":self.localhost_url,
- "Cookie":self.h_cookie,
- "Connection":self.h_connection
- }
- try:
- results=requests.get("http://localhost.gramblr.com:4343/img_url/"+igLinkEnd,headers=headers)
- self.igUser=json.loads(results._content)
- self.igUser["links"]=links
- except:
- print "unable to select from instagram"
- self.pickIGfromFile(fname)
- def POST_like(self,fname):
- """
- Does POST request 'like' to particular user,media_pk,user_pk
- """
- headers = {
- "Origin":self.localhost_url,
- "Accept-Encoding":"gzip, deflate",
- "Accept-Language":self.h_language,
- "User-Agent":self.h_useragent,
- "Content-Type": "application/json;charset=UTF-8",
- "Accept":self.h_accept,
- "Referer":self.localhost_url,
- "Cookie":self.h_cookie,
- "Connection":self.h_connection
- }
- self.pickIGfromFile(fname)
- try:
- print "lucky one - ", self.igUser["username"]
- values='{"ig_user":"didzislauva",' \
- '"likes_qty":1,' \
- '"local_likes":false,' \
- '"media_pk":"'+self.igUser["media_pk"]+'",' \
- '"user_pk":'+str(self.igUser["user_pk"])+'}'
- print self.igUser
- results = requests.post(self.add_likes_url,values,headers=headers)
- print "POST like status code: \t\t\t|\t", results.status_code
- except:
- print "once more - something wrong with link"
- self.POST_like(fname) #recursion
- def GET_list(self):
- """
- Does GET request from 'gen_likes'
- Prepares and returns JSON string from first to self.results
- """
- headers = {
- "Accept-Encoding":"gzip, deflate, sdch",
- "Accept-Language":self.h_language,
- "User-Agent":self.h_useragent,
- "Accept":"application/json, text/plain, */*",
- "Referer":self.localhost_url,
- "Cookie":self.h_cookie,
- "Connection":self.h_connection
- }
- results={}
- results["list"]=False
- try:
- counter=0
- while not results["list"]:
- results = requests.get(self.earn_coins_url, headers=headers)
- self.results=results
- localtime = time.asctime( time.localtime(time.time()) )
- counter=counter+1
- print "GET LIST status code: \t\t\t|\t", results.status_code, localtime, "\t|\t",counter #, results._content,
- results=json.loads(results._content)
- time.sleep(1)
- fullstrings=""
- iterstrings=iter(results["list"])
- print "Amount of loaded images: \t\t|\t", len(results["list"])
- for each in iterstrings:
- fullstrings=fullstrings+'{"id":'+str(each["id"])+'},'
- self.liste='{"liked":[],"skipped":[],"ignored":['+fullstrings[:-1]+'],"ig_user":"didzislauva"}'
- #print self.liste
- self.results= self.results._content
- except:
- print "unable to load"
- self.GET_list()
- try:
- outF=open("myOutFile.txt","r+")
- userlist=set(str(line.strip()) for line in outF)
- outF.close()
- #prepare userlist
- for counter, each in enumerate(results["list"]):
- print counter+1,":\t|\t","user id: \t", each["details"]["user_pk"],"\t| picture id: \t", each["details"]["ig_likes_ask_id"],"| username: \t",each["details"]["username"]
- userlist.add(str(each["details"]["username"]))
- userlist=sorted(userlist)
- outF=open("myOutFile.txt","r+")
- #write users back in file
- for each in userlist:
- outF.write(each)
- outF.write("\n")
- outF.close()
- #print a
- except:
- print "unable to load list"
- pass
- if __name__=="__main__":
- print "main"
- import time
- G = Gramblrscripter()
- G.gramblr_req()
- coins_b=G.coins
- ii=1000
- for i in range(ii):
- print ""
- print "-------- ",i+1, " out of ", ii," --------------------"
- print "-------- ielade listi"
- G.GET_list() #ielaadee listi 1 #GET
- #time.sleep(1)
- print ""
- print "-------- nolaiko bildi"
- G.POST_like('iglinks.txt') #nolaiko bildi #LIKEPOST
- #time.sleep(1)
- print ""
- print "-------- aizsuta listi"
- G.POST_list() #noposto listi #POST
- print ""
- print ""
- print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- #time.sleep(1)
- G.gramblr_req()
- coins_e=G.coins
- print "gained likes: \t\t\t\t\t|\t", (coins_e-coins_b)/10
- print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- print ""
- print ""
- print time.asctime( time.localtime(time.time()) )
- coins_b=coins_e
- #time.sleep(1)
Add Comment
Please, Sign In to add comment