refactor: tests use premade json files to test against.
Signed-off-by: SoXX <soxx@fenpa.ws>
This commit is contained in:
parent
7c0765bd3b
commit
babbf48192
3
.gitignore
vendored
3
.gitignore
vendored
@ -188,4 +188,5 @@ $RECYCLE.BIN/
|
|||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
# End of https://www.toptal.com/developers/gitignore/api/windows,linux,goland+all,macos,go
|
# End of https://www.toptal.com/developers/gitignore/api/windows,linux,goland+all,macos,go
|
||||||
|
/.scannerwork/
|
||||||
|
12
.idea/runConfigurations/go_test_e621_sdk_go__endpoints_.xml
Normal file
12
.idea/runConfigurations/go_test_e621_sdk_go__endpoints_.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="go test e621-sdk-go (endpoints)" type="GoTestRunConfiguration" factoryName="Go Test">
|
||||||
|
<module name="e621-sdk-go" />
|
||||||
|
<working_directory value="$PROJECT_DIR$" />
|
||||||
|
<kind value="DIRECTORY" />
|
||||||
|
<package value="git.dragse.it/anthrove/e621-sdk-go" />
|
||||||
|
<directory value="$PROJECT_DIR$/pkg/e621/endpoints" />
|
||||||
|
<filePath value="$PROJECT_DIR$" />
|
||||||
|
<framework value="gotest" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
@ -11,28 +11,18 @@ func TestGetNote(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
noteResponse := model.Note{
|
response, err := loadJsonTestData[model.Note]("../../../tests/note.json")
|
||||||
ID: 385777,
|
|
||||||
CreatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
CreatorID: 1472475,
|
|
||||||
X: 277,
|
|
||||||
Y: 841,
|
|
||||||
Width: 101,
|
|
||||||
Height: 176,
|
|
||||||
Version: 2,
|
|
||||||
IsActive: true,
|
|
||||||
PostID: 2624329,
|
|
||||||
Body: "Well, isn’t it just right to use them?",
|
|
||||||
CreatorName: "ponypussypounder",
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, noteResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/notes/36957.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/notes/1337.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -42,17 +32,17 @@ func TestGetNote(t *testing.T) {
|
|||||||
APIKey: "123456",
|
APIKey: "123456",
|
||||||
}
|
}
|
||||||
|
|
||||||
pool, err := GetNote(requestContext, "36957")
|
pool, err := GetNote(requestContext, "1337")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if pool.ID == noteResponse.ID && pool.Body == noteResponse.Body {
|
if pool.ID == response.ID && pool.Body == response.Body {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pool, noteResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pool, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,60 +50,18 @@ func TestGetNotes(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
noteResponse := []model.Note{
|
response, err := loadJsonTestData[[]model.Note]("../../../tests/notes.json")
|
||||||
{
|
|
||||||
ID: 385777,
|
|
||||||
CreatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
CreatorID: 1472475,
|
|
||||||
X: 277,
|
|
||||||
Y: 841,
|
|
||||||
Width: 101,
|
|
||||||
Height: 176,
|
|
||||||
Version: 2,
|
|
||||||
IsActive: true,
|
|
||||||
PostID: 2624329,
|
|
||||||
Body: "Well, isn’t it just right to use them?",
|
|
||||||
CreatorName: "ponypussypounder",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 56782,
|
|
||||||
CreatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
CreatorID: 1472475,
|
|
||||||
X: 277,
|
|
||||||
Y: 841,
|
|
||||||
Width: 101,
|
|
||||||
Height: 176,
|
|
||||||
Version: 2,
|
|
||||||
IsActive: true,
|
|
||||||
PostID: 2624329,
|
|
||||||
Body: "Well, isn’t it just right to use them?",
|
|
||||||
CreatorName: "ponypussypounder",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 43847234,
|
|
||||||
CreatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T06:42:20.171-04:00",
|
|
||||||
CreatorID: 1472475,
|
|
||||||
X: 277,
|
|
||||||
Y: 841,
|
|
||||||
Width: 101,
|
|
||||||
Height: 176,
|
|
||||||
Version: 2,
|
|
||||||
IsActive: true,
|
|
||||||
PostID: 2624329,
|
|
||||||
Body: "Well, isn’t it just right to use them?",
|
|
||||||
CreatorName: "ponypussypounder",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, noteResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/notes.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/notes.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -129,10 +77,10 @@ func TestGetNotes(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(pools) == 3 && pools[0].ID == noteResponse[0].ID && pools[1].Body == noteResponse[1].Body && pools[2].UpdatedAt == noteResponse[2].UpdatedAt {
|
if pools[0].ID == response[0].ID && pools[1].Body == response[1].Body && pools[2].UpdatedAt == response[2].UpdatedAt {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pools, noteResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pools, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,26 +11,18 @@ func TestGetPool(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
poolResponse := model.Pool{
|
response, err := loadJsonTestData[model.Pool]("../../../tests/pool.json")
|
||||||
ID: 36957,
|
|
||||||
Name: "MLP:His_Nocturnal_Excellency",
|
|
||||||
CreatedAt: "2023-10-13T19:24:00.576-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T07:46:00.267-04:00",
|
|
||||||
CreatorID: 16883,
|
|
||||||
Description: "Two (un)lucky royal guards who saw something they didn’t have to~",
|
|
||||||
IsActive: true,
|
|
||||||
Category: "series",
|
|
||||||
PostIDS: nil,
|
|
||||||
CreatorName: "2DUK",
|
|
||||||
PostCount: 11,
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, poolResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/pools/36957.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/pools/36957.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -46,11 +38,11 @@ func TestGetPool(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if pool.ID == poolResponse.ID && pool.Name == poolResponse.Name {
|
if pool.ID == response.ID && pool.Name == response.Name {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pool, poolResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pool, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,67 +50,18 @@ func TestGetPools(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
poolResponse := []model.Pool{
|
response, err := loadJsonTestData[[]model.Pool]("../../../tests/pools.json")
|
||||||
{
|
|
||||||
ID: 36957,
|
|
||||||
Name: "MLP:His_Nocturnal_Excellency",
|
|
||||||
CreatedAt: "2023-10-13T19:24:00.576-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T07:46:00.267-04:00",
|
|
||||||
CreatorID: 16883,
|
|
||||||
Description: "Two (un)lucky royal guards who saw something they didn’t have to~",
|
|
||||||
IsActive: true,
|
|
||||||
Category: "series",
|
|
||||||
PostIDS: nil,
|
|
||||||
CreatorName: "2DUK",
|
|
||||||
PostCount: 11,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 5772,
|
|
||||||
Name: "MLP:His_Nocturnal_Excellency",
|
|
||||||
CreatedAt: "2023-10-13T19:24:00.576-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T07:46:00.267-04:00",
|
|
||||||
CreatorID: 16883,
|
|
||||||
Description: "Two (un)lucky royal guards who saw something they didn’t have to~",
|
|
||||||
IsActive: true,
|
|
||||||
Category: "series",
|
|
||||||
PostIDS: nil,
|
|
||||||
CreatorName: "2DUK",
|
|
||||||
PostCount: 11,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 453687,
|
|
||||||
Name: "MLP:His_Nocturnal_Excellency",
|
|
||||||
CreatedAt: "2023-10-13T19:24:00.576-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T07:46:00.267-04:00",
|
|
||||||
CreatorID: 16883,
|
|
||||||
Description: "Two (un)lucky royal guards who saw something they didn’t have to~",
|
|
||||||
IsActive: true,
|
|
||||||
Category: "series",
|
|
||||||
PostIDS: nil,
|
|
||||||
CreatorName: "2DUK",
|
|
||||||
PostCount: 11,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 3456876,
|
|
||||||
Name: "MLP:His_Nocturnal_Excellency",
|
|
||||||
CreatedAt: "2023-10-13T19:24:00.576-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T07:46:00.267-04:00",
|
|
||||||
CreatorID: 16883,
|
|
||||||
Description: "Two (un)lucky royal guards who saw something they didn’t have to~",
|
|
||||||
IsActive: true,
|
|
||||||
Category: "series",
|
|
||||||
PostIDS: nil,
|
|
||||||
CreatorName: "2DUK",
|
|
||||||
PostCount: 11,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, poolResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/pools.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/pools.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -134,10 +77,10 @@ func TestGetPools(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(pools) == 4 && pools[0].ID == poolResponse[0].ID && pools[1].Name == poolResponse[1].Name && pools[2].UpdatedAt == poolResponse[2].UpdatedAt {
|
if pools[0].ID == response[0].ID && pools[1].Name == response[1].Name && pools[2].UpdatedAt == response[2].UpdatedAt {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pools, poolResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pools, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,48 +11,23 @@ func TestGetPost(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
postResponse := model.PostResponse{
|
data, err := loadJsonTestData[model.Post]("../../../tests/post.json")
|
||||||
Post: model.Post{
|
|
||||||
ID: 658415636580,
|
|
||||||
CreatedAt: "2023-10-15T03:58:27.272-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T02:47:33.597-04:00",
|
|
||||||
File: model.File{
|
|
||||||
Width: 759,
|
|
||||||
Height: 980,
|
|
||||||
EXT: "jpg",
|
|
||||||
Size: 640942,
|
|
||||||
Md5: "36e229e910638c7aebe65a500f16f3ee",
|
|
||||||
URL: "https://static1.e621.net/data/36/e2/36e229e910638c7aebe65a500f16f3ee.jpg",
|
|
||||||
},
|
|
||||||
Preview: model.Preview{},
|
|
||||||
Sample: model.Sample{},
|
|
||||||
Score: model.Score{},
|
|
||||||
Tags: model.Tags{},
|
|
||||||
LockedTags: nil,
|
|
||||||
ChangeSeq: 0,
|
|
||||||
Flags: model.Flags{},
|
|
||||||
Rating: "",
|
|
||||||
FavCount: 0,
|
|
||||||
Sources: nil,
|
|
||||||
Pools: nil,
|
|
||||||
Relationships: model.Relationships{},
|
|
||||||
ApproverID: nil,
|
|
||||||
UploaderID: 0,
|
|
||||||
Description: "",
|
|
||||||
CommentCount: 0,
|
|
||||||
IsFavorited: false,
|
|
||||||
HasNotes: false,
|
|
||||||
Duration: nil,
|
|
||||||
},
|
|
||||||
Posts: nil,
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, postResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/posts/658415636580.json", jsonResponser)
|
|
||||||
|
response := model.PostResponse{
|
||||||
|
Post: data,
|
||||||
|
Posts: nil,
|
||||||
|
}
|
||||||
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/posts/1337.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -62,17 +37,17 @@ func TestGetPost(t *testing.T) {
|
|||||||
APIKey: "123456",
|
APIKey: "123456",
|
||||||
}
|
}
|
||||||
|
|
||||||
post, err := GetPost(requestContext, "658415636580")
|
post, err := GetPost(requestContext, "1337")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if post.ID == postResponse.Post.ID && post.File.URL == postResponse.Post.File.URL {
|
if post.ID == response.Post.ID && post.File.URL == response.Post.File.URL {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", post, postResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", post, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,114 +55,18 @@ func TestGetPosts(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
postResponse := model.PostResponse{
|
response, err := loadJsonTestData[model.PostResponse]("../../../tests/posts.json")
|
||||||
Post: model.Post{},
|
|
||||||
Posts: []model.Post{
|
|
||||||
{
|
|
||||||
ID: 658415636580,
|
|
||||||
CreatedAt: "2023-10-15T03:58:27.272-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T02:47:33.597-04:00",
|
|
||||||
File: model.File{
|
|
||||||
Width: 759,
|
|
||||||
Height: 980,
|
|
||||||
EXT: "jpg",
|
|
||||||
Size: 640942,
|
|
||||||
Md5: "36e229e910638c7aebe65a500f16f3ee",
|
|
||||||
URL: "https://static1.e621.net/data/36/e2/36e229e910638c7aebe65a500f16f3ee.jpg",
|
|
||||||
},
|
|
||||||
Preview: model.Preview{},
|
|
||||||
Sample: model.Sample{},
|
|
||||||
Score: model.Score{},
|
|
||||||
Tags: model.Tags{},
|
|
||||||
LockedTags: nil,
|
|
||||||
ChangeSeq: 0,
|
|
||||||
Flags: model.Flags{},
|
|
||||||
Rating: "",
|
|
||||||
FavCount: 0,
|
|
||||||
Sources: nil,
|
|
||||||
Pools: nil,
|
|
||||||
Relationships: model.Relationships{},
|
|
||||||
ApproverID: nil,
|
|
||||||
UploaderID: 0,
|
|
||||||
Description: "",
|
|
||||||
CommentCount: 0,
|
|
||||||
IsFavorited: false,
|
|
||||||
HasNotes: false,
|
|
||||||
Duration: nil,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 698418695,
|
|
||||||
CreatedAt: "2023-10-15T03:58:27.272-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T02:47:33.597-04:00",
|
|
||||||
File: model.File{
|
|
||||||
Width: 759,
|
|
||||||
Height: 980,
|
|
||||||
EXT: "jpg",
|
|
||||||
Size: 640942,
|
|
||||||
Md5: "36e229e910638c7aebe65a500f16f3ee",
|
|
||||||
URL: "https://static1.e621.net/data/36/e2/36e229e910638c7aebe65a500f16f3ee.jpg",
|
|
||||||
},
|
|
||||||
Preview: model.Preview{},
|
|
||||||
Sample: model.Sample{},
|
|
||||||
Score: model.Score{},
|
|
||||||
Tags: model.Tags{},
|
|
||||||
LockedTags: nil,
|
|
||||||
ChangeSeq: 0,
|
|
||||||
Flags: model.Flags{},
|
|
||||||
Rating: "",
|
|
||||||
FavCount: 0,
|
|
||||||
Sources: nil,
|
|
||||||
Pools: nil,
|
|
||||||
Relationships: model.Relationships{},
|
|
||||||
ApproverID: nil,
|
|
||||||
UploaderID: 0,
|
|
||||||
Description: "",
|
|
||||||
CommentCount: 0,
|
|
||||||
IsFavorited: false,
|
|
||||||
HasNotes: false,
|
|
||||||
Duration: nil,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ID: 48976516894,
|
|
||||||
CreatedAt: "2023-10-15T03:58:27.272-04:00",
|
|
||||||
UpdatedAt: "2023-10-19T02:47:33.597-04:00",
|
|
||||||
File: model.File{
|
|
||||||
Width: 759,
|
|
||||||
Height: 980,
|
|
||||||
EXT: "jpg",
|
|
||||||
Size: 640942,
|
|
||||||
Md5: "36e229e910638c7aebe65a500f16f3ee",
|
|
||||||
URL: "https://static1.e621.net/data/36/e2/36e229e910638c7aebe65a500f16f3ee.jpg",
|
|
||||||
},
|
|
||||||
Preview: model.Preview{},
|
|
||||||
Sample: model.Sample{},
|
|
||||||
Score: model.Score{},
|
|
||||||
Tags: model.Tags{},
|
|
||||||
LockedTags: nil,
|
|
||||||
ChangeSeq: 0,
|
|
||||||
Flags: model.Flags{},
|
|
||||||
Rating: "",
|
|
||||||
FavCount: 0,
|
|
||||||
Sources: nil,
|
|
||||||
Pools: nil,
|
|
||||||
Relationships: model.Relationships{},
|
|
||||||
ApproverID: nil,
|
|
||||||
UploaderID: 0,
|
|
||||||
Description: "",
|
|
||||||
CommentCount: 0,
|
|
||||||
IsFavorited: false,
|
|
||||||
HasNotes: false,
|
|
||||||
Duration: nil,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, postResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/posts.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/posts.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -203,10 +82,10 @@ func TestGetPosts(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(posts) == 3 && posts[0].ID == postResponse.Posts[0].ID && posts[1].File.Md5 == postResponse.Posts[1].File.Md5 && posts[2].File.EXT == postResponse.Posts[2].File.EXT {
|
if posts[0].ID == response.Posts[0].ID && posts[1].File.Md5 == response.Posts[1].File.Md5 && posts[2].File.EXT == response.Posts[2].File.EXT {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", posts, postResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", posts, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,24 +11,18 @@ func TestGetTag(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
tagResponse := model.Tag{
|
response, err := loadJsonTestData[model.Tag]("../../../tests/tag.json")
|
||||||
ID: 165165,
|
|
||||||
Name: "35ad13",
|
|
||||||
PostCount: 59,
|
|
||||||
RelatedTags: "[]",
|
|
||||||
RelatedTagsUpdatedAt: "2023-10-16T07:58:15.897+02:00",
|
|
||||||
Category: 0,
|
|
||||||
IsLocked: false,
|
|
||||||
CreatedAt: "2023-10-16T07:58:15.917+02:00",
|
|
||||||
UpdatedAt: "2023-10-16T07:58:23.310+02:00",
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, tagResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/tags/165165.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/tags/165165.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -44,10 +38,10 @@ func TestGetTag(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if tag.ID == tagResponse.ID && tag.Name == tagResponse.Name && tag.CreatedAt == tagResponse.CreatedAt {
|
if tag.ID == response.ID && tag.Name == response.Name && tag.CreatedAt == response.CreatedAt {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", tag, tagResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", tag, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,39 +11,18 @@ func TestGetUser(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
userResponse := model.User{
|
response, err := loadJsonTestData[model.User]("../../../tests/user.json")
|
||||||
WikiPageVersionCount: 0,
|
|
||||||
ArtistVersionCount: 0,
|
|
||||||
PoolVersionCount: 0,
|
|
||||||
ForumPostCount: 0,
|
|
||||||
CommentCount: 69,
|
|
||||||
FlagCount: 0,
|
|
||||||
FavoriteCount: 1337,
|
|
||||||
PositiveFeedbackCount: 0,
|
|
||||||
NeutralFeedbackCount: 0,
|
|
||||||
NegativeFeedbackCount: 0,
|
|
||||||
UploadLimit: 0,
|
|
||||||
ID: 1,
|
|
||||||
CreatedAt: "2020-04-07T07:16:40.286+02:00",
|
|
||||||
Name: "MaxMustermannDer69ste",
|
|
||||||
Level: 0,
|
|
||||||
BaseUploadLimit: 0,
|
|
||||||
PostUploadCount: 0,
|
|
||||||
PostUpdateCount: 0,
|
|
||||||
NoteUpdateCount: 0,
|
|
||||||
IsBanned: false,
|
|
||||||
CanApprovePosts: false,
|
|
||||||
CanUploadFree: false,
|
|
||||||
LevelString: "Member",
|
|
||||||
AvatarID: 7,
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, userResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/users/MaxMustermannDer69ste.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/users/selloo.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -53,17 +32,17 @@ func TestGetUser(t *testing.T) {
|
|||||||
APIKey: "123456",
|
APIKey: "123456",
|
||||||
}
|
}
|
||||||
|
|
||||||
user, err := GetUser(requestContext, "MaxMustermannDer69ste")
|
user, err := GetUser(requestContext, "selloo")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if user.ID == userResponse.ID && user.Name == userResponse.Name && user.CreatedAt == userResponse.CreatedAt {
|
if user.ID == response.ID && user.Name == response.Name && user.CreatedAt == response.CreatedAt {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", user, userResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", user, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,68 +50,18 @@ func TestGetUsers(t *testing.T) {
|
|||||||
httpmock.Activate()
|
httpmock.Activate()
|
||||||
defer httpmock.DeactivateAndReset()
|
defer httpmock.DeactivateAndReset()
|
||||||
|
|
||||||
userResponse := []model.User{
|
response, err := loadJsonTestData[[]model.User]("../../../tests/users.json")
|
||||||
{
|
|
||||||
|
|
||||||
WikiPageVersionCount: 0,
|
|
||||||
ArtistVersionCount: 0,
|
|
||||||
PoolVersionCount: 0,
|
|
||||||
ForumPostCount: 0,
|
|
||||||
CommentCount: 69,
|
|
||||||
FlagCount: 0,
|
|
||||||
FavoriteCount: 1337,
|
|
||||||
PositiveFeedbackCount: 0,
|
|
||||||
NeutralFeedbackCount: 0,
|
|
||||||
NegativeFeedbackCount: 0,
|
|
||||||
UploadLimit: 0,
|
|
||||||
ID: 1,
|
|
||||||
CreatedAt: "2020-04-07T07:16:40.286+02:00",
|
|
||||||
Name: "MaxMustermannDer69ste",
|
|
||||||
Level: 0,
|
|
||||||
BaseUploadLimit: 0,
|
|
||||||
PostUploadCount: 0,
|
|
||||||
PostUpdateCount: 0,
|
|
||||||
NoteUpdateCount: 0,
|
|
||||||
IsBanned: false,
|
|
||||||
CanApprovePosts: false,
|
|
||||||
CanUploadFree: false,
|
|
||||||
LevelString: "Member",
|
|
||||||
AvatarID: 7,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
WikiPageVersionCount: 0,
|
|
||||||
ArtistVersionCount: 0,
|
|
||||||
PoolVersionCount: 0,
|
|
||||||
ForumPostCount: 0,
|
|
||||||
CommentCount: 1337,
|
|
||||||
FlagCount: 0,
|
|
||||||
FavoriteCount: 69,
|
|
||||||
PositiveFeedbackCount: 0,
|
|
||||||
NeutralFeedbackCount: 0,
|
|
||||||
NegativeFeedbackCount: 0,
|
|
||||||
UploadLimit: 0,
|
|
||||||
ID: 1,
|
|
||||||
CreatedAt: "2020-04-08T07:16:40.286+02:00",
|
|
||||||
Name: "HollaDieWaldfee",
|
|
||||||
Level: 0,
|
|
||||||
BaseUploadLimit: 0,
|
|
||||||
PostUploadCount: 0,
|
|
||||||
PostUpdateCount: 0,
|
|
||||||
NoteUpdateCount: 0,
|
|
||||||
IsBanned: false,
|
|
||||||
CanApprovePosts: false,
|
|
||||||
CanUploadFree: false,
|
|
||||||
LevelString: "Member",
|
|
||||||
AvatarID: 16,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResponser, err := httpmock.NewJsonResponder(200, userResponse)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
httpmock.RegisterResponder("GET", "https://e621.net/users.json", jsonResponser)
|
|
||||||
|
responder, err := httpmock.NewJsonResponder(200, response)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
httpmock.RegisterResponder("GET", "https://e621.net/users.json", responder)
|
||||||
|
|
||||||
requestContext := model.RequestContext{
|
requestContext := model.RequestContext{
|
||||||
Client: http.Client{},
|
Client: http.Client{},
|
||||||
@ -148,10 +77,10 @@ func TestGetUsers(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(user) == 2 && user[0].ID == userResponse[0].ID && user[1].Name == userResponse[1].Name {
|
if user[0].ID == response[0].ID && user[1].Name == response[1].Name {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", user, userResponse)
|
t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", user, response)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
28
pkg/e621/endpoints/utils_test.go
Normal file
28
pkg/e621/endpoints/utils_test.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package endpoints
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func loadJsonTestData[T any](testDataPath string) (T, error) {
|
||||||
|
// Create a variable to store the decoded JSON data
|
||||||
|
var jsonData T
|
||||||
|
|
||||||
|
// Open the JSON file
|
||||||
|
file, err := os.Open(testDataPath)
|
||||||
|
if err != nil {
|
||||||
|
return jsonData, err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
// Create a decoder
|
||||||
|
decoder := json.NewDecoder(file)
|
||||||
|
|
||||||
|
// Decode the JSON data into the struct
|
||||||
|
if err := decoder.Decode(&jsonData); err != nil {
|
||||||
|
return jsonData, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return jsonData, nil
|
||||||
|
}
|
15
tests/note.json
Normal file
15
tests/note.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"id": 1337,
|
||||||
|
"created_at": "2009-05-19T13:30:28.360-04:00",
|
||||||
|
"updated_at": "2009-06-02T16:52:06.418-04:00",
|
||||||
|
"creator_id": 2942,
|
||||||
|
"x": 163,
|
||||||
|
"y": 718,
|
||||||
|
"width": 99,
|
||||||
|
"height": 47,
|
||||||
|
"version": 2,
|
||||||
|
"is_active": false,
|
||||||
|
"post_id": 31570,
|
||||||
|
"body": "BORANGE MORE LIKE IT",
|
||||||
|
"creator_name": "DahWuffie"
|
||||||
|
}
|
1127
tests/notes.json
Normal file
1127
tests/notes.json
Normal file
File diff suppressed because it is too large
Load Diff
38
tests/pool.json
Normal file
38
tests/pool.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "Furry_Boys_by_Trump/Team_Shuffle",
|
||||||
|
"created_at": "2008-10-30T03:42:29.962-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:58:59.488-04:00",
|
||||||
|
"creator_id": 7,
|
||||||
|
"description": "Furry Boys Comic",
|
||||||
|
"is_active": false,
|
||||||
|
"category": "series",
|
||||||
|
"post_ids": [
|
||||||
|
3294,
|
||||||
|
3295,
|
||||||
|
3296,
|
||||||
|
3297,
|
||||||
|
3298,
|
||||||
|
3299,
|
||||||
|
3300,
|
||||||
|
3303,
|
||||||
|
3306,
|
||||||
|
3304,
|
||||||
|
3305,
|
||||||
|
3307,
|
||||||
|
3309,
|
||||||
|
3308,
|
||||||
|
3313,
|
||||||
|
3312,
|
||||||
|
3316,
|
||||||
|
3314,
|
||||||
|
3315,
|
||||||
|
3321,
|
||||||
|
3317,
|
||||||
|
3319,
|
||||||
|
3318,
|
||||||
|
3320
|
||||||
|
],
|
||||||
|
"creator_name": "user_7",
|
||||||
|
"post_count": 24
|
||||||
|
}
|
4002
tests/pools.json
Normal file
4002
tests/pools.json
Normal file
File diff suppressed because it is too large
Load Diff
111
tests/post.json
Normal file
111
tests/post.json
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
{
|
||||||
|
"post": {
|
||||||
|
"id": 1337,
|
||||||
|
"created_at": "2007-02-23T22:14:42.048-05:00",
|
||||||
|
"updated_at": "2023-10-20T01:59:09.423-04:00",
|
||||||
|
"file": {
|
||||||
|
"width": 790,
|
||||||
|
"height": 748,
|
||||||
|
"ext": "jpg",
|
||||||
|
"size": 156917,
|
||||||
|
"md5": "4e7586f0666a7c735b2f9e1ccd18bc68",
|
||||||
|
"url": "https://static1.e621.net/data/4e/75/4e7586f0666a7c735b2f9e1ccd18bc68.jpg"
|
||||||
|
},
|
||||||
|
"preview": {
|
||||||
|
"width": 150,
|
||||||
|
"height": 142,
|
||||||
|
"url": "https://static1.e621.net/data/preview/4e/75/4e7586f0666a7c735b2f9e1ccd18bc68.jpg"
|
||||||
|
},
|
||||||
|
"sample": {
|
||||||
|
"has": false,
|
||||||
|
"height": 748,
|
||||||
|
"width": 790,
|
||||||
|
"url": "https://static1.e621.net/data/4e/75/4e7586f0666a7c735b2f9e1ccd18bc68.jpg",
|
||||||
|
"alternates": {}
|
||||||
|
},
|
||||||
|
"score": {
|
||||||
|
"up": 46,
|
||||||
|
"down": -4,
|
||||||
|
"total": 42
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"general": [
|
||||||
|
"\u003c3",
|
||||||
|
"anthro",
|
||||||
|
"blush",
|
||||||
|
"bottomwear",
|
||||||
|
"briefs",
|
||||||
|
"chibi",
|
||||||
|
"clothed",
|
||||||
|
"clothing",
|
||||||
|
"dialogue",
|
||||||
|
"ear_piercing",
|
||||||
|
"footwear",
|
||||||
|
"funny_post_number",
|
||||||
|
"fur",
|
||||||
|
"group",
|
||||||
|
"hair",
|
||||||
|
"humor",
|
||||||
|
"legwear",
|
||||||
|
"male",
|
||||||
|
"pants",
|
||||||
|
"piercing",
|
||||||
|
"pink_hair",
|
||||||
|
"reluctant",
|
||||||
|
"shirt",
|
||||||
|
"simple_background",
|
||||||
|
"socks",
|
||||||
|
"text",
|
||||||
|
"topless",
|
||||||
|
"topwear",
|
||||||
|
"underwear"
|
||||||
|
],
|
||||||
|
"artist": [
|
||||||
|
"sneakerfox"
|
||||||
|
],
|
||||||
|
"copyright": [],
|
||||||
|
"character": [],
|
||||||
|
"species": [
|
||||||
|
"canid",
|
||||||
|
"canine",
|
||||||
|
"fox",
|
||||||
|
"mammal",
|
||||||
|
"mephitid",
|
||||||
|
"skunk"
|
||||||
|
],
|
||||||
|
"invalid": [],
|
||||||
|
"meta": [
|
||||||
|
"2003",
|
||||||
|
"english_text"
|
||||||
|
],
|
||||||
|
"lore": []
|
||||||
|
},
|
||||||
|
"locked_tags": [],
|
||||||
|
"change_seq": 42512291,
|
||||||
|
"flags": {
|
||||||
|
"pending": false,
|
||||||
|
"flagged": false,
|
||||||
|
"note_locked": false,
|
||||||
|
"status_locked": false,
|
||||||
|
"rating_locked": false,
|
||||||
|
"deleted": false
|
||||||
|
},
|
||||||
|
"rating": "s",
|
||||||
|
"fav_count": 84,
|
||||||
|
"sources": [],
|
||||||
|
"pools": [],
|
||||||
|
"relationships": {
|
||||||
|
"parent_id": null,
|
||||||
|
"has_children": false,
|
||||||
|
"has_active_children": false,
|
||||||
|
"children": []
|
||||||
|
},
|
||||||
|
"approver_id": null,
|
||||||
|
"uploader_id": 17633,
|
||||||
|
"description": "",
|
||||||
|
"comment_count": 6,
|
||||||
|
"is_favorited": false,
|
||||||
|
"has_notes": false,
|
||||||
|
"duration": null
|
||||||
|
}
|
||||||
|
}
|
8820
tests/posts.json
Normal file
8820
tests/posts.json
Normal file
File diff suppressed because it is too large
Load Diff
11
tests/tag.json
Normal file
11
tests/tag.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": 1337,
|
||||||
|
"name": "clothed",
|
||||||
|
"post_count": 945399,
|
||||||
|
"related_tags": "clothed 300 clothing 300 mammal 255 anthro 242 female 200 hi_res 197 solo 154 breasts 153 hair 152 male 140 fur 121 duo 102 genitals 101 digital_media_(artwork) 97 canid 88 topwear 88 bodily_fluids 87 text 86 canine 84 simple_background 82 big_breasts 79 smile 79 open_mouth 76 tail 76 felid 75",
|
||||||
|
"related_tags_updated_at": "2023-10-04T15:01:19.597-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2020-03-05T05:49:37.994-05:00",
|
||||||
|
"updated_at": "2023-10-04T15:01:19.598-04:00"
|
||||||
|
}
|
827
tests/tags.json
Normal file
827
tests/tags.json
Normal file
@ -0,0 +1,827 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1251286,
|
||||||
|
"name": "ayre_(armored_core)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T09:29:25.610-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T09:29:27.171-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:29:27.171-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251285,
|
||||||
|
"name": "621_(armored_core)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T09:29:25.610-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T09:29:27.162-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:29:27.162-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251283,
|
||||||
|
"name": "thatguywithabadattitude",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T09:23:37.329-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T09:23:38.656-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:23:51.716-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251282,
|
||||||
|
"name": "hamantha_(jack_stauber)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T09:23:37.329-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T09:23:38.647-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:23:44.770-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251281,
|
||||||
|
"name": "artist_rayminonfox",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T09:14:50.934-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T09:14:53.598-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:14:53.598-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251280,
|
||||||
|
"name": "kminsi21",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T09:04:08.935-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T09:04:12.868-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:04:12.868-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251279,
|
||||||
|
"name": "mori_(thetomereborn)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T08:54:06.887-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T08:54:06.910-04:00",
|
||||||
|
"updated_at": "2023-10-24T08:54:20.520-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251278,
|
||||||
|
"name": "rbxgemini",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T08:26:26.437-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T08:26:26.869-04:00",
|
||||||
|
"updated_at": "2023-10-24T08:28:55.655-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251275,
|
||||||
|
"name": "miss_m",
|
||||||
|
"post_count": 10,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T07:54:40.845-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T07:54:40.872-04:00",
|
||||||
|
"updated_at": "2023-10-24T07:54:53.333-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251274,
|
||||||
|
"name": "sauna_(vorelover203)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T07:49:44.945-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T07:49:44.975-04:00",
|
||||||
|
"updated_at": "2023-10-24T07:49:53.215-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251273,
|
||||||
|
"name": "critterstew",
|
||||||
|
"post_count": 10,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T07:47:01.742-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T07:47:04.951-04:00",
|
||||||
|
"updated_at": "2023-10-24T07:47:04.951-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251272,
|
||||||
|
"name": "margo_(g4bby)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T07:38:58.883-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T07:39:00.096-04:00",
|
||||||
|
"updated_at": "2023-10-24T07:39:00.096-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251271,
|
||||||
|
"name": "lemon_(lewdchuu)",
|
||||||
|
"post_count": 6,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T07:32:40.389-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T07:32:41.621-04:00",
|
||||||
|
"updated_at": "2023-10-24T07:32:49.273-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251270,
|
||||||
|
"name": "bg3",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T07:27:49.080-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T07:27:50.484-04:00",
|
||||||
|
"updated_at": "2023-10-24T07:27:50.484-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251269,
|
||||||
|
"name": "tail_in_paw",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T06:41:39.634-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T06:41:39.670-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:41:39.670-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251268,
|
||||||
|
"name": "tail_in_own_paw",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T06:41:39.634-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T06:41:39.667-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:41:39.667-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251267,
|
||||||
|
"name": "tail_in_own_hand",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T06:41:39.634-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T06:41:39.656-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:41:39.656-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251265,
|
||||||
|
"name": "sorrelkit_(warriors)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T06:38:09.807-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T06:38:09.868-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:38:09.868-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251264,
|
||||||
|
"name": "mr_o_(bebebebebe)",
|
||||||
|
"post_count": 9,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T06:11:42.600-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T06:11:42.629-04:00",
|
||||||
|
"updated_at": "2023-10-24T09:05:19.594-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251263,
|
||||||
|
"name": "pregnancy_risk_kink",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T06:03:51.859-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T06:03:51.883-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:03:51.883-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251262,
|
||||||
|
"name": "wasp_trooper_(bug_fables)",
|
||||||
|
"post_count": 3,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T05:53:31.291-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T05:53:31.327-04:00",
|
||||||
|
"updated_at": "2023-10-24T05:53:43.527-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251260,
|
||||||
|
"name": "mammi_wolfgang",
|
||||||
|
"post_count": 4,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T05:19:10.341-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T05:19:11.134-04:00",
|
||||||
|
"updated_at": "2023-10-24T05:19:40.522-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251259,
|
||||||
|
"name": "flo_wolfgang",
|
||||||
|
"post_count": 4,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T05:19:10.341-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T05:19:11.129-04:00",
|
||||||
|
"updated_at": "2023-10-24T05:19:24.330-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251258,
|
||||||
|
"name": "nicole_wolfgang",
|
||||||
|
"post_count": 4,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T05:19:10.341-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T05:19:11.109-04:00",
|
||||||
|
"updated_at": "2023-10-24T05:19:50.968-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251255,
|
||||||
|
"name": "nim_(razim)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:49:30.099-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:49:30.120-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:50:10.978-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251254,
|
||||||
|
"name": "freddie_(freddie_as_f.r.o.7)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:42:53.579-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:42:53.791-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:42:53.791-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251253,
|
||||||
|
"name": "low_pawpads",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:42:22.631-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:42:22.658-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:42:22.658-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251252,
|
||||||
|
"name": "white_multicolored_fur",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:41:38.624-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:41:38.636-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:41:38.636-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251251,
|
||||||
|
"name": "warrior_cats:_ultimate_edition",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:26:51.145-04:00",
|
||||||
|
"category": 3,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:26:52.665-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:26:52.665-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251250,
|
||||||
|
"name": "little_snow_bee",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:20:32.428-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:20:34.328-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:20:34.328-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251249,
|
||||||
|
"name": "tacticoolmofo",
|
||||||
|
"post_count": 4,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T04:14:00.773-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T04:14:02.427-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:14:02.427-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251248,
|
||||||
|
"name": "zotz_(artist)",
|
||||||
|
"post_count": 77,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T03:59:43.172-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T03:59:43.192-04:00",
|
||||||
|
"updated_at": "2023-10-24T03:59:52.829-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251246,
|
||||||
|
"name": "cum_in_arthropod_abdomen_cloaca",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T03:35:58.957-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T03:35:58.965-04:00",
|
||||||
|
"updated_at": "2023-10-24T03:35:58.965-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251245,
|
||||||
|
"name": "dabubby",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T03:28:51.607-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T03:28:53.065-04:00",
|
||||||
|
"updated_at": "2023-10-24T03:28:59.897-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251244,
|
||||||
|
"name": "big_thick_horse_bug_(reptilligator)",
|
||||||
|
"post_count": 6,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T03:19:04.737-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T03:19:04.762-04:00",
|
||||||
|
"updated_at": "2023-10-24T03:19:37.148-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251239,
|
||||||
|
"name": "sentient_ovum",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:24:58.635-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:24:58.697-04:00",
|
||||||
|
"updated_at": "2023-10-24T02:24:58.697-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251237,
|
||||||
|
"name": "burningpalace",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:10:48.280-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:10:49.544-04:00",
|
||||||
|
"updated_at": "2023-10-24T04:11:38.363-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251236,
|
||||||
|
"name": "gixer",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:10:00.860-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:10:02.583-04:00",
|
||||||
|
"updated_at": "2023-10-24T02:10:22.835-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251235,
|
||||||
|
"name": "skirt_in_mouth",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:07:20.977-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:07:21.041-04:00",
|
||||||
|
"updated_at": "2023-10-24T02:07:21.041-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251234,
|
||||||
|
"name": "lara_(fightinlove)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:05:15.564-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:05:20.184-04:00",
|
||||||
|
"updated_at": "2023-10-24T05:39:23.811-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251233,
|
||||||
|
"name": "jane_(wonder_b-cruise)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:03:30.108-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:03:30.144-04:00",
|
||||||
|
"updated_at": "2023-10-24T02:03:30.144-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251232,
|
||||||
|
"name": "tracy_(wonder_b-cruise)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:03:30.108-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:03:30.140-04:00",
|
||||||
|
"updated_at": "2023-10-24T02:03:30.140-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251231,
|
||||||
|
"name": "garland_(wonder_b-cruise)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T02:03:30.108-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T02:03:30.133-04:00",
|
||||||
|
"updated_at": "2023-10-24T02:03:30.133-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251230,
|
||||||
|
"name": "wonder_b-cruise",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:59:16.044-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:59:16.066-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:59:16.066-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251227,
|
||||||
|
"name": "sam_(shai_dreamcast)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:50:05.159-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:50:10.224-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:50:56.134-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251226,
|
||||||
|
"name": "flip_(greenstranger)",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:43:51.267-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:43:53.314-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:43:53.314-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251225,
|
||||||
|
"name": "jade_(shai_dreamcast)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:43:48.317-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:43:49.808-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:43:57.309-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251224,
|
||||||
|
"name": "eris_morgan",
|
||||||
|
"post_count": 6,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:41:22.193-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:41:22.896-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:31:17.336-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251223,
|
||||||
|
"name": "heaven's_door",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:40:19.716-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:40:19.734-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:40:31.461-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251222,
|
||||||
|
"name": "lenore_(peachbumz)",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:39:42.014-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:39:42.941-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:39:42.941-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251221,
|
||||||
|
"name": "dawn_(bratcatt)",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:27:57.857-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:27:58.852-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:27:58.852-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251220,
|
||||||
|
"name": "solaris26",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:27:51.773-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:27:52.818-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:28:06.079-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251219,
|
||||||
|
"name": "xcookieeex",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:25:12.335-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:25:16.580-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:53:02.328-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251218,
|
||||||
|
"name": "cookie_(xcookieeex)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:25:12.335-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:25:16.561-04:00",
|
||||||
|
"updated_at": "2023-10-24T06:53:15.800-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251217,
|
||||||
|
"name": "tundra_(cosmicinteleon)",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T01:25:03.856-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T01:25:07.436-04:00",
|
||||||
|
"updated_at": "2023-10-24T01:25:25.101-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251215,
|
||||||
|
"name": "stuck_in_box",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:54:45.209-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:54:45.240-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:54:45.240-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251214,
|
||||||
|
"name": "posquora1",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:52:53.091-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:52:53.115-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:52:53.115-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251212,
|
||||||
|
"name": "minty_mintleaf_(fishpaste2100)",
|
||||||
|
"post_count": 4,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:46:31.384-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:46:31.406-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:46:31.406-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251211,
|
||||||
|
"name": "parlormaid",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:45:30.371-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:45:31.026-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:45:31.026-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251210,
|
||||||
|
"name": "solodimeleo",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:36:02.136-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:36:05.350-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:37:45.770-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251208,
|
||||||
|
"name": "klustr_jr",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:33:51.994-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:33:52.014-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:34:56.371-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251207,
|
||||||
|
"name": "bigal_(1-upclock)",
|
||||||
|
"post_count": 3,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:25:55.576-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:25:57.052-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:25:57.052-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251204,
|
||||||
|
"name": "lulu_(1-upclock)",
|
||||||
|
"post_count": 3,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:20:12.918-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:20:14.797-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:20:14.797-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251201,
|
||||||
|
"name": "fake_metal_big",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:11:41.639-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:11:41.649-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:11:41.649-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251200,
|
||||||
|
"name": "irene_(thixxen)",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-24T00:06:10.688-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-24T00:06:15.685-04:00",
|
||||||
|
"updated_at": "2023-10-24T00:10:59.339-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251197,
|
||||||
|
"name": "pollianna_(monodreams)",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:58:51.324-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:58:51.363-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:59:16.944-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251196,
|
||||||
|
"name": "suspended_by_torso",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:47:57.838-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:47:57.868-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:47:57.868-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251195,
|
||||||
|
"name": "suspended_by_flipper",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:47:57.838-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:47:57.858-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:47:57.858-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251192,
|
||||||
|
"name": "pseudo_scat",
|
||||||
|
"post_count": 8,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:33:24.475-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:33:24.505-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:33:24.505-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251191,
|
||||||
|
"name": "smooth_pelvis",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:33:07.539-04:00",
|
||||||
|
"category": 0,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:33:08.336-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:33:08.336-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251190,
|
||||||
|
"name": "auzzy",
|
||||||
|
"post_count": 3,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:28:48.545-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:28:50.531-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:29:00.248-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251189,
|
||||||
|
"name": "datowda",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:18:49.452-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:18:50.368-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:18:50.368-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251188,
|
||||||
|
"name": "linia_dedoldia",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:00:31.757-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:00:37.697-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:01:00.303-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251187,
|
||||||
|
"name": "pursena_adoldia",
|
||||||
|
"post_count": 2,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T23:00:31.757-04:00",
|
||||||
|
"category": 4,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T23:00:37.690-04:00",
|
||||||
|
"updated_at": "2023-10-23T23:00:53.457-04:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1251186,
|
||||||
|
"name": "galacteasers",
|
||||||
|
"post_count": 1,
|
||||||
|
"related_tags": "[]",
|
||||||
|
"related_tags_updated_at": "2023-10-23T22:57:13.026-04:00",
|
||||||
|
"category": 1,
|
||||||
|
"is_locked": false,
|
||||||
|
"created_at": "2023-10-23T22:57:15.489-04:00",
|
||||||
|
"updated_at": "2023-10-23T22:57:32.732-04:00"
|
||||||
|
}
|
||||||
|
]
|
26
tests/user.json
Normal file
26
tests/user.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"wiki_page_version_count": 0,
|
||||||
|
"artist_version_count": 0,
|
||||||
|
"pool_version_count": 0,
|
||||||
|
"forum_post_count": 0,
|
||||||
|
"comment_count": 1,
|
||||||
|
"flag_count": 0,
|
||||||
|
"favorite_count": 1454,
|
||||||
|
"positive_feedback_count": 0,
|
||||||
|
"neutral_feedback_count": 0,
|
||||||
|
"negative_feedback_count": 0,
|
||||||
|
"upload_limit": 10,
|
||||||
|
"id": 136501,
|
||||||
|
"created_at": "2014-04-23T07:08:04.080-04:00",
|
||||||
|
"name": "Selloo",
|
||||||
|
"level": 20,
|
||||||
|
"base_upload_limit": 10,
|
||||||
|
"post_upload_count": 0,
|
||||||
|
"post_update_count": 5,
|
||||||
|
"note_update_count": 0,
|
||||||
|
"is_banned": false,
|
||||||
|
"can_approve_posts": false,
|
||||||
|
"can_upload_free": false,
|
||||||
|
"level_string": "Member",
|
||||||
|
"avatar_id": 922595
|
||||||
|
}
|
1127
tests/users.json
Normal file
1127
tests/users.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user