APIs hiccups will no longer make ytsync crash
This commit is contained in:
parent
10a855a8ba
commit
77749f05ba
1 changed files with 53 additions and 10 deletions
63
sdk/api.go
63
sdk/api.go
|
@ -14,6 +14,8 @@ import (
|
||||||
"github.com/lbryio/lbry.go/v2/extras/errors"
|
"github.com/lbryio/lbry.go/v2/extras/errors"
|
||||||
"github.com/lbryio/lbry.go/v2/extras/null"
|
"github.com/lbryio/lbry.go/v2/extras/null"
|
||||||
|
|
||||||
|
"github.com/lbryio/ytsync/util"
|
||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -80,6 +82,11 @@ func (a *APIConfig) FetchChannels(status string, cp *SyncProperties) ([]YoutubeC
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Err(err)
|
return nil, errors.Err(err)
|
||||||
}
|
}
|
||||||
|
if res.StatusCode != http.StatusOK {
|
||||||
|
util.SendErrorToSlack("Error %d while trying to call %s. Waiting to retry", res.StatusCode, endpoint)
|
||||||
|
time.Sleep(30 * time.Second)
|
||||||
|
return a.FetchChannels(status, cp)
|
||||||
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
body, _ := ioutil.ReadAll(res.Body)
|
body, _ := ioutil.ReadAll(res.Body)
|
||||||
var response apiJobsResponse
|
var response apiJobsResponse
|
||||||
|
@ -132,11 +139,16 @@ func (a *APIConfig) SetChannelCert(certHex string, channelID string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Err(err)
|
return errors.Err(err)
|
||||||
}
|
}
|
||||||
|
if res.StatusCode != http.StatusOK {
|
||||||
|
util.SendErrorToSlack("Error %d while trying to call %s. Waiting to retry", res.StatusCode, endpoint)
|
||||||
|
time.Sleep(30 * time.Second)
|
||||||
|
return a.SetChannelCert(certHex, channelID)
|
||||||
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
|
|
||||||
body, _ := ioutil.ReadAll(res.Body)
|
body, _ := ioutil.ReadAll(res.Body)
|
||||||
var response apiSetChannelCertResponse
|
var response apiSetChannelCertResponse
|
||||||
err := json.Unmarshal(body, &response)
|
err = json.Unmarshal(body, &response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Err(err)
|
return errors.Err(err)
|
||||||
}
|
}
|
||||||
|
@ -145,7 +157,6 @@ func (a *APIConfig) SetChannelCert(certHex string, channelID string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *APIConfig) SetChannelStatus(channelID string, status string, failureReason string, transferState *int) (map[string]SyncedVideo, map[string]bool, error) {
|
func (a *APIConfig) SetChannelStatus(channelID string, status string, failureReason string, transferState *int) (map[string]SyncedVideo, map[string]bool, error) {
|
||||||
|
@ -167,11 +178,19 @@ func (a *APIConfig) SetChannelStatus(channelID string, status string, failureRea
|
||||||
if transferState != nil {
|
if transferState != nil {
|
||||||
params.Add("transfer_state", strconv.Itoa(*transferState))
|
params.Add("transfer_state", strconv.Itoa(*transferState))
|
||||||
}
|
}
|
||||||
res, _ := http.PostForm(endpoint, params)
|
res, err := http.PostForm(endpoint, params)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, errors.Err(err)
|
||||||
|
}
|
||||||
|
if res.StatusCode != http.StatusOK {
|
||||||
|
util.SendErrorToSlack("Error %d while trying to call %s. Waiting to retry", res.StatusCode, endpoint)
|
||||||
|
time.Sleep(30 * time.Second)
|
||||||
|
return a.SetChannelStatus(channelID, status, failureReason, transferState)
|
||||||
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
body, _ := ioutil.ReadAll(res.Body)
|
body, _ := ioutil.ReadAll(res.Body)
|
||||||
var response apiChannelStatusResponse
|
var response apiChannelStatusResponse
|
||||||
err := json.Unmarshal(body, &response)
|
err = json.Unmarshal(body, &response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, errors.Err(err)
|
return nil, nil, errors.Err(err)
|
||||||
}
|
}
|
||||||
|
@ -199,15 +218,23 @@ func (a *APIConfig) SetChannelClaimID(channelID string, channelClaimID string) e
|
||||||
Data string `json:"data"`
|
Data string `json:"data"`
|
||||||
}
|
}
|
||||||
endpoint := a.ApiURL + "/yt/set_channel_claim_id"
|
endpoint := a.ApiURL + "/yt/set_channel_claim_id"
|
||||||
res, _ := http.PostForm(endpoint, url.Values{
|
res, err := http.PostForm(endpoint, url.Values{
|
||||||
"channel_id": {channelID},
|
"channel_id": {channelID},
|
||||||
"auth_token": {a.ApiToken},
|
"auth_token": {a.ApiToken},
|
||||||
"channel_claim_id": {channelClaimID},
|
"channel_claim_id": {channelClaimID},
|
||||||
})
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.Err(err)
|
||||||
|
}
|
||||||
|
if res.StatusCode != http.StatusOK {
|
||||||
|
util.SendErrorToSlack("Error %d while trying to call %s. Waiting to retry", res.StatusCode, endpoint)
|
||||||
|
time.Sleep(30 * time.Second)
|
||||||
|
return a.SetChannelClaimID(channelID, channelClaimID)
|
||||||
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
body, _ := ioutil.ReadAll(res.Body)
|
body, _ := ioutil.ReadAll(res.Body)
|
||||||
var response apiChannelStatusResponse
|
var response apiChannelStatusResponse
|
||||||
err := json.Unmarshal(body, &response)
|
err = json.Unmarshal(body, &response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Err(err)
|
return errors.Err(err)
|
||||||
}
|
}
|
||||||
|
@ -233,7 +260,15 @@ func (a *APIConfig) DeleteVideos(videos []string) error {
|
||||||
"video_ids": {videoIDs},
|
"video_ids": {videoIDs},
|
||||||
"auth_token": {a.ApiToken},
|
"auth_token": {a.ApiToken},
|
||||||
}
|
}
|
||||||
res, _ := http.PostForm(endpoint, vals)
|
res, err := http.PostForm(endpoint, vals)
|
||||||
|
if err != nil {
|
||||||
|
return errors.Err(err)
|
||||||
|
}
|
||||||
|
if res.StatusCode != http.StatusOK {
|
||||||
|
util.SendErrorToSlack("Error %d while trying to call %s. Waiting to retry", res.StatusCode, endpoint)
|
||||||
|
time.Sleep(30 * time.Second)
|
||||||
|
return a.DeleteVideos(videos)
|
||||||
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
body, _ := ioutil.ReadAll(res.Body)
|
body, _ := ioutil.ReadAll(res.Body)
|
||||||
var response struct {
|
var response struct {
|
||||||
|
@ -241,7 +276,7 @@ func (a *APIConfig) DeleteVideos(videos []string) error {
|
||||||
Error null.String `json:"error"`
|
Error null.String `json:"error"`
|
||||||
Data null.String `json:"data"`
|
Data null.String `json:"data"`
|
||||||
}
|
}
|
||||||
err := json.Unmarshal(body, &response)
|
err = json.Unmarshal(body, &response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Err(err)
|
return errors.Err(err)
|
||||||
}
|
}
|
||||||
|
@ -297,7 +332,15 @@ func (a *APIConfig) MarkVideoStatus(status VideoStatus) error {
|
||||||
if status.IsTransferred != nil {
|
if status.IsTransferred != nil {
|
||||||
vals.Add("transferred", strconv.FormatBool(*status.IsTransferred))
|
vals.Add("transferred", strconv.FormatBool(*status.IsTransferred))
|
||||||
}
|
}
|
||||||
res, _ := http.PostForm(endpoint, vals)
|
res, err := http.PostForm(endpoint, vals)
|
||||||
|
if err != nil {
|
||||||
|
return errors.Err(err)
|
||||||
|
}
|
||||||
|
if res.StatusCode != http.StatusOK {
|
||||||
|
util.SendErrorToSlack("Error %d while trying to call %s. Waiting to retry", res.StatusCode, endpoint)
|
||||||
|
time.Sleep(30 * time.Second)
|
||||||
|
return a.MarkVideoStatus(status)
|
||||||
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
body, _ := ioutil.ReadAll(res.Body)
|
body, _ := ioutil.ReadAll(res.Body)
|
||||||
var response struct {
|
var response struct {
|
||||||
|
@ -305,7 +348,7 @@ func (a *APIConfig) MarkVideoStatus(status VideoStatus) error {
|
||||||
Error null.String `json:"error"`
|
Error null.String `json:"error"`
|
||||||
Data null.String `json:"data"`
|
Data null.String `json:"data"`
|
||||||
}
|
}
|
||||||
err := json.Unmarshal(body, &response)
|
err = json.Unmarshal(body, &response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue