<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Adicionar Episódios</title>
<style>
/* Configurações gerais do corpo da página */
body {
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
margin: 0;
background-color: #f4f4f4;
font-size: 18px;
}
/* Estilo do título principal */
h2 {
text-align: center;
margin-bottom: 20px;
}
/* Estilo do formulário (card) */
#epForm {
display: flex;
flex-direction: column;
align-items: center;
max-width: 600px; /* Largura máxima do card */
width: 70%;
padding: 10px 20px;
/* padding: 40px; */
background-color: #fff;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
margin-top: 20px;
font-size: 18px;
}
/* Estilo dos rótulos e entradas do formulário */
label,
input {
margin-bottom: 15px;
width: 80%;
text-align: center; /* Centraliza o texto dos rótulos */
}
/* Estilo do botão do formulário */
button {
background-color: #4caf50;
color: white;
width: 70%;
height: 40px;
padding: 7px 13px; /* Ajuste de preenchimento para ter o mesmo tamanho que as caixas de texto */
border: none;
border-radius: 5px;
cursor: pointer;
margin-top: 10px;
/* Adicionando propriedades para centralizar o texto */
display: flex;
justify-content: center;
align-items: center;
}
/* Efeito de hover para o botão */
button:hover {
background-color: #45a049;
}
/* Estilos do modal de sucesso */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
justify-content: center;
align-items: center;
}
.modal-content {
background-color: #fff;
padding: 30px;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
max-width: 600px;
text-align: center;
font-size: 18px;
}
/* Estilo do botão de fechar do modal */
.close {
position: absolute;
top: 10px;
right: 10px;
cursor: pointer;
font-size: 24px;
}
</style>
<!-- Adicione aqui os links para seus arquivos CSS ou bibliotecas JS, se necessário -->
</head>
<body>
<h2>Add Episódios em Massa</h2>
<form id="epForm">
<label for="serie"><b>Nome da Série:</b></label>
<input type="text" id="serie" name="serie" required><br>
<label for="temporada"><b>Número da Temporada:</b></label>
<input type="text" id="temporada" name="temporada" required><br>
<label for="numEpisodios"><b>Número Total de Episódios:</b></label>
<input type="number" id="numEpisodios" name="numEpisodios" required><br>
<label for="imagen"><b>URL da Imagem Padrão:</b></label>
<input type="text" id="imagen" name="imagen" required><br>
<label for="linkSerie"><b>URL da Série:</b></label>
<input type="text" id="linkSerie" name="linkSerie" required><br>
<label for="imdb"><b>Código do TMDB</b>:</label>
<input type="text" id="imdb" name="imdb" required><br>
<button type="button" onclick="adicionarEpisodios()"><h3>Adicionar Episódios</h3></button>
</form>
<!-- Modal -->
<div id="myModal" class="modal">
<div class="modal-content">
<span id="closeModal" class="close" onclick="fecharModal()">×</span>
<p>Episódios adicionados com sucesso!</p>
<button onclick="fecharModal()">OK</button>
</div>
</div>
<script>
function fecharModal() {
var modal = document.getElementById("myModal");
modal.style.display = "none";
location.reload(); // Atualizar a página
}
</script>
<script>
function adicionarEpisodios() {
// Obter valores do formulário
var serie = document.getElementById("serie").value;
var temporada = document.getElementById("temporada").value;
var numEpisodios = document.getElementById("numEpisodios").value;
var imagen = document.getElementById("imagen").value;
var linkSerie = document.getElementById("linkSerie").value;
var imdb = document.getElementById("imdb").value;
// Adicionar episódios com base nas informações fornecidas
for (var i = 1; i <= numEpisodios; i++) {
// Criar um novo objeto para cada episódio
var dataEpisodio = {
imagen: imagen,
titulo: 'a:1:{i:0;s:11:"SERVIDOR #1";}',
type: 'Serie',
user_post: 'Admin',
imdb: imdb,
linkEpisodio: {}
};
var nomeEpisodio = serie + " " + temporada + "x" + i;
var linkEpisodio = "T0" + temporada + "EP" + (i < 10 ? "0" : "") + i;
// Ajustar as propriedades específicas do episódio no objeto dataEpisodio
dataEpisodio.nome = nomeEpisodio;
dataEpisodio.linkEpisodio[i] = linkSerie + linkEpisodio;
dataEpisodio.imdb = imdb + '/' + temporada + '/' + i;
// Enviar dados ao servidor usando AJAX
enviarDadosAoServidor(dataEpisodio);
}
alert("Episódios adicionados com sucesso!");
}
function enviarDadosAoServidor(dataEpisodio) {
// Enviar dados ao servidor usando AJAX
var xhr = new XMLHttpRequest();
xhr.open("POST", "<?php echo $_SERVER['PHP_SELF']; ?>", true);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
// Você pode adicionar mais lógica aqui, se necessário
}
};
// Modificar o link no formato desejado
var linkFormatado = "http://link-base.com/xxxxxxxxxphp?=" + dataEpisodio.linkEpisodio[1];
xhr.send(JSON.stringify({ ...dataEpisodio, linkEpisodioFormatado: linkFormatado }));
}
</script>
</body>
</html>
<?php
// Verifica se houve uma solicitação POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Configurações do banco de dados
define("DB_TYPE", "mysql");
define("DB_HOST", "localhost");
define("DB_USER", "paineisvip_api_embed");
define("DB_PASS", "paineisvip_api_embed");
define("DB_NAME", "paineisvip_api_embed");
// Obter dados do corpo da requisição
$data = json_decode(file_get_contents("php://input"), true);
// Conectar ao banco de dados
try {
$pdo = new PDO(DB_TYPE . ":host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Erro na conexão com o banco de dados: " . $e->getMessage());
}
// Inserir episódios no banco de dados
try {
$stmt = $pdo->prepare("INSERT INTO link (nome, imagen, titulo, link, type, imdb, user_post) VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bindParam(1, $data['nome']);
$stmt->bindParam(2, $data['imagen']);
$stmt->bindParam(3, $data['titulo']);
$stmt->bindParam(5, $data['type']);
$stmt->bindParam(6, $data['imdb']);
$stmt->bindParam(7, $data['user_post']);
// Definir os valores padrão para as colunas que não mudam
$data['titulo'] = 'a:1:{i:0;s:11:"SERVIDOR #1";}';
// Inserir episódios individualmente
foreach ($data['linkEpisodio'] as $numEpisodio => $linkEpisodio) {
$data['link'] = 'a:1:{i:0;s:' . strlen($linkEpisodio) . ':"' . $linkEpisodio . '";}';
$stmt->bindParam(4, $data['link']); // Mova esta linha para dentro do loop foreach
// Adicione a lógica para inserir o link formatado no banco de dados
$linkFormatado = "http://link-base.com/xxxxxxxxxphp?=" . $linkEpisodio;
// Adicione o campo linkFormatado na tabela se não existir
$stmt->execute();
}
echo "Episódios adicionados com sucesso!";
} catch (PDOException $e) {
die("Erro ao adicionar episódios: " . $e->getMessage());
}
}
?>