@proGO

Страница 351 из 1674
Maxim
20.12.2016
20:06:07
фанк
што?

Google
Sergey
20.12.2016
20:06:54
Response struct { Ok bool `json:"ok"` Error string `json:"error"` Result json.RawMessage `json:"result"` }
я мб покажусь странным, но не прощи ли type Response struct { Ok bool `json:"ok"` Error string `json:"error"` Result SomeStruct`json:"result"` }

corpix
20.12.2016
20:06:56
В избыточности в этом месте нет ничего плохого, это даже правильно(на мой взгляд)

Maxim
20.12.2016
20:07:27
Sergey
20.12.2016
20:07:58
не дописал

а ты уже ответил

ладно

понял

а чё, дженерики так и не завезли?)

Kirill
20.12.2016
20:11:55
а чё, дженерики так и не завезли?)
не. они не раньше 2.0 же.

Sergey
20.12.2016
20:12:23
а когда они 2.0 анонсировали? в 17 году хоть? или ещё даже не говорили?

Kirill
20.12.2016
20:12:42
сроки не озвучивали еще, насколько мне известно

Sergey
20.12.2016
20:12:50
эх

Kirill
20.12.2016
20:12:51
а цель у них — 1.8 выпустить к февралю

Google
Maxim
20.12.2016
20:13:17
Но, опять же, яхз как это делать

corpix
20.12.2016
20:13:55
Из функции нельзя будет такое вернуть, потому что нет дженериков :)

Только interface{} и type switch

Maxim
20.12.2016
20:14:28
Только interface{} и type switch
Ну окей, даже если так, то как?

corpix
20.12.2016
20:15:39
Ну например func Foo() interface{} { return ... } func main() { switch Foo().(type) { case Account: ... } }

А зачем тебе это значение куда-то возвращать? Что ты с ним хочешь сделать?

А, вижу, получается ты хочешь декодить ответ в одном месте

Maxim
20.12.2016
20:20:03
А зачем тебе это значение куда-то возвращать? Что ты с ним хочешь сделать?
Оперировать с ним дальше, юзать как метод и так далее

corpix
20.12.2016
20:22:23
Оперировать с ним дальше, юзать как метод и так далее
Мне кажется что можно сделать примерно так type Result struct { Error string `json:"error"` Ok bool `json:"ok"` } type Account struct { Result User string ... }И в конкретной функции, которая работает с аккаунтом декодить ответ именно в Account

А в либе про телеграм ботов, которую ты в стриме смотрел, сделано через json.RawMessage https://github.com/go-telegram-bot-api/telegram-bot-api/blob/0a95dda18a4e3794bc37e293573c3abc2151c5ff/types.go#L16 И дополнительный unmarshal внутри каждой функции, отвечающей за конкретную сущность(например message) https://github.com/go-telegram-bot-api/telegram-bot-api/blob/0a95dda18a4e3794bc37e293573c3abc2151c5ff/bot.go#L98 Впринципе разумный способ

