Ejemplo n.º 1
0
 def repeat_session(self, args):
     print("Sleep for {} minutes".format(self.repeat))
     try:
         sleep(60 * self.repeat)
         return refresh_args_by_conf_file(args, self.next_config_file)
     except KeyboardInterrupt:
         print_full_report(self.sessions)
         sys.exit(0)
Ejemplo n.º 2
0
 def repeat_session(self, args):
     print("Sleep for {} minutes".format(self.repeat))
     try:
         sleep(60 * self.repeat)
         refresh_args_by_conf_file(args)
     except KeyboardInterrupt:
         print_full_report(self.sessions)
         self.sessions.persist(self.session_state.my_username)
         sys.exit(0)
Ejemplo n.º 3
0
    def end_session(self, device_wrapper):
        close_instagram(device_wrapper.device_id, device_wrapper.app_id)
        print_copyright()
        self.session_state.finishTime = datetime.now()
        print_timeless(COLOR_REPORT + "-------- FINISH: " + str(self.session_state.finishTime) + " --------" + COLOR_ENDC)

        print_full_report(self.sessions)
        print_timeless("")
        self.sessions.persist(self.session_state.my_username)
Ejemplo n.º 4
0
    def end_session(self, device_wrapper):
        close_instagram(device_wrapper.device_id, device_wrapper.app_id)
        if __version__.__debug_mode__:
            device_wrapper.get().stop_screen_record()
        print_copyright()
        self.session_state.finishTime = datetime.now()
        print_timeless(COLOR_REPORT + "-------- FINISH: " + str(self.session_state.finishTime) + " --------" + COLOR_ENDC)

        print_full_report(self.sessions)
        print_timeless("")
        self.sessions.persist(self.session_state.my_username)
Ejemplo n.º 5
0
    def run(self):
        args, device_wrapper, app_version = self.parse_args_and_get_device_wrapper(
        )
        if args is None or device_wrapper is None:
            return

        if not args.no_speed_check:
            print(
                "Checking your Internet speed to adjust the script speed, please wait for a minute..."
            )
            print("(use " + COLOR_BOLD + "--no-speed-check" + COLOR_ENDC +
                  " to skip this check)")
            sleeper.update_random_sleep_range()

        while True:
            self.set_session_args(args)

            action_runner = self.actions_mgr.select_action_runner(args)

            if action_runner is None:
                return

            action_runner.set_params(args)
            self.limits_mgr.set_limits(args)

            try:
                self.start_session(args, device_wrapper, app_version)
                self.storage = Storage(self.session_state.my_username, args)

                action_runner.run(device_wrapper, self.storage,
                                  self.session_state, self.on_action_callback,
                                  self.limits_mgr.is_limit_reached_for_action)
            except ActionBlockedError as ex:
                print_timeless("")
                print_timeless(COLOR_FAIL + str(ex) + COLOR_ENDC)
                self.end_session(device_wrapper)
                return
            except Exception as ex:
                if __debug_mode__:
                    raise ex
                else:
                    print_timeless(COLOR_FAIL +
                                   f"\nCaught an exception:\n{ex}" +
                                   COLOR_ENDC)
                    save_crash(device_wrapper.get(), ex)

            self.end_session(device_wrapper)
            if self.repeat is not None:
                self.repeat_session(args)
            else:
                break

        print_full_report(self.sessions)
        self.sessions.persist(directory=self.session_state.my_username)
Ejemplo n.º 6
0
    def end_session(self, device_wrapper, with_app_closing=True):
        if with_app_closing:
            close_instagram_and_system_dialogs(device_wrapper.get())
        if __version__.__debug_mode__:
            device_wrapper.get().stop_screen_record()
        print_copyright()
        self.session_state.end_session()
        print_timeless(COLOR_REPORT + "-------- FINISH: " + str(self.session_state.finishTime) + " --------" + COLOR_ENDC)

        print_full_report(self.sessions)
        print_timeless("")
Ejemplo n.º 7
0
    def run(self):
        args, device_wrapper = self.parse_args_and_get_device_wrapper()

        while True:
            if args is None or device_wrapper is None:
                return

            self.set_session_args(args)

            action_runner = self.actions_mgr.select_action_runner(args)

            if action_runner is None:
                return

            action_runner.set_params(args)
            self.limits_mgr.set_limits(args)

            try:
                self.start_session(args, device_wrapper)
                self.storage = Storage(self.session_state.my_username, args)

                action_runner.run(device_wrapper, self.storage,
                                  self.session_state, self.on_action_callback,
                                  self.limits_mgr.is_limit_reached_for_action)

                self.end_session(device_wrapper)
            except ActionBlockedError as ex:
                print_timeless("")
                print_timeless(COLOR_FAIL + str(ex) + COLOR_ENDC)
                return
            except Exception as ex:
                if __debug_mode__:
                    raise ex
                else:
                    print_timeless(COLOR_FAIL +
                                   f"\nCaught an exception:\n{ex}" +
                                   COLOR_ENDC)
                    save_crash(device_wrapper.get())

            if self.repeat is not None:
                self.repeat_session(args)
            else:
                break

        print_full_report(self.sessions)
        self.sessions.persist(directory=self.session_state.my_username)
Ejemplo n.º 8
0
 def wrapper(*args, **kwargs):
     from insomniac.session import sessions
     session_state = sessions[-1]
     try:
         func(*args, **kwargs)
     except KeyboardInterrupt:
         close_instagram(device_wrapper.device_id)
         print_copyright()
         print_timeless(COLOR_REPORT + "-------- FINISH: " +
                        str(datetime.now().time()) + " --------" +
                        COLOR_ENDC)
         print_full_report(sessions)
         sessions.persist(directory=session_state.my_username)
         sys.exit(0)
     except (DeviceFacade.JsonRpcError, IndexError, HTTPException,
             timeout) as ex:
         print(COLOR_FAIL + traceback.format_exc() + COLOR_ENDC)
         save_crash(device_wrapper.get(), ex)
         print("No idea what it was. Let's try again.")
         # Hack for the case when IGTV was accidentally opened
         close_instagram(device_wrapper.device_id)
         sleeper.random_sleep()
         open_instagram(device_wrapper.device_id)
         sleeper.random_sleep()
         navigate(device_wrapper.get(), Tabs.PROFILE)
     except LanguageChangedException:
         print_timeless("")
         print(
             "Language was changed. We'll have to start from the beginning."
         )
         navigate(device_wrapper.get(), Tabs.PROFILE)
     except Exception as e:
         save_crash(device_wrapper.get(), e)
         close_instagram(device_wrapper.device_id)
         print_full_report(sessions)
         sessions.persist(directory=session_state.my_username)
         raise e