Fix scraping stash-box performers with null birthdates (#5428)

This commit is contained in:
InfiniteStash
2024-10-31 01:55:58 +01:00
committed by GitHub
parent 89f539ee24
commit b1d5dc2a0e
3 changed files with 30 additions and 81 deletions

View File

@@ -139,24 +139,6 @@ func (t *TagFragment) GetID() string {
return t.ID
}
type FuzzyDateFragment struct {
Date string "json:\"date\" graphql:\"date\""
Accuracy DateAccuracyEnum "json:\"accuracy\" graphql:\"accuracy\""
}
func (t *FuzzyDateFragment) GetDate() string {
if t == nil {
t = &FuzzyDateFragment{}
}
return t.Date
}
func (t *FuzzyDateFragment) GetAccuracy() *DateAccuracyEnum {
if t == nil {
t = &FuzzyDateFragment{}
}
return &t.Accuracy
}
type MeasurementsFragment struct {
BandSize *int "json:\"band_size,omitempty\" graphql:\"band_size\""
CupSize *string "json:\"cup_size,omitempty\" graphql:\"cup_size\""
@@ -216,7 +198,7 @@ type PerformerFragment struct {
MergedIds []string "json:\"merged_ids\" graphql:\"merged_ids\""
Urls []*URLFragment "json:\"urls\" graphql:\"urls\""
Images []*ImageFragment "json:\"images\" graphql:\"images\""
Birthdate *FuzzyDateFragment "json:\"birthdate,omitempty\" graphql:\"birthdate\""
BirthDate *string "json:\"birth_date,omitempty\" graphql:\"birth_date\""
Ethnicity *EthnicityEnum "json:\"ethnicity,omitempty\" graphql:\"ethnicity\""
Country *string "json:\"country,omitempty\" graphql:\"country\""
EyeColor *EyeColorEnum "json:\"eye_color,omitempty\" graphql:\"eye_color\""
@@ -278,11 +260,11 @@ func (t *PerformerFragment) GetImages() []*ImageFragment {
}
return t.Images
}
func (t *PerformerFragment) GetBirthdate() *FuzzyDateFragment {
func (t *PerformerFragment) GetBirthDate() *string {
if t == nil {
t = &PerformerFragment{}
}
return t.Birthdate
return t.BirthDate
}
func (t *PerformerFragment) GetEthnicity() *EthnicityEnum {
if t == nil {
@@ -877,9 +859,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -898,10 +878,6 @@ fragment PerformerFragment on Performer {
... BodyModificationFragment
}
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size
@@ -1015,9 +991,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -1036,10 +1010,6 @@ fragment PerformerFragment on Performer {
... BodyModificationFragment
}
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size
@@ -1153,9 +1123,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -1174,10 +1142,6 @@ fragment PerformerFragment on Performer {
... BodyModificationFragment
}
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size
@@ -1291,9 +1255,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -1312,10 +1274,6 @@ fragment PerformerFragment on Performer {
... BodyModificationFragment
}
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size
@@ -1368,9 +1326,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -1399,10 +1355,6 @@ fragment ImageFragment on Image {
width
height
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size
@@ -1450,9 +1402,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -1481,10 +1431,6 @@ fragment ImageFragment on Image {
width
height
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size
@@ -1593,9 +1539,7 @@ fragment PerformerFragment on Performer {
images {
... ImageFragment
}
birthdate {
... FuzzyDateFragment
}
birth_date
ethnicity
country
eye_color
@@ -1614,10 +1558,6 @@ fragment PerformerFragment on Performer {
... BodyModificationFragment
}
}
fragment FuzzyDateFragment on FuzzyDate {
date
accuracy
}
fragment MeasurementsFragment on Measurements {
band_size
cup_size

View File

@@ -648,9 +648,8 @@ func performerFragmentToScrapedPerformer(p graphql.PerformerFragment) *models.Sc
sp.Height = &hs
}
if p.Birthdate != nil {
b := p.Birthdate.Date
sp.Birthdate = &b
if p.BirthDate != nil {
sp.Birthdate = padFuzzyDate(p.BirthDate)
}
if p.Gender != nil {
@@ -1356,3 +1355,20 @@ func (c *Client) submitDraft(ctx context.Context, query string, input interface{
return err
}
func padFuzzyDate(date *string) *string {
if date == nil {
return nil
}
var paddedDate string
switch len(*date) {
case 10:
paddedDate = *date
case 7:
paddedDate = fmt.Sprintf("%s-01", *date)
case 4:
paddedDate = fmt.Sprintf("%s-01-01", *date)
}
return &paddedDate
}