created database to store all relevant data
This commit is contained in:
parent
4ad29fd072
commit
90fdb64f85
@ -18,6 +18,8 @@
|
|||||||
background-color: #7F7F7F;
|
background-color: #7F7F7F;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
|
border: 10px;
|
||||||
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.videopreview:hover {
|
.videopreview:hover {
|
||||||
@ -27,10 +29,12 @@
|
|||||||
|
|
||||||
.previewtitle {
|
.previewtitle {
|
||||||
height: 10%;
|
height: 10%;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.previewpic {
|
.previewpic {
|
||||||
height: 90%;
|
height: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hideit {
|
.hideit {
|
||||||
@ -38,6 +42,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.closebutton {
|
.closebutton {
|
||||||
height: 15px;
|
color: white;
|
||||||
|
height: 35px;
|
||||||
|
width: 90px;
|
||||||
|
margin-right: 80px;
|
||||||
|
float: right;
|
||||||
background-color: #FF0000;
|
background-color: #FF0000;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
9
database.sql
Normal file
9
database.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
create table if not exists videos
|
||||||
|
(
|
||||||
|
movie_id int auto_increment
|
||||||
|
primary key,
|
||||||
|
movie_name varchar(200) null,
|
||||||
|
movie_url varchar(200) null,
|
||||||
|
thumbnail mediumblob null,
|
||||||
|
likes int default 0 null
|
||||||
|
);
|
@ -14,9 +14,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<h1>lukis pornhub</h1>
|
<h1>lukis pornhub</h1>
|
||||||
<div class="videopagewrapper hideit">
|
<div class="videopagewrapper hideit">
|
||||||
<div class="closebutton">
|
<div class="closebutton">Close</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="videowrapper"></div>
|
<div class="videowrapper"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
75
js/index.js
75
js/index.js
@ -1,10 +1,11 @@
|
|||||||
var videos;
|
let videos;
|
||||||
var loadindex = 0;
|
let loadindex = 0;
|
||||||
var scrollposition = 0;
|
let scrollposition = 0;
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$.post('php/videoload.php', 'action', function (data) {
|
$.post('php/videoload.php', 'action=getMovies', function (data) {
|
||||||
videos = data;
|
videos = data;
|
||||||
|
console.log(videos);
|
||||||
loadPreviewBlock(12);
|
loadPreviewBlock(12);
|
||||||
}, 'json');
|
}, 'json');
|
||||||
|
|
||||||
@ -28,44 +29,48 @@ $(window).scroll(function () {
|
|||||||
function loadPreviewBlock(nr) {
|
function loadPreviewBlock(nr) {
|
||||||
for (let i = 0; i < nr; i++) {
|
for (let i = 0; i < nr; i++) {
|
||||||
if (loadindex + i < videos.length) {
|
if (loadindex + i < videos.length) {
|
||||||
if (videos[loadindex + i] != "." && videos[loadindex + i] != "..") {
|
loadPreview(videos[loadindex + i]);
|
||||||
loadPreview(videos[loadindex + i]);
|
|
||||||
} else {
|
|
||||||
nr++;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loadindex += nr;
|
loadindex += nr;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPreview(src) {
|
function loadPreview(src) {
|
||||||
var preview = $("<div class='videopreview'><div class='previewtitle'>" + src + "</div><div class='previewpic'><img style='width:100%;height:100%' src=\"videos/thumbnails/" + src + ".jpg\" alt='no thumbnail found'></img></div></div>");
|
$.post('php/videoload.php', 'action=readThumbnail&movieid=' + src.movie_id, function (data) {
|
||||||
preview.attr('videourl', "videos/prn/" + src);
|
var preview = $(`
|
||||||
preview.attr('thumbnailurl', "videos/thumbnails/" + src);
|
<div class='videopreview'>
|
||||||
preview.click(function () {
|
<div class='previewtitle'>${src.movie_name}</div>
|
||||||
console.log("preview clicked");
|
<div class='previewpic'>
|
||||||
scrollposition = $(window).scrollTop();
|
<img style='width:100%;height:100%' src="${data}" alt='no thumbnail found'/>
|
||||||
loadVideo($(this).attr("videourl"), $(this).attr("thumbnailurl") + ".jpg");
|
</div>
|
||||||
});
|
</div>`);
|
||||||
$(".previewcontainer").append(preview);
|
preview.attr('movie_id', src.movie_id);
|
||||||
|
preview.click(function () {
|
||||||
|
console.log("preview clicked");
|
||||||
|
scrollposition = $(window).scrollTop();
|
||||||
|
loadVideo($(this).attr("movie_id"));
|
||||||
|
});
|
||||||
|
$(".previewcontainer").append(preview);
|
||||||
|
}, 'text');
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadVideo(src, posterlink) {
|
function loadVideo(movieid) {
|
||||||
$(".videowrapper").html("<div class='myvideo'><video controls crossorigin playsinline id='player'></video></div>");
|
$.post('php/videoload.php', 'action=loadVideo&movieid=' + movieid, function (data) {
|
||||||
|
$(".videowrapper").html("<div class='myvideo'><video controls crossorigin playsinline id='player'></video></div>");
|
||||||
|
|
||||||
const player = new Plyr('#player');
|
const player = new Plyr('#player');
|
||||||
player.source = {
|
player.source = {
|
||||||
type: 'video',
|
type: 'video',
|
||||||
sources: [
|
sources: [
|
||||||
{
|
{
|
||||||
src: src,
|
src: data.movie_url,
|
||||||
type: 'video/mp4',
|
type: 'video/mp4',
|
||||||
size: 1080,
|
size: 1080,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
poster: posterlink
|
poster: data.thumbnail
|
||||||
};
|
};
|
||||||
$(".videopagewrapper").show();
|
$(".videopagewrapper").show();
|
||||||
$(".previewcontainer").hide();
|
$(".previewcontainer").hide();
|
||||||
|
}, "json");
|
||||||
}
|
}
|
||||||
|
37
php/Database.php
Normal file
37
php/Database.php
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Database
|
||||||
|
{
|
||||||
|
private static $instance = null;
|
||||||
|
private $conn;
|
||||||
|
|
||||||
|
private $servername = "192.168.0.30";
|
||||||
|
private $username = "root";
|
||||||
|
private $password = "1qayxsw2";
|
||||||
|
private $dbname = "hub";
|
||||||
|
|
||||||
|
// The db connection is established in the private constructor.
|
||||||
|
private function __construct()
|
||||||
|
{
|
||||||
|
// Create connection
|
||||||
|
$this->conn = new mysqli($this->servername, $this->username, $this->password, $this->dbname);
|
||||||
|
|
||||||
|
if ($this->conn->connect_errno) {
|
||||||
|
echo "connecton failed... nr: " . $this->conn->connect_errno . " -- " . $this->conn->connect_error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getInstance()
|
||||||
|
{
|
||||||
|
if (!self::$instance) {
|
||||||
|
self::$instance = new Database();
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getConnection()
|
||||||
|
{
|
||||||
|
return $this->conn;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,41 @@
|
|||||||
<?php
|
<?php
|
||||||
|
require 'Database.php';
|
||||||
|
|
||||||
|
$conn = Database::getInstance()->getConnection();
|
||||||
|
|
||||||
$arr = scandir("../videos/prn/");
|
$arr = scandir("../videos/prn/");
|
||||||
|
|
||||||
|
$all = 0;
|
||||||
|
$added = 0;
|
||||||
|
$failed = 0;
|
||||||
|
|
||||||
foreach ($arr as $elem) {
|
foreach ($arr as $elem) {
|
||||||
shell_exec("ffmpeg -ss 00:04:00 -i \"../videos/prn/$elem\" -vframes 1 -q:v 2 \"$elem.jpg\"");
|
if ($elem != "." && $elem != "..") {
|
||||||
|
|
||||||
|
$query = "SELECT * FROM videos WHERE movie_name = '" . mysqli_real_escape_string($conn, $elem) . "'";
|
||||||
|
$result = $conn->query($query);
|
||||||
|
if (!mysqli_fetch_assoc($result)) {
|
||||||
|
$pic = shell_exec("ffmpeg -hide_banner -loglevel panic -ss 00:04:00 -i \"../videos/prn/$elem\" -vframes 1 -q:v 2 -f singlejpeg pipe:1 2>/dev/null");
|
||||||
|
|
||||||
|
$image_base64 = base64_encode($pic);
|
||||||
|
|
||||||
|
$image = 'data:image/jpeg;base64,' . $image_base64;
|
||||||
|
$conn = Database::getInstance()->getConnection();
|
||||||
|
|
||||||
|
$query = "INSERT INTO videos(movie_name,movie_url,thumbnail) VALUES ('" . mysqli_real_escape_string($conn, $elem) . "','" . mysqli_real_escape_string($conn, 'videos/prn/' . $elem) . "','$image')";
|
||||||
|
|
||||||
|
if ($conn->query($query) === TRUE) {
|
||||||
|
echo('successfully added ' . $elem . " to video gravity\n");
|
||||||
|
$added++;
|
||||||
|
} else {
|
||||||
|
echo('{"data":"' . $conn->error . '"}');
|
||||||
|
$failed++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$all++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "Total gravity: " . $all . "\n";
|
||||||
|
echo "added in this run: " . $added . "\n";
|
||||||
|
echo "errored in this run: " . $failed . "\n";
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
$server = "172.17.0.2";
|
|
||||||
$user = "mwit";
|
|
||||||
$password = "3MnDApF3bu6XDGOE";
|
|
||||||
$database = "mwitdb";
|
|
||||||
|
|
||||||
$mysqli = new mysqli($server, $user, $password, $database);
|
|
||||||
if ($mysqli->connect_errno) {
|
|
||||||
echo "connecton failed... nr: " . $mysqli->connect_errno . " -- " . $mysqli->connect_error;
|
|
||||||
}
|
|
@ -1,8 +1,61 @@
|
|||||||
<?php
|
<?php
|
||||||
|
require 'Database.php';
|
||||||
|
|
||||||
|
$conn = Database::getInstance()->getConnection();
|
||||||
|
|
||||||
$arr = scandir("../videos/prn/");
|
|
||||||
echo(json_encode($arr));
|
|
||||||
|
|
||||||
if (isset($_POST['action'])) {
|
if (isset($_POST['action'])) {
|
||||||
|
$action = $_POST['action'];
|
||||||
|
switch ($action) {
|
||||||
|
case "getMovies":
|
||||||
|
$query = "SELECT movie_id,movie_name FROM videos ORDER BY likes DESC,movie_name ASC";
|
||||||
|
$result = $conn->query($query);
|
||||||
|
$rows = array();
|
||||||
|
while ($r = mysqli_fetch_assoc($result)) {
|
||||||
|
array_push($rows,$r);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo(json_encode($rows));
|
||||||
|
break;
|
||||||
|
case "loadVideo":
|
||||||
|
$query = "SELECT movie_url,thumbnail FROM videos WHERE movie_id='" . $_POST['movieid'] . "'";
|
||||||
|
|
||||||
|
$result = $conn->query($query);
|
||||||
|
$row = $result->fetch_assoc();
|
||||||
|
|
||||||
|
$arr = array();
|
||||||
|
$arr["thumbnail"] = $row["thumbnail"];
|
||||||
|
$arr["movie_url"] = $row["movie_url"];
|
||||||
|
echo(json_encode($arr));
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "getDbSize":
|
||||||
|
$query = "SELECT table_schema AS \"Database\",
|
||||||
|
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS \"Size\"
|
||||||
|
FROM information_schema.TABLES
|
||||||
|
WHERE TABLE_SCHEMA='test'
|
||||||
|
GROUP BY table_schema;";
|
||||||
|
$result = $conn->query($query);
|
||||||
|
|
||||||
|
if ($result->num_rows == 1) {
|
||||||
|
$row = $result->fetch_assoc();
|
||||||
|
|
||||||
|
echo '{"data":"' . $row["Size"] . '"}';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "readThumbnail":
|
||||||
|
$query = "SELECT thumbnail FROM videos WHERE movie_id='" . $_POST['movieid'] . "'";
|
||||||
|
|
||||||
|
$result = $conn->query($query);
|
||||||
|
$row = $result->fetch_assoc();
|
||||||
|
|
||||||
|
echo($row["thumbnail"]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo('{"data":"error"}');
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user