Skip to content

Commit

Permalink
Enhance go to / open query
Browse files Browse the repository at this point in the history
  • Loading branch information
hao1300 committed Jan 28, 2020
1 parent 82eedb3 commit 4e80605
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 9 deletions.
76 changes: 76 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
"@smui/tab": "^1.0.0-beta.19",
"@smui/tab-bar": "^1.0.0-beta.19",
"@smui/textfield": "^1.0.0-beta.19",
"axios": "^0.19.2",
"cheerio": "^1.0.0-rc.3",
"clean-webpack-plugin": "^1.0.0",
"copy-webpack-plugin": "^4.6.0",
"cross-env": "^6.0.3",
Expand Down
40 changes: 31 additions & 9 deletions src/js/plugins/query.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ import {
mdiShopping,
mdiStar,
mdiPencil,
mdiMagnify,
mdiGoogleChrome
mdiMagnify
} from "@mdi/js";
import commander from "../commander";
import cheerio from "cheerio";
import axios from "axios";

/** ------- Search query ------- */
const prependQueryPhrase = queries => {
Expand All @@ -24,6 +25,30 @@ const prependQueryPhrase = queries => {
return updatedQueries;
};

async function loadAndParsePage(url) {
const response = await axios.get(url);
const parsedResponse = cheerio.load(response.data);
return parsedResponse;
}

async function generateGoogleLuckyUrl(query) {
const parsedResponse = await loadAndParsePage(
"https://www.google.com/"
);
const sxsrf = parsedResponse("input[name='sxsrf']").attr("value");
const ei = parsedResponse("input[name='ei']").attr("value");
const iflsig = parsedResponse("input[name='iflsig']").attr("value");
const source = parsedResponse("input[name='source']").attr("value");
const url = new URL("https://www.google.com/search");
url.searchParams.set("sxsrf", sxsrf);
url.searchParams.set("ei", ei);
url.searchParams.set("iflsig", iflsig);
url.searchParams.set("source", source);
url.searchParams.set("btnI", "I'm Feeling Lucky");
url.searchParams.set("q", query);
return url.href;
}

const plugins = [];

plugins.push({
Expand Down Expand Up @@ -274,8 +299,8 @@ plugins.push({

{
commands: ["go to *query", "open *query"],
callback: query => {
commander.openTabWithUrl("https://duckduckgo.com/?q=!" + query);
callback: async query => {
commander.openTabWithUrl(await generateGoogleLuckyUrl(query));
}
}
]
Expand Down Expand Up @@ -333,11 +358,8 @@ plugins.push({
"*query on *site",
"*query at *site"
],
callback: (query, site) => {
commander.openTabWithUrl(
"https://duckduckgo.com/?q=!" +
encodeURIComponent(query + " on " + site)
);
callback: async (query, site) => {
commander.openTabWithUrl(await generateGoogleLuckyUrl(query + " on " + site));
},
priority: 0.3
},
Expand Down

0 comments on commit 4e80605

Please sign in to comment.