mirror of
https://github.com/gabrielkheisa/meme-generator-nodejs
synced 2024-11-24 12:23:17 +07:00
100 lines
2.1 KiB
Python
Executable File
100 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
from moviepy.editor import *
|
|
import base64
|
|
import time
|
|
import textwrap
|
|
import mysql.connector
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
bendera = 0
|
|
|
|
theteks = ""
|
|
picture = VideoFileClip("video.mp4")
|
|
|
|
thesize = 20
|
|
|
|
|
|
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[2]
|
|
text_db = x[1] # 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(text_db)
|
|
|
|
theteks = text_dbd
|
|
tp = theteks.split(",")
|
|
t1 = textwrap.fill(tp[0].upper(), thesize)
|
|
t2 = " "
|
|
t10 = "10 KETIKA 11"
|
|
|
|
texts = [t1, t2]
|
|
|
|
|
|
step = 3 #each 15 sec: 0, 15, 30
|
|
duration = 3
|
|
t = 0
|
|
txt_clips = []
|
|
|
|
starts = [0,8] # or whatever
|
|
durations = [8,0]
|
|
|
|
for text,t,duration in zip(texts, starts, durations):
|
|
txt_clip = TextClip(text, fontsize = 24, color='white',font="DejaVu-Serif-Bold", stroke_color="black")
|
|
txt_clip = txt_clip.set_start(t)
|
|
txt_clip = txt_clip.set_pos('bottom').set_duration(duration)
|
|
txt_clips.append(txt_clip)
|
|
|
|
final_video = CompositeVideoClip([picture,txt_clips[0],txt_clips[1]])
|
|
|
|
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 value = \'" + str(user_empty) +"\'"
|
|
mycursor.execute(sql)
|
|
# myresult = mycursor.fetchall()
|
|
mydb.commit()
|
|
return
|
|
|
|
|
|
while True:
|
|
mydb = mysql.connector.connect(
|
|
host=os.getenv('DB_HOST'),
|
|
user=os.getenv('DB_USER'),
|
|
password=os.getenv('DB_PASSWORD'),
|
|
database=os.getenv('DB_NAME')
|
|
)
|
|
|
|
checkindo()
|
|
time.sleep(1)
|
|
|
|
# textwrap.fill(tp[0].upper(), thesize)
|
|
|
|
|
|
|
|
|