diff --git a/readme.md b/readme.md index 18879ce..054f3b5 100644 --- a/readme.md +++ b/readme.md @@ -92,7 +92,7 @@ docker exec -u root -t -i some-app /bin/bash mysql -u root -p -

6. Create table meme in appdb database, then allow dbusr to access it

+

6. Create table meme and meme_ronaldo in appdb database, then allow dbusr to access it

 USE appdb;
 
@@ -104,6 +104,15 @@ CREATE TABLE `meme` (
 	`value` TEXT,
 	PRIMARY KEY (`id`)
 );
+
+CREATE TABLE `meme_ronaldo` (
+	`id` INT(10) NOT NULL AUTO_INCREMENT,
+	`session` VARCHAR(20),
+	`status` INT(1),
+	`timestamp` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+	`value` TEXT,
+	PRIMARY KEY (`id`)
+);
 
 
@@ -133,7 +142,17 @@ pip3 install moviepy
 
 python3 renderDB.py
 
-

10. Open your browser, navigate to http://{your-ip}:8080/meme-generator/

+ +

10. Run the second Python script by creating a new screen session, detach from screen by pressing Ctrl + A then Ctrl + D

+
+screen
+
+
+cd /var/www/html/meme-generator/ronaldo
+python3 renderDB.py
+
+ +

11. Open your browser, navigate to http://{your-ip}:8080/meme-generator/

External repo

https://repo.gabrielkheisa.xyz/gabrielkheisa/meme-generator diff --git a/ronaldo/check.php b/ronaldo/check.php new file mode 100644 index 0000000..c483d84 --- /dev/null +++ b/ronaldo/check.php @@ -0,0 +1,47 @@ +connect_error) { + die("Connection failed: " . $conn->connect_error); +} + +$sql = "SELECT status FROM meme_ronaldo WHERE session='".$q."' ORDER BY id DESC LIMIT 1"; +$result = $conn->query($sql); + + +if ($result->num_rows > 0) { + // output data of each row + while($row = $result->fetch_assoc()) { + if($row["status"] == "1"){ + echo "Click here"; + } + else { + echo "Processing"; + } + } + + +} else { + echo "0 results"; +} +$conn->close(); + + + + + + + +?> + diff --git a/ronaldo/index.php b/ronaldo/index.php new file mode 100644 index 0000000..908218a --- /dev/null +++ b/ronaldo/index.php @@ -0,0 +1,183 @@ + + + + + + + + + + + +connect_error) { + die("Connection failed: " . $conn->connect_error); + } + /* + $sql = "INSERT INTO meme (session, status) + VALUES ('". $sesid ."', '0')"; + + if ($conn->query($sql) === TRUE) { + // echo "New record created successfully"; + } + else { + // echo "Error: " . $sql . "
" . $conn->error; + } + $conn->close(); + */ + + +} +else { + // echo "Cookie '" . $cookie_name . "' is set!
"; + // echo "Value is: " . $_COOKIE[$cookie_name]; + $sesid = $_COOKIE[$cookie_name]; +} + + +?> + +Meme generator + + + + + + Your browser does not support HTML video. + +

+
+ Text 1:
+ Text 2:
+ Text 3:
+ Text 4:
+ Text 5:
+ Text 6:
+ Text 7:
+ Text 8:
+ Text 9:
+
+

+ +
+
+ +
+ "; + +} +?> + + + + + + \ No newline at end of file diff --git a/ronaldo/process.php b/ronaldo/process.php new file mode 100644 index 0000000..7e97a25 --- /dev/null +++ b/ronaldo/process.php @@ -0,0 +1,125 @@ + + + +connect_error) { + die("Connection failed: " . $conn->connect_error); + } + + $sql = "INSERT INTO meme (session, status) + VALUES ('". $sesid ."', '0')"; + + if ($conn->query($sql) === TRUE) { + // echo "New record created successfully"; + } + else { + // echo "Error: " . $sql . "
" . $conn->error; + } + $conn->close(); + */ + +} +else { + // echo "Cookie '" . $cookie_name . "' is set!
"; + // echo "Value is: " . $_COOKIE[$cookie_name]; + $sesid = $_COOKIE[$cookie_name]; + // Create connection + $conn = new mysqli($servername, $username, $password, $dbname); + // Check connection + if ($conn->connect_error) { + die("Connection failed: " . $conn->connect_error); + } + //"UPDATE MyGuests SET lastname='Doe' WHERE id=2"; + // $sql = "UPDATE meme SET status='0' value='". $_GET["hasil"]. "' WHERE sesid='". $sesid ."'"; + $sql = "INSERT INTO meme_ronaldo (session, status, value) + VALUES ('". $sesid ."', '0', '". $_GET["hasil"] ."') ON DUPLICATE KEY UPDATE + session='".$sesid."', status='0', value='".$_GET["hasil"]."' " ; + + if ($conn->query($sql) === TRUE) { + // echo "New record created successfully"; + } + else { + // echo "Error: " . $sql . "
" . $conn->error; + } + $conn->close(); + +} + + + + +?> + + + +

+ +

Please wait... dont refresh

+

+

+ + + + + \ No newline at end of file diff --git a/ronaldo/renderDB.py b/ronaldo/renderDB.py new file mode 100644 index 0000000..a5b739f --- /dev/null +++ b/ronaldo/renderDB.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +from moviepy.editor import * +import base64 +import time +import textwrap +import mysql.connector + + + +bendera = 0 + +theteks = "" +picture = VideoFileClip("video.mp4") + +thesize = 25 + + +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) + t3 = textwrap.fill(tp[2].upper(), thesize) + t4 = textwrap.fill(tp[3].upper(), thesize) + t5 = textwrap.fill(tp[4].upper(), thesize) + t6 = textwrap.fill(tp[5].upper(), thesize) + t7 = textwrap.fill(tp[6].upper(), thesize) + t8 = textwrap.fill(tp[7].upper(), thesize) + t9 = textwrap.fill(tp[8].upper(), thesize) + t10 = "10 KETIKA 11" + + texts = [t1,t2,t3,t4,t5,t6,t7,t8,t9] + + + step = 3 #each 15 sec: 0, 15, 30 + duration = 3 + t = 0 + txt_clips = [] + + starts = [0,3,6,9,12,15,20,23,26] # or whatever + durations = [3,3,3,3,3,5,3,3,3] + + for text,t,duration in zip(texts, starts, durations): + txt_clip = TextClip(text, fontsize = 40, color='white', font="Roboto Mono", 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],txt_clips[2],txt_clips[3],txt_clips[4],txt_clips[5],txt_clips[6],txt_clips[7],txt_clips[8]]) + + 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( + host="", + user="", + password="", + database="" + ) + + checkindo() + time.sleep(1) + +# textwrap.fill(tp[0].upper(), thesize) + + + + diff --git a/ronaldo/video.mp4 b/ronaldo/video.mp4 new file mode 100644 index 0000000..6c0b3cc Binary files /dev/null and b/ronaldo/video.mp4 differ