ani-auto 1.0.0 → 1.0.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.
Files changed (2) hide show
  1. package/README.md +29 -109
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,152 +1,73 @@
1
1
  # ani-auto
2
2
 
3
- Automatic anime episode downloader.
4
- Watches your **AniList** list (or a manual list) and downloads new episodes the moment they appear on the site — with full quality/language control, a background daemon, cron scheduling etc.
5
- ---
6
-
7
- ## Requirements
8
-
9
- - Node.js 18+
3
+ automatically downloads new anime episodes based on your anilist watching list.
10
4
 
11
5
  ---
12
6
 
13
- ## Installation
7
+ ## installation
14
8
 
15
9
  ```bash
16
- # ani-auto/ ← this project
17
-
18
- cd ani-auto
19
- npm install
20
-
21
- # 2. Link the CLI globally (optional)
22
- npm link
10
+ npm install -g ani-auto
23
11
  ```
24
12
 
25
13
  ---
26
14
 
27
- ## Quick Start
15
+ ## quick start
28
16
 
29
17
  ```bash
30
- # First-time setup wizard
31
18
  ani-auto setup
32
-
33
- # Manually trigger one download cycle
34
19
  ani-auto check
35
-
36
- # Start the background daemon
37
- ani-auto daemon
38
- # or: npm start
39
20
  ```
40
21
 
41
22
  ---
42
23
 
43
- ## How It Works
44
-
45
- 1. **AniList** — queries your list for the configured statuses (e.g. `CURRENT`).
46
- For each anime, it searches the download site, fetches the episode list, and downloads anything not already in the database.
47
-
48
- 2. **Manual list** — entries added via `ani-auto add` are checked the same way.
49
- Manual entries support per-anime quality/language overrides.
50
-
51
- 3. **State** — SQLite (`~/.config/ani-auto/state.db`) tracks every episode as `pending → downloading → done / failed`. Already-downloaded episodes are never re-fetched.
24
+ ## commands
52
25
 
53
- 4. **Scheduling** the daemon runs on both:
54
- - A **polling interval** (default: every 30 min)
55
- - A **cron schedule** (default: `0 */2 * * *` — every 2 hours)
56
-
57
- ---
58
-
59
- ## Commands
60
-
61
- | Command | Description |
26
+ | command | description |
62
27
  |---|---|
63
- | `setup` | Interactive first-time wizard |
64
- | `check` | Run one download cycle now |
65
- | `list` | Show all tracked anime |
66
- | `add "<title>"` | Add to manual list |
67
- | `remove "<title>"` | Remove from tracking |
68
- | `enable "<title>"` | Re-enable downloads |
69
- | `disable "<title>"` | Pause without removing |
70
- | `status` | View recent run log |
71
- | `config` | View / update settings |
72
- | `daemon` | Start background daemon |
73
-
74
- ---
75
-
76
- ## Manual Add Options
77
-
78
- ```bash
79
- # Default quality/language from global config
80
- ani-auto add "Frieren: Beyond Journey's End"
81
-
82
- # Per-anime overrides
83
- ani-auto add "One Piece" --quality 720p --language dub
84
- ```
28
+ | `setup` | first-time setup wizard |
29
+ | `check` | download new episodes (interactive) |
30
+ | `check --auto` | download everything, no prompts |
31
+ | `list` | show tracked anime |
32
+ | `add "<title>"` | add anime to manual list |
33
+ | `remove` | remove from manual list |
34
+ | `enable` | re-enable a paused anime |
35
+ | `disable` | pause downloads for an anime |
36
+ | `status` | view recent download history |
37
+ | `config` | view or update settings |
38
+ | `config --open` | open config file in editor |
39
+ | `daemon` | start background auto-downloader |
85
40
 
86
41
  ---
87
42
 
88
- ## Config Options
43
+ ## config options
89
44
 
90
45
  ```bash
91
46
  ani-auto config --set-quality 1080p
92
47
  ani-auto config --set-language sub
93
48
  ani-auto config --set-concurrency 3
94
- ani-auto config --set-output ~/Videos/Anime
95
- ani-auto config --set-interval 60 # daemon: poll every 60 min
96
- ani-auto config --set-cron "0 6 * * *" # also trigger at 6 AM daily
49
+ ani-auto config --set-output ~/videos/anime
50
+ ani-auto config --set-interval 60
51
+ ani-auto config --open
97
52
  ```
98
53
 
99
- Full config lives at `~/.config/ani-auto/config.json`.
100
-
101
- ---
102
-
103
- ## AniList Statuses
104
-
105
- Configured during `setup` or by editing `config.json`:
106
-
107
- | Status | Meaning |
108
- |---|---|
109
- | `CURRENT` | Currently watching (recommended) |
110
- | `PLANNING` | Plan to watch |
111
- | `PAUSED` | Paused |
112
- | `REPEATING` | Re-watching |
113
-
114
54
  ---
115
55
 
56
+ ## background service (linux)
116
57
 
117
-
118
- ---
119
-
120
- ## File Structure
121
-
122
- ```
123
- ani-auto/
124
- ├── src/
125
- │ ├── cli.js ← entry point for all commands
126
- │ ├── daemon.js ← background daemon
127
- │ ├── engine.js ← core run cycle logic
128
- │ ├── scraper.js ← adapter over k-anime utils
129
- │ ├── anilist.js ← AniList GraphQL client
130
- │ ├── db.js ← SQLite state layer
131
- │ └── config.js ← JSON config manager
132
- ├── package.json
133
- ├── utils.js
134
- └── README.md
58
+ ```bash
59
+ mkdir -p ~/.config/systemd/user
60
+ nano ~/.config/systemd/user/ani-auto.service
135
61
  ```
136
62
 
137
- ---
138
-
139
- ## Systemd Service (Linux/Arch)
140
-
141
63
  ```ini
142
- # ~/.config/systemd/user/ani-auto.service
143
64
  [Unit]
144
- Description=K-Anime Auto Downloader
65
+ Description=ani-auto daemon
66
+ After=network-online.target
145
67
 
146
68
  [Service]
147
69
  ExecStart=/usr/bin/node /path/to/ani-auto/src/daemon.js
148
70
  Restart=on-failure
149
- RestartSec=10
150
71
 
151
72
  [Install]
152
73
  WantedBy=default.target
@@ -154,6 +75,5 @@ WantedBy=default.target
154
75
 
155
76
  ```bash
156
77
  systemctl --user enable --now ani-auto
157
- systemctl --user status ani-auto
158
78
  journalctl --user -u ani-auto -f
159
- ```
79
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ani-auto",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Automatic anime episode downloader",
5
5
  "bin": {
6
6
  "ani-auto": "./src/cli.js"