Alex
скорее всего так как это get то в url строке ожидалось что то вроде этого
'https://api.exmo.com/v1/user_info?nonce=any'
Anatoliy
Хотя видимо необязательно это должно быть время юникс да и еще в миллисекундах, там в документации такие строки есть: "All the requests should also include the obligatory POST parameter ‘nonce’ with incremental numerical value (>0). The incremental numerical value should never reiterate or decrease."
Сразу необратил внимание, то есть видимо nonce это просто счетчик который в каждом запросе просто должен быть больше чем в предыдущем
Anatoliy
А вот дальше уже сложнее, там у них в headers надо еще добавить элемент Sign , т.е. headers = {Key='MyAPIKey', Sign=....}
Где ... - цифровая подпись поторую надо создать самому с помощью закрытого API ключа, в строке Key='MyAPIKey' - это был открытый ключ никак незашифрованный,
У них в примере на пифоне код http запроса выглядит так:
Anatoliy
import httplib
import urllib
import json
import hashlib
import hmac
import time
api_key = "your_key"
api_secret = "your_secret"
nonce = int(round(time.time()*1000))
params = {"nonce": nonce}
params = urllib.urlencode(params)
H = hmac.new(api_secret, digestmod=hashlib.sha512)
H.update(params)
sign = H.hexdigest()
headers = {"Content-type": "application/x-www-form-urlencoded",
"Key":api_key,
"Sign":sign}
conn = httplib.HTTPSConnection("api.exmo.com")
conn.request("POST", "/v1/user_info", params, headers)
response = conn.getresponse()
print response.status, response.reason
print json.load(response)
conn.close()
Anatoliy
Как я вижу шифрование идёт в строках
H = hmac.new(api_secret, digestmod=hashlib.sha512)
H.update(params)
sign = H.hexdigest()
Anatoliy
по этим функциям пифона мануал найти несложно, например https://docs.python.org/3/library/hmac.html
Только вот как это всё реализовать в луа?
Alex
Alex
ну первое что вам нужно это библиотека для hash
Alex
точно сейчас не вспомню но она есть
Alex
вообще это просто поизите такие же библиотеки хэширования для lua
Alex
hmac
hashlib
Alex
просто помсотрите какой метод хэширования выполняет та и другая lib'а и поищите аналоги на lua
Alex
и проделаете теже самые функции (зачастую они одинаково называются)
Anatoliy
Anatoliy
Мне как человеку в криптографии ничерта несоображающему конечно же сразу же должно быть все ясно после этих строчек
Anatoliy
Можно сделать как в примере -
local digest = require("hashings.sha256")
print(digest:new("Hello"):hexdigest())
И получить хэш-сумму нужной строки заменив "Hello", и подключив нужный алгоритм вместо SHA256 в строчке require
Anatoliy
Но только этого мало - нужно потом еще обработать полученный по алгоритму SHA-512 хэш еще и с помощью Hmac, а как это сделать нихр-на не понятно
Aleksandr
Пробовал кто ембедить lua от iponweb ?
Highly Likely
Думаю @igelhaus пробовал :-)
Anton
Aleksandr
а либы почуствуют замену ?
Anton
Если библиотеки используют только стандартный Lua C API для взаимодействия с виртуальной машиной Lua, то нет.
Serhii
Кто-то работал с LuaBridge?
Serhii
Как мне передать в луа объект плюсов?
Например, структуру
Допустим
struct S
{
int x;
int y;
};
S foo;
Как мне передать в луа foo
Aleksandr
Serhii
Serhii
Aleksandr
После обеда скажу щас митинги
Serhii
или я как-то не так понял
Aleksandr
щас обеденое время и в обеденое время митинг
Aleksandr
@tumbris это один из спсобов сделать то что тебе надо https://gist.github.com/kotbegemot/728c6793893244b1bbbbe801f4a3b570
Александр
Александр
Serhii
Snusmumriken
Но это sol, на чистых луях это тоже более чем реализуется.
Snusmumriken
Просто выдашь userdata, вешаешь на неё метатаблицу с __index
Александр
У меня кстати товарищ интересовался, есть ли хорошие биндинги луа к дельфи. Может кто-то по своему опыту посоветует? Да-да, дельфи
mva
а есть уже какой-нибудь простенький алгоритм для нарезания таблички на пучок более мелких через каждые N записей в первоначальной?
mva
а то что-то не хочется изобретать велосипед, а гугл по поводу сплиттинга выдаёт немного не то
Snusmumriken
Довольно специфичная задача, надо мапать.
Snusmumriken
Или изобретать велосипед : )
Snusmumriken
А, да.
Snusmumriken
Ну типа вот.
https://github.com/danieleteti/lua4delphi
Сомнительно что кто-то пробовал (кейс пусть и нормальный, но надо сначала найти делфятника).
Snusmumriken
Кстати, надо бы потереть deleted account'ы.
mva
mva
114 local orders = {}
115 local otcn = { "date","place","op","sum","detail" } -- order table column names
116 for i,v in ipairs(fpt) do
117 › local row = math.floor((i-1)/5)+1;
118 › local col = math.fmod(i,5);
119 › › if col == 0 then col = 5 end
120 › local colname = otcn[col];
121 › orders[row] = orders[row] or {};
122 › orders[row][colname] = v:getcontent();
123 end
mva
такой вот велосипед получился
mva
пока не вижу путей улучшения, но чувствую что какашка >_>
// особенно мне не нравятся костыли по рихтованию результатов floor и fmod
Snusmumriken
Что должно быть на входе, а что на выходе?
Snusmumriken
У тебя есть заголовок { "date","place","op","sum","detail" }
и список {
"22.22.2222", "place1", "op1", "100500", "blabla1",
"33.33.3333", "place2", "op2", "100501", "blabla2",
}
И надо трансформировать в
{
{
date = "22.22.2222",
place = "place1",
op = "op1",
summ = "100500",
detail = "blabla1"
},
{
date = "33.33.3333",
place = "place2",
op = "op2",
summ = "100501",
detail = "blabla2"
},
}?
Snusmumriken
mva
mva
я думал в эту сторону, но не дошёл в размышлениях именно до такого варианта :)
Snusmumriken
Ща накатаю предельно оптимизированный по скорости вариант.
mva
У тебя есть заголовок { "date","place","op","sum","detail" }
и список {
"22.22.2222", "place1", "op1", "100500", "blabla1",
"33.33.3333", "place2", "op2", "100501", "blabla2",
}
И надо трансформировать в
{
{
date = "22.22.2222",
place = "place1",
op = "op1",
summ = "100500",
detail = "blabla1"
},
{
date = "33.33.3333",
place = "place2",
op = "op2",
summ = "100501",
detail = "blabla2"
},
}?
ну, на самом деле, это не заголовок, а табличка с именами "колонок" (т.е. "как обзываться полям в orders[row]) :)
mva
но суть та же, да
mva
я граблю html-таблицу, пропуская её заголовок, а потом знчение ячеек в строке поколоночно распихиваю в табличку
mva
получается чтото типа такого
mva
// да, у электронной системы контроля посещаемости и питания детей нету API и приходится вручную костылять доставание нужной информации оттуда >_>
mva
хочу, вот, сделать TG-бота, который будет рассказывать что ребёнок поел и когда пора бабла на карточку закинуть >_>
Anonymous
/help@FailsBot
FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.
FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.
Anatoliy
Ребята всем привет, тут кто нибудь занимался созданием с последующим компилированием в dll либ на Си с экспортируемыми для Луа функциями? Я так понимаю что такие люди тут есть, нужна помощь
Anatoliy
Вообщем вот такой код: https://pastebin.com/Eknm1exp
Anatoliy
делал всё один в один по образцу https://quik2dde.ru/viewtopic.php?id=18
Anatoliy
И не компилится ничего, все время лупит ошибки: