def __init__(self, username='', password='', get_dialogs_interval=60): self.delay_on_reply = config.get('vkbot_timing.delay_on_reply', 'i') self.chars_per_second = config.get('vkbot_timing.chars_per_second', 'i') self.same_user_interval = config.get('vkbot_timing.same_user_interval', 'i') self.same_conf_interval = config.get('vkbot_timing.same_conf_interval', 'i') self.forget_interval = config.get('vkbot_timing.forget_interval', 'i') self.delay_on_first_reply = config.get( 'vkbot_timing.delay_on_first_reply', 'i') self.stats_dialog_count = config.get('stats.dialog_count', 'i') self.no_leave_conf = config.get('vkbot.no_leave_conf', 'b') self.api = vkapi.VkApi(username, password, ignored_errors=ignored_errors, timeout=config.get( 'vkbot_timing.default_timeout', 'i'), token_file=accounts.getFile('token.txt'), log_file=accounts.getFile('inf.log') if args.args['logging'] else '', captcha_handler=createCaptchaHandler()) stats.update('logging', bool(self.api.log_file)) # hi java self.users = UserCache( self.api, self.fields + ',' + FriendController.requiredFields(_getFriendControllerParams()), config.get('cache.user_invalidate_interval', 'i')) self.confs = ConfCache( self.api, config.get('cache.conf_invalidate_interval', 'i')) self.vars = json.load(open('data/defaultvars.json', encoding='utf-8')) self.vars['default_bf'] = self.vars['bf']['id'] self.initSelf(True) self.guid = int(time.time() * 5) self.last_viewed_comment = stats.get('last_comment', 0) self.good_conf = {} self.tm = ThreadManager() self.last_message = MessageCache() if os.path.isfile(accounts.getFile('msgdump.json')): try: data = json.load(open(accounts.getFile('msgdump.json'))) self.last_message.load(data['cache']) self.api.longpoll = data['longpoll'] except json.JSONDecodeError: logging.warning('Failed to load messages') os.remove(accounts.getFile('msgdump.json')) else: logging.info('Message dump does not exist') self.bad_conf_title = lambda s: False self.admin = None self.banned_list = [] self.message_lock = threading.Lock() self.banned = set() self.receiver = MessageReceiver(self.api, get_dialogs_interval) self.receiver.longpoll_callback = self.longpollCallback