ani-cli-npm 1.0.7 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/.idea/discord.xml +7 -0
- package/bin/index.js +61 -57
- package/gravity/5 +1 -0
- package/gravity/67 +466 -0
- package/gravity/ani-cli.sh +686 -0
- package/gravity/fuck.txt +116 -0
- package/gravity/temp.sh +676 -0
- package/gravity/testdisk.log +54 -0
- package/gravity/testuwu/.matter +24 -0
- package/gravity/testuwu/blackhole.cpp +73 -0
- package/gravity/testuwu/nul: +1 -0
- package/gravity/testuwu/output1_10.txt +224 -0
- package/gravity/testuwu/output1_11.txt +224 -0
- package/gravity/testuwu/run +0 -0
- package/gravity/trez +466 -0
- package/package.json +1 -1
package/bin/index.js
CHANGED
@@ -43,8 +43,6 @@ const HttpsProxyAgent = require('https-proxy-agent');
|
|
43
43
|
let proxyAgent = new HttpsProxyAgent(config.proxy);
|
44
44
|
|
45
45
|
|
46
|
-
|
47
|
-
|
48
46
|
async function config_(temp){
|
49
47
|
console.clear()
|
50
48
|
console.log(colors.Blue, "ANI-CLI-NPM \n")
|
@@ -82,7 +80,6 @@ console.log(colors.Blue, "ANI-CLI-NPM \n")
|
|
82
80
|
}
|
83
81
|
}
|
84
82
|
|
85
|
-
|
86
83
|
async function input(message){
|
87
84
|
if (message){
|
88
85
|
console.log(colors.Magenta,message)
|
@@ -90,7 +87,6 @@ async function input(message){
|
|
90
87
|
return await prompt(">")
|
91
88
|
}
|
92
89
|
|
93
|
-
|
94
90
|
async function curl(url, method="GET"){
|
95
91
|
try{
|
96
92
|
await fetch(url, {
|
@@ -125,13 +121,11 @@ async function curl(url, method="GET"){
|
|
125
121
|
|
126
122
|
}
|
127
123
|
|
128
|
-
|
129
124
|
function matchRuleShort(str, rule) {
|
130
125
|
let escapeRegex = (str) => str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
|
131
126
|
return new RegExp("^" + rule.split("*").map(escapeRegex).join(".*") + "$").test(str);
|
132
127
|
}
|
133
128
|
|
134
|
-
|
135
129
|
async function search_anime(search){
|
136
130
|
let filter = "*<ahref=\"/category/*\"title=\"*\">"
|
137
131
|
let html = (await curl("https://gogoanime.dk//search.html?keyword="+search)).split("\n")
|
@@ -152,7 +146,6 @@ async function search_anime(search){
|
|
152
146
|
return lines
|
153
147
|
}
|
154
148
|
|
155
|
-
|
156
149
|
async function episode_list(anime_id){
|
157
150
|
let html = (await curl(base_url+"/v1/"+anime_id)).split("\n")
|
158
151
|
let lines = ""
|
@@ -174,17 +167,15 @@ async function episode_list(anime_id){
|
|
174
167
|
return json
|
175
168
|
}
|
176
169
|
|
177
|
-
|
178
170
|
async function download(url, name){
|
179
171
|
console.log(colors.Red, "Feature not implemented yet. Sorry for any inconvenience.\nIf you need to download a video, request the link, then download it via your internet browser of choice.")
|
180
172
|
}
|
181
173
|
|
182
|
-
|
183
|
-
async function selection(options, prompt){
|
174
|
+
async function selection(options, prompt, extra_options = []){
|
184
175
|
let selection = 0
|
185
|
-
while (
|
176
|
+
while (true){
|
186
177
|
selection = (await input(prompt))
|
187
|
-
if (selection <= options && selection >= 1){
|
178
|
+
if ((selection <= options && selection >= 1) || extra_options.includes(selection)){
|
188
179
|
break
|
189
180
|
}
|
190
181
|
console.log(colors.Red,`Please input a valid option.`)
|
@@ -192,7 +183,6 @@ async function selection(options, prompt){
|
|
192
183
|
return selection
|
193
184
|
}
|
194
185
|
|
195
|
-
|
196
186
|
async function process_search(query) {
|
197
187
|
console.log(colors.Yellow, "Searching: "+query)
|
198
188
|
|
@@ -220,15 +210,16 @@ async function process_search(query) {
|
|
220
210
|
}
|
221
211
|
}
|
222
212
|
|
223
|
-
|
224
213
|
async function get_video_link(episode_dpage){
|
225
214
|
let id = episode_dpage.replace("//gogohd.net/streaming.php?id=","")
|
226
215
|
id = id.slice(0, id.indexOf("="))
|
227
|
-
|
228
|
-
|
216
|
+
let link = await generate_link(1,id)
|
217
|
+
if (!link){
|
218
|
+
link = await generate_link(2,id)
|
219
|
+
}
|
220
|
+
return link
|
229
221
|
}
|
230
222
|
|
231
|
-
|
232
223
|
async function generate_link(provider, id){
|
233
224
|
let html = ""
|
234
225
|
let provider_name = ""
|
@@ -255,42 +246,45 @@ async function generate_link(provider, id){
|
|
255
246
|
post = post.slice(post.indexOf(",\"data\":[{\"file\":\"")+18, post.length)
|
256
247
|
post = post.slice(0, post.indexOf("\"")).replaceAll("\\/","/")
|
257
248
|
return post
|
258
|
-
|
249
|
+
case 2:
|
259
250
|
provider_name = 'Animixplay'
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
let
|
264
|
-
|
265
|
-
for (x in html){
|
266
|
-
console.log(html[x])
|
267
|
-
}
|
268
|
-
*/
|
251
|
+
let buffer = new Buffer(id)
|
252
|
+
let enc_id = buffer.toString("base64")
|
253
|
+
buffer = new Buffer(id+"LTXs3GrU8we9O"+enc_id)
|
254
|
+
let ani_id = buffer.toString("base64")
|
255
|
+
return `${base_url}/api/live${ani_id}`
|
269
256
|
|
257
|
+
/*console.log(`${base_url}/api/live${id}`)
|
258
|
+
console.log(colors.Yellow, `Fetching ${provider_name} links...`)
|
259
|
+
/*let re="$base_url"
|
260
|
+
let links = []
|
261
|
+
html = (await curl(`${base_url}/api/live/${"Some variable?"}`)).split("\n") // this needs fixed for alot of bigger titles to work.
|
262
|
+
for (x in html){
|
263
|
+
console.log(html[x])
|
264
|
+
}*/
|
270
265
|
|
271
|
-
}
|
272
|
-
}
|
273
266
|
|
274
267
|
|
275
|
-
|
276
|
-
console.log(colors.Red, "Not sure how you even got to this function? Its not implemented yet.")
|
268
|
+
}
|
277
269
|
}
|
278
270
|
|
279
271
|
async function post_play(link, anime, player="VLC"){
|
280
272
|
while (true){
|
281
273
|
console.log(colors.Yellow, `Playing episode ${anime.episode_number+1} of ${anime.anime_id.replaceAll("-", " ")}\n`)
|
282
|
-
console.log(colors.Cyan, "1) Show Link")
|
283
|
-
console.log(colors.Cyan, "2) Next Episode")
|
284
|
-
console.log(colors.Cyan, "3) Prev Episode")
|
285
|
-
console.log(colors.Cyan, "4) Quit")
|
286
|
-
choice =
|
274
|
+
console.log(colors.Cyan, "1/l) Show Link")
|
275
|
+
console.log(colors.Cyan, "2/n) Next Episode")
|
276
|
+
console.log(colors.Cyan, "3/p) Prev Episode")
|
277
|
+
console.log(colors.Cyan, "4/q) Quit")
|
278
|
+
choice = (await selection(4, "select;", ["l", "n", "p", "q"]))
|
287
279
|
switch (choice){
|
288
|
-
case
|
280
|
+
case "l":
|
281
|
+
case "1":
|
289
282
|
console.clear()
|
290
283
|
console.log(colors.Blue, "ANI-CLI-NPM \n")
|
291
284
|
console.log(colors.Yellow, "Link: "+link)
|
292
285
|
break
|
293
|
-
case
|
286
|
+
case "n":
|
287
|
+
case "2":
|
294
288
|
if (anime.episode_number > anime.episodes.length-2){
|
295
289
|
console.clear()
|
296
290
|
console.log(colors.Red, "Damn, all out of episodes?")
|
@@ -302,7 +296,8 @@ async function post_play(link, anime, player="VLC"){
|
|
302
296
|
process.exit()
|
303
297
|
break
|
304
298
|
//EVEN MORE NEEDLESS QUIT STATEMENTS!!!!!!
|
305
|
-
case
|
299
|
+
case "p":
|
300
|
+
case "3":
|
306
301
|
if (anime.episode_number < 2){
|
307
302
|
console.clear()
|
308
303
|
console.log(colors.Red, "Error; Episode 0 is only available for premium members")
|
@@ -313,7 +308,8 @@ async function post_play(link, anime, player="VLC"){
|
|
313
308
|
await play(link, anime, config.player)
|
314
309
|
process.exit()
|
315
310
|
break
|
316
|
-
case
|
311
|
+
case "q":
|
312
|
+
case "4":
|
317
313
|
console.clear()
|
318
314
|
await main()
|
319
315
|
process.exit()
|
@@ -340,7 +336,6 @@ async function play(link, anime, player="VLC"){
|
|
340
336
|
}
|
341
337
|
}
|
342
338
|
|
343
|
-
|
344
339
|
async function search(){
|
345
340
|
console.clear()
|
346
341
|
console.log(colors.Blue, "ANI-CLI-NPM \n")
|
@@ -361,22 +356,29 @@ async function search(){
|
|
361
356
|
process.exit()
|
362
357
|
}
|
363
358
|
console.log(colors.Blue, `Episode ${anime.episode_number+1} of ${anime.anime_id.replaceAll("-", " ")} found.\n`)
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
console.log(colors.Cyan, "
|
368
|
-
|
359
|
+
if (link.includes("animixplay.to")){
|
360
|
+
console.log(colors.Red, "Warning; VLC compatability for animix.to is currently shaky at best. It is advised to change player to browser in conf")
|
361
|
+
}
|
362
|
+
console.log(colors.Cyan, "1/p) Play")
|
363
|
+
console.log(colors.Cyan, "2/d) Download")
|
364
|
+
console.log(colors.Cyan, "3/l) Show Link")
|
365
|
+
console.log(colors.Cyan, "4/q) quit")
|
366
|
+
choice = (await selection(4, "select;", "q", "d", "l", "q"))
|
369
367
|
switch (choice){
|
370
|
-
case
|
368
|
+
case "p":
|
369
|
+
case "1":
|
371
370
|
await play(link, anime, config.player)
|
372
371
|
break
|
373
|
-
case
|
372
|
+
case "d":
|
373
|
+
case "2":
|
374
374
|
download(link, anime.anime_id+anime.episode_number+".mp4")
|
375
375
|
break
|
376
|
-
case
|
376
|
+
case "l":
|
377
|
+
case "3":
|
377
378
|
console.log(colors.Yellow, "Link: "+link)
|
378
379
|
break
|
379
|
-
case
|
380
|
+
case "q":
|
381
|
+
case "4":
|
380
382
|
await main()
|
381
383
|
process.exit()
|
382
384
|
}
|
@@ -386,16 +388,17 @@ async function search(){
|
|
386
388
|
console.clear()
|
387
389
|
console.log(colors.Blue, "Welcome to Ani-Cli-npm")
|
388
390
|
async function main(){
|
389
|
-
console.log(colors.Cyan, "1) Search")
|
390
|
-
console.log(colors.Cyan, "2) config")
|
391
|
-
console.log(colors.Cyan, "3) quit")
|
392
|
-
let choice =
|
393
|
-
|
391
|
+
console.log(colors.Cyan, "1/s) Search")
|
392
|
+
console.log(colors.Cyan, "2/c) config")
|
393
|
+
console.log(colors.Cyan, "3/q) quit")
|
394
|
+
let choice = await selection(3, "select;", ["s", "c", "q"])
|
394
395
|
switch (choice){
|
395
|
-
case
|
396
|
+
case "s":
|
397
|
+
case "1":
|
396
398
|
await search()
|
397
399
|
break
|
398
|
-
case
|
400
|
+
case "c":
|
401
|
+
case "2":
|
399
402
|
let temp = structuredClone(config);
|
400
403
|
let exit_code;
|
401
404
|
while (true) {
|
@@ -417,6 +420,7 @@ async function main(){
|
|
417
420
|
}
|
418
421
|
await main()
|
419
422
|
break
|
423
|
+
case "q":
|
420
424
|
case 3:
|
421
425
|
console.log(colors.Black, "Exiting...")
|
422
426
|
process.exit()
|
package/gravity/5
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
NDA2ODU
|