Add Spaces type
This commit is contained in:
parent
d98f02954e
commit
565b7eaf1e
@ -124,6 +124,11 @@ type APICard struct {
|
||||
LastUpdatedAt struct {
|
||||
StringValue string `json:"string_value"`
|
||||
} `json:"last_updated_datetime_utc"`
|
||||
|
||||
// For Spaces
|
||||
ID struct {
|
||||
StringValue string `json:"string_value"`
|
||||
} `json:"id"`
|
||||
} `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