optimised episode range detection

This commit is contained in:
Zastian Pretorius
2022-10-17 22:55:49 +01:00
parent cc0945e29a
commit 115d7e790f
3 changed files with 24 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
use crate::open_video;
use crate::{anime_ep_range, anime_link, anime_names, get_mal_id};
use crate::{anime_link, anime_names};
use crate::{get_anime_id, get_user_anime_progress, update_anime_progress};
use crossterm::{
@@ -18,6 +18,8 @@ use tui::{
};
use unicode_width::UnicodeWidthStr;
use super::scraper::get_anime_info;
enum InputMode {
Normal,
Editing,
@@ -158,19 +160,18 @@ fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<(
if ep_select == false {
let selected = app.messages.state.selected();
app.title = app.messages.items[selected.unwrap()].clone();
let ep_range = anime_ep_range(&app.title);
let mel_id = get_mal_id(&app.title);
app.anime_id = get_anime_id(mel_id);
let anime_info = get_anime_info(&app.title);
app.anime_id = get_anime_id(anime_info.0);
app.messages.items.clear();
app.progress =
get_user_anime_progress(app.anime_id, app.token.as_str());
app.messages.state.select(Some(app.progress as usize));
if ep_range == 1 {
if anime_info.1 == 1 {
let link = anime_link(&app.title, 1);
open_video((link.0, link.1));
update_anime_progress(app.anime_id, 1, app.token.as_str());
} else {
for ep in 1..ep_range + 1 {
for ep in 1..anime_info.1 + 1 {
app.messages.push(format!("Episode {}", ep));
}
ep_select = true;