@proGO

Страница 352 из 1674
Maxim
20.12.2016
22:32:31
Окей, неплохо: (*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 })
Теперь бы понять как к такому виду любой контент приводить для отправки/правки

Tsundershark
20.12.2016
22:46:44
Что-то учитывая построение DOM у меня есть ощущение, что это API сильно для тех, кто хочет свой редактор с публикацией в Telegraph сделать

Не руками же действительно с DOM работать

Maxim
20.12.2016
23:11:47
Не руками же действительно с DOM работать
Вот я думаю как запилить парсер, который бы некий набор символов или байты переводил в DOM-совместимый с API документ

Google
Maxim
20.12.2016
23:14:14
Лучшее я пока не придумал. Да, наверное, оно и не надо в либе-то заточеный под коннект чего-то с API телеграфа

Tsundershark
20.12.2016
23:14:49
Так это уже на отдельный проект тянет. И скорее всего уже делали на Go

Maxim
21.12.2016
00:08:25
Окей, в принципе перевести байты/строку в ноду не так уж и сложно, но как его перевести в параметр запроса...

Блин, я сдаюсь на сегодня. Пока что такое паническое говно выходит: func TestParse(t *testing.T) { _, resp, err := fasthttp.Get(nil, "https://blog.toby3d.ru/telegram-tutorial") if err != nil { t.Error(err) } node, err := html.Parse(bytes.NewReader(resp)) if err != nil { t.Error(err) } convert(node) } func convert(n *html.Node) { var nodeElement []NodeElement if n.Type == html.ElementNode && strings.ContainsAny(n.Data, "a || aside || b || blockquote || br || code || em || figcaption || figure || h3 || h4 || hr || i || iframe || li || ol || p || pre || s || strong || u || ul || video") { for i, a := range n.Attr { if a.Key == "href" || a.Key == "src" { el := NodeElement{} el.Tag = n.Data el.Attrs[i].Key = a.Key el.Attrs[i].Val = a.Val nodeElement = append(nodeElement, el) break } } } for c := n.FirstChild; c != nil; c = c.NextSibling { dlog.Ln(nodeElement) convert(c) } }

Понятия не имею что за лапшу я написал, но если кто поможет - буду рад. Ну а сейчас я - спать.

К сожалению существует лишь один официальный пример конвертации и то на жабаскрипте, который я понимаю чуть более чем никак: http://telegra.ph/api#Content-format

По факту сейчас конвертация string/bytes в node (что легко), а затем node в json (на чем Я застрял) - единственное что сейчас останавливает меня от релиза библиотеки. ?

53r63rn4r
21.12.2016
01:36:37
Ну тебе по сути текст нужно раскидать в мапу

Так?

Maxim
21.12.2016
01:37:24
Ну тебе по сути текст нужно раскидать в мапу
Не только текст. Может быть и видео, и картинки с подписями, ифреймы с твитами или плеером.

Google
53r63rn4r
21.12.2016
01:37:54
Эм.. Если жсон, то там ключ-значение

Maxim
21.12.2016
01:38:10
53r63rn4r
21.12.2016
01:38:32
Я понял

Но не увидел трудности

Ну тебе по сути текст нужно раскидать в мапу
Т.к. уже ответил что тебе нужно сделать

Скормить эту строку

Я не знаю есть ли в го библиотека для работы с жсоном

Maxim
21.12.2016
01:39:48
Скормить эту строку
У меня не строка, а нод

53r63rn4r
21.12.2016
01:39:57
Еслм нет, то напиши свою

53r63rn4r
21.12.2016
01:40:33
Ну.. И??..

В чем тогда проблема?

А потом просто ходишь по ключам и достаешь значения

Хз в чем сложность

Или что ты хочешь в конечном итоге? Мб я тебя не правильно понял

53r63rn4r
21.12.2016
01:47:07
А почему ты понятия не имеешь что пишешь? Разве ты не тестишь что пишешь в процессе написания?