mixa
20.12.2016
20:50:56
что за беда: panic: runtime error: index out of range goroutine 1 [running]: panic(0x683640, 0x1274c008) if len(a) > 3 { ss = a[len(a)-3] //ругается на эту строку sh = a[len(a)-2] sf = a[len(a)-1] }

как?

как там может быть оут оф ренж

Kirill
20.12.2016
20:53:05
ты хоть в playground закинь

mixa
20.12.2016
20:59:04
сложно блин (

Kirill
20.12.2016
20:59:15
ничего

mixa
20.12.2016
20:59:18
слишком много говнокода

просто хочется задушить его автора

)

Google
Kirill
20.12.2016
21:03:25
самоубийство — не выход, одумайся

Maxim
20.12.2016
21:26:08
Так, новый вопрос - что за формат DOM такой, и как генерировать контент на его основе?

Alice
20.12.2016
21:26:51
Очень даже выход

Maxim
20.12.2016
21:39:19
Так, новый вопрос - что за формат DOM такой, и как генерировать контент на его основе?
Окей, что это такое я понял. Но может есть библиотеки которые могут мне помочь с генерацией контента в этом формате? В Awesome я беглым взглядом не нашёл

Maxim
20.12.2016
21:42:01
Серьёзно?

Kirill
20.12.2016
21:42:48
нет, я тебя троллю

Maxim
20.12.2016
21:43:59
Я довольно наивный человек, что б ты знал.

Kirill
20.12.2016
21:44:40
нет, я тебя троллю
тогда объясню — вот это был сарказм

ручками, товарищ
а это было серьезно

Maxim
20.12.2016
21:45:03
Ладно, попробую придумать что-нибудь

Kirill
20.12.2016
21:45:35
один цикл же, в чем проблема?

Maxim
20.12.2016
21:46:24
Kirill
20.12.2016
21:46:33
Maxim
20.12.2016
21:46:40
Какой цикл?

Kirill
20.12.2016
21:47:12
обычный

исходя из того, что ты показывал — цикл

Maxim
20.12.2016
21:47:28
Ты опять меня запутал

Kirill
20.12.2016
21:47:45
тогда забудь и не запутывайся ?

Google
Maxim
20.12.2016
21:58:25
тогда забудь и не запутывайся ?
Но мне надо имплементировать это.

Моя библиотека должна конвертить некую страницу в DOM-формат и отправлять это в параметре. Причём вес содержимого не должен превышать 64кб

В доках есть пример через жабаскрипт, но у меня же либа на го

Кстати, закон подлости - как набирается 500 человек, так обязательно кто-то ливает и ломает комбо

Sergey
20.12.2016
22:01:05
ну всё ещё 500

Kirill
20.12.2016
22:01:16
Sergey
20.12.2016
22:01:41
гы, переключил чаты - угу, 498

Admin
ERROR: S client not available

Sergey
20.12.2016
22:02:19
да и хорошо, не надо много народа, а то флуд будет

Kirill
20.12.2016
22:02:30
да ладно

в goodlang'е мало народа

27 человек

Sergey
20.12.2016
22:03:06
в слаке кидал ссыль?

Kirill
20.12.2016
22:03:12
нет

меня там нет

Sergey
20.12.2016
22:05:05
надо закинуть будет

кому-нибудь из контрибьюторов

Kirill
20.12.2016
22:06:07
да пока я с мапами на разобрался аргументов за goodlang особо-то и нет

Maxim
20.12.2016
22:24:46
Напомните мне, как логировать текущий уровень структуры и все дочерние с дочерними и так далее?

%#v показывает текущий уровень + дочерние и всё, ниже не хотит

Google
Kirill
20.12.2016
22:25:37
dlog'ом.

Maxim
20.12.2016
22:25:53
dlog'ом.
А без него прям никак, да?

Ну не хочу я сейчас возиться с подрубанием ещё одной либы

Kirill
20.12.2016
22:26:12
А без него прям никак, да?
можешь пойти и посмотреть, как там сделано

ну, как

можешь пойти и скопировать код рекурсивного прохода

если получится

не просто так же я dlog пилю

Maxim
20.12.2016
22:28:00
у тебя выбора нет
Ну ок, подключил я. Как готовить?

Есть структура контента, в нём несколько дочерних, в которых ещё что-то лежит

Kirill
20.12.2016
22:28:21
dlog.D() делает то, что ты описал

только go build -tags "debug"

иначе там no-op

Maxim
20.12.2016
22:29:12
только go build -tags "debug"
У меня либа + тесты. Чего билдить-то?

иначе там no-op
dlog.D(page) ничего не показывает.

Kirill
20.12.2016
22:29:53
Maxim
20.12.2016
22:31:27
go test -v -tags="debug"
Окей, неплохо: (*telegraph.Page)(0xc4203d7ea0)({ Path: (string) (len=17) "toby3d-test-12-20", URL: (string) (len=35) "http://telegra.ph/toby3d-test-12-20", Title: (string) (len=11) "toby3d test", Description: (string) (len=515) "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sodales consectetur pulvinar. Pellentesque diam ligula, tincidunt sed urna sit amet, vehicula bibendum ex. Ut a magna tincidunt ante egestas finibus. Aenean feugiat ipsum et ipsum aliquam, in malesuada turpis gravida. Suspendisse non odio sagittis sapien fermentum pretium. Ut magna magna, finibus venenatis ultrices at, convallis ac dui. Donec auctor tincidunt ipsum quis mollis. Morbi ut tortor vel tortor pretium tincidunt. Maecenas vel erat at…", AuthorName: (string) "", AuthorURL: (string) "", ImageURL: (string) "", Content: ([]telegraph.Node) (len=4 cap=4) { (*html.Node)(0xc4202d6af0)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }), (*html.Node)(0xc4202d6bd0)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }), (*html.Node)(0xc4202d6c40)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }), (*html.Node)(0xc4202d6cb0)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }) }, Views: (int) 1, CanEdit: (bool) false })

Окей, неплохо: (*telegraph.Page)(0xc4203d7ea0)({ Path: (string) (len=17) "toby3d-test-12-20", URL: (string) (len=35) "http://telegra.ph/toby3d-test-12-20", Title: (string) (len=11) "toby3d test", Description: (string) (len=515) "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sodales consectetur pulvinar. Pellentesque diam ligula, tincidunt sed urna sit amet, vehicula bibendum ex. Ut a magna tincidunt ante egestas finibus. Aenean feugiat ipsum et ipsum aliquam, in malesuada turpis gravida. Suspendisse non odio sagittis sapien fermentum pretium. Ut magna magna, finibus venenatis ultrices at, convallis ac dui. Donec auctor tincidunt ipsum quis mollis. Morbi ut tortor vel tortor pretium tincidunt. Maecenas vel erat at…", AuthorName: (string) "", AuthorURL: (string) "", ImageURL: (string) "", Content: ([]telegraph.Node) (len=4 cap=4) { (*html.Node)(0xc4202d6af0)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }), (*html.Node)(0xc4202d6bd0)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }), (*html.Node)(0xc4202d6c40)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }), (*html.Node)(0xc4202d6cb0)({ Parent: (*html.Node)(<nil>), FirstChild: (*html.Node)(<nil>), LastChild: (*html.Node)(<nil>), PrevSibling: (*html.Node)(<nil>), NextSibling: (*html.Node)(<nil>), Type: (html.NodeType) 0, DataAtom: (atom.Atom) , Data: (string) "", Namespace: (string) "", Attr: ([]html.Attribute) <nil> }) }, Views: (int) 1, CanEdit: (bool) false })
http://telegra.ph/toby3d-test-12-20

Страница 351 из 1674