Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- elif (text[0] == "напиши"):
- 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']
- if status >= 15:
- if bool(obj['fwd_messages']) or bool(obj.get('reply_message', False)):
- data = obj['fwd_messages']
- if bool(obj.get('reply_message', False)):
- data += [obj['reply_message']]
- users = []
- for tmp in data:
- users.append(tmp['text'])
- members = getSlovarMembers(conf)
- flags = {}
- l = 0
- for user in users:
- tmp = members.get(user, False)
- string = user
- class TextWriter:
- font = None
- images = None
- image_url = r"/root/vk_bot/123.jpg"
- font_url = r'/root/vk_bot/Abram.ttf'
- flag_rotate = False
- line = 0
- limit_line_count = 19
- limit_pixels_x = 610
- draw = None
- # Инициализация класса
- def __init__(self, rotation=False):
- self.font = ImageFont.truetype(self.font_url, size=40)
- self.images = []
- self.flag_rotate = rotation
- self.new_page(rotation=180*int(self.flag_rotate))
- # Метод создания новой страницы
- def new_page(self, rotation: int = 0):
- tmp = Image.open(self.image_url)
- tmp = tmp.rotate(rotation)
- self.draw = ImageDraw.Draw(tmp)
- self.images.append(tmp)
- return True
- # Метод добавления текста
- def add_text(self, text: str = '', fill: str = '#052be8'):
- # Разбиваем текст на параграфы
- text = text.split('\n')
- # Каждый параграф разбиваем на слова и разбиваем длину параграфа по строчкам
- # Каждая строчка может достигать установленного предела по пикселям(self.limit_pixels_x)
- # И так каждый параграф
- # В результате получаем массив result_text, в котором каждый каждый элемент - один параграф,
- # а каждый элемент параграфа - одна строчка из этого параграфа
- result_text = []
- for paragraph in text:
- splited_paragraph = []
- line = ''
- for word in paragraph.split(' '):
- if self.font.getsize(f"{line} {word}")[0] <= self.limit_pixels_x:
- line += ' ' + word
- else:
- splited_paragraph.append(line)
- line = word
- if len(line) > 0:
- splited_paragraph.append(line)
- if len(splited_paragraph) > 0:
- result_text.append(splited_paragraph)
- # Осталось только добавить этот текст на листы
- for paragraph in result_text:
- for number, line in enumerate(paragraph):
- if self.line >= self.limit_line_count:
- self.new_page(rotation=180*int(not self.flag_rotate))
- self.flag_rotate = not self.flag_rotate
- self.line = 0
- self.draw.text(
- (14 + 100*int(self.flag_rotate), 8 + 46*self.line),
- line,
- font=self.font,
- fill=fill
- )
- self.line += 1
- return True
- # Метод сохранения. Принимает в себя параметр file_name - имя файла
- def save(self, file_name: str = 'image.jpg'):
- file_name = file_name.split('.')
- file_name = [
- ''.join(
- (_+".") for _ in file_name[:-1]
- )[:-1],
- file_name[-1]
- ]
- result = []
- for number, image in enumerate(self.images):
- if number == 0:
- tmp = f"{file_name[0]}.{file_name[1]}"
- else:
- tmp = f'{file_name[0]}_{number}.{file_name[1]}'
- result.append(tmp)
- image.save(tmp)
- return result
- writer = TextWriter()
- writer.add_text(string)
- writer.save('new.jpg')
- photo_ids = writer.save('new.jpg')
- s = ""
- for photo_ids1 in photo_ids:
- t = (r'/root/'+str(photo_ids1))
- photo_id = ''
- try:
- img = open(t, "rb")
- photo_id = uploadPhoto(img)
- except Exception as e:
- fixError(e)
- s += photo_id + ","
- mess = 'Лови :)'
- 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)
- else:
- mess = 'Не-не, тебе низя :)'
- 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