コード例 #1
0
 def cmd(t=None, p=None, u=None, m=None, d=None):
     md = f"{var.name} [v{var.version}]"
     var.answer = False
     var.start_now = False
     for a in var.plugins:
         res = dict()
         res['message'] = ''
         res['attachment'] = ''
         res = a.cmd(t, p, u, m, d)
         if not res is False:
             if len(str(res)) > 0:
                 p = str(a)[str(a).find('.')+1:str(a).find(' ')]
                 p = p[p.find('.')+1:]
                 Log.show_plugin(res['plugin'] + ' (' + p + ')')
                 var.answer = True
                 if not res['message'] is None or not res['attachment'] is None:
                     if res['message']:
                         res['message'] = f"{res['message']}\n{md}"
                         VK().Messages().send(message=res['message'], forward_messages=d)
                     elif res['attachment']:
                         VK().Messages().send(message=md, attachment=res['attachment'], forward_messages=d)
                 if not res['lat'] is None and not res['long'] is None:
                     var.answer = True
                     VK().Messages().send(message=md, lat=res['lat'], long=res['long'], forward_messages=d)
                 if not res['forward_messages'] is None:
                     VK().Messages().send(message=md, forward_messages=res['forward_messages'])
     if not var.answer and m != 'b' and not var.start_now:
         UEngine.what()
         Log.show_plugin('None')
コード例 #2
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
コード例 #3
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
コード例 #4
0
    def func(self):
        try:
            self.text = self.text.replace('^', '**')

            def mandelbrot(s,
                           pmin,
                           pmax,
                           ppoints,
                           qmin,
                           qmax,
                           qpoints,
                           max_iterations=200,
                           infinity_border=10):
                image = np.zeros((ppoints, qpoints))
                p, q = np.mgrid[pmin:pmax:(ppoints * 1j),
                                qmin:qmax:(qpoints * 1j)]
                c = p + 1j * q
                z = np.zeros_like(c)
                for k in range(max_iterations):
                    z = eval(s)
                    mask = (np.abs(z) > infinity_border) & (image == 0)
                    image[mask] = k
                    z[mask] = np.nan
                    plt.imsave(fname=f'img{k}.jpg', arr=-image.T, cmap='flag')
                return -image.T

            if len(self.text) == 0:
                self.text = 'z**2 + c'
            if not 'c' in self.text:
                self.text += ' + c'
            if not 'z' in self.text:
                self.text = 'z * ' + self.text

            plt.figure(figsize=(10, 10))
            mandelbrot(self.text, -2.5, 1.5, 500, -2, 2, 500, 100)
            plt.xticks([])
            plt.yticks([])

            if self.mode == '+':
                images = []
                for img in range(0, 100):
                    imgname = 'img' + str(img) + '.jpg'
                    images.append(imageio.imread(imgname))
                imageio.mimsave('img.gif', images)

            for i in range(0, 99):
                os.remove(f'img{i}.jpg')

            if self.mode == '+':
                self.result['attachment'] = UEngine.doc('img.gif')
                os.remove('img.gif')
            else:
                self.result['attachment'] = UEngine.image('img99.jpg')
                os.remove('img99.jpg')
            return True
        except Exception as _e:
            self.result['message'] = str(_e)
        return False
コード例 #5
0
 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
コード例 #6
0
 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
コード例 #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 = [-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
コード例 #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 = [-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
コード例 #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 = [-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
コード例 #10
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
コード例 #11
0
    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
コード例 #12
0
 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
コード例 #13
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')
                        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
コード例 #14
0
 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
コード例 #15
0
 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
コード例 #16
0
 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
コード例 #17
0
 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
コード例 #18
0
    def func(self):
        try:
            if not self.photo is None:
                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), (255 - a, 255 - b, 255 - c))

                image.save('img.jpg', "JPEG")
                del draw
                self.result['attachment'] = UEngine.image('img.jpg')
                os.remove('img.jpg')
            else:
                self.result['message'] = 'Прикрепите фото.'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False
コード例 #19
0
 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
コード例 #20
0
 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
コード例 #21
0
    def func(self):
        try:
            if not self.photo is None:
                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]

                part1 = image.crop((0, 0, width / 2, height))
                part2 = part1.transpose(Image.FLIP_LEFT_RIGHT)
                image.paste(part2, (round(width / 2), 0))

                image.save('img.jpg', "JPEG")
                del draw
                self.result['attachment'] = UEngine.image('img.jpg')
                os.remove('img.jpg')
            else:
                self.result['message'] = 'Прикрепите фото.'
            return True
        except Exception as e:
            self.result['message'] = str(e)
            return False
コード例 #22
0
 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
コード例 #23
0
 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
コード例 #24
0
 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
コード例 #25
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
コード例 #26
0
 def func(self):
     try:
         task = str(random.randint(1, 1000))
         self.result['message'] = \
             'Задача №' + task + '\n' + \
             UEngine.get_text(requests.get('http://acmp.ru/index.asp?main=task&id_task=' + task))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
コード例 #27
0
 def func(self):
     try:
         if len(str(self.text)) > 0:
             tts = gTTS(text=str(self.text), lang='ru')
             tts.save('audio.ogg')
             self.result['attachment'] = UEngine.audio_message('audio.ogg')
             os.remove('audio.ogg')
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
コード例 #28
0
 def func(self):
     try:
         if random.randint(0, 100) <= 10:
             self.result['message'] = 'Никто'
         else:
             self.result['message'] = UEngine.get_link_by_id(
                 random.choice(VK().Messages().get_chat()['users']))
         return True
     except Exception as e:
         self.result['message'] = str(e)
         return False
コード例 #29
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
コード例 #30
0
 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