Oleh
спасибо
Billyfbrain
не за что)
Oleh
а есть логеры которые автоматически пишут в файл, если файл размером больше 1мб (например) пишет в другой файл, а когда папка больше 10ти мб, удаляет самое древнее?
Slava
этим занимаются не логеры
Slava
смотрите в сторону log rotation
Vladimir
Есть логеры, которые этим тоже занимаются
Vladimir
на go только вот не припомню, чтоб видел.
Vladimir
вот, например https://github.com/natefinch/lumberjack
Slava
а есть логеры, которые ещё и интерфейс рисуют, чтобы по ним можно было фильтровать? =)
Vladimir
Наздоровье :)
Slach
доброе утро всем вторые выходные бьюсь над проблемой есть прокол обмена данным по http и есть база данных с определенной структурой куда их надо положить протокол и базу менять не получится имеем то что имеем особенности протокола в нем часть полей приходит в таком формате il1cd1nm = "Name" il1cd2title = "Title" il10cd1author = "Title" pr10size = "15" значение индекса il и pr число, но фактически произвольное Uint8 особености базы, в структуре таблицы определены "вложенные поля" при вставке поля вложенных структур должны вставляться как массивы одинаковой длинны это надо распаковать в строку запроса вида // эту часть я уже реализовал INSERT INTO table (Struct.i_Index, Struct.p_Index, Struct.cd_Index, Struct.Name, Struct.Title) // а вот в этой проблема с тем как сформировать какую то "матрицу" на основе произвольных данных пришедших в протоколе VALUES([1,1,10,0],[0,0,0,10],[1,2,1,0].["Name",""],["","Title"])
Ivan
а есть логеры которые автоматически пишут в файл, если файл размером больше 1мб (например) пишет в другой файл, а когда папка больше 10ти мб, удаляет самое древнее?
https://github.com/ian-kent/go-log вот этот вроде умеет. Вообще вот есть список, по ссылкам можно прогуляться и выбрать, что нужно - https://github.com/avelino/awesome-go#logging
Slach
а как правильно инициализировать поля embeded структуры если я делаю композицию из указателя? https://play.golang.org/p/SCz-6aHtpK почему у меня тут выдает <nil> ? и как мне теперь правильно инициализировать Form ?
Vladimir
поэтому и nil
Vladimir
test := &ChildType{ParentType: &ParentType{Form: make(map[string][]string)}} - например так можешь
Vladimir
но стоит подумать зачем тебе вообще там указатели
Slach
так, а если ParentType это тип из другого пакета? не из main ?
Vladimir
package_name.ParentType
Slach
в смысле test := &ChildType{package_name.ParentType: &package_name.ParentType{}} так чтоли???
Slach
говорит Invalid Field Name
Vladimir
ChildType{ParentType: &package_name.ParentType{}}
Slach
о, спасибо помогло, не смог найти этого в доке и в книжке от Кернигана про embedding все показано на примере обычных типов а не указателей =(
Vladimir
так разницы нет )
Slach
ну да, но там про то как инициализировать через структурный литерал с указанием на другой пакет я не нашел
Oleh
Ребят, есть тут кто пользуеться этой либой https://github.com/bot-api/telegram ?
Oleh
чето не пойму как создать, нормально, тип telegram.AudioCfg
Oleh
он же наследуется от BaseFile
Oleh
в BaseFile эсть свойство FileID
Oleh
так вот telegram.AudioCfg{FileID:"что то"}
Oleh
ругает меня что нету такого поля
Oleh
как быть?
Oleh
интересно разобраться
Oleh
Есть автор @m0sth8
спасибо за ссылку не него)
Oleg
Могу подсказать по этой библиотечке https://github.com/olebedev/go-tgbot
Oleg
Нет, но библиотека поддерживает отправку файлов
Oleh
тогда сейчас буду пробовать)
Oleg
В ней полная поддержка апи телеграма
Oleg
тогда сейчас буду пробовать)
Ага, спрашивай если что
Мерль
Могу подсказать по этой библиотечке https://github.com/olebedev/go-tgbot
А кстати я как-то не вкурил, как в ней правильно хэндлить сообщения с файлами(картинками, стикерами, музыкой)?
Мерль
Как отправлять файлы/ссылки/ид файлов?
Нет, как получать сообщения с файлами
Oleg
Нет, как получать сообщения с файлами
Все почти полностью так как описано в апи телеграма. Разница только в тех местах где у них есть generics
Oleg
А как ты получаешь сообщения с файлами другим способом?
Мерль
Oleg
С другой либой или вообще без
Мерль
А как ты получаешь сообщения с файлами другим способом?
Обычно там тупо канал с update, а дальше switch бегает по разным вариантам
Oleg
Да, сейчас для каждого типа апдейта свой метод в роутере. Но ты можешь сам указать необходимые типы через общий метод Handle
Oleg
Так по коду все видно как это делается )
Oleg
Обычно там тупо канал с update, а дальше switch бегает по разным вариантам
https://godoc.org/github.com/olebedev/go-tgbot#Router.Handle Здесь можно казать типы апдейтов так: r.Handle(tgbot.KindMessage|tgbot.KindChannelPost, "^/start\\sstart$", func(c *tgbot.Context) error { // ... }
Oleg
Всем типам апдейтов отсюда https://core.telegram.org/bots/api#getting-updates соответствуют методы в роутере https://infinit.io/_/3kEqX8u.png
Oleg
Ну и в роутере есть еще свои методы, конечно
Мерль
http://mlexplore.org/2017/01/13/self-organizing-maps-in-go/
Мерль
Подкаст будет!
Мерль
Ееей!
Oleg
https://research.swtch.com/go2017
mixa
ребят кто нить мартини юзал в своих проектах? на более менее крупных сайтах
mixa
напишите пожалуйста стоит ли его юзать вообще?
Slava
ого
mixa
или лучше уже просто http юзать без прослоек
Slava
не стоит
Slava
мартини давно закрыли
mixa
ого
mixa
вот это да, а что сейчас для упрощения кодинга юзают? кроме гориллы
Slava
echo, chi
mixa
спасибо https://github.com/pressly/chi - вообще шикарен )
mixa
до этого момента я про него вообще не слышал
mixa
тут куча мидлварей и он позволяет их легко подключать как в библиотечках под node - express или koa
mixa
а ещё next.ServeHTTP(w, r) для следующего обработчика
mixa
вообщем дальше буду наверно его юзать )
mixa
спасибо за советы
Мерль
[last news] Gota: DataFrames, Series and Data Wrangling for Go
Мерль
http://golangweekly.com/issues/143