ShowroomCGIlib

package
v2.0.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

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

参考 100行未満かつGo標準ライブラリだけで作る掲示板 https://news.mynavi.jp/techplus/article/gogogo-9/

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 © 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

Index

Constants

View Source
const MaxAcq = 5
View Source
const VerFileIOlib = "11AA00"
View Source
const Version = "11BZ05"

0100L1 安定版(~2021.12.26) 0100M0 vscodeでの指摘箇所の修正 0101A0 LinuxとMySQL8.0に対応する。 0101B0 OSとWebサーバに応じた処理を行うようにする。アクセスログを作成する。 0101B1 実行時パラメータをファイルから与えるように変更する。 0101C0 GetRoomInfoByAPI()に配信開始時刻の取得を追加する。 0101D0 詳細なランク情報の導入(Nrank) 0101D1 "Next Live"の表示を追加する。 0101D2 GetScoreEvery5Minutes RU20E4 に適合するバージョン 0101D3 ランクをshow_rank_subdividedからleague_labe + lshow_rank_subdivided にする。 0101E1 環境設定ファイルをyaml形式に変更する。 0101G0 配信枠別貢献ポイントを導入する。 0101G1 list-last.gtplでは維新枠別貢献ポイントの記録があるルームのみリンクを作成する。 0101G2 list-last.gtplにジャンルを追加した。 0101G3 リスナー貢献ポイントの履歴の表示(list-cntrbH)を作成する。 0101G4 一つの貢献ポイントランキングの表示(list-cntrbS)を作成する(リスナー名の突き合わせのチェックが主目的) 0101G5 list-lasth.gtplのリロード予告の表示でデータ取得間隔が5分と固定されていたものを設定値に合わせるように変更する。 0101G6 ModminがIntervalminに対して不適切な値のときは修正して保存する。 0101G7 ランクに関しnext_scoreに加えprev_scoreの表示を追加する。ファンの数の表示を追加する。 0101H0 ファンレベル(/fanlevel)に関する画面を追加する。 0101J0 ファンダム王イベント参加者のファン数ランキングを作成する。 0101J2 終了したイベントについては無条件にルーム詳細情報(ランキング、フォロワ、レベル、ファン数)を出力しない。 0101J2a "ルーム詳細情報”の説明を追加した。 0101J3 イベントリストのRoom_IDに変えてルーム名を表示する。表示数を6から10にする。 0101J4 NewDocument()をNewDocumentFromReader()に変更する。list-last_h.gtplにルーム情報詳細表示/非表示のボタンを追加する。 0101J5 イベント選択(最近のイベント)にnobasisが0のイベントも表示する(テーブルuserにusernoが0のデータを追加することが必要) 10AA00 枠別貢献ポイントの「目標値(推定)」を追加する。 10AB00 枠別貢献ポイントのポイント、増分の表示でhumanaizeを使用する。リスナー別貢献ポイント履歴に達成状況欄を追加する。 10AB01 WebserverをDbconfig.Webserverに置き換える。枠別貢献ポイントのGTPLを変更する。GTPLのCRLFをLFに変更する。 10AC00 イベント一覧にModminとModsecを追加する。 10AD00 longnameの初期値をusernameに変更する。Apache2LinuxをApache2Ubuntuに訂正する。 10AD01 HandlerGraphPerDay()とHandlerGraphPerSlot()のApache2LinuxをApache2Ubuntuに訂正する。 10AD02 SelectScoreList()で前配信期間、獲得ポイントのデータがないとき上位のデータがコピーして使われないようにする。 10AE00 1. 貢献ポイントランキングの表示を詳細化する。 2. イベント情報ページの内容を表示できるようにする(次回更新準備) 10AE00a ルーム情報に下位ランクとの差を追加する(GTPLのみの変更) 10AF00 ブロックランキングに対応する(Event_id=30030のみの暫定対応) 10AF01 基準となる配信者のリストのサイズが0のときは対応する処理を行わない(異常終了対策、通常の運用では起きない) 10AG00 イベントリストの取得件数を10から20に変更する。 10AH00 stmt,err := Db.Prepare("...") と対になる defer stmt.Close() を追加する。 10AJ00 ブロックランキングに仮対応(Event_id=30030以外に拡張)する。イベントリストの表示イベント数を設定可能とする。 10AK00 ブロックランキングのイベント名にblockidを追加する。獲得ポイントの取得時刻の初期値を分散させる。 ------------------------------------- 以下公開版 ---------------------------------------------- 10AL00 イベント情報にieventid(本来のイベントID、5桁程度の整数)を追加する。 10AL01 イベントの配信者リストを取得するとき、順位にかかわらず獲得ポイントデータを取得する設定とする。 10AL02 イベントの配信者リストを取得するとき、順位にかかわらず獲得ポイントを表示する設定とする。 10AM00 Room_url_keyから取り除く文字列を"/"から"/r/"に変更する。 10AN00 ブロックランキングで貢献ポイントランキングへのリンクを作るときはイベントIDのからブロックIDを取り除く。 10AP00 DBサーバーに接続するときSSHの使用を可能にする。 10AQ00 GetWeightedCnt()で周回数の多い獲得ポイントの採用率が上がるように調整する。 10AQ01 MakePointPerSlot()のperslotの変数宣言をループの中に入れる(毎回初期化されるように) 11AA0l データベースへのアクセスをsrdblibに移行しつつある。グラフ表示で縮尺の設定を可能とする。 11AA02 intervalmin の値を5固定とする(異常終了に対する緊急対応) 11AA03 intervalminとintervalmin の適正でない入力を排除する。 11AB00 Event_Infの参照先をsrdblibからexsrapiに変更する。 11AB01 データベース保存時、Intervalminが0のときは強制的に5にする。 11AB02 データベース保存時、Intervalminが5でないときは強制的に5にする。 11AC00 開催中イベント一覧の機能を作成し関連箇所を修正する。 11AC01 FindPtPerSlot()でPrepare()に対するdefer Close()の抜けを補う。 11AC02 HandleListCntrb()でボーナスポイントに対する対応を行う。 11AC03 currentevent.gtpl 1行おきに背景色を変える。list-last_h.gtpl 結果が反映される時刻を正す。 11AD00 「SHOWROOMイベント情報ページからDBへのイベント参加ルーム情報の追加と更新」でイベントパラーメータがクリアされる問題を解決する。 11AE00 HandlerEventRoomList()でブロックイベントの参加ルーム一覧も表示できるようにする。 11AF00 開催予定イベント一覧の機能を追加する(HandlerScheduledEvent()) 11AF01 新規イベントの登録ができなくなった問題(=11AD00の修正で発生したデグレード)に対応する 11AG00 srdblib.SelectFromEvent()の実行前にはsrdblib.Tevent = "event"を行う。 これはSelectFromEvent()の引数とすべき。 11AH00 HandlerCurrentEvent()で全イベント表示、データ取得中イベントのみ表示の切り替えを可能にする。 11AJ00 終了イベント一覧の作成でルームによる絞り込みを可能にする。 11AJ01 終了イベント一覧の作成でルームによる絞り込みを可能にする(不具合の修正) 11AJ02 開催中イベント、終了イベントに関する機能へのリンク切れを解消する。 11AJ03 終了イベントリスト、終了イベントルームリストの表示を改善する。 11AJ04 ページ遷移のレイアウトの共通化を行い、トップ画面を簡素化する。 11AK00 終了イベントでイベントIDとルームIDによる検索を可能にする。 11AL00 画面遷移のためのリンクを新しい機能に合わせる。list-cntrbSで目標値を変更できるようにする。 11AM00 開始前のイベントの登録は開催予定イベントのリストから行い、ルームの登録はイベント開始まで行わない件についてGetAndInsertEventRoomInfo()のフローを変更する。 11AN00 順位に関わりなくデータ取得の対象とするルームの追加でルーム検索を可能とするための準備を行う。 11AN01 api/room/profileでエラーを起きたときエラーの内容をログ出力する。 11AN02 HandlerNewUser() DBにユーザデータが存在しないときlongname、shortnameにAPIで取得した値をセットする。 11AP00 「最近のイベントの獲得ポイント上位のルーム」(HandlerTopRoom())の機能を追加する。 11AP01 HandlerTopRoom()で日時範囲と表示数の設定を可能にする。 11AP02 GetUserInf()の抜けを補う。 11AQ00 掲示板機能を追加する。 11AQ01 掲示板機能について、HandlerWriteBbs()をHandlerDispBbs()に統合し、リモートアドレス、ユーザーエージェントを保存する。 11AQ02 HandlerDispBbs()に関して掲示板ページに直接来てもログが表示されるようにする。 11AQ03 終了イベント一覧の表示:51件表示し、50件ずつスクロールする。 11AQ04 ログメッセージを変更する(HandleListCntrb(),HandleListCntrbD(),HandleListCntrbH()) 〃 「(DB登録済み)イベント参加ルーム一覧(確認・編集)」で一覧にないルームを追加した直後の更新の不具合を修正する。 〃 掲示板の「前ページ」、「次ページ」の操作を終了イベント一覧と同様にする。 11AQ05 Prepare()のあとのdefer stmt.Close()とdefer rows.Close()の抜けを補う。 11AR00 「枠別貢献ポイント一覧表」でリスナーさんの配信枠別貢献ポイントの履歴が表示されないことがある問題の修正。 〃 ボット等からの接続を拒否(できるように)する。 11AS00 配信枠別貢献ポイントランキングでボット等から適正でないパラメータの要求を検出する。 11AT00 「イベント獲得ポイントランキング」でジャンルの指定を可能にする。 11AT01 MakePointPerDay()のログ出力を間引きする。 11AU00 終了したイベントの検索で、ルーム名、ルームIDで検索したとき、イベントの獲得ポイント上位のリストからイベント情報を見たとき該当ルームがどれかわかりやすくする。 11AV00 HandlerListLast()で確定値が発表されていないルームも表示するようにする。 11AV01 説明書きや表の項目名の修正 11AV02 scheduled-event.gtpl データ取得開始設定の説明を追加する。 11AW00 SelectCurrentScore() stmtを使いまわしているとことを別の変数にする。不具合ではないと思うが誤解を招きそうなので... 11AW01 SelectCurrentScore()の中のdeferでエラーが起きているか否かの検証を行う。 11AW02 説明書きや表の項目名の修正(追加) 11AX00 操作対象のテーブルをsrdblib.Teventで指定する方法から関数の引数とする方法に変える。 11AY00 HandlerShowRank()(SHOWランク上位配信者を表示する)を導入する。gorpを導入する。 11AZ00 userテーブルへのINSERTはsrdblib.InsertIntoUser()を用い、userテーブルのPDATEは原則として行わない。 11BA00 Genre, GenreIDの変更にともなう暫定対応(HandlerTopRoom())+ showrank.gtpl の説明を追加する。 11BB00 未使用の関数GetIsOnliveByAPI()の定義を削除する。グラフ画像ファイル名を生成順の連番とする。 11BB01 過去イベントの検索でルーム名、IDから絞り込む場合は開催中のイベントも検索対象に含める。 11BB02 画像ファイル名はCGIの場合は連番、独立したWebサーバーの場合はPIDの下3桁とする。 11BC00 JSONのデコードが失敗したときのもとデータ(bufstr)のログ出力をやめる(APIが期待する結果を戻さない場合があることがわかっているから) 11BC01 終了済イベントのソート順はendtime descを優先する。 11BD00 UpdateRoomInf()でistargetとiscntrbpointを"N"に設定することを禁止する。 11BD01 獲得ポイント取得対象ルームの範囲を指定しての登録は1〜20に限定する。 11BD02 獲得ポイントの推移のグラフの画面に「表示するルームを選ぶ」というボタンを追加する。 11BD03 獲得ポイントの推移のグラフの画面の「表示するルームを選ぶ」に「グラフの色を変える」を追加する。 〃 グラフ表示の最大ルーム数のデフォルト値を10から20に変更する。 11BE00 長期間に渡るイベントのグラフの表示方法を調整する。 11BE01 グラフ表示の最大ルーム数のデフォルト値を10から20に変更する(修正) 11BE02 list-last_h.gtplで「このページはブックマーク可能です」の文言を追加する。 11BF00 GraphScore01()でデータが連続していないとき(点になるとき)はcanvas.Circle()で描画する。 11BG00 GetAndInsertEventRoomInfo()でルーム情報の取得をGetEventsRankingByApi()を使う。block_id=0に対応する。 11BH00 HandlerGraphTotal()でグラフ線配色の初期化の機能を追加する。 11BH01 HandlerAddEvent()で起きているエラーの原因を特定するための情報を出力する。 11BH02 GetAndInsertEventRoomInfo()でeregがルーム数より大きいときはeregをルーム数に変更する。 11BH02a GetAndInsertEventRoomInfo()でeregがルーム数より大きいときはeregをルーム数に変更する。 11BJ00 GetUserInf()でハンドラーが呼ばれたときのパラメータを表示する 11BJ01 top21.gtplで登録できる順位を20から50に拡張する(new-event0.gtplは20のままとする) 11BK00 HandlerEventList()がApiRoomStatus()とApiRoomNext()でエラーを起こしても処理を継続する。 11BM00 HandlerListGiftScore()を作成する 11BN00 HandlerListFanGiftScore()を作成する、HandlerGraphGiftScore()を準備する。 11BN01 HandlerListGiftScore()でGiftid(Grid)の選択を可能にする準備をする。 11BN02 HandlerListGiftScore()でmaxacqとlimitを可変にする。 11BN03 HandlerListFanGiftScore()でmaxacqとlimitを可変にする。 11BN04 DrawLineGraph()を作成する準備をする。 11BN05 list-gs-h1.gtpl, list-vgs-h1.gtpl のレイアウトを調整する。 11BQ00 ギフトランキングのグラフ(HandlerGraphGiftScore())を作成する。 11BQ01 top.gtpl ギフトランキングのタイトルをより具体的にする 11BQ02 X軸の最小値を10,000から1,000に変更する 11BQ03 Viewerから(本来なかった)Ordernoを削除したことに対しSelectViewerid2Order()を修正する。 11BR00 ギフトランキング貢献ランキング(HandlerGiftScoreCntrb())を作成する 11BS00 「修羅の道ランキング」(Giftid=13)のために表示の変更(獲得ポイントが取得できないため) 11BS01 ギフトランキング貢献ランキング(HandlerGiftScoreCntrb())をギフトランキングから呼び出す 11BS02 グラフの凡例(ルーム名)の前に順位を表示する(すべてのルームのデータを表示するわけではないので) 11BS03 グラフ表示にあたらしいカラーマップを追加し、カラーマップの扱い方を変更する 11BT00 localhostからログインしたときは開催予定のイベントのルームを登録できる 11BU00 HandlerAddEvent()を分離し、バグを修正する。 11BT00 参加ルームの登録を行うときpoint==0のルームは除外する 11BW00 〃、獲得ポイント一覧(HandlerListLast())でレベルイベントは順位のかわりにレベルを表示する 11BW01 HandlerAddEvent())でレベルイベントの獲得ポイント0で除外したルームがルーム一覧に表示されないようにする。 11BV00 獲得ポイント全データのダウンロード機能(HandlerDlAllPoints())を追加する。 11BX00 HandlerAddEvent()でweventを使ったあとeventに戻すようにする(獲得ポイントグラフの配色の初期化ができない問題の解決)

