ani-cli-npm 2.0.10 → 2.1.0

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/README.MD CHANGED
@@ -27,7 +27,7 @@ npx ani-cli-npm@latest
27
27
  ```
28
28
 
29
29
  ### Linux:
30
- #### - Install [nodejs](https://nodejs.org/en/download/ with your distrabutions package manager.
30
+ #### - Install [nodejs](https://nodejs.org/en/download/) with your distrabutions package manager.
31
31
  #### - Run the following command:
32
32
  ```
33
33
  npx ani-cli-npm@latest
package/bin/Anime.js CHANGED
@@ -7,6 +7,7 @@ const generate_link_1 = require("./generate_link");
7
7
  const cache_1 = require("./cache");
8
8
  const input_1 = require("./input");
9
9
  const load_config_1 = require("./load_config");
10
+ const W2GClient = require("w2g-client");
10
11
  const open = require("open");
11
12
  const PlayerController = require("media-player-controller");
12
13
  const dl = require("download-file-with-progressbar");
@@ -121,7 +122,7 @@ class Anime {
121
122
  console.log(("Opening MPV.."));
122
123
  this.player = await new PlayerController({
123
124
  app: 'mpv',
124
- args: ['--fullscreen'],
125
+ args: ['--fullscreen', '--keep-open=yes'],
125
126
  media: await this.get_episode_link(episode, config.player),
126
127
  ipcPath: config.mpv_socket_path
127
128
  });
@@ -136,7 +137,9 @@ class Anime {
136
137
  this.player = await new PlayerController({
137
138
  app: 'vlc',
138
139
  args: ['--fullscreen'],
139
- media: await this.get_episode_link(episode, config.player)
140
+ media: await this.get_episode_link(episode, config.player),
141
+ //httpPort: (config.vlc_socket !== 0)? config.vlc_socket : null, // HTTP port for local communication (vlc only)
142
+ //httpPass: (config.vlc_pass !== "")? config.vlc_socket : null,
140
143
  });
141
144
  // @ts-ignore
142
145
  await this.player.launch(err => {
@@ -148,6 +151,18 @@ class Anime {
148
151
  console.log(("Opening browser..."));
149
152
  await open(await this.get_episode_link(episode, config.player));
150
153
  break;
154
+ case "W2G":
155
+ try {
156
+ this.player = new W2GClient.W2GClient(config.w2g_api_key);
157
+ await this.player.create(await this.get_episode_link(episode, config.player));
158
+ console.log(chalk.green("Room link: " + await this.player.getLink()));
159
+ }
160
+ catch {
161
+ console.log(chalk.red("Failed to create w2g.tv room. \nthis can often be because your API token is invalid. You can change it in options."));
162
+ process.exit();
163
+ }
164
+ await open(await this.player.getLink());
165
+ break;
151
166
  case "LINK":
152
167
  this.player = 1;
153
168
  console.log(await this.get_episode_link(episode, config.player));
@@ -169,6 +184,10 @@ class Anime {
169
184
  else if (this.player == 1) {
170
185
  console.log(await this.get_episode_link(episode));
171
186
  }
187
+ else if (this.player.roomID != undefined) {
188
+ console.log(chalk.green("Room link: " + await this.player.getLink()));
189
+ this.player.update(await this.get_episode_link(episode));
190
+ }
172
191
  else if (this.player.opts.app == "mpv") {
173
192
  await this.player.load(await this.get_episode_link(episode));
174
193
  }
@@ -3,72 +3,97 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.config_ = void 0;
4
4
  const chalk = require("chalk");
5
5
  const input_1 = require("./input");
6
+ const configs = [
7
+ (async (temp) => {
8
+ temp.player = [
9
+ "VLC",
10
+ "BROWSER",
11
+ "MPV",
12
+ "W2G",
13
+ "LINK",
14
+ ][await (0, input_1.selection)([
15
+ "VLC - VLC media player",
16
+ "Browser - Play in default browser",
17
+ "MPV - MPV media player",
18
+ "w2g.tv - Watch together with friends in browser (Specify api token to create rooms linked to your account)",
19
+ "Link - Simply display the link in console"
20
+ ], [], ((item) => { return chalk.cyan(item); }), ((item) => { return chalk.cyan(item); }))];
21
+ // @ts-ignore
22
+ return temp, 0;
23
+ }),
24
+ (async (temp) => {
25
+ console.log(chalk.cyan("New Proxy;"));
26
+ temp.proxy = (await ((0, input_1.input)())).replaceAll(" ", "");
27
+ // @ts-ignore
28
+ return temp, 0;
29
+ }),
30
+ (async (temp) => {
31
+ console.log(chalk.cyan("New User Agent"));
32
+ temp.user_agent = await ((0, input_1.input)());
33
+ // @ts-ignore
34
+ return temp, 0;
35
+ }),
36
+ (async (temp) => {
37
+ console.log(chalk.cyan("New Downloads Folder"));
38
+ temp.download_folder = await ((0, input_1.input)());
39
+ // @ts-ignore
40
+ return temp, 0;
41
+ }),
42
+ (async (temp) => {
43
+ console.log(chalk.cyan("New socket file"));
44
+ temp.mpv_socket_path = await ((0, input_1.input)());
45
+ // @ts-ignore
46
+ return temp, 0;
47
+ }),
48
+ (async (temp) => {
49
+ console.log(chalk.cyan("New VLC socket"));
50
+ temp.vlc_socket = await ((0, input_1.input)());
51
+ // @ts-ignore
52
+ return temp, 0;
53
+ }),
54
+ (async (temp) => {
55
+ console.log(chalk.cyan("New VLC password"));
56
+ temp.vlc_pass = await ((0, input_1.input)());
57
+ // @ts-ignore
58
+ return temp, 0;
59
+ }),
60
+ (async (temp) => {
61
+ console.log(chalk.cyan("New w2g.tv api token"));
62
+ temp.w2g_api_key = await ((0, input_1.input)());
63
+ // @ts-ignore
64
+ return temp, 0;
65
+ }),
66
+ (async (temp) => {
67
+ // @ts-ignore
68
+ return temp, 1;
69
+ }),
70
+ (async (temp) => {
71
+ // @ts-ignore
72
+ return temp, 2;
73
+ })
74
+ ];
6
75
  async function config_(temp) {
7
76
  /*
8
77
  ## Lets user change a single attribute of config. Returns new config object, and an exit code
78
+
79
+ ### 0 to continue (generic return)
80
+ ### 1 To confirm (Save and exit)
81
+ ### 2 to cancel (exit without saving changes)
9
82
  */
10
83
  console.clear();
11
84
  console.log(chalk.blue("ANI-CLI-NPM \n"));
12
85
  console.log(chalk.yellow("Config:\n"));
13
- let choice = await (0, input_1.selection)([
86
+ return configs[await (0, input_1.selection)([
14
87
  "Player; " + temp.player,
15
88
  "Proxy; " + temp.proxy,
16
89
  "User agent; " + temp.user_agent,
17
90
  "Downloads folder; " + temp.download_folder,
18
- "mpv socket connection file; " + temp.mpv_socket_path,
91
+ "Mpv socket connection file; " + temp.mpv_socket_path,
92
+ "VLC socket; " + temp.vlc_socket,
93
+ "VLC pass; " + temp.vlc_pass,
94
+ "W2G api token: " + temp.w2g_api_key,
19
95
  "Save and exit",
20
96
  "Exit without saving"
21
- ], [], ((item) => { return chalk.cyan(item); }), ((item) => { return chalk.cyan(item); }));
22
- switch (choice) {
23
- case 0:
24
- let player = await (0, input_1.selection)([
25
- "VLC - VLC media player",
26
- "Browser - Play in default browser",
27
- "MPV - MPV media player",
28
- "Link - Simply display the link in console"
29
- ], [], ((item) => { return chalk.cyan(item); }), ((item) => { return chalk.cyan(item); }));
30
- switch (player) {
31
- case 0:
32
- temp.player = "VLC";
33
- break;
34
- case 1:
35
- temp.player = "BROWSER";
36
- break;
37
- case 2:
38
- temp.player = "MPV";
39
- break;
40
- case 3:
41
- temp.player = "LINK";
42
- break;
43
- }
44
- // @ts-ignore
45
- return temp, 0;
46
- case 1:
47
- console.log(chalk.cyan("New Proxy;"));
48
- temp.proxy = (await ((0, input_1.input)())).replaceAll(" ", "");
49
- // @ts-ignore
50
- return temp, 0;
51
- case 2:
52
- console.log(chalk.cyan("New User Agent"));
53
- temp.user_agent = await ((0, input_1.input)());
54
- // @ts-ignore
55
- return temp, 0;
56
- case 3:
57
- console.log(chalk.cyan("New Downloads Folder"));
58
- temp.download_folder = await ((0, input_1.input)());
59
- // @ts-ignore
60
- return temp, 0;
61
- case 4:
62
- console.log(chalk.cyan("New socket file"));
63
- temp.mpv_socket_path = await ((0, input_1.input)());
64
- // @ts-ignore
65
- return temp, 0;
66
- case 5:
67
- // @ts-ignore
68
- return temp, 1;
69
- case 6:
70
- // @ts-ignore
71
- return temp, 2;
72
- }
97
+ ], [], ((item) => { return chalk.cyan(item); }), ((item) => { return chalk.cyan(item); }))](temp);
73
98
  }
74
99
  exports.config_ = config_;
@@ -32,6 +32,7 @@ async function generate_link(provider, id, player) {
32
32
  return post;
33
33
  case 2:
34
34
  provider_name = 'Animixplay';
35
+ console.log(`Fetching ${provider_name} links...`);
35
36
  let buffer = new Buffer(id);
36
37
  let enc_id = buffer.toString("base64");
37
38
  buffer = new Buffer(id + "LTXs3GrU8we9O" + enc_id);
package/bin/index.js CHANGED
@@ -51,7 +51,7 @@ async function main() {
51
51
  episode_number = await (0, input_1.number_input)(anime.episode_list.length, 1, (anime.most_recent != 0) ? ["c"] : [], (anime.most_recent != 0) ? [anime.most_recent + 1] : []);
52
52
  }
53
53
  await anime.play_head(episode_number - 1, config, cache_folder);
54
- if (anime.player != 1 && anime.player != 0) {
54
+ if (anime.player.hasOwnProperty("quit")) {
55
55
  await anime.player.quit();
56
56
  }
57
57
  await main();
@@ -66,7 +66,7 @@ async function main() {
66
66
  let continue_anime = new Anime_1.Anime();
67
67
  await continue_anime.init(config.most_recent.anime_id, cache_folder);
68
68
  await continue_anime.play_head(config.most_recent.episode_number, config, cache_folder);
69
- if (continue_anime.player != 0 && continue_anime.player != 1) {
69
+ if (continue_anime.player.hasOwnProperty("quit")) {
70
70
  await continue_anime.player.quit();
71
71
  }
72
72
  await main();
@@ -59,6 +59,9 @@ function load_config(cache_dir) {
59
59
  download_folder: ".",
60
60
  debug_mode: false,
61
61
  mpv_socket_path: "",
62
+ vlc_socket: 0,
63
+ vlc_pass: "",
64
+ w2g_api_key: ""
62
65
  };
63
66
  if (fs.existsSync(cache_dir + "/config.conf")) {
64
67
  // @ts-ignore
@@ -87,6 +90,12 @@ function load_config(cache_dir) {
87
90
  // @ts-ignore
88
91
  if (tmp.mpv_socket_path !== undefined)
89
92
  config.mpv_socket_path = tmp.mpv_socket_path;
93
+ // @ts-ignore
94
+ if (tmp.vlc_socket !== undefined)
95
+ config.vlc_socket = tmp.vlc_socket;
96
+ // @ts-ignore
97
+ if (tmp.vlc_pass !== undefined)
98
+ config.vlc_pass = tmp.vlc_pass;
90
99
  }
91
100
  write_config(cache_dir, config);
92
101
  return config;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ani-cli-npm",
3
- "version": "2.0.10",
3
+ "version": "2.1.0",
4
4
  "description": "ani-cli tool rewritten as npm package",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -36,7 +36,8 @@
36
36
  "node-fetch": "^2.6.6",
37
37
  "open": "^8.4.0",
38
38
  "simple-input": "^1.0.1",
39
- "typescript": "^4.9.3"
39
+ "typescript": "^4.9.3",
40
+ "w2g-client": "^1.1.0"
40
41
  },
41
42
  "devDependencies": {
42
43
  "@types/node": "^18.11.9"
package/tem.js ADDED
@@ -0,0 +1,13 @@
1
+ const W2GClient = require("w2g-client")
2
+
3
+ let client = new W2GClient.W2GClient("sovw9okdu5kb9vr39yy9k34u25sftalqz5ntluxshn48ooza1x5ih3yzaay6ie097z")
4
+
5
+ async function main(){
6
+ await client.create()
7
+ console.log(client.getLink())
8
+ await client.update("https://wwwx12.gogocdn.stream/videos/hls/nHDWH61tDXm9bXm7-tFVIw/1670878227/107271/f23efce39606d64216a0023544f49bb4/ep.29.1662456614.m3u8")
9
+
10
+ }
11
+
12
+ main()
13
+