2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,6 +4,8 @@
|
|||||||
*.so
|
*.so
|
||||||
*.dylib
|
*.dylib
|
||||||
|
|
||||||
|
*.idea
|
||||||
|
|
||||||
# Test binary, build with `go test -c`
|
# Test binary, build with `go test -c`
|
||||||
*.test
|
*.test
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
# nedim-vjezba-golang
|
# nedim-vjezba-golang
|
||||||
nedim vjezba golang
|
nedim vjezba golang
|
||||||
|
|
||||||
|
Uses dependency `go get github.com/gorilla/mux`
|
||||||
|
|||||||
76
main.go
Normal file
76
main.go
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Trend [] struct {
|
||||||
|
Trends [] struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Url string `json:"url,omitempty"`
|
||||||
|
PromotedContent string `promoted_content:"lastname,omitempty"`
|
||||||
|
Query string `json:"query,omitempty"`
|
||||||
|
TweetVolume int `json:"tweet_volume,omitempty"`
|
||||||
|
} `json:"trends"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
router := mux.NewRouter()
|
||||||
|
router.HandleFunc("/hashtags", GetHashtags).Methods("GET")
|
||||||
|
router.HandleFunc("/hashtags/{woeid}", GetHashtagFromWOEID).Methods("GET")
|
||||||
|
log.Fatal(http.ListenAndServe(":8000", router))
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetHashtags(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
body := sendRequestToTwitter("1")
|
||||||
|
jsonResponse, err := json.Marshal(body)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
w.Write(jsonResponse)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetHashtagFromWOEID(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
params := mux.Vars(r)
|
||||||
|
body := sendRequestToTwitter(params["woeid"])
|
||||||
|
jsonResponse, err := json.Marshal(body)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
w.Write(jsonResponse)
|
||||||
|
}
|
||||||
|
|
||||||
|
func sendRequestToTwitter(WOEID string) []string {
|
||||||
|
|
||||||
|
url := "https://api.twitter.com/1.1/trends/place.json?id=" + WOEID
|
||||||
|
req, _ := http.NewRequest("GET", url, nil)
|
||||||
|
req.Header.Add("Authorization", "Bearer AAAAAAAAAAAAAAAAAAAAAKCtPAAAAAAAq1L5CTf40mf5K%2B7Q6QcWxsyjNvo%3DRkSK8AQBdk6latG2h47XWJVSQdn98heLv8HDLDhviicP3xvodm")
|
||||||
|
req.Header.Add("Cache-Control", "no-cache")
|
||||||
|
req.Header.Add("Accept", "application/json")
|
||||||
|
res, _ := http.DefaultClient.Do(req)
|
||||||
|
|
||||||
|
defer res.Body.Close()
|
||||||
|
trends := Trend{}
|
||||||
|
var hashtags []string
|
||||||
|
|
||||||
|
err := json.NewDecoder(res.Body).Decode(&trends)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Error while parsing data: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, t := range trends[0].Trends {
|
||||||
|
hashtags = append(hashtags, t.Name)
|
||||||
|
println(t.Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
return hashtags
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user