Skip to content

Commit

Permalink
feat: Allow Stash Scraping via new flag rather than Enabled (#1887)
Browse files Browse the repository at this point in the history
  • Loading branch information
toshski authored Jan 17, 2025
1 parent c7fe17f commit 401c19e
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 1 deletion.
9 changes: 9 additions & 0 deletions pkg/api/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,9 @@ func (i ConfigResource) WebService() *restful.WebService {
ws.Route(ws.PUT("/sites/limit_scraping/{site}").To(i.toggleLimitScraping).
Metadata(restfulspec.KeyOpenAPITags, tags))

ws.Route(ws.PUT("/sites/scrape_stash/{site}").To(i.toggleScrapeStash).
Metadata(restfulspec.KeyOpenAPITags, tags))

ws.Route(ws.POST("/scraper/force-site-update").To(i.forceSiteUpdate).
Metadata(restfulspec.KeyOpenAPITags, tags))

Expand Down Expand Up @@ -355,6 +358,9 @@ func (i ConfigResource) toggleLimitScraping(req *restful.Request, resp *restful.
i.toggleSiteField(req, resp, "LimitScraping")
}

func (i ConfigResource) toggleScrapeStash(req *restful.Request, resp *restful.Response) {
i.toggleSiteField(req, resp, "ScrapeStash")
}
func (i ConfigResource) toggleSiteField(req *restful.Request, resp *restful.Response, field string) {
db, _ := models.GetDB()
defer db.Close()
Expand All @@ -380,6 +386,9 @@ func (i ConfigResource) toggleSiteField(req *restful.Request, resp *restful.Resp
case "LimitScraping":
site.LimitScraping = !site.LimitScraping
db.Model(&models.Scene{}).Where("scraper_id = ?", site.ID).Update("limit_scraping", site.LimitScraping)
case "ScrapeStash":
site.ScrapeStash = !site.ScrapeStash
db.Model(&models.Scene{}).Where("scrape_stash = ?", site.ID).Update("scrape_stash", site.LimitScraping)
}
site.Save()

Expand Down
13 changes: 13 additions & 0 deletions pkg/migrations/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,19 @@ func Migrate() {
return nil
},
},
{
ID: "0082-scrape-stash-flag",
Migrate: func(tx *gorm.DB) error {
type Site struct {
ScrapeStash bool `json:"scrape_stash" xbvrbackup:"scrape_stash"`
}
err := tx.AutoMigrate(Site{}).Error
if err != nil {
return err
}
return tx.Exec("update sites set scrape_stash = is_enabled").Error
},
},

// ===============================================================================================
// Put DB Schema migrations above this line and migrations that rely on the updated schema below
Expand Down
1 change: 1 addition & 0 deletions pkg/models/model_site.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type Site struct {
LimitScraping bool `json:"limit_scraping" xbvrbackup:"limit_scraping"`
MasterSiteID string `json:"master_site_id" xbvrbackup:"master_site_id"`
MatchingParams string `json:"matching_params" gorm:"size:1000" xbvrbackup:"matching_params"`
ScrapeStash bool `json:"scrape_stash" xbvrbackup:"scrape_stash"`
}

func (i *Site) Save() error {
Expand Down
2 changes: 1 addition & 1 deletion pkg/scrape/stashdb.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func StashDb() {
defer db.Close()

Config = models.BuildActorScraperRules()
db.Where(&models.Site{IsEnabled: true}).Order("id").Find(&sites)
db.Where(&models.Site{ScrapeStash: true}).Order("id").Find(&sites)

for _, site := range sites {
tlog.Infof("Scraping stash studio %s", site.Name)
Expand Down
3 changes: 3 additions & 0 deletions ui/src/store/optionsSites.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ const actions = {
async toggleLimitScraping ({ state }, params) {
state.items = await ky.put(`/api/options/sites/limit_scraping/${params.id}`, { json: {} }).json()
},
async toggleScrapeStash ({ state }, params) {
state.items = await ky.put(`/api/options/sites/scrape_stash/${params.id}`, { json: {} }).json()
},
}

export default {
Expand Down
5 changes: 5 additions & 0 deletions ui/src/views/options/sections/OptionsSceneDataScrapers.vue
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@
<span v-if="props.row.master_site_id==''"><b-switch v-model ="props.row.subscribed" @input="$store.dispatch('optionsSites/toggleSubscribed', {id: props.row.id})"/></span>
</b-tooltip>
</b-table-column>
<b-table-column field="scrape_stash" :label="$t('Scrape Stash')" v-slot="props" width="60" sortable>
<b-tooltip class="is-info" :label="$t('Enables scraping Stashdb for Actors')" :delay="250" >
<span v-if="props.row.master_site_id==''"><b-switch v-model ="props.row.scrape_stash" @input="$store.dispatch('optionsSites/toggleScrapeStash', {id: props.row.id})"/></span>
</b-tooltip>
</b-table-column>
<b-table-column field="options" v-slot="props" width="30">
<div class="menu">
<b-dropdown aria-role="list" class="is-pulled-right" position="is-bottom-left">
Expand Down

0 comments on commit 401c19e

Please sign in to comment.