ルームがなくてもイベント登録ができるようにする。

11BY00 HandlerListLast()でのデフォルトの表示を上位15ルームにする。 11BY01 HandlerListLast()で15ルームのときは「もっと見る」ボタンを表示しない。 11BY02 HandlerListLast()で15ルームのときは「もっと見る」ボタンを表示しない。HadlerNewUser()を分離する。 11BX00 データ取得対象範囲の修正にともなってHandlerAddEvent()の一部機能をメンテナンス中とする。 11BX01 イベント単位で"足切り"を行う 11BZ00 アクセスログをDBに保存する。開催中イベント一覧でアクセス数の多いイベントをマークアップする。 11BZ01 SetThdata()をexsrapiへ移動する。HandlerListLast()でレベルイベントの表示順を検討する。 11BZ02 HandlerCurrentEvents()での強調表示の対象選択を変更する。 11BZ03 SetThdata()をReadThdata()とSetThdata()に分離する(SRGCIと共通)、HadlerNewEvent.gow別ファイルとする。 11BZ04 コメント化されたソースを削除する。 11BZ05 獲得ポイントダウンロードでのファイル名の誤り(yyyydddd)を正す(yyyymmdd)

Variables

View Source
var Colormaplist []Colormap = []Colormap{
	{
		{"#00FFFF", "#00FFFF"},
		{"#FF00FF", "#FF00FF"},
		{"#FFFF00", "#FFFF00"},

		{"#7F7FFF", "#7F7FFF"},
		{"#FF7F7F", "#FF7F7F"},
		{"#7FFF7F", "#7FFF7F"},

		{"#7FBFFF", "#7FBFFF"},
		{"#FF7FBF", "#FF7FBF"},
		{"#BFFF7F", "#BFFF7F"},

		{"#7FFFFF", "#7FFFFF"},
		{"#FF7FFF", "#FF7FFF"},
		{"#FFFF7F", "#FFFF7F"},

		{"#7FFFBF", "#7FFFBF"},
		{"#BF7FFF", "#BF7FFF"},
		{"#FFBF7F", "#FFBF7F"},

		{"#ADADFF", "#ADADFF"},
		{"#FFADAD", "#FFADAD"},
		{"#ADFFAD", "#7FFFAD"},

		{"#ADD6FF", "#ADD6FF"},
		{"#FFADD6", "#FFADD6"},
		{"#D6FFAD", "#D6FFAD"},

		{"#ADFFFF", "#ADFFFF"},
		{"#FFADFF", "#FFADFF"},
		{"#FFFFAD", "#FFFFAD"},

		{"#ADFFD6", "#ADFFD6"},
		{"#D6ADFF", "#D6ADFF"},
		{"#FFD6AD", "#FFD6AD"},
	},

	{
		{"cyan", "cyan"},
		{"magenta", "magenta"},
		{"yellow", "yellow"},
		{"royalblue", "royalblue"},
		{"coral", "coral"},
		{"khaki", "khaki"},
		{"deepskyblue", "deepskyblue"},
		{"crimson", "crimson"},
		{"orange", "orange"},
		{"lightsteelblue", "lightsteelblue"},
		{"pink", "pink"},
		{"sienna", "sienna"},
		{"springgreen", "springgreen"},
		{"blueviolet", "blueviolet"},
		{"salmon", "salmon"},
		{"lime", "lime"},
		{"red", "red"},
		{"darkorange", "darkorange"},
		{"skyblue", "skyblue"},
		{"lightpink", "lightpink"},
	},
	{
		{"red", "#FF2800"},
		{"yellow", "#FAF500"},
		{"green", "#35A16B"},
		{"blue", "#0041FF"},
		{"skyblue", "#66CCFF"},
		{"lightpink", "#FFD1D1"},
		{"orange", "#FF9900"},
		{"purple", "#9A0079"},
		{"brown", "#663300"},
		{"lightgreen", "#87D7B0"},
		{"white", "#FFFFFF"},
		{"gray", "#77878F"},
	},
}

