srapi

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2022 License: MIT Imports: 8 Imported by: 1

Documentation

Overview

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0 srapi.goから分離する。 Ver. 1.0.0 戻り値 status を err に変更する。

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0 srapi.goから分離する。 Ver. 1.0.0 戻り値 status を err に変更する。

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.1.0 ApiLiveCurrentUser.goをsrapi.goから分離する。ApiLiveCurrentUser()のRoomIDをstring型に変更する。 Ver. 1.0.0 戻り値 status を err に変更する。

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0 Ver. 1.0.0 戻り値 status を err に変更する。 Ver. 2.0.0 ExtrRoomLiveByCtg()とExtrRoomLiveByGnr()をRoomOnlivesのメソッドとする。 Ver. 2.0.1 fmt.Errorf()の %v を %w に変更する。 Ver. 3.0.0 ExtrRoomLiveByCtg(), ExtrRoomLiveyypByGnr()をそれぞれExtrByCtg()、ExtrByCtg()に変更する。 Ver. 4.0.0 ExtrByCtg()、ExtrByCtg()の引数を Roomonlives から *RoomOnLives に変更する。 Ver. 4.1.0 上位でsort.Sort()をsort.Slice()に変更したため、sort.Sort()のためのメソッドを削除する。 Ver. 4.1.0 ExtrByCtg()の引数を Roomonlives から *RoomOnLives に変更する(修正もれ)

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0 Ver. 0.1.0 リスナー情報 UserDetail にエラーに関するメンバーを追加する(作成済みのプログラムに影響はない) Ver. 1.0.0 戻り値の staus を error 変更する Ver. 1.1.0 err に fmt.Errorf("package.Function: %w", err) を設定する。

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0 srapi.goから分離する。 Ver. 1.0.0 戻り値の staus を error 変更する

! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php

Ver. 0.0.0 Ver. 0.0.1 s.Find()のセレクタの冗長部分を削除する。 Ver. 0.0.2 s.Find()のセレクタの先頭に"#js-genre-section-all"を追加する。これがないと不要な要素が検出される。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApiCsrftoken

func ApiCsrftoken(
	client *http.Client,
) (
	csrftoken string,
	err error,
)

csrf_tokenを取得する。

func CrwlFollow

func CrwlFollow(
	client *http.Client,
	maxnoroom int,
) (
	rooms *[]RoomFollowing,
	err error,
)

フォローしているルームの一覧を取得する。

func GetPointByApi added in v0.1.0

func GetPointByApi(
	client *http.Client,
	roomid int,
) (
	point int,
	rank int,
	gap int,
	eventid int,
	eventurl string,
	eventname string,
	err error,
)

イベントでの獲得ポイントを取得する

Types

type ActiveFanNextLevel

type ActiveFanNextLevel struct {
	Level      int //	現在のファンレベル
	Next_level struct {
		Level      int //	次のファンレベル
		Conditions []struct {
			Condition_details []struct {
				Goal  int    //	次のレベルになるのに必要な要素(視聴時間、ギフト、コメントの数)
				Unit  string //	単位(分、pt、G、コメント)
				Value int    //	(レベルアップに使った分を除く)現在の実績(手持ちの要素数)(視聴時間、ギフト、コメントの数)
				Label string //	次のレベルになるのに必要な要素の詳細(視聴時間、無料ギフト、有料ギフト、コメント数)
			}
			Label string //	次のレベルになるのに必要な要素(視聴時間、有料ギフト or 無料ギフト、コメント数)
		}
	}
	Title_id int //	不明
}

ファンレベルの進捗状況の詳細

func ApiActivefanNextlevel

func ApiActivefanNextlevel(
	client *http.Client,
	userid string,
	roomid string,
) (
	afnl ActiveFanNextLevel,
	err error,
)

ファンレベルの進捗状況を得るためのAPI(/api/active_fan/next_level)を実行する。

type CsrfToken

type CsrfToken struct {
	Csrf_token string
	Data1      string
}

csrf_token ... 接続の識別子

type Live

type Live struct {
	//	配信中ルーム情報ルーム
	Room_id      int    //	ルームID 配信者を識別する
	Room_url_key string //	配信のURLの最後のフィールド
	Live_id      int    //	Live ID 配信を識別する
	Started_at   int64  //	配信開始時刻(Unix Time)
	View_num     int    //	視聴者数
	Main_name    string //	ルーム名
	Genre_id     int    //	0: 人気、 200: フリー、 100(?)〜199(?): 公式、 700〜: 特定属性
}

type LiveCurrentUser

type LiveCurrentUser struct {
	Is_login           bool   //	ログインしているか? ログインしていればtrue
	User_id            int    //	リスナーの識別子
	Name               string //	リスナー名
	Fan_level          int    //	ファンレベル、Maxが56のやつ
	Add_free_gift      int    //	?
	Contribution_point int    //	おそらく貢献ポイントの累計
	Gift_list          struct {
		Normal []struct {
			Gift_id  int //	ギフトの種別 1であれば赤星、...
			Free_num int //	Gift_idのギフトの個数
		}
	}
}

