2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,6 +4,8 @@
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
*.idea
|
||||
|
||||
# Test binary, build with `go test -c`
|
||||
*.test
|
||||
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# 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