Untitled


SUBMITTED BY: WesleySantista

DATE: Jan. 27, 2024, 4:39 p.m.

FORMAT: Text only

SIZE: 9.5 kB

HITS: 363

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Adicionar Episódios</title>
  7. <style>
  8. /* Configurações gerais do corpo da página */
  9. body {
  10. display: flex;
  11. flex-direction: column;
  12. align-items: center;
  13. min-height: 100vh;
  14. margin: 0;
  15. background-color: #f4f4f4;
  16. font-size: 18px;
  17. }
  18. /* Estilo do título principal */
  19. h2 {
  20. text-align: center;
  21. margin-bottom: 20px;
  22. }
  23. /* Estilo do formulário (card) */
  24. #epForm {
  25. display: flex;
  26. flex-direction: column;
  27. align-items: center;
  28. max-width: 600px; /* Largura máxima do card */
  29. width: 70%;
  30. padding: 10px 20px;
  31. /* padding: 40px; */
  32. background-color: #fff;
  33. border-radius: 8px;
  34. box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  35. margin-top: 20px;
  36. font-size: 18px;
  37. }
  38. /* Estilo dos rótulos e entradas do formulário */
  39. label,
  40. input {
  41. margin-bottom: 15px;
  42. width: 80%;
  43. text-align: center; /* Centraliza o texto dos rótulos */
  44. }
  45. /* Estilo do botão do formulário */
  46. button {
  47. background-color: #4caf50;
  48. color: white;
  49. width: 70%;
  50. height: 40px;
  51. padding: 7px 13px; /* Ajuste de preenchimento para ter o mesmo tamanho que as caixas de texto */
  52. border: none;
  53. border-radius: 5px;
  54. cursor: pointer;
  55. margin-top: 10px;
  56. /* Adicionando propriedades para centralizar o texto */
  57. display: flex;
  58. justify-content: center;
  59. align-items: center;
  60. }
  61. /* Efeito de hover para o botão */
  62. button:hover {
  63. background-color: #45a049;
  64. }
  65. /* Estilos do modal de sucesso */
  66. .modal {
  67. display: none;
  68. position: fixed;
  69. top: 0;
  70. left: 0;
  71. width: 100%;
  72. height: 100%;
  73. background-color: rgba(0, 0, 0, 0.5);
  74. justify-content: center;
  75. align-items: center;
  76. }
  77. .modal-content {
  78. background-color: #fff;
  79. padding: 30px;
  80. border-radius: 8px;
  81. box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  82. max-width: 600px;
  83. text-align: center;
  84. font-size: 18px;
  85. }
  86. /* Estilo do botão de fechar do modal */
  87. .close {
  88. position: absolute;
  89. top: 10px;
  90. right: 10px;
  91. cursor: pointer;
  92. font-size: 24px;
  93. }
  94. </style>
  95. <!-- Adicione aqui os links para seus arquivos CSS ou bibliotecas JS, se necessário -->
  96. </head>
  97. <body>
  98. <h2>Add Episódios em Massa</h2>
  99. <form id="epForm">
  100. <label for="serie"><b>Nome da Série:</b></label>
  101. <input type="text" id="serie" name="serie" required><br>
  102. <label for="temporada"><b>Número da Temporada:</b></label>
  103. <input type="text" id="temporada" name="temporada" required><br>
  104. <label for="numEpisodios"><b>Número Total de Episódios:</b></label>
  105. <input type="number" id="numEpisodios" name="numEpisodios" required><br>
  106. <label for="imagen"><b>URL da Imagem Padrão:</b></label>
  107. <input type="text" id="imagen" name="imagen" required><br>
  108. <label for="linkSerie"><b>URL da Série:</b></label>
  109. <input type="text" id="linkSerie" name="linkSerie" required><br>
  110. <label for="imdb"><b>Código do TMDB</b>:</label>
  111. <input type="text" id="imdb" name="imdb" required><br>
  112. <button type="button" onclick="adicionarEpisodios()"><h3>Adicionar Episódios</h3></button>
  113. </form>
  114. <!-- Modal -->
  115. <div id="myModal" class="modal">
  116. <div class="modal-content">
  117. <span id="closeModal" class="close" onclick="fecharModal()">&times;</span>
  118. <p>Episódios adicionados com sucesso!</p>
  119. <button onclick="fecharModal()">OK</button>
  120. </div>
  121. </div>
  122. <script>
  123. function fecharModal() {
  124. var modal = document.getElementById("myModal");
  125. modal.style.display = "none";
  126. location.reload(); // Atualizar a página
  127. }
  128. </script>
  129. <script>
  130. function adicionarEpisodios() {
  131. // Obter valores do formulário
  132. var serie = document.getElementById("serie").value;
  133. var temporada = document.getElementById("temporada").value;
  134. var numEpisodios = document.getElementById("numEpisodios").value;
  135. var imagen = document.getElementById("imagen").value;
  136. var linkSerie = document.getElementById("linkSerie").value;
  137. var imdb = document.getElementById("imdb").value;
  138. // Adicionar episódios com base nas informações fornecidas
  139. for (var i = 1; i <= numEpisodios; i++) {
  140. // Criar um novo objeto para cada episódio
  141. var dataEpisodio = {
  142. imagen: imagen,
  143. titulo: 'a:1:{i:0;s:11:"SERVIDOR #1";}',
  144. type: 'Serie',
  145. user_post: 'Admin',
  146. imdb: imdb,
  147. linkEpisodio: {}
  148. };
  149. var nomeEpisodio = serie + " " + temporada + "x" + i;
  150. var linkEpisodio = "T0" + temporada + "EP" + (i < 10 ? "0" : "") + i;
  151. // Ajustar as propriedades específicas do episódio no objeto dataEpisodio
  152. dataEpisodio.nome = nomeEpisodio;
  153. dataEpisodio.linkEpisodio[i] = linkSerie + linkEpisodio;
  154. dataEpisodio.imdb = imdb + '/' + temporada + '/' + i;
  155. // Enviar dados ao servidor usando AJAX
  156. enviarDadosAoServidor(dataEpisodio);
  157. }
  158. alert("Episódios adicionados com sucesso!");
  159. }
  160. function enviarDadosAoServidor(dataEpisodio) {
  161. // Enviar dados ao servidor usando AJAX
  162. var xhr = new XMLHttpRequest();
  163. xhr.open("POST", "<?php echo $_SERVER['PHP_SELF']; ?>", true);
  164. xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  165. xhr.onreadystatechange = function () {
  166. if (xhr.readyState == 4 && xhr.status == 200) {
  167. // Você pode adicionar mais lógica aqui, se necessário
  168. }
  169. };
  170. // Modificar o link no formato desejado
  171. var linkFormatado = "http://link-base.com/xxxxxxxxxphp?=" + dataEpisodio.linkEpisodio[1];
  172. xhr.send(JSON.stringify({ ...dataEpisodio, linkEpisodioFormatado: linkFormatado }));
  173. }
  174. </script>
  175. </body>
  176. </html>
  177. <?php
  178. // Verifica se houve uma solicitação POST
  179. if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  180. // Configurações do banco de dados
  181. define("DB_TYPE", "mysql");
  182. define("DB_HOST", "localhost");
  183. define("DB_USER", "paineisvip_api_embed");
  184. define("DB_PASS", "paineisvip_api_embed");
  185. define("DB_NAME", "paineisvip_api_embed");
  186. // Obter dados do corpo da requisição
  187. $data = json_decode(file_get_contents("php://input"), true);
  188. // Conectar ao banco de dados
  189. try {
  190. $pdo = new PDO(DB_TYPE . ":host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);
  191. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  192. } catch (PDOException $e) {
  193. die("Erro na conexão com o banco de dados: " . $e->getMessage());
  194. }
  195. // Inserir episódios no banco de dados
  196. try {
  197. $stmt = $pdo->prepare("INSERT INTO link (nome, imagen, titulo, link, type, imdb, user_post) VALUES (?, ?, ?, ?, ?, ?, ?)");
  198. $stmt->bindParam(1, $data['nome']);
  199. $stmt->bindParam(2, $data['imagen']);
  200. $stmt->bindParam(3, $data['titulo']);
  201. $stmt->bindParam(5, $data['type']);
  202. $stmt->bindParam(6, $data['imdb']);
  203. $stmt->bindParam(7, $data['user_post']);
  204. // Definir os valores padrão para as colunas que não mudam
  205. $data['titulo'] = 'a:1:{i:0;s:11:"SERVIDOR #1";}';
  206. // Inserir episódios individualmente
  207. foreach ($data['linkEpisodio'] as $numEpisodio => $linkEpisodio) {
  208. $data['link'] = 'a:1:{i:0;s:' . strlen($linkEpisodio) . ':"' . $linkEpisodio . '";}';
  209. $stmt->bindParam(4, $data['link']); // Mova esta linha para dentro do loop foreach
  210. // Adicione a lógica para inserir o link formatado no banco de dados
  211. $linkFormatado = "http://link-base.com/xxxxxxxxxphp?=" . $linkEpisodio;
  212. // Adicione o campo linkFormatado na tabela se não existir
  213. $stmt->execute();
  214. }
  215. echo "Episódios adicionados com sucesso!";
  216. } catch (PDOException $e) {
  217. die("Erro ao adicionar episódios: " . $e->getMessage());
  218. }
  219. }
  220. ?>

comments powered by Disqus