forked from yzPeedro/SugoiAPI
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest-api-example.php
More file actions
98 lines (80 loc) · 3.11 KB
/
test-api-example.php
File metadata and controls
98 lines (80 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env php
<?php
/**
* Script de exemplo para testar a API SugoiAPI
*
* Uso:
* php test-api-example.php [anime-slug] [temporada] [episodio]
*
* Exemplo:
* php test-api-example.php naruto 1 1
*/
// Configurações
$baseUrl = 'http://localhost:1010';
// Argumentos da linha de comando
$animeSlug = $argv[1] ?? 'naruto';
$temporada = $argv[2] ?? 1;
$episodio = $argv[3] ?? 1;
// Monta a URL
$url = sprintf('%s/episode/%s/%d/%d', $baseUrl, $animeSlug, $temporada, $episodio);
echo "╔══════════════════════════════════════════════════════════╗\n";
echo "║ SugoiAPI - Teste de Endpoint ║\n";
echo "╚══════════════════════════════════════════════════════════╝\n\n";
echo "🔍 Testando endpoint:\n";
echo " URL: {$url}\n\n";
// Faz a requisição
echo "⏳ Fazendo requisição...\n\n";
$context = stream_context_create([
'http' => [
'timeout' => 30,
'ignore_errors' => true,
]
]);
$response = @file_get_contents($url, false, $context);
if ($response === false) {
echo "❌ Erro: Não foi possível conectar à API\n";
echo " Certifique-se de que a API está rodando em {$baseUrl}\n";
echo " Execute: docker compose up -d\n";
exit(1);
}
// Parse da resposta
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
echo "❌ Erro ao decodificar JSON\n";
echo " Resposta: {$response}\n";
exit(1);
}
// Exibe o resultado
if ($data['error']) {
echo "❌ Erro na requisição:\n";
echo " Status: {$data['status']}\n";
echo " Mensagem: {$data['message']}\n";
} else {
echo "✅ Sucesso!\n";
echo " Status: {$data['status']}\n";
echo " Mensagem: {$data['message']}\n\n";
if (isset($data['data']) && !empty($data['data'])) {
echo "📺 Providers encontrados: " . count($data['data']) . "\n\n";
foreach ($data['data'] as $provider) {
echo " Provider: {$provider['name']}\n";
echo " Slug: {$provider['slug']}\n";
echo " Tem anúncios: " . ($provider['has_ads'] ? 'Sim' : 'Não') . "\n";
echo " É embed: " . ($provider['is_embed'] ? 'Sim' : 'Não') . "\n";
if (!empty($provider['episodes'])) {
echo " Episódios encontrados: " . count($provider['episodes']) . "\n";
foreach ($provider['episodes'] as $index => $episode) {
if (!$episode['error']) {
echo " - Link " . ($index + 1) . ": {$episode['episode']}\n";
}
}
}
echo "\n";
}
}
}
echo "\n";
echo "📋 Resposta completa (JSON):\n";
echo str_repeat("─", 60) . "\n";
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
echo "\n" . str_repeat("─", 60) . "\n";
exit($data['error'] ? 1 : 0);