| 702 | | End If |
| 703 | | |
| 704 | | If _endingFlag Then Return "" |
| 705 | | |
| 706 | | 'リクエストメッセージを作成する |
| 707 | | Dim pageQuery As String = _pageQry + page.ToString |
| 708 | | |
| 709 | | If gType = WORKERTYPE.DirectMessegeRcv Then |
| 710 | | retMsg = DirectCast(CreateSocket.GetWebResponse("https://" + _hubServer + _DMPathRcv + pageQuery, resStatus), String) |
| 711 | | Else |
| 712 | | retMsg = DirectCast(CreateSocket.GetWebResponse("https://" + _hubServer + _DMPathSnt + pageQuery, resStatus), String) |
| 713 | | End If |
| 714 | | |
| 715 | | If retMsg.Length = 0 Then |
| 716 | | _signed = False |
| 717 | | Return resStatus |
| 718 | | End If |
| 719 | | |
| 720 | | ' tr 要素の class 属性を消去 |
| 721 | | Do |
| 722 | | Dim idx As Integer = retMsg.IndexOf("<tr class=""", StringComparison.Ordinal) |
| 723 | | If idx = -1 Then Exit Do |
| 724 | | retMsg = retMsg.Remove(idx + 4, retMsg.IndexOf("""", idx + 11 + 1, StringComparison.Ordinal) - idx - 2) ' 11 = "<tr class=""".Length |
| 725 | | Loop |
| 726 | | |
| 727 | | If _endingFlag Then Return "" |
| 728 | | |
| 729 | | ''AuthKeyの取得 |
| 730 | | 'If GetAuthKeyDM(retMsg) < 0 Then |
| 731 | | ' _signed = False |
| 732 | | ' Return "GetDirectMessage -> Err: Busy(1)" |
| 733 | | 'End If |
| 734 | | |
| 735 | | Dim pos1 As Integer |
| 736 | | Dim pos2 As Integer |
| 737 | | |
| 738 | | ''Followerの抽出(Webのあて先リストがおかしいのでコメントアウト) |
| 739 | | 'If page = 1 And gType = GetTypes.GET_DMRCV Then |
| 740 | | ' pos1 = retMsg.IndexOf(_followerList) |
| 741 | | ' If pos1 = -1 Then |
| 742 | | ' If follower.Count = 0 Then follower.Add(_uid) |
| 743 | | ' '取得失敗 |
| 744 | | ' _signed = False |
| 745 | | ' Return "GetDirectMessage -> Err: Busy(3)" |
| 746 | | ' End If |
| 747 | | ' follower.Clear() |
| 748 | | ' follower.Add(_uid) |
| 749 | | ' pos1 += _followerList.Length |
| 750 | | ' pos1 = retMsg.IndexOf(_followerMbr1, pos1) |
| 751 | | ' Try |
| 752 | | ' Do While pos1 > -1 |
| 753 | | ' pos2 = retMsg.IndexOf(_followerMbr2, pos1) |
| 754 | | ' pos1 = retMsg.IndexOf(_followerMbr3, pos2) |
| 755 | | ' follower.Add(retMsg.Substring(pos2 + _followerMbr2.Length, pos1 - pos2 - _followerMbr2.Length)) |
| 756 | | ' pos1 = retMsg.IndexOf(_followerMbr1, pos1) |
| 757 | | ' Loop |
| 758 | | ' follower.RemoveAt(follower.Count - 1) |
| 759 | | ' Catch ex As Exception |
| 760 | | ' _signed = False |
| 761 | | ' Return "GetDirectMessage -> Err: Can't get followers" |
| 762 | | ' End Try |
| 763 | | 'End If |
| 764 | | |
| 765 | | '各メッセージに分割可能か? |
| 766 | | pos1 = retMsg.IndexOf(_splitDM, StringComparison.Ordinal) |
| 767 | | If pos1 = -1 Then |
| 768 | | '0件(メッセージなし。エラーの場合もありうるが判別できないので正常として戻す) |
| | 700 | |
| | 701 | If _endingFlag Then Return "" |
| | 702 | |
| | 703 | 'リクエストメッセージを作成する |
| | 704 | Dim pageQuery As String = _pageQry + page.ToString |
| | 705 | |
| | 706 | If gType = WORKERTYPE.DirectMessegeRcv Then |
| | 707 | retMsg = DirectCast(CreateSocket.GetWebResponse("https://" + _hubServer + _DMPathRcv + pageQuery, resStatus), String) |
| | 708 | Else |
| | 709 | retMsg = DirectCast(CreateSocket.GetWebResponse("https://" + _hubServer + _DMPathSnt + pageQuery, resStatus), String) |
| | 710 | End If |
| | 711 | |
| | 712 | If retMsg.Length = 0 Then |
| | 713 | _signed = False |
| | 714 | Return resStatus |
| | 715 | End If |
| | 716 | |
| | 717 | ' tr 要素の class 属性を消去 |
| | 718 | Do |
| | 719 | Dim idx As Integer = retMsg.IndexOf("<tr class=""", StringComparison.Ordinal) |
| | 720 | If idx = -1 Then Exit Do |
| | 721 | retMsg = retMsg.Remove(idx + 4, retMsg.IndexOf("""", idx + 11 + 1, StringComparison.Ordinal) - idx - 2) ' 11 = "<tr class=""".Length |
| | 722 | Loop |
| | 723 | |
| | 724 | If _endingFlag Then Return "" |
| | 725 | |
| | 726 | ''AuthKeyの取得 |
| | 727 | 'If GetAuthKeyDM(retMsg) < 0 Then |
| | 728 | ' _signed = False |
| | 729 | ' Return "GetDirectMessage -> Err: Busy(1)" |
| | 730 | 'End If |
| | 731 | |
| | 732 | Dim pos1 As Integer |
| | 733 | Dim pos2 As Integer |
| | 734 | |
| | 735 | ''Followerの抽出(Webのあて先リストがおかしいのでコメントアウト) |
| | 736 | 'If page = 1 And gType = GetTypes.GET_DMRCV Then |
| | 737 | ' pos1 = retMsg.IndexOf(_followerList) |
| | 738 | ' If pos1 = -1 Then |
| | 739 | ' If follower.Count = 0 Then follower.Add(_uid) |
| | 740 | ' '取得失敗 |
| | 741 | ' _signed = False |
| | 742 | ' Return "GetDirectMessage -> Err: Busy(3)" |
| | 743 | ' End If |
| | 744 | ' follower.Clear() |
| | 745 | ' follower.Add(_uid) |
| | 746 | ' pos1 += _followerList.Length |
| | 747 | ' pos1 = retMsg.IndexOf(_followerMbr1, pos1) |
| | 748 | ' Try |
| | 749 | ' Do While pos1 > -1 |
| | 750 | ' pos2 = retMsg.IndexOf(_followerMbr2, pos1) |
| | 751 | ' pos1 = retMsg.IndexOf(_followerMbr3, pos2) |
| | 752 | ' follower.Add(retMsg.Substring(pos2 + _followerMbr2.Length, pos1 - pos2 - _followerMbr2.Length)) |
| | 753 | ' pos1 = retMsg.IndexOf(_followerMbr1, pos1) |
| | 754 | ' Loop |
| | 755 | ' follower.RemoveAt(follower.Count - 1) |
| | 756 | ' Catch ex As Exception |
| | 757 | ' _signed = False |
| | 758 | ' Return "GetDirectMessage -> Err: Can't get followers" |
| | 759 | ' End Try |
| | 760 | 'End If |
| | 761 | |
| | 762 | '各メッセージに分割可能か? |
| | 763 | pos1 = retMsg.IndexOf(_splitDM, StringComparison.Ordinal) |
| | 764 | If pos1 = -1 Then |
| | 765 | '0件(メッセージなし。エラーの場合もありうるが判別できないので正常として戻す) |
| | 766 | Return "" |
| | 767 | End If |
| | 768 | |
| | 769 | Dim strSep() As String = {_splitDM} |
| | 770 | Dim posts() As String = retMsg.Split(strSep, StringSplitOptions.RemoveEmptyEntries) |
| | 771 | Dim intCnt As Integer = 0 'カウンタ |
| | 772 | Dim listCnt As Integer = 0 |
| | 773 | SyncLock LockObj |
| | 774 | listCnt = links.Count |
| | 775 | End SyncLock |
| | 776 | Dim dlgt(20) As GetIconImageDelegate |
| | 777 | Dim ar(20) As IAsyncResult |
| | 778 | Dim arIdx As Integer = -1 |
| | 779 | |
| | 780 | For Each strPost As String In posts |
| | 781 | intCnt += 1 |
| | 782 | |
| | 783 | If intCnt > 1 Then '1件目はヘッダなので無視 |
| | 784 | 'Dim lItem As New MyListItem |
| | 785 | Dim post As New PostClass() |
| | 786 | |
| | 787 | 'Get ID |
| | 788 | Try |
| | 789 | pos1 = 0 |
| | 790 | pos2 = strPost.IndexOf("""", 0, StringComparison.Ordinal) |
| | 791 | post.Id = Long.Parse(HttpUtility.HtmlDecode(strPost.Substring(0, pos2))) |
| | 792 | Catch ex As Exception |
| | 793 | _signed = False |
| | 794 | TraceOut("DM-ID:" + strPost) |
| | 795 | Return "GetDirectMessage -> Err: Can't get ID" |
| | 796 | End Try |
| | 797 | |
| | 798 | 'Get Name |
| | 799 | Try |
| | 800 | pos1 = strPost.IndexOf(_parseName, pos2, StringComparison.Ordinal) |
| | 801 | pos2 = strPost.IndexOf(_parseNameTo, pos1, StringComparison.Ordinal) |
| | 802 | post.Name = HttpUtility.HtmlDecode(strPost.Substring(pos1 + _parseName.Length, pos2 - pos1 - _parseName.Length)) |
| | 803 | Catch ex As Exception |
| | 804 | _signed = False |
| | 805 | TraceOut("DM-Name:" + strPost) |
| | 806 | Return "GetDirectMessage -> Err: Can't get Name" |
| | 807 | End Try |
| | 808 | |
| | 809 | 'Get Nick |
| | 810 | Try |
| | 811 | pos1 = strPost.IndexOf(_parseNick, pos2, StringComparison.Ordinal) |
| | 812 | pos2 = strPost.IndexOf(_parseNickTo, pos1 + _parseNick.Length, StringComparison.Ordinal) |
| | 813 | post.Nickname = HttpUtility.HtmlDecode(strPost.Substring(pos1 + _parseNick.Length, pos2 - pos1 - _parseNick.Length)) |
| | 814 | Catch ex As Exception |
| | 815 | _signed = False |
| | 816 | TraceOut("DM-Nick:" + strPost) |
| | 817 | Return "GetDirectMessage -> Err: Can't get Nick." |
| | 818 | End Try |
| | 819 | |
| | 820 | SyncLock LockObj |
| | 821 | If links.Contains(post.Id) Then Continue For |
| | 822 | End SyncLock |
| | 823 | |
| | 824 | 'Get ImagePath |
| | 825 | Try |
| | 826 | pos1 = strPost.IndexOf(_parseImg, pos2, StringComparison.Ordinal) |
| | 827 | pos2 = strPost.IndexOf(_parseImgTo, pos1 + _parseImg.Length, StringComparison.Ordinal) |
| | 828 | post.ImageUrl = HttpUtility.HtmlDecode(strPost.Substring(pos1 + _parseImg.Length, pos2 - pos1 - _parseImg.Length)) |
| | 829 | Catch ex As Exception |
| | 830 | _signed = False |
| | 831 | TraceOut("DM-Img:" + strPost) |
| | 832 | Return "GetDirectMessage -> Err: Can't get ImagePath" |
| | 833 | End Try |
| | 834 | |
| | 835 | 'Get Protect |
| | 836 | Try |
| | 837 | pos1 = strPost.IndexOf(_isProtect, pos2, StringComparison.Ordinal) |
| | 838 | If pos1 > -1 Then post.IsProtect = True |
| | 839 | Catch ex As Exception |
| | 840 | _signed = False |
| | 841 | TraceOut("DM-Protect:" + strPost) |
| | 842 | Return "GetDirectMessage -> Err: Can't get Protect" |
| | 843 | End Try |
| | 844 | |
| | 845 | Dim orgData As String = "" |
| | 846 | |
| | 847 | 'Get Message |
| | 848 | Try |
| | 849 | pos1 = strPost.IndexOf(_parseDM1, pos2, StringComparison.Ordinal) |
| | 850 | If pos1 > -1 Then |
| | 851 | pos2 = strPost.IndexOf(_parseDM2, pos1, StringComparison.Ordinal) |
| | 852 | orgData = strPost.Substring(pos1 + _parseDM1.Length, pos2 - pos1 - _parseDM1.Length).Trim() |
| | 853 | Else |
| | 854 | pos1 = strPost.IndexOf(_parseDM11, pos2, StringComparison.Ordinal) |
| | 855 | pos2 = strPost.IndexOf(_parseDM2, pos1, StringComparison.Ordinal) |
| | 856 | orgData = strPost.Substring(pos1 + _parseDM11.Length, pos2 - pos1 - _parseDM11.Length).Trim() |
| | 857 | End If |
| | 858 | orgData = Regex.Replace(orgData, "<a href=""https://twitter\.com/" + post.Name + "/status/[0-9]+"">\.\.\.</a>$", "") |
| | 859 | orgData = orgData.Replace("<3", "♡") |
| | 860 | Catch ex As Exception |
| | 861 | _signed = False |
| | 862 | TraceOut("DM-Body:" + strPost) |
| | 863 | Return "GetDirectMessage -> Err: Can't get body" |
| | 864 | End Try |
| | 865 | |
| | 866 | '短縮URL解決処理(orgData書き換え) |
| | 867 | orgData = ShortUrlResolve(orgData) |
| | 868 | |
| | 869 | '表示用にhtml整形 |
| | 870 | post.OriginalData = AdjustHtml(orgData) |
| | 871 | |
| | 872 | '単純テキストの取り出し(リンクタグ除去) |
| | 873 | Try |
| | 874 | post.Data = GetPlainText(orgData) |
| | 875 | Catch ex As Exception |
| | 876 | _signed = False |
| | 877 | TraceOut("DM-Link:" + strPost) |
| | 878 | Return "GetDirectMessage -> Err: Can't parse links" |
| | 879 | End Try |
| | 880 | |
| | 881 | 'Get Date |
| | 882 | Try |
| | 883 | pos1 = strPost.IndexOf(_parseDate, pos2, StringComparison.Ordinal) |
| | 884 | pos2 = strPost.IndexOf(_parseDateTo, pos1 + _parseDate.Length, StringComparison.Ordinal) |
| | 885 | post.PDate = DateTime.ParseExact(strPost.Substring(pos1 + _parseDate.Length, pos2 - pos1 - _parseDate.Length), "yyyy'-'MM'-'dd'T'HH':'mm':'sszzz", System.Globalization.DateTimeFormatInfo.InvariantInfo, Globalization.DateTimeStyles.None) |
| | 886 | Catch ex As Exception |
| | 887 | _signed = False |
| | 888 | TraceOut("DM-Date:" + strPost) |
| | 889 | Return "GetTimeline -> Err: Can't get date." |
| | 890 | End Try |
| | 891 | |
| | 892 | |
| | 893 | 'Get Fav |
| | 894 | 'pos1 = strPost.IndexOf(_parseStar, pos2) |
| | 895 | 'pos2 = strPost.IndexOf("""", pos1 + _parseStar.Length) |
| | 896 | 'If strPost.Substring(pos1 + _parseStar.Length, pos2 - pos1 - _parseStar.Length) = "empty" Then |
| | 897 | ' lItem.Fav = False |
| | 898 | 'Else |
| | 899 | ' lItem.Fav = True |
| | 900 | 'End If |
| | 901 | post.IsFav = False |
| | 902 | |
| | 903 | 'Imageの取得 |
| | 904 | arIdx += 1 |
| | 905 | dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) |
| | 906 | ar(arIdx) = dlgt(arIdx).BeginInvoke(post, imgs, imgsS, Nothing, Nothing) |
| | 907 | |
| | 908 | If _endingFlag Then Return "" |
| | 909 | |
| | 910 | SyncLock LockObj |
| | 911 | links.Add(post.Id) |
| | 912 | End SyncLock |
| | 913 | |
| | 914 | '受信DMかの判定で使用 |
| | 915 | If gType = WORKERTYPE.DirectMessegeRcv Then |
| | 916 | post.IsOwl = False |
| | 917 | Else |
| | 918 | post.IsOwl = True |
| | 919 | End If |
| | 920 | |
| | 921 | post.IsRead = read |
| | 922 | post.IsDm = True |
| | 923 | |
| | 924 | TabInformations.GetInstance.AddPost(post) |
| | 925 | End If |
| | 926 | Next |
| | 927 | |
| | 928 | For i As Integer = 0 To arIdx |
| | 929 | dlgt(i).EndInvoke(ar(i)) |
| | 930 | Next |
| | 931 | |
| 770 | | End If |
| 771 | | |
| 772 | | Dim strSep() As String = {_splitDM} |
| 773 | | Dim posts() As String = retMsg.Split(strSep, StringSplitOptions.RemoveEmptyEntries) |
| 774 | | Dim intCnt As Integer = 0 'カウンタ |
| 775 | | Dim listCnt As Integer = 0 |
| 776 | | SyncLock LockObj |
| 777 | | listCnt = links.Count |
| 778 | | End SyncLock |
| 779 | | Dim dlgt(20) As GetIconImageDelegate |
| 780 | | Dim ar(20) As IAsyncResult |
| 781 | | Dim arIdx As Integer = -1 |
| 782 | | |
| 783 | | For Each strPost As String In posts |
| 784 | | intCnt += 1 |
| 785 | | |
| 786 | | If intCnt > 1 Then '1件目はヘッダなので無視 |
| 787 | | 'Dim lItem As New MyListItem |
| 788 | | Dim post As New PostClass() |
| 789 | | |
| 790 | | 'Get ID |
| 791 | | Try |
| 792 | | pos1 = 0 |
| 793 | | pos2 = strPost.IndexOf("""", 0, StringComparison.Ordinal) |
| 794 | | post.Id = Long.Parse(HttpUtility.HtmlDecode(strPost.Substring(0, pos2))) |
| 795 | | Catch ex As Exception |
| 796 | | _signed = False |
| 797 | | TraceOut("DM-ID:" + strPost) |
| 798 | | Return "GetDirectMessage -> Err: Can't get ID" |
| 799 | | End Try |
| 800 | | |
| 801 | | 'Get Name |
| 802 | | Try |
| 803 | | pos1 = strPost.IndexOf(_parseName, pos2, StringComparison.Ordinal) |
| 804 | | pos2 = strPost.IndexOf(_parseNameTo, pos1, StringComparison.Ordinal) |
| 805 | | post.Name = HttpUtility.HtmlDecode(strPost.Substring(pos1 + _parseName.Length, pos2 - pos1 - _parseName.Length)) |
| 806 | | Catch ex As Exception |
| 807 | | _signed = False |
| 808 | | TraceOut("DM-Name:" + strPost) |
| 809 | | Return "GetDirectMessage -> Err: Can't get Name" |
| 810 | | End Try |
| 811 | | |
| 812 | | 'Get Nick |
| 813 | | Try |
| 814 | | pos1 = strPost.IndexOf(_parseNick, pos2, StringComparison.Ordinal) |
| 815 | | pos2 = strPost.IndexOf(_parseNickTo, pos1 + _parseNick.Length, StringComparison.Ordinal) |
| 816 | | post.Nickname = HttpUtility.HtmlDecode(strPost.Substring(pos1 + _parseNick.Length, pos2 - pos1 - _parseNick.Length)) |
| 817 | | Catch ex As Exception |
| 818 | | _signed = False |
| 819 | | TraceOut("DM-Nick:" + strPost) |
| 820 | | Return "GetDirectMessage -> Err: Can't get Nick." |
| 821 | | End Try |
| 822 | | |
| 823 | | SyncLock LockObj |
| 824 | | If links.Contains(post.Id) Then Continue For |
| 825 | | End SyncLock |
| 826 | | |
| 827 | | 'Get ImagePath |
| 828 | | Try |
| 829 | | pos1 = strPost.IndexOf(_parseImg, pos2, StringComparison.Ordinal) |
| 830 | | pos2 = strPost.IndexOf(_parseImgTo, pos1 + _parseImg.Length, StringComparison.Ordinal) |
| 831 | | post.ImageUrl = HttpUtility.HtmlDecode(strPost.Substring(pos1 + _parseImg.Length, pos2 - pos1 - _parseImg.Length)) |
| 832 | | Catch ex As Exception |
| 833 | | _signed = False |
| 834 | | TraceOut("DM-Img:" + strPost) |
| 835 | | Return "GetDirectMessage -> Err: Can't get ImagePath" |
| 836 | | End Try |
| 837 | | |
| 838 | | 'Get Protect |
| 839 | | Try |
| 840 | | pos1 = strPost.IndexOf(_isProtect, pos2, StringComparison.Ordinal) |
| 841 | | If pos1 > -1 Then post.IsProtect = True |
| 842 | | Catch ex As Exception |
| 843 | | _signed = False |
| 844 | | TraceOut("DM-Protect:" + strPost) |
| 845 | | Return "GetDirectMessage -> Err: Can't get Protect" |
| 846 | | End Try |
| 847 | | |
| 848 | | Dim orgData As String = "" |
| 849 | | |
| 850 | | 'Get Message |
| 851 | | Try |
| 852 | | pos1 = strPost.IndexOf(_parseDM1, pos2, StringComparison.Ordinal) |
| 853 | | If pos1 > -1 Then |
| 854 | | pos2 = strPost.IndexOf(_parseDM2, pos1, StringComparison.Ordinal) |
| 855 | | orgData = strPost.Substring(pos1 + _parseDM1.Length, pos2 - pos1 - _parseDM1.Length).Trim() |
| 856 | | Else |
| 857 | | pos1 = strPost.IndexOf(_parseDM11, pos2, StringComparison.Ordinal) |
| 858 | | pos2 = strPost.IndexOf(_parseDM2, pos1, StringComparison.Ordinal) |
| 859 | | orgData = strPost.Substring(pos1 + _parseDM11.Length, pos2 - pos1 - _parseDM11.Length).Trim() |
| 860 | | End If |
| 861 | | orgData = Regex.Replace(orgData, "<a href=""https://twitter\.com/" + post.Name + "/status/[0-9]+"">\.\.\.</a>$", "") |
| 862 | | orgData = orgData.Replace("<3", "♡") |
| 863 | | Catch ex As Exception |
| 864 | | _signed = False |
| 865 | | TraceOut("DM-Body:" + strPost) |
| 866 | | Return "GetDirectMessage -> Err: Can't get body" |
| 867 | | End Try |
| 868 | | |
| 869 | | '短縮URL解決処理(orgData書き換え) |
| 870 | | orgData = ShortUrlResolve(orgData) |
| 871 | | |
| 872 | | '表示用にhtml整形 |
| 873 | | post.OriginalData = AdjustHtml(orgData) |
| 874 | | |
| 875 | | '単純テキストの取り出し(リンクタグ除去) |
| 876 | | Try |
| 877 | | post.Data = GetPlainText(orgData) |
| 878 | | Catch ex As Exception |
| 879 | | _signed = False |
| 880 | | TraceOut("DM-Link:" + strPost) |
| 881 | | Return "GetDirectMessage -> Err: Can't parse links" |
| 882 | | End Try |
| 883 | | |
| 884 | | 'Get Date |
| 885 | | Try |
| 886 | | pos1 = strPost.IndexOf(_parseDate, pos2, StringComparison.Ordinal) |
| 887 | | pos2 = strPost.IndexOf(_parseDateTo, pos1 + _parseDate.Length, StringComparison.Ordinal) |
| 888 | | post.PDate = DateTime.ParseExact(strPost.Substring(pos1 + _parseDate.Length, pos2 - pos1 - _parseDate.Length), "yyyy'-'MM'-'dd'T'HH':'mm':'sszzz", System.Globalization.DateTimeFormatInfo.InvariantInfo, Globalization.DateTimeStyles.None) |
| 889 | | Catch ex As Exception |
| 890 | | _signed = False |
| 891 | | TraceOut("DM-Date:" + strPost) |
| 892 | | Return "GetTimeline -> Err: Can't get date." |
| 893 | | End Try |
| 894 | | |
| 895 | | |
| 896 | | 'Get Fav |
| 897 | | 'pos1 = strPost.IndexOf(_parseStar, pos2) |
| 898 | | 'pos2 = strPost.IndexOf("""", pos1 + _parseStar.Length) |
| 899 | | 'If strPost.Substring(pos1 + _parseStar.Length, pos2 - pos1 - _parseStar.Length) = "empty" Then |
| 900 | | ' lItem.Fav = False |
| 901 | | 'Else |
| 902 | | ' lItem.Fav = True |
| 903 | | 'End If |
| 904 | | post.IsFav = False |
| 905 | | |
| 906 | | 'Imageの取得 |
| 907 | | arIdx += 1 |
| 908 | | dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) |
| 909 | | ar(arIdx) = dlgt(arIdx).BeginInvoke(post, imgs, imgsS, Nothing, Nothing) |
| 910 | | |
| 911 | | If _endingFlag Then Return "" |
| 912 | | |
| 913 | | SyncLock LockObj |
| 914 | | links.Add(post.Id) |
| 915 | | End SyncLock |
| 916 | | |
| 917 | | '受信DMかの判定で使用 |
| 918 | | If gType = WORKERTYPE.DirectMessegeRcv Then |
| 919 | | post.IsOwl = False |
| 920 | | Else |
| 921 | | post.IsOwl = True |
| 922 | | End If |
| 923 | | |
| 924 | | post.IsRead = read |
| 925 | | post.IsDm = True |
| 926 | | |
| 927 | | TabInformations.GetInstance.AddPost(post) |
| 928 | | End If |
| 929 | | Next |
| 930 | | |
| 931 | | For i As Integer = 0 To arIdx |
| 932 | | dlgt(i).EndInvoke(ar(i)) |
| 933 | | Next |
| 934 | | |
| 935 | | Return "" |
| | 933 | |
| | 934 | Finally |
| | 935 | GetTmSemaphore.Release() |
| | 936 | End Try |