Пример #1
0
        public static void InsertArticle(int blogId, int parentId, string blogName, string loginName)
        {
            bool result = false;
            //int count = SelectArticle(parentId);
            //if (count > 0)
            //{
            //    DelArticle(parentId);
            //}
            DataTable dt = new DataTable();
            DataConnection dc = new DataConnection();
            string sql = "select EndArticleId from DataTransfer where UserName='******'";
            int endArticleId = Int32.Parse(dc.GetField(sql));
            try
            {
                sql = "select * from ra_bgArticle where BlogID=" + blogId + " and id>" + endArticleId + " order by ID";
                dt = dc.FillDataTable(sql);


                foreach (DataRow dr in dt.Rows)
                {
                    int articleId = Convert.ToInt32(dr["ID"]);
                    int bLogId = Convert.ToInt32(dr["BlogID"]);
                    string title = Convert.ToString(dr["Title"]);
                    string tags = Convert.ToString(dr["Tag"]);
                    string body = Convert.ToString(dr["Body"]);
                    int categoryId = Convert.ToInt32(dr["CategoryId"]);//分类
                    int channelId = Convert.ToInt32(dr["ChannelId"]);//频道 例如10006
                    string excerpt = Convert.ToString(dr["Excerpt"]);//摘要 summary 

                    string authorName = Convert.ToString(dr["AuthorName"]);
                    string sourceName = Convert.ToString(dr["SourceName"]);
                    string sourceUrl = Convert.ToString(dr["SourceUrl"]);
                    string coverUrl = Convert.ToString(dr["CoverUrl"]);
                    DateTime postTime = Convert.ToDateTime(dr["PostTime"]);
                    DateTime updateTime = Convert.ToDateTime(dr["UpdateTime"]);
                    string urlTime = updateTime.ToString("yyyy/MM/dd");


                    //将读取到的数据逐条插入postgresql数据库
                    Article article = new Article();//2147483729
                    //pgArticleId = ArticleManage.GetId();
                    article.Id = GetId();
                    //东方博客2012年度奖项名单
                    article.Title = title;
                    article.Content =Untils.GetHtml(body);
                    article.Publish_Time = postTime;
                    article.Create_Time = postTime;
                    //article.Source_Name = sourceName;

                    article.Modify_Time = updateTime;
                    if (Untils.GetHtmlImageUrlList(body).Length == 0)
                    {
                        article.Image_Url = Untils.GetHtmlImageUrl(coverUrl);
                    }
                    else
                    {
                        article.Image_Url = !string.IsNullOrEmpty(coverUrl) ? Untils.GetHtmlImageUrl(coverUrl) : Untils.GetHtmlImageUrlList(body)[0];
                    }
                    if (!string.IsNullOrEmpty(coverUrl) || Untils.GetHtmlImageUrlList(body).Length > 0)
                    {
                        article.Has_Picture = true;
                    }
                    else
                    {
                        article.Has_Picture = false;
                    }
                    article.Images = Untils.GetHtmlImageUrlList(body);
                    //article.Summary = Untils.NoHTML(body);
                    article.Summary = Untils.NoHTML(body).Length > 140 ? Untils.NoHTML(body).Substring(0, 140) : Untils.NoHTML(body);

                    //article.Source_Art_Id = parentId;
                    //article.Source_Url = "http://" + blogName + ".blog2.cnool.net/Article/" + urlTime + "/" + articleId + ".html";
                    article.Url = "http://blog.cnool.net/article/" + article.Id + ".html";

                    article.Industry_Id = 10040;
                    article.Industry_Name = "博客";

                    article.Unit_Id = parentId;
                    article.Comments = 0;
                    article.Status = 0;
                    article.Is_Publish = true;
                    article.Syn_Weixin = false;
                    article.Media_Id = null;
                    article.Creater_Id = 0;
                    article.Creater = authorName;

                    //article.Is_Del = false;
                    //article.Del_Time = DateTime.Parse("1970-1-1");
                    //article.Source_cate_id = 0;
                    string[] SearchkeyList = Untils.ConvertToSearchkey(tags); //每个tag不能超过20个字
                    article.Tags = SearchkeyList;
                    article.Search_Tags = SearchkeyList;
                    if (SearchkeyList != null)
                    {
                        //关键词转tag入库  0
                        foreach (string tag in SearchkeyList)
                        {
                            ArticleManage.CreateAticleTag(article.Id, tag, 0);
                        }
                    }
                    //获取Comment评论表的数据
                    sql = "select * from ra_pbComment where ParentID=" + articleId;
                    dt = dc.FillDataTable(sql);
                    if (dt!=null)
                    {
                        article.Comments = dt.Rows.Count;
                    }
                    List<Comment> list = new List<Comment>();
                    foreach (DataRow dr_comment in dt.Rows)
                    {
                        int parentID = Convert.ToInt32(dr_comment["ParentID"]);
                        string body_comment = Convert.ToString(dr_comment["Body"]);
                        string authorName_comment = Convert.ToString(dr_comment["AuthorName"]);
                        DateTime addTime = Convert.ToDateTime(dr_comment["AddTime"]);
                        string authorIP = Convert.ToString(dr_comment["AuthorIP"]);
                        DateTime updateTime_comment = Convert.ToDateTime(dr_comment["UpdateTime"]);

                        //将读取到的数据逐条插入postgresql数据库
                        Comment comment = new Comment();
                        comment.article_id = article.Id;
                        comment.comm_content = body_comment;
                        comment.comm_username = authorName_comment;
                        comment.comm_time = addTime;
                        comment.ip = authorIP;
                        comment.is_valid = true;
                        comment.forum_topicid = 0;
                        comment.forum_threadid = 0;
                        comment.modify_time = updateTime_comment;
                        list.Add(comment);
                    }
                    result = CreateArticle(article, list);
                    if (result)
                    {
                        //插入用户最后操作的Article的ID
                        sql = "update DataTransfer set EndArticleId=" + articleId + " where UserName='******'";
                        dc.ExeSql(sql);
                    }
                    else
                    {
                        Untils.WriteProgramLog(loginName + "  导入Article数据失败!");
                    }
                }
                //return result;
            }
            catch (Exception e)
            {
                Untils.WriteProgramLog("something wrong in A method: " + e.Message);
                throw;
            }

        }
