1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
Chris Cummer 1bfca29d17
WTF-657 Add spec coverage for cfg/common_settings.go (#728)
* WTF-657 Add spec coverage for cfg/common_settings.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for cfg/position_validation.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for cfg/validations.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for checklist/checklist.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for checklist/checklist_item.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for utils/conversions.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Get rid of utils.Home() function

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for utils/homedir.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Add spec coverage for utils/text.go

Signed-off-by: Chris Cummer <chriscummer@me.com>

* WTF-657 Clean up utils/utils.go

Signed-off-by: Chris Cummer <chriscummer@me.com>
2019-10-30 17:35:00 -07:00

52 lines
932 B
Go

package subreddit
import (
"fmt"
"net/http"
"github.com/wtfutil/wtf/utils"
)
var rootPage = "https://reddit.com/r/"
func GetLinks(subreddit string, sortMode string, topTimePeriod string) ([]Link, error) {
url := rootPage + subreddit + "/" + sortMode + ".json"
if sortMode == "top" {
url = url + "?sort=top&t=" + topTimePeriod
}
request, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil, err
}
request.Header.Add("User-Agent", "WTF Utility")
client := &http.Client{}
resp, err := client.Do(request)
if err != nil {
return nil, err
}
if resp.StatusCode > 299 {
return nil, fmt.Errorf(resp.Status)
}
var m RedditDocument
err = utils.ParseJSON(&m, resp.Body)
if err != nil {
return nil, err
}
if len(m.Data.Children) == 0 {
return nil, fmt.Errorf("No links")
}
var links []Link
for _, l := range m.Data.Children {
links = append(links, l.Data)
}
return links, nil
}