def func(self):
     try:
         user_id = self.text
         if len(str(user_id)) > 0 and UEngine.user_exist_in_chat(user_id):
             if not int(user_id) in db.moders:
                 if self.mode == '+':
                     db.moders.append(int(user_id))
                     self.result['message'] = UEngine.get_link_by_id(
                         user_id) + ' добавлен в модеры'
                 else:
                     self.result['message'] = UEngine.get_link_by_id(
                         user_id) + ' не является модером'
             else:
                 if self.mode == '-':
                     db.moders.remove(int(user_id))
                     self.result['message'] = UEngine.get_link_by_id(
                         user_id) + ' удален из модеров'
                 else:
                     self.result['message'] = UEngine.get_link_by_id(
                         user_id) + ' уже в модерах'
             UEngine.reset_privilege()
         else:
             self.result['message'] = 'Не правильная команда.'
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     try:
         if self.user == var.czarID:
             user_id = self.text
             if len(str(user_id)) > 0 and UEngine.user_exist_in_chat(user_id):
                 if not int(user_id) in db.admins:
                     if self.mode == '+':
                         db.admins.append(int(user_id))
                         self.result['message'] = UEngine.get_link_by_id(user_id) + ' добавлен в админы'
                     else:
                         self.result['message'] = UEngine.get_link_by_id(user_id) + ' не является админом'
                 else:
                     if self.mode == '-':
                         db.admins.remove(int(user_id))
                         self.result['message'] = UEngine.get_link_by_id(user_id) + ' удален из админов'
                     else:
                         self.result['message'] = UEngine.get_link_by_id(user_id) + ' уже в админах'
                 UEngine.reset_privilege()
             else:
                 self.result['message'] = 'Не правильная команда.'
         else:
             self.result['message'] = 'Недостаточно прав.'
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
예제 #3
0
 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
예제 #5
0
    def func(self):
        try:
            vote_time = 60
            _correct = True
            _start = True
            var.getting = True
            if not '?' in self.text or not '!' in self.text:
                _correct = False
            if not _correct:
                if '~' in self.text:
                    _correct = True
            command = ''
            if _correct:
                _id = 0
                q = ''
                a = []
                _users_voted = []
                _messages_voted = []
                _cmd_active = False
                if '~' in self.text:
                    command = self.text[1:self.text.find(' ')]
                    mes = self.text[self.text.find(' ') + 1:]
                    a.append(['Да', 0])
                    a.append(['Нет', 0])
                    try:
                        mes = UEngine.get_user_id(mes)
                        _id = int(mes)
                        if _id in db.privilege or _id in db.white or not UEngine.user_exist_in_chat(
                                _id):
                            _start = False
                        mes = UEngine.get_link_by_id(_id)
                        _cmd_active = True
                    except Exception as _exc:
                        print(_exc)
                        _start = False
                else:
                    q = self.text[:self.text.find('?')]
                    mes = self.text[self.text.find('?') + 2:]
                if not _cmd_active:
                    while mes != '':
                        a.append([mes[:mes.find('!')], 0])
                        mes = mes[mes.find('!') + 2:]

                def get():
                    _all_votes = 0
                    _start_in = VK().Messages().get_history(count=0)['count']
                    time.sleep(vote_time)
                    _end = VK().Messages().get_history(count=0)['count']
                    cnt = (_end - _start_in) * 2
                    response = VK().Messages().get_history(count=cnt)['items']
                    response = response[::-1]
                    for item in response:
                        _a = item['body'].lower()
                        i = 0
                        _in = True
                        if not item[
                                'user_id'] in _users_voted and not '?' in _a:
                            while i < len(a) and _in:
                                if a[i][0].lower() == _a:
                                    a[i][1] += 1
                                    _all_votes += 1
                                    _in = False
                                i += 1
                            if not _in:
                                _users_voted.append(item['user_id'])
                                _messages_voted.append(item['id'])
                    _str = 'Результаты:\n'
                    i = 0

                    def f(n, c):
                        _f = 100 / n * c
                        if c == 0:
                            return '0.00'
                        else:
                            return str(int(_f * 100) / 100)

                    def sort_col(n):
                        return n[1]

                    if _all_votes > 0:
                        a.sort(key=sort_col, reverse=True)

                        while i < len(a):
                            _str += str(a[i][1]) + '. ' + a[i][0] + ' [%' + f(
                                _all_votes, a[i][1]) + ']\n'
                            i += 1
                        VK().Messages().send(
                            message=_str,
                            forward_messages=', '.join(
                                str(_exc_in) for _exc_in in _messages_voted))
                        if command:
                            if a[0][1] == a[1][1]:
                                self.result['message'] = 'Живи' + self.text
                            elif a[0][0] == 'Да':
                                VK().Messages().remove_chat_user(user_id=_id)
                            else:
                                self.result['message'] = 'Живи' + self.text
                        return True
                    else:
                        self.result['message'] = 'Голосование отменено.'

                def start(question=None, answers=None):
                    _str = f'[{vote_time} sec] Голосование: '
                    if command != '':
                        _str += command + ' -> ' + mes
                    else:
                        _str += question
                    _str += '\n'
                    _i = 1
                    for i in answers:
                        _str += '- ' + i[0] + '\n'
                        _i += 1
                    VK().Messages().send(message=_str)
                    get()

                if _start:
                    start(q, a)
                else:
                    self.result['message'] = 'Ошибка'
            else:
                self.result['message'] = 'Неправильная команда'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False