https://www.fukushihoken.metro.tokyo.lg.jp/kiban/machizukuri/kanren/color.files/colorudguideline.pdf

View Source
var DenyIpList []DenyIp
View Source
var Event_inf exsrapi.Event_Inf
View Source
var Nfseq int
View Source
var SortByFollowers bool

Functions

func DetXaxScale

func DetXaxScale(
	xupper float64,
) (
	xscaled int,
	xscalet int,
	status int,
)

func DetYaxScale

func DetYaxScale(
	maxpoint int,
) (
	yupper int,
	yscales int,
	yscalel int,
	status int,
)

func DrawLineGraph added in v1.6.0

func DrawLineGraph(
	filename string,
	title0 string,
	title1 string,
	title2 string,
	maxpoint int,
	tmaxpoint int,
	target int,
	start_time time.Time,
	end_time time.Time,
	cmap int,
	deltax float64,
	IDlist []int,
	xydata *[]Xydata,
) (
	err error,
)

func FindHistoricalData added in v1.1.0

func FindHistoricalData(
	eventinflist *[]exsrapi.Event_Inf,
) (
	err error,
)

イベントがeventとwebentに共通して存在するかチェックする。

func FindPtPerSlot added in v1.1.0

func FindPtPerSlot(eventid string, roomlist *[]srapi.Room) (
	err error,
)

func GetAciveFanByAPI

func GetAciveFanByAPI(room_id string, yyyymm string) (nofan int)

func GetEventInf

func GetEventInf(
	eventid string,
	eventinfo *exsrapi.Event_Inf,
) (
	status int,
)

func GetEventInfAndRoomList

func GetEventInfAndRoomList(
	eventid string,
	breg int,
	ereg int,
	eventinfo *exsrapi.Event_Inf,
	roominfolist *RoomInfoList,
) (
	status int,
)

func GetEventInfAndRoomListBR

func GetEventInfAndRoomListBR(
	client *http.Client,
	eventid string,
	breg int,
	ereg int,
	eventinfo *exsrapi.Event_Inf,
	roominfolist *RoomInfoList,
) (
	status int,
)

func GetEventListByAPI

func GetEventListByAPI(eventinflist *[]exsrapi.Event_Inf) (status int)

func GetGiftRanking added in v1.6.0

func GetGiftRanking(
	gsheader *GsHeader,
	grid int,
	grtype string,
) (
	err error,
)

func GetNextliveByAPI

func GetNextliveByAPI(room_id string) (
	nextlive string,
	status int,
)

func GetPointsByAPI

func GetPointsByAPI(id string) (Point, Rank, Gap int, EventID string)

idで指定した配信者さんの獲得ポイントを取得する。 戻り値は 獲得ポイント、順位、上位とのポイント差(1位の場合は2位とのポイント差)、イベント名 レベルイベントのときは順位、上位とのポイント差は0がセットされる。

func GetRoomInfoByAPI

func GetRoomInfoByAPI(room_id string) (
	genre string,
	rank string,
	nrank string,
	prank string,
	level int,
	followers int,
	fans int,
	fans_lst int,
	roomname string,
	roomurlkey string,
	startedat time.Time,
	status int,
)

func GetSerialFromYymmddHhmmss

func GetSerialFromYymmddHhmmss(yymmdd, hhmmss string) (tserial float64)

func GetUserInf

func GetUserInf(r *http.Request) (
	ra string,
	ua string,
	isallow bool,
)

func GetUserInfForHistory

func GetUserInfForHistory(client *http.Client) (status int)

func GetWeightedCnt

func GetWeightedCnt(pcl Pclist, nfr int)

func GraphGiftScore added in v1.6.0

func GraphGiftScore(
	campaign *srdblib.Campaign,
	giftranking *srdblib.GiftRanking,
	nroom int,
	maxpoint int,
	target int,
	gscale int,
) (
	filename string,
	err error,
)

func GraphPerDay

func GraphPerDay(
	eventid string,
	pointperday *PointPerDay,
) (
	filename string,
	status int,
)

func GraphPerSlot

func GraphPerSlot(
	eventid string,
	perslotinflist *[]PerSlotInf,
) (
	filename string,
	status int,
)

