Last active
January 10, 2021 03:02
-
-
Save DiscordLinuxBot/181b786f718f3292c0cbcb1700124930 to your computer and use it in GitHub Desktop.
websearch.bbtag
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{//;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