/// <summary> /// 线程方法:加载用户微博 /// </summary> private void LoadFriendTimeline() { Thread thLoad = new Thread(new ThreadStart(delegate() { StringBuilder statusBuilder = new StringBuilder(); NetDimension.Weibo.Entities.status.Collection json = Sina.API.Statuses.FriendsTimeline("0", "0", 20, 1, false, 0); if (json.Statuses != null) { foreach (NetDimension.Weibo.Entities.status.Entity status in json.Statuses) { if (status.User == null) { continue; } if (status.RetweetedStatus != null && status.RetweetedStatus.User != null) { statusBuilder.AppendFormat(repostPattern, status.User.ProfileImageUrl, status.User.ScreenName, status.Text, status.RetweetedStatus.User.ScreenName, status.RetweetedStatus.Text, string.IsNullOrEmpty(status.RetweetedStatus.ThumbnailPictureUrl) ? "" : string.Format(imageParttern, status.RetweetedStatus.ThumbnailPictureUrl), status.RetweetedStatus.RepostsCount, status.RetweetedStatus.CommentsCount, status.RepostsCount, status.CommentsCount); } else { statusBuilder.AppendFormat(statusPattern, status.User.ProfileImageUrl, status.User.ScreenName, status.Text, string.IsNullOrEmpty(status.ThumbnailPictureUrl) ? "" : string.Format(imageParttern, status.ThumbnailPictureUrl), status.RepostsCount, status.CommentsCount); } } } string html = htmlPattern.Replace("<!--StatusesList-->", statusBuilder.ToString()); UIUpdateContent(html); })); thLoad.IsBackground = true; thLoad.Start(); }
//由通过认证的新浪客户端,调取当前登录用户及其所关注用户的最新微博接口Friends_Timeline,n最大是一次100条 //获得最新的n条含有用户关键字的公共微博信息并存入数据库 public void getFriends_Timeline_sina(Client sinaClient, int n) { StringBuilder sql = new StringBuilder(); ArrayList lst_kw = new ArrayList(); Hashtable ht_evt = new Hashtable(); try { NetDimension.Weibo.Entities.status.Collection satColl = sinaClient.API.Entity.Statuses.FriendsTimeline("", "", n); foreach (NetDimension.Weibo.Entities.status.Entity entity in satColl.Statuses) { string text = entity.RetweetedStatus == null ? entity.Text : entity.Text + entity.RetweetedStatus.Text; if (!weibo_ids.Equals(entity.ID) || long.Parse(weibo_ids.Equals("") ? "0" : weibo_ids) > long.Parse(entity.ID)) { //把正文里包含的关键词都放入list for (int i = 0; i < dt_kw.Rows.Count; i++) { string[] _words = dt_kw.Rows[i][0].ToString().Split(new char[] { ' ' }); if (!lst_kw.Contains(dt_kw.Rows[i][0].ToString())) { lst_kw.Add(dt_kw.Rows[i][0].ToString()); foreach (string w in _words) { if (!text.Contains(w)) { lst_kw.Remove(dt_kw.Rows[i][0].ToString()); break; } } } } ht_evt = evtJudge(dt_event, lst_kw); if (ht_evt.Count > 0) { int part = partJudge(dt_partWord, text); weibo_ids = entity.ID; //string text = entity.RetweetedStatus == null ? entity.Text : entity.Text + entity.RetweetedStatus.Text; foreach (DictionaryEntry de in ht_evt) { int urlTherear = UrlThereare(entity.ID); if (urlTherear <= 0) { sql = sql.Append("insert into ReleaseInfoWB (title,contexts,releasedate,infosource," + "keywords,releasename,collectdate,snapshot,webname,pid,part,reposts,comments,kid) values ('"+entity.ID+"','" + text + "','" + string.Format(NetDimension.Weibo.Utility.ParseUTCDate(entity.CreatedAt).ToString("yyyy-MM-dd HH:mm:ss")) + "','" + "http://weibo.com/" + entity.User.ID + "','" + de.Key.ToString() + "','" + entity.User.Name + "','" + string.Format(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) + "','','" + "新浪微博" + "','" + "3" + "','" + part.ToString() + "','" + entity.RepostsCount + "','" + entity.CommentsCount + "'," + de.Value.ToString() + ");"); } } } lst_kw.Clear(); } } } catch (Exception err) { Console.Write(err.Message); } //插入数据库 if (sql.Length > 0) cmd.ExecuteNonQueryInt(sql.ToString()); }