K-Meleon
KMeleonWiki > Resources > MacroLibrary > KmmFavRenAdd
Submitted by: JamesD
(with help and support from kko and JujuLand? )
Notes:
This macro will allow a user to change the name of a favorite during the add process and allow the user to select which folder/subfolder in Favorites to which the renamed favorite will be added.
IMPORTANT: The favorite is written as an internet shortcut of the style filename.url by Windows Scripting Host outside of K-melon. That means KM will have to be stopped and re-started before you can see/use the favorite. The user may cancel from the rename prompt and the process will be aborted. A cancel from the folder prompt will result in the default folder being used. That will be Favorites unless the preference for new items has been set to a subfolder of Favorites.
Windows Script Host 1.0 (or better) required!
WSH is part of Microsoft Internet Explorer 5.0 and newer. Latest version of WSH is available in the Download Section of Microsoft's Scripting Homepage.
Open your User Macro Folder (Edit > Configuration > User-Defined Macros) or your Macro Folder (Edit > Configuration > Macros) and create the following text file(s): FavRenAdd?.kmm
_FavRenAdd_RnameTrue{ $_FavRenAdd_NewItemFolder = getpref( string, "kmeleon.plugins.favorites.newitemFolder" );
$_FavRenAdd_FavFolder=getpref(STRING,"kmeleon.plugins.favorites.directory"); $_FavRenAdd_FavFolder==""?$_FavRenAdd_FavFolder=readreg("HKCU","Software\\Microsoft\\Windows\CurrentVersion\\Explorer\\Shell Folders\\Favorites"):0; $_FavRenAdd_FavFolder==""?$_FavRenAdd_FavFolder=readreg("HKLM","Software\\Microsoft\\Windows\CurrentVersion\\Explorer\\Shell Folders\\Favorites"):0;
$_FavRenAdd_SubFolder="?"; while($_FavRenAdd_SubFolder=="?") &_FavRenAdd_RnameTrue_loop; $_FavRenAdd_Title = substr($_FavRenAdd_value,1); macros(_FavRenAdd_Sanitize_Title) ; $_FavRenAdd_PathName = $_FavRenAdd_FavFolder."\\".$_FavRenAdd_SubFolder.\\.$_FavRenAdd_Title.".url" ; $_FavRenAdd_Ext_Interger = 1; while ($_FavRenAdd_Ext_Interger > 0 ) &_FavRenAdd_Duplicates_loop) ; $_FavRenAdd_PathName = gsub("\\" , "\\\\", $_FavRenAdd_PathName); exec("wscript.exe \"".$_FavRenAdd_Path."\" \"".$_FavRenAdd_PathName."\" \"".$_FavRenAdd_CurURL."\"") ; }
_FavRenAdd_Sanitize_Title{ $_FavRenAdd_RevTitle = gsub( "?"," ",$_FavRenAdd_Title); $_FavRenAdd_RevTitle = gsub( ":"," ",$_FavRenAdd_RevTitle); $_FavRenAdd_RevTitle = gsub( "*"," ",$_FavRenAdd_RevTitle); $_FavRenAdd_RevTitle = gsub( "<"," ",$_FavRenAdd_RevTitle); $_FavRenAdd_RevTitle = gsub( ">"," ",$_FavRenAdd_RevTitle); $_FavRenAdd_RevTitle = gsub( "/"," ",$_FavRenAdd_RevTitle); $_FavRenAdd_RevTitle = gsub( "|"," ",$_FavRenAdd_RevTitle); $_FavRenAdd_RevTitle = gsub( "\\","",$_FavRenAdd_RevTitle); $_FavRenAdd_Title = gsub( "\"","^",$_FavRenAdd_RevTitle); }
_FavRenAdd_Duplicates_loop{ $_FavRenAdd_Exists=readfile($_FavRenAdd_PathName); $_FavRenAdd_Exists=1.$_FavRenAdd_Exists ; $_FavRenAdd_Len2=length($_FavRenAdd_Exists); $_FavRenAdd_Len2 == 1 ? $_FavRenAdd_Ext_Interger=0 : &_FavRenAdd_Extend; }
_FavRenAdd_Extend{ $_FavRenAdd_Wrk_Int = $_FavRenAdd_Ext_Interger - 1 ; $_FavRenAdd_Ext_Interger == 1 ? $_FavRenAdd_PathName = gsub(".url" , "[".$_FavRenAdd_Ext_Interger."].url",$_FavRenAdd_PathName):0; $_FavRenAdd_Ext_Interger > 1 ? $_FavRenAdd_PathName = gsub("[".$_FavRenAdd_Wrk_Int."].url" , "[".$_FavRenAdd_Ext_Interger."].url" , $_FavRenAdd_PathName):0; $_FavRenAdd_Ext_Interger = $_FavRenAdd_Ext_Interger + 1 ; }
_FavRenAdd_RnameTrue_loop{ $_FavRenAdd_SubFolder=promptforfolder("Specify where to add the new shortcut. Select your Favorites folder or one of its subfolders:",$_FavRenAdd_FavFolder."\\".$_FavRenAdd_NewItemFolder); $_FavRenAdd_SubFolder=$_FavRenAdd_SubFolder"" ? "" : index($_FavRenAdd_SubFolder,$_FavRenAdd_FavFolder) 0 ? substr($_FavRenAdd_SubFolder,length($_FavRenAdd_FavFolder)+1) : "?"; $_FavRenAdd_SubFolder == "" ? $_FavRenAdd_SubFolder = $_FavRenAdd_NewItemFolder : 0 ; }
_FavRenAdd_RenameAdd{ $_FavRenAdd_CurrTitle = $TITLE; $_FavRenAdd_CurURL = $URL; $_FavRenAdd_value=prompt($_FavRenAdd_CurrTitle,"Rename the Favorite Title here",$_FavRenAdd_CurrTitle);
$_FavRenAdd_value = 1.$_FavRenAdd_value; $_FavRenAdd_Len=length($_FavRenAdd_value);
$_FavRenAdd_Len == 1 ? &_FavRenAdd_Cancelled :&_FavRenAdd_RnameTrue ; }
_FavRenAdd_Cancelled{ $FavRenAdd_Button?=confirm("Did you mean to cancel?","Affirm cancel" ,YESNO,QUESTION); $FavRenAdd_Button? == "YES" ? 0 : &_FavRenAdd_RenameAdd ; }
_FavRenAdd_ModMenu{
$kFavorites==true?setmenu(F&avorites,macro,"&Rename-Add",_FavRenAdd_RenameAdd,1):0; }
_FavRenAdd_GetPath{
$_FavRenAdd_Data=readfile(getfolder(MacroFolder?)."\FavRenAdd.kmm"); $_FavRenAdd_Path=getfolder($_FavRenAdd_Data==""?UserMacroFolder:MacroFolder?)."\FavRenAdd.js"; }
$OnStartup?=$OnStartup?."_FavRenAdd_GetPath;"; $OnInit?=$OnInit?."_FavRenAdd_ModMenu;"; $macroModules=$macroModules."FavRenAdd?;";
FavRenAdd?.js
/* FavRenAdd?.js by JamesD, version 0.9 2007-08-21
if(WScript.Arguments.count()==2) { var FavRenAddFileName? = WScript.Arguments(0); var FavRenAddDescription? = WScript.Arguments(1); var WshShell? = new ActiveXObject?("WScript.Shell") var oShellLink = WshShell?.CreateShortcut?(FavRenAddFileName?); oShellLink.TargetPath? = FavRenAddDescription?; oShellLink.Save();
WScript.echo("Favorite written to " + FavRenAddFileName?) ; } else { objArgs = WScript.Arguments ; WScript.Echo(WScript.Arguments.Count()); for (i=0; i<objArgs.length; i++) {
Comments & Questions 'Strong'