Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. """
  2. instabot example
  3.  
  4. Workflow:
  5. Like rescent medias from your timeline feed.
  6. """
  7.  
  8. import argparse
  9. import os
  10. import sys
  11. import time
  12. import random
  13.  
  14.  
  15.  
  16. sys.path.append(os.path.join(sys.path[0], '../'))
  17. from instabot import Bot, utils
  18.  
  19. parser = argparse.ArgumentParser(add_help=True)
  20. parser.add_argument('-u', type=str, help="username")
  21. parser.add_argument('-p', type=str, help="password")
  22. parser.add_argument('-proxy', type=str, help="proxy")
  23. args = parser.parse_args()
  24.  
  25. f = open('setting.txt')
  26. lines = f.readlines()
  27. setting_0 = int(lines[0].strip())
  28. setting_1 = int(lines[1].strip())
  29. setting_2 = int(lines[2].strip())
  30. setting_3 = int(lines[3].strip())
  31. setting_4 = int(lines[4].strip())
  32. setting_5 = int(lines[5].strip())
  33. setting_6 = int(lines[6].strip())
  34. setting_7 = int(lines[7].strip())
  35. setting_8 = int(lines[8].strip())
  36. setting_9 = int(lines[9].strip())
  37. setting_10 = int(lines[10].strip())
  38. setting_11 = int(lines[11].strip())
  39. setting_12 = int(lines[12].strip())
  40. setting_13 = int(lines[13].strip())
  41. setting_14 = int(lines[14].strip())
  42. setting_15 = int(lines[15].strip())
  43. setting_16 = int(lines[16].strip())
  44. setting_17 = int(lines[17].strip())
  45. setting_18 = lines[18].strip()
  46.  
  47. bot = Bot(
  48. filter_users=False,
  49. max_likes_per_day=setting_0,
  50. max_unlikes_per_day=setting_1,
  51. max_follows_per_day=setting_2,
  52. max_unfollows_per_day=setting_3,
  53. max_comments_per_day=setting_4,
  54. max_likes_to_like=setting_5,
  55. max_followers_to_follow=setting_6,
  56. min_followers_to_follow=setting_7,
  57. max_following_to_follow=setting_8,
  58. min_following_to_follow=setting_9,
  59. max_followers_to_following_ratio=setting_10,
  60. max_following_to_followers_ratio=setting_11,
  61. min_media_count_to_follow=setting_12,
  62. like_delay=setting_13,
  63. unlike_delay=setting_14,
  64. follow_delay=setting_15,
  65. unfollow_delay=setting_16,
  66. comment_delay=setting_17,
  67. filter_previously_followed=True,
  68. stop_words=[
  69. 'order',
  70. 'shop',
  71. 'store',
  72. 'free',
  73. 'doodleartindonesia',
  74. 'doodle art indonesia',
  75. 'fullofdoodleart',
  76. 'commission',
  77. 'vector',
  78. 'karikatur',
  79. 'jasa',
  80. 'open'])
  81.  
  82. c_stop = [ '@', '#' ]
  83.  
  84. bot.login(username=args.u, password=args.p,
  85. proxy=args.proxy)
  86.  
  87.  
  88. while True:
  89. liked = []
  90. amount = 15
  91. medias = bot.get_timeline_medias(filtration=False)
  92.  
  93. print ("Got %d medias" % len(medias))
  94.  
  95. if medias:
  96. print("Found %d medias" % len(medias))
  97. for media in medias:
  98. usr = bot.get_media_owner(media)
  99. usr_i = bot.get_user_info(usr)
  100. if 'username' in usr_i:
  101. uname = usr_i['username']
  102. else:
  103. uname = "unknown"
  104. print("\nUser %s (%s), Flwrz: [%d], Media %d" % (uname, usr, usr_i['follower_count'], media))
  105. if usr_i['follower_count'] < bot.min_followers_to_follow and not 'scottish' in uname and not 'fold' in uname:
  106. print("Too few followers")
  107. else:
  108. comms = bot.get_media_comments_all(media, count=random.randint(85,115))
  109. print("Found %d comments" % len(comms))
  110. cmm = 0
  111. for comm in comms:
  112. if 'has_liked_comment' in comm:
  113. if comm['has_liked_comment'] == False:
  114. has_stops = False
  115. for stop_word in c_stop:
  116. if stop_word in comm['text'].lower():
  117. has_stops = True
  118. u = "n/a"
  119. if 'user' in comm:
  120. uu = comm['user']
  121. if 'username' in uu:
  122. u = uu['username']
  123. uid = comm['user_id']
  124. toskip = 0
  125. skipmes = ''
  126. if has_stops:
  127. toskip = 1
  128. skipmes = "Stop Words"
  129. if uid == usr:
  130. toskip = 2
  131. skipmes = "Owner"
  132. if toskip == 0:
  133. cmm = cmm + 1
  134. bot.logger.info("[%d] Like: %s: %s" % (cmm, u, comm['text']))
  135. bot.like_comment(comm['pk'])
  136. liked.append(uid)
  137. time.sleep(random.randint(3, 20))
  138. else:
  139. bot.logger.info("[Skip: %s]: %s: %s" % (skipmes, u, comm['text']))
  140. else:
  141. liked.append(comm['user_id'])
  142. # print("Liked")
  143. if cmm >= amount:
  144. bot.logger.info("Reached %d limit" % amount)
  145. break
  146. if cmm > 0:
  147. bot.logger.info("Liked %d comments, waiting a few..." % cmm)
  148. time.sleep(5)
  149. wait = 50 # in seconds
  150. bot.logger.info("Sleeping %d seconds..." % wait)
  151. for x in range(wait, 0, -1):
  152. if (x % 10) == 0:
  153. print(x)
  154. time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement