首页 > CyberArticle > 将IE收藏夹里面的文章导入到CyberArticle

将IE收藏夹里面的文章导入到CyberArticle


附件是一段js脚本,解压缩执行后,可以将IE收藏夹内容导入到CyberArticle里面。

注意:本脚本只能在CyberArticle 5.3或者更高的版本中使用。

下面是这段代码说明。

//导入一个目录下面的所有链接,采用递归
//bookguid: 目标书籍GUID
//folderpath: 导入后文章的路径
//objCABookBuilder: CyberArticle.CABookBuilderAutomationApp对象
//objShell: WSript.Shell对象
//objFileSystem: Scripting.FileSystemObject对象
//path: 需要导入的路径
//
function ImportPath(bookguid, folderpath, objCABookBuilder, objShell, objFileSystem, path)
{
    //获得路径对象
    var objFolder = objFileSystem.GetFolder(path);
    //枚举文件
    var objSubfilesEnum = new Enumerator(objFolder.Files);
    for (; !objSubfilesEnum.atEnd(); objSubfilesEnum.moveNext())
    {
        //获得文件
        var filename = objSubfilesEnum.item();
        var objFile = objFileSystem.GetFile(filename);
        //
        var strFileTitle = objFile.Name;
        var pos = strFileTitle.indexOf(“.url”);
        if (-1 != pos)
        {
            //如果是.url文件
            strFileTitle = strFileTitle.substring(0, pos);
            //objShell.Popup(“file name is: ” + filename);
            //
            try
            {
                var objShortcut = objShell.CreateShortcut(filename);
                //
                //objShell.Popup(objShortcut.TargetPath);
                var url = objShortcut.TargetPath;
                //
                //添加一个url进行下载
                objCABookBuilder.AddJob(bookguid, folderpath, url, strFileTitle, “Default”, 0, true, true, 0);
            }
            catch (e)
            {
            }
        }
    }
    //枚举子文件夹
    var objSubfoldersEnum = new Enumerator(objFolder.SubFolders);
    for (; !objSubfoldersEnum.atEnd(); objSubfoldersEnum.moveNext())
    {
        var subfolder = objSubfoldersEnum.item();
        //
        var objSubFolder = objFileSystem.GetFolder(subfolder);
        var subfoldername = objSubFolder.Name;
        //导入子文件夹
        ImportPath(bookguid, folderpath + “\\” + subfoldername, objCABookBuilder, objShell, objFileSystem, subfolder);
    }
}
//CyberArticle.CAAutomationApp对象
var objCA = new ActiveXObject(“CyberArticle.CAAutomationApp”);
//获得选中的节点
var objSelectedNodes = objCA.SelectedNodes;
if (objSelectedNodes != null && objSelectedNodes.Count > 0)
{
    var objShell = new ActiveXObject(“WScript.Shell”);
    //
    //获得第一个选中的节点
    var objSelectedNode = objSelectedNodes.Item(0);
    if (objSelectedNode.Type != 0)
        objSelectedNode = objSelectedNode.ParentNode;
    //
    //获得书籍信息和相应的目录路径
    var strBookGUID = objSelectedNode.Book.GUID;
    var folderpath = objSelectedNode.GetTitlePath(true, false);
    //objShell.Popup(“title path: ” + folderpath);
    //创建BookBuilder对象,用来下载链接
    var objCABookBuilder = new ActiveXObject(“CyberArticle.CABookBuilderAutomationApp”);
    //获得收藏夹路径
    var strPath = objShell.SpecialFolders(“Favorites”);
    strPath = objShell.ExpandEnvironmentStrings(strPath);
    //objShell.Popup(strPath);
    //获得文件夹对象
    var objFileSystem = new ActiveXObject(“Scripting.FileSystemObject”);
    //导入文件夹
    ImportPath(strBookGUID, folderpath, objCABookBuilder, objShell, objFileSystem, strPath);
    //开始下载
    objCABookBuilder.StartDownload();
}

从这一段简单的代码可以看出,CyberArticle的扩展性是非常强大和易用的。只要您稍微具有一定的脚本编程能力,就可以很容易的对CyberArticle进行扩展。

下个CyberArticle版本,将会包含这段脚本,并制作成一个CyberArticle宏,添加到CyberArticle程序里面,方便使用。

 

 


分类: CyberArticle 标签:
  1. langzi886
    2009年5月30日08:10 | #1

    那意思是说,可以收藏了网址后,直接把文章加入电子书了。

  2. 魏 拾俊
    2009年5月30日09:50 | #2

    就是这样。但不是自动的,需要您手工执行这个脚本,才会把收藏夹里面的网址对应的文章保存下来。

  3. seaskyblue
    2009年6月3日01:29 | #3

    在Windows7下,以管理员权限通过命令行运行该脚本,并且CA主程序也赋予管理员权限,无法安装。

  4. 魏 拾俊
    2009年6月3日01:55 | #4

    不要用管理员权限运行,就用普通的方式就可以了。也不需要安装。直接执行js脚本就可以了。

  5. lqyna
    2009年6月21日20:09 | #5

    这个功能就多人需要了。
    特别适用于学技术的人群。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

Spam Protection by WP-SpamFree