Exemple #1
0
    def func(self):
        try:
            if not self.photo is None:
                if UEngine.is_int(self.text):
                    if 100 >= int(self.text) >= 0:
                        p = requests.get(self.photo)
                        out = open('img.jpg', 'wb')
                        out.write(p.content)
                        out.close()

                        image = Image.open('img.jpg')

                        for i in range(int(self.text)):
                            image = image.filter(ImageFilter.BLUR)

                        image.save('img.jpg', "JPEG")
                        self.result['attachment'] = UEngine.image('img.jpg')
                        os.remove('img.jpg')
                    else:
                        self.result['message'] = 'Введите коэффицент [0..100].'
                else:
                    self.result['message'] = 'Введите коэффицент.'
            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:
             try:
                 r = self.text.split(' | ')
                 if len(r) == 2:
                     s = str(VK().exec(r[0], eval(r[1])))
                     s = s[2:len(s) - 2].replace("'", '').split(', ')
                     res = ''
                     for a in s:
                         res += a + '\n'
                     self.result['message'] = res
                 elif len(r) > 2:
                     s = VK().exec(r[0], eval(r[1]))
                     rr1 = ''
                     for i in range(len(r)):
                         if 1 < i < len(r):
                             if UEngine.is_int(r[i]):
                                 s = s[int(r[i])]
                             else:
                                 s = s[r[i]]
                             rr1 += r[i] + ': '
                             print(rr1 + ': ' + s)
                     self.result['message'] = rr1 + str(s).replace("'", '')
                 return True
             except Exception as e:
                 self.result['message'] = 'Error: ' + str(e)
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     try:
         r = requests.get(
             f'https://kanobu.ru/games/popular/?page={random.randint(1,2684)}'
         )
         soup = BeautifulSoup(r.text, 'html5lib')
         mas = [
             i.find('div', {
                 'class': 'h2'
             }).text
             for i in soup.find_all('div', {'class': 'c-game__option'})
         ]
         if len(str(self.text)) > 0:
             if UEngine.is_int(self.text):
                 if int(self.text) < 0:
                     self.text = 1
                 if int(self.text) > 18:
                     self.text = 18
                 _str = ''
                 for i in range(int(self.text)):
                     game = random.choice(mas)
                     _str += str(i + 1) + '. ' + game[1:len(game) -
                                                      1] + '\n'
                     mas.remove(game)
                 self.result['message'] = _str
         else:
             self.result['message'] = random.choice(mas)
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         self.result['attachment'] = UEngine.get_random_wall_picture(-96122509, int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         self.result['message'] = UEngine.get_random_wall_post(
             -44554509, int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [-62376962, -113698537]
         self.result['attachment'] = UEngine.get_random_wall_picture(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #7
0
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [-46764887, -80461135, -62846302, -56861816]
         self.result['attachment'] = UEngine.get_random_wall_picture(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #8
0
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [-80799846, -146203367, -72495085]
         self.result['attachment'] = UEngine.get_random_wall_picture(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #9
0
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [-65596623, -45595714, -75338985, -58158419, -71067613]
         self.result['attachment'] = UEngine.get_random_wall_picture(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
    def func(self):
        try:
            if not self.photo is None:
                if UEngine.is_int(self.text):
                    if 100 >= int(self.text) >= -100:
                        p = requests.get(self.photo)
                        out = open('img.jpg', 'wb')
                        out.write(p.content)
                        out.close()

                        image = Image.open('img.jpg')
                        draw = ImageDraw.Draw(image)
                        width = image.size[0]
                        height = image.size[1]
                        pix = image.load()

                        factor = int(self.text)
                        for i in range(width):
                            for j in range(height):
                                a = pix[i, j][0] + factor
                                b = pix[i, j][1] + factor
                                c = pix[i, j][2] + factor
                                if a < 0:
                                    a = 0
                                if b < 0:
                                    b = 0
                                if c < 0:
                                    c = 0
                                if a > 255:
                                    a = 255
                                if b > 255:
                                    b = 255
                                if c > 255:
                                    c = 255
                                draw.point((i, j), (a, b, c))

                        image.save('img.jpg', "JPEG")
                        del draw
                        self.result['attachment'] = UEngine.image('img.jpg')
                        os.remove('img.jpg')
                    else:
                        self.result[
                            'message'] = 'Введите коэффицент [-100..100].'
                else:
                    self.result['message'] = 'Введите коэффицент.'
            else:
                self.result['message'] = 'Прикрепите фото.'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False
 def func(self):
     try:
         if not UEngine.is_int(self.text):
             self.text = 1
         if int(self.text) > 10:
             self.text = 10
         while True:
             a = UEngine.get_random_wall_picture(-74382159, int(self.text))
             if len(a) > 1:
                 self.result['attachment'] = a
                 return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
    def func(self):
        try:
            if not self.photo is None:
                if UEngine.is_int(self.text):
                    if 100 >= int(self.text) >= 0:
                        p = requests.get(self.photo)
                        out = open('img.jpg', 'wb')
                        out.write(p.content)
                        out.close()

                        image = Image.open('img.jpg')
                        draw = ImageDraw.Draw(image)
                        width = image.size[0]
                        height = image.size[1]
                        pix = image.load()

                        depth = int(self.text)
                        for i in range(width):
                            for j in range(height):
                                a = pix[i, j][0]
                                b = pix[i, j][1]
                                c = pix[i, j][2]
                                s = (a + b + c) // 3
                                a = s + depth * 2
                                b = s + depth
                                c = s
                                if a > 255:
                                    a = 255
                                if b > 255:
                                    b = 255
                                if c > 255:
                                    c = 255
                                draw.point((i, j), (a, b, c))

                        image.save('img.jpg', "JPEG")
                        del draw
                        self.result['attachment'] = UEngine.image('img.jpg')
                        os.remove('img.jpg')
                    else:
                        self.result['message'] = 'Введите значение [0..100].'
                else:
                    self.result['message'] = 'Введите глубину.'
            else:
                self.result['message'] = 'Прикрепите фото.'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [-27456813, -157341954, -35927256, -156666557]
         while True:
             a = UEngine.get_random_wall_post(random.choice(groups),
                                              int(self.text))
             if len(a) > 1:
                 self.result['message'] = a
                 return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [
             -134982584, -84753006, -146150692, -126442376, -65144752,
             -83971955, -83971955
         ]
         self.result['attachment'] = UEngine.get_random_wall_picture(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [
             -127518015, -101072212, -69721869, -111673172, -151443835,
             -113969740, -157516431
         ]
         self.result['attachment'] = UEngine.get_random_wall_picture(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     try:
         if not UEngine.is_int(self.text):
             self.text = 1
         if int(self.text) > 10:
             self.text = 10
         while True:
             groups = [-36292619, -4186257]
             a = UEngine.get_random_wall_picture(random.choice(groups),
                                                 int(self.text))
             if len(a) > 1:
                 self.result['attachment'] = a
                 return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     try:
         a = 1
         if UEngine.is_int(self.text):
             a *= int(self.text)
         today = str(datetime.date.today())
         rates = ExchangeRates(today)
         val = ['USD', 'EUR']
         _str = f'[{str(today)}] Курс валют:\n'
         for v in val:
             data = rates[v]
             _str += f'{data.name}: {data.value * a}\n'
         self.result['message'] = _str
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #18
0
 def func(self):
     try:
         mode = '-'
         _code = self.text
         _id = self.user
         if not _code is None:
             if len(str(_code)) > 0:
                 if _code.isdigit():
                     if UEngine.is_int(int(_code) / int(_id)):
                         mode = '+'
         if mode == '+':
             p = 0
             while True:
                 p += 1
                 num = ''
                 one = 0
                 two = 0
                 for i in range(6):
                     n = random.randint(0, 9)
                     num += str(n)
                     if i < 3:
                         one += n
                     else:
                         two += n
                 if one == two:
                     self.result['message'] = f'[{p}] Lucky: {str(num)}'
                     return True
         else:
             num = ''
             one = 0
             two = 0
             for i in range(6):
                 n = random.randint(0, 9)
                 num += str(n)
                 if i < 3:
                     one += n
                 else:
                     two += n
             if one == two:
                 self.result['message'] = f'Lucky: {str(num)}'
             else:
                 self.result['message'] = f'Unlucky: {str(num)}'
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #19
0
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         result = ''
         for i in range(int(self.text)):
             r = requests.get('https://randstuff.ru/fact/')
             soup = BeautifulSoup(r.text, 'html5lib')
             _str = soup.find("table", {"class": "text"}).text
             result += str(i+1) + '. ' + _str + '\n\n'
         self.result['message'] = result
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         result_mes = ''
         for i in range(int(self.text)):
             r = requests.get('https://genword.ru/generators/slogan/')
             soup = BeautifulSoup(r.text, 'html5lib')
             result = str(soup.find("span", {"class": "result"}))
             result = result[result.find('>') + 1:result.find('/') - 1]
             result_mes += str(i + 1) + '. ' + result + '.\n\n'
         self.result['message'] = result_mes
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #21
0
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         groups = [
             -27895931, -22866546, -35983383, -42440233, -48713061,
             -26515827, -78354614, -78849814, -116805844, -96801065,
             -95941375, -20060920, -25008403, -31257157, -10830340,
             -22952938
         ]
         self.result['attachment'] = UEngine.get_random_wall_music(
             random.choice(groups), int(self.text))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
 def func(self):
     if not UEngine.is_int(self.text):
         self.text = 1
     if int(self.text) > 10:
         self.text = 10
     try:
         result = ''
         for i in range(int(self.text)):
             r = requests.get('https://randstuff.ru/saying/')
             soup = BeautifulSoup(r.text, 'html5lib')
             _str = soup.find("table", {"class": "text"}).text
             t = _str[0:_str.find('—')]
             a = _str[_str.find('—') + 1:len(_str) + 1]
             a = a + ': ' + t
             result += str(i+1) + '. ' + a + '\n\n'
         self.result['message'] = result
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #23
0
    def func(self):
        try:
            if not self.photo is None:
                if UEngine.is_int(self.text):
                    if 255 >= int(self.text) >= 0:
                        p = requests.get(self.photo)
                        out = open('img.jpg', 'wb')
                        out.write(p.content)
                        out.close()

                        image = Image.open('img.jpg')
                        draw = ImageDraw.Draw(image)
                        width = image.size[0]
                        height = image.size[1]
                        pix = image.load()

                        for i in range(width):
                            for j in range(height):
                                a = pix[i, j][0]
                                b = pix[i, j][1]
                                c = pix[i, j][2]
                                draw.point(
                                    (i, j),
                                    (a ^ int(self.text), b ^ int(self.text),
                                     c ^ int(self.text)))

                        image.save('img.jpg', "JPEG")
                        del draw
                        self.result['attachment'] = UEngine.image('img.jpg')
                        os.remove('img.jpg')
                    else:
                        self.result['message'] = 'Введите коэффицент [0..255].'
                else:
                    self.result['message'] = 'Введите коэффицент.'
            else:
                self.result['message'] = 'Прикрепите фото.'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False
 def func(self):
     try:
         count = VK().Messages().get_history(count=0)['count']
         f = open('DB\\history_users.txt', 'r')
         last_static = eval(f.read())
         f.close()
         index = int(last_static['last_static'])
         users = dict()
         if len(last_static) < 2:
             u = VK().Messages().get_chat()['users']
             for i in u:
                 if i != 'last_static':
                     if int(i) > 0:
                         users[str(i)] = 0
         else:
             u = [int(i) for i in last_static if UEngine.is_int(i)]
             users = last_static
         deleted = []
         f = open('DB\\history_cmd.txt', 'r')
         cmd = eval(f.read())
         f.close()
         all_cmd = cmd['last_static']
         var.history_started = False
         while index < count:
             count = VK().Messages().get_history(count=0)['count']
             items = VK().Messages().get_history(count=200, offset=index, rev=1)['items']
             if not var.history_started:
                 _str = f'Подсчет начался.\nЖдите примерно {int((count-index)/300)}~{int((count-index)/225)} секунд.'
                 VK().Messages().send(message=_str)
                 var.history_started = True
             for item in items:
                 if item['from_id'] > 0:
                     if int(item['from_id']) in u:
                         users[str(item['from_id'])] += 1
                     else:
                         deleted.append(int(item['from_id']))
                         u.append(int(item['from_id']))
                         users[str(item['from_id'])] = 1
                     if len(item['body']) > 3:
                         if ' ' in item['body']:
                             msg = item['body'][:item['body'].find(' ')].lower()
                         else:
                             msg = item['body']
                         if msg[0] in '!/\\':
                             all_cmd += 1
                             msg = str(msg[1:]).lower()
                             if msg in var.words:
                                 if msg in cmd:
                                     cmd[str(msg)] += 1
                                 else:
                                     cmd[str(msg)] = 1
             index += 200
         users = dict((x, y) for x, y in [(k, users[k]) for k in sorted(users.keys(), key=users.get, reverse=True)])
         res = f'[{count}] Топ-{len(users)} пользователей этой беседы:\n'
         ind = 1
         # _str = f'Осталось немного, примерно {int((len(users)-1)/4)}~{int((len(users)-1)/3.25)} секунд.'
         # VK().Messages().send(message=_str)
         deleted = VK().Messages().get_chat()['users']
         t = str([int(ii) for ii in ' '.join(users).split() if ii.isdigit()])
         allu = VK().Users().get(user_ids=t[1:len(t)-1])
         for user in users:
             if user != 'last_static':
                 if int(user) > 0:
                     res += f'{ind}. '
                     if not int(user) in deleted:
                         res += '*'
                     un = [(i['first_name'] + ' ' + i['last_name']) for i in allu if int(i['id']) == int(user)][0]
                     res += un + ': ' + str(users[user]) + ' (' + str(round(users[user] / count * 100, 2)) + '%)\n'
                 ind += 1
         cmd = dict((x, y) for x, y in [(k, cmd[k]) for k in sorted(cmd.keys(), key=cmd.get, reverse=True)])
         res_dop = f'[{all_cmd}] Топ-{len(cmd)-1} команд:\n'
         ind = 1
         for c in cmd:
             if c != 'last_static':
                 res_dop += str(ind) + ': ' + str(c) + ': ' + \
                            str(cmd[c]) + '(' + str(round(cmd[c] / all_cmd * 100, 2)) + '%)\n'
                 ind += 1
         users['last_static'] = count
         cmd['last_static'] = all_cmd
         f = open('DB\\history_users.txt', 'w')
         f.write(str(users))
         f.close()
         f = open('DB\\history_cmd.txt', 'w')
         f.write(str(cmd))
         f.close()
         VK().Messages().send(message=res)
         if len(res_dop) >= 4096:
             res_dop = res_dop.split('150')
             VK().Messages().send(message=res_dop[0])
             VK().Messages().send(message='150' + res_dop[1])
         else:
             VK().Messages().send(message=res_dop)
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
Exemple #25
0
 def func(self):
     if self.text == '':
         try:
             self.text = VK().Users().get(user_ids=self.user,
                                          fields='city')[0]['city']['title']
         except Exception as e:
             self.result[
                 'message'] = 'Некорректный город или ваш город скрыт.\n' + str(
                     e)
             return True
     try:
         _weather = Weather(unit=Unit.CELSIUS)
         time = 1
         loc = ''
         if ' ' in self.text:
             res = self.text.split()
             ok = False
             for i in res:
                 if UEngine.is_int(i):
                     ok = True
             if ok:
                 if UEngine.is_int(res[0]):
                     loc += res[1]
                     time += int(res[0])
                 else:
                     loc += res[0]
                     time += int(res[1])
             else:
                 self.result['message'] = 'Введите город и количество дней.'
                 return True
         else:
             if UEngine.is_int(self.text):
                 time += int(self.text)
                 try:
                     loc += VK().Users().get(
                         user_ids=self.user,
                         fields='city')[0]['city']['title']
                 except Exception as e:
                     self.result[
                         'message'] = 'Некорректный город или ваш город скрыт.\n' + str(
                             e)
                     return True
             else:
                 loc += self.text
         location = _weather.lookup_by_location(loc)
         forecasts = location.forecast
         index = 0
         _str = loc + ':\n'
         for forecast in forecasts:
             if index < time:
                 if not index:
                     _str += '(Today) '
                 _str += f'{forecast.date}: {forecast.text} ({forecast.low}-{forecast.high})\n'
             index += 1
         translator = Translator()
         self.result['message'] = translator.translate(_str,
                                                       src='en',
                                                       dest='ru').text
         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