api-ix commited on
Commit
0a7b925
·
verified ·
1 Parent(s): 760e437

Upload 2 files

Browse files
Files changed (2) hide show
  1. script.js +13 -98
  2. styles.css +7 -19
script.js CHANGED
@@ -1,112 +1,31 @@
1
  /* ====== DATA ====== */
2
  const endpoints = [
3
  {
4
- name: "Decode",
5
- path: "/api/decode?binary=01001000",
6
- method: "GET",
7
- params: ["binary"],
8
- desc: "Binary → text",
9
- cat: "Tools",
10
- isActive: true,
11
- },
12
- {
13
- name: "Facebook DL",
14
- path: "/api/fbdl?url=https://www.facebook.com/share/r/1JB12MKi1Z/",
15
  method: "GET",
16
  params: ["url"],
17
- desc: "Facebook video downloader",
18
  cat: "Downloaders",
19
  isActive: true,
20
  },
21
  {
22
- name: "Flirt 😏",
23
- path: "/api/flirt",
24
  method: "GET",
25
  params: [],
26
- desc: "Random flirting text",
27
  cat: "Fun",
28
- isActive: false,
29
- },
30
- {
31
- name: "Font",
32
- path: "/api/font",
33
- method: "GET",
34
- params: ["text"],
35
- desc: "Generate different fonts",
36
- cat: "Tools",
37
- isActive: true,
38
- },
39
- {
40
- name: "Gpt3.5",
41
- path: "/api/gpt3.5?prompt=hi",
42
- method: "GET",
43
- params: ["prompt"],
44
- desc: "ChatGPT-3.5 turbo",
45
- cat: "AI",
46
- isActive: true,
47
- },
48
- {
49
- name: "TikTok DL",
50
- path: "/api/tkdl?url=https://vt.tiktok.com/ZSAG1bG1e/",
51
- method: "GET",
52
- params: ["url"],
53
- desc: "No-watermark TikTok",
54
- cat: "Downloaders",
55
- isActive: true,
56
- },
57
- {
58
- name: "TikTok DL2",
59
- path: "/api/tkdl2?url=https://vt.tiktok.com/ZSAG1bG1e/",
60
- method: "GET",
61
- params: ["url"],
62
- desc: "No-watermark TikTok",
63
- cat: "Downloaders",
64
- isActive: false,
65
- },
66
- {
67
- name: "Instagram DL",
68
- path: "/api/instadl?url=https://www.instagram.com/reel/DNsaHN70Cdr/?igsh=YzljYTk1ODg3Zg==",
69
- method: "GET",
70
- params: ["url"],
71
- desc: "Instagram media downloader",
72
- cat: "Downloaders",
73
  isActive: true,
74
  },
75
  {
76
- name: "wachannel",
77
- path: "/api/wachannel?url=https://whatsapp.com/channel/0029VangYOt96H4JhFarL10C",
78
- method: "GET",
79
- params: ["url"],
80
- desc: "Get WhatsApp channel info",
81
- cat: "Stalker",
82
- isActive: false,
83
- },
84
- {
85
- name: "Wallpaper",
86
- path: "/api/wallpaper?q=naruto",
87
  method: "GET",
88
  params: ["q"],
89
- desc: "Wallpaper search",
90
- cat: "Search",
91
- isActive: true,
92
- },
93
- {
94
- name: "YouTube MP4",
95
- path: "/api/ytmp4?url=URL",
96
- method: "GET",
97
- params: ["url"],
98
- desc: "YouTube video",
99
- cat: "Downloaders",
100
- isActive: true,
101
- },
102
- {
103
- name: "YouTube MP3",
104
- path: "/api/ytmp3?url=URL",
105
- method: "GET",
106
- params: ["url"],
107
- desc: "YouTube audio",
108
  cat: "Downloaders",
109
- isActive: true,
110
  },
111
  ];
112
 
