-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi_manga_view.php
96 lines (84 loc) · 3.1 KB
/
api_manga_view.php
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
<?php
// api_manga_view.php
header('Content-Type: application/json');
try {
// Check if title, id, and page parameters are provided
if (isset($_GET['title']) && isset($_GET['id']) && isset($_GET['page'])) {
$episode_name = $_GET['title'];
$image_id = $_GET['id'];
$page = $_GET['page'];
// Connect to the SQLite database
$db = new PDO('sqlite:database.sqlite');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Query to get images from the images table and image_child for the current image ID
$query = "
SELECT
images.*,
users.id AS userid,
users.artist
FROM images
JOIN users ON images.email = users.email
WHERE artwork_type = 'manga'
AND episode_name = :episode_name
AND images.id = :image_id
";
$stmt = $db->prepare($query);
$stmt->bindParam(':episode_name', $episode_name);
$stmt->bindParam(':image_id', $image_id);
$stmt->execute();
// Fetch the result
$result = $stmt->fetch(PDO::FETCH_ASSOC);
// Remove email-related fields from the result
unset($result['email']); // If email is returned from images table
unset($result['artist']); // If artist is sensitive, it can also be removed
// Query to get image_child for the current image ID
$query_child = "
SELECT *
FROM image_child
WHERE image_id = :image_id
";
$stmt_child = $db->prepare($query_child);
$stmt_child->bindParam(':image_id', $image_id);
$stmt_child->execute();
// Fetch all image_child results
$results_child = $stmt_child->fetchAll(PDO::FETCH_ASSOC);
// Remove email-related fields from all image_child results
foreach ($results_child as &$child) {
unset($child['email']);
}
// New section: Query to get all images from the images table for the current episode_name
$query_all_episodes = "
SELECT
images.*,
users.id AS userid,
users.artist
FROM images
JOIN users ON images.email = users.email
WHERE artwork_type = 'manga'
AND episode_name = :episode_name
ORDER BY images.id DESC
";
$stmt_all_episodes = $db->prepare($query_all_episodes);
$stmt_all_episodes->bindParam(':episode_name', $episode_name);
$stmt_all_episodes->execute();
// Fetch all results for the "all episodes" section
$results_all_episodes = $stmt_all_episodes->fetchAll(PDO::FETCH_ASSOC);
// Remove email-related fields from all_episodes results
foreach ($results_all_episodes as &$episode) {
unset($episode['email']);
}
// Prepare the response data
$response = [
'image_details' => $result,
'image_child' => $results_child,
'all_episodes' => $results_all_episodes
];
// Output response as JSON
echo json_encode($response, JSON_PRETTY_PRINT);
} else {
echo json_encode(['error' => 'Missing title, id, or page parameter']);
}
} catch (PDOException $e) {
echo json_encode(['error' => $e->getMessage()]);
}
?>