diff options
Diffstat (limited to 'protocols/VKontakte/src/vkjs.js')
-rw-r--r-- | protocols/VKontakte/src/vkjs.js | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/protocols/VKontakte/src/vkjs.js b/protocols/VKontakte/src/vkjs.js index 8f1ed1185f..86e189a89a 100644 --- a/protocols/VKontakte/src/vkjs.js +++ b/protocols/VKontakte/src/vkjs.js @@ -373,9 +373,42 @@ var MsgUsers = API.users.get({ "user_ids": ChatMsg.items@.from_id, "fields":"id, return { "info": Info, "users": ChatUsers, "msgs": ChatMsg, "fwd_users": FUsers + GUsers, "msgs_users": MsgUsers}; -var Info=API.messages.getChat({"chat_id": Args.chatid}); -var ChatUsers=API.messages.getChatUsers({"chat_id":Args.chatid,"fields":"id,first_name,last_name"}); -return {"info":Info,"users":ChatUsers}; +// ver 4 +var Info = API.messages.getChat({ "chat_id": Args.chatid }); +var PeerId = 2000000000 + parseInt(Args.chatid); +var ChatUsers = API.messages.getConversationMembers({ "peer_id": PeerId, "fields": "id,first_name,last_name" }); +var ChatMsg = API.messages.getHistory({ "peer_id": PeerId, "count": 20, "rev": 0 }); +var UR = parseInt(ChatMsg.unread); +if (UR > 20) { + if (UR > 200) + UR = 200; + ChatMsg = API.messages.getHistory({ "peer_id": PeerId, "count": UR, "rev": 0 }); +}; +var FMsgs = ChatMsg.items@.fwd_messages; +var Idx = 0; +var Uids = []; +var GUids =[]; +while (Idx < FMsgs.length) { + var Jdx = 0; + var CFMsgs = parseInt(FMsgs[Idx].length); + while (Jdx < CFMsgs) { + if (FMsgs[Idx][Jdx].from_id>0) { + Uids.unshift(FMsgs[Idx][Jdx].from_id); + } else { + GUids.unshift(-1*FMsgs[Idx][Jdx].from_id); + }; + Jdx = Jdx + 1; + }; + Idx = Idx + 1; +}; +var FUsers = API.users.get({ "user_ids": Uids, "name_case": "gen" }); +var GUsers = []; +if(GUids.length>0){ + GUsers = API.groups.getById({ "group_ids": GUids }); +}; +var MsgUsers = API.users.get({ "user_ids": ChatMsg.items@.from_id, "fields":"id,first_name,last_name"}); + +return { "info": Info, "users": ChatUsers, "msgs": ChatMsg, "fwd_users": FUsers + GUsers.groups, "msgs_users": MsgUsers}; // Stored procedure name: RetrieveChatInfo = End // Stored procedure name: DestroyKickChat = Begin |