@@ -158,7 +77,7 @@ function render(reset = true) {
158
  <h4>${e.name}</h4>
159
  <p>${e.desc}</p>
160
  <span class="method">${e.method}</span>
161
- <span class="status ${e.isActive ? 'online' : 'offline'}">${e.isActive ? 'Online' : 'Down'}</span>
162
  `;
163
  card.onclick = () => openModal(e);
164
  grid.appendChild(card);
@@ -202,12 +121,8 @@ function openModal(e) {
202
  mBody.innerHTML = `
203
  <p>${e.desc}</p>
204
  <p><strong>Method:</strong> ${e.method}</p>
205
- ${
206
- e.params.length
207
- ? `<p><strong>Params:</strong> ${e.params.join(", ")}</p>`
208
- : ""
209
- }
210
- <p><strong>Status:</strong> <span class="status ${e.isActive ? 'online' : 'offline'}">${e.isActive ? 'Online' : 'Down'}</span></p>
211
  <div class="code-snippet">curl -X ${e.method} "${url}"</div>
212
  <div style="margin-top:1rem">
213
  <button class="btn-copy" onclick="navigator.clipboard.writeText('${url}')">Copy URL</button>
 
1
  /* ====== DATA ====== */
2
  const endpoints = [
3
  {
4
+ name: "All-in-one",
5
+ path: "/api/all-in-one?url=https://fb.com/video",
 
 
 
 
 
 
 
 
 
6
  method: "GET",
7
  params: ["url"],
8
+ desc: "Download any social-media video",
9
  cat: "Downloaders",
10
  isActive: true,
11
  },
12
  {
13
+ name: "Anime Quote",
14
+ path: "/api/aniquote",
15
  method: "GET",
16
  params: [],
17
+ desc: "Random quote from popular anime",
18
  cat: "Fun",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  isActive: true,
20
  },
21
  {
22
+ name: "APK Downloader",
23
+ path: "/api/apkdl?q=Facebook%20lite",
 
 
 
 
 
 
 
 
 
24
  method: "GET",
25
  params: ["q"],
26
+ desc: "Download APKs directly",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  cat: "Downloaders",
28
+ isActive: false,
29
  },
30
  ];
31
 
 
77
  <h4>${e.name}</h4>
78
  <p>${e.desc}</p>
79
  <span class="method">${e.method}</span>
80
+ <span class="status">${e.isActive ? "Active" : "Inactive"}</span>
81
  `;
82
  card.onclick = () => openModal(e);
83
  grid.appendChild(card);
 
121
  mBody.innerHTML = `
122
  <p>${e.desc}</p>
123
  <p><strong>Method:</strong> ${e.method}</p>
124
+ ${e.params.length ? `<p><strong>Params:</strong> ${e.params.join(", ")}</p>` : ""}
125
+ <p><strong>Status:</strong> ${e.isActive ? "Active" : "Inactive"}</p>
 
 
 
 
126
  <div class="code-snippet">curl -X ${e.method} "${url}"</div>
127
  <div style="margin-top:1rem">
128
  <button class="btn-copy" onclick="navigator.clipboard.writeText('${url}')">Copy URL</button>
styles.css CHANGED
@@ -28,25 +28,6 @@ body {
28
  line-height: 1.5;
29
  overflow-x: hidden;
30
  }
31
- /* ---------- endpoint status pills ---------- */
32
- .card .status {
33
- position: absolute;
34
- bottom: 1rem;
35
- right: 1rem;
36
- font-size: 0.7rem;
37
- padding: 0.2rem 0.6rem;
38
- border-radius: 20px;
39
- font-weight: 600;
40
- }
41
- .card .status.online { background: #00c851; color: #fff; }
42
- .card .status.offline { background: #ff4444; color: #fff; }
43
-
44
- /* ---------- keep stat icons untouched ---------- */
45
- .stat-card i {
46
- background: var(--accent); /* keep the gradient */
47
- -webkit-background-clip: text;
48
- -webkit-text-fill-color: transparent;
49
- }
50
 
51
  /* 3. Liquid BG */
52
  .liquid-bg {
@@ -137,6 +118,7 @@ nav a:hover { color: var(--accent-solid); }
137
  .card {
138
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
139
  padding: 1.5rem; transition: transform .25s, box-shadow .25s; cursor: pointer;
 
140
  }
141
  .card:hover { transform: translateY(-5px); box-shadow: 0 12px 30px rgba(255, 179, 71, 0.4); }
142
  .card h4 { margin-bottom: .5rem; font-size: 1.1rem; }
@@ -151,6 +133,12 @@ nav a:hover { color: var(--accent-solid); }
151
  background: rgba(255, 179, 71, 0.2); color: #ffb347;
152
  padding: .15rem .4rem; border-radius: 4px;
153
  }
 
 
 
 
 
 
154
  .load-more {
155
  display: block; margin: 2.5rem auto 0;
156
  padding: .75rem 2rem; border: 1px solid var(--accent-solid);
 
28
  line-height: 1.5;
29
  overflow-x: hidden;
30
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
  /* 3. Liquid BG */
33
  .liquid-bg {
 
118
  .card {
119
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
120
  padding: 1.5rem; transition: transform .25s, box-shadow .25s; cursor: pointer;
121
+ position: relative;
122
  }
123
  .card:hover { transform: translateY(-5px); box-shadow: 0 12px 30px rgba(255, 179, 71, 0.4); }
124
  .card h4 { margin-bottom: .5rem; font-size: 1.1rem; }
 
133
  background: rgba(255, 179, 71, 0.2); color: #ffb347;
134
  padding: .15rem .4rem; border-radius: 4px;
135
  }
136
+ .status {
137
+ position: absolute; bottom: 1rem; right: 1rem;
138
+ font-size: .7rem; font-weight: 600;
139
+ color: #000; background: #ffb347;
140
+ padding: .2rem .5rem; border-radius: 12px;
141
+ }
142
  .load-more {
143
  display: block; margin: 2.5rem auto 0;
144
  padding: .75rem 2rem; border: 1px solid var(--accent-solid);