func GraphScore01

func GraphScore01(
	filename string,
	eventname string,
	idandranklist []IdAndRank,
	period string, maxpoint int,
)

グラフを描画する=SVGを作成する

func GraphTotalPoints

func GraphTotalPoints(eventid string, maxpoint int, gscale int) (filename string, status int)

func HandlerAddEvent

func HandlerAddEvent(w http.ResponseWriter, r *http.Request)

イベントを獲得ポイントデータ取得の対象としてeventテーブルに登録する。 イベントが開催中であれば指定した順位内のルームを取得対象として登録する。 イベントが開催予定のものであればルームの登録は行わない。 イベント開催中、開催予定にかかわらず、取得対象ルームの追加は srAddNewOnes で行われる。

func HandlerClosedEventRoomList added in v1.2.0

func HandlerClosedEventRoomList(
	w http.ResponseWriter,
	r *http.Request,
)
ApiEventRoomList() の戻り値を表示する。

Ver. 0.1.0

"/ApiEventRoomList()"に対するハンドラー http://localhost:8080/apieventroomlist で呼び出される

func HandlerClosedEvents added in v1.2.0

func HandlerClosedEvents(
	w http.ResponseWriter,
	r *http.Request,
)

終了イベント一覧を作るためのハンドラー

Ver. 0.1.0

func HandlerCsvTotal

func HandlerCsvTotal(w http.ResponseWriter, r *http.Request)

func HandlerCurrentDistributors added in v1.2.0

func HandlerCurrentDistributors(
	w http.ResponseWriter,
	r *http.Request,
)

"/t009top"に対するハンドラー http://localhost:8080/t009top で呼び出される

func HandlerCurrentEvents added in v1.2.0

func HandlerCurrentEvents(
	w http.ResponseWriter,
	r *http.Request,
)

"/T999Dtop"に対するハンドラー http://localhost:8080/T999Dtop で呼び出される

func HandlerDispBbs added in v1.4.0

func HandlerDispBbs(w http.ResponseWriter, r *http.Request)

リクエストの内容によって投稿を書き込み、あるいは投稿一覧を表示する

func HandlerDlAllPoints

func HandlerDlAllPoints(w http.ResponseWriter, r *http.Request)

イベントを獲得ポイントデータ取得の対象としてeventテーブルに登録する。 イベントが開催中であれば指定した順位内のルームを取得対象として登録する。 イベントが開催予定のものであればルームの登録は行わない。 イベント開催中、開催予定にかかわらず、取得対象ルームの追加は srAddNewOnes で行われる。

func HandlerEditUser

func HandlerEditUser(w http.ResponseWriter, r *http.Request)

func HandlerEventRoomList added in v1.1.0

func HandlerEventRoomList(
	w http.ResponseWriter,
	r *http.Request,
)

"/ApiEventRoomList()"に対するハンドラー http://localhost:8080/apieventroomlist で呼び出される

func HandlerFanLevel

func HandlerFanLevel(w http.ResponseWriter, req *http.Request)

func HandlerFlRanking

func HandlerFlRanking(w http.ResponseWriter, req *http.Request)

func HandlerGraphDfr

func HandlerGraphDfr(w http.ResponseWriter, r *http.Request)

func HandlerGraphGiftScore added in v1.6.0

func HandlerGraphGiftScore(w http.ResponseWriter, req *http.Request)

func HandlerGraphPerday

func HandlerGraphPerday(w http.ResponseWriter, r *http.Request)

func HandlerGraphPerslot

func HandlerGraphPerslot(w http.ResponseWriter, r *http.Request)

func HandlerGraphTotal

func HandlerGraphTotal(w http.ResponseWriter, req *http.Request)

func HandlerListCntrb

func HandlerListCntrb(w http.ResponseWriter, req *http.Request)

func HandlerListCntrbH

func HandlerListCntrbH(w http.ResponseWriter, req *http.Request)

func HandlerListCntrbS

func HandlerListCntrbS(w http.ResponseWriter, req *http.Request)

func HandlerListFanGiftScore added in v1.6.0

func HandlerListFanGiftScore(w http.ResponseWriter, req *http.Request)

func HandlerListGiftScore added in v1.6.0

func HandlerListGiftScore(w http.ResponseWriter, req *http.Request)

func HandlerListGiftScoreCntrb added in v1.7.0

func HandlerListGiftScoreCntrb(w http.ResponseWriter, req *http.Request)

func HandlerListLast

func HandlerListLast(w http.ResponseWriter, req *http.Request)

func HandlerListLevel

func HandlerListLevel(w http.ResponseWriter, req *http.Request)

func HandlerListPerday

func HandlerListPerday(w http.ResponseWriter, r *http.Request)

func HandlerListPerslot

func HandlerListPerslot(w http.ResponseWriter, r *http.Request)

func HandlerNewEvent

func HandlerNewEvent(w http.ResponseWriter, r *http.Request)

func HandlerNewUser

func HandlerNewUser(w http.ResponseWriter, r *http.Request)

func HandlerParamEvent

func HandlerParamEvent(w http.ResponseWriter, r *http.Request)

func HandlerParamEventC

func HandlerParamEventC(w http.ResponseWriter, r *http.Request)

func HandlerParamGlobal

func HandlerParamGlobal(w http.ResponseWriter, r *http.Request)

func HandlerParamLocal

func HandlerParamLocal(w http.ResponseWriter, r *http.Request)

func HandlerScheduledEvents added in v1.2.0

func HandlerScheduledEvents(
	w http.ResponseWriter,
	r *http.Request,
)

"/T999Dtop"に対するハンドラー http://localhost:8080/T999Dtop で呼び出される

func HandlerScheduledEventsSvr added in v1.2.0

func HandlerScheduledEventsSvr(
	w http.ResponseWriter,
	r *http.Request,
)

"/t008top"に対するハンドラー http://localhost:8080/t008top で呼び出される

func HandlerShowRank added in v1.4.0

func HandlerShowRank(
	w http.ResponseWriter,
	r *http.Request,
)
HandlerShowRank()
	SHOWランク上位配信者を表示する

Ver. 0.1.0

http://localhost:8080/showrank で呼び出される

func HandlerTopForm

func HandlerTopForm(w http.ResponseWriter, r *http.Request)

入力フォーム画面

func HandlerTopRoom added in v1.3.0

func HandlerTopRoom(
	w http.ResponseWriter,
	r *http.Request,
)
SelectTopRoom() の戻り値を表示する。

Ver. 0.1.0

http://localhost:8080/toproom で呼び出される

func InsertEventInf

func InsertEventInf(localhot bool, eventinf *exsrapi.Event_Inf) (
	status int,
)

イベントを新規に登録する。 TODO: gorpを使うべき

func InsertIntoEventUser

func InsertIntoEventUser(i int, eventid string, roominf RoomInfo) (status int)

func InsertIntoOrUpdateUser

func InsertIntoOrUpdateUser(client *http.Client, tnow time.Time, eventid string, roominf RoomInfo) (status int)

func InsertRoomInf

func InsertRoomInf(client *http.Client, eventid string, roominfolist *RoomInfoList)

func InsertTargetIntoTimtable

func InsertTargetIntoTimtable(eventid string, userno int, ts time.Time, nfr int) (target int, status int)

func IsAllowIp added in v1.4.0

func IsAllowIp(sip string) bool

func Jtruncate added in v1.6.0

func Jtruncate(t time.Time) time.Time

func LoadDenyIp added in v1.4.0

func LoadDenyIp(filename string) (
	err error,
)

func Mark

func Mark(j int, canvas *svg.SVG, x0, y0, d float64, color string)

func Resetcolor added in v1.5.0

func Resetcolor(
	eventid string,
	cmap int,
) error
	グラフの色設定を初期化する。
 指定されたカラーマップを1位から順番にわりあてる。

func SelectAcqTimeList