53r63rn4r
21.12.2016
01:47:43
Просто это обычная практика особенно когда пишут парсеры

Для справки - я пытаюсь запрошенную страницу из своего блога конвертнуть в JSON примерно такого вида (см. объект "content"): https://api.telegra.ph/getPage/toby3d-test-12-20?return_content=true
Просто то что вижу это жсон, подозреваю что нужно ходить по думу и вытаскивать нужное, хз, я питонист, не голангист и логику понимаю, но на твоем-родном помочь не могу, увы

Google
Sergey
21.12.2016
07:33:19
@toby3d так и не разобрался?

Evgeny
21.12.2016
09:01:28
Есть тут те, кому нужны go и pl\pgpsql разработчики, с небольшим (около года) опытом в go, но приличным опытом в других языках? Сории, если оффтоп.

Ilnar
21.12.2016
09:03:49
в каких других языках?

город?

ros
21.12.2016
09:04:50
русский и матерный русский

Evgeny
21.12.2016
09:06:45
город?
Москва

Ilnar
21.12.2016
09:07:28
у меня таких языков нет, сожалею

Evgeny
21.12.2016
09:07:52
Delphi, C#, Java, T-SQL
и JavaScript еще )

Aleksei
21.12.2016
09:15:24
народ, кто знает как в fasthttp увеличить MaxRequestBodySize?

Vladislav
21.12.2016
09:16:17
Архитектура ассемблера Go⁠ ? перевод ? Хабрахабр:  Блог компании Badoo, C, Go, Компиляторы, Программирование Привет, Хабр! Меня зовут Марко Кевац, я системный программист Badoo в команде «Платформа», и я очень люблю Go. Если сложить эти две вещи, то вы поймёте, насколько я люблю ассемблер в Go. Совсем недавно мы рассказывали на Хабре о том, на каких конференциях побывали. Одной из них была GopherCon 2016, где практически всем запомнился доклад Роба «Командира» Пайка про Go-шный ассемблер. Представляю вам перевод его доклада, оформленный в виде статьи. Я постарался дать в тексте как можно больше ссылок на релевантные статьи в «Википедии». Автор оригинала: Rob Pike Читать далее ➡ https://shbr.xyz/hh317864

Roman
21.12.2016
09:25:39
Нахрена ассемблер в go?

Ilnar
21.12.2016
09:31:02
Нахрена ассемблер в go?
ой, действительно что-то про ассемблер, но надеюсь не про эмбеддинг асм кода

Maxim
21.12.2016
11:31:15
Кто там говорил что мне уже работать за деньги с Go можно? Я все ещё слишком туп для полноценного оперирования языком, как это делает @kirilldanshin, например. ?

Судзумия
21.12.2016
12:10:45
Стажером иди

Maxim
21.12.2016
12:11:46
Стажером иди
Мне выбраться некуда.

Nikolay
21.12.2016
12:12:02
Удалённо

Sergey
21.12.2016
12:12:12
удалённо не очень берут

я бы тоже пошёл

Google
Alice
21.12.2016
12:12:39
Учил бы жабу или бидон то сразу бы работу нашел.

Nikolay
21.12.2016
12:12:53
Пока будешь ждать познания дзена в языке - другие будут работать абы как

Удалённо не очень берут куда?

Maxim
21.12.2016
12:15:38
привет
Ку, Я только проснулся.

Завтра нам электроенергию вырубят, а мне надо как-то допилить либу уже.

Sergey
21.12.2016
12:16:10
Удалённо не очень берут куда?
Всюду. Не очень берут всюду на стажировку удалённого сотрудника

Kirill
21.12.2016
12:16:12
народ, кто знает как в fasthttp увеличить MaxRequestBodySize?
помог лично. есичо, там нужно свой fasthttp.Server инстанцировать.

Subbotin
21.12.2016
12:16:21
я прогаю на го за деньги.

Admin
ERROR: S client not available

