From db03711445c86fa1a0b837a32be33462629bc839 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 7 Mar 2016 23:04:50 +0300 Subject: [PATCH] initial --- .gitignore | 2 + point_post_crawler.go | 109 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 .gitignore create mode 100644 point_post_crawler.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e10deff --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.idea/ +/bin/ diff --git a/point_post_crawler.go b/point_post_crawler.go new file mode 100644 index 0000000..07c5b00 --- /dev/null +++ b/point_post_crawler.go @@ -0,0 +1,109 @@ +package main + +import ( + "fmt" + "flag" + //"gopkg.in/yaml.v2" + //"net/http" + "encoding/json" + "time" + "net/http" + "log" + "io/ioutil" +) + +type user struct { + id int + login string +} + +type tag struct { + name string +} + +type recommendation struct { + text string + comment_id int + author user +} + +type post struct { + pinned bool + tags [10]int + comments_count int + author user + text string + created string + id string + private bool +} + +type meta_post struct { + bookmarked bool + uid int + subscribed bool + editable bool + recommended bool + rec recommendation + post post +} + +type page struct { + has_next bool + posts [20]meta_post +} + +const point_api_url string = "https://point.im/api/" + +func main() { + var login, password string; + + flag.StringVar(&login, "l", "", "Account login") + flag.StringVar(&password, "p", "", "Account password") + flag.Parse() + + if len(login) < 1 || len(password) < 1 { + fmt.Printf("Login and password must be defined") + return + } + + // Auth + + + // Post processing + page_number := 0; + for { + resp, req_err := http.Get(point_api_url + "recent") + + if req_err != nil { + log.Fatal(req_err) + continue + } + + defer resp.Body.Close() + + body, read_err := ioutil.ReadAll(resp.Body) + + if read_err != nil { + log.Fatal(read_err) + continue + } + + var page page + + json_err := json.Unmarshal(body, &page) + + if json_err != nil { + log.Fatal(json_err) + continue + } + + page_number++ + fmt.Printf("%d done:\n", page_number) + + //fmt.Printf("%+v", body) + fmt.Printf("%s\n", body) + + time.Sleep(10 * time.Second) + } +}