meme-generator/ronaldo/renderDB.py

98 lines
2.1 KiB
Python
Raw Normal View History

2023-03-20 12:42:32 +07:00
#!/usr/bin/env python3
from moviepy.editor import *
import base64
import time
import textwrap
import mysql.connector
bendera = 0
theteks = ""
picture = VideoFileClip("video.mp4")
2023-03-20 19:50:47 +07:00
thesize = 30
2023-03-20 12:42:32 +07:00
def checkindo():
mycursor = mydb.cursor()
sql = "SELECT * FROM meme_ronaldo WHERE status = '0' "
mycursor.execute(sql)
myresult = mycursor.fetchall()
if not myresult:
print("No input video")
return
for x in myresult:
user_empty = x[1]
text_db = x[4] # Fetch from Teks
print(text_db)
if (len(user_empty)) <= 1:
print("Ok")
return
else:
print("User " + user_empty + " kosong, rendering " + str(user_empty))
text_dbd = str(base64.b64decode(text_db))
theteks = text_dbd[2:]
tp = theteks.split(",")
t1 = textwrap.fill(tp[0].upper(), thesize)
t2 = textwrap.fill(tp[1].upper(), thesize)
t10 = "10 KETIKA 11"
2023-03-20 19:50:47 +07:00
texts = [t1,t2]
2023-03-20 12:42:32 +07:00
step = 3 #each 15 sec: 0, 15, 30
duration = 3
t = 0
txt_clips = []
2023-03-20 19:50:47 +07:00
starts = [0,8] # or whatever
durations = [8,0]
2023-03-20 12:42:32 +07:00
for text,t,duration in zip(texts, starts, durations):
2023-03-20 19:50:47 +07:00
txt_clip = TextClip(text, fontsize = 20, color='white', font="Roboto Mono", stroke_color="black")
2023-03-20 12:42:32 +07:00
txt_clip = txt_clip.set_start(t)
txt_clip = txt_clip.set_pos('bottom').set_duration(duration)
txt_clips.append(txt_clip)
2023-03-20 19:50:47 +07:00
final_video = CompositeVideoClip([picture,txt_clips[0],txt_clips[1]])
2023-03-20 12:42:32 +07:00
final_video.write_videofile(str(user_empty)+".mp4")
#with open('teks.txt', "w") as myfile:
#myfile.write("S0VUSUtBIDEsS0VUSUtBIDIsS0VUSUtBIDMsS0VUSUtBIDQsS0VUSUtBIDUsS0VUSUtBIDYsS0VUSUtBIDcsS0VUSUtBIDgsS0VUSUtBIDks")
sql = "UPDATE meme_ronaldo SET status = \'"+ "1" +"\' WHERE session = \'" + str(user_empty) +"\'"
mycursor.execute(sql)
# myresult = mycursor.fetchall()
mydb.commit()
return
while True:
mydb = mysql.connector.connect(
2023-03-20 19:50:47 +07:00
host="127.0.0.1",
user="dbusr",
password="securepwd",
database="appdb"
2023-03-20 12:42:32 +07:00
)
checkindo()
time.sleep(1)
# textwrap.fill(tp[0].upper(), thesize)