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 © 2024 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Copyright © 2024 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Copyright © 2024 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
! 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 に変更する。 Ver. 1.1.1 ダミーのユーザーエージェントを FireFox/124.0に変更する。
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 1.1.1 Contribution_ranking.Me のtypeをanyからinterface{}に変更する。
Copyright © 2024 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.0
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.0
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.0
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.0
! Copyright © 2024 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
! 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.1.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 レベルイベントのRankとGapを−1とする。
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.0
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.0
! Copyright © 2022 chouette.21.00@gmail.com Released under the MIT license https://opensource.org/licenses/mit-license.php
Ver. 0.1.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.1.0
Index ¶
- Constants
- Variables
- func ApiCsrftoken(client *http.Client) (csrftoken string, err error)
- func CrawlEventRoomList(valuehtml string, roomlist *[]Room, usernomap *map[int]bool, ib int, ie int, ...) (err error)
- func CrawlRoomRanking(mode string) (rr *[]RoomRanking, err error)
- func GetGenreRankingByApi(client *http.Client, genreid int, period string, iscurrent bool, pages int) (rlist *[]GenreRanking, err error)
- func GetPointByApi(client *http.Client, roomid int) (point int, rank int, gap int, eventid int, eventurl string, eventname string, ...)
- type ActiveFanNextLevel
- type ActivefanRoom
- type Block_ranking
- type BulkGiftingFree
- type CdnGiftRanking
- type CdnUserGiftRanking
- type ContributionRanking
- type Contribution_ranking
- type CsrfToken
- type EndAnimation
- type Event
- type EventBlockRanking
- type EventGiftRanking
- type EventRoomList
- type EventSearch
- type Eventranking
- type FollowRooms
- type Genre
- type GenreRanking
- type GenreRankingArray
- type GiftRankingContribution
- type GrRanking
- type GrRoom
- type GrcRanking
- type GrcRoom
- type GrcUser
- type Live
- type LiveCurrentUser
- type LiveGiftingFree
- type LivePolling
- type Lives
- type Mission
- type Quest
- type QuestList
- type ResEvent
- type ResRanking
- type Room
- type RoomEvnetAndSupport
- type RoomFollowed
- type RoomInf
- type RoomInfAll
- type RoomListInf
- type RoomNextlive
- type RoomOnlives
- type RoomRanking
- type RoomStatus
- type RoomsPastevents
- type Support
- type SupportUsers
- type UgrRanking
- type UgrUser
- type UserDetail
- type UserLogin
Constants ¶
const Version = "01AA00"
00AA00 v1.3.0に対し
ApiRoomProfile()をApiRoomProfileV111()とする。 ApiRoomProfileAll()をApiRoomRoomProfile()とする。 ApiMission()を追加する。 srapi.goを追加する(Versionおよびuseragent)
00AA01 ApiEventRanking()のイベント終了後の動作を調べコメントに記す。 00AA02 EventRankingのメンバーにErrorsを追加する。ApiRoomProfile()でDecodeのエラー出力を簡略化する。 00AA03 ApiRoomProfile()でエラー出力を行わないようにする。 00AA04 ApiEventsRanking() の event_block_id を event_block_division_id とする 00AB00 ApiEventBlockRanking()を複数ページに対応させる。
ApiEventRoomList_test.goとApiEventBlockRanking.goを作成する。 importのgithub.com/chouette2100をChouette2100に変更する。
00AC00 ApiEventGiftRanking()をあらたに作成する 00AD00 ApiCdnGiftRanking(), ApiCdnUserGiftRanking()をあらたに作成する 00AD01 ApiCdnGiftRanking(), ApiCdnUserGiftRanking()で構造体にErrorsを追加する 00AD02 ApiCdnGiftRanking(), ApiCdnUserGiftRanking()の構造体を展開する。 00AE00 ApiCdnGiftRankingContribution()をあらたに作成する 00AE01 ApiCdnGiftRankingContribution()でtype名GrcRankingListをGrcRankingに変更する 00AF00 ApiCdnSeasonAwardRanking()をあらたに作成する 01AA00 ApiRoomEventAndSupport()の構造体を変更し、GetPointByAPI()の引数にBlockIDを追加する
Variables ¶
var GenreTbl []Genre = []Genre{
{"総合", 999},
{"フリー", 200},
{"タレント・モデル", 103},
{"ミュージック", 101},
{"声優・アニメ", 104},
{"お笑い・トーク", 105},
{"バーチャル", 107},
{"新人", 998},
}
var PrdMap map[string]int = map[string]int{
"all": 0,
"daily": 1,
"weekly": 2,
"monthly": 3,
}
Functions ¶
func ApiCsrftoken ¶
csrf_tokenを取得する。
func CrawlEventRoomList ¶ added in v0.5.0
func CrawlRoomRanking ¶ added in v1.3.0
func CrawlRoomRanking( mode string, ) ( rr *[]RoomRanking, err error, )
CrawlRoomRanking()
func GetGenreRankingByApi ¶ added in v1.3.0
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 ActivefanRoom ¶ added in v1.3.0
type ActivefanRoom struct { LevelImageBaseURL string `json:"level_image_base_url"` TotalUserCount int `json:"total_user_count"` ImageVersion int `json:"image_version"` FanPower int `json:"fan_power"` IsExcluded bool `json:"is_excluded"` TitleImageBaseURL string `json:"title_image_base_url"` FanName string `json:"fan_name"` }
func ApiActivefanRoom ¶ added in v1.3.0
type Block_ranking ¶ added in v0.6.0
type Block_ranking struct { // boolとintのinterface{}型はデータ取得時にbool型として値を設定しておくこと // 該当する変数を使うときは一律に if br.Is_official.(bool) { ... } のようにすればよい Is_official interface{} // block_id != 0のとき false/true, bock_id == 0 のとき 0/1 Room_url_key string Room_description string Image_s string Is_online interface{} // block_id != 0のとき false/true, bock_id == 0 のとき 0/1 Is_fav bool Genre_id int Point int Room_id string Rank int Room_name string }
type BulkGiftingFree ¶ added in v0.2.0
type BulkGiftingFree struct { Ua int // 3: ? Aft int // 0: ? Gifting_bonus interface{} // null: ? 現時点では型が不明 Ok bool // true: 正常終了? Notify_level_up bool // false: ? Gifts []struct { Gift_id int // (Official) 1, 2, 1001, 1002, 1003, (Free) 1501, 1502, 1503, 1504. 1505 Add_point int // ボーナスを含んだ獲得ポイント Remaining_num int // 残りの星、種の個数(呼び出し後は0になっているはず) Gift_name string // ギフト名 (Offiicial) "星A", "星B", "星C", "星D", "星E",(Free)"種A", "種B", "種C", "種D", "種E" Bonus_rate float64 // ボーナス率(num >= 10であれば0.2) Gift_type int // 2: ? // contains filtered or unexported fields } Fan_level struct { Next_level_point int // 未確認 Current_level_point int // 未確認 Next_fan_level int // 未確認 Contribution_point int // 累積貢献ポイント ? User_id int // リスナーの識別子 Fan_level int // いわゆるリスナーレベル(現時点で最大値 56) } Level_up string // "0": ? }
星・種の一気投げの結果
func ApiLiveBulkGiftingFree ¶ added in v0.2.0
func ApiLiveBulkGiftingFree( client *http.Client, csrftoken string, liveid string, ) ( bulkgiftingfree *BulkGiftingFree, err error, )
星・種をまとめて投げる
type CdnGiftRanking ¶ added in v1.4.0
type CdnGiftRanking struct { TotalScore int `json:"total_score"` RankingList []GrRanking `json:"ranking_list"` Errors []struct { ErrorUserMsg string `json:"error_user_msg"` Message string `json:"message"` Code int `json:"code"` } `json:"errors"` }
func ApiCdnGiftRanking ¶ added in v1.4.0
func ApiCdnGiftRanking( client *http.Client, genre_id int, limit int, ) ( pranking *CdnGiftRanking, err error, )
ギフトランキングを取得する
(イベントギフトランキングとは別のものです) https://public-api.showroom-cdn.com/gift_ranking/mmm?limit=nnn mmm: ジャンルID nnn; 最大取得件数 |コード|名称|補足| |---|---|---| |486|人気ライバーランキング|| |490|新人スタートダッシュ|| |494|アイドル|| |495|俳優|| |496|アナウンサー|| |497|グローバル|| |498|声優|| |499|芸人|| |500|タレント|| |501|ライバー|| |502|モデル|| |503|バーチャル|| |504|アーティスト||
func ApiCdnSeasonAwardRanking ¶ added in v1.6.1
func ApiCdnSeasonAwardRanking( client *http.Client, gift_id int, limit int, ) ( pranking *CdnGiftRanking, err error, )
SeasonAwardRankingを取得する
(イベントギフトランキングとは別のものです) https://public-api.showroom-cdn.com/gift_ranking/mmm?limit=nnn mmm: ジャンルID nnn; 最大取得件数 |コード|名称|補足| |---|---|---| |486|人気ライバーランキング|| |490|新人スタートダッシュ|| |494|アイドル|| |495|俳優|| |496|アナウンサー|| |497|グローバル|| |498|声優|| |499|芸人|| |500|タレント|| |501|ライバー|| |502|モデル|| |503|バーチャル|| |504|アーティスト||
type CdnUserGiftRanking ¶ added in v1.4.0
type CdnUserGiftRanking struct { RankingList []UgrRanking `json:"ranking_list"` Errors []struct { ErrorUserMsg string `json:"error_user_msg"` Message string `json:"message"` Code int `json:"code"` } `json:"errors"` }
func ApiCdnUserGiftRanking ¶ added in v1.4.0
func ApiCdnUserGiftRanking( client *http.Client, genre_id int, limit int, ) ( pranking *CdnUserGiftRanking, err error, )
ユーザーギフトランキングを取得する
https://public-api.showroom-cdn.com/user_gift_ranking/mmm?limit=nnn
type ContributionRanking ¶ added in v1.8.0
type Contribution_ranking ¶ added in v1.1.0
type Contribution_ranking struct { Ranking []struct { AvatarID int `json:"avatar_id"` Point int `json:"point"` AvatarURL string `json:"avatar_url"` Name string `json:"name"` UserID int `json:"user_id"` Rank int `json:"rank"` } `json:"ranking"` Me interface{} `json:"me"` MyPoint int `json:"my_point"` Event struct { EndedAt int `json:"ended_at"` EventName string `json:"event_name"` EventType string `json:"event_type"` StartedAt int `json:"started_at"` EventURL string `json:"event_url"` ShowRanking int `json:"show_ranking"` Image string `json:"image"` } `json:"event"` }
func ApiEventContribution_ranking ¶ added in v1.1.0
func ApiEventContribution_ranking( client *http.Client, ieventid int, roomid int, ) ( pranking *Contribution_ranking, err error, )
リスナー別の貢献ポイントを取得する
type EndAnimation ¶ added in v1.8.0
type Event ¶ added in v0.2.0
type Event struct { Content_region_permission int Order_no int Event_id int // イベント識別子 Tag_list []struct { Tag_name string } Event_description string Is_event_Block bool Is_entry_scope_inner bool // 対象者限定か否か(?) Start_soon bool League_ids []int // val.= 9:XX, 10:S, 20:A, 30:B, 40:C (?) End_soon bool Type_name string Is_official bool Event_name string // イベント名 Image_l string Event_type string Image_s string Genre_id int Default_locale string Ended_at int64 // イベント終了日時(UnixTime) Updated_at int64 Start_comming interface{} Event_block_label interface{} Event_image_file_type string Required_level_max int // 参加可能レベル上限 Required_level int // 参加可能レベル下限 Image_m string Offer_started_at int64 No_amateur bool End_remain interface{} Just_offer_started interface{} Created_at int64 Started_at int64 // イベント開始日時(UnixTime) Event_url_key string // イベントURL(最後のフィールド) Is_box_event bool // 親イベントか否か(?) Parent_event_id int Show_ranking bool Is_watch bool Is_public bool Public_status int Is_closed bool Is_pickup bool Reward_rank int Offer_ended_at int64 // 申込み終了日時(UnixTime) }
type EventBlockRanking ¶ added in v0.6.0
type EventBlockRanking struct { Total_entries int Entries_per_pages int Current_page int Block_ranking_list []Block_ranking }
func ApiBlockEventRnaking ¶ added in v0.6.0
func GetEventBlockRanking ¶ added in v0.6.0
func GetEventBlockRanking( client *http.Client, eventid int, blockid int, ib int, ie int, ) ( ebr *EventBlockRanking, err error, )
ブロックランキングイベント参加中のルーム情報の一覧を取得する。
type EventGiftRanking ¶ added in v1.4.0
type EventGiftRanking struct { RankingType int `json:"ranking_type"` // 1: ? RankingList []struct { OrderNo int `json:"order_no"` // 順位(1〜) Score int `json:"score"` // 獲得ポイント Room struct { IsOfficial int `json:"is_official"` // 公式? RoomURLKey string `json:"room_url_key"` // 配信画面のURLから"https://www.showroom-live.com/r/"を除いたもの RoomDescription string `json:"room_description"` // ルーム説明 ImageS string `json:"image_s"` // サムネール RoomName string `json:"room_name"` // ルーム名 RoomID string `json:"room_id"` // ルームID(整数 〜6桁) IsOnline int `json:"is_online"` // 配信中? } `json:"room"` CreatedAt int `json:"created_at"` // 2024-09-06 09:25 に gift_id=1497のとき 1725582065(2024-09-06 09:21:05) UpdatedAt int `json:"updated_at"` // 〃 EventGiftRankingID int `json:"event_gift_ranking_id"` // gift_id Rank int `json:"rank"` // 順位(= OrderNo ?) RoomID string `json:"room_id"` // ルームID( = Room.RoomID ? ) } `json:"ranking_list"` GiftData []struct { GiftID int `json:"gift_id"` // ギフトID Name string `json:"name"` // ギフト名 IsAnimation int `json:"is_animation"` Path string `json:"path"` // ギフト画像 } `json:"gift_data"` Errors []struct { ErrorUserMsg string `json:"error_user_msg"` Message string `json:"message"` Code int `json:"code"` } `json:"errors"` }
func ApiEventGiftRanking ¶ added in v1.4.0
func ApiEventGiftRanking( client *http.Client, gift_id int, ) ( pranking *EventGiftRanking, err error, )
イベントギフトランキングを取得する
(ギフトランキング、ユーザーギフトランキングとは別のものです) https://www.showroom.com/api/event_gift_ranking/nnnnnnn nnnnnn: gift_id 取得に期限はないようで EventRankingID=1 にたいしてもそれらしい結果が得られている。
type EventRoomList ¶ added in v0.5.0
func ApiEventRoomList ¶ added in v0.5.0
func ApiEventRoomList( client *http.Client, eventid int, page int, ) ( eventroomlist *EventRoomList, err error, )
配信状況を確認し、room_url_key から room_id を取得する。
type EventSearch ¶ added in v0.2.0
type EventSearch struct { Next_page int Previous_page int Last_page int // ページ数、この数だけ取得を繰り返す。 First_page int Current_page int Total_count int // イベント数、イベント情報取得後数が一致しているかチェックする。 Event_list []Event }
func ApiEventSearch ¶ added in v0.2.0
func ApiEventSearch( client *http.Client, args ...int, ) ( es *EventSearch, err error, )
type Eventranking ¶ added in v1.1.0
type Eventranking struct { Ranking []struct { Point int `json:"point"` Room struct { Name string `json:"name"` ImageSquare string `json:"image_square"` RoomID int `json:"room_id"` Image string `json:"image"` } `json:"room"` Rank int `json:"rank"` } `json:"ranking"` TargetRoomRanking struct { Gap int `json:"gap"` Point int `json:"point"` Room struct { Name string `json:"name"` ImageSquare string `json:"image_square"` RoomID int `json:"room_id"` Image string `json:"image"` } `json:"room"` Rank int `json:"rank"` LowerGap int `json:"lower_gap"` } `json:"target_room_ranking"` Event struct { EndedAt int `json:"ended_at"` EventName string `json:"event_name"` StartedAt int `json:"started_at"` EventType string `json:"event_type"` EventURL string `json:"event_url"` Image string `json:"image"` ShowRanking int `json:"show_ranking"` } `json:"event"` Errors []struct { ErrorUserMsg string `json:"error_user_msg"` Message string `json:"message"` Code int `json:"code"` } `json:"errors"` }
func ApiEventsRanking ¶ added in v1.1.0
func ApiEventsRanking( client *http.Client, ieventid int, roomid int, blockid int, ) ( pranking *Eventranking, err error, )
イベントに参加しているルームの中で上位50ルームの獲得ポイントを取得する
イベント最終結果発表後1日間は上位30ルームの最終結果を取得することができる。 イベント最終結果発表後1日をすぎると得られる獲得ポイントには0がセットされている。
type FollowRooms ¶ added in v0.6.0
type FollowRooms struct { Next_page int // 次ページのページ番号、null: 次ページなし Previous_page int // 前ページのページ番号、null: 前ページなし Total_Entries int // フォローしている配信者の数 First_page int // 最初のページのページ番号(常に1 ?) Current_page int // 現在のページのページ番号 Rooms []RoomFollowed }
func ApiFollowRooms ¶ added in v0.6.0
func ApiFollowRooms( client *http.Client, page int, count int, ) ( followrooms *FollowRooms, err error, )
フォローしているルームの一覧を指定した範囲で取得する。
type GenreRanking ¶ added in v1.3.0
type GenreRanking struct { BeforeRank int `json:"before_rank"` OrderNo int `json:"order_no"` Point int `json:"point"` Room struct { RoomURLKey string `json:"room_url_key"` ImageSquare string `json:"image_square"` RoomName string `json:"room_name"` RoomID int `json:"room_id"` Image string `json:"image"` } `json:"room"` Rank int `json:"rank"` }
type GenreRankingArray ¶ added in v1.3.0
type GenreRankingArray struct { NextPage int `json:"next_page"` GenreRanking []GenreRanking `json:"genre_ranking"` TotalCount int `json:"total_count"` }
func ApiGenre_ranking ¶ added in v1.3.0
func ApiGenre_ranking( client *http.Client, genreid int, period string, iscurrent bool, page int, count int, ) ( pgr *GenreRankingArray, err error, )
func ApiGenre_ranking() ランキング一覧を取得する。 APIの使用例 https://www.showroom-live.com/api/genre_ranking/{genreid}/{period}?page=1&count=20
genreid: 0 全て 101 アーティスト 102 アイドル 103 タレント 104 声優 105 芸人 107 バーチャル 108 モデル 109 俳優 110 アナウンサー 111 グローバル 200 ライバー
period: all_time 総合 annually/20240101 monthly/20240601 weekly/20240603 ... 月曜日 daily/20240605
type GiftRankingContribution ¶ added in v1.5.0
type GiftRankingContribution struct { Room GrcRoom `json:"room"` RankingList []GrcRanking `json:"ranking_list"` }
func ApiCdnGiftRankingContribution ¶ added in v1.5.0
func ApiCdnGiftRankingContribution( client *http.Client, genre_id int, url_key string, ) ( pranking *GiftRankingContribution, err error, )
ギフトランキングの獲得ギフトに対するリスナー貢献ランキングを取得する
https://public-api.showroom-cdn.com/gift_ranking/492/contribution/kogachan
type GrRoom ¶ added in v1.4.1
type GrRoom struct { ID int `json:"id"` Name string `json:"name"` URLKey string `json:"url_key"` ImageURL string `json:"image_url"` Description string `json:"description"` FollowerNum int `json:"follower_num"` IsLive bool `json:"is_live"` IsParty bool `json:"is_party"` NextLiveSchedule int `json:"next_live_schedule"` }
type GrcRanking ¶ added in v1.5.1
type GrcRoom ¶ added in v1.5.0
type GrcRoom struct { ID int `json:"id"` Name string `json:"name"` URLKey string `json:"url_key"` ImageURL string `json:"image_url"` Description string `json:"description"` FollowerNum int `json:"follower_num"` IsLive bool `json:"is_live"` IsParty bool `json:"is_party"` NextLiveSchedule int `json:"next_live_schedule"` }
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 LiveGiftingFree ¶ added in v0.2.0
type LiveGiftingFree struct { Ua int // ? Aft int // ? Num int // ? Remaining_num int // 星、種の残り個数 Gifting_bonus int // ? Ok bool // true: 正常終了? Notify_level_up bool // true: レベルアップ通知? Gift_id int // (Official) 1, 2, 1001, 1002, 1003, (Free) 1501, 1502, 1503, 1504. 1505 Add_point int // ボーナスを含んだ獲得ポイント Gift_name string // ギフト名 (Offiicial) "星A", "星B", "星C", "星D", "星E",(Free) "種A", "種B", "種C", "種D", "種E" Bonus_rate float64 // ボーナス率(num >= 10であれば0.2) Fan_Level struct { Contribution_point int // 累積貢献ポイント ? } }
func ApiLiveGiftingFree ¶ added in v0.2.0
func ApiLiveGiftingFree( client *http.Client, csrftoken string, liveid string, giftid string, num string, ) ( livegiftingfree *LiveGiftingFree, err error, )
星を投げる/種を投げる。
type LivePolling ¶ added in v0.4.0
type LivePolling struct { Is_login bool // ログインしているか? Show_login_dialog int Online_user_num int // 視聴者数 Active_fan struct { Can_boostable bool User struct { Before_level int Titile_id int Current_level int } Room struct { Total_user_count int // Fan_name string // ファンの名称 } } Live_watch_incentive struct { Ok int // 1:星・種をもらえた Is_amateur string // "1": フリー } Toast struct { Message string // 星・種集めのトーストの文面はここにある } }
func ApiLivePolling ¶ added in v0.4.0
func ApiLivePolling( client *http.Client, room_id int, ) ( livepolling *LivePolling, err error, )
星・種をもらえたことを確認する。 配信状況を確認し、room_url_key から room_id を取得する。
type Mission ¶ added in v1.4.0
type Mission struct { GenreList []struct { Priority int `json:"priority"` CurrentPeriod string `json:"current_period"` Night struct { SingleMission []struct { Reward string `json:"reward"` RemainReward int `json:"remain_reward"` TargetValue int `json:"target_value"` MissionID int `json:"mission_id"` MaxLevel int `json:"max_level"` CurrentLevel int `json:"current_level"` RewardType string `json:"reward_type"` RewardID int `json:"reward_id"` RewardNum int `json:"reward_num"` CurrentValue int `json:"current_value"` RewardURL string `json:"reward_url"` Title string `json:"title"` RewardName string `json:"reward_name"` } `json:"single_mission"` CompositeMission struct { Reward string `json:"reward"` RemainReward int `json:"remain_reward"` TargetValue int `json:"target_value"` MissionID int `json:"mission_id"` MaxLevel int `json:"max_level"` CurrentLevel int `json:"current_level"` RewardType string `json:"reward_type"` RewardID int `json:"reward_id"` RewardNum int `json:"reward_num"` CurrentValue int `json:"current_value"` RewardURL string `json:"reward_url"` Title string `json:"title"` RewardName string `json:"reward_name"` } `json:"composite_mission"` EndAt int `json:"end_at"` ContinuousMission []struct { Reward string `json:"reward"` RemainReward int `json:"remain_reward"` TargetValue int `json:"target_value"` MissionID int `json:"mission_id"` MaxLevel int `json:"max_level"` CurrentLevel int `json:"current_level"` // 視聴が終わったルームの数 RewardType string `json:"reward_type"` RewardID int `json:"reward_id"` RewardNum int `json:"reward_num"` CurrentValue int `json:"current_value"` RewardURL string `json:"reward_url"` Title string `json:"title"` RewardName string `json:"reward_name"` // "配信を視聴しよう(20/20)" } `json:"continuous_mission"` StartAt int `json:"start_at"` } `json:"night"` Day struct { SingleMission []struct { Reward string `json:"reward"` RemainReward int `json:"remain_reward"` TargetValue int `json:"target_value"` MissionID int `json:"mission_id"` MaxLevel int `json:"max_level"` CurrentLevel int `json:"current_level"` RewardType string `json:"reward_type"` RewardID int `json:"reward_id"` RewardNum int `json:"reward_num"` CurrentValue int `json:"current_value"` RewardURL string `json:"reward_url"` Title string `json:"title"` RewardName string `json:"reward_name"` } `json:"single_mission"` CompositeMission struct { Reward string `json:"reward"` RemainReward int `json:"remain_reward"` TargetValue int `json:"target_value"` MissionID int `json:"mission_id"` MaxLevel int `json:"max_level"` CurrentLevel int `json:"current_level"` RewardType string `json:"reward_type"` RewardID int `json:"reward_id"` RewardNum int `json:"reward_num"` CurrentValue int `json:"current_value"` RewardURL string `json:"reward_url"` Title string `json:"title"` RewardName string `json:"reward_name"` } `json:"composite_mission"` EndAt int `json:"end_at"` ContinuousMission []struct { Reward string `json:"reward"` RemainReward int `json:"remain_reward"` TargetValue int `json:"target_value"` MissionID int `json:"mission_id"` MaxLevel int `json:"max_level"` CurrentLevel int `json:"current_level"` RewardType string `json:"reward_type"` RewardID int `json:"reward_id"` RewardNum int `json:"reward_num"` CurrentValue int `json:"current_value"` RewardURL string `json:"reward_url"` Title string `json:"title"` RewardName string `json:"reward_name"` } `json:"continuous_mission"` StartAt int `json:"start_at"` } `json:"day"` Name string `json:"name"` MissionGenreID int `json:"mission_genre_id"` Genre string `json:"genre"` } `json:"genre_list"` }
type ResEvent ¶ added in v1.8.0
type ResEvent struct { EventID int `json:"event_id"` EventName string `json:"event_name"` Image string `json:"image"` EventURL string `json:"event_url"` EndAnimation []EndAnimation `json:"end_animation"` EventType string `json:"event_type"` StartedAt int `json:"started_at"` EndedAt int `json:"ended_at"` RemainTime int `json:"remain_time"` EventDescription string `json:"event_description"` AdditionalEventPoints []any `json:"additional_event_points"` AdditionalEventPointSum int `json:"additional_event_point_sum"` TutorialURL string `json:"tutorial_url"` ContributionRanking []ContributionRanking `json:"contribution_ranking"` Quest Quest `json:"quest"` ShowRanking int `json:"show_ranking"` ResRanking ResRanking `json:"ranking"` }
type ResRanking ¶ added in v1.8.0
type ResRanking struct { BeforeRank int `json:"before_rank"` MaxRank int `json:"max_rank"` Point int `json:"point"` Gap int `json:"gap"` Text string `json:"text"` SequenceNum int `json:"sequence_num"` IsAnimation int `json:"is_animation"` NextRank int `json:"next_rank"` Rank int `json:"rank"` LargeRank int `json:"large_rank"` LowerRank int `json:"lower_rank"` LowerGap int `json:"lower_gap"` EventBlockDivisionID int `json:"event_block_division_id"` }
type RoomEvnetAndSupport ¶ added in v0.1.0
type RoomEvnetAndSupport struct { Support any `json:"support"` ResEvent ResEvent `json:"event"` RegularEvent any `json:"regular_event"` }
イベントの順位と獲得ポイント
// JSONには他にもいろんなフィールドがあります。 // ぜったい必要そうなものとフィールドの作りが面倒そうなところだけ構造体にしてあります。
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// クエスト獲得フラグ? } } } }
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 RoomFollowed ¶ added in v0.6.0
type RoomFollowed struct { Is_official int // 0:Free, 1:Official Image_l string // 画像 Room_description string // ルーム概要 Room_url_key string // 配信ページのURLの最後のフィールド Next_live string // "未定"または"11/25 18:00"の形式 Image_m string // 未確認 Has_next_live int // null:配信予定なし, 1:配信予定あり Is_online int // 0: 配信中ではない, Room_id string // RoomIDを文字列にしたもの Room_name string // ルーム名 Open_fan_club int // null:ファンルームなし、1:ファンルームあり }
func GetFollowRoomsByApi ¶ added in v0.6.0
func GetFollowRoomsByApi( client *http.Client, ) ( roomsfollowed []RoomFollowed, err error, )
フォローしているすべてのルームの一覧を取得する。
type RoomInf ¶ added in v1.0.0
type RoomInf struct { Name string // ルーム名のリスト Longname string Shortname string Account string // アカウントのリスト、アカウントは配信のURLの最後の部分の英数字です。 ID string // IDのリスト、IDはプロフィールのURLの最後の部分で5~6桁の数字です。 Userno int // APIで取得できるデータ(1) Genre string Rank string Irank int Nrank int Prank int Followers int Sfollowers string Fans int Fans_lst int Level int Slevel string // APIで取得できるデータ(2) Order int Point int // イベント終了後12時間〜36時間はイベントページから取得できることもある Spoint string Istarget string Graph string Iscntrbpoint string Color string Colorvalue string // Colorinflist ColorInfList Formid string Eventid string Status string Statuscolor string }
type RoomInfAll ¶ added in v1.3.0
type RoomInfAll struct { PrevLeagueID int `json:"prev_league_id"` ImageList []struct { MOriginal string `json:"m_original"` Ts int `json:"ts"` ID int `json:"id"` M string `json:"m"` } `json:"image_list"` BannerList []struct { URL string `json:"url"` Image string `json:"image"` } `json:"banner_list"` IsTalkOnline bool `json:"is_talk_online"` AwardList interface{} `json:"award_list"` // <== 要確認 PushSendStatus struct { } `json:"push_send_status"` PerformerName string `json:"performer_name"` FollowerNum int `json:"follower_num"` // フォロワー数 LiveContinuousDays int `json:"live_continuous_days"` NextLeagueID int `json:"next_league_id"` LiveID int `json:"live_id"` LeagueID int `json:"league_id"` IsOfficial bool `json:"is_official"` IsFollow bool `json:"is_follow"` VoiceList []struct { MOriginal interface{} `json:"m_original"` Ts int `json:"ts"` ID int `json:"id"` M string `json:"m"` } `json:"voice_list"` ShowRankSubdivided string `json:"show_rank_subdivided"` // 現在のランク 例 SS-5 Event struct { EndedAt int64 `json:"ended_at"` // unix time EventID int `json:"event_id"` // これが本来のイベント識別子? StartedAt int64 `json:"started_at"` // unix time URL string `json:"url"` // 最後のフィールドが event_url_key (プログラム中ではこれを eventid としていることがある。 Name string `json:"name"` Label struct { Color string `json:"color"` Text string `json:"text"` } `json:"label"` Image string `json:"image"` } `json:"event"` IsBirthday bool `json:"is_birthday"` Description string `json:"description"` LiveTags []struct { Name string `json:"name"` ID int `json:"id"` } `json:"live_tags"` GenreID int `json:"genre_id"` // 101: Music, DisplayedMedals []struct { MedalID int `json:"medal_id"` EventName string `json:"event_name"` MedalName string `json:"medal_name"` Displayed int `json:"displayed"` ImageURL string `json:"image_url"` Description string `json:"description"` } `json:"displayed_medals"` PrevScore int `json:"prev_score"` // 下位のランクまでのポイント YoutubeID string `json:"youtube_id"` VisitCount int `json:"visit_count"` RecommendCommentList []struct { CreatedAt int `json:"created_at"` Comment string `json:"comment"` User struct { Name string `json:"name"` Image string `json:"image"` } `json:"user"` } `json:"recommend_comment_list"` CurrentLiveStartedAt int64 `json:"current_live_started_at"` // unix time NextShowRankSubdivided string `json:"next_show_rank_subdivided"` SnsList []struct { Icon string `json:"icon"` URL string `json:"url"` Name string `json:"name"` } `json:"sns_list"` RecommendCommentsURL string `json:"recommend_comments_url"` RoomURLKey string `json:"room_url_key"` // 配信画面のURLの最後のフィールド LeagueLabel string `json:"league_label"` // 例 SS IsLiveTagCampaignOpened bool `json:"is_live_tag_campaign_opened"` Avatar struct { Description string `json:"description"` List []string `json:"list"` } `json:"avatar"` PrevShowRankSubdivided string `json:"prev_show_rank_subdivided"` // 例 SS-4 IsTalkOpened bool `json:"is_talk_opened"` ImageSquare string `json:"image_square"` RecommendCommentPostURL string `json:"recommend_comment_post_url"` GenreName string `json:"genre_name"` // ジャンル名 RoomName string `json:"room_name"` // ルーム名 = main_name ? Birthday int64 `json:"birthday"` RoomLevel int `json:"room_level"` // ルームレベル PartyLiveStatus int `json:"party_live_status"` Party struct { } `json:"party"` EcConfig struct { SalesAvailable int `json:"sales_available"` IsExternalEc int `json:"is_external_ec"` Links []interface{} `json:"links"` } `json:"ec_config"` Image string `json:"image"` RecommendCommentOpenStatus int `json:"recommend_comment_open_status"` MainName string `json:"main_name"` // ルーム名 = room_name ? ViewNum int `json:"view_num"` HasMoreRecommendComment bool `json:"has_more_recommend_comment"` IsPartyEnabled bool `json:"is_party_enabled"` PremiumRoomType int `json:"premium_room_type"` NextScore int `json:"next_score"` // 上位のランクまでのポイント IsOnlive bool `json:"is_onlive"` RoomID int `json:"room_id"` // ルーム識別子 // エラーが発生したときのレスポンス Errors []struct { ErrorUserMsg string `json:"error_user_msg"` Message string `json:"message"` Code int `json:"code"` } `json:"errors"` }
func ApiRoomProfile ¶ added in v1.0.0
func ApiRoomProfile( client *http.Client, room_id string, ) ( proominfall *RoomInfAll, err error, )
type RoomListInf ¶ added in v0.5.0
type RoomListInf struct {
RoomList []Room
}
func GetRoominfFromEventByApi ¶ added in v0.5.0
func GetRoominfFromEventByApi( client *http.Client, eventid int, ib int, ie int, ) ( roomlistinf *RoomListInf, err error, )
イベント参加中のルーム情報の一覧を取得する。
type RoomNextlive ¶ added in v0.5.0
type RoomNextlive struct { Epoch int64 // 次回配信開始時刻(UnixTime) Text string // 次回配信開始時刻( "1/2 15:04" ) }
func ApiRoomNextlive ¶ added in v0.5.0
func ApiRoomNextlive( client *http.Client, room_id int, ) ( roomnextlive *RoomNextlive, err error, )
次回配信時刻を取得する
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, )
配信中のルームの一覧を取得する
type RoomRanking ¶ added in v1.3.0
type RoomStatus ¶ added in v0.3.0
type RoomStatus struct { Started_at int64 // 配信開始時刻(UnixTime) Is_live bool // 配信中か? Live_status int // 0|2 Is_enquete bool // アンケートが行われているか? Live_id int // 配信の識別子 Is_official bool // 公式か? Genre_id int // 配信ジャンル(Freeだったら200みたいなの) Room_id int // ルームの識別子 Room_name string // ルーム名 Room_url_key string // 配信時URLの最後のフィールド Is_owner bool Is_fav bool Youtube_id string // 非配信時Youtube動画( https://www.youtube.com/watch?v=4{Youtube_id}) Did_send_live_bad_report bool Can_comment bool Background_image_url string Video_type int Broadcast_host string Broadcast_port int Broadcast_key string Image_s string Nsta_owner bool Live_type int Live_user_key string Twitter struct { Text string Url string } } }
func ApiRoomStatus ¶ added in v0.3.0
func ApiRoomStatus( client *http.Client, room_url_key string, ) ( roomstatus *RoomStatus, err error, )
配信状況を確認し、room_url_key から room_id を取得する。
type RoomsPastevents ¶ added in v1.3.0
type RoomsPastevents struct { LastPage int `json:"last_page"` CurrentPage int `json:"current_page"` NextPage int `json:"next_page"` FavoriteEvents interface{} `json:"favorite_events"` TotalEntries int `json:"total_entries"` PreviousPage int `json:"previous_page"` Events []struct { EventName string `json:"event_name"` EventID int `json:"event_id"` EventType string `json:"event_type"` Image string `json:"image"` EndedAt int `json:"ended_at"` IsFavorite int `json:"is_favorite"` StartedAt int `json:"started_at"` ShowRanking int `json:"show_ranking"` } `json:"events"` FirstPage int `json:"first_page"` }
func ApiRoomsPast_events ¶ added in v1.3.0
func ApiRoomsPast_events( client *http.Client, roomid int, page int, ) ( rpe *RoomsPastevents, err error, )
指定したルームのこれまで参加したイベントの一覧を取得する。 ルームIDとページ番号を指定する。 ページ番号は1から始まる。
func GetRoomsPasteventsByApi ¶ added in v1.3.0
func GetRoomsPasteventsByApi( client *http.Client, roomid int, ) ( roomspastevents *RoomsPastevents, err error, )
指定したルームが過去にエントリーしたすべてのイベントを取得する
type Support ¶ added in v1.8.0
type Support struct { SupportID int `json:"support_id"` GoalPoint int `json:"goal_point"` IsAchieved bool `json:"is_achieved"` CurrentPoint int `json:"current_point"` NextLevel int `json:"next_level"` Title string `json:"title"` TutorialURL string `json:"tutorial_url"` SupportUsers []SupportUsers `json:"support_users"` SupportMyPoint int `json:"support_my_point"` }
type SupportUsers ¶ added in v1.8.0
type UgrRanking ¶ added in v1.4.1
type UserDetail ¶
type UserDetail struct { User_id int // ユーザーID=リスナーの識別子、ログインしていない場合は 0 となる。 Name string // ユーザー名=リスナー名 Age int Regidence int Description string Image string Birthday string Is_ng_nick_name bool // ? // エラー情報 // ログインしている場合は空配列となる模様。 // ログインしていない場合は // 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, )
(ログインしている)リスナーの情報を取得する
Source Files ¶
- ApiActive_fanRoom.go
- ApiActivefanNextlevel.go
- ApiCdnGiftRanking.go
- ApiCdnGiftRankingContribution.go
- ApiCdnSeasonAwardRanking.go
- ApiCsrftoken.go
- ApiEventContribution_ranking.go
- ApiEventGiftRanking.go
- ApiEventRoomList.go
- ApiEventSearch.go
- ApiEventsRanking.go
- ApiEvnetBlockRanking.go
- ApiFollowRooms.go
- ApiGenre_ranking.go
- ApiLiveBulkGiftingFree.go
- ApiLiveCurrentUser.go
- ApiLiveGiftingFree.go
- ApiLiveOnlives.go
- ApiLivePolling.go
- ApiMission.go
- ApiRoomEventAndSupport.go
- ApiRoomNextlive.go
- ApiRoomProfile.go
- ApiRoomProfile_v1_1_1.go
- ApiRoomStatus.go
- ApiRoomsPast_events.go
- ApiUserDetail.go
- ApiUserLogin.go
- CrawlRoomRanking.go
- srapi.go