Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ So far the following platforms are supported:
- **Opera:** `Linux`, `macOS`, `Windows`
- **Opera GX:** `macOS`, `Windows`
- **Safari:** `macOS`
- **Tabbit:** `macOS`
- **Vivaldi:** `Linux`, `macOS`, `Windows`
- **Zen:** `Linux`, `macOS`, `Windows`

Expand Down Expand Up @@ -140,6 +141,7 @@ look at [rookie-rs/config.json](rookie-rs/config.json) to see what configuration
| Opera | 2023/10/01 | - | 2023/10/01 |
| Opera GX | N/A | - | 2023/10/01 |
| Safari | N/A | 2024/10/26 | N/A |
| Tabbit | N/A | 2026/03/10 | N/A |
| Vivaldi | 2023/10/01 | 2023/11/25 | 2023/10/01 |
| Zen | - | 2024/10/26 | - |

Expand Down
3 changes: 3 additions & 0 deletions cli/src/browsers_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ lazy_static! {
#[cfg(target_os = "macos")]
map.insert("safari".into(), rookie::safari);

#[cfg(target_os = "macos")]
map.insert("tabbit".into(), rookie::tabbit);

map.insert("vivaldi".into(), rookie::vivaldi);

map.insert("arc".into(), rookie::arc);
Expand Down
9 changes: 9 additions & 0 deletions rookie-rs/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,15 @@
"~/Library/Containers/com.apple.Safari/Data/Library/Cookies/Cookies.binarycookies",
"~/Library/Cookies/Cookies.binarycookies"
]
},
"tabbit": {
"paths": [
"~/Library/Application Support/Tabbit Browser/Default/Cookies",
"~/Library/Application Support/Tabbit Browser/Profile */Cookies"
],
"unix_crypt_name": "chromium",
"osx_key_service": "Tabbit Browser Safe Storage",
"osx_key_user": "Tabbit Browser"
}
},
"linux": {
Expand Down
21 changes: 21 additions & 0 deletions rookie-rs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,25 @@ pub fn safari(domains: Option<Vec<String>>) -> Result<Vec<Cookie>> {
safari_based(db_path, domains)
}

/// Returns cookies from Tabbit Browser (macOS only)
///
/// # Arguments
///
/// * `domains` - A optional list that for getting specific domains only
///
/// # Examples
///
/// ```
/// let domains = vec!["google.com"];
/// let cookies = rookie::tabbit(Some(domains));
/// ```
#[cfg(target_os = "macos")]
pub fn tabbit(domains: Option<Vec<String>>) -> Result<Vec<Cookie>> {
let config = get_browser_config("tabbit");
let (_, db_path) = paths::find_chrome_based_paths(config)?;
chromium_based(config, db_path, domains)
}

/// Returns cookies from Internet Explorer (Windows only)
///
/// # Arguments
Expand Down Expand Up @@ -415,6 +434,7 @@ pub fn load(domains: Option<Vec<String>>) -> Result<Vec<Cookie>> {
browser_types.push(chrome);
browser_types.push(opera_gx);
browser_types.push(safari);
browser_types.push(tabbit);
}

for browser_fn in browser_types.iter() {
Expand Down Expand Up @@ -459,6 +479,7 @@ pub fn any_browser(
get_browser_config("opera"),
get_browser_config("opera_gx"),
get_browser_config("vivaldi"),
get_browser_config("tabbit"),
];
for browser_config in chrome_configs {
if let Ok(cookies) = chromium_based(browser_config, cookies_path.into(), domains.clone()) {
Expand Down