init: mvp
This commit is contained in:
commit
e307989b9f
20 changed files with 835 additions and 0 deletions
86
internal/clicker/clicker.go
Normal file
86
internal/clicker/clicker.go
Normal file
|
@ -0,0 +1,86 @@
|
|||
package clicker
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/cookiejar"
|
||||
"net/url"
|
||||
"sync"
|
||||
|
||||
"github.com/wzrayyy/tappin/internal/entity/boosts"
|
||||
"github.com/wzrayyy/tappin/internal/entity/config"
|
||||
"github.com/wzrayyy/tappin/internal/entity/upgrades"
|
||||
"github.com/wzrayyy/tappin/internal/entity/user"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
type Clicker struct {
|
||||
client *http.Client
|
||||
authKey string
|
||||
baseUrl *url.URL
|
||||
clickerConfig *config.Response
|
||||
user *user.Response
|
||||
boosts *boosts.Response
|
||||
upgrades *upgrades.Response
|
||||
telegramUserID int
|
||||
errorGroup errgroup.Group
|
||||
|
||||
locks struct {
|
||||
User sync.RWMutex
|
||||
Boosts sync.RWMutex
|
||||
Config sync.RWMutex
|
||||
Upgrades sync.RWMutex
|
||||
}
|
||||
|
||||
channels struct {
|
||||
Update EmptyChannel
|
||||
Tap EmptyChannel
|
||||
Upgrade EmptyChannel
|
||||
Global EmptyChannel
|
||||
}
|
||||
|
||||
Config Config
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
UpdateFrequency int
|
||||
TapsPerSecond int
|
||||
TapInterval int
|
||||
}
|
||||
|
||||
func NewClicker(auth_key string, user_id int, config Config) (*Clicker, error) {
|
||||
c := new(Clicker)
|
||||
|
||||
var err error
|
||||
|
||||
c.client = new(http.Client)
|
||||
c.client.Jar = new(cookiejar.Jar)
|
||||
c.authKey = auth_key
|
||||
c.telegramUserID = user_id
|
||||
|
||||
c.baseUrl, err = url.Parse(apiEndpoint)
|
||||
if err != nil {
|
||||
return c, err
|
||||
}
|
||||
|
||||
c.Config = config
|
||||
|
||||
return c, c.Update()
|
||||
}
|
||||
|
||||
func (c *Clicker) Tick() {
|
||||
c.locks.Config.Lock()
|
||||
c.clickerConfig.Tick()
|
||||
c.locks.Config.Unlock()
|
||||
|
||||
c.locks.User.Lock()
|
||||
c.user.Tick()
|
||||
c.locks.User.Unlock()
|
||||
|
||||
c.locks.Boosts.Lock()
|
||||
c.boosts.Tick()
|
||||
c.locks.Boosts.Unlock()
|
||||
|
||||
c.locks.Upgrades.Lock()
|
||||
c.upgrades.Tick()
|
||||
c.locks.Upgrades.Unlock()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue