def func(self): try: f = codecs.open('DB\\languages.txt', 'r', 'utf-8') t = eval(f.read()) f.close() if self.mode == '+': if str(self.text) in t: u = str(UEngine.get_username_by_id(self.user)) if not u in t[str(self.text)]: f = codecs.open('DB\\languages.txt', 'w', 'utf-8') t[str(self.text)].append(u) f.write(str(t)) f.close() self.result[ 'message'] = f'Теперь {u} знает {str(self.text)}' else: self.result['message'] = 'Уже есть.' else: self.result[ 'message'] = f'Введите корректный ЯП: ' + ', '.join( [i for i in t]) elif self.mode == '-': if str(self.text) in t: u = str(UEngine.get_username_by_id(self.user)) if u in t[str(self.text)]: f = codecs.open('DB\\languages.txt', 'w', 'utf-8') t[str(self.text)].remove(u) f.write(str(t)) f.close() self.result[ 'message'] = f'Теперь {u} не знает {str(self.text)}' else: self.result['message'] = 'Ты не знаешь этот язык.' else: if str(self.text) in t: self.result['message'] = ', '.join(t[str(self.text)]) else: s = [i for i in t] self.result['message'] = '\n'.join([ (i + ': ' + ', '.join(t[i])) for i in s ]) return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: message = UEngine.get_message_by_id(self.message) if 'fwd_messages' in message['items'][0]: _str = UEngine.get_username_by_id(message['items'][0]['user_id']) + ' пожаловался на ' + \ UEngine.get_username_by_id(message['items'][0]['fwd_messages'][0]['user_id']) + ': "' + \ message['items'][0]['fwd_messages'][0]['body'] + '"' # Log.show_info(_str) f = open('DB\\report.txt', 'a') f.write(_str + '\n') f.close() self.result['message'] = f'Report for ' \ f'{UEngine.get_link_by_id(message["items"][0]["fwd_messages"][0]["user_id"])}'\ f' submitted, report id {message["items"][0]["id"] * 1177647263131337}.' else: self.result[ 'message'] = 'Пожаловаться можно только на сообщение' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: user_id = self.text if 'id' in user_id: user_id = user_id[2:len(user_id)] if not int(user_id) in db.black: if UEngine.user_exist_in_chat(user_id): self.result['message'] = 'Этот пользователь уже в беседе' elif not UEngine.user_exist_in_friends(user_id): self.result['message'] = 'Этот пользователь должен быть у меня в друзьях' else: VK().Messages().add_chat_user(user_id=user_id) self.result['message'] = UEngine.get_username_by_id(user_id=user_id) + ' приглашен.' Log.show_info(str(UEngine.get_username_by_id(UEngine.get_user_id_by_message(self.message))) + 'пытался пригласить ' + UEngine.get_username_by_id(user_id)) else: self.result['message'] = 'Этот пользователь находится в чс.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: user_id = self.text if 'id' in str(user_id): user_id = user_id[2:len(user_id)] else: user_id = UEngine.get_user_id(user_id) if int(user_id) in db.privilege: self.result['message'] = 'Нельзя кикнуть привилегированного.' elif UEngine.user_exist_in_chat(user_id): VK().Messages().remove_chat_user(user_id=user_id) self.result['message'] = UEngine.get_username_by_id( user_id) + ' кикнут.' else: self.result['message'] = 'Такого пользователя нет в беседе.' Log.show_info( str( UEngine.get_username_by_id( UEngine.get_user_id_by_message(self.message))) + 'пытался кикнуть ' + UEngine.get_username_by_id(user_id)) return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: followers = VK().Users().get_followers()['items'] users = f'[{len(followers)}] Принятые заявки:\n' if len(followers): i = 0 for user in followers: VK().Friends().add(user_id=user) users += str(i + 1) + '. ' + UEngine.get_username_by_id( user) + '\n' i += 1 self.result['message'] = users else: self.result['message'] = 'Подписчиков не обнаруженно.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: users = VK().Messages().get_chat()['users'] _str = 'Пользователи, найденые в чс:\n' index = 0 for _user in users: if int(_user) in db.black: index += 1 _str += str(index) + '. ' + UEngine.get_username_by_id( _user) + '\n' VK().Messages().remove_chat_user(user_id=_user) if index > 0: self.result['message'] = _str else: self.result[ 'message'] = 'Пользователей из черного списка не найдено.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: f = codecs.open('DB\\note.txt', 'r', 'utf-8') t = eval(f.read()) f.close() if len(str(self.text)) > 0: if self.mode == '+': t.append({ str(UEngine.get_username_by_id(self.user)): str(self.text) }) f = codecs.open('DB\\note.txt', 'w', 'utf-8') var.opened_bd = True f.write(str(t)) f.close() self.result['message'] = 'Записка добавлена.' else: self.result['message'] = '\n'.join([[(j + ': ' + i[j]) for j in i][0] for i in t]) return True except Exception as e: self.result['message'] = str(e) return False
def start(): try: Log.show_info(f'Бот запущен.') if not var.main_start: VK().Messages().send(message=f'{var.name}: Успешный запуск.') var.globalID = VK().Messages().get_history( count=1)['items'][0]['id'] var.main_start = True all_users = VK().Messages().get_chat()['users'] main_users = VK().Messages().get_chat( chat_id=var.chatCheck)['users'] for au in all_users: if au not in main_users: VK().Messages().send( message= 'Сорен, тут можно находится только тем, кто есть в основной беседе.' ) VK().Messages().remove_chat_user(user_id=au) while True: chat_title = VK().Messages().get_chat()['title'] if chat_title != var.title: VK().Messages().edit_chat(title=var.title) response = VK().Messages().get_history( count=10, offset=-10, start_message_id=var.globalID, fields='first_name, last_name') if var.bot_online: VK().Account().set_online() else: VK().Account().set_offline() if not response is False: response = response['items'][::-1] if len(response): for item in response: if int( item['id'] ) > var.globalID and item['from_id'] != var.mainID: var.globalID = int(item['id']) s = '' p = None if 'body' in item: if len(item['body']) > 0: s += str.encode( item['body']).decode('utf-8') else: s += '(None)' log = s u = item['from_id'] if 'attachments' in item: log += ' (' for a in item['attachments']: tp = a['type'] a = a[str(tp)] if tp == 'doc': log += f'doc: {a["title"]} (doc{a["owner_id"]}_{a["id"]}' if 'access_key' in a: log += '_' + a["access_key"] log += ')' if tp == 'photo': p = a['photo_604'] log += f'photo: photo{a["owner_id"]}_{a["id"]}' if 'access_key' in a: log += '_' + a["access_key"] if tp == 'audio': log += f'audio: {a["artist"]} - ' \ f'{a["title"]} (audio{a["owner_id"]}_{a["id"]}' if 'access_key' in a: log += '_' + a["access_key"] log += ')' if tp == 'video': log += f'video: {a["title"]} (video{a["owner_id"]}_{a["id"]}' if 'access_key' in a: log += '_' + a["access_key"] log += ')' if tp == 'link': log += f'link: {a["title"]} ({a["url"]})' if tp == 'sticker': log += f'sticker: product_{a["product_id"]} id_{a["sticker_id"]}' log += ', ' log = log[:len(log) - 2] log += ')' if 'geo' in item: log += f' (geo: {item["geo"]["coordinates"]})' if 'place' in item['geo']: log += f' ({item["geo"]["place"]["country"]}, {item["geo"]["place"]["city"]})' if 'fwd_messages' in item: log += f' (forward: ' for mes in item['fwd_messages']: log += f'{UEngine.get_username_by_id(mes["user_id"])} ({mes["body"]}), ' log = log[:len(log) - 2] log += ')' Log.show_vk( UEngine.get_username_by_id(u) + ': ' + log) f = open('DB\\money.txt', 'r') money = eval(f.read()) if not str(item['user_id']) in money: money[str(item['user_id'])] = 0 money[str(item['user_id'])] += 1 f.close() f = open('DB\\money.txt', 'w') f.write(str(money)) f.close() if 'action' in item: main_users = VK().Messages().get_chat( chat_id=var.chatCheck)['users'] if item['action'] == 'chat_title_update': VK().Messages().edit_chat( title=var.title) if item['action'] == 'chat_photo_update': VK().Messages().set_chat_photo( file=var.photo) if item['action'] == 'chat_invite_user_by_link': if not int( item['user_id'] ) in db.black and item[ 'user_id'] in main_users: VK().Messages().send( message='Добро пожаловать, ' + UEngine.get_link_by_id( item['user_id']) + '.') else: VK().Messages().send( message= 'Сорен, ты в ЧС или тебя нет в основной беседе.' ) VK().Messages().remove_chat_user( user_id=item['action_mid']) if item['action'] == 'chat_invite_user' or item[ 'action'] == 'chat_kick_user': if not int(item['from_id'] ) in db.privilege: VK().Messages().remove_chat_user( user_id=item['from_id']) if int(item['from_id']) != int( item['action_mid']): VK().Messages( ).remove_chat_user( user_id=item['action_mid']) response = VK().Messages().get_chat( )['users'] for user in response: if int( user ) in db.black or not user in main_users: VK().Messages( ).remove_chat_user( user_id=user) if item['action'] == 'chat_pin_message': if not int(item['action_mid'] ) in db.admins: VK().Messages().remove_chat_user( user_id=item['action_mid']) VK().Messages().unpin() VK().Messages().pin( message_id=var. pin_id['message_id']) else: var.pin_id['message_id'] = item[ 'id'] f = open('DB\\pin.txt', 'w') f.write(str(var.pin_id)) f.close() if item['action'] == 'chat_unpin_message': if not int(item['action_mid'] ) in db.admins: VK().Messages().remove_chat_user( user_id=item['action_mid']) VK().Messages().pin( message_id=var.pin_id['message_id'] ) elif len(s) > 2: if (var.debug_mode and int(u) == var.czarID ) or not var.debug_mode: c = s[0] if c in var.prefixes: s = s[1:len(s)] md = 'a' if int( u) in db.admins else ( 'm' if int(u) in db.moders else 'u') def start_thread(): Engine().cmd( s, p, u, md, item['id']) Thread(target=start_thread).start() else: if s[0] in var.prefixes: VK().Messages().send( 'Бот в режиме дебага.') except Exception as e: Log.show_error(e)