リスナー情報

func ApiLiveCurrentUser

func ApiLiveCurrentUser(
	client *http.Client,
	roomid string,
) (
	livecurrentuser LiveCurrentUser,
	err error,
)

リスナーに関する情報を取得する

type Lives

type Lives []Live

type RoomEvnetAndSupport added in v0.1.0

type RoomEvnetAndSupport struct {
	Event struct {
		Event_id   int    //	イベント識別子
		Event_url  string //	イベントのURLの末尾のフィールド
		Event_name string //	イベント名
		Ranking    struct {
			Rank  int //	順位
			Point int //	獲得ポイント
			Gap   int //	上位とのポイント差
		}
		Quest struct {
			Support struct {
				Goal_point    int //	目標ポイント
				Current_point int //	現在のポイント
				Support_users []struct {
					Point   int    //	ポイント
					Order   int    //	順位
					Name    string //	ユーザー名
					User_id int    //	ユーザー識別子
				}
			}
			Quest_list []struct {
				Number_of_items int    //	アイテム数
				Color           string //	色
				Goal_point      int    //	目標ポイント
				Rest_time       int    //	残り時間?
				Title           string //	タイトル
				Quest_level     int    //	クエストレベル
				Is_aquired      bool   //	クエスト獲得フラグ?
			}
		}
	}
}

イベントの順位と獲得ポイント JSONには他にもいろんなフィールドがあります。 ぜったい必要そうなものとフィールドの作りが面倒そうなところだけ構造体にしてあります。

func ApiRoomEventAndSupport added in v0.1.0

func ApiRoomEventAndSupport(
	client *http.Client,
	roomid string,
) (
	res *RoomEvnetAndSupport,
	err error,
)

イベントの順位と獲得ポイントを知るAPI(/api/room/event_and_suport)を実行する。

type RoomFollowing

type RoomFollowing struct {
	Room_id      string //	ルームID	配信者を識別する
	Room_url_key string //	配信のURLの最後のフィールド
	Main_name    string //	ルーム名
	Next_live    string //	次の配信時刻
}

フォローしているルームのデータの構造体(必要とするものだけ、残りは取得していません)

type RoomOnlives

type RoomOnlives struct {
	//	配信中ルーム一覧
	//	Onlives []OnLive //	ジャンルごとの配信中ルーム一覧
	Onlives []struct {
		Genre_id   int    //	0: 人気、 200: フリー、 100(?)〜199(?): 公式、 700〜: 特定属性
		Genre_name string //	ジャンル名
		Lives      Lives  //	配信中ルーム一覧
	}

	Bcsvr_post int
	Bcsvr_host string
}

func ApiLiveOnlives

func ApiLiveOnlives(
	client *http.Client,
) (
	roomonlives *RoomOnlives,
	err error,
)

配信中のルームの一覧を取得する

func (*RoomOnlives) ExtrByCtg

func (r *RoomOnlives) ExtrByCtg(
	tgt string,
) (
	roomlive *Lives,
	err error,
)

指定したカテゴリー("Free", "Official", "All")のルーム一覧を作る。 "All"のときでもGenre_idが0や700以上は含まないので重複はない。

func (*RoomOnlives) ExtrByGnr

func (r *RoomOnlives) ExtrByGnr(
	gnr map[string]bool,
) (
	roomlive *Lives,
	err error,
)

指定したジャンルのルーム一覧を作る。

type UserDetail

type UserDetail struct {
	User_id int    //	ユーザーID=リスナーの識別子、ログインしていない場合は 0 となる。
	Name    string //	ユーザー名=リスナー名

	//	エラー情報
	//	ログインしている場合は空配列となる模様。
	//	ログインしていない場合は
	//		Error_user_msg:	"Error occured"
	//		Message:		"Not Found"
	//		Code:			1002
	Errors []struct {
		Error_user_msg string //	エラーメッセージ
		Message        string //	エラー内容
		Code           int    //	エラーコード
	}
}

リスナー情報

func ApiUserDetail

func ApiUserDetail(
	client *http.Client,
) (
	userdetail *UserDetail,
	err error,
)

(ログインしている)リスナーの情報を取得する

type UserLogin

type UserLogin struct {
	Ok            int    //	1: ログインできた 0:ログインできなかった
	Is_room_owner int    //	未確認、おそらく配信者登録をしている(1)か否(0)かだと思う。
	User_id       string //	ログインできたときはリスナーの識別子(数字からなる文字列)
	Room_id       string //	未確認、おそらく配信ルームの識別子(数字からなる文字列 ?)
	Account_id    string //	ログインできたときはログインアカウント
}

ログインのAPIの結果

func ApiUserLogin

func ApiUserLogin(
	client *http.Client,
	csrftoken string,
	accountid string,
	password string,
) (
	userlogin UserLogin,
	err error,
)

SHOWROOMのサービスにログインする

Jump to

Keyboard shortcuts

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