X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=webkitpdf.vala;h=e9ececc9b354aab9e93d7ee452e595dbdb5093b3;hb=e72cfcbc6463587183427fc6ac76a23416695833;hp=1816c554a5259c52c645c2a36bf1ae91d0c61afb;hpb=7e622d165120617dfe183ad639b13bdc347332e1;p=app.webkitpdf diff --git a/webkitpdf.vala b/webkitpdf.vala index 1816c55..e9ececc 100644 --- a/webkitpdf.vala +++ b/webkitpdf.vala @@ -2,6 +2,11 @@ /* sudo valac --vapidir=. --thread webkitpdf.vala BrowserWindow.vala --vapidir=./vapi \ --pkg glib-2.0 --pkg webkit-1.0 --pkg gtk+-2.0 -o /usr/bin/webkitpdf --target-glib=2.32 + + sudo valac -D GTK3 --vapidir=. --thread webkitpdf.vala BrowserWindow.vala --vapidir=./vapi \ + --pkg glib-2.0 --pkg webkit2gtk-4.0 --pkg gtk+-3.0 --pkg gio-2.0 -o /usr/bin/webkitpdf2 --target-glib=2.32 + + */ public class webkitpdf { @@ -14,6 +19,8 @@ public class webkitpdf { public static string? opt_target_pdf = null; [CCode (array_length = false, array_null_terminated = true)] public static string[] opt_inject_js; + public static string? opt_cookies = null; + const OptionEntry[] options = { { "width", 0, 0, OptionArg.INT, ref opt_width, "Width (default 1200)", null }, @@ -23,39 +30,30 @@ public class webkitpdf { { "png", 0, 0, OptionArg.STRING, ref opt_target_png, "File to write (PNG)", null }, { "inject", 0, 0, OptionArg.STRING_ARRAY, ref opt_inject_js, "Inject Javascript file(s)", null }, { "pdf", 0, 0, OptionArg.STRING, ref opt_target_pdf, "File to write (PDF)", null }, + { "cookies", 0, 0, OptionArg.STRING, ref opt_cookies, "Inject Cookie string", null }, { null } }; public static int main(string[] args) { Gtk.init(ref args); - + + +#if GTK3 + // this is a horrific hack from https://bugs.webkit.org/show_bug.cgi?id=128674 + Environment.unset_variable("GNOME_DESKTOP_SESSION_ID"); + Environment.unset_variable("DESKTOP_SESSION"); + // it should now fallb ack to http prox!? + + +#else unowned string proxy = Environment.get_variable ("http_proxy"); if (proxy != null && proxy.length > 0) { var sess = WebKit.get_default_session(); sess.proxy_uri = new Soup.URI(proxy); } - +#endif var opt_context = new OptionContext ("webkitpdf"); - - stdout.printf ( """Width: %d - Height: %d - URL: %s - Delay: %d - png: %s - inject: %s - PDF: %s - """, - opt_width, - opt_height, - opt_url, - opt_delay, - opt_target_png == null ? "--empty--" : opt_target_png, - opt_inject == null ? "--empty--" : opt_inject, - opt_target_pdf == null ? "--empty--" : opt_target_pdf - - ); - try { opt_context.set_help_enabled (true); @@ -69,6 +67,28 @@ public class webkitpdf { throw new OptionError.BAD_VALUE("missing pdf or png filename"); } + + stdout.printf ( """Width: %d + Height: %d + URL: %s + Delay: %d + png: %s + inject: %s + PDF: %s + Cookie: %s + """, + opt_width, + opt_height, + opt_url, + (int) opt_delay, + opt_target_png == null ? "--empty--" : opt_target_png, + opt_inject_js.length < 1? "--empty--" : string.joinv(", ", opt_inject_js), + opt_target_pdf == null ? "--empty--" : opt_target_pdf, + opt_cookies == null ? "--empty--" : opt_cookies + + + ); + } catch (OptionError e) { stdout.printf ("error: %s\n", e.message);