Advertisement
Guest User

GOSurf

a guest
Jan 25th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.46 KB | None | 0 0
  1. package main
  2.  
  3. import "os"
  4. import "github.com/mattn/go-gtk/gtk"
  5. import "github.com/mattn/go-webkit/webkit"
  6. import "flag"
  7. import s "strings"
  8.  
  9. func main() {
  10.     url := flag.String("url", "https://duckduckgo.com", "a string")
  11.     w := flag.Int("w", 800, "an int")
  12.     h := flag.Int("h", 600, "an int")
  13.     flag.Parse()
  14.     gtk.Init(nil)
  15.     window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
  16.     window.SetTitle("GOSurf")
  17.     window.Connect("destroy", gtk.MainQuit)
  18.     vbox := gtk.NewVBox(false, 1)
  19.     entry := gtk.NewEntry()
  20.    
  21.    
  22.     if (s.Contains(*url, ".")) {
  23.         if (s.Contains(*url, "http")) {
  24.         entry.SetText(*url)
  25.         } else {
  26.         entry.SetText("https://"+*url)
  27.         }} else {
  28.     entry.SetText("https://duckduckgo.com/?q="+*url)  
  29.     }
  30.    
  31.    
  32.     vbox.PackStart(entry, false, false, 0)
  33.     swin := gtk.NewScrolledWindow(nil, nil)
  34.     swin.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
  35.     swin.SetShadowType(gtk.SHADOW_IN)
  36.     webview := webkit.NewWebView()
  37.     webview.Connect("load-committed", func() {
  38.         entry.SetText(webview.GetUri())
  39.     })
  40.     swin.Add(webview)
  41.     vbox.Add(swin)
  42.     entry.Connect("activate", func() {
  43.         webview.LoadUri(entry.GetText())
  44.     })
  45.    
  46.     window.Add(vbox)
  47.     window.SetSizeRequest(*w, *h)
  48.     window.ShowAll()
  49.  
  50.     proxy := os.Getenv("HTTP_PROXY")
  51.     if len(proxy) > 0 {
  52.         soup_uri := webkit.SoupUri(proxy)
  53.         webkit.GetDefaultSession().Set("proxy-uri", soup_uri)
  54.         soup_uri.Free()
  55.     }
  56.     entry.Emit("activate")
  57.     gtk.Main()
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement