qq

package
v0.2.9 Latest Latest
Warning

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

Go to latest
Published: May 21, 2026 License: MIT Imports: 32 Imported by: 0

README

this part of code is inspired by

qr login code is piece of shit. trying to find better way to do this

Documentation

Index

Constants

View Source
const (
	QiMeiPublicKey = `` /* 268-byte string literal not displayed */

	QiMeiSecret = "ZdJqM15EeO2zWc08"
	QiMeiAppKey = "0AND0HD6FE4HY80F"
)
View Source
const (
	QualityMaster  = "AI00.flac" // MASTER: 臻品母带2.0,24Bit 192kHz,size_new[0]
	QualityAtmos2  = "Q000.flac" // ATMOS_2: 臻品全景声2.0,16Bit 44.1kHz,size_new[1]
	QualityAtmos51 = "Q001.flac" // ATMOS_51: 臻品音质2.0,16Bit 44.1kHz,size_new[2]
	QualityFLAC    = "F000.flac" // FLAC: flac 格式,16Bit 44.1kHz~24Bit 48kHz,size_flac
	QualityOGG640  = "O801.ogg"  // OGG_640: ogg 格式,640kbps,size_new[5]
	QualityOGG320  = "O800.ogg"  // OGG_320: ogg 格式,320kbps,size_new[3]
	QualityOGG192  = "O600.ogg"  // OGG_192: ogg 格式,192kbps,size_192ogg
	QualityOGG96   = "O400.ogg"  // OGG_96: ogg 格式,96kbps,size_96ogg
	QualityMP3320  = "M800.mp3"  // MP3_320: mp3 格式,320kbps,size_320mp3
	QualityMP3128  = "M500.mp3"  // MP3_128: mp3 格式,128kbps,size_128mp3
	QualityACC192  = "C600.m4a"  // ACC_192: m4a 格式,192kbps,size_192aac
	QualityACC96   = "C400.m4a"  // ACC_96: m4a 格式,96kbps,size_96aac
	QualityACC48   = "C200.m4a"  // ACC_48: m4a 格式,48kbps,size_48aac
)
View Source
const (
	QualityEncMaster  = "AIM0.mflac" // MASTER: 臻品母带2.0,24Bit 192kHz,size_new[0]
	QualityEncAtmos2  = "Q0M0.mflac" // ATMOS_2: 臻品全景声2.0,16Bit 44.1kHz,size_new[1]
	QualityEncAtmos51 = "Q0M1.mflac" // ATMOS_51: 臻品音质2.0,16Bit 44.1kHz,size_new[2]
	QualityEncFLAC    = "F0M0.mflac" // FLAC: mflac 格式,16Bit 44.1kHz~24Bit 48kHz,size_flac
	QualityEncOGG640  = "O801.mgg"   // OGG_640: mgg 格式,640kbps,size_new[5]
	QualityEncOGG320  = "O800.mgg"   // OGG_320: mgg 格式,320kbps,size_new[3]
	QualityEncOGG192  = "O6M0.mgg"   // OGG_192: mgg 格式,192kbps,size_192ogg
	QualityEncOGG96   = "O4M0.mgg"   // OGG_96: mgg 格式,96kbps,size_96ogg
)

Variables

This section is empty.

Functions

func IsQqQuality

func IsQqQuality(quality miaosic.Quality) bool

func Register added in v0.2.9

func Register()

func UseQQLogin added in v0.2.6

func UseQQLogin()

func UseWechatLogin added in v0.2.6

func UseWechatLogin()

Types

type ApiConfig

type ApiConfig struct {
	Version     string
	VersionCode int
	EnableSign  bool
	Endpoint    string
	EncEndpoint string
}

type Credential

type Credential struct {
	OpenID       string `json:"openid"`
	RefreshToken string `json:"refresh_token"`
	AccessToken  string `json:"access_token"`
	ExpiredAt    int64  `json:"expired_at"`
	MusicID      int64  `json:"musicid"`
	MusicKey     string `json:"musickey"`
	UnionID      string `json:"unionid"`
	StrMusicID   string `json:"str_musicid"`
	RefreshKey   string `json:"refresh_key"`
	EncryptUin   string `json:"encryptUin"`
	LoginType    int    `json:"loginType"`
	// Extra field to track if I should refresh token
	// its not in qq cookie
	CreatedAt int64 `json:"created_at"`
}

func NewCredential

func NewCredential() *Credential

func (*Credential) GetFormatedLoginType

func (c *Credential) GetFormatedLoginType() int

func (*Credential) HasMusicID

func (c *Credential) HasMusicID() bool

func (*Credential) HasMusicKey

func (c *Credential) HasMusicKey() bool

type Device

type Device struct {
	Display      string     `json:"display"`
	Product      string     `json:"product"`
	Device       string     `json:"device"`
	Board        string     `json:"board"`
	Model        string     `json:"model"`
	Fingerprint  string     `json:"fingerprint"`
	BootID       string     `json:"boot_id"`
	ProcVersion  string     `json:"proc_version"`
	IMEI         string     `json:"imei"`
	Brand        string     `json:"brand"`
	Bootloader   string     `json:"bootloader"`
	BaseBand     string     `json:"base_band"`
	Version      *OSVersion `json:"version"`
	SimInfo      string     `json:"sim_info"`
	OsType       string     `json:"os_type"`
	MacAddress   string     `json:"mac_address"`
	WifiBSSID    string     `json:"wifi_bssid"`
	WifiSSID     string     `json:"wifi_ssid"`
	IMSIMD5      []byte     `json:"imsi_md5"`
	AndroidID    string     `json:"android_id"`
	APN          string     `json:"apn"`
	VendorName   string     `json:"vendor_name"`
	VendorOSName string     `json:"vendor_os_name"`
	Qimei        string     `json:"qimei,omitempty"`
}

Device 设备相关信息

func NewDevice

func NewDevice() *Device

NewDevice 创建新的设备信息

type OSVersion

type OSVersion struct {
	Incremental string `json:"incremental"`
	Release     string `json:"release"`
	Codename    string `json:"codename"`
	Sdk         int    `json:"sdk"`
}

OSVersion 系统版本信息

type QQMusicProvider

type QQMusicProvider struct {
	// contains filtered or unexported fields
}

func NewQQMusicProvider

func NewQQMusicProvider(channel string) *QQMusicProvider

func (*QQMusicProvider) GetMediaInfo

func (p *QQMusicProvider) GetMediaInfo(meta miaosic.MetaData) (miaosic.MediaInfo, error)

func (*QQMusicProvider) GetMediaLyric

func (p *QQMusicProvider) GetMediaLyric(meta miaosic.MetaData) ([]miaosic.Lyrics, error)

func (*QQMusicProvider) GetMediaUrl

func (p *QQMusicProvider) GetMediaUrl(meta miaosic.MetaData, quality miaosic.Quality) ([]miaosic.MediaUrl, error)

func (*QQMusicProvider) GetName

func (p *QQMusicProvider) GetName() string

func (*QQMusicProvider) GetPlaylist

func (p *QQMusicProvider) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error)

func (*QQMusicProvider) IsLogin

func (p *QQMusicProvider) IsLogin() bool

func (*QQMusicProvider) Login

func (p *QQMusicProvider) Login(username string, password string) error

func (*QQMusicProvider) Logout

func (p *QQMusicProvider) Logout() error

func (*QQMusicProvider) MapQuality added in v0.2.9

func (p *QQMusicProvider) MapQuality(quality miaosic.Quality) miaosic.Quality

func (*QQMusicProvider) MatchMedia

func (p *QQMusicProvider) MatchMedia(uri string) (miaosic.MetaData, bool)

func (*QQMusicProvider) MatchPlaylist

func (p *QQMusicProvider) MatchPlaylist(uri string) (miaosic.MetaData, bool)

func (*QQMusicProvider) QrLogin

func (p *QQMusicProvider) QrLogin() (*miaosic.QrLoginSession, error)

func (*QQMusicProvider) QrLoginVerify

func (p *QQMusicProvider) QrLoginVerify(qrlogin *miaosic.QrLoginSession) (*miaosic.QrLoginResult, error)

func (*QQMusicProvider) Qualities

func (p *QQMusicProvider) Qualities() []miaosic.Quality

func (*QQMusicProvider) RefreshLogin added in v0.2.5

func (p *QQMusicProvider) RefreshLogin() error

func (*QQMusicProvider) RestoreSession

func (p *QQMusicProvider) RestoreSession(session string) error

func (*QQMusicProvider) SaveSession

func (p *QQMusicProvider) SaveSession() string

func (*QQMusicProvider) Search

func (p *QQMusicProvider) Search(keyword string, page, size int) ([]miaosic.MediaInfo, error)

type QimeiResult

type QimeiResult struct {
	Q16 string `json:"q16"`
	Q36 string `json:"q36"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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