olivetv

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2022 License: Apache-2.0 Imports: 19 Imported by: 3

Documentation

Overview

Package olivetv provides support for retrieving stream urls and other streamers' details.

Index

Examples

Constants

View Source
const (
	KsLiveDetailQuery = `
	query LiveDetail($principalId: String) {  
		liveDetail(principalId: $principalId) {  
			liveStream
		}
	}
	`
	KsUserInfoQuery = `
	query userInfoQuery($principalId: String) {  
		userInfo(principalId: $principalId) {  
			name
			living
		}
	}
	`
)
View Source
const (
	EmptyRoomName     = ""
	EmptyStreamerName = ""
)

Variables

View Source
var (
	ErrNotSupported = errors.New("streamer not supported")
	ErrSiteInvalid  = errors.New("site invalid")
)
View Source
var (
	ErrCookieNotSet = errors.New("cookie not configured")
)

Functions

This section is empty.

Types

type ITV

type ITV interface {
	Snap() error
	StreamURL() (string, bool)
	RoomName() (string, bool)
	StreamerName() (string, bool)
	SiteName() string
}

type Info

type Info struct {
	Timestamp int64
	// contains filtered or unexported fields
}

type Option

type Option func(*TV) error

func SetCookie

func SetCookie(cookie string) Option
Example
package main

import (
	"fmt"

	"github.com/go-olive/olive/foundation/olivetv"
)

func main() {
	douyinCookie := "__ac_nonce=06245c89100e7ab2dd536; __ac_signature=_02B4Z6wo00f01LjBMSAAAIDBwA.aJ.c4z1C44TWAAEx696;"
	t, err := olivetv.New("douyin", "600571451250", olivetv.SetCookie(douyinCookie))
	if err != nil {
		println(err.Error())
		return
	}

	t.Snap()
	fmt.Println(t)
}
Output:

type RoomURL

type RoomURL string

func (RoomURL) SiteID

func (this RoomURL) SiteID() string

func (RoomURL) Stream

func (this RoomURL) Stream() (*TV, error)

type Site

type Site interface {
	Name() string
	Snap(*TV) error
	Permit(RoomURL) (*TV, error)
}

func Sniff

func Sniff(siteID string) (Site, bool)

type TV

type TV struct {
	SiteID string
	RoomID string

	*Info
	// contains filtered or unexported fields
}
Example
package main

import (
	"fmt"

	"github.com/go-olive/olive/foundation/olivetv"
)

func main() {
	t, err := olivetv.New("huya", "518512")
	if err != nil {
		println(err.Error())
		return
	}

	t.Snap()
	fmt.Println(t)
}
Output:

func New

func New(siteID, roomID string, opts ...Option) (*TV, error)

func NewWithURL

func NewWithURL(roomURL string, opts ...Option) (*TV, error)
Example
package main

import (
	"fmt"

	"github.com/go-olive/olive/foundation/olivetv"
)

func main() {
	t, err := olivetv.NewWithURL("https://www.huya.com/518512")
	if err != nil {
		println(err.Error())
		return
	}

	t.Snap()
	fmt.Println(t)
}
Output:

func (*TV) RoomName

func (tv *TV) RoomName() (string, bool)

func (*TV) SiteName

func (tv *TV) SiteName() string

func (*TV) Snap

func (tv *TV) Snap() error

Snap takes the latest snapshot of the streamer info that could be retrieved individually.

func (*TV) SnapWithCookie

func (tv *TV) SnapWithCookie(cookie string) error

SnapWithCookie takes the latest snapshot of the streamer info that could be retrieved individually with the cookie passed in.

func (*TV) StreamURL

func (tv *TV) StreamURL() (string, bool)

func (*TV) StreamerName

func (tv *TV) StreamerName() (string, bool)

func (*TV) String

func (tv *TV) String() string

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL