1 | static class SlackMsg { |
2 | S user, botName; // one of these is going to be set |
3 | S userName; // looked up if user != null |
4 | S type, text, ts; |
5 | O reactions; |
6 | S channelID; |
7 | } |
8 | |
9 | static L<SlackMsg> slackReadChannel(S channelID, S token, int limit) { |
10 | ret slackReadChannel(channelID, token, limit, null); |
11 | } |
12 | |
13 | static L<SlackMsg> slackReadChannel(S channelID, S token, int limit, S oldest) { |
14 | S url = "https://slack.com/api/channels.history"; |
15 | S postData = "token=" + urlencode(token) + "&channel=" + urlencode(channelID) + "&count=" + limit |
16 | + (oldest != null ? "&oldest=" + urlencode(oldest) : ""); |
17 | S data = doPostWithTimeout(postData, url, slackSetTimeout_get()); |
18 | Map map = cast jsonDecode(data); |
19 | if (!isTrue(map.get("ok"))) |
20 | fail(structure(map)); |
21 | List<Map> _msgs = cast map.get("messages"); |
22 | new L<SlackMsg> msgs; |
23 | for (Map msg : reversedList(_msgs)) { |
24 | new SlackMsg m; |
25 | m.type = (S) msg.get("type"); |
26 | m.user = (S) msg.get("user"); |
27 | m.botName = (S) msg.get("username"); |
28 | m.text = htmldecode((S) msg.get("text")); |
29 | m.ts = (S) msg.get("ts"); |
30 | m.reactions = msg.get("reactions"); |
31 | m.channelID = channelID; |
32 | m.userName = slackGetUserName(token, m.user); |
33 | msgs.add(m); |
34 | //print(structure(m)); |
35 | } |
36 | //print(l(msgs) + " messages sucked from slack channel."); |
37 | ret msgs; |
38 | } |
Began life as a copy of #1001907
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1001926 |
Snippet name: | slackReadChannel |
Eternal ID of this version: | #1001926/1 |
Text MD5: | dee1be7fa9d615a915fc135160347d22 |
Author: | stefan |
Category: | |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-04-18 22:42:30 |
Source code size: | 1352 bytes / 38 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 729 / 1301 |
Referenced in: | [show references] |