func SelectAcqTimeList(eventid string, userno int) (acqtimelist []time.Time, status int)
        SelectAcqTimeList()
		指定したイベント、ユーザーの貢献ランキングを取得した時刻の一覧を取得する。

        引数
		eventid			string			イベントID
		userno			int				ユーザーID

        戻り値
        acqtimelist		[] time.Time	取得時刻一覧

func SelectCntrb

func SelectCntrb(
	eventid string,
	userno int,
	ts time.Time,
	cntrbinflist *[]CntrbInf,
	tlsnid2order map[int]int,
) (
	status int,
)
		指定したイベント、ユーザー、時刻の貢献ポイントランキングを取得する。
		ここでは順位と累計貢献ポイントは取得しない。

        引数
		eventid			string			イベントID
		userno			int				ユーザーID
		ts				int				ユーザーID
		loc				int				取得データの格納位置
		loc				int				データの格納場所( 0 だったら先頭)

        戻り値
        cntrbinflist	[] CntrbInf		貢献ポイントランキング(最終貢献ポイント順)
		stats			int				== 0 正常終了	!= 0 データベースアクセス時のエラー

func SelectCntrbHeader

func SelectCntrbHeader(
	eventid string,
	userno int,
	ts time.Time,
	cntrbheader *CntrbHeader,
) (
	status int,
)
        SelectCntrbHeader()
		貢献ランキング表のヘッダ部分に必要な配信開始・終了時刻を取得する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)
		cntrbheader		*CntrbHeader	配信開始・終了時刻を格納する構造体

        戻り値
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

func SelectEventNoAndName

func SelectEventNoAndName(eventid string) (
	eventname string,
	period string,
	status int,
)

func SelectEventRoomInfList

func SelectEventRoomInfList(
	eventid string,
	roominfolist *RoomInfoList,
) (
	eventname string,
	status int,
)

func SelectEventinflistFromEvent added in v1.1.0

func SelectEventinflistFromEvent(
	cond int,
	mode int,
	keyword string,
	kwevid string,
	limit int,
	offset int,
) (
	eventinflist []exsrapi.Event_Inf,
	err error,
)

指定した条件に該当するイベントのリストを作る。

func SelectEventinflistFromEventByRoom added in v1.2.0

func SelectEventinflistFromEventByRoom(
	cond int,
	mode int,
	userno int,
	limit int,
	offset int,
) (
	eventinflist []exsrapi.Event_Inf,
	err error,
)

指定した条件に該当するイベントのリストを作る。

func SelectGs added in v1.6.0

func SelectGs(
	grid int,
	ts time.Time,
	gslist *[]GsInf,
	userno2order map[int]int,
) (
	err error,
)
		指定したイベント、ユーザー、時刻の貢献ポイントランキングを取得する。
		ここでは順位と累計貢献ポイントは取得しない。

        引数
		eventid			string			イベントID
		userno			int				ユーザーID
		ts				int				ユーザーID
		loc				int				取得データの格納位置
		loc				int				データの格納場所( 0 だったら先頭)

        戻り値
        cntrbinflist	[] CntrbInf		貢献ポイントランキング(最終貢献ポイント順)
		stats			int				== 0 正常終了	!= 0 データベースアクセス時のエラー

func SelectGsAcqTimeList added in v1.6.0

func SelectGsAcqTimeList(
	grid int,
) (
	acqtimelist []time.Time,
	err error,
)
        SelectGsAcqTimeList()
		指定したgiftidのギフトランキングを取得した時刻の一覧を取得する。

        引数
		gift			int				ギフトid

        戻り値
        acqtimelist		[] time.Time	取得時刻一覧

func SelectGsHeader added in v1.6.0

func SelectGsHeader(
	grid int,
	ts time.Time,
	gsheader *GsHeader,
) (
	status int,
)
        SelectCntrbHeader()
		貢献ランキング表のヘッダ部分に必要な配信開始・終了時刻を取得する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)
		cntrbheader		*CntrbHeader	配信開始・終了時刻を格納する構造体

        戻り値
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

func SelectGsc added in v1.7.0

func SelectGsc(
	grid int,
	userno int,
	ts time.Time,
	gsclist *[]GscInf,
	viewerid2order map[int]int,
) (
	err error,
)
		指定したイベント、ユーザー、時刻の貢献ポイントランキングを取得する。
		ここでは順位と累計貢献ポイントは取得しない。

        引数
		eventid			string			イベントID
		userno			int				ユーザーID
		ts				int				ユーザーID
		loc				int				取得データの格納位置
		loc				int				データの格納場所( 0 だったら先頭)

        戻り値
        cntrbinflist	[] CntrbInf		貢献ポイントランキング(最終貢献ポイント順)
		stats			int				== 0 正常終了	!= 0 データベースアクセス時のエラー

func SelectGscAcqTimeList added in v1.7.0

func SelectGscAcqTimeList(
	grid int,
	userno int,
) (
	acqtimelist []time.Time,
	err error,
)
        SelectGsAcqTimeList()
		指定したgiftidのギフトランキングを取得した時刻の一覧を取得する。

        引数
		gift			int				ギフトid

        戻り値
        acqtimelist		[] time.Time	取得時刻一覧

func SelectGscHeader added in v1.7.0

func SelectGscHeader(
	grid int,
	ts time.Time,
	gscheader *GscHeader,
) (
	status int,
)
        SelectCntrbHeader()
		貢献ランキング表のヘッダ部分に必要な配信開始・終了時刻を取得する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)
		cntrbheader		*CntrbHeader	配信開始・終了時刻を格納する構造体

        戻り値
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

func SelectLastdataFromWeventuser added in v1.2.0

func SelectLastdataFromWeventuser(
	client *http.Client,
	eventurlkey string,
	ib int,
	ie int,
) (
	roomlistinf *srapi.RoomListInf,
	err error,
)

func SelectPointList

func SelectPointList(userno int, eventid string) (norow int, tp *[]time.Time, pp *[]int)

func SelectScoreList

func SelectScoreList(user_id int) (x *[]float64, y *[]float64)

func SelectShowRank added in v1.4.0

func SelectShowRank(
	client *http.Client,
	limit int,
) (
	userlist *[]srdblib.User,
	err error,
)

SHOWランク上位ルームを抽出する

func SelectTargetfromTimetable added in v1.2.0

func SelectTargetfromTimetable(
	eventid string,
	userno int,
	ts time.Time,
) (
	target int,
	err error,
)

func SelectTopRoom added in v1.3.0

func SelectTopRoom(
	client *http.Client,
	olim int,
	fromtime time.Time,
	totime time.Time,
	top *Top,
) (
	err error,
)

func SelectUserColor

func SelectUserColor(userno int, eventid string) (
	color string,
	colorvalue string,
	status int,
)

func SelectUserName

func SelectUserName(userno int) (
	longname string,
	shortname string,
	genre string,
	rank string,
	nrank string,
	prank string,
	level int,
	followers int,
	fans int,
	fans_lst int,
	status int,
)

func SelectUsernoAndName added in v1.2.0

func SelectUsernoAndName(
	Keywordrm string,
	limit int,
	offset int,
) (
	roomlist *[]Room,
	err error,
)

func SelectVgs added in v1.6.0

func SelectVgs(
	giftid int,
	ts time.Time,
	vgslist *[]VgsInf,
	viewerid2order map[int]int,
) (
	err error,
)
		指定したイベント、ユーザー、時刻の貢献ポイントランキングを取得する。
		ここでは順位と累計貢献ポイントは取得しない。

        引数
		eventid			string			イベントID
		userno			int				ユーザーID
		ts				int				ユーザーID
		loc				int				取得データの格納位置
		loc				int				データの格納場所( 0 だったら先頭)

        戻り値
        cntrbinflist	[] CntrbInf		貢献ポイントランキング(最終貢献ポイント順)
		stats			int				== 0 正常終了	!= 0 データベースアクセス時のエラー

