Add Spaces type
This commit is contained in:
parent
d98f02954e
commit
565b7eaf1e
@ -124,6 +124,11 @@ type APICard struct {
|
|||||||
LastUpdatedAt struct {
|
LastUpdatedAt struct {
|
||||||
StringValue string `json:"string_value"`
|
StringValue string `json:"string_value"`
|
||||||
} `json:"last_updated_datetime_utc"`
|
} `json:"last_updated_datetime_utc"`
|
||||||
|
|
||||||
|
// For Spaces
|
||||||
|
ID struct {
|
||||||
|
StringValue string `json:"string_value"`
|
||||||
|
} `json:"id"`
|
||||||
} `json:"binding_values"`
|
} `json:"binding_values"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
18
scraper/space.go
Normal file
18
scraper/space.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package scraper
|
||||||
|
|
||||||
|
type SpaceID string
|
||||||
|
|
||||||
|
type Space struct {
|
||||||
|
ID SpaceID
|
||||||
|
TweetID TweetID
|
||||||
|
|
||||||
|
Url string
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseAPISpace(apiCard APICard) Space {
|
||||||
|
ret := Space{}
|
||||||
|
ret.ID = SpaceID(apiCard.BindingValues.ID.StringValue)
|
||||||
|
ret.Url = apiCard.ShortenedUrl
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
27
scraper/space_test.go
Normal file
27
scraper/space_test.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package scraper_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
. "offline_twitter/scraper"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestParseSpace(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
data, err := os.ReadFile("test_responses/tweet_content/space.json")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
var apiCard APICard
|
||||||
|
err = json.Unmarshal(data, &apiCard)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
space := ParseAPISpace(apiCard)
|
||||||
|
assert.Equal(SpaceID("1YpKkZVyQjoxj"), space.ID)
|
||||||
|
assert.Equal("https://t.co/WBPAHNF8Om", space.Url)
|
||||||
|
}
|
1
scraper/test_responses/tweet_content/space.json
Normal file
1
scraper/test_responses/tweet_content/space.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"name":"3691233323:audiospace","url":"https://t.co/WBPAHNF8Om","card_type_url":"http://card-type-url-is-deprecated.invalid","binding_values":{"id":{"type":"STRING","string_value":"1YpKkZVyQjoxj"},"narrow_cast_space_type":{"type":"STRING","string_value":"0"},"card_url":{"type":"STRING","string_value":"https://t.co/WBPAHNF8Om","scribe_key":"card_url"}},"card_platform":{"platform":{"device":{"name":"Swift","version":"12"},"audience":{"name":"production"}}}}
|
Loading…
x
Reference in New Issue
Block a user