...
1
2
3
4
5 package main
6
7 import (
8 "fmt"
9 "log"
10 "net/http"
11 "os"
12 "strings"
13
14 urlshortener "google.golang.org/api/urlshortener/v1"
15 )
16
17 func init() {
18 registerDemo("urlshortener", urlshortener.UrlshortenerScope, urlShortenerMain)
19 }
20
21 func urlShortenerMain(client *http.Client, argv []string) {
22 if len(argv) != 1 {
23 fmt.Fprintf(os.Stderr, "Usage: urlshortener http://goo.gl/xxxxx (to look up details)\n")
24 fmt.Fprintf(os.Stderr, " urlshortener http://example.com/long (to shorten)\n")
25 return
26 }
27
28 svc, err := urlshortener.New(client)
29 if err != nil {
30 log.Fatalf("Unable to create UrlShortener service: %v", err)
31 }
32
33 urlstr := argv[0]
34
35
36 if strings.HasPrefix(urlstr, "http://goo.gl/") || strings.HasPrefix(urlstr, "https://goo.gl/") {
37 url, err := svc.Url.Get(urlstr).Do()
38 if err != nil {
39 log.Fatalf("URL Get: %v", err)
40 }
41 fmt.Printf("Lookup of %s: %s\n", urlstr, url.LongUrl)
42 return
43 }
44
45
46 url, err := svc.Url.Insert(&urlshortener.Url{
47 Kind: "urlshortener#url",
48 LongUrl: urlstr,
49 }).Do()
50 if err != nil {
51 log.Fatalf("URL Insert: %v", err)
52 }
53 fmt.Printf("Shortened %s => %s\n", urlstr, url.Id)
54 }
55
View as plain text