Kirill
21.12.2016
12:16:23
я прогаю на го за деньги.
я бы тоже хотел за деньги, а не за убытки или бесплатно

Судзумия
21.12.2016
12:16:56
Удалённо
Ну, удалённо на стажера не берут обычно

Sergey
21.12.2016
12:17:19
угу

Subbotin
21.12.2016
12:17:22
Maxim
21.12.2016
12:18:45
чо? О.о
Плановые внеплановые работы.

hamper ?
21.12.2016
12:26:24
вопрос такой, я что то слегка забыл, строки в го посимвольно сравниваются? в плане >, <

то есть если я буду сравнивать время "15:46:23" > "05:21:52" это нормально?

Никита
21.12.2016
12:28:25
строки везде сравниваются одинакого - больше то, у кого найдется первый символ с кодом больше время так сраннивать нельзя

https://golang.org/pkg/time/

Google
Судзумия
21.12.2016
12:29:06
Никита
21.12.2016
12:29:07
в частности сравнить можно так https://golang.org/pkg/time/#Time.After

hamper ?
21.12.2016
12:29:21
Нормально, но только если в пределах дня
ну мне именно в пределах дня и нужно

Maxim
21.12.2016
12:29:23
то есть если я буду сравнивать время "15:46:23" > "05:21:52" это нормально?
Строки сравниваются по содержимому, который может быть равен или не равен другой строке.

Судзумия
21.12.2016
12:29:41
ну мне именно в пределах дня и нужно
Следи тогда, чтобы ведущие нули присутствовали

Maxim
21.12.2016
12:29:43
Насколько Я знаю.

Никита
21.12.2016
12:30:31
приведи в формат времени и используй библиотеку для времени, потом начнешь сравнивать из разных дней и голову сломаешь )

hamper ?
21.12.2016
12:32:09
приведи в формат времени и используй библиотеку для времени, потом начнешь сравнивать из разных дней и голову сломаешь )
мне нужно именно в пределах дня, то есть у меня задан диапазон например с 02:15:45 по 12:43:23 и мне надо проверить что текущее время попадает в диапазон

Никита
21.12.2016
12:33:09
мне нужно именно в пределах дня, то есть у меня задан диапазон например с 02:15:45 по 12:43:23 и мне надо проверить что текущее время попадает в диапазон
просто у строго типизированного языка типы придуманы не для того, чтобы время сравнивать как строки.

hamper ?
21.12.2016
12:33:28
я вот еще думал про strconv.Atoi(time.Now().Format("150405"))

просто у строго типизированного языка типы придуманы не для того, чтобы время сравнивать как строки.
ну если сравнивать тип времени мне тогда надо будет переводить диапазоны во время (они заданы как раз строками в конфиге) и потом сравнивать отдельно часы, минуты и секунды

учитывая что строки нигде не вводятся вручную а генерятся думаю сравнивать их как строки будет проще

Subbotin
21.12.2016
12:36:24
из разного дня тоже все сравнивается нормально

hamper ?
21.12.2016
12:36:56
из разного дня тоже все сравнивается нормально
и как тогда правильно узнать что текущее время попадает в диапазон?

Subbotin
21.12.2016
12:37:10
есть формат RFC3339 (кстати он в го по-умолчанию используется как строковое представление времени)

Никита
21.12.2016
12:37:14
ctqxfc z nt,t crbye gktquhfeyl

сейчас плейграунд запилю

Subbotin
21.12.2016
12:38:11
и как тогда правильно узнать что текущее время попадает в диапазон?
если строка с временем в этом формате больше начала диапазона но меньше конца - попадает

hamper ?
21.12.2016
12:38:39
https://play.golang.org/p/KmPRC7G8r0

Subbotin
21.12.2016
12:39:05
но вообще так конечно делать не круто

hamper ?
21.12.2016
12:39:06
а тут вот некоторые считают что строки сравнивать неправильно

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