Skip to content

Commit

Permalink
Add option to use mobile Wikipedia (corbindavenport#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
corbindavenport committed Jun 7, 2021
1 parent 97b336e commit a54ac4b
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 7 deletions.
21 changes: 17 additions & 4 deletions js/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var wikiLangArray = []
var wikiPrefixArray = []
var userLanguage = ''
var multiLang = ''
var siteVersion = ''
var activeLanguage = ''
var currentRequest = null

Expand All @@ -16,6 +17,7 @@ chrome.omnibox.onInputStarted.addListener(function () {
multiLang = data.multiLang
wikiLangArray = data.wikiLangArray
wikiPrefixArray = data.wikiPrefixArray
siteVersion = data.siteVersion
})
})

Expand Down Expand Up @@ -124,7 +126,11 @@ chrome.omnibox.onInputEntered.addListener(function (text) {
if (text.startsWith(activeLanguage + ' ')) {
text = text.replace(activeLanguage + ' ', '')
}
chrome.tabs.update(null, { url: "https://" + activeLanguage + ".wikipedia.org/w/index.php?search=" + encodeURIComponent(text) })
if (siteVersion === 'desktop') {
chrome.tabs.update(null, { url: "https://" + activeLanguage + ".wikipedia.org/w/index.php?search=" + encodeURIComponent(text) })
} else {
chrome.tabs.update(null, { url: "https://" + activeLanguage + ".m.wikipedia.org/w/index.php?search=" + encodeURIComponent(text) })
}
}
})

Expand All @@ -139,13 +145,16 @@ chrome.storage.local.get(async function (data) {
multiLang: true
})
}
if (typeof data.siteVersion == 'undefined') {
chrome.storage.local.set({
siteVersion: 'desktop'
})
}
if (data.userLanguage) {
console.log("Language already set to '" + data.userLanguage + "' (" + defaultLangArray[defaultPrefixArray.indexOf(data.userLanguage)] + ")")
resolve()
} else {
// Detect system language and set it as the default
resetToSystemLanguage()
resolve()
}
})

Expand All @@ -172,7 +181,11 @@ chrome.contextMenus.create({
contexts: ['selection'],
onclick: function searchText(info) {
chrome.storage.local.get(function (data) {
var url = 'https://' + data.userLanguage + '.wikipedia.org/w/index.php?title=Special:Search&search=' + encodeURIComponent(info.selectionText)
if (data.siteVersion === 'desktop') {
var url = 'https://' + data.userLanguage + '.wikipedia.org/w/index.php?title=Special:Search&search=' + encodeURIComponent(info.selectionText)
} else {
var url = 'https://' + data.userLanguage + '.m.wikipedia.org/w/index.php?title=Special:Search&search=' + encodeURIComponent(info.selectionText)
}
chrome.tabs.create({ url: url })
})
}
Expand Down
7 changes: 6 additions & 1 deletion js/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ async function loadSettings() {
const select = document.getElementById('wikipedia-search-language-select')
const resetButton = document.getElementById('wikipedia-search-reset-language')
const multiLangButton = document.querySelector('#wikipedia-search-multilang')
const siteSelect = document.querySelector('#wikipedia-search-site-select')
const wikiList = await getWikis()
for (i in wikiList[0]) {
var option = document.createElement('option')
Expand All @@ -17,6 +18,7 @@ async function loadSettings() {
console.log(data)
select.value = data.userLanguage
multiLangButton.checked = data.multiLang
siteSelect.value = data.siteVersion
resolve()
})
}).then(function () {
Expand All @@ -25,6 +27,7 @@ async function loadSettings() {
select.removeAttribute('disabled')
resetButton.removeAttribute('disabled')
multiLangButton.removeAttribute('disabled')
siteSelect.removeAttribute('disabled')
})
}

Expand All @@ -35,7 +38,9 @@ document.querySelectorAll('input,select').forEach(function (el) {
// Default language
userLanguage: document.querySelector('#wikipedia-search-language-select').value,
// Multi-language
multiLang: document.querySelector('#wikipedia-search-multilang').checked
multiLang: document.querySelector('#wikipedia-search-multilang').checked,
// Site version
siteVersion: document.querySelector('#wikipedia-search-site-select').value
}, function() {
console.log('settings saved')
})
Expand Down
15 changes: 13 additions & 2 deletions settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<body class="settings">
<div class="jumbotron">
<div class="container">
<h1>Wikipedia Search settings</h1>
<h1>Wikipedia Search Settings</h1>
<p>Here you can change all the options for Wikipedia Search. Your changes are automatically saved.</p>
</div>
</div>
Expand Down Expand Up @@ -48,7 +48,7 @@ <h1>Wikipedia Search settings</h1>
</div>
<!-- Multi-language -->
<div class="form-group row">
<label for="wikipedia-search-language-select" class="col-sm-2 col-form-label">Multi-language</label>
<label for="wikipedia-search-multilang" class="col-sm-2 col-form-label">Multi-language</label>
<div class="col-sm-10">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="wikipedia-search-multilang" disabled>
Expand All @@ -59,6 +59,17 @@ <h1>Wikipedia Search settings</h1>
<small class="form-text text-muted">This allows you to set a different language by typing a Wikipedia language prefix before your search (e.g. "fr google" searches "Google" in French Wikipedia). Turn this off if you accidentally search in different languages with queries like "LA Law" or "La Niña".</small>
</div>
</div>
<!-- Site version -->
<div class="form-group row">
<label for="wikipedia-search-site-select" class="col-sm-2 col-form-label">Site version</label>
<div class="col-sm-10">
<select id="wikipedia-search-site-select" class="form-control w-100" disabled>
<option value="desktop">Desktop Wikipedia (wikipedia.org)</option>
<option value="mobile">Mobile Wikipedia (m.wikipedia.org)</option>
</select>
<small class="form-text text-muted">This changes what version of Wikipedia's site is used for searches.</small>
</div>
</div>
</div>
</div>

Expand Down

0 comments on commit a54ac4b

Please sign in to comment.