tonhowtf/omniget · error

informe pelo menos um perfil de favoritos

Error message

informe pelo menos um perfil de favoritos

What it means

The Tumblr favorites tool builds a list of (profile, url) sources from the user's options before fetching likes. If no profile survives normalization/filtering, there is nothing to fetch and it bails with this message.

Solutions

  1. Provide at least one valid Tumblr profile name in the favorites option
  2. Strip whitespace and validate profile names before calling run
  3. Check the CLI/config binding so the profiles land in the correct Options field
  4. Confirm the profile list is not accidentally deduplicated/filtered to nothing

Example fix

// before
let opts = Options { profiles: vec![], .. };
// after
let opts = Options { profiles: vec!["someblog".into()], .. };
Defensive patterns

Strategy: validation

Validate before calling

let profiles: Vec<_> = opts.profiles.iter().map(|s| s.trim()).filter(|s| !s.is_empty()).collect();
if profiles.is_empty() {
    return Err(anyhow!("informe pelo menos um perfil"));
}

Try / catch

match art::run(opts).await {
    Err(e) if e.to_string().contains("informe pelo menos um perfil") => eprintln!("configure ao menos um perfil de favoritos"),
    Err(e) => return Err(e),
    Ok(r) => use(r),
}

Prevention

When it happens

Trigger: Calling the favorites `run` without providing any favorite profile names, or providing profiles that are all filtered out (blank, invalid, or self-referential entries removed by the collect step).

Common situations: Forgot to fill the profiles option; passed only whitespace/empty strings; passed a list in the wrong field of Options; CLI flag typo so the profiles never reach the run function.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/2e65ccf100be5639. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/tumblr/art.rs:393

    let sources: Vec<(&str, String)> = PLATFORMS
        .iter()
        .filter_map(|p| {
            let raw = match *p {
                "deviantart" => opts.deviantart.as_deref(),
                "artstation" => opts.artstation.as_deref(),
                "flickr" => opts.flickr.as_deref(),
                _ => None,
            }?;
            let url = source_url(p, raw);
            if url.is_empty() {
                None
            } else {
                Some((*p, url))
            }
        })
        .collect();
    if sources.is_empty() {
        anyhow::bail!("informe pelo menos um perfil de favoritos");
    }

    let cookies = match opts.session_netscape.as_deref() {
        Some(s) => gdl::write_cookies(s, &domains())?,
        None => None,
    };
    let used_session = cookies.is_some();
    let cookie_path = cookies.as_ref().map(|c| c.path.clone());

    let mut rows: Vec<FavRow> = Vec::new();
    let mut by_platform: Vec<(String, u64)> = Vec::new();
    for (platform, url) in &sources {
        super::super::report(progress, TOOL_ID, "started", 0, None, Some(url.clone()));
        let entries = gdl::dump(
            url,
            cookie_path.as_deref(),
            opts.limit,
            &[],

View on GitHub (pinned to 8600b91f42)