func SelectVgsAcqTimeList added in v1.6.0

func SelectVgsAcqTimeList(
	giftid int,
) (
	acqtimelist []time.Time,
	err error,
)
        SelectGsAcqTimeList()
		指定したgiftidのギフトランキングを取得した時刻の一覧を取得する。

        引数
		gift			int				ギフトid

        戻り値
        acqtimelist		[] time.Time	取得時刻一覧

func SelectVgsHeader added in v1.6.0

func SelectVgsHeader(
	giftid int,
	ts time.Time,
	gsheader *GsHeader,
) (
	status int,
)
        SelectCntrbHeader()
		貢献ランキング表のヘッダ部分に必要な配信開始・終了時刻を取得する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)
		cntrbheader		*CntrbHeader	配信開始・終了時刻を格納する構造体

        戻り値
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

func UpdateEventInf

func UpdateEventInf(eventinf *exsrapi.Event_Inf) (
	status int,
)

func UpdateEventuserSetPoint

func UpdateEventuserSetPoint(eventid, userid string, point int) (status int)

func UpdatePointsSetQstatus

func UpdatePointsSetQstatus(
	eventid string,
	userno int,
	tstart string,
	tend string,
	point string,
) (status int)

func UpdateRoomInf

func UpdateRoomInf(eventid, suserno, longname, shortname, istarget, graph, color, iscntrbpoint string) (status int)

func UpdateTimetableSetTarget added in v1.2.0

func UpdateTimetableSetTarget(
	eventid string,
	userno int,
	ts time.Time,
	target int,
) (
	err error,
)

Types

type BBS added in v1.4.0

type BBS struct {
	Manager string //	コメント表示に使用する色
	Cntr    int    //	1: 不具合、	2: 要望、3: 質問、4: その他、5: お知らせ、9: すべて
	Cntlist []int  //	ラジオボタンの制御(1: 不具合、	2: 要望、3: 質問、4: その他、5: お知らせ、9: すべて)
	Offset  int    //	表示開始位置
	Limit   int    //	表示投稿数
	Nlog    int    //	読みこんだ投稿の数
	Loglist []Logm //	ログメッセージ
}

type CntrbH_Header

type CntrbH_Header struct {
	Eventid    string
	Eventname  string
	Period     string
	Maxpoint   int
	Gscale     int
	Userno     int
	Username   string
	ShortURL   string
	Tlsnid     int
	Listener   string
	Ie         int
	Tlsnid_b   int
	Listener_b string
	Tlsnid_f   int
	Listener_f string
}

type CntrbHeader

type CntrbHeader struct {
	Eventid      string
	Eventname    string
	Period       string
	Maxpoint     int
	Gscale       int
	Userno       int
	Username     string
	ShortURL     string
	Ier          int
	Iel          int
	S_stime      []string
	S_etime      []string
	Earned       []int
	Total        []int
	Target       []int
	Ifrm         []int
	Nof          []int
	Nft          int //	先頭に戻ったときの最後に表示される枠
	Npb          int //	1ページ戻る
	N1b          int //	一枠戻る
	Ncr          int
	N1f          int
	Npf          int
	Nlt          int
	Cntrbinflist *[]CntrbInf
}

type CntrbHistory

type CntrbHistory []CntrbHistoryInf

func SelectCntrbHistory

func SelectCntrbHistory(
	eventid string,
	userno int,
	tlsnid int,
	acqtimelist []time.Time,
) (
	cntrbhistory CntrbHistory,
	status int,
)

指定したリスナーの貢献ポイントの履歴を取得する。

type CntrbHistoryInf

type CntrbHistoryInf struct {
	S_stime     string
	S_etime     string
	Target      int
	Point       int
	Incremental int
	Listener    string
	Lastname    string
}

type CntrbInf

type CntrbInf struct {
	Ranking      int
	Point        int
	Incremental  []int
	ListenerName string
	LastName     string
	Tlsnid       int
	Eventid      string
	Userno       int
}

func SelectTlsnid2Order

func SelectTlsnid2Order(
	eventid string,
	userno int,
	ts time.Time,
) (
	cntrbinflist []CntrbInf,
	tlsnid2order map[int]int,
	status int,
)
        SelectTlsnid2Order()
		指定したイベント、配信者、枠の仮リスナーIDと貢献ポイントランキングの対応表を作成する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)

        戻り値
		cntrbinflist	[]CntrbInf		貢献ポイントランキングを格納するための構造体の配列
										ここで累計貢献ポイント、リスナー名が格納される。
		tlsnid2order	map[int]int		仮リスナーIDと貢献ポイントランキングの対応表
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

type CntrbInfS

type CntrbInfS struct {
	Ranking      int
	Point        int
	Incremental  int
	ListenerName string
	LastName     string
	Tlsnid       int
	Eventid      string
	Userno       int
}

func SelectCntrbSingle

func SelectCntrbSingle(
	eventid string,
	userno int,
	ts time.Time,
	sort string,
) (
	cntrbinflists []CntrbInfS,
	status int,
)
        SelectCntrbSingle()

		指定したイベント、ユーザー、時刻の貢献ポイントランキングを一枠分だけ取得する。
		リスナー名の突き合わせのチェックを目的とするページを作るために使用する。

        引数
		eventid			string			イベントID
		userno			int				ユーザーID
		ts				int				ユーザーID
		loc				int				データの格納場所( 0 だったら先頭)

        戻り値
        cntrbinflists	[] CntrbInf		貢献ポイントランキング(最終貢献ポイント順)
		stats			int				== 0 正常終了	!= 0 データベースアクセス時のエラー

type CntrbS_Header

type CntrbS_Header struct {
	Eventid   string
	Eventname string
	Period    string
	Target    int
	Maxpoint  int
	Gscale    int
	Userno    int
	Username  string
	ShortURL  string
	S_stime   string
	S_etime   string
	Srt       int
	Ie        int
	Ifrm      int
	Ifrm1     int
	Ifrm_b    int
	Ifrm_f    int
}

type Color

type Color struct {
	Name  string
	Value string
}

type ColorInf

type ColorInf struct {
	Color      string
	Colorvalue string
	Selected   string
}

type ColorInfList

type ColorInfList []ColorInf

type Colormap

type Colormap []Color

type CurrentScore

type CurrentScore struct {
	Rank      int
	Srank     string
	Userno    int
	Shorturl  string
	Eventid   string
	Username  string
	Roomgenre string
	Roomrank  string
	Roomnrank string
	Roomprank string
	Roomlevel string
	Followers string
	Fans      int
	Fans_lst  int
	NextLive  string
	Point     int
	Spoint    string
	Sdfr      string
	Pstatus   string
	Ptime     string
	Qstatus   string
	Qtime     string
	Bcntrb    bool
}

func SelectCurrentScore

func SelectCurrentScore(
	eventid string,
	maxrooms int,
) (
	gtime time.Time,
	eventname string,
	period string,
	scorelist []CurrentScore,
	status int,
)

type DenyIp added in v1.4.0

type DenyIp struct {
	Bip int
	Eip int
}

type Erl added in v1.2.0

type Erl struct {
	Eventid     int
	Eventname   string
	Eventurl    string
	Roomid      int
	Ib          int
	Ie          int
	Roomlistinf *srapi.RoomListInf
	Msg         string
	Eventlist   []srapi.Event
}

type Event

type Event struct {
	EventID   string
	EventName string
	Period    string
	Starttime time.Time
	S_start   string
	Endtime   time.Time
	S_end     string
	Status    string
	Pntbasis  int
	Modmin    int
	Modsec    int
	Pbname    string
	Selected  string
	Maxpoint  int
	Gscale    int
}

func SelectEventList

func SelectEventList(userno int) (eventlist []Event, status int)

func SelectLastEventList

func SelectLastEventList() (eventlist []Event, status int)

