Advertisement
ilyakanyshev

Untitled

Nov 26th, 2020
887
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. elif (text[0] == "напиши"):  
  2.     mess_id = get('vk','messages.send',access_token=token,random_id=0,v=5.126,peer_ids=conf,message='Подождите пожалуйста...',timer=60)[0]['conversation_message_id']
  3.     if status >= 15:
  4.         if bool(obj['fwd_messages']) or bool(obj.get('reply_message', False)):
  5.             data = obj['fwd_messages']
  6.             if bool(obj.get('reply_message', False)):
  7.                 data += [obj['reply_message']]
  8.             users = []
  9.             for tmp in data:
  10.                 users.append(tmp['text'])
  11.             members = getSlovarMembers(conf)
  12.             flags = {}
  13.             l = 0
  14.             for user in users:
  15.                 tmp = members.get(user, False)  
  16.             string = user
  17.             class TextWriter:
  18.                 font = None
  19.                 images = None
  20.                 image_url = r"/root/vk_bot/123.jpg"
  21.                 font_url = r'/root/vk_bot/Abram.ttf'
  22.                 flag_rotate = False
  23.                 line = 0
  24.                 limit_line_count = 19
  25.                 limit_pixels_x = 610
  26.                 draw = None
  27.                
  28.                 # Инициализация класса
  29.                 def __init__(self, rotation=False):
  30.                     self.font = ImageFont.truetype(self.font_url, size=40)
  31.                     self.images = []
  32.                     self.flag_rotate = rotation
  33.                     self.new_page(rotation=180*int(self.flag_rotate))
  34.                    
  35.                 # Метод создания новой страницы
  36.                 def new_page(self, rotation: int = 0):
  37.                     tmp = Image.open(self.image_url)
  38.                     tmp = tmp.rotate(rotation)
  39.                     self.draw = ImageDraw.Draw(tmp)
  40.                     self.images.append(tmp)
  41.                     return True
  42.                
  43.                 # Метод добавления текста
  44.                 def add_text(self, text: str = '', fill: str = '#052be8'):
  45.                     # Разбиваем текст на параграфы
  46.                     text = text.split('\n')
  47.                    
  48.                     # Каждый параграф разбиваем на слова и разбиваем длину параграфа по строчкам
  49.                     # Каждая строчка может достигать установленного предела по пикселям(self.limit_pixels_x)
  50.                     # И так каждый параграф
  51.                     # В результате получаем массив result_text, в котором каждый каждый элемент - один параграф,
  52.                     # а каждый элемент параграфа - одна строчка из этого параграфа
  53.                     result_text = []
  54.                     for paragraph in text:
  55.                         splited_paragraph = []
  56.                         line = ''
  57.                         for word in paragraph.split(' '):
  58.                             if self.font.getsize(f"{line} {word}")[0] <= self.limit_pixels_x:
  59.                                 line += ' ' + word
  60.                             else:
  61.                                 splited_paragraph.append(line)
  62.                                 line = word
  63.                         if len(line) > 0:
  64.                             splited_paragraph.append(line)
  65.                         if len(splited_paragraph) > 0:
  66.                             result_text.append(splited_paragraph)
  67.                        
  68.                     # Осталось только добавить этот текст на листы
  69.                     for paragraph in result_text:
  70.                         for number, line in enumerate(paragraph):
  71.                             if self.line >= self.limit_line_count:
  72.                                 self.new_page(rotation=180*int(not self.flag_rotate))
  73.                                 self.flag_rotate = not self.flag_rotate
  74.                                 self.line = 0
  75.                             self.draw.text(
  76.                                 (14 + 100*int(self.flag_rotate), 8 + 46*self.line),
  77.                                 line,
  78.                                 font=self.font,
  79.                                 fill=fill
  80.                             )
  81.                             self.line += 1
  82.                     return True
  83.                
  84.                 # Метод сохранения. Принимает в себя параметр file_name - имя файла
  85.                 def save(self, file_name: str = 'image.jpg'):
  86.                     file_name = file_name.split('.')
  87.                     file_name = [
  88.                         ''.join(
  89.                             (_+".") for _ in file_name[:-1]
  90.                         )[:-1],
  91.                         file_name[-1]
  92.                     ]
  93.                     result = []
  94.                     for number, image in enumerate(self.images):
  95.                         if number == 0:
  96.                             tmp = f"{file_name[0]}.{file_name[1]}"
  97.                         else:
  98.                             tmp = f'{file_name[0]}_{number}.{file_name[1]}'
  99.                         result.append(tmp)
  100.                         image.save(tmp)
  101.                     return result
  102.             writer = TextWriter()
  103.             writer.add_text(string)
  104.             writer.save('new.jpg')
  105.             photo_ids = writer.save('new.jpg')
  106.             s = ""
  107.             for photo_ids1 in photo_ids:
  108.                 t = (r'/root/'+str(photo_ids1))
  109.                 photo_id = ''
  110.                 try:
  111.                     img = open(t, "rb")
  112.                     photo_id = uploadPhoto(img)
  113.                 except Exception as e:
  114.                     fixError(e)
  115.                 s += photo_id + ","
  116.             mess = 'Лови :)'
  117.             get('vk','messages.edit',conversation_message_id=mess_id,access_token=token,random_id=randint(1, 9999999),v=v,peer_id=conf,message=mess,attachment=s)
  118.     else:
  119.         mess = 'Не-не, тебе низя :)'
  120.         get('vk','messages.edit',conversation_message_id=mess_id,access_token=token,random_id=randint(1, 9999999),v=v,peer_id=conf,message=mess)  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement