Skip to content

Commit

Permalink
feat!: improve cli and add netscape format
Browse files Browse the repository at this point in the history
  • Loading branch information
thewh1teagle committed May 6, 2024
1 parent e5477ab commit 97e3d7f
Show file tree
Hide file tree
Showing 16 changed files with 279 additions and 94 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/publish-cli.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Publish cli

on:
release:
types: [created]
workflow_dispatch: null
jobs:
release:
name: release ${{ matrix.target }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-pc-windows-gnu
archive: zip
- target: x86_64-unknown-linux-musl
archive: tar.gz tar.xz tar.zst
- target: universal-apple-darwin
archive: zip
- target: universal-apple-darwin
archive: zip
steps:
- uses: actions/checkout@master
- name: Compile and release
uses: rust-build/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
RUSTTARGET: ${{ matrix.target }}
ARCHIVE_TYPES: ${{ matrix.archive }}
8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[workspace]
members = ["rookie-rs", "bindings/python", "bindings/node", "cli"]
default-members = ["rookie-rs", "bindings/python"]
resolver = "2"
[workspace]
members = ["rookie-rs", "bindings/python", "bindings/node", "cli"]
default-members = ["rookie-rs", "bindings/python"]
resolver = "2"
34 changes: 17 additions & 17 deletions bindings/node/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ fn cookies_to_js(cookies: Vec<Cookie>) -> Result<Vec<CookieObject>> {
#[napi]
pub fn any_browser(
db_path: String,
domains: Option<Vec<&str>>,
domains: Option<Vec<String>>,
key_path: Option<&str>,
) -> Result<Vec<CookieObject>> {
let cookies = rookie::any_browser(&db_path, domains, key_path)
Expand All @@ -49,81 +49,81 @@ pub fn any_browser(
/// Common browsers

#[napi]
pub fn firefox(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn firefox(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::firefox(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
}

#[napi]
pub fn librewolf(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn librewolf(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::librewolf(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
}

#[napi]
pub fn chrome(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn chrome(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::chrome(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
}

#[napi]
pub fn brave(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn brave(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::brave(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;

cookies_to_js(cookies)
}

#[napi]
pub fn edge(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn edge(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::edge(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
}

#[napi]
pub fn opera(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn opera(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::opera(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;

cookies_to_js(cookies)
}

#[napi]
pub fn opera_gx(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn opera_gx(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::opera_gx(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;

cookies_to_js(cookies)
}

#[napi]
pub fn chromium(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn chromium(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::chromium(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
}

#[napi]
pub fn vivaldi(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn vivaldi(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::vivaldi(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;

cookies_to_js(cookies)
}

#[napi]
pub fn firefox_based(db_path: String, domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn firefox_based(db_path: String, domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies = rookie::firefox_based(PathBuf::from(db_path), domains)
.map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
}

#[napi]
pub fn load(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn load(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::load(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
Expand All @@ -133,7 +133,7 @@ pub fn load(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {

#[napi]
#[cfg(target_os = "windows")]
pub fn octo_browser(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn octo_browser(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies = rookie::octo_browser(domains)
.map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;

Expand All @@ -142,7 +142,7 @@ pub fn octo_browser(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {

#[napi]
#[cfg(target_os = "windows")]
pub fn internet_explorer(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn internet_explorer(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies = rookie::internet_explorer(domains)
.map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
Expand All @@ -152,7 +152,7 @@ pub fn internet_explorer(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>
pub fn chromium_based(
key_path: String,
db_path: String,
domains: Option<Vec<&str>>,
domains: Option<Vec<String>>,
) -> Result<Vec<CookieObject>> {
let cookies = rookie::chromium_based(PathBuf::from(key_path), PathBuf::from(db_path), domains)
.map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
Expand All @@ -163,7 +163,7 @@ pub fn chromium_based(

#[napi]
#[cfg(target_os = "macos")]
pub fn safari(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn safari(domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
let cookies =
rookie::safari(domains).map_err(|e| napi::Error::new(Status::Unknown, format!("{e:?}")))?;
cookies_to_js(cookies)
Expand All @@ -173,7 +173,7 @@ pub fn safari(domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {

#[napi]
#[cfg(unix)]
pub fn chromium_based(db_path: String, domains: Option<Vec<&str>>) -> Result<Vec<CookieObject>> {
pub fn chromium_based(db_path: String, domains: Option<Vec<String>>) -> Result<Vec<CookieObject>> {
use rookie::common::enums::BrowserConfig;

let db_path = db_path.as_str();
Expand Down
34 changes: 17 additions & 17 deletions bindings/python/src/browsers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use std::path::PathBuf;
pub fn any_browser(
py: Python,
db_path: &str,
domains: Option<Vec<&str>>,
domains: Option<Vec<String>>,
key_path: Option<&str>,
) -> PyResult<Vec<PyObject>> {
let cookies = rookie::any_browser(db_path, domains, key_path)?;
Expand All @@ -20,31 +20,31 @@ pub fn any_browser(
/// Common browsers

#[pyfunction]
pub fn firefox(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn firefox(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::firefox(domains)?;
let cookies = to_dict(py, cookies)?;

Ok(cookies)
}

#[pyfunction]
pub fn librewolf(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn librewolf(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::librewolf(domains)?;
let cookies = to_dict(py, cookies)?;

Ok(cookies)
}

#[pyfunction]
pub fn chrome(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn chrome(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::chrome(domains)?;
let cookies = to_dict(py, cookies)?;

Ok(cookies)
}

#[pyfunction]
pub fn brave(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn brave(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::brave(domains)?;

let cookies = to_dict(py, cookies)?;
Expand All @@ -53,15 +53,15 @@ pub fn brave(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>>
}

#[pyfunction]
pub fn edge(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn edge(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::edge(domains)?;
let cookies = to_dict(py, cookies)?;

Ok(cookies)
}

#[pyfunction]
pub fn opera(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn opera(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::opera(domains)?;

let cookies = to_dict(py, cookies)?;
Expand All @@ -70,7 +70,7 @@ pub fn opera(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>>
}

#[pyfunction]
pub fn opera_gx(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn opera_gx(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::opera_gx(domains)?;

let cookies = to_dict(py, cookies)?;
Expand All @@ -79,15 +79,15 @@ pub fn opera_gx(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject
}

#[pyfunction]
pub fn chromium(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn chromium(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::chromium(domains)?;
let cookies = to_dict(py, cookies)?;

Ok(cookies)
}

#[pyfunction]
pub fn vivaldi(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn vivaldi(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::vivaldi(domains)?;

let cookies = to_dict(py, cookies)?;
Expand All @@ -99,7 +99,7 @@ pub fn vivaldi(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>
pub fn firefox_based(
py: Python,
db_path: String,
domains: Option<Vec<&str>>,
domains: Option<Vec<String>>,
) -> PyResult<Vec<PyObject>> {
let cookies = rookie::firefox_based(PathBuf::from(db_path), domains)?;
let cookies = to_dict(py, cookies)?;
Expand All @@ -108,7 +108,7 @@ pub fn firefox_based(
}

#[pyfunction]
pub fn load(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn load(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::load(domains)?;
let cookies = to_dict(py, cookies)?;

Expand All @@ -119,7 +119,7 @@ pub fn load(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {

#[pyfunction]
#[cfg(target_os = "windows")]
pub fn octo_browser(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn octo_browser(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::octo_browser(domains)?;

let cookies = to_dict(py, cookies)?;
Expand All @@ -129,7 +129,7 @@ pub fn octo_browser(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyOb

#[pyfunction]
#[cfg(target_os = "windows")]
pub fn internet_explorer(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn internet_explorer(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::internet_explorer(domains)?;
let cookies = to_dict(py, cookies)?;

Expand All @@ -141,7 +141,7 @@ pub fn chromium_based(
py: Python,
key_path: String,
db_path: String,
domains: Option<Vec<&str>>,
domains: Option<Vec<String>>,
) -> PyResult<Vec<PyObject>> {
let cookies = rookie::chromium_based(PathBuf::from(key_path), PathBuf::from(db_path), domains)?;
let cookies = to_dict(py, cookies)?;
Expand All @@ -153,7 +153,7 @@ pub fn chromium_based(

#[pyfunction]
#[cfg(target_os = "macos")]
pub fn safari(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>> {
pub fn safari(py: Python, domains: Option<Vec<String>>) -> PyResult<Vec<PyObject>> {
let cookies = rookie::safari(domains)?;
let cookies = to_dict(py, cookies)?;

Expand All @@ -167,7 +167,7 @@ pub fn safari(py: Python, domains: Option<Vec<&str>>) -> PyResult<Vec<PyObject>>
pub fn chromium_based(
py: Python,
db_path: String,
domains: Option<Vec<&str>>,
domains: Option<Vec<String>>,
) -> PyResult<Vec<PyObject>> {
use rookie::common::enums::BrowserConfig;

Expand Down
7 changes: 3 additions & 4 deletions cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
[package]
name = "cli"
version = "0.1.0"
version = "0.5.1"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
cfg-if = "1.0.0"
clap = { version = "4.4.6", features = ["derive"] }
indoc = "2.0.5"
lazy_static = "1.4.0"
pretty_env_logger = "0.5.0"
rookie = { path = "../rookie-rs" }
serde_json = "1.0.107"
Loading

0 comments on commit 97e3d7f

Please sign in to comment.