diff options
author | flo-mic <florianmichel@hotmail.de> | 2021-02-19 22:40:06 +0300 |
---|---|---|
committer | flo-mic <florianmichel@hotmail.de> | 2021-02-19 22:40:06 +0300 |
commit | 97e5e29294ebb27cdec9106ce57f7571eea3d49e (patch) | |
tree | edbbcf5ae725770e2e955e79d9603d2434bbd360 /src/js/Manager/RecommendationManager.js | |
parent | ca343ef0b6d3e71d80d5644a68820d10fdeceeb8 (diff) |
add settings for password recommendations
Diffstat (limited to 'src/js/Manager/RecommendationManager.js')
-rw-r--r-- | src/js/Manager/RecommendationManager.js | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/js/Manager/RecommendationManager.js b/src/js/Manager/RecommendationManager.js index 3b9af73..cda001c 100644 --- a/src/js/Manager/RecommendationManager.js +++ b/src/js/Manager/RecommendationManager.js @@ -3,6 +3,7 @@ import Url from 'url-parse'; import TabManager from '@js/Manager/TabManager'; import SearchIndex from '@js/Search/Index/SearchIndex'; import EventQueue from '@js/Event/EventQueue'; +import SettingsService from '@js/Services/SettingsService'; class RecommendationManager { @@ -34,6 +35,17 @@ class RecommendationManager { TabManager.tabChanged.on(this._tabEvent); TabManager.urlChanged.on(this._tabEvent); SearchIndex.listen.on(this._searchEvent); + this.initRecommendationOptions(); + } + + initRecommendationOptions() { + this.options = { searchQuery: "Host", maxResults: 8 } + SettingsService.getValue('search.recommendation.option') + .then((value) => { + if(value) { + this.options.searchQuery = value; + } + }); } /** @@ -66,8 +78,18 @@ class RecommendationManager { let query = new SearchQuery('or'); query .where( - query.field('host').equals(url.host), - query.field('url').contains(url.pathname.length > 1 ? url.host + url.pathname:url.host) + // search by domain + (this.options.searchQuery === "domain" ? query.field('host').contains(this.getSearchDomainFromHost(url.host)): + // search by hostname + (this.options.searchQuery === "host" ? query.field('host').startsWith(url.host.split(':')[0]): + // search by hostname and port + (this.options.searchQuery === "hostport" ? query.field('host').equals(url.host): + // search exact + (this.options.searchQuery === "exact" ? query.field('url').equals(url.protocol + "//" + url.host + (url.pathname.length > 1 ? url.pathname: "")): + "") + ) + ) + ) ) .type('password') .score(0.3) @@ -84,6 +106,20 @@ class RecommendationManager { } /** + * @param {String} host + */ + getSearchDomainFromHost(host) { + var regIPAdress = /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/; + if (regIPAdress.test(host)) { + return host; + } + else { + var domain = host.split(':')[0]; + return domain.split('.').reverse()[1] + "." + domain.split('.').reverse()[0]; + } + } + + /** * * @param {Object} tab * @private |