Skip to content

Commit

Permalink
Restructure to support default login for providers
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanw committed Apr 8, 2021
1 parent 9f762e3 commit da563cb
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 35 deletions.
9 changes: 4 additions & 5 deletions src/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const defaults = {
providerOptions: {}
}

function showOptions() {
function showOptions () {
const provider = document.getElementById('provider').value
Array.from(document.getElementsByClassName('provider-options-container')).forEach(el => el.hidden = 'hidden')
document.getElementById(provider + '.options').hidden = null
Expand All @@ -20,8 +20,7 @@ function restore () {
document.getElementById('provider').value = items.provider
document.getElementById('keepStats').checked = items.keepStats

if (items.providerOptions)
{
if (items.providerOptions) {
for (const providerKey in providers) {
const provider = providers[providerKey]
for (const optionKey in provider.options) {
Expand All @@ -32,7 +31,7 @@ function restore () {
}
}
showOptions()

if (items.installDate === null) {
// first run
browser.storage.sync.set({
Expand Down Expand Up @@ -113,7 +112,7 @@ function save () {
if (!keepStats) {
values.stats = {}
}

browser.storage.sync.set(values)
}

Expand Down
40 changes: 22 additions & 18 deletions src/providers.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ export default {
}
},
login: [
{ message: 'VÖBB-Konto wird eingeloggt...' },
{ fill: { selector: 'input[name="L#AUSW"]', providerKey: 'voebb.de.options.username' } },
{ fill: { selector: 'input[name="LPASSW"]', providerKey: 'voebb.de.options.password' } },
{ click: 'input[name="LLOGIN"]' }
[
{ message: 'VÖBB-Konto wird eingeloggt...' },
{ fill: { selector: 'input[name="L#AUSW"]', providerKey: 'voebb.de.options.username' } },
{ fill: { selector: 'input[name="LPASSW"]', providerKey: 'voebb.de.options.password' } },
{ click: 'input[name="LLOGIN"]' }
]
],
options: [
{ id: 'username', display: "Nutzername:", type: 'text'},
{ id: 'password', display: "Passwort:", type: 'password'},
{ id: 'username', display: 'Nutzername:', type: 'text' },
{ id: 'password', display: 'Passwort:', type: 'password' }
]
},
'wiso-net.de': {
Expand All @@ -32,15 +34,17 @@ export default {
}
},
login: [
{ message: 'WISO-Konto wird eingeloggt...' },
{ click: '#customLoginLink' },
{ fill: { selector: 'input[name="loginBlock.username"]', providerKey: 'wiso-net.de.options.username' } },
{ fill: { selector: 'input[name="loginBlock.password"]', providerKey: 'wiso-net.de.options.password' } },
{ click: '#loginBlock_c1' }
[
{ message: 'WISO-Konto wird eingeloggt...' },
{ click: '#customLoginLink' },
{ fill: { selector: 'input[name="loginBlock.username"]', providerKey: 'wiso-net.de.options.username' } },
{ fill: { selector: 'input[name="loginBlock.password"]', providerKey: 'wiso-net.de.options.password' } },
{ click: '#loginBlock_c1' }
]
],
options: [
{ id: 'username', display: "Nutzername:", type: 'text'},
{ id: 'password', display: "Passwort:", type: 'password'},
{ id: 'username', display: 'Nutzername:', type: 'text' },
{ id: 'password', display: 'Passwort:', type: 'password' }
]
},
'sso.wiso-net.de': {
Expand All @@ -54,14 +58,14 @@ export default {
login: [
{ message: 'WISO-Konto wird eingeloggt (SSO)...' },
{ fill: { selector: '#shibbolethForm_selectedCity', providerKey: 'sso.wiso-net.de.options.city' } },
{ event: { selector:'#shibbolethForm_selectedCity', event: 'change' } },
{ event: { selector: '#shibbolethForm_selectedCity', event: 'change' } },
{ wait: 2000 },
{ fill: { selector: '#shibbolethForm_selectedName', providerKey: 'sso.wiso-net.de.options.name'} },
{ click: '#shibbolethForm_shLoginLink'}
{ fill: { selector: '#shibbolethForm_selectedName', providerKey: 'sso.wiso-net.de.options.name' } },
{ click: '#shibbolethForm_shLoginLink' }
],
options: [
{ id: 'city', display: 'Stadt der Hochschule/Uni:', type: 'text'},
{ id: 'name', display: 'Name der Hochschule/Uni:', type: 'text'}
{ id: 'city', display: 'Stadt der Hochschule/Uni:', type: 'text' },
{ id: 'name', display: 'Name der Hochschule/Uni:', type: 'text' }
]
}
}
13 changes: 8 additions & 5 deletions src/sourcebot.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,13 @@ class SourceBot {
})
this.tabId = tab.id
console.log('tab created', tab.id)
this.tabRunner = new TabRunner(tab.id, this.userData)
const userData = Object.assign({}, this.userData);
['options.username', 'options.password'].forEach(key => {
if (userData.providerOptions[`${this.providerId}.${key}`] !== undefined) {
userData[key] = userData.providerOptions[`${this.providerId}.${key}`]
}
})
this.tabRunner = new TabRunner(tab.id, userData)
browser.tabs.onUpdated.addListener(this.onTabUpdated)
}

Expand Down Expand Up @@ -86,14 +92,11 @@ class SourceBot {
}

getActions () {
const actionList = this.source[this.phase]
const actionList = this.provider[this.phase] || this.source[this.phase]
const actions = actionList[this.step]
if (Array.isArray(actions)) {
return actions
}
if (actions.provider) {
return this.provider[actions.provider]
}
throw new Error('Unknown action in source')
}

Expand Down
19 changes: 12 additions & 7 deletions src/sources.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ export default {
start: 'https://www.munzinger.de/search/go/spiegel/aktuell.jsp?portalid={source.portalId}',
login: [
[
{ click: '#redirect' }
],
{ provider: 'login' },
[
{ click: 'input[name="CLOGIN"]' }
{ click: '.gdprcookie-buttons button', optional: true },
{ fill: { selector: '#user-input', key: 'options.username' } },
{ fill: { selector: '#pwd-bezeichnung', key: 'options.password' } },
{ click: 'input[src="/grafiken/button-login.gif"]' }
]
],
search: [
Expand All @@ -23,13 +22,19 @@ export default {
]
},
'genios.de': {
loggedIn: ".boxLogin a[href='/openIdConnectClient/logout'], .moduleLogoPersonal",
loggedIn: '.boxMyGeniosLink',
start: 'https://{source.domain}/',
defaultParams: {
domain: 'www.genios.de'
},
login: [
{ provider: 'login' }
[
{ fill: { selector: '#bibLoginLayer_number', key: 'options.username' } },
{ fill: { selector: '#bibLoginLayer_password', key: 'options.password' } },
{ click: '#bibLoginLayer_terms' },
{ click: '#bibLoginLayer_gdpr' },
{ click: '#bibLoginLayer_c0' }
]
],
search: [
[
Expand Down

0 comments on commit da563cb

Please sign in to comment.