def user_test(wholeTree=True): patrik = User() patrik.login("patrikch", "123456") print(patrik.is_logged) print(str(patrik)) tree = patrik.project_tree printTree(tree)
def user_test(wholeTree=True): patrik = User() patrik.login("patrikch","123456") print(patrik.is_logged) print(str(patrik)) tree = patrik.project_tree printTree(tree)
def test_user_project_tree(self): """User folder-project tree should be different""" patrik = User() patrik.login("patrikch","123456") tree = patrik.project_tree self.assertEqual(1,len(tree)) self.assertEqual("root",tree[0].name) self.assertEqual(4,len(tree[0].children)) self.assertEqual("d",tree[0].children[0].type) self.assertEqual("d",tree[0].children[1].type) self.assertEqual("d",tree[0].children[2].type) self.assertEqual("p",tree[0].children[3].type) self.assertEqual(6,len(tree[0].children[0].children)) self.assertEqual("d",tree[0].children[0].children[0].type) self.assertEqual("d",tree[0].children[0].children[1].type) self.assertEqual("p",tree[0].children[0].children[2].type) self.assertEqual("p",tree[0].children[0].children[3].type) self.assertEqual("p",tree[0].children[0].children[4].type) self.assertEqual("p",tree[0].children[0].children[5].type)
def test_user_project_tree(self): """User folder-project tree should be different""" patrik = User() patrik.login("patrikch", "123456") tree = patrik.project_tree self.assertEqual(1, len(tree)) self.assertEqual("root", tree[0].name) self.assertEqual(4, len(tree[0].children)) self.assertEqual("d", tree[0].children[0].type) self.assertEqual("d", tree[0].children[1].type) self.assertEqual("d", tree[0].children[2].type) self.assertEqual("p", tree[0].children[3].type) self.assertEqual(6, len(tree[0].children[0].children)) self.assertEqual("d", tree[0].children[0].children[0].type) self.assertEqual("d", tree[0].children[0].children[1].type) self.assertEqual("p", tree[0].children[0].children[2].type) self.assertEqual("p", tree[0].children[0].children[3].type) self.assertEqual("p", tree[0].children[0].children[4].type) self.assertEqual("p", tree[0].children[0].children[5].type)
def _login(self, *args): """登陆函数""" data_header = args[0] username = data_header["username"] password = data_header["password"] ret = User.login(username, password) if ret["status"] == 654: self.user["type"] = "用户" self.user["user_id"] = ret["obj"].id self.user["user_path"] = ret["obj"].home_path self.send_msg(ret["status"])
def _login(self, conn, data_header): """登陆功能""" username = data_header["username"] password = data_header["password"] ret = User.login(username, password, action_logger) if ret["status"] == 654: self.user_info[conn] = {} self.user_info[conn]["obj"] = ret["obj"] home_path = os.path.join(settings.USER_DIRECTORY_DIR, ret["obj"].username) self.user_info[conn]["home"] = home_path self.send_msg(conn, ret["status"])
def test_user_was_logged(self): """User should has been logged""" patrik = User() patrik.login("patrikch","123456") self.assertEqual(True,patrik.is_logged)
class InstaBot(object): """ Instagram bot v 1.0 like_per_day=1000 - How many likes set bot in one day. media_max_like=10 - Don't like media (photo or video) if it have more than media_max_like likes. media_min_like=0 - Don't like media (photo or video) if it have less than media_min_like likes. tag_list = ['cat', 'car', 'dog'] - Tag list to like. max_like_for_one_tag=5 - Like 1 to max_like_for_one_tag times by row. log_mod = 0 - Log mod: log_mod = 0 log to console, log_mod = 1 log to file, log_mod = 2 no log. https://github.com/LevPasha/instabot.py """ # List of user_id, that bot follow bot_follow_list = [] # Other. media_by_tag = 0 # For new_auto_mod next_iteration = {"Like": 0, "Follow": 0, "Unfollow": 0, "Comments": 0} def __init__(self, login, password, like_per_day=1000, media_max_like=10, media_min_like=0, follow_per_day=0, follow_time=5 * 60 * 60, unfollow_per_day=0, comments_per_day=0, tag_list=['cat', 'car', 'dog'], max_like_for_one_tag=5, log_mod=0): super(InstaBot, self).__init__() self.time_in_day = 24 * 60 * 60 # Like self.like_per_day = like_per_day if self.like_per_day != 0: self.like_delay = self.time_in_day / self.like_per_day # Follow self.follow_time = follow_time self.follow_per_day = follow_per_day if self.follow_per_day != 0: self.follow_delay = self.time_in_day / self.follow_per_day # Unfollow self.unfollow_per_day = unfollow_per_day if self.unfollow_per_day != 0: self.unfollow_delay = self.time_in_day / self.unfollow_per_day # Comment self.comments_per_day = comments_per_day if self.comments_per_day != 0: self.comments_delay = self.time_in_day / self.comments_per_day # Don't like if media have more than n likes. self.media_max_like = media_max_like # Don't like if media have less than n likes. self.media_min_like = media_min_like # Auto mod seting: # Default list of tag. self.tag_list = tag_list # Get random tag, from tag_list, and like (1 to n) times. self.max_like_for_one_tag = max_like_for_one_tag self.media_by_tag = [] log_string = 'Insta Bot v1.1 start at %s:' % \ (datetime.datetime.now().strftime("%d.%m.%Y %H:%M")) logger.info(log_string) session = requests.Session() # create a new user and log the user into the session self.user = User(session, login, password) self.user.login() self.API = API(self.user) signal.signal(signal.SIGTERM, self.cleanup) atexit.register(self.cleanup) def cleanup(self): # Unfollow all bot follow if len(self.bot_follow_list) > 0: for f in self.bot_follow_list: log_string = "Try to unfollow: %s" % (f[0]) logger.info(log_string) self.API.unfollow(f[0]) self.bot_follow_list.remove(f) # Logout if self.user.login_status: self.user.logout() def new_auto_mod(self): # ------------------- Get media_id ------------------- if len(self.media_by_tag) == 0: self.media_by_tag = self.API.get_media_id_by_tag(random.choice(self.tag_list)) media = Media(self.user, self.tag_list) # ------------------- Like ------------------- like_bot = LikeBot(self.user, media, self.media_max_like, self.media_min_like) like_bot.run(3) # ------------------- Follow ------------------- follow_bot = FollowBot(self.user, media) follow_bot.run(3) # ------------------- Comment ------------------- comment_maker = CommentMaker() comment_bot = CommentBot(self.user, media, comment_maker) comment_bot.run(3) # ------------------- Unfollow All ------------------- self.new_auto_mod_unfollow() # ------------------- Unfollow Non Folbacks ------------------- # self.new_auto_mod_unfollow() # Bot iteration in 1 sec # print("Tic!") def new_auto_mod_unfollow(self): if time.time() > self.next_iteration["Unfollow"] and \ self.unfollow_per_day != 0 and len(self.bot_follow_list) > 0: for f in self.bot_follow_list: if time.time() > (f[1] + self.follow_time): log_string = "Try to unfollow: %s" % (f[0]) logger.info(log_string) if self.API.unfollow(f[0]): self.bot_follow_list.remove(f) self.next_iteration["Unfollow"] = time.time() + self.add_time(self.unfollow_delay) def add_time(self, time): """ Make some random for next iteration""" return time * 0.9 + time * 0.2 * random.random()
def test_user_was_logged(self): """User should has been logged""" patrik = User() patrik.login("patrikch", "123456") self.assertEqual(True, patrik.is_logged)