ani-cli-npm 1.0.7 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|