function OnInit(initData) { initData.name = 'RecentToCollection'; initData.version = '2024-02-03'; initData.url = 'https://resource.dopus.com/t/recenttocollection-create-a-collection-from-recent-folders/48571'; initData.desc = ''; initData.default_enable = true; initData.min_version = '12.0'; } function OnAddCommands(addCmdData) { var cmd = addCmdData.AddCommand(); cmd.name = 'RecentToCollection'; cmd.method = 'OnRecentToCollection'; cmd.desc = ''; cmd.label = ''; cmd.hide = false; cmd.icon = 'script'; } function OnRecentToCollection(scriptCmdData) { var cmd = scriptCmdData.func.command; var stt = DOpus.Create().StringTools(); var fsu = DOpus.FSUtil(); cmd.deselect = false; var recentItem = fsu.GetItem(fsu.Resolve('/dopuslocaldata\\State Data\\recent.osd')); if (!fsu.Exists(recentItem)) return; var newColl = 'coll://Recent'; var recentArr = stt.Decode(recentItem.Open().Read(), 'utf8').split('\r\n'); var re = /.*(.*)<\/pathstring>.*/; cmd.ClearFiles(); for (var i = 0; i < recentArr.length; i++) { var tmp = recentArr[i].match(re); if (!tmp) continue; if (tmp.length != 2) continue; var path = tmp[1]; if (!fsu.Exists(path)) continue; if (path == newColl) continue; cmd.AddFile(path); } cmd.RunCommand('Delete FILE="' + newColl + '" QUIET'); cmd.RunCommand('CreateFolder NAME="' + newColl + '"'); cmd.SetDest(newColl); cmd.RunCommand('Copy COPYTOCOLL=member'); cmd.RunCommand('Go PATH="' + newColl + '"'); }