Add Spaces type

This commit is contained in:
Alessio 2022-05-14 14:34:36 -07:00
parent d98f02954e
commit 565b7eaf1e
5 changed files with 52 additions and 1 deletions

View File

@ -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
View 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
View 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)
}

View 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"}}}}