Alexander
нужен хелп с модулями, может кто сталкивался. пытаюсь на одном из компов собрать проект. версия go 1.15. Пытаюсь подтянуть все, что в go.mod: GO111MODULE=on go get
получаю:
go: github.com/PuerkitoBio/goquery@v1.8.0: reading github.com/PuerkitoBio/goquery/go.mod at revision v1.8.0: unknown revision v1.8.0
удаляю реквайры из go.mod, делаю go mod tidy. по каждому импорту примерно следующее выдает:
my_proj/cmd/fill-source-urls imports
github.com/tidwall/gjson: module github.com/tidwall/gjson: git ls-remote -q origin in gopath/pkg/mod/cache/vcs/b838c9496a4db3e3d0b0932b6d617c74969681e77683e24b3733b260997af297: exit status 129:
usage: git ls-remote [--heads] [--tags] [-u <exec> | --upload-pack <exec>] <repository> <refs>...
Alexander
собственно, в чем проблема может быть?
Alexander
по первой проблеме гуглил, только про приватные репозитории речь. у меня никакие приватные репо не подтягиваются
Alexander
без модулей go get package работает
Alexander
у меня нет прайват репозиториев
Alexander
вот так, до кучи поделюсь что он пытается добыть:
go: finding module for package gorm.io/gen
go: finding module for package gorm.io/gorm/clause
go: finding module for package github.com/tidwall/gjson
go: finding module for package gorm.io/gorm
go: finding module for package github.com/andybalholm/brotli
go: finding module for package golang.org/x/image/webp
go: finding module for package github.com/PuerkitoBio/goquery
go: finding module for package gorm.io/driver/mysql
go: finding module for package gorm.io/gorm/schema
go: finding module for package gorm.io/gen/field
go: finding module for package golang.org/x/image/tiff
Alexander
сам проект конечно прайват и go get'ом его даже не достанешь, ибо домен даже вымышленный. но играть не должно роли
Alexander
может гит старый?
Alexander
git version 1.7.1
Alexander
129й код это типа он не понял команду
🅞leksiy
🅞leksiy
Обнови гит
xasai.denet
Alexander
Печаль да, но я ничего не решаю
Alexander
Докер туда говорят не встаёт) готовый билженный файл сегфолтит
John
Alexander
Что это?
John
в .netrc указывается строчка вида
machine gitlab.company.ltd login my_fanny_login password my_fanny_password_token
Alexander
у меня не прайват репозитории
John
ой, сорян
Alexander
дело реально в старом гите оказалось
Alexander
слава богу
Alexander
богам
Alexander
и Ктулху
TEH3OP
Сорвал с языка про Ктулху
Maks
У меня в других стеках было тоже с гитвершн трабла)) Только гит был свежее в разы))) Но однако там юзали что то супер свежее)
Anonymous
как в го лучше с хтмл работать?
Anonymous
и как это делается?
Anonymous
я могу создать каталог темплатес и там писать хтмл, а через мейн подключить?
John
Угу
John
Хотя…
John
https://blog.jetbrains.com/go/2021/06/09/how-to-use-go-embed-in-go-1-16/
Anonymous
а как логику приконектить?
Anonymous
чтобы на кнопку логин вызывался login.go
Alexander
Alexander
в D кстати прикольно (хоть и не пробовал), что такие мощные дженерики, что темплейты на них пишутся и сразу в готовый код преобразуются как бы
Alexander
и тут должен вылезть парень, который спрашивал про то где дженерики =))
John
Alexander
хэндлер веб запроса?
Alexander
так делать не надо по коду в целом, ты можешь с помощью select из нескольких каналов прочесть
Alexander
зачем делать регистрацию в одной горутине и обмениваться информацией по каналам?
Alexander
почему в хэндлере не устраивает?
Alexander
Alexander
не понимаю, причем тут какая-то структура с 2х горутин. опиши ситуацию, что именно происходит с точки зрения логики. два запроса на регистрацию по одинаковому емейлу приходят или что?
Alexander
chReg := make(chan RegData)
chSend :=make(chan SendData)
select{
case reg := <- chReg:
...
case send := <-chSend:
...
}
Alexander
зачем заниматься рефлексией?
Alexander
ты данные хранишь все в памяти приложения?
Alexander
или у тебя это локальный кэш?
Alexander
но это же кроме эксперимента никуда не пойдет, если у тебя данные только в памяти и больше нигда
Alexander
так а зачем хранить в памяти? можно регать независимо, можно хранить кэш какой-то занятых емейлов в sync.Map или просто мапе защищенной мьютексом
в любом случае одним потоком ограничивать для всех юзеров очень странно
Alexander
ну то есть пример, который только игрушечным быть и может. не знаю зачем вообще переживать
Alexander
а так, проще использовать примитивы синхронизации (пакеты sync и atomic), чем всю бизнес логику заставлять в одной горутине выполняться
я вижу кейсы, когда можно выделить под какие-то задачи отдельные горутины, которые будут получать данные из других, и вот чтобы только они с этими данными работали. но это надо понимать зачем ты это делаешь действительно
John
ознакомься, они очень веселые и классные ребята.
туда же и context с блекджеком и прелестницами
John
может быть уже отвечал, получается у тебя memory storage?
John
т.е. key-value, - т.е. ты всегда можешь узнать был ли такой уже ключ
John
и если 2 запроса придут с одним и теми же данными, то твой экземпляр хранилища должен уже разрулить ситуацию коллизии
John
таким образом пресечешь гонку данных
John
я может чегото не понимаю, но насколько корректно использовать каналы для решения вышеуказанного кейса?
Anonymous
можете подсказать
как залогиниться на сайт через го?
Maks
смотри в сторону сессий
Maks
по токену например
Вал
Anonymous
хорошо, спасибо
John
Anonymous
нет, мне нужно сделать постоянный логин и парсить кое какие данные
John
подробнее
John
тебе нужно авторизация в своём коде или как?
Anonymous
через го надо залогиниться и парсить данные через тг бота
Anonymous
проблема с логином на сайте через го
John
ок
Alexander
Не понял ответ. Ты хочешь на чужой сайт залогиниться или в своём реализовать логин?
John
логинешься и очень бережно сохраняешь заголовки ответа от сервера - куки, токены или что там используется, и при последующих запросах передаёшь на сервер данные
John
имитация браузера
Anonymous
John
так же предусмотри race-limit, а то забанят
John
в общем, изучи поведение сервера через браузер, что возвращает сервер, что требует
John
потом на го переносишь всю логику имитации
Anonymous
Anonymous
не логиниться миллион раз
Alexander
на чужой сайт
Ну тогда повторяй логику запросов из браузера и держи куки пока "пользуешься" чужим сайтом