-- vim:set ft=lua: dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua') ct=CreateContentBuilder(GZIP_THRESHOLD_BYTE) ct:Append(DOCTYPE_HTML4_STRICT..[=[
]=]..DefaultHeadContents()..[=[

# 設定/その他

]=]) srvIni='EpgTimerSrv.ini' post=AssertPost() if post and not ALLOW_SETTING then post=nil ct:Append('
変更は許可されていません
\n') end if post then edcb.htmlEscape=15 lastEnableTCPSrv=edcb.GetPrivateProfile('SET','EnableTCPSrv',0,srvIni)~='0' lastTcpIPv6=edcb.GetPrivateProfile('SET','TCPIPv6',0,srvIni)~='0' lastTcpPort=edcb.GetPrivateProfile('SET','TCPPort',4510,srvIni) lastTcpAccessControlList=edcb.GetPrivateProfile('SET','TCPAccessControlList','+127.0.0.1,+192.168.0.0/16',srvIni) lastTcpResponseTimeoutSec=edcb.GetPrivateProfile('SET','TCPResponseTimeoutSec',120,srvIni) edcb.htmlEscape=0 edcb.WritePrivateProfile('SET','EnableTCPSrv',GetVarInt(post,'enableTCPSrv')==1,srvIni) edcb.WritePrivateProfile('SET','TCPIPv6',GetVarInt(post,'tcpIPv6')==1,srvIni) edcb.WritePrivateProfile('SET','TCPPort',GetVarInt(post,'tcpPort',0,65535) or 4510,srvIni) edcb.WritePrivateProfile('SET','TCPAccessControlList',(mg.get_var(post,'tcpAccessControlList') or ''):gsub('%c',''),srvIni) edcb.WritePrivateProfile('SET','TCPResponseTimeoutSec',GetVarInt(post,'tcpResponseTimeoutSec',0) or 120,srvIni) edcb.WritePrivateProfile('SET','EpgArchivePeriodHour',(GetVarInt(post,'epgArchivePeriod',0,20000) or 0)*24,srvIni) if WIN32 then edcb.WritePrivateProfile('SET','ResidentMode',GetVarInt(post,'residentMode')~=1 and 0 or GetVarInt(post,'showTray')~=1 and 1 or 2,srvIni) edcb.WritePrivateProfile('SET','NotifyTipStyle',GetVarInt(post,'notifyTipStyle')==1,srvIni) edcb.WritePrivateProfile('SET','BlinkPreRec',GetVarInt(post,'blinkPreRec')==1,srvIni) edcb.WritePrivateProfile('SET','NoBalloonTip',GetVarInt(post,'noBalloonTip')==1 and 1 or GetVarInt(post,'noBalloonTipRealtime')==1 and 2 or 0,srvIni) end edcb.WritePrivateProfile('SET','SaveNotifyLog',GetVarInt(post,'saveNotifyLog')==1,srvIni) edcb.WritePrivateProfile('SET','SaveDebugLog',GetVarInt(post,'saveDebugLog')==1,srvIni) edcb.WritePrivateProfile('SET','TimeSync',GetVarInt(post,'timeSync')==1,srvIni) edcb.WritePrivateProfile('SET','AutoDelRecInfo',GetVarInt(post,'autoDelRecInfo')==1,srvIni) edcb.WritePrivateProfile('SET','AutoDelRecInfoNum',GetVarInt(post,'autoDelRecInfoNum',0) or 100,srvIni) edcb.WritePrivateProfile('SET','RecInfo2Max',GetVarInt(post,'recInfo2Max',0) or 1000,srvIni) edcb.WritePrivateProfile('SET','RecInfo2DropChk',GetVarInt(post,'recInfo2DropChk',0) or 2,srvIni) edcb.WritePrivateProfile('SET','TSExt',(mg.get_var(post,'tsExt') or ''):match('^%.[0-9A-Za-z][0-9A-Za-z]?[0-9A-Za-z]?[0-9A-Za-z]?[0-9A-Za-z]?$') or '.ts',srvIni) --何版か仮定できないのでCompatFlagsは閲覧のみ ct:Append('
変更しました
\n') end edcb.htmlEscape=15 enableTCPSrv=edcb.GetPrivateProfile('SET','EnableTCPSrv',0,srvIni)~='0' tcpIPv6=edcb.GetPrivateProfile('SET','TCPIPv6',0,srvIni)~='0' tcpPort=edcb.GetPrivateProfile('SET','TCPPort',4510,srvIni) tcpAccessControlList=edcb.GetPrivateProfile('SET','TCPAccessControlList','+127.0.0.1,+192.168.0.0/16',srvIni) tcpResponseTimeoutSec=edcb.GetPrivateProfile('SET','TCPResponseTimeoutSec',120,srvIni) if post then edcb.ReloadSetting(enableTCPSrv~=lastEnableTCPSrv or tcpIPv6~=lastTcpIPv6 or tcpPort~=lastTcpPort or tcpAccessControlList~=lastTcpAccessControlList or tcpResponseTimeoutSec~=lastTcpResponseTimeoutSec) end epgArchivePeriodHour=tonumber(edcb.GetPrivateProfile('SET','EpgArchivePeriodHour',0,srvIni)) or 0 residentMode=edcb.GetPrivateProfile('SET','ResidentMode',2,srvIni) notifyTipStyle=edcb.GetPrivateProfile('SET','NotifyTipStyle',0,srvIni)~='0' blinkPreRec=edcb.GetPrivateProfile('SET','BlinkPreRec',0,srvIni)~='0' noBalloonTip=edcb.GetPrivateProfile('SET','NoBalloonTip',0,srvIni) saveNotifyLog=edcb.GetPrivateProfile('SET','SaveNotifyLog',0,srvIni)~='0' saveDebugLog=edcb.GetPrivateProfile('SET','SaveDebugLog',0,srvIni)~='0' timeSync=edcb.GetPrivateProfile('SET','TimeSync',0,srvIni)~='0' autoDelRecInfo=edcb.GetPrivateProfile('SET','AutoDelRecInfo',0,srvIni)~='0' autoDelRecInfoNum=edcb.GetPrivateProfile('SET','AutoDelRecInfoNum',100,srvIni) recInfo2Max=edcb.GetPrivateProfile('SET','RecInfo2Max',1000,srvIni) recInfo2DropChk=edcb.GetPrivateProfile('SET','RecInfo2DropChk',2,srvIni) tsExt=edcb.GetPrivateProfile('SET','TSExt','.ts',srvIni) compatFlags=tonumber(edcb.GetPrivateProfile('SET','CompatFlags',0,srvIni)) or 0 ct:Append([=[
ネットワーク接続を許可する (EpgTimerNW用)
※設定変更後にHTTPサーバーも再起動します。
IPv6
ポート 無通信タイムアウト(秒)
アクセス制御 (※必ず信頼できるPCのみアクセスできるようにしてください。)
録画結果を自動的に削除する
保持件数
正常に録画した番組情報(RecInfo2)の蓄積数 ドロップ数しきい値 未満
EPG取得後も番組情報を
日前まで保存する
EPG取得時に放送波時間でPC時計を同期する (※]=] ..(WIN32 and 'システム時刻の変更特権が必要です' or '`/bin/date -s 20[0-9][0-9]-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]Z`をsudoで実行します')..[=[)
EpgTimerSrvを常駐させる
タスクトレイアイコンを表示する
ツールチップに次の予約を表示する
開始準備で点滅させる
バルーンチップ/トーストでの動作通知を抑制する
リアルタイムで表示できなかった通知を捨てる
情報通知ログをファイルに保存する
デバッグ出力をファイルに保存する
TSファイルの拡張子
]=]..(compatFlags%4096==4095 and ' ・現在のEpgTimerSrvの応答はtkntrec版互換です。\n' or '')..[=[
]=]) ct:Finish() mg.write(ct:Pop(Response(200,'text/html','utf-8',ct.len,ct.gzip)..'\r\n'))