Skip to content

kingwingfly/fav

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

fav

Back up your favorite bilibili resources with CLI.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Product Name Screen Shot

Back up your favorite bilibili online resources with CLI.

(back to top)

Built With

  • Rust

(back to top)

Getting Started

You can download the release here.

For Arch Linux users, you can yay -S fav-git maybe, someone has maken it a package.

Or you can compile by yourself:

Prerequisites

  • Install Rust
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Compilation

  1. Clone the repo
    git clone https://github.com/kingwingfly/fav.git
  2. Compilation
    cargo build --release

(back to top)

Usage

Need ffmpeg usable, and able to be directly called in cli.

Fav's CLI, helping persist the remote source. Repo: https://github.com/kingwingfly/fav

Usage: fav [OPTIONS] <COMMAND>

Commands:
  init        Initialize the folder for fav
  auth        Login your account
  fetch       Fetch from remote
  status      Show status of local, default to show sets' status
  track       Track a remote source
  untrack     Untrack a remote source
  pull        Pull remote resource to local.  If no id provided, then pull all and skip those having been saved
  daemon      Interval fetch and pull
  completion  Completions for the shell
  help        Print this message or the help of the given subcommand(s)

Options:
  -d, --working-dir <WORKING_DIR>  [default: /Users/louis]
  -h, --help                       Print help
  -V, --version                    Print version

Steps

  1. Init and Login first
  2. Fetch the favorite sets(lists)
  3. Track the list_id you want. You can see them through fav status -s
  4. Fetch tracked resources
  5. Pull the resources

Example

# auto completion is supported; e.g. fish
$ fav completion fish > ~/.config/fish/completions/fav.fish
# For Windows users
$ echo "fav completion powershell | Out-String | Invoke-Expression" >> $PROFILE
# init for bilibili
$ fav init
# scan code to login
$ fav auth login
# a fetch will auto run after login
# show status
$ fav status -s
# track list
$ fav track <list_id>
# fetch and pull videos
$ fav pull
# untrack list or video
$ fav untrack <list_id/bvid>
# daemon, run `fav pull` every 30 minutes
$ fav daemon 30
# after fetching, you can find your favorite upper
$ fav status -r | awk -F '' '{print $3}' | grep -v '^\s*$' | sort | uniq -c | sort -n

Service example:

# fav.service
[Unit]
Description=Fav Daemon Service
After=network-online.target

[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/fav_set
ExecStart=/usr/local/bin/fav daemon 180
Restart=on-failure

[Install]
WantedBy=multi-user.target

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • Init
  • Auth
  • Fetch
  • Status
  • Track
  • Untrack
  • Pull
  • Dynamic completion

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Moreover, it is recommended to open an issue before coding to avoid repeated and useless work.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Louis - [email protected]

Project Link: https://github.com/kingwingfly/fav

(back to top)

Acknowledgments

(back to top)