-- Leo's gemini proxy
-- Connecting to typed-hole.org:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
commit 79c4878b8fe0e18438a83ae5ebbd25ae515eb4e8
Author: Julien Blanchard <julien@sideburns.eu>
Date: Fri Jan 10 12:12:12 2020 +0100
Visit URL if one is provided when calling Castor
diff --git a/src/main.rs b/src/main.rs
index 1ecc78a..394ded3 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -4,6 +4,7 @@ extern crate gtk;
extern crate lazy_static;
+use std::env;
use std::str::FromStr;
use std::sync::Arc;
@@ -73,31 +74,41 @@ fn main() {
let url_bar = gui.url_bar();
url_bar.connect_activate(move |b| {
let url = b.get_text().expect("get_text failed").to_string();
-
- if url.starts_with("gemini://") {
- visit_url(&gui_clone, Gemini { source: url })
- } else if url.starts_with("gopher://") {
- visit_url(&gui_clone, Gopher { source: url })
- } else if url.starts_with("finger://") {
- visit_url(&gui_clone, Finger { source: url })
- } else {
- visit_url(
- &gui_clone,
- Gemini {
- source: format!("gemini://{}", url),
- },
- )
- };
+ route_url(&gui_clone, url)
});
}
// Create Pango tags
tags::apply_tags(&content_view.get_buffer().unwrap());
+ // Visit URL if one was provided
+ let args: Vec<String> = env::args().collect();
+ if args.len() > 1 {
+ let url = String::from(&args[1]);
+ route_url(&gui, url)
+ }
+
gui.start();
gtk::main();
}
+fn route_url(gui: &Arc<Gui>, url: String) {
+ if url.starts_with("gemini://") {
+ visit_url(&gui, Gemini { source: url })
+ } else if url.starts_with("gopher://") {
+ visit_url(&gui, Gopher { source: url })
+ } else if url.starts_with("finger://") {
+ visit_url(&gui, Finger { source: url })
+ } else {
+ visit_url(
+ &gui,
+ Gemini {
+ source: format!("gemini://{}", url),
+ },
+ )
+ };
+}
+
fn go_back(gui: &Arc<Gui>) {
let previous = history::get_previous_url();
if let Some(url) = previous {
---
Served by Pollux Gemini Server.
-- Response ended
-- Page fetched on Sun May 19 04:55:48 2024