· 4 years ago · Dec 06, 2020, 07:30 PM
1local internet = require("internet")
2local json = require("json")
3local unicode = require("unicode")
4--require("component").gpu.setResolution(160,50)
5
6local headers = {
7 ["User-Agent"]="Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; Philips W632 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
8 ["Content-Type"] = "application/json",
9 ["Accept"] = "*/*",
10 ["Accept-Encoding"]="identity",
11 ["Accept-Charset"]="UTF-8"
12}
13local email = "@yandex.ru" --тут заполнить!!!!!!
14local password = ""
15local token = ""
16local guilds = {}
17local guild_ids = {}
18
19local function decode(text)
20 local text, line = text:gsub("u(%x+)", function(code) return unicode.char(tonumber(code, 16)) end)
21 return text
22end
23function doOnClick()
24 print(email,password)
25 local body = json.stringify({["email"]=email, ["password"]=password})
26 if email and password then
27 local handle = internet.request("https://discordapp.com/api/v6/auth/login", body, headers)
28 local res = ""
29 for chunk in handle do res=res..chunk end
30 token = json.parse(res)["token"]
31 headers["Authorization"]=token
32 res = ""
33 handle = internet.request("https://discordapp.com/api/v6/users/@me/guilds", nil, headers, 'GET')
34 for chunk in handle do res=res..chunk end
35 guilds = json.parse(res)
36 for i,guild in ipairs(guilds) do
37 print(decode(guild["name"]))
38 guild_ids[i] = guild["id"]
39 end
40 end
41end
42
43function findEntry(t,val)
44 for k,v in ipairs(t) do
45 if v["name"] == val then return k end
46 end
47end
48
49local channel_ids = {}
50function getChannel(item) --получить список всех каналов группы
51 local result = ""
52 headers["Authorization"]=token
53 local handle = internet.request("https://discordapp.com/api/v6/guilds/"..guild_ids[findEntry(guilds, item)].."/channels", nil, headers, 'GET')
54 for chunk in handle do result=result..chunk end
55 channels = json.parse(result)
56 for i, channel in ipairs(channels) do
57 print(decode(channel["name"]))
58 channel_ids[i] = channel["id"]
59 end
60end
61
62function getChannelMessage(item, limit) --получить указанный лимит сообщений с активного канала
63 result = ""
64 handle = internet.request("https://discordapp.com/api/v6/channels/" .. channel_ids[findEntry(channels, item)] .. "/messages?limit="..limit, nil, headers, 'GET')
65 for part in handle do result = result..part end
66 messages = json.parse(result)
67 for j, message in ipairs(messages) do
68 print(message["author"]["username"] .. ": " .. decode(message["content"]))
69 end
70end
71
72function setChannelMessage(item, message) --отправка сообщения
73 result = ""
74 local body = json.stringify({["content"]=message, ['tts']=true})
75 handle, err = internet.request("https://discordapp.com/api/v6/channels/" .. channel_ids[findEntry(channels, item)] .. "/messages", body, headers, 'POST')
76 for part in handle do result = result..part end
77 print(result)
78end
79
80
81
82doOnClick()
83getChannel('Asioron')
84getChannelMessage('general', 5)
85setChannelMessage('general', '123текструсскийблядь')
86
87