private static SmartImage BuildImgControl(HtmlElement item) { //TODO: crash @ http://imgsrc.baidu.com/forum/w%3D580%3Bcp%3Dtieba%2C10%2C666%3Bap%3Dsnh48%B0%C9%2C90%2C674/sign=d10ca71e0b24ab18e016e13f05c185bd/42a0283fb80e7becd78d41d92d2eb9389a506bd0.jpg var url = Uri.UnescapeDataString(item.Attributes["src"]); if (url == null) { return(null); } S1Resource.GetAbsoluteUrl(ref url); bool isEmotion = S1Resource.IsEmotion(url); var image = new SmartImage(); ImageResourceManager.SetUriSource(image, url); if (isEmotion) { image.Margin = new Thickness(0, 0, 0, -6); } else { image.Margin = new Thickness(6); } return(image); }
public void TestGetViewParamFromUrl() { S1Resource.ParserFactory = new DZParserFactory(null); S1Resource.HostList = new List <string> { "http://220.196.42.167/2b/", "http://bbs.saraba1st.com/2b/" }; string s0 = "http://220.196.42.167/2b/read-htm-tid-785763-page-54.html"; string s1 = "http://bbs.saraba1st.com/2b/read-htm-tid-785763-page-54.html"; string s2 = "http://bbs.saraba1st.com/2b/read.php?tid=785763&page=54#20636585"; string s3 = "http://bbs.saraba1st.com/2b/simple/?t785763_54.html"; string s4 = "http://bbs.saraba1st.com/2b/read-htm-tid-785763.html"; string s5 = "http://bbs.saraba1st.com/2b/read.php?tid=785763"; string s6 = "http://bbs.saraba1st.com/2b/simple/?t785763.html"; string s7 = "http://bbs.saraba1st.com/2b/thread-785763-54-1.html"; string expect = "?ID=785763&Page=54"; string expect2 = "?ID=785763"; Assert.AreEqual(expect, S1Resource.GetThreadParamFromUrl(s0)); Assert.AreEqual(expect, S1Resource.GetThreadParamFromUrl(s1)); Assert.AreEqual(expect2, S1Resource.GetThreadParamFromUrl(s4)); Assert.AreEqual(expect, S1Resource.GetThreadParamFromUrl(s2)); Assert.AreEqual(expect2, S1Resource.GetThreadParamFromUrl(s5)); Assert.AreEqual(expect, S1Resource.GetThreadParamFromUrl(s3)); Assert.AreEqual(expect2, S1Resource.GetThreadParamFromUrl(s6)); Assert.AreEqual(expect, S1Resource.GetThreadParamFromUrl(s7)); }
public void OpenInBrowser() { var task = new Microsoft.Phone.Tasks.WebBrowserTask { Uri = new Uri(S1Resource.GetThreadOriginalUrl(_tid), UriKind.Absolute) }; task.Show(); }
private static Inline BuildLink(HtmlElement item) { Hyperlink link = new Hyperlink(); var url = item.Attributes["href"]; var aText = item.PlainText(); if (url == null || aText.Length == 0) { return(link); } if (url.ToLower().StartsWith("mailto:")) { link.Click += (o, e) => { EmailComposeTask emailComposeTask = new EmailComposeTask(); emailComposeTask.To = url.Substring(url.IndexOf(':') + 1); emailComposeTask.Show(); }; } S1Resource.GetAbsoluteUrl(ref url); var viewParam = S1Resource.GetThreadParamFromUrl(url); if (viewParam != null) { Run header = new Run(); header.Text = "<s1: "; header.FontStyle = FontStyles.Italic; link.Inlines.Add(header); link.Inlines.Add(aText); link.Inlines.Add("> "); link.NavigateUri = new Uri("/Views/PostView.xaml" + viewParam, UriKind.Relative); } else { try { link.NavigateUri = new Uri(url); link.TargetName = "_blank"; } catch (Exception) { }; link.Inlines.Add(aText); } link.FontSize = SettingView.ContentFontSize * .85; link.Foreground = (Brush)Application.Current.Resources["PhoneAccentBrush"]; return(link); }
private async void PrepareImage() { string path = null; if (null != (path = S1Resource.GetEmotionPath(SourceUrl))) { IsEmotion = true; var res = Application.GetResourceStream(new Uri("Resources/" + path, UriKind.Relative)); try { if (res != null) { SourceStream = res.Stream; } else { SourceStream = await NetResourceService.GetResourceStreamStatic(new Uri(SourceUrl), path, -1, false); } } catch { } finally { if (SourceStream == null) { OnImageOpenFailed(); } } UpdateImage(); } else if (IsShowImage()) { await GetRemoteStream(); UpdateImage(); } }