Exemple #1
0
 def func(self):
     try:
         self.result['message'] = UEngine.get_password(
             UEngine.get_user_id(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #2
0
 def func(self):
     try:
         f = codecs.open('DB\\userinfo.txt', 'r', 'utf-8')
         t = eval(f.read())
         f.close()
         if self.mode == '+':
             user_id = str(self.user)
             f = codecs.open('DB\\userinfo.txt', 'w', 'utf-8')
             text = self.text
             text = text.replace(': ', ':')
             text = "{'" + text + "'}"
             text = text.replace(':', "':'")
             text = eval(text)
             if str(user_id) in t:
                 for i in text:
                     t[str(user_id)][str(i)] = text[str(i)]
             else:
                 t[str(user_id)] = dict()
                 for i in text:
                     t[str(user_id)][str(i)] = text[str(i)]
             f.write(str(t))
             f.close()
             # r = [t[i] for i in t if i == str(user_id)][0]
             self.result['message'] = 'Добавлено.'
         elif self.mode == '-':
             if str(self.text) in t[str(self.user)]:
                 f = codecs.open('DB\\userinfo.txt', 'w', 'utf-8')
                 t[str(self.user)].pop(str(self.text))
                 f.write(str(t))
                 f.close()
             else:
                 self.result['message'] = 'У вас нет этого поля.'
             self.result['message'] = 'Удалено.'
         else:
             if len(self.text) > 0:
                 user_id = self.text
             else:
                 user_id = str(self.user)
             try:
                 user_id = UEngine.get_user_id(user_id)
                 if str(user_id) in t:
                     r = [t[i] for i in t if i == str(user_id)][0]
                     self.result['message'] = '\n'.join([(i + ': ' + r[i])
                                                         for i in r])
                 else:
                     self.result[
                         'message'] = 'Пользователь с таким id не заполнил информацию.'
             except Exception as e:
                 self.result['message'] = 'Введите корректный id: ' + str(e)
         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:
            _inf = ''

            if len(str(self.text)) < 1:
                self.result['message'] = 'Введите корректный id'
                return True
            user_id = 0
            if not UEngine.is_int(self.text):
                try:
                    _id = int(UEngine.get_user_id(self.text))
                    if _id is False:
                        self.result['message'] = 'Введите корректный id'
                        return True
                    else:
                        user_id += _id
                except Exception as e:
                    print(e)
            else:
                user_id += int(self.text)
            try:
                if UEngine.is_int(user_id):
                    if user_id == 0:
                        self.result['message'] = 'Введите корректный id'
                        return True
                    fields = "id, domain, online, first_name, last_name, bdate, status, country, city, home_town, " \
                             "mobile_phone, home_phone, occuration, relation, last_seen, sex"
                    response = VK().Users().get(user_ids=user_id, fields=fields, name_case='nom')
                    _user = response[0]

                    r = requests.get('https://vk.com/foaf.php?id='+str(user_id))
                    soup = BeautifulSoup(r.text, 'html5lib').renderContents().decode('utf-8')
                    date = soup[soup.find('<ya:created dc:date=') + 21:]
                    date = date[:date.find('"')]
                    date = date.replace('T', ' , ')
                    date = date.replace('+', ' +')
                    _inf += f'Зарегистрировался: {date}\n'

                    _inf += 'ID: ' + str(_user['id'])
                    if 'domain' in _user:
                        _inf += ' (' + _user['domain'] + ')'
                    if _user['online'] == 1:
                        _inf += ' [online]'
                    else:
                        if 'last_seen' in _user:
                            _inf += ' [last online: ' + UEngine.get_date_by_stamp(_user['last_seen']['time']) + ']'
                        else:
                            _inf += '[offline]'
                    _inf += '\n'
                    _inf += 'Имя: ' + _user['first_name'] + '\n'
                    _inf += 'Фамилия: ' + _user['last_name'] + '\n'
                    _inf += 'Пол: '
                    if 'sex' in _user:
                        if int(_user['sex']) == 1:
                            _inf += 'Женский'
                        elif int(_user['sex']) == 2:
                            _inf += 'Мужской'
                        else:
                            _inf += 'Неизвестно'
                    _inf += '\n'
                    if 'bdate' in _user:
                        _inf += 'Дата рождения: ' + _user['bdate'] + '\n'
                    if 'status' in _user:
                        if len(_user['status']) > 0:
                            _inf += 'Статус: ' + _user['status'] + '\n'
                    if 'country' in _user:
                        if 'city' in _user:
                            _inf += 'Живет: ' + _user['country']['title'] + ', ' + _user['city']['title'] + '\n'
                    if 'home_town' in _user:
                        if len(_user['home_town']) > 0:
                            _inf += 'Родной город: ' + _user['home_town'] + '\n'
                    if 'mobile_phone' in _user:
                        _inf += 'Мобильный: ' + _user['mobile_phone'] + '\n'
                    if 'home_phone' in _user:
                        _inf += 'Домашний: ' + _user['home_phone'] + '\n'
                    if 'career' in _user:
                        for career in _user['career']:
                            if career['company']:
                                _inf += 'Работа: ' + career['company'] + ' (' + career['position'] + ')\n'
                                break
                    if 'relation' in _user:
                        if _user['relation'] != 0:
                            if _user['relation'] == 6:
                                _inf += 'Семейное положение: В активном поиске'
                            elif _user['relation'] == 1:
                                _inf += 'Семейное положение: Не женат'
                            else:
                                _inf += 'Семейное положение: ' + _user['relation_partner']['first_name'] + ' ' \
                                        + _user['relation_partner']['last_name'] + ' (' + str(
                                    _user['relation_partner']['id']) + ')\n'
                    self.result['message'] = _inf
                else:
                    self.result['message'] = 'Введите корректный id'
            except Exception as exc:
                # if False:
                print(exc)
                self.result['message'] = 'Введите корректный id'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False
Exemple #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