type EventAndRankingInf

type EventAndRankingInf struct {
	Eventid        string
	Eventname      string
	Period         string
	Ts_lst         string
	Ts_nxt         string
	RankingInfList []RankingInf
}

func SelectFromNoOfFan

func SelectFromNoOfFan(eventid string) (eventandrankinginf EventAndRankingInf, status int)

type FapHeader

type FapHeader struct {
	Eventinf *srdblib.Event
	Filename string
}

func MakeFileOfAllPoints

func MakeFileOfAllPoints(
	eventid string,
	fromorder int,
	toorder int,
) (
	hd *FapHeader,
	err error,
)

獲得ポイント全データをファイルに書き出す 間引きしたデータは復元する

type Genre added in v1.4.0

type Genre struct {
	Genre_name string
	Genre_id   int
	Checked    bool
}

type GsHeader added in v1.6.0

type GsHeader struct {
	Campaignid   string
	Campaignname string
	Url          string
	Grid         int
	Grname       string
	Grtype       string
	Cntrblst     int
	Eventname    string
	Period       string
	Maxpoint     int
	Maxacq       int
	Limit        int
	Gscale       int
	Userno       int
	Username     string
	ShortURL     string
	Ier          int
	Iel          int
	Stime        []time.Time
	Earned       []int
	Total        []int
	Target       []int
	Ifrm         []int
	Nof          []int
	Nft          int //	先頭に戻ったときの最後に表示される枠
	Npb          int //	1ページ戻る
	N1b          int //	一枠戻る
	Ncr          int
	N1f          int //	一枠進む
	Npf          int //	1ページ進む
	Nlt          int //	最後に進んだとき
	Gslist       *[]GsInf
	GiftRanking  []srdblib.GiftRanking
	Vgslist      []VgsInf
}

type GsInf added in v1.6.0

type GsInf struct {
	Userno    int
	User_name string
	Rank      string
	Url       string
	Orderno   int
	Score     []int
	Order     []int
	Point     int
	LastName  string
	Grid      int
}

func SelectUserno2Order added in v1.6.0

func SelectUserno2Order(
	grid int,
	ts time.Time,
	limit int,
) (
	gslist []GsInf,
	userno2order map[int]int,
	err error,
)
        SelectTlsnid2Order()
		指定したイベント、配信者、枠の仮リスナーIDと貢献ポイントランキングの対応表を作成する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)

        戻り値
		cntrbinflist	[]CntrbInf		貢献ポイントランキングを格納するための構造体の配列
										ここで累計貢献ポイント、リスナー名が格納される。
		tlsnid2order	map[int]int		仮リスナーIDと貢献ポイントランキングの対応表
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

type GscHeader added in v1.7.0

type GscHeader struct {
	Campaignid   string
	Campaignname string
	Url          string
	Grid         int
	Grname       string
	Grtype       string
	Eventname    string
	Period       string
	Maxpoint     int
	Maxacq       int
	Limit        int
	Gscale       int
	Userno       int
	Username     string
	ShortURL     string
	Ier          int
	Iel          int
	Stime        []time.Time
	Earned       []int
	Total        []int
	Target       []int
	Ifrm         []int
	Nof          []int
	Nft          int //	先頭に戻ったときの最後に表示される枠
	Npb          int //	1ページ戻る
	N1b          int //	一枠戻る
	Ncr          int
	N1f          int //	一枠進む
	Npf          int //	1ページ進む
	Nlt          int //	最後に進んだとき
	Gsclist      *[]GscInf
	GiftRanking  []srdblib.GiftRanking
	Vgslist      []VgsInf
}

type GscInf added in v1.7.0

type GscInf struct {
	Giftid   int
	Userno   int
	Viewerid int
	Name     string
	Orderno  int
	Score    []int
}

func SelectViewer2Order added in v1.7.0

func SelectViewer2Order(
	grid int,
	userno int,
	ts time.Time,
	limit int,
) (
	gsclist []GscInf,
	viewerid2order map[int]int,
	err error,
)
        SelectTlsnid2Order()
		指定したイベント、配信者、枠の仮リスナーIDと貢献ポイントランキングの対応表を作成する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)

        戻り値
		cntrbinflist	[]CntrbInf		貢献ポイントランキングを格納するための構造体の配列
										ここで累計貢献ポイント、リスナー名が格納される。
		tlsnid2order	map[int]int		仮リスナーIDと貢献ポイントランキングの対応表
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

type IdAndRank

type IdAndRank struct {
	Userno int
	Rank   int
}

func SelectEventInfAndRoomList

func SelectEventInfAndRoomList() (
	idandranklist []IdAndRank,
	status int,
)

type KV

type KV struct {
	K string
	V []string
}

ファンクション名とリモートアドレス、ユーザーエージェントを表示する。

var Localhost bool

type LevelForRoom

type LevelForRoom struct {
	User_id   int
	User_name string
	Level     int
	Level_lst int
}

type LevelForRoomW

type LevelForRoomW struct {
	Roomid   int
	Roomname string
	Lfr      []LevelForRoom
}

func SelectLevelForRoom

func SelectLevelForRoom(roomid int, yyyy int, mm int) (lfrw LevelForRoomW, status int)

type LevelForUser

type LevelForUser struct {
	Room_id   int
	Room_name string
	Level     int
	Level_lst int
}

type LevelForUserW

type LevelForUserW struct {
	Userid    int
	Username  string
	Levellist []LevelForUser
}

func SelectLevelForUser

func SelectLevelForUser(userid int, yyyy int, mm int) (lfuw LevelForUserW, status int)

type Logm added in v1.4.0

type Logm struct {
	ID    int       //	連番
	Cntw  int       //	1: 不具合、	2: 要望、3: 質問、4: その他、5: お知らせ
	Title string    //	タイトル
	Name  string    //	投稿者名
	Body  string    //	投稿本文
	CTime time.Time //	投稿日時
	Color string    //	表示色
	Ra    string    //	リモートアドレス
	Ua    string    //	ユーザーエージェント
}

投稿の内容

type LongName

type LongName struct {
	Name string
}

type P_c

type P_c struct {
	Pnt  int
	Cnt  int
	Wcnt int
	Cmp  int
}

type Pclist

type Pclist []P_c

func (Pclist) Choose

func (p Pclist) Choose(from, to int) (s Pclist)

func (Pclist) Len

func (p Pclist) Len() int

sort.Sort()のための関数三つ

func (Pclist) Less

func (p Pclist) Less(i, j int) bool

func (Pclist) Swap

func (p Pclist) Swap(i, j int)

type PerSlot

type PerSlot struct {
	Timestart time.Time
	Dstart    string
	Tstart    string
	Tend      string
	Point     string
	Ipoint    int
	Tpoint    string
}

type PerSlotInf

type PerSlotInf struct {
	Eventname   string
	Eventid     string
	Period      string
	Roomname    string
	Roomid      int
	Perslotlist []PerSlot
}

func MakePointPerSlot

func MakePointPerSlot(eventid string) (perslotinflist []PerSlotInf, status int)

type Point

type Point struct {
	Pnt  int
	Spnt string
	Tpnt string
}

type PointPerDay

type PointPerDay struct {
	Eventid         string
	Eventname       string
	Period          string
	Maxpoint        int
	Gscale          int
	Usernolist      []int
	Longnamelist    []LongName
	Pointrecordlist []PointRecord
}

func MakePointPerDay

func MakePointPerDay(Event_inf exsrapi.Event_Inf) (p_pointperday *PointPerDay, status int)

