Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
RoyXiang committed Mar 13, 2022
2 parents 15ee0d8 + 7933559 commit 0211574
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 19 deletions.
1 change: 1 addition & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ build:
- CGO_ENABLED=0
ldflags:
- -s -w
- -X "main.Version={{ .Version }}"
flags:
- -trimpath

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ require (
github.com/gorilla/websocket v1.5.0 // indirect
)

replace github.com/jrudio/go-plex-client v0.0.0-20220106065909-9e1d590b99aa => github.com/RoyXiang/go-plex-client v0.0.0-20220311080534-974eae4cd6e6
replace github.com/jrudio/go-plex-client v0.0.0-20220106065909-9e1d590b99aa => github.com/RoyXiang/go-plex-client v0.0.0-20220313053419-e24ff7ada173
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/RoyXiang/go-plex-client v0.0.0-20220311080534-974eae4cd6e6 h1:qO7fjWR3T7kmiXMjSX3lKMROzNCEe00d6DeBFwV1rgw=
github.com/RoyXiang/go-plex-client v0.0.0-20220311080534-974eae4cd6e6/go.mod h1:twidbPLE4eUk3CgDno5uCzpnPRboBTElH+iJrQO7S4w=
github.com/RoyXiang/go-plex-client v0.0.0-20220313053419-e24ff7ada173 h1:/GJ+g7nvyg3HjY+J4p5Ag+TUoWjIrJxpHWzdbA4Phzw=
github.com/RoyXiang/go-plex-client v0.0.0-20220313053419-e24ff7ada173/go.mod h1:twidbPLE4eUk3CgDno5uCzpnPRboBTElH+iJrQO7S4w=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
Expand Down
29 changes: 14 additions & 15 deletions handler/plex.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,12 @@ func (c *PlexClient) fetchUsers(token string) {
c.MulLock.Lock(lockKeyUsers)
defer c.MulLock.Unlock(lockKeyUsers)

var user plexUser
ctx := context.Background()
cacheKey := fmt.Sprintf("%s:token:%s", cachePrefixPlex, token)
isCacheEnabled := redisClient != nil

if isCacheEnabled {
var user plexUser
err := redisClient.Get(ctx, cacheKey).Scan(&user)
if err == nil {
c.users[token] = &user
Expand All @@ -185,7 +185,7 @@ func (c *PlexClient) fetchUsers(token string) {

userInfo := c.GetAccountInfo(token)
if userInfo.ID > 0 {
user = plexUser{
user := plexUser{
Id: userInfo.ID,
Username: userInfo.Username,
}
Expand All @@ -199,7 +199,7 @@ func (c *PlexClient) fetchUsers(token string) {
response := c.GetSharedServers()
if response != nil {
for _, friend := range response.Friends {
user = plexUser{
user := plexUser{
Id: friend.UserId,
Username: friend.Username,
}
Expand Down Expand Up @@ -257,31 +257,30 @@ func (c *PlexClient) syncTimelineWithPlaxt(r *http.Request, user *plexUser) {
return
}

var viewOffset int
var err error
if viewOffset, err = strconv.Atoi(playbackTime); err != nil {
return
}

sessionKey, session := c.getPlayerSession(clientUuid, ratingKey)
if session == nil || session.status == sessionWatched {
if session == nil {
return
}
lockKey := fmt.Sprintf("plex:session:%s", sessionKey)
c.MulLock.Lock(lockKey)
defer c.MulLock.Unlock(lockKey)

originalSession := *session
progress := int(math.Round(float64(viewOffset) / float64(session.metadata.Duration) * 100.0))
if progress == 0 {
if session.status == sessionWatched {
return
}
viewOffset, err := strconv.Atoi(playbackTime)
if err != nil {
return
} else if viewOffset == 0 {
if session.progress >= watchedThreshold {
// time would become 0 once a playback session was finished
progress = 100
viewOffset = session.metadata.Duration
} else if session.status != sessionUnplayed {
return
}
}
originalSession := *session
progress := int(math.Round(float64(viewOffset) / float64(session.metadata.Duration) * 100.0))

externalGuids := make([]plexhooks.ExternalGuid, 0)
if session.guids == nil {
Expand Down Expand Up @@ -375,7 +374,7 @@ func (c *PlexClient) syncTimelineWithPlaxt(r *http.Request, user *plexUser) {
},
}
b, _ := json.Marshal(webhook)
resp, err := c.client.DownloadClient.Post(c.plaxtUrl, "application/json", bytes.NewBuffer(b))
resp, err := c.client.HTTPClient.Post(c.plaxtUrl, "application/json", bytes.NewBuffer(b))
if err != nil {
common.GetLogger().Printf("Failed on sending webhook to Plaxt: %s", err.Error())
return
Expand Down
6 changes: 5 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ import (
"github.com/RoyXiang/plexproxy/handler"
)

var (
Version string
)

func main() {
srv := &http.Server{
Addr: "0.0.0.0:5000",
Expand All @@ -23,7 +27,7 @@ func main() {
common.GetLogger().Println(err)
}
}()
common.GetLogger().Println("Server started on :5000")
common.GetLogger().Printf("plexproxy started on :5000 (version=%q)", Version)

c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
Expand Down

0 comments on commit 0211574

Please sign in to comment.