/
gen.py
72 lines (56 loc) · 1.93 KB
/
gen.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from PIL import Image, ImageDraw, ImageFont
from image_utils import ImageText
from random_username.generate import generate_username
from random import randint
import re
from fetch import fetch
def gen_channel():
username = generate_username(1)[0][:-1]
username = username[0].upper() + username[1:]
return username
def gen_views():
views = randint(0, 1000000)
views = f'{views:,}' + ' views'
return views
def gen_time():
mins = ('0' + str(randint(0, 59)))[-2:]
secs = ('0' + str(randint(0, 59)))[-2:]
time = mins + ':' + secs
return time
def gen_img(title, channel, views, time):
with open('common.txt') as f:
common = f.read().splitlines()
args = []
for word in title.lower().split(' '):
word = re.sub(r'[^a-z0-9]', '', word)
if (len(word) <= 2 or word in common):
continue
args.append(word)
fetch(args)
im = Image.open('thumb.jpg')
draw = ImageDraw.Draw(im)
im = im.convert('RGB')
im = im.resize((640, 360))
draw = ImageDraw.Draw(im)
draw.rectangle([550, 310, 630, 350], fill='black')
fnt = ImageFont.truetype('Arial Bold', 27)
draw.text((555, 315), time, font=fnt, fill='white')
im.save('thumb.jpg')
im = Image.open('out.png')
draw = ImageDraw.Draw(im)
draw.rectangle([0, 0, 1250, 380], fill='#F1F1F1')
draw.rectangle([10, 10, 640, 360], fill='white')
thumb = Image.open('thumb.jpg')
im.paste(thumb, (10, 10))
im.save('out.png')
txt = ImageText('out.png')
_, y = txt.write_text_box((670, -40), title, box_width=550, font_filename='Arial',
font_size=55, color='black')
txt.save('out.png')
fnt = ImageFont.truetype('Arial', 40)
im = Image.open('out.png')
draw = ImageDraw.Draw(im)
draw.text((675,y + 30), channel, font=fnt, fill='grey')
draw.text((675,y + 85), views, font=fnt, fill='grey')
im.save('out.png')
print('Image generated!')