func MakePointPerDay(eventid string) (p_pointperday *PointPerDay, status int) {

type PointRecord

type PointRecord struct {
	Day       string
	Tday      time.Time
	Pointlist []Point
}

type RankingInf

type RankingInf struct {
	Room_id   int
	Room_name string
	Srank     string
	Irank     int
	Irorder   int
	Iorder    int
	Fans      int
	Fans_lst  int
}

type Room added in v1.2.0

type Room struct {
	Userno    int
	User_name string
}
type T008top struct {
	TimeNow    int64
	Totalcount int
	ErrMsg     string
	Eventlist  []srapi.Event
}

type RoomInf

type RoomInf struct {
	Room_id   int
	Room_name string
}

func SelectFromFlroom

func SelectFromFlroom(roomid int) (roominflist []RoomInf, status int)

type RoomInfo

type RoomInfo 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      string
	Prank      string
	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
}

func GetRoomInfoAndPoint

func GetRoomInfoAndPoint(
	eventid string,
	roomid string,
	idbasis string,
) (
	roominf RoomInfo,
	status int,
)

func SelectRoomInf

func SelectRoomInf(
	userno int,
) (
	roominf RoomInfo,
	status int,
)

type RoomInfoList

type RoomInfoList []RoomInfo

func GetAndInsertEventRoomInfo

func GetAndInsertEventRoomInfo(
	client *http.Client,
	localhost bool,
	inprogress bool,
	bnew bool,
	eventid string,
	breg int,
	ereg int,
	eventinfo *exsrapi.Event_Inf,
	roominfolist *RoomInfoList,
) (
	ril *RoomInfoList,
	status int,
)

イベントの参加ルーム情報を取得しeventuserテーブルに格納する。

func (RoomInfoList) Choose

func (r RoomInfoList) Choose(from, to int) (s RoomInfoList)

func (RoomInfoList) Len

func (r RoomInfoList) Len() int

sort.Sort()のための関数三つ

func (RoomInfoList) Less

func (r RoomInfoList) Less(i, j int) bool

降順に並べる

func (RoomInfoList) Swap

func (r RoomInfoList) Swap(i, j int)

type RoomLevel

type RoomLevel struct {
	User_name string
	Genre     string
	Rank      string
	Nrank     string
	Prank     string
	Level     int
	Followers int
	Fans      int
	Fans_lst  int

	Sts string
	// contains filtered or unexported fields
}

type RoomLevelInf

type RoomLevelInf struct {
	Userno        int
	User_name     string
	RoomLevelList []RoomLevel
}

func SelectRoomLevel

func SelectRoomLevel(userno int, levelonly int) (roomlevelinf RoomLevelInf, status int)

type SSHConfig added in v1.1.0

type SSHConfig struct {
	Hostname   string `yaml:"Hostname"`
	Port       int    `yaml:"Port"`
	Username   string `yaml:"Username"`
	Password   string `yaml:"Password"`
	PrivateKey string `yaml:"PrivateKey"`
}

type ServerConfig added in v1.1.0

type ServerConfig struct {
	WebServer string `yaml:"WebServer"`
	HTTPport  string `yaml:"HTTPport"`
	SSLcrt    string `yaml:"SSLcrt"`
	SSLkey    string `yaml:"SSLkey"`
	//	Dbhost    string `yaml:"Dbhost"`
	//	Dbport    string `yaml:"Dbport"`
	//	Dbname    string `yaml:"Dbname"`
	//	Dbuser    string `yaml:"Dbuser"`
	//	Dbpw      string `yaml:"Dbpw"`
	//	UseSSH    bool   `yaml:"UseSSH"`
	NoEvent     int  `yaml:"NoEvent"` //	イベント一覧に表示するイベントの数
	Maintenance bool `yaml:"Maintenance"`
}
var Serverconfig *ServerConfig

type ShowRank added in v1.4.0

type ShowRank struct {
	HdrMsg   string
	Userlist *[]srdblib.User
	ErrMsg   string
}

type T008top added in v1.2.0

type T008top struct {
	TimeNow    int64
	Totalcount int
	ErrMsg     string
	Eventlist  []srapi.Event
}

type T009Config added in v1.2.0

type T009Config struct {
	SR_acct      string //	SHOWROOMのアカウント名
	SR_pswd      string //	SHOWROOMのパスワード
	Category     string //	カテゴリー名
	Aplmin       int    //	訪問ルームリストの有効時間(分)
	Maxnoroom    int    //	訪問候補ルームリストの最大長
	Rvlfilename  string //	訪問済みルームリストファイル名
	Exclfilename string //	除外ルームリストファイル名
}

type T009top added in v1.2.0

type T009top struct {
	TimeNow      int64
	SR_acct      string //	SHOWROOMのアカウント名(必須ではない)
	Category     string //	カテゴリー名
	Aplmin       int    //	訪問ルームリストの有効時間(分)
	Maxnoroom    int    //	訪問候補ルームリストの最大長
	Rvlfilename  string //	訪問済みルームリストファイル名
	Exclfilename string //	除外ルームリストファイル名
	ErrMsg       string
	Lives        []srapi.Live //	配信中ルーム情報	(V2ではポインターとはしない)
}

type T999Dtop added in v1.1.0

type T999Dtop struct {
	TimeNow      int64
	Totalcount   int
	ErrMsg       string
	Mode         int    // 0: すべて、 1: データ取得中のものに限定
	Path         int    //	どの検索方法が使われているか?(詳細は HandlerCloesedEvnets()および関連関数を参照)
	Keywordev    string //	検索文字列:イベント名
	Keywordrm    string //	検索文字列:ルーム名
	Kwevid       string //	検索文字列:イベントID
	Userno       int    //	絞り込み対象のルームID
	Limit        int    //	データ取得数
	Offset       int    //	データ取得開始位置
	Eventinflist []exsrapi.Event_Inf
	Roomlist     *[]Room
}

type Tlsnidinf

type Tlsnidinf struct {
	Norder   int
	Tlsnid   int
	Listener string
}

func SelectTlsnidList

func SelectTlsnidList(eventid string, userno int, tlsnid int, smplt time.Time) (tlsnidinflist [3]Tlsnidinf, status int)

type Top added in v1.3.0

type Top struct {
	Olim        int
	From        time.Time
	To          time.Time
	Genrelist   []Genre
	TopRoomList []TopRoom
}

type TopRoom added in v1.3.0

type TopRoom struct {
	Room_id       int
	Room_url_key  string
	Room_name     string
	Rank          int
	Genre         string
	Point         int
	Event_id      string
	Event_name    string
	Event_endtime time.Time
}

type User

type User struct {
	Userno       int
	Userlongname string
	Selected     string
}

func SelectEventuserList

func SelectEventuserList(eventid string) (userlist []User, status int)

func SelectUserList

func SelectUserList() (userlist []User, status int)

type UserInf

type UserInf struct {
	User_id   int
	User_name string
	Level     int
}

func SelectFromFluser

func SelectFromFluser(userid int) (userinflist []UserInf, status int)

type VgsInf added in v1.6.0

type VgsInf struct {
	Viewerid   int
	Viewername string
	Orderno    int
	Score      []int
	Point      int
	LastName   string
	Giftid     int
}

func SelectViewerid2Order added in v1.6.0

func SelectViewerid2Order(
	giftid int,
	ts time.Time,
	limit int,
) (
	vgslist []VgsInf,
	viewerid2order map[int]int,
	err error,
)
        SelectTlsnid2Order()
		指定したイベント、配信者、枠の仮リスナーIDと貢献ポイントランキングの対応表を作成する。

        引数
		eventid			string			イベントID
		userno			int				配信者ID
		ts				time.Time		枠を特定する時刻(=貢献ランキングを取得した時刻)

        戻り値
		cntrbinflist	[]CntrbInf		貢献ポイントランキングを格納するための構造体の配列
										ここで累計貢献ポイント、リスナー名が格納される。
		tlsnid2order	map[int]int		仮リスナーIDと貢献ポイントランキングの対応表
		status			int				終了ステータス( 0: 正常、 1: DBアクセスでの異常)

type Xydata added in v1.6.0

type Xydata struct {
	X []float64
	Y []float64
}

Jump to

Keyboard shortcuts

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