Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd9c16a2

Browse files
Alderamin49lyAlderamin
and
Alderamin
authored
feat: Persist last used JAVR scraper (#1646)
Co-authored-by: Alderamin <alderamin49ly@gmail.com>
1 parentf4c9c85 commitd9c16a2

File tree

3 files changed

+95
-76
lines changed

3 files changed

+95
-76
lines changed

‎pkg/config/config.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ type ObjectConfig struct {
174174
TMWVRNetstruct {
175175
TmwMembersDomainstring`default:"members.tmwvrnet.com" json:"tmwMembersDomain"`
176176
}`json:"tmwvrnet"`
177+
Javrstruct {
178+
JavrScraperstring`default:"javdatabase" json:"javrScraper"`
179+
}`json:"javr"`
177180
}`json:"scraper_settings"`
178181
}
179182

‎pkg/tasks/content.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,9 @@ func ScrapeJAVR(queryString string, scraper string) {
366366
tlog:=log.WithField("task","scrape")
367367
tlog.Infof("Scraping started at %s",t0.Format("Mon Jan _2 15:04:05 2006"))
368368

369+
config.Config.ScraperSettings.Javr.JavrScraper=scraper
370+
config.SaveConfig()
371+
369372
// Start scraping
370373
varcollectedScenes []models.ScrapedScene
371374

‎ui/src/views/options/sections/OptionsSceneCreate.vue

Lines changed: 89 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,89 @@
11
<template>
2-
<divclass="content">
3-
<h3class="title">{{$t('Import Japanese Adult VR (JAVR) Scene')}}</h3>
4-
<divclass="card">
5-
<divclass="card-content content">
6-
<b-fieldgrouped>
7-
<b-selectplaceholder="Select scraper"v-model="javrScraper">
8-
<optionvalue="javdatabase">javdatabase.com</option>
9-
<optionvalue="r18d">r18.dev</option>
10-
<optionvalue="javlibrary">javlibrary.com</option>
11-
<optionvalue="javland">jav.land</option>
12-
</b-select>
13-
<b-inputv-model="javrQuery"placeholder="ID (xxxx-001)"type="search"></b-input>
14-
<b-buttonclass="button is-primary"v-on:click="scrapeJAVR()">{{$t('Go')}}</b-button>
15-
</b-field>
16-
<span>R18.dev scraper works best with FANZA content ID, e.g. 84vrkm00139, but DVD-ID works too when maintained.</span>
2+
<divclass="container">
3+
<b-loading:is-full-page="false":active.sync="isLoading"></b-loading>
4+
<divclass="content">
5+
<h3class="title">{{$t('Import Japanese Adult VR (JAVR) Scene')}}</h3>
6+
<divclass="card">
7+
<divclass="card-content content">
8+
<b-fieldgrouped>
9+
<b-selectplaceholder="Select scraper"v-model="javrScraper">
10+
<optionvalue="javdatabase">javdatabase.com</option>
11+
<optionvalue="r18d">r18.dev</option>
12+
<optionvalue="javlibrary">javlibrary.com</option>
13+
<optionvalue="javland">jav.land</option>
14+
</b-select>
15+
<b-inputv-model="javrQuery"placeholder="ID (xxxx-001)"type="search"></b-input>
16+
<b-buttonclass="button is-primary"v-on:click="scrapeJAVR()">{{$t('Go')}}</b-button>
17+
</b-field>
18+
<span>R18.dev scraper works best with FANZA content ID, e.g. 84vrkm00139, but DVD-ID works too when maintained.</span>
19+
</div>
1720
</div>
18-
</div>
1921

20-
<h3class="title">{{$t('Import scene from TPDB')}}</h3>
21-
<divclass="card">
22-
<divclass="card-content content">
23-
<h5class="title">API Token</h5>
24-
<b-fieldlabel="TPDB API Token"label-position="on-border"grouped>
25-
<b-inputv-model="tpdbApiToken"placeholder="TPDB API Token"type="search"></b-input>
26-
</b-field>
27-
<br>
28-
<b-fieldlabel="TPDB Scene URL"label-position="on-border"grouped>
29-
<b-inputv-model="tpdbSceneUrl"placeholder="TPDB URL"type="search"></b-input>
30-
<b-buttonclass="button is-primary"v-on:click="scrapeTPDB()">{{$t('Go')}}</b-button>
31-
</b-field>
22+
<h3class="title">{{$t('Import scene from TPDB')}}</h3>
23+
<divclass="card">
24+
<divclass="card-content content">
25+
<h5class="title">API Token</h5>
26+
<b-fieldlabel="TPDB API Token"label-position="on-border"grouped>
27+
<b-inputv-model="tpdbApiToken"placeholder="TPDB API Token"type="search"></b-input>
28+
</b-field>
29+
<br>
30+
<b-fieldlabel="TPDB Scene URL"label-position="on-border"grouped>
31+
<b-inputv-model="tpdbSceneUrl"placeholder="TPDB URL"type="search"></b-input>
32+
<b-buttonclass="button is-primary"v-on:click="scrapeTPDB()">{{$t('Go')}}</b-button>
33+
</b-field>
34+
</div>
3235
</div>
33-
</div>
3436

35-
<h3class="title">{{$t('Create custom scene')}}</h3>
36-
<divclass="card">
37-
<divclass="card-content content">
38-
<b-fieldlabel="Scene title"label-position="on-border">
39-
<b-inputv-model="customSceneTitle"placeholder="Stepsis stuck in washing machine"type="search"></b-input>
40-
</b-field>
41-
<b-fieldlabel="Scene ID"label-position="on-border"grouped>
42-
<b-inputv-model="customSceneID"placeholder="Can be empty"type="search"></b-input>
43-
<b-buttonclass="button is-primary"v-on:click="addScene(false)">{{$t('Create')}}</b-button>
44-
<b-buttonclass="button is-primary"v-on:click="addScene(true)"style="margin-left:0.2em">{{$t('Create and Edit')}}</b-button>
45-
</b-field>
46-
</div>
47-
</div>
48-
49-
<h3class="title">{{$t('Scrape a scene')}}</h3>
50-
<divclass="card">
51-
<divclass="card-content content">
52-
<b-fieldlabel="Scene URL"label-position="on-border">
53-
<b-inputv-model="scrapeUrl"placeholder="Scene Url - do not use links requiring a login"type="url"></b-input>
54-
</b-field>
55-
<b-tooltip:label="$t(`Warning: Ensure you are entering a link to a scene (best taken from viewing the scene). Links to something like a Category or Studio list may result in a corrupt scene you cannot delete. DO NOT USE links requiring logons. Use with caution`)":delay="50"multilinedtype="is-danger">
56-
<b-buttonclass="button is-primary"v-on:click="scrapeSingleScene()">{{$t('Scrape')}}</b-button>
57-
</b-tooltip>
37+
<h3class="title">{{$t('Create custom scene')}}</h3>
38+
<divclass="card">
39+
<divclass="card-content content">
40+
<b-fieldlabel="Scene title"label-position="on-border">
41+
<b-inputv-model="customSceneTitle"placeholder="Stepsis stuck in washing machine"type="search"></b-input>
42+
</b-field>
43+
<b-fieldlabel="Scene ID"label-position="on-border"grouped>
44+
<b-inputv-model="customSceneID"placeholder="Can be empty"type="search"></b-input>
45+
<b-buttonclass="button is-primary"v-on:click="addScene(false)">{{$t('Create')}}</b-button>
46+
<b-buttonclass="button is-primary"v-on:click="addScene(true)"style="margin-left:0.2em">{{$t('Create and Edit')}}</b-button>
47+
</b-field>
48+
</div>
5849
</div>
59-
</div>
6050

61-
<b-modal:active.sync="isSingleScrapeModalActive"
62-
has-modal-card
63-
trap-focus
64-
aria-role="dialog"
65-
aria-modal>
66-
<divclass="modal-card"style="width:auto">
67-
<headerclass="modal-card-head">
68-
<pclass="modal-card-title">{{$t('Scene Id Required')}}</p>
69-
</header>
70-
<sectionclass="modal-card-body">
71-
<b-fieldlabel="Scene Id">
72-
<b-input
73-
v-model='singleScrapeId'
74-
placeholder="eg 12345 (excl site prefix)"
75-
>
76-
</b-input>
51+
<h3class="title">{{$t('Scrape a scene')}}</h3>
52+
<divclass="card">
53+
<divclass="card-content content">
54+
<b-fieldlabel="Scene URL"label-position="on-border">
55+
<b-inputv-model="scrapeUrl"placeholder="Scene Url - do not use links requiring a login"type="url"></b-input>
7756
</b-field>
78-
</section>
79-
<footerclass="modal-card-foot">
80-
<buttonclass="button is-primary":disabled="this.singleScrapeId == ''"@click="scrapeSingleScene()">Continue</button>
81-
</footer>
57+
<b-tooltip:label="$t(`Warning: Ensure you are entering a link to a scene (best taken from viewing the scene). Links to something like a Category or Studio list may result in a corrupt scene you cannot delete. DO NOT USE links requiring logons. Use with caution`)":delay="50"multilinedtype="is-danger">
58+
<b-buttonclass="button is-primary"v-on:click="scrapeSingleScene()">{{$t('Scrape')}}</b-button>
59+
</b-tooltip>
60+
</div>
8261
</div>
83-
</b-modal>
84-
62+
63+
<b-modal:active.sync="isSingleScrapeModalActive"
64+
has-modal-card
65+
trap-focus
66+
aria-role="dialog"
67+
aria-modal>
68+
<divclass="modal-card"style="width:auto">
69+
<headerclass="modal-card-head">
70+
<pclass="modal-card-title">{{$t('Scene Id Required')}}</p>
71+
</header>
72+
<sectionclass="modal-card-body">
73+
<b-fieldlabel="Scene Id">
74+
<b-input
75+
v-model='singleScrapeId'
76+
placeholder="eg 12345 (excl site prefix)"
77+
>
78+
</b-input>
79+
</b-field>
80+
</section>
81+
<footerclass="modal-card-foot">
82+
<buttonclass="button is-primary":disabled="this.singleScrapeId == ''"@click="scrapeSingleScene()">Continue</button>
83+
</footer>
84+
</div>
85+
</b-modal>
86+
</div>
8587
</div>
8688
</template>
8789

@@ -92,6 +94,7 @@ export default {
9294
name:'OptionsCreateScene',
9395
data () {
9496
return {
97+
isLoading:true,
9598
javrScraper:'javdatabase',
9699
javrQuery:'',
97100
tpdbSceneUrl:'',
@@ -103,7 +106,8 @@ export default {
103106
additionalInfo: [],
104107
}
105108
},
106-
mounted () {
109+
asyncmounted () {
110+
awaitthis.loadState()
107111
this.$store.dispatch('optionsVendor/load')
108112
109113
if (this.$store.state.optionsSceneCreate.scrapeScene!='') {
@@ -113,6 +117,15 @@ export default {
113117
}
114118
},
115119
methods: {
120+
asyncloadState () {
121+
this.isLoading=true
122+
awaitky.get('/api/options/state')
123+
.json()
124+
.then(data=> {
125+
this.javrScraper=data.config.scraper_settings.javr.javrScraper
126+
this.isLoading=false
127+
})
128+
},
116129
addScene(showEdit) {
117130
if (this.customSceneTitle!=='') {
118131
ky.post('/api/scene/create', { json: { title:this.customSceneTitle, id:this.customSceneID } })

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp