Skip to main content

genius_cli/
colorizer.rs

1use genius_rust::song::Song;
2use owo_colors::{
3    colors::{css::Orange, Black, BrightGreen, BrightYellow, Cyan, Magenta, Yellow},
4    OwoColorize,
5};
6use rand::Rng;
7
8pub fn print_colorized(song: &Song) {
9    let mut rng = rand::thread_rng();
10    match rng.gen_range(0..5) {
11        0 => {
12            println!(
13                "\n{}{}{}",
14                song.primary_artist.name.fg::<Black>().bg::<Magenta>(),
15                " - ".fg::<Black>().bg::<Magenta>(),
16                song.title.fg::<Black>().bg::<Magenta>()
17            );
18            println!("{}\n", song.url.fg::<Magenta>());
19        }
20        1 => {
21            println!(
22                "\n{}{}{}",
23                song.primary_artist.name.fg::<Black>().bg::<Cyan>(),
24                " - ".fg::<Black>().bg::<Cyan>(),
25                song.title.fg::<Black>().bg::<Cyan>()
26            );
27            println!("{}\n", song.url.fg::<Cyan>());
28        }
29        2 => {
30            println!(
31                "\n{}{}{}",
32                song.primary_artist.name.fg::<Black>().bg::<Orange>(),
33                " - ".fg::<Black>().bg::<Orange>(),
34                song.title.fg::<Black>().bg::<Orange>()
35            );
36            println!("{}\n", song.url.fg::<Orange>());
37        }
38        3 => {
39            println!(
40                "\n{}{}{}",
41                song.primary_artist.name.fg::<Black>().bg::<BrightGreen>(),
42                " - ".fg::<Black>().bg::<BrightGreen>(),
43                song.title.fg::<Black>().bg::<BrightGreen>()
44            );
45            println!("{}\n", song.url.fg::<BrightGreen>());
46        }
47        4 => {
48            println!(
49                "\n{}{}{}",
50                song.primary_artist.name.fg::<Black>().bg::<Yellow>(),
51                " - ".fg::<Black>().bg::<Yellow>(),
52                song.title.fg::<Black>().bg::<Yellow>()
53            );
54            println!("{}\n", song.url.fg::<Yellow>());
55        }
56
57        5 => {
58            println!(
59                "\n{}{}{}",
60                song.primary_artist.name.fg::<Black>().bg::<BrightYellow>(),
61                " - ".fg::<Black>().bg::<BrightYellow>(),
62                song.title.fg::<Black>().bg::<BrightYellow>()
63            );
64            println!("{}\n", song.url.fg::<BrightYellow>());
65        }
66        _ => {
67            println!(
68                "\n{}{}{}",
69                song.primary_artist.name.fg::<Black>().bg::<Magenta>(),
70                " - ".fg::<Black>().bg::<Magenta>(),
71                song.title.fg::<Black>().bg::<Magenta>()
72            );
73            println!("{}\n", song.url.fg::<Magenta>());
74        }
75    }
76}