Skip to content

Instantly share code, notes, and snippets.

@DiscordLinuxBot
Last active January 10, 2021 03:02
Show Gist options
  • Save DiscordLinuxBot/181b786f718f3292c0cbcb1700124930 to your computer and use it in GitHub Desktop.
Save DiscordLinuxBot/181b786f718f3292c0cbcb1700124930 to your computer and use it in GitHub Desktop.
websearch.bbtag
{//;Inport functions for requests}
{exec;librequest}
{//;Set embed color to input if -C is used or random otherwise}
{if;{flag;C};==;{null};
{set;!~ecolor;{exec;randcolor}};
{set;!~ecolor;{flag;C}}}
{//;Output message to let users know we're actually doing something while we get data}
{set;!~gssmsg;{output;{embed;{embedbuild;
color:{get;~ecolor};
thumbnail.url:{exec;linuxhacker};
description:Searching for `{flag;_}`...}}}}
{fallback;}
{//;Google web search}
{if;{flag;C};==;{null};
{set;!~ecolor;34a853}}
{set;!~request;{func.google;{flag;_}}}
{set;!~icon;https://i.imgur.com/aUqWCGX.png}
{set;!~searcher;Google}
{set;!~searchurl;https://www.google.com/search?q={uriencode;{flag;_}}}
{if;{get;~request};includes;google.com/search;
{set;!~request;}}
{//;Fall back to Qwant search if no results}
{switch;{get;~request};
["","https://www.google.com"];
{set;~data;{request;http://api.scrapestack.com/scrape?access_key={switch;{guildid};["96230004047740928"];{get;@scrapestack2};{get;@scrapestack}}&url={uriencode;https://api.qwant.com/api/search/web?count=1&q={uriencode;{flag;_}}&t=web&uiv=24&locale=en_US}}}
{set;!~request;{regexreplace;{jget;~data;body.data.result.items.0.url};/\s/g;}}
{set;!~title;{htmldecode;{htmldecode;{exec;regex.html;{jget;~data;body.data.result.items.0.title}}}}}
{set;!~desc;{substring;{regexreplace;{exec;pandoc;html;gfm;{jget;~data;body.data.result.items.0.desc}};/\n/g;{space}};0;900}}
{//;{set;!~desc;{substring;{regexreplace;{exec;html2markdown;{jget;~data;body.data.result.items.0.desc}};/\n/g;{space}};0;900}}}
{set;!~icon;https://cdn-images-1.medium.com/max/188/1*[email protected]}
{set;!~searcher;Qwant}
{set;!~searchurl;https://www.qwant.com/?q={uriencode;{flag;_}}&r=US&sr=en&l=en_gb&h=0&s=1&a=1&b=1&vt=0&hc=0&smartNews=0&smartSocial=0&theme=1&i=1&donation=0}}
{//;Fallback to DuckDuckGo as it's the only search engine with a reliable, free API if all else fails}
{switch;{get;~request};
["","https://www.google.com"];
{set;!~request;{jget;{base64decode;{jget;{request;https://api.duckduckgo.com/?q=! {uriencode;{flag;_}}&o=json&no_redirect=1};body}};Redirect}}
{if;{flag;C};==;{null};
{set;!~ecolor;de5833}}
{set;!~icon;https://cdn.discordapp.com/emojis/496122815578374147.png?v=1&size=20}
{set;!~searcher;Duck Duck Go}
{set;!~searchurl;https://www.duckduckgo.com/?q={uriencode;{flag;_}}}}
{//;Output raw link if youtube}
{if;{get;~request};startswith;https://www.youtube.com/watch?v=;
{edit;{channelid};{get;~gssmsg};{get;~request};_delete};
{//;If result includes duckduckgo, no results found}
{if;{get;~request};includes;duckduckgo;
{set;!~ecolor;indianred}
{set;!~icon;https://i.imgur.com/aUqWCGX.png}
{set;!~searcher;Google}
{set;!~searchurl;https://www.google.com/search?q={uriencode;{flag;_}}}
{set;!~request;https://www.google.com/search?q={uriencode;{flag;_}}}
{set;!~thumb;{exec;fakeimg;No results found.}}
{set;!~title;No results found for '{flag;_}'};
{//;Otherwise get metadata for embed}
{set;!~rawmeta;{func.metadata;{get;~request}}}
{fallback;}
{if;{flag;C};==;{null};
{if;{jget;~rawmeta;meta.theme-color};==;{null};
{set;!~clrar;{exec;sitecolor.t;{get;~request}}}
{set;!_ecolorcheck;{get;~clrar}}
{set;!~ecolor;{get;~clrar}};
{set;!~ecolor;{jget;~rawmeta;meta.theme-color}}}}
{if;{get;~desc};==;{null};
{set;!~desc;{substring;{htmldecode;{htmldecode;{jget;~rawmeta;meta.og:description}}};0;900}}}
{if;{get;~desc};==;{null};
{set;!~desc;{substring;{htmldecode;{htmldecode;{jget;~rawmeta;meta.description}}};0;900}}}
{if;{get;~desc};==;{null};
{set;!~desc;{substring;{htmldecode;{htmldecode;{jget;~rawmeta;meta.Description}}};0;900}}}
{//;{if;{get;~desc};==;{null};
{set;!~desc;{join;{slice;{regexsplit;{regexreplace;{regexreplace;{clean;{substring;{jget;{exec;metadata;{get;~request};-r};body.body};0;2000}};/\n/g;{space}};/\[[0-9][0-9]?\]/g;};/(\.+\s|\?+\s|\!+\s)/g};0;6};}}}}
{if;{get;~desc};==;{null};
{set;!~rawmeta2;{exec;linkpreview;{get;~request}}}
{set;!~desc;{substring;{clean;{jget;~rawmeta2;description}};0;900}}}
{if;{get;~title};==;{null};
{set;!~title;{htmldecode;{htmldecode;{jget;~rawmeta;meta.og:title}}}}}
{if;{get;~title};==;{null};
{set;!~title;{htmldecode;{htmldecode;{jget;~rawmeta;meta.title}}}}}
{if;{get;~title};==;{null};
{set;!~title;{htmldecode;{htmldecode;{jget;~rawmeta;meta.Title}}}}}
{if;{get;~title};==;{null};
{if;{get;~rawmeta2};==;{null};
{set;!~rawmeta2;{exec;linkpreview;{get;~request}}}}
{set;!~title;{jget;~rawmeta2;title}}}
{if;{get;~title};==;{null};
{set;!~title;Search Result for '{flag;_}'}}
{set;!~thumb;{jget;~rawmeta;meta.og:image}}
{if;{get;~thumb};startswith;/;
{set;!~thumb;{get;~request}{get;~thumb}}}
{if;{get;~thumb};==;{null};
{if;{get;~rawmeta2};==;{null};
{set;!~rawmeta2;{exec;linkpreview;{get;~request}}}}
{set;!~thumb;{jget;~rawmeta2;image}}}
{if;{get;~thumb};==;{null};
{set;!~thumb;{exec;fakeimg;-w 1;-h 1}}}}
{//;Fallback if something random and weird happens}
{fallback;{embedbuild;color:{get;~ecolor};image.url:https://cdn.discordapp.com/attachments/483501315620732938/658438847591481365/unknown.png;}}
{commit}
{//;Edit searching message with results}
{edit;{channelid};{get;~gssmsg};{embedbuild;
title:{get;~title};
url:{get;~request};
color:{get;~ecolor};
author.icon_url:{get;~icon};
author.name:Result via {get;~searcher};
author.url:{get;~searchurl};
thumbnail.url:{get;~thumb};
description:{get;~desc}{//;{if;{length;{get;~desc}};>=;900;{space}[...]}}
*{get;~request}*;}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment