K-Meleon
KMeleonWiki > Resources > MacroLibrary > MacroLibrary2 > Open Nick or Macro
Submitted by: MonkeeSage
Notes:
Sometimes you need to run macros or open (bookmark / hotlist / favorites) nicknames and quicksearches; this macro aims to make that a little easier to do by presenting a single prompt that will handle either case. Note: Nicks and macros must have unique names or else it will always open the nick instead of the macro.
open_nick_macro {
# vars
$theurl1="";
$theurl2="";
$nick1="";
$nick2="";
$isMacro="";
$isNick="";
$isQs="";
# get the prompt text into $theurl
$theurl = prompt("Nickname or macro to execute:", "Open");
$theurl == "" ? $theurl = "" : 0;
# check for spaces in $theurl, if no spaces $theurl1 inherits $theurl
$len = length($theurl);
$index = index($theurl, " ");
$index == -1 ? $theurl1 = $theurl : $theurl1 = substr($theurl, 0, $index);
$index == -1 ? 0 : $theurl2 = substr($theurl, $index + 1, $len);
# check for nickname
$nick = pluginmsgex("bookmarks", "FindNick", $theurl1, STRING);
$nick == "" ? $nick = pluginmsgex("hotlist", "FindNick", $theurl1, STRING) : 0;
$nick == "" ? $nick = pluginmsgex("favorites", "FindNick", $theurl1, STRING) : 0;
# if not a nickname, it is a macro
$nick == "" ? $isMacro = "TRUE" : 0;
$isMacro == "TRUE" ? ($theurl1 == "" ? 0 : macros($theurl1)) : 0;
# otherwise is a nickname, check for quicksearch token
$len = length($nick);
$index = index($nick, "%s");
# if no quicksearch token, open as URL
$index == -1 ? $isNick = "TRUE" : $isQs = "TRUE";
$isNick == "TRUE" ? ($isMacro == "" ? open($nick) : 0) : 0;
# otherwise is a quicksearch, tokenize $nick and replace
# quicksearch token with $theurl2
$nick1 = substr($nick, 0, $index);
$nick2 = substr($nick, $index + 2, $len);
$isQs == "TRUE" ? ($isMacro == "" ? open($nick1 . $theurl2 . $nick2) : 0) : 0;
}
CTRL M = macros(open_nick_macro)
NickMacro {
macros(open_nick_macro)
Open nick or macro
hottool.bmp[...]
coldtool.bmp[...]
deadtool.bmp[...]
}