Пример #2
0
        static void Main(string[] args)
        {
            //string a="<img src=\"/uploads/2016editor/5/31/11/4b1a48f0-8608-49c6-86be-6a7aaeb6c67f.jpg\" alt=\"\" /></span></p><p><span style=\"font-size:16px;\"><img src=\"/uploads/2016editor/5/31/11/cac9b691-0ffc-4cc9-a030-f2273d4c6884.jpg\" alt=\"\" />";

            //delete();
            //Untils.GetHtml(a);
            //return;
            //selectMember();
            //string a = string.Empty; ;

            //Untils.GetHtmlImageUrl(a);
            //delete(10593);

            //string a = "测试啊<p><img src='/dadt/yndt/201103/W020110322380977845026.jpg'><img src='http://blog2.cnool.net/dadt/yndt/201103/W020110322380977845026.jpg'></p><img src='/dadt/yndt/201103/W020110322380977845026.jpg'>";
            //Untils.GetHtml(a);
            //string[] b = new string[] { "/dadt/yndt/201103/w020110322380977845026.jpg", "/dadt/yndt/201103.jpg" };
            //string a = "<p><img src='/dadt/W020110322380977845026.jpg' alt='' /></p><p><img src='/dadt/yndt/201103/W020110322380977845026.jpg'/></p><img src='http://cnool.net/dadt/yndt/201103/W0201103223809778450262.jpg'/>";
            //string sw = Untils.GetHtml(a);

            string username  = string.Empty;
            string blogName  = string.Empty;
            string sql       = string.Empty;
            int    status    = 0;
            string loginName = string.Empty;
            int    userId    = 0;

            try
            {
                DataTable      dt = new DataTable();
                DataConnection dc = new DataConnection();

                sql = "select * from DataTransfer where Status=0 ";
                dt  = dc.FillDataTable(sql);
                if (dt == null || dt.Rows.Count == 0)
                {
                    Console.WriteLine("没有记录");
                    return;
                }
                else
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        username = Convert.ToString(dr["UserName"]);
                        string realName = Convert.ToString(dr["RealName"]);
                        string ip       = Convert.ToString(dr["IP"]);
                        status = Convert.ToInt32(dr["Status"]);
                        //获取Member用户表的数据
                        sql = "select * from ra_pbMember  where LoginName= '" + username + "'";
                        //dt = dc.FillDataTable(sql);
                        DataRow drMember = dc.FillDataRow(sql);
                        userId    = Convert.ToInt32(drMember["ID"]);
                        loginName = Convert.ToString(drMember["LoginName"]);
                        string face = Convert.ToString(drMember["Face"]);

                        Admin admin = new Admin();
                        admin.username      = loginName;
                        admin.realname      = realName;
                        admin.create_time   = DateTime.Now;
                        admin.last_login_ip = ip;
                        admin.roles_name    = "单元运营者";
                        string[] SearchkeyList = Untils.ConvertToSearchkey("单元运营者");
                        admin.role_name_list = SearchkeyList;
                        admin.isvalid        = true;
                        admin.role_list      = Array.ConvertAll <string, int>(Untils.ConvertToSearchkey(Convert.ToString(Convert.ToString(10002))), s => int.Parse(s));//string[]转化int[]

                        var  adminInfo = AdminManage.getAdminByName(loginName);
                        bool result    = false;
                        if (adminInfo == null)
                        {
                            result = AdminManage.CreateAdmin(admin);
                        }
                        else
                        {
                            Untils.WriteProgramLog(loginName + "  已存在!");
                            result = true;
                        }
                        if (result)
                        {
                            result = UnitManage.InsertUnit(userId, loginName, face);
                            if (result)
                            {
                                sql = "update DataTransfer set Status=1 where UserName='******'";
                                dc.ExeSql(sql);
                                Untils.WriteProgramLog(loginName + "  导入数据成功!");
                            }
                            else
                            {
                                Untils.WriteProgramLog(loginName + "  导入数据失败!");
                            }
                        }
                        else
                        {
                            Untils.WriteProgramLog(loginName + "  导入Admin数据失败!");
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Untils.WriteProgramLog("something wrong in A method: " + e.Message);
                throw;
            }
        }