/
api.php
122 lines (100 loc) · 2.99 KB
/
api.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/**
* API Crypt/Decrypt | ThiWeb Live
* Author : Zerawmaster
*
* Contributor : Ghostfly
* Last update : Added decodeMultiple
*
*/
require 'functions.php';
$response = [];
$response['status'] = 'error';
$response['action'] = 'none';
$response['message'] = 'Erreur de type inconnue.';
if (isset($_GET['code'])) // If we call /api.php?code we force a code operation
$action = 'code';
else if (isset($_GET['decode'])) // If we call /api.php?decode we force a decode operation
$action = 'decode';
else if (isset($_GET['decodeMultiple'])) // If we call /api.php?decodeMultiple we force a decodeMultiple operation
$action = 'decodeMultiple';
else // Else we let the api determine which operation to apply
$action = 'auto';
// We receive the str on which we should work
if (isset($_POST['str'])){
$str = trim($_POST['str']);
} else if (isset($_GET['str'])){
$str = trim ($_GET['str']);
} else {
$str = null;
}
if ($str == null) {
$response['status'] = 'warning';
$response['action'] = 'none';
$response['message'] = 'Aucun texte n\'a été reçu.';
} else {
if ($action == 'auto') {
$header = substr($str, 0, 6);
if ($header == "TWL2.1") {
$response['status'] = 'error';
$response['action'] = 'decode';
$response['message'] = 'Vous semblez essayer de décrypter du TWL2.1 qui n\'est pas supporté.';
}
else if ($header == "TWL2.0" || $header == "TWL2.2" || $header == "TWL2.3")
$action = 'decode';
else
$action = 'code';
} else if ($action == 'code') {
$response['status'] = 'success';
$response['action'] = 'code';
$response['message'] = code($str);
incrementUsageCounter ();
}
else if ($action == 'decode') {
try {
$response['message'] = ["html" => decode($str), "raw" => decode($str, false)];
$response['status'] = 'success';
$response['action'] = 'decode';
incrementUsageCounter ();
}
catch (Exception $e) {
$response['status'] = 'error';
$response['action'] = 'decode';
$response['message'] = $e->getMessage();
}
} else if($action == 'decodeMultiple') {
$result = "";
$coded = "";
$str = explode(',', $str);
$countStr = count($str)-1;
foreach($str as $k => $code){
if($k !== $countStr){
try {
$result .= decode($code, false) . ","; // We decode every string separated with a comma for Extension
$coded .= $code . ",";
} catch(Exception $e) {
$result .= $e->getMessage() . ",";
$coded .= $code . ",";
}
} else {
// There is only one str to decode so no comma
try {
$result .= decode($code, false);
$coded .= $code;
} catch (Exception $e){
$result .= $e->getMessage();
$coded .= $code;
}
}
}
$response['message'] = $result;
$response['coded'] = $coded;
$response['status'] = 'success';
$response['action'] = 'decodeMultiple';
}
}
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');
header('Content-Type: text/json; charset=utf-8');
echo json_encode($response, JSON_FORCE_OBJECT);