public NewsCommentViewMode(string story_id, StoryExtra extra)
 {
     _story_id  = story_id;
     StoryExtra = extra;
     AppTheme   = AppSettings.Instance.CurrentTheme;
     LoadMainSource();
 }
Exemple #2
0
        public StoryCommentViewModel(string story_id, StoryExtra extra)
        {
            _story_id = story_id;
            _se       = extra;

            Update();
        }
Exemple #3
0
        public async void Update()
        {
            IsLoading = true;

            var t1 = _api.GetStoryContent(_story_id);
            var t2 = _api.GetStoryExtra(_story_id);

            StoryContent sc = await t1;
            StoryExtra   se = await t2;

            if (sc != null)
            {
                ID                 = sc.ID;
                Title              = sc.Title;
                Image              = sc.Image;
                ImageSource        = sc.Image_Source;
                RecommenderAvatars = sc.RecommnderAvatars;
                ShareUrl           = sc.Share_URL;
                string css = "<style>"
                             + "html{-ms-content-zooming:none;font-family:微软雅黑;}"
                             + ".author{font-weight:bold;} .bio{color:gray;}"
                             + "body{padding:20px;word-break:break-all;} p{margin:30px auto;} a{color:skyblue;} .content img{width:95%;}"
                             + "body{line-height:150%;}"
                             + "</style>"; //基础css
                string ex_mark = "<base target='_blank'/>";
                string css2    = "";       //主题css
                string css3    = "";       //字体css
                string js      = "";       //图片加载脚本
                string body    = "";

                if (DataShareManager.Current.APPTheme == Windows.UI.Xaml.ElementTheme.Dark) //夜间主题
                {
                    css2 = "<style>"
                           + "body{background-color:black !important;color:gray !important;}"
                           + "</style>";
                }
                else
                {
                    css2 = "";
                }
                if (DataShareManager.Current.BigFont)  //大字号
                {
                    css3 = "<style>body{font-size:52px;} h1{font-size:62px;} h2{font-size:58px;} h3{font-size:52px;} h4,h5,h6{font-size:48px;}</style>";
                }
                else
                {
                    css3 = "<style>body{font-size:44px;} h1{font-size:55px;} h2{font-size:50px;} h3{font-size:45px;} h4,h5,h6{font-size:40px;}</style>";
                }

                if (DataShareManager.Current.NOImagesMode)   //无图模式
                {
                    if (NetworkManager.Current.Network != 3) //非wifi
                    {
                        body = Regex.Replace(sc.Body, @"<img.*?src=(['""]?)(?<url>[^'"" ]+)(?=\1)[^>]*>", (m) =>
                        {
                            if (m.Value.Contains("avatar"))
                            {
                                return(m.Value);
                            }
                            else
                            {
                                Match match = Regex.Match(m.Value.ToString(), @"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>");
                                if (match.Success)
                                {
                                    return(@"<img src=""ms-appx-web:///Assets/default_image.png"" onclick=""click2loadimage(this,'" + match.Groups["imgUrl"].Value + @"');""/>");
                                }
                                else
                                {
                                    return(m.Value);
                                }
                            }
                        }, RegexOptions.IgnoreCase); //替换所有img标签 为本地图片

                        js = "<script>"              //点击加载图片
                             + "function click2loadimage(obj,source)"
                             + "{"
                             + "obj.setAttribute('src','ms-appx-web:///Assets/default_image_loading.png');"
                             + "obj.setAttribute('src',source);"
                             + "}"
                             + "</script>";
                    }
                    else
                    {
                        body = sc.Body;
                    }
                }
                else
                {
                    body = sc.Body;
                }
                // <link rel='stylesheet' type='text/css' href='" + sc.CSS + "'/> 官方css文件不好控制  所以没有使用

                //合并
                BodyHtml = "<html><head>" + ex_mark + css + css2 + css3 + js + "</head>" + "<body>" + body + "</body></html>";   //附加css
            }
            if (se != null)
            {
                Comments     = se.Comments;
                Popularities = se.Polularity;
                Favorite     = se.Favorite;
                _se          = se;
            }

            IsLoading = false;
        }