#// bot4.awk
#// The bot to post frames to the OTT
-#// 24.04.2021
#//
-#// Copyright (C) 2015, 2018-2019, 2021 Balthasar Szczepański
+#// Copyright (C) 2015, 2018-2019, 2021, 2025 Balthasar Szczepański
#//
#// This program is free software: you can redistribute it and/or modify
#// it under the terms of the GNU Affero General Public License as
exit 1
}
-
-
- if(state<2 && force=="" && f==last)
- {
+ if (!((force != 0) || ((state ~ /^[235]$/) && (f <= last)) || ((state == 1) && (f < last)))) {
print "Wrong state."
exit 1
}
#// frame.awk\r
#// Dynamic frame for the viewer\r
-#// 10.03.2019\r
#// \r
-#// Copyright (C) 2015, 2018-2019 Balthasar Szczepański\r
+#// Copyright (C) 2015, 2018-2019, 2025 Balthasar Szczepański\r
#// \r
#// This program is free software: you can redistribute it and/or modify\r
#// it under the terms of the GNU Affero General Public License as\r
}\r
}\r
{\r
- file=1\r
+ file = 1\r
gsub(/[\r\n]/, "", $0)\r
- eq=index($0, "=")\r
- \r
- if($0 ~ /^sf-[0-9]+=/)\r
- {\r
- sf=1\r
- i=int(substr($0, 4, eq-4))\r
- if(i==f)\r
- this_sf= tolower(substr($0, eq+1))\r
- if(i==f-1)\r
- prev_sf=tolower(substr($0, eq+1))\r
- \r
+ eq = index($0, "=")\r
+ ind = substr($0, 1, eq-1)\r
+ val = substr($0, eq+1)\r
+ \r
+ if ($0 ~ /^sf-[0-9]+=/) {\r
+ sf = 1\r
+ ind = "sf-"int(substr($0, 4, eq-4))\r
+ val = tolower(val)\r
}\r
- argtab[substr($0, 1, eq-1)]=substr($0, eq+1)\r
+ argtab[ind] = val\r
}\r
END{\r
\r
if (file=="")\r
exit 1\r
\r
- if (sf=="")\r
- s=""\r
- else if(this_sf=="")\r
- s=""\r
- else if(s>this_sf && argtab["cfrt"]=="")\r
- s=this_sf\r
- \r
- ongoing=int(argtab["ongoing"])\r
- if(ongoing>0)\r
- {\r
- statefile= datapath argtab["story"]"/ongstate"\r
+ ongoing = int(argtab["ongoing"])\r
+ if (ongoing > 0) {\r
+ statefile = datapath argtab["story"] "/ongstate"\r
getline temp < statefile\r
- close(statefile)\r
+ close (statefile)\r
\r
split(temp, temptab, " ")\r
- state=int(temptab[1])\r
- last=int(temptab[2])\r
- nextong=int(temptab[3])\r
- ongfailcount=int(temptab[4])\r
+ state = int(temptab[1])\r
+ last = int(temptab[2])\r
+ nextong = int(temptab[3])\r
+ ongfailcount = int(temptab[4])\r
}\r
- else\r
- {\r
- last=int(argtab["last"])\r
- state=3\r
- nextong=0\r
- ongfailcount=0\r
+ else {\r
+ last = int(argtab["last"])\r
+ state = 3\r
+ nextong = 0\r
+ ongfailcount = 0\r
}\r
- first=int(argtab["first"])\r
+ first = int(argtab["first"])\r
\r
- if(frame=="")\r
- {\r
- if(ongoing>0)\r
- {\r
- f=last\r
- onlyframe=1\r
+ if (sf == "") {\r
+ s = ""\r
+ last_sf = ""\r
+ this_sf = ""\r
+ prev_sf = ""\r
+ }\r
+ else {\r
+ last_sf = argtab["sf-" last]\r
+ this_sf = argtab["sf-" f ]\r
+ prev_sf = argtab["sf-"(f-1)]\r
+ }\r
+ \r
+ if (frame == "") {\r
+ if (ongoing > 0) {\r
+ f = last\r
+ s = last_sf\r
+ onlyframe = 1\r
}\r
- else\r
- {\r
- f=first\r
- onlyframe=""\r
+ else {\r
+ f = first\r
+ s = ""\r
+ onlyframe = ""\r
}\r
}\r
\r
- if(f<first && argtab["cfrt"]=="")\r
- f=first\r
+ cfrt = ""\r
+ invalid = ""\r
\r
- if(f>last && argtab["cfrt"]=="")\r
- f=last\r
+ if (state !~ /^[1235]$/) {\r
+ cfrt = 1\r
+ invalid = 1\r
+ }\r
+ else if (f < first) {\r
+ f = first\r
+ s = ""\r
+ cfrt = 1\r
+ }\r
+ else if (f > last) {\r
+ f = last\r
+ s = last_sf\r
+ cfrt = 1\r
+ }\r
+ else if (sf != "") {\r
+ if ((s != "") && (this_sf == "")) {\r
+ s = ""\r
+ cfrt = 1\r
+ }\r
+ else if ((s != "") && (this_sf != "") && (s > this_sf)) {\r
+ s = this_sf\r
+ cfrt =1\r
+ }\r
+ }\r
\r
- if(argtab["special"] != "")\r
- {\r
- specialfile=datapath argtab["story"]"/"sprintf(argtab["special"],f,s)\r
- line=""\r
- undertext=""\r
+ if (cfrt && (argtab["cfrt"] != "")) {\r
+ }\r
+ else if (invalid) {\r
+ print "Status: 404 Not Found"\r
+ print ""\r
+ exit 0\r
+ }\r
+ else if (argtab["special"] != "") {\r
+ specialfile = datapath argtab["story"] "/" sprintf(argtab["special"], f, s)\r
+ line = ""\r
+ undertext = ""\r
\r
- while((getline line < specialfile)>0)\r
- {\r
+ while ((getline line < specialfile) > 0) {\r
gsub(/[\r\n]/, "", line)\r
\r
- if (line == "" && !undertext)\r
- {\r
- undertext=1\r
- argtab["text"]=""\r
+ if ((line == "") && (!undertext)) {\r
+ undertext = 1\r
+ argtab["text"] = ""\r
continue\r
}\r
\r
- if (undertext)\r
- {\r
+ if (undertext) {\r
argtab["text"] = argtab["text"] line "\n"\r
}\r
- else\r
- {\r
- \r
- eq=index(line, "=")\r
- argtab[substr(line, 1, eq-1)]=substr(line, eq+1)\r
+ else {\r
+ eq = index(line, "=")\r
+ argtab[substr(line, 1, eq-1)] = substr(line, eq+1)\r
}\r
}\r
close (specialfile)\r
}\r
\r
- framedir= (argtab["framedir"]!="" ? argtab["framedir"] : "/aftertime/"argtab["story"]"/")\r
- # if(sf!="")\r
- # {\r
- frame= framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f,s)\r
- if (system("[ -f " framepath frame" ]")!=0)\r
- frame= framedir sprintf(argtab["frame"],f,s)\r
- # }\r
- # else\r
- # {\r
- # s=""\r
- # frame= framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f)\r
- # if (system("[ -f " framepath frame" ]")!=0)\r
- # frame=framedir sprintf(argtab["frame"],f)\r
- # }\r
- \r
- if(f==last && state==1)\r
- {\r
- print "2 "f" "nextong" "ongfailcount > statefile\r
- close (statefile)\r
+ framedir = ((argtab["framedir"] != "") ? argtab["framedir"] : ("/aftertime/" argtab["story"]"/"))\r
+ if (cfrt && (argtab["cfrt"] != ""))\r
+ frame = framedir argtab["cfrt"]\r
+ else {\r
+ frame = framedir sprintf(argtab["frame"(e>0 ? "-"e : "")], f ,s)\r
+ if (system("[ -f " framepath frame" ]") != 0)\r
+ frame = framedir sprintf(argtab["frame"], f , s)\r
}\r
\r
- if((f>last || f<first || (this_sf!="" && s>this_sf)) || state==0 && argtab["cfrt"]!="")\r
- frame= framedir argtab["cfrt"]\r
- \r
- if(state==0 && argtab["cfrt"]=="")\r
- {\r
- print "Status: 404 Not Found"\r
- print ""\r
+ if ((f == last) && (state == 1)) {\r
+ print "2 " f " " nextong " " ongfailcount > statefile\r
+ close (statefile)\r
}\r
\r
print "Status: 302 Temporal Relocation"\r
print "Location: "frame\r
print ""\r
-\r
}\r
#// info.awk
#// Info about an aftertime story.
-#// 10.03.2019
#//
-#// Copyright (C) 2015-2016, 2018-2019 Balthasar Szczepański
+#// Copyright (C) 2015-2016, 2018-2019, 2025 Balthasar Szczepański
#//
#// This program is free software: you can redistribute it and/or modify
#// it under the terms of the GNU Affero General Public License as
listfile = datapath "stories"
stories=0
- line=""
- while((getline line < listfile)>0)
- {
+ line = ""
+ while ((getline line < listfile) > 0) {
gsub(/[\r\n]/,"",line)
- eq=index(line,"=")
+ eq = index(line,"=")
- storytab[stories]=substr(line, 1, eq-1)
- storyname[stories]=substr(line, eq+1)
+ storytab[stories] = substr(line, 1, eq-1)
+ storyname[stories] = substr(line, eq+1)
++stories
}
- close(listfile)
+ close (listfile)
- if(frame !~ /^[0-9]+[a-z]?$/){
- noframe=1
+ if (frame !~ /^[0-9]+[a-z]?$/) {
+ noframe = 1
}
- else if(frame ~ /[a-zA-Z]$/)
- {
- f=int(substr(frame,1,length(frame)-1))
- s=substr(frame, length(frame))
+ else if (frame ~ /[a-zA-Z]$/) {
+ f = int(substr(frame,1,length(frame)-1))
+ s = substr(frame, length(frame))
}
- else
- {
- f=int(frame)
- s=""
+ else {
+ f = int(frame)
+ s = ""
+ }
+ e = int(enhance)
+ if (notice ~ /^[0-9]+$/)
+ n = int(notice)
+ else if (notice == "i") {
+ n = -1
+ noframe = ""
+ s = ""
}
- e=int(enhance)
- if(notice~/^[0-9]+$/)
- n=int(notice)
+ else
+ n = ""
+
timecmd | getline thistime
close(timecmd)
- lastalt=0
+ lastalt = 0
- ch2num[0]=""
- num2ch[""]=0
- for(i=1;i<=26;++i)
- {
- ch=sprintf("%c",i+96)
- num2ch[i]=ch
- ch2num[ch]=i
+ ch2num[0] = ""
+ num2ch[""] = 0
+ for(i=1;i<=26;++i) {
+ ch = sprintf("%c",i+96)
+ num2ch[i] = ch
+ ch2num[ch] = i
}
- alttabsize=0
- argtabsize=0
+ alttabsize = 0
+ argtabsize = 0
}
{
- file=1
+ file = 1
gsub(/[\r\n]/, "", $0)
- eq=index($0, "=")
- if($0 ~ /^[0-9]+=/)
- {
- i=int(substr($0, 1, eq-1))
- alttab[alttabsize]=substr($0, eq+1)
- alttabn[alttabsize]=i
+ eq = index($0, "=")
+ ind = substr($0, 1, eq-1)
+ val = substr($0, eq+1)
+
+ if ($0 ~ /^[0-9]+=/) {
+ alttab [alttabsize] = val
+ alttabn[alttabsize] = int(ind)
++alttabsize
-
- # i=int(substr($0, 1, eq-1))
- # if(f>=i && i>=lastalt)
- # {
- # alt=substr($0, eq+1)
- # lastalt=i
- # }
}
- else if($0 ~ /^sf-[0-9]+=/)
- {
- sf=1
- i=int(substr($0, 4, eq-4))
- if(i==f)
- this_sf= tolower(substr($0, eq+1))
- if(i==f-1)
- prev_sf=tolower(substr($0, eq+1))
-
+ else if($0 ~ /^sf-[0-9]+=/) {
+ sf = 1
+ ind = "sf-"int(substr($0, 4, eq-4))
+ val = tolower(val)
}
- if (!(substr($0, 1, eq-1) in argtab))
- {
- argtabind[argtabsize]=substr($0, 1, eq-1)
+ if (!(ind in argtab)) {
+ argtabind[argtabsize] = ind
++argtabsize
}
- argtab[substr($0, 1, eq-1)]=substr($0, eq+1)
+ argtab[ind] = val
}
END{
-
- if (story=="" && f=="")
- {
+ if ((story == "") && (f == "") && (n != -1)) {
for (i=0; i<stories; ++i)
print storytab[i]"="storyname[i]
exit 0
}
-
- if (file=="")
+ if (file == "")
exit 1
ongoing=int(argtab["ongoing"])
- if(ongoing>0)
- {
+ if (ongoing > 0) {
statefile= datapath argtab["story"]"/ongstate"
getline temp < statefile
close(statefile)
split(temp, temptab, " ")
- state=int(temptab[1])
- last=int(temptab[2])
- nextong=int(temptab[3])
- ongfailcount=int(temptab[4])
+ state = int(temptab[1])
+ last = int(temptab[2])
+ nextong = int(temptab[3])
+ ongfailcount = int(temptab[4])
}
- else
- {
- last=int(argtab["last"])
- state=3
+ else {
+ last = int(argtab["last"])
+ state = 3
+ nextong = 0
+ ongfailcount = 0
+ }
+ first = int(argtab["first"])
+
+ if (sf == "") {
+ s = ""
+ last_sf = ""
+ this_sf = ""
+ prev_sf = ""
+ }
+ else {
+ last_sf = argtab["sf-" last]
+ this_sf = argtab["sf-" f ]
+ prev_sf = argtab["sf-"(f-1)]
}
- first=int(argtab["first"])
- if(noframe!=""){
- if(ongoing>0)
- {
- print "state="state
- print "last="last
- print "nextong="nextong
- print "ongfailcount="ongfailcount
+ if (noframe != "") {
+ if (ongoing > 0) {
+ print "state=" state
+ print "last=" last last_sf
+ print "nextong=" nextong
+ print "ongfailcount=" ongfailcount
+ if ((state ~ /^[35]&/) && (argtab["loop"] != ""))
+ print "loop=" argtab["loop"]
}
- for (i=0; i< argtabsize; ++i)
- {
- if((argtabind[i] ~ /^[0-9]+$/)&&(ongoing>0))
- {
- j=int(argtabind[i])
- if(j<=last)
- print argtabind[i]"="argtab[argtabind[i]]
+ if (state !~ /^[1235]$/)
+ exit 0
+ for (i=0; i< argtabsize; ++i) {
+ if ((argtabind[i] ~ /^[0-9]+$/) && (ongoing > 0)) {
+ j = int(argtabind[i])
+ if (j<=last)
+ print argtabind[i] "=" argtab[argtabind[i]]
}
- else if((argtabind[i] ~ /^sf-[0-9]+$/)&&(ongoing>0))
- {
- j=int(substr(argtabind[i],3))
- if(j<=last)
- print argtabind[i]"="argtab[argtabind[i]]
+ else if ((argtabind[i] ~ /^sf-[0-9]+$/) && (ongoing > 0)) {
+ j = int(substr(argtabind[i], 4))
+ if (j <= last)
+ print argtabind[i] "=" argtab[argtabind[i]]
}
- else if((argtabind[i] ~ /^(last|finalreplacetime|finalreplaceframe)$/)&&(ongoing>0))
- {
+ else if ((argtabind[i] ~ /^(last|finalreplacetime|finalreplaceframe|loop)$/) && (ongoing > 0)) {
}
else
- print argtabind[i]"="argtab[argtabind[i]]
+ print argtabind[i] "=" argtab[argtabind[i]]
}
+ exit 0
}
- else{
- if(f>last || f<first || (this_sf!="" && s>this_sf))
- exit 0
-
- if(this_sf=="")
- s=""
-
- if (s!="")
- {
- if(argtab[s] != "")
- s2=argtab[s]
- else
- s2=s
- n=-1
- }
+
+ if (state !~ /^[1235]$/)
+ exit 0
- if(n>0)
- {
- noticepost=noticepath argtab["story"]"-"sprintf("%04u",f)"-"sprintf("%02u",n)
- noticetabsize=0
- for(j=0;(getline line < noticepost)>0;++j)
- {
- gsub(/[\r\n]/,"",line)
- eq=index(line,"=")
- noticeind=substr(line, 1, eq-1)
- noticeval=substr(line, eq+1)
-
- if (!(noticeind in noticetab))
- {
- noticetabind[noticetabsize]=noticeind
- ++noticetabsize
- }
- noticetab[noticeind]=noticeval
-
- }
- if(j==0)
- exit 0
- nposttime=noticetab["y"]noticetab["m"]noticetab["d"]noticetab["h"]
- if (thistime<nposttime)
- exit 0
- for(j=0; j<noticetabsize; ++j)
- {
- if(noticetabind[j] !~ /^(timenumber|key|brtext|BBHTML|BB|message|HTML|debug|username_h|subject_h|h|d|m|y)$/)
- print noticetabind[j]"="noticetab[noticetabind[j]]
- }
- if("subject_h"in noticetab)
- print"subject="unhtml(noticetab["subject_h"])
- print "posttime="sprintf("%04u%02u%02u%02u00",noticetab["y"],noticetab["m"],noticetab["d"],noticetab["h"])
- print ""
- if("brtext" in noticetab)
- {
- gsub(/\[br\]/,"\n",noticetab["brtext"])
- print noticetab["brtext"]
- }
- else if ("BB" in noticetab)
- print unhtml(noticetab["BB"])
+ if (n == -1) {
+ }
+ else if ((f>last) || (f<first) || ((this_sf=="") && (s!="")) || ((this_sf!="") && (s!="") && (s>this_sf)))
+ exit 0
+
+ if (s != "") {
+ if(argtab[s] != "")
+ s2 = argtab[s]
+ else
+ s2 = s
+ }
+
+ if (n != "") {
+ if (n == -1)
+ noticepost = noticepath argtab["story"] "-i"
+ else
+ noticepost = noticepath argtab["story"] "-" sprintf("%04u%s",f,s) "-" sprintf("%02u",n)
+ noticetabsize = 0
+ for (j=0; (getline line < noticepost)>0; ++j) {
+ gsub(/[\r\n]/,"",line)
+ eq = index(line,"=")
+ noticeind = substr(line, 1, eq-1)
+ noticeval = substr(line, eq+1)
+
+ if (!(noticeind in noticetab)) {
+ noticetabind[noticetabsize] = noticeind
+ ++noticetabsize
+ }
+ noticetab[noticeind] = noticeval
+
+ }
+ if (j == 0)
exit 0
+ nposttime = noticetab["y"] noticetab["m"] noticetab["d"] noticetab["h"]
+ if (thistime < nposttime)
+ exit 0
+
+ for (j=0; j<noticetabsize; ++j) {
+ if (noticetabind[j] !~ /^(timenumber|key|brtext|BBHTML|BB|message|HTML|debug|username_h|subject_h|h|d|m|y)$/)
+ print noticetabind[j] "=" noticetab[noticetabind[j]]
}
+ if ("subject_h" in noticetab)
+ print "subject=" unhtml(noticetab["subject_h"])
+ print "posttime="sprintf("%04u%02u%02u%02u00",noticetab["y"],noticetab["m"],noticetab["d"],noticetab["h"])
+ print ""
+ if ("brtext" in noticetab) {
+ gsub(/\[br\]/,"\n",noticetab["brtext"])
+ print noticetab["brtext"]
+ }
+ else if ("BB" in noticetab)
+ print unhtml(noticetab["BB"])
+ exit 0
+ }
+
+ if (argtab["special"] != "") {
+ specialfile = datapath argtab["story"] "/" sprintf(argtab["special"], f, s)
+ line = ""
+ undertext = ""
- if(argtab["special"] != "")
- {
- specialfile=datapath argtab["story"]"/"sprintf(argtab["special"],f,s)
- line=""
- undertext=""
+ while ((getline line < specialfile) > 0) {
+ gsub(/[\r\n]/, "", line)
- while((getline line < specialfile)>0)
- {
- gsub(/[\r\n]/, "", line)
-
- if (line == "" && !undertext)
- {
- undertext=1
- argtab["text"]=""
- continue
- }
-
- if (undertext)
- {
- argtab["text"] = argtab["text"] line "\n"
- }
- else
- {
- eq=index(line, "=")
- argtab[substr(line, 1, eq-1)]=substr(line, eq+1)
- }
+ if (line == "" && (!undertext)) {
+ undertext = 1
+ argtab["text"] = ""
+ continue
}
- close (specialfile)
- }
-
- ongtimefile= datapath argtab["story"]"/ongtime"
-
- while((getline line < ongtimefile)>0)
- {
- ongind=index(line," ")
- ongft=substr(line,1,ongind-1)
- ongt=substr(line,ongind+1,4) substr(line,ongind+6,2) substr(line,ongind+9,2) substr(line,ongind+12,2) substr(line,ongind+15,2)
- if(ongft ~ /^[0-9]+[a-z]$/)
- ongf=int(substr(ongft,1,ongind-2)) substr(ongft,ongind-1,1)
- else
- ongf=int(ongft)
- if(ongf==(f s) && ongt ~ /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/)
- ongtime=ongt
- }
- close(ongtimefile)
-
- if ("alt" in argtab)
- alt=argtab["alt"]
- else
- {
- for(i=0; i<alttabsize; ++i)
- {
- if(f>=alttabn[i] && alttabn[i]>=lastalt)
- {
- alt=alttab[i]
- lastalt=alttabn[i]
- }
+ if (undertext) {
+ argtab["text"] = argtab["text"] line "\n"
+ }
+ else {
+ eq = index(line, "=")
+ argtab[substr(line, 1, eq-1)] = substr(line, eq+1)
}
}
-
- if(argtab["number"]!="")
- numberformat=argtab["number"]
+ close (specialfile)
+ }
+
+ ongtimefile = datapath argtab["story"] "/ongtime"
+
+ while ((getline line < ongtimefile) > 0) {
+ ongind = index(line, " ")
+ ongft = substr(line, 1, ongind-1)
+ ongt = substr(line, ongind+1, 4) substr(line, ongind+6, 2) substr(line, ongind+9, 2) substr(line, ongind+12, 2) substr(line, ongind+15, 2)
+ if (ongft ~ /^[0-9]+[a-z]$/)
+ ongf = int(substr(ongft, 1, ongind-2)) substr(ongft, ongind-1, 1)
else
- {
- # if (sf!="")
- numberformat="%u%s"
- # else
- # numberformat="%u"
- }
-
- framedir= "/aftertime/"argtab["story"]"/"
- # if(sf!="")
- # {
- title=sprintf(argtab["title"(e>0 ? "-"e : "")],f,s2)
- frame=framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f,s)
- otherviewerurl=sprintf(argtab["otherviewerurl"], f+int(argtab["othervieweroffset"]),s2)
- # }
- # else
- # {
- # s=""
- # title=sprintf(argtab["title"(e>0 ? "-"e : "")],f)
- # frame= framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f)
- # otherviewerurl=sprintf(argtab["otherviewerurl"], f+int(argtab["othervieweroffset"]))
- # }
-
- if (system("[ -f " framepath frame" ]")!=0)
- exit 0
-
- print "story="argtab["story"]
- print "f="f s
- print "e="e
- print "frame="frame
- print "alt="alt
- print "title="title
- if(ongtime!="")
- print "ongtime="ongtime
-
- max_enhance=int(argtab["enhance"])
-
+ ongf = int(ongft)
- if(max_enhance>0)
- {
- for(i=0;i<=max_enhance;++i)
- {
- # if(sf!="")
- enhancedframe = framedir sprintf(argtab["frame"(i>0?"-"i:"")],f,s)
- # else
- # enhancedframe = framedir sprintf(argtab["frame"(i>0?"-"i:"")],f)
-
- if (system("[ -f " framepath enhancedframe" ]")==0)
- print "enhance-"i"="argtab["enhance-"i]
+ if ((ongf == (f s)) && (ongt ~ /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/))
+ ongtime = ongt
+ }
+ close (ongtimefile)
+
+ if ("alt" in argtab)
+ alt = argtab["alt"]
+ else {
+ for(i=0; i<alttabsize; ++i) {
+ if ((f >= alttabn[i]) && (alttabn[i] >= lastalt)) {
+ alt = alttab[i]
+ lastalt = alttabn[i]
}
}
-
- for(i=1; i<=99; ++i)
- {
- noticepost=noticepath argtab["story"]"-"sprintf("%04u",f)"-"sprintf("%02u",i)
- for(j=0;(getline line < noticepost)>0;++j)
- {
- gsub(/[\r\n]/,"",line)
- eq=index(line,"=")
- noticetab[substr(line, 1, eq-1)]=substr(line, eq+1)
- }
- if(j==0)
- break;
- nposttime=noticetab["y"]noticetab["m"]noticetab["d"]noticetab["h"]
- if (thistime<nposttime)
- break;
- print "notice-"i"=yes"
+ }
+
+ if (argtab["number"] != "")
+ numberformat = argtab["number"]
+ else {
+ # if (sf != "")
+ numberformat = "%u%s"
+ # else
+ # numberformat = "%u"
+ }
+
+ framedir = ((argtab["framedir"] != "") ? argtab["framedir"] : ("/aftertime/" argtab["story"]"/"))
+ title = sprintf(argtab["title" (e>0 ? "-"e : "")], f, s2)
+ frame = framedir sprintf(argtab["frame"(e>0 ? "-"e : "")], f, s)
+ otherviewerurl = sprintf(argtab["otherviewerurl"], f + int(argtab["othervieweroffset"]), s2)
+
+ if (system("[ -f " framepath frame" ]") != 0)
+ exit 0
+
+ print "story=" argtab["story"]
+ print "f=" f s
+ print "e=" e
+ print "frame=" frame
+ print "alt=" alt
+ print "title=" title
+ if (ongtime != "")
+ print "ongtime=" ongtime
+
+ max_enhance = int(argtab["enhance"])
+
+ if (max_enhance>0) {
+ for (i=0; i<=max_enhance; ++i) {
+ enhancedframe = framedir sprintf(argtab["frame"(i>0?"-"i:"")],f,s)
+ if (system("[ -f " framepath enhancedframe" ]") == 0)
+ print "enhance-" i "=" argtab["enhance-"i]
}
-
- if(argtab["otherviewerurl"]!="")
- print "otherviewerurl="otherviewerurl
-
- if(argtab["BBHTML"]!="")
- print "BBHTML="argtab["BBHTML"]
- if(argtab["HTML"]!="")
- print "HTML="argtab["HTML"]
-
- if (argtab["text"] != "")
- {
- print""
- print argtab["text"]
+ }
+
+ for (i=0; i<=99; ++i) {
+ noticepost = noticepath argtab["story"] "-" sprintf("%04u%s",f,s) "-" sprintf("%02u",i)
+ for(j=0; (getline line < noticepost) > 0; ++j) {
+ gsub(/[\r\n]/,"",line)
+ eq = index(line,"=")
+ noticetab[substr(line, 1, eq-1)] = substr(line, eq+1)
}
+ if (j == 0)
+ break;
+ nposttime = noticetab["y"] noticetab["m"] noticetab["d"] noticetab["h"]
+ if (thistime < nposttime)
+ break;
+ print "notice-" i "=yes"
+ }
+
+ if (argtab["otherviewerurl"] != "")
+ print "otherviewerurl=" otherviewerurl
+
+ if (argtab["BBHTML"] != "")
+ print "BBHTML=" argtab["BBHTML"]
+ if (argtab["HTML"] != "")
+ print "HTML=" argtab["HTML"]
+
+ if (argtab["text"] != "") {
+ print ""
+ print argtab["text"]
}
}
#// ong.awk\r
#// The bot to ONG new frames to the viewer.\r
-#// 28.08.2020\r
#// \r
-#// Copyright (C) 2015, 2018-2020 Balthasar Szczepański\r
+#// Copyright (C) 2015, 2018-2020, 2025 Balthasar Szczepański\r
#// \r
#// This program is free software: you can redistribute it and/or modify\r
#// it under the terms of the GNU Affero General Public License as\r
\r
\r
BEGIN{\r
- FS=""\r
- framepath="/eizm/www/time/"\r
- datapath="/eizm/data/aftertime/"\r
+ FS = ""\r
+ framepath = "/eizm/www/time/"\r
+ datapath = "/eizm/data/aftertime/"\r
\r
- # timecmd="date +\"%H\""\r
- timecmd2="date -u +\"%Y-%m-%d %H:%M:%S\""\r
- timecmd3="date -u +\"%s\""\r
+ # timecmd = "date +\"%H\""\r
+ timecmd2 = "date -u +\"%Y-%m-%d %H:%M:%S\""\r
+ timecmd3= " date -u +\"%s\""\r
\r
- cp="/bin/cp"\r
- mawk="/usr/bin/mawk"\r
- bot4awk="/eizm/pro/aftertime/bot4.awk"\r
- chmod="/bin/chmod"\r
- npb="/eizm/pro/ong1/npb"\r
+ cp = "/bin/cp"\r
+ mawk = "/usr/bin/mawk"\r
+ bot4awk = "/eizm/pro/aftertime/bot4.awk"\r
+ chmod = "/bin/chmod"\r
+ npb = "/eizm/pro/ong1/npb"\r
\r
timecmd2 | getline thistime2\r
close(timecmd2)\r
\r
thistime3 -= thistime3%3600\r
\r
- for(i=0;i<256;++i)\r
- {\r
- ch=sprintf("%c",i)\r
- hex=sprintf("%02X",i)\r
- dec=sprintf("%u",i)\r
- ch2hex[ch]=hex\r
- ch2dec[ch]=dec\r
+ for (i=0; i<256; ++i) {\r
+ ch = sprintf("%c",i)\r
+ hex = sprintf("%02X",i)\r
+ dec = sprintf("%u",i)\r
+ ch2hex[ch] = hex\r
+ ch2dec[ch] = dec\r
}\r
}\r
{\r
- file=1\r
+ file = 1\r
gsub(/[\r\n]/, "", $0)\r
- eq=index($0, "=")\r
+ eq = index($0, "=")\r
\r
- argtab[substr($0, 1, eq-1)]=substr($0, eq+1)\r
+ argtab[substr($0, 1, eq-1)] = substr($0, eq+1)\r
}\r
END{\r
\r
print ""\r
- print thistime2" "argtab ["story"]\r
+ print thistime2 " " argtab["story"]\r
\r
- if (file=="")\r
- {\r
+ if (file == "") {\r
print "No data."\r
exit 1\r
}\r
\r
- if(int(argtab["ongoing"])!=1)\r
- {\r
+ if (int(argtab["ongoing"]) != 1) {\r
print "story is not onged from here."\r
exit 1\r
}\r
\r
# # replace with actual better conditions\r
- # if(int(thistime) % int(argtab["ongtime"]) != 0)\r
- # {\r
+ # if (int(thistime) % int(argtab["ongtime"]) != 0) {\r
# print "Not ongtime yet."\r
# exit 1\r
# }\r
\r
- framedir = "aftertime/"argtab["story"]"/"\r
+ framedir = "aftertime/" argtab["story"] "/"\r
\r
- temp=""\r
- statefile= datapath argtab["story"]"/ongstate"\r
+ temp = ""\r
+ statefile = datapath argtab["story"] "/ongstate"\r
getline temp < statefile\r
close(statefile)\r
\r
split(temp, temptab, " ")\r
- state=int(temptab[1])\r
- last=int(temptab[2])\r
- nextong=int(temptab[3])\r
- ongfailcount=int(temptab[4])\r
- enhance=int(argtab["enhance"])\r
+ state = int(temptab[1])\r
+ last = int(temptab[2])\r
+ nextong = int(temptab[3])\r
+ ongfailcount = int(temptab[4])\r
+ enhance = int(argtab["enhance"])\r
\r
- specialtab[0]=""\r
- effectivetab[0]=""\r
+ specialtab[0] = ""\r
+ effectivetab[0] = ""\r
\r
- # temp=""\r
- # updatefile= datapath argtab["story"]"/update"\r
+ # temp = ""\r
+ # updatefile = datapath argtab["story"] "/update"\r
# getline temp < updatefile\r
# close(updatefile)\r
\r
- timefile= datapath argtab["story"]"/ongtime"\r
+ timefile = datapath argtab["story"] "/ongtime"\r
\r
- if (state == 1 || state ==2)\r
- {\r
- updatefail=""\r
- temp=""\r
- updatefile= datapath argtab["story"]"/update"\r
- # timefile= datapath argtab["story"]"/ongtime"\r
+ if (state == 1 || state == 2 || state == 5) {\r
+ updatefail = ""\r
+ temp = ""\r
+ updatefile = datapath argtab["story"] "/update"\r
+ # timefile = datapath argtab["story"] "/ongtime"\r
\r
- updated=""\r
+ updated = ""\r
\r
- while((getline temp < updatefile)>0)\r
- {\r
+ while ((getline temp < updatefile)>0) {\r
if (temp !~ /^([0-9]+[a-z]?)|(c)$/)\r
continue\r
\r
- if(timeread=="")\r
- {\r
- while((getline line < timefile)>0)\r
- {\r
- ongind=index(line," ")\r
- ongft=substr(line,1,ongind-1)\r
- ongt=substr(line,ongind+1)\r
+ if (timeread == "") {\r
+ while ((getline line < timefile) > 0) {\r
+ ongind = index(line," ")\r
+ ongft = substr(line,1,ongind-1)\r
+ ongt = substr(line,ongind+1)\r
\r
- if(ongft ~ /^[0-9]+[a-z]$/)\r
- ongf=int(substr(ongft,1,ongind-2)) substr(ongft,ongind-1,1)\r
+ if (ongft ~ /^[0-9]+[a-z]$/)\r
+ ongf = int(substr(ongft,1,ongind-2)) substr(ongft,ongind-1,1)\r
else\r
- ongf=int(ongft)\r
+ ongf = int(ongft)\r
\r
- timetab[ongft]=ongt\r
+ timetab[ongft] = ongt\r
}\r
close(timefile)\r
- timeread=1\r
+ timeread = 1\r
}\r
\r
- if(temp=="c")\r
- {\r
+ if (temp == "c") {\r
print "Update CFRT."\r
- if (argtab["cfrt"]=="")\r
- {\r
+ if (argtab["cfrt"] == "") {\r
print "There is no cfrt frame."\r
continue\r
}\r
- inframe[0]= datapath argtab["story"]"/"argtab["cfrt"]\r
+ inframe[0] = datapath argtab["story"] "/" argtab["cfrt"]\r
\r
- frame[0]= framepath framedir argtab["cfrt"]\r
+ frame[0] = framepath framedir argtab["cfrt"]\r
\r
- cpcmd[0] = cp" "inframe[0]" "frame[0]\r
- chmodcmd[0] = chmod" +r "frame[0]\r
+ cpcmd[0] = cp " " inframe[0] " " frame[0]\r
+ chmodcmd[0] = chmod " +r " frame[0]\r
}\r
- else\r
- {\r
- if (temp ~ /[a-z]$/)\r
- {\r
- i=int(substr(temp,1,length(temp)-1))\r
- j=substr(temp, length(temp))\r
+ else {\r
+ if (temp ~ /[a-z]$/) {\r
+ i = int(substr(temp, 1, length(temp)-1))\r
+ j = substr(temp, length(temp))\r
}\r
- else\r
- {\r
+ else {\r
i = int(temp)\r
j = ""\r
}\r
\r
- print "Update frame "i j"."\r
+ print "Update frame " i j "."\r
\r
- if(argtab["special"] != "")\r
- {\r
- specialfile=datapath argtab["story"]"/"sprintf(argtab["special"],i,j)\r
- readspecialfile(specialfile,argtab,specialtab,effectivetab)\r
+ if (argtab["special"] != "") {\r
+ specialfile = datapath argtab["story"] "/" sprintf(argtab["special"], i, j)\r
+ readspecialfile(specialfile, argtab, specialtab, effectivetab)\r
}\r
- else\r
- {\r
- readspecialfile("",argtab,specialtab,effectivetab)\r
+ else {\r
+ readspecialfile("", argtab, specialtab, effectivetab)\r
}\r
- if ((i < int(argtab["first"]))||(i > last)) \r
- {\r
+ if ((i < int(argtab["first"])) || (i > last)) {\r
print (i j" not onged yet.")\r
continue\r
}\r
\r
- if(j!="")\r
- {\r
- if(argtab["sf-"i]=="")\r
- {\r
+ if (j != "") {\r
+ if (argtab["sf-"i] == "") {\r
print (i" doesn't have meteor frames.")\r
continue\r
}\r
- else if(j > argtab["sf-"i])\r
+ else if (j > argtab["sf-"i])\r
{\r
- print (j" is not a meteor frame of "i".")\r
+ print (j" is not a meteor frame of " i ".")\r
continue\r
}\r
- \r
}\r
- for (k=0; k<=enhance; ++k)\r
- {\r
- k2=(k>0)?("-"k):""\r
- inframe[k]= datapath argtab["story"]"/"sprintf(effectivetab["inframe"k2],i,j)\r
+ for (k=0; k<=enhance; ++k) {\r
+ k2 = (k>0) ? ("-"k) : ""\r
+ inframe[k] = datapath argtab["story"] "/" sprintf(effectivetab["inframe"k2], i, j)\r
\r
- frame[k]= framepath framedir sprintf(effectivetab["frame"k2],i,j)\r
- npbframe[k]= framepath framedir sprintf(effectivetab["npbframe"k2],i,j)\r
+ frame[k] = framepath framedir sprintf(effectivetab["frame"k2], i, j)\r
+ npbframe[k] = framepath framedir sprintf(effectivetab["npbframe"k2], i, j)\r
\r
- npbcmd[k]= npb" "inframe[k]" "npbframe[k]" q"\r
- cpcmd[k] = cp" "inframe[k]" "frame[k]\r
- chmodcmd[k] = chmod" +r "frame[k]\r
+ npbcmd[k] = npb " " inframe[k] " " npbframe[k] " q"\r
+ cpcmd[k] = cp " " inframe[k] " " frame[k]\r
+ chmodcmd[k] = chmod " +r " frame[k]\r
}\r
- if (specialtab["text"]!="")\r
- {\r
- specialtab["HTML"]=bb2html(specialtab["text"])\r
- writespecialfile(specialfile,specialtab)\r
+ if (specialtab["text"] != "") {\r
+ specialtab["HTML"] = bb2html(specialtab["text"])\r
+ writespecialfile(specialfile, specialtab)\r
# print debug\r
}\r
}\r
\r
- if(temp!="c" && timetab[sprintf("%04u%s",i,j)]=="")\r
- {\r
- print sprintf("%04u%s",i,j)" "thistime2 >> timefile\r
+ if (temp != "c" && timetab[sprintf("%04u%s",i,j)] == "") {\r
+ print sprintf("%04u%s", i, j) " " thistime2 >> timefile\r
close(timefile)\r
- timetab[sprintf("%04u%s",i,j)]=thistime2\r
+ timetab[sprintf("%04u%s", i, j)] = thistime2\r
}\r
\r
- for(k=0; k<=enhance; ++k)\r
- {\r
- k2=(k>0)?("-"k):""\r
+ for (k=0; k<=enhance; ++k) {\r
+ k2 = (k>0) ? ("-"k) : ""\r
\r
- if ((system("[ -f " inframe[k]" ]")!=0)&&(k>0))\r
+ if ((system("[ -f " inframe[k]" ]") != 0) && (k > 0))\r
continue\r
\r
- if((argtab["npbframe"]!="") && (temp!="c"))\r
- {\r
- if(system(npbcmd[k])!=0)\r
- {\r
- print i j k2" NewpixbOTTification failed."\r
- updatefail=1\r
+ if ((argtab["npbframe"] != "") && (temp != "c")) {\r
+ if (system(npbcmd[k]) != 0) {\r
+ print i j k2 " NewpixbOTTification failed."\r
+ updatefail = 1\r
break\r
}\r
}\r
- if(system(cpcmd[k])!=0)\r
- {\r
+ if (system(cpcmd[k]) != 0) {\r
print i j k2" Upload failed."\r
updatefail=1\r
break\r
}\r
- if(system(chmodcmd[k])!=0)\r
- {\r
+ if (system(chmodcmd[k])!= 0) {\r
print "Chmod failed."\r
updatefail=1\r
break\r
}\r
- if(temp=="c")\r
- {\r
+ if (temp == "c") {\r
break\r
}\r
}\r
- if (updatefail)\r
- {\r
+ if (updatefail) {\r
break #come up with other aproach\r
}\r
- updated=1\r
+ updated = 1\r
print "Updated."\r
}\r
close(updatefile)\r
- if (!updatefail && updated)\r
- {\r
+ if (!updatefail && updated) {\r
print "" > updatefile\r
close(updatefile)\r
}\r
}\r
\r
- firstong=""\r
- if (state==4) {\r
+ firstong = ""\r
+ \r
+ if (state == 3) {\r
+ if (argtab["last"] == "")\r
+ state = 2\r
+ else if (int(argtab["last"]) > last)\r
+ state = 2\r
+ else if (argtab["loop"])\r
+ state = 5\r
+ if (state != 3) {\r
+ if (thistime3 >= nextong)\r
+ nextong = getnextongtime()\r
+ print sprintf("%u %u %u 0", state, last, nextong) > statefile\r
+ close (statefile)\r
+ if (state == 5)\r
+ print "Back to epilogue loop."\r
+ else\r
+ print "Back to onging."\r
+ }\r
+ }\r
+ if (state == 4) {\r
print "Time to start onging."\r
firstong=1\r
nextong=0\r
- } \r
- else if(state<1 || state>2)\r
- {\r
+ }\r
+ else if (state != 1 && state != 2 && state != 5) {\r
print "Onging not active."\r
exit 1\r
}\r
- else if(thistime3<nextong)\r
- {\r
+ else if (thistime3 < nextong) {\r
print sprintf("Wait until %s.",nextong)\r
exit 1\r
}\r
- else if (state==1) {\r
- # nextong = thistime3 + int(argtab["ongtime"])*3600\r
+ else if (state == 1) {\r
nextong = getnextongtime()\r
- print sprintf("1 %u %u %u",last,nextong,ongfailcount) > statefile\r
- close(statefile)\r
+ print sprintf("1 %u %u %u",last, nextong, ongfailcount) > statefile\r
+ close (statefile)\r
print "Nobody saw frame "last" yet. Wait until "nextong"."\r
exit 1\r
}\r
- \r
- if(thistime3<nextong)\r
- {\r
- print sprintf("Wait until %s.",nextong)\r
- exit 1\r
+ else if (state == 5) {\r
+ ongfailcount = 0\r
+ if (argtab["loop"]=="")\r
+ state = 2\r
+ else if (argtab["last"]=="")\r
+ state = 2\r
+ else if (int(argtab["last"]) > last)\r
+ state = 2\r
+ if (state != 2) {\r
+ nextong = getnextongtime()\r
+ print sprintf("5 %u %u 0",last, nextong) > statefile\r
+ close (statefile)\r
+ print "Still looping. Wait until "nextong"."\r
+ exit 1\r
+ }\r
+ if ((argtab["last"] != "") && (last >= argtab["last"])) {\r
+ print "No looping; T** **d."\r
+ print sprintf("3 %u %u 0",last, nextong) > statefile\r
+ close (statefile)\r
+ exit 0\r
+ }\r
+ print sprintf("2 %u %u 0",last, nextong) > statefile\r
+ close (statefile)\r
+ print "End looping; back to onging."\r
}\r
\r
if (firstong)\r
f = int(argtab["first"])\r
else\r
- f=last+1\r
- if(argtab["last"]!="")\r
- {\r
- if (f==int(argtab["last"]))\r
- {\r
- print "T** **d."\r
- nextstate="3"\r
+ f = last + 1\r
+ if (argtab["last"] != "") {\r
+ if (f >= int(argtab["last"])) {\r
+ if (argtab["loop"] == "") {\r
+ print "T** **d."\r
+ nextstate = "3"\r
+ }\r
+ else if (f > int(argtab["last"])) {\r
+ nextong = getnextongtime()\r
+ print sprintf("5 %u %u 0", int(argtab["last"]), nextong) > statefile\r
+ close(statefile)\r
+ print "Epilogue loop."\r
+ exit 1\r
+ }\r
+ else {\r
+ print "Epilogue loop."\r
+ nextstate = "2"\r
+ }\r
}\r
else\r
- nextstate="1"\r
+ nextstate = "1"\r
}\r
else\r
- nextstate="1"\r
+ nextstate = "1"\r
\r
- if(firstong && argtab["cfrt"]!="")\r
- {\r
+ if (firstong && argtab["cfrt"] != "") {\r
inframe[0]= datapath argtab["story"]"/"argtab["cfrt"]\r
frame[0]= framepath framedir argtab["cfrt"]\r
\r
cpcmd[0] = cp" "inframe[0]" "frame[0]\r
chmodcmd[0] = chmod" +r "frame[0]\r
\r
- if(system(cpcmd[0])!=0)\r
- {\r
+ if (system(cpcmd[0]) != 0) {\r
print "CFRT upload failed."\r
exit 1\r
}\r
- if(system(chmodcmd[0])!=0)\r
- {\r
+ if (system(chmodcmd[0]) != 0) {\r
print "CFRT chmod failed."\r
exit 1\r
}\r
}\r
\r
print "ONG frame "f"."\r
- \r
- if(argtab["special"] != "")\r
- {\r
- specialfile=datapath argtab["story"]"/"sprintf(argtab["special"],f,"")\r
- readspecialfile(specialfile,argtab,specialtab,effectivetab)\r
+\r
+ if (argtab["special"] != "") {\r
+ specialfile = datapath argtab["story"] "/" sprintf(argtab["special"], f, "")\r
+ readspecialfile(specialfile, argtab, specialtab, effectivetab)\r
}\r
- else\r
- {\r
- readspecialfile("",argtab,specialtab,effectivetab)\r
+ else {\r
+ readspecialfile("", argtab, specialtab, effectivetab)\r
}\r
\r
- for(k=0; k<=enhance; ++k)\r
- {\r
- k2=(k>0)?("-"k):""\r
+ for (k=0; k<=enhance; ++k) {\r
+ k2 = (k>0) ? ("-"k) : ""\r
\r
- inframe[k]= datapath argtab["story"]"/"sprintf(effectivetab["inframe"k2],f,"")\r
+ inframe[k]= datapath argtab["story"] "/" sprintf(effectivetab["inframe" k2], f, "")\r
\r
- if (system("[ -f " inframe[k] " ]")!=0)\r
- {\r
- if(k>0) #we only care about missing original frame\r
- {\r
+ if (system("[ -f " inframe[k] " ]") != 0) {\r
+ if (k>0) { #we only care about missing original frame\r
continue\r
}\r
++ongfailcount\r
print "Frame "f" doesnt't exist. (#"ongfailcount")"\r
\r
- print sprintf("%u %u %u %u",state,last,nextong,ongfailcount) > statefile\r
+ print sprintf("%u %u %u %u", state, last, nextong, ongfailcount) > statefile\r
close(statefile)\r
\r
- if((argtab["finalreplaceframe"]!="") && (argtab["finalreplacetime"]!=""))\r
- {\r
- if(((thistime3 - nextong) >= int(argtab["finalreplacetime"])*3600) && (ongfailcount>=int(argtab["finalreplacetime"])))\r
- {\r
+ if ((argtab["finalreplaceframe"] != "") && (argtab["finalreplacetime"] != "")) {\r
+ if (((thistime3 - nextong) >= int(argtab["finalreplacetime"]) * 3600) && (ongfailcount >= int(argtab["finalreplacetime"]))) {\r
print "Time to stop trying."\r
print "ONG final replacement frame."\r
- inframe[0]= datapath argtab["story"]"/"argtab["finalreplaceframe"]\r
- nextstate=3\r
+ inframe[0] = datapath argtab["story"] "/" argtab["finalreplaceframe"]\r
+ nextstate = 3\r
}\r
else\r
exit 1\r
exit 1\r
}\r
\r
- frame[k]= framepath framedir sprintf(effectivetab["frame"k2],f,"")\r
- npbframe[k]= framepath framedir sprintf(effectivetab["npbframe"k2],f,"")\r
+ frame[k] = framepath framedir sprintf(effectivetab["frame" k2], f, "")\r
+ npbframe[k] = framepath framedir sprintf(effectivetab["npbframe"k2],f,"")\r
\r
\r
- npbcmd[k]= npb" "inframe[k]" "npbframe[k]" q"\r
- cpcmd[k] = cp" "inframe[k]" "frame[k]\r
- chmodcmd[k] = chmod" +r "frame[k]\r
+ npbcmd[k] = npb " " inframe[k] " " npbframe[k] " q"\r
+ cpcmd[k] = cp " " inframe[k] " " frame[k]\r
+ chmodcmd[k] = chmod " +r " frame[k]\r
}\r
- ongcmd = mawk" -f " bot4awk" -v story="argtab["story"]" -v frame="last" "datapath argtab["story"]"/settings"\r
-# nextong = thistime3 + int(argtab["ongtime"])*3600\r
+ ongcmd = mawk " -f " bot4awk " -v story=" argtab["story"] " -v frame=" last " " datapath argtab["story"] "/settings"\r
nextong = getnextongtime()\r
### replace this with actual onging!!!\r
# system("/eizm/pro/ong1/bot4")\r
\r
- if (specialtab["text"]!="")\r
- {\r
- specialtab["HTML"]=bb2html(specialtab["text"])\r
- writespecialfile(specialfile,specialtab)\r
+ if (specialtab["text"] != "") {\r
+ specialtab["HTML"] = bb2html(specialtab["text"])\r
+ writespecialfile(specialfile, specialtab)\r
}\r
\r
- # timefile= datapath argtab["story"]"/ongtime"\r
- print sprintf("%04u ",f)thistime2 >> timefile\r
+ print sprintf("%04u ",f) thistime2 >> timefile\r
close(timefile)\r
\r
- for(k=0; k<=enhance; ++k)\r
- {\r
- k2=(k>0)?("-"k):""\r
+ for (k=0; k<=enhance; ++k) {\r
+ k2 = (k>0) ? ("-"k) : ""\r
\r
- if ((system("[ -f " inframe[k]" ]")!=0)&&(k>0))\r
+ if ((system("[ -f " inframe[k] " ]") != 0) && (k > 0))\r
continue\r
\r
- if(argtab["npbframe"]!="")\r
- {\r
- if(system(npbcmd[k])!=0)\r
- {\r
- print "NewpixbOTTification"k2" failed."\r
+ if (argtab["npbframe"] != "") {\r
+ if (system(npbcmd[k])!= 0) {\r
+ print "NewpixbOTTification" k2 " failed."\r
exit 1\r
}\r
}\r
\r
- if(system(cpcmd[k])!=0)\r
- {\r
- print "Frame"k2" upload failed."\r
+ if (system(cpcmd[k]) != 0) {\r
+ print "Frame" k2 " upload failed."\r
exit 1\r
}\r
\r
- if(system(chmodcmd[k])!=0)\r
- {\r
- print "Frame"k2" chmod failed."\r
+ if (system(chmodcmd[k]) != 0) {\r
+ print "Frame" k2 " chmod failed."\r
exit 1\r
}\r
}\r
- print sprintf("%u %u %u 0",nextstate,f,nextong) > statefile\r
+ print sprintf("%u %u %u 0", nextstate, f, nextong) > statefile\r
close(statefile)\r
\r
print sprintf("ONGed. Next ong %u.",nextong)\r
# add condition here.\r
# Ok, done.\r
\r
- if (!firstong)\r
- {\r
+ if (!firstong) {\r
ongbotfile= datapath argtab["story"] "/" ((argtab["ongbot"]!="")?argtab["ongbot"]:"ongbot")\r
if (system("[ -f " ongbotfile " ]")==0)\r
system(ongcmd)\r
}\r
}\r
\r
-function getnextongtime( schedulefile,temp,i)\r
-{\r
- schedulefile= datapath argtab["story"]"/schedule"\r
+function getnextongtime( schedulefile,temp,i) {\r
+ schedulefile = datapath argtab["story"]"/schedule"\r
\r
- while((getline temp < schedulefile)>0)\r
- {\r
+ while ((getline temp < schedulefile) > 0) {\r
if (temp !~ /^[0-9]+$/)\r
continue\r
\r
i = int(temp)\r
# print i\r
\r
- if(i>thistime3)\r
- {\r
+ if (i > thistime3) {\r
close(schedulefile)\r
print "ok"\r
return i\r
}\r
}\r
close(schedulefile)\r
- return thistime3 + int(argtab["ongtime"])*3600\r
+ return thistime3 + int(argtab["ongtime"]) * 3600\r
}\r
\r
-function readspecialfile (datafile, argtab, specialtab, effectivetab, line,undertext,eq,i)\r
-{\r
+function readspecialfile (datafile, argtab, specialtab, effectivetab, line,undertext,eq,i) {\r
for (i in specialtab)\r
delete specialtab[i]\r
\r
for (i in effectivetab)\r
delete effectivetab[i]\r
\r
- if (datafile=="")\r
+ if (datafile == "")\r
return\r
\r
- line=""\r
- while((getline line < datafile)>0)\r
- {\r
+ line = ""\r
+ while ((getline line < datafile) > 0) {\r
gsub(/[\r\n]/, "", line)\r
\r
- if (line == "" && !undertext)\r
- {\r
- undertext=1\r
- specialtab["text"]=""\r
+ if (line == "" && !undertext) {\r
+ undertext = 1\r
+ specialtab["text"] = ""\r
}\r
- else if (undertext)\r
- {\r
+ else if (undertext) {\r
specialtab["text"] = specialtab["text"] line "\n"\r
}\r
- else\r
- {\r
- eq=index(line, "=")\r
- specialtab[substr(line, 1, eq-1)]=substr(line, eq+1)\r
+ else {\r
+ eq = index(line, "=")\r
+ specialtab[substr(line, 1, eq-1)] = substr(line, eq+1)\r
}\r
}\r
\r
for (i in argtab)\r
- effectivetab[i]=argtab[i]\r
+ effectivetab[i] = argtab[i]\r
\r
for (i in specialtab)\r
- effectivetab[i]=specialtab[i]\r
- \r
+ effectivetab[i] = specialtab[i]\r
\r
close (datafile)\r
- \r
}\r
\r
-function writespecialfile (datafile, specialtab, i)\r
-{\r
- for (i in specialtab)\r
- {\r
- if (i!="text")\r
- print i"="specialtab[i] > specialfile\r
+function writespecialfile (datafile, specialtab, i) {\r
+ for (i in specialtab) {\r
+ if (i != "text")\r
+ print i "=" specialtab[i] > specialfile\r
}\r
\r
print "" > specialfile\r
- if (specialtab["text"]!="")\r
- printf("%s",specialtab["text"]) > specialfile\r
+ if (specialtab["text"] != "")\r
+ printf("%s", specialtab["text"]) > specialfile\r
close (specialfile)\r
}\r
\r
#// viewer.awk
#// The viewer
#//
-#// Copyright (C) 2015-2021, 2023 Balthasar Szczepański
+#// Copyright (C) 2015-2021, 2023, 2025 Balthasar Szczepański
#//
#// This program is free software: you can redistribute it and/or modify
#// it under the terms of the GNU Affero General Public License as
botcastleurl="http://1190.bicyclesonthemoon.info"
postlink="http://forums.xkcd.com/viewtopic.php?f=7"
- for(i=0;i<256;++i)
- {
- ch=sprintf("%c",i)
- hex=sprintf("%02X",i)
- dec=sprintf("%u",i)
- ch2hex[ch]=hex
- ch2dec[ch]=dec
+ for (i=0; i<256; ++i) {
+ ch = sprintf("%c",i)
+ hex = sprintf("%02X",i)
+ dec = sprintf("%u",i)
+ ch2hex[ch] = hex
+ ch2dec[ch] = dec
}
listfile = datapath "stories"
- stories=0
- line=""
- while((getline line < listfile)>0)
- {
+ stories = 0
+ line = ""
+ while ((getline line < listfile) > 0) {
gsub(/[\r\n]/,"",line)
- eq=index(line,"=")
+ eq = index(line,"=")
- storytab[stories]=htmlescape(substr(line, 1, eq-1),"","")
- storyname[stories]=htmlescape(substr(line, eq+1),"","")
+ storytab[stories] = htmlescape(substr(line, 1, eq-1), "", "")
+ storyname[stories] = htmlescape(substr(line, eq+1), "" , "")
++stories
}
- close(listfile)
+ close (listfile)
- if(frame ~ /[a-zA-Z]$/)
- {
- f=int(substr(frame,1,length(frame)-1))
- s=substr(frame, length(frame))
+ if (frame ~ /[a-zA-Z]$/) {
+ f = int(substr(frame,1,length(frame)-1))
+ s = substr(frame, length(frame))
}
- else
- {
- f=int(frame)
- s=""
+ else {
+ f = int(frame)
+ s = ""
}
- e=int(enhance)
- n=int(notice)
- b=int(bbcode)
+ e = int(enhance)
+ n = int(notice)
+ b = int(bbcode)
timecmd | getline thistime
- close(timecmd)
+ close (timecmd)
timecmd2 | getline thistime2
- close(timecmd2)
+ close (timecmd2)
timecmd3 | getline thistime3
- close(timecmd3)
+ close (timecmd3)
timecmd4 | getline thistime4
- close(timecmd4)
+ close (timecmd4)
- thistime3=int(thistime3)
- thistime4=int(thistime4)
+ thistime3 = int(thistime3)
+ thistime4 = int(thistime4)
- lastalt=0
+ lastalt = 0
- ch2num[0]=""
- num2ch[""]=0
- for(i=1;i<=26;++i)
- {
- ch=sprintf("%c",i+96)
- num2ch[i]=ch
- ch2num[ch]=i
+ ch2num[0] = ""
+ num2ch[""] = 0
+ for (i=1; i<=26; ++i) {
+ ch = sprintf("%c",i+96)
+ num2ch[i] = ch
+ ch2num[ch] = i
}
- for(i=0;i<256;++i)
- {
- ch=sprintf("%c",i)
- dec=sprintf("%u",i)
- ch2dec[ch]=dec
+ for(i=0;i<256;++i) {
+ ch = sprintf("%c",i)
+ dec = sprintf("%u",i)
+ ch2dec[ch] = dec
}
- alttabsize=0
+ alttabsize = 0
}
{
- file=1
+ file = 1
gsub(/[\r\n]/, "", $0)
- eq=index($0, "=")
- if($0 ~ /^[0-9]+=/)
- {
- i=int(substr($0, 1, eq-1))
- alttab[alttabsize]=substr($0, eq+1)
- alttabn[alttabsize]=i
+ eq = index($0, "=")
+ ind = substr($0, 1, eq-1)
+ val = substr($0, eq+1)
+
+ if ($0 ~ /^[0-9]+=/) {
+ alttab [alttabsize] = val
+ alttabn[alttabsize] = int(ind)
++alttabsize
-
- # i=int(substr($0, 1, eq-1))
- # if(f>=i && i>=lastalt)
- # {
- # alt=substr($0, eq+1)
- # lastalt=i
- # }
- }
- else if($0 ~ /^sf-[0-9]+=/)
- {
- sf=1
- i=int(substr($0, 4, eq-4))
- if(i==f)
- this_sf= tolower(substr($0, eq+1))
- if(i==f-1)
- prev_sf=tolower(substr($0, eq+1))
-
}
- argtab[substr($0, 1, eq-1)]=substr($0, eq+1)
+ else if($0 ~ /^sf-[0-9]+=/) {
+ sf = 1
+ ind = "sf-"int(substr($0, 4, eq-4))
+ val = tolower(val)
+ i=int(ind)
+ }
+ argtab[ind] = val
}
END{
if (file=="")
exit 1
- if(sf=="")
- s=""
- else if(this_sf=="")
- s=""
- else if(s>this_sf && argtab["cfrt"]=="")
- s=this_sf
-
ongoing=int(argtab["ongoing"])
- if(ongoing>0)
- {
- statefile= datapath argtab["story"]"/ongstate"
+ if (ongoing > 0) {
+ statefile= datapath argtab["story"] "/ongstate"
getline temp < statefile
- close(statefile)
+ close (statefile)
split(temp, temptab, " ")
- state=int(temptab[1])
- last=int(temptab[2])
- nextong=int(temptab[3])
+ state = int(temptab[1])
+ last = int(temptab[2])
+ nextong = int(temptab[3])
+ # ongfailcount = int(temptab[4])
}
- else
- {
- last=int(argtab["last"])
- state=3
+ else {
+ last = int(argtab["last"])
+ state = 3
+ nextong = 0
+ # ongfaicount = 0
}
- first=int(argtab["first"])
+ first = int(argtab["first"])
- ongtimefile= datapath argtab["story"]"/ongtime"
+ if (sf=="") {
+ s = ""
+ last_sf = ""
+ this_sf = ""
+ prev_sf = ""
+ }
+ else {
+ last_sf = argtab["sf-" last]
+ this_sf = argtab["sf-" f ]
+ prev_sf = argtab["sf-"(f-1)]
+ }
- if(frame=="")
- {
- if(ongoing>0)
- {
- if (int(argtab["onlyframe"])>0)
- {
- f=last
- onlyframe=1
+ ongtimefile= datapath argtab["story"] "/ongtime"
+
+ if (frame == "") {
+ if (ongoing > 0) {
+ if (int(argtab["onlyframe"]) > 0) {
+ f = last
+ s = last_sf
+ onlyframe = 1
}
- else
- {
- onlyframe=""
- if (int(argtab["showlatest"])>0)
- f=last
- else
- f=first
+ else {
+ onlyframe = ""
+ if (int(argtab["showlatest"]) > 0) {
+ f = last
+ s = last_sf
+ }
+ else {
+ f = first
+ s = ""
+ }
}
}
- else
- {
- f=first
- onlyframe=""
- if (replay != "")
- {
+ else {
+ f = first
+ s = ""
+ onlyframe = ""
+
+ if (replay != "") {
# print "DEBUG:<br>"
- ongyr=0
- ongsy=0
- line=""
- while((getline line < ongtimefile)>0)
- {
- ongind=index(line," ")
- ongft=substr(line,1,ongind-1)
- ongt=int((ongsy?(substr(line,ongind+1,4)-ongyr):0) substr(line,ongind+6,2) substr(line,ongind+9,2) substr(line,ongind+12,2) substr(line,ongind+15,2))
-
+ ongyr = 0
+ ongsy = 0
+ line = ""
+ while ((getline line < ongtimefile) > 0) {
+ ongind = index(line, " ")
+ ongft = substr(line,1,ongind-1)
+ ongt = int((ongsy ? (substr(line,ongind+1,4)-ongyr) : 0) substr(line,ongind+6,2) substr(line,ongind+9,2) substr(line,ongind+12,2) substr(line,ongind+15,2))
# printf("o.%d<br>",ongt)
-
- if(!ongsy)
- {
- ongsy=1
- ongyr=substr(line,ongind+1,4)
+ if (!ongsy) {
+ ongsy = 1
+ ongyr = substr(line,ongind+1,4)
# printf("3.%d<br>",thistime3)
- if(thistime3<ongt)
- {
+ if (thistime3 < ongt) {
thistime3 += 100000000
# printf("3.%d<br>",thistime3)
}
}
-
- if(ongt>thistime3)
- {
+ if (ongt > thistime3) {
# if(ongsm)
# print"BREAK!<br>"
break;
}
# else
# ongsm=1;
- if(ongft ~ /^[0-9]+[a-z]$/)
- {
- f=int(substr(ongft,1,ongind-2))
- s=substr(ongft,ongind-1,1)
+ if (ongft ~ /^[0-9]+[a-z]$/) {
+ f = int(substr(ongft,1,ongind-2))
+ s = substr(ongft,ongind-1,1)
}
- else
- {
- f=int(ongft)
- s=""
+ else {
+ f = int(ongft)
+ s = ""
}
# print"f."f"."s"<br>"
}
- close(ongtimefile)
+ close (ongtimefile)
}
}
}
- if (s!="")
- {
- if(argtab[s] != "")
- s2=argtab[s]
- else
- s2=s
- # n=-1
- }
+ cfrt = ""
+ invalid = ""
- if(f<first && argtab["cfrt"]=="")
- f=first
-
- if(f>last && argtab["cfrt"]=="")
- f=last
+ if (state !~ /^[1235]$/) {
+ cfrt = 1
+ invalid = 1
+ }
+ else if (f < first) {
+ f = first
+ s = ""
+ cfrt = 1
+ }
+ else if (f > last) {
+ f = last
+ s = last_sf
+ cfrt = 1
+ }
+ else if (sf != "") {
+ if ((s != "") && (this_sf == "")) {
+ s = ""
+ cfrt = 1
+ }
+ else if ((s != "") && (this_sf != "") && (s > this_sf)) {
+ s = this_sf
+ cfrt =1
+ }
+ }
- if(argtab["special"] != "")
- {
- specialfile=datapath argtab["story"]"/"sprintf(argtab["special"],f,s)
- line=""
- undertext=""
+ if (cfrt && (argtab["cfrt"] != "")) {
+ }
+ else if (invalid) {
+ print "Status: 302 Temporal Relocation"
+ print "Location: /aftertime/viewer?story=default"
+ print ""
+ exit 0
+ }
+ else if (argtab["special"] != "") {
+ specialfile = datapath argtab["story"] "/" sprintf(argtab["special"], f, s)
+ line = ""
+ undertext = ""
- while((getline line < specialfile)>0)
- {
+ while ((getline line < specialfile) > 0) {
gsub(/[\r\n]/, "", line)
- if (line == "" && !undertext)
- {
- undertext=1
- argtab["text"]=""
+ if ((line == "") && (!undertext)) {
+ undertext = 1
+ argtab["text"] = ""
continue
}
- if (undertext)
- {
+ if (undertext) {
argtab["text"] = argtab["text"] line "\n"
}
- else
- {
-
- eq=index(line, "=")
- argtab[substr(line, 1, eq-1)]=substr(line, eq+1)
+ else {
+ eq = index(line, "=")
+ argtab[substr(line, 1, eq-1)] = substr(line, eq+1)
}
}
close (specialfile)
}
- line=""
- while((getline line < ongtimefile)>0)
- {
- ongind=index(line," ")
- ongft=substr(line,1,ongind-1)
- ongt=substr(line,ongind+9,2)"."substr(line,ongind+6,2)"."substr(line,ongind+1,4)", "substr(line,ongind+12,2)":"substr(line,ongind+15,2)" UTC"
- if(ongft ~ /^[0-9]+[a-z]$/)
- ongf=int(substr(ongft,1,ongind-2)) substr(ongft,ongind-1,1)
+ line = ""
+ while ((getline line < ongtimefile) > 0) {
+ ongind = index(line," ")
+ ongft = substr(line,1,ongind-1)
+ ongt = substr(line,ongind+9,2) "." substr(line,ongind+6,2) "." substr(line,ongind+1,4) ", " substr(line,ongind+12,2) ":" substr(line,ongind+15,2) " UTC"
+ if (ongft ~ /^[0-9]+[a-z]$/)
+ ongf = int(substr(ongft,1,ongind-2)) substr(ongft,ongind-1,1)
else
- ongf=int(ongft)
+ ongf = int(ongft)
- if(ongf==(f s) && ongt ~ /^[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9], [0-9][0-9]:[0-9][0-9] UTC$/)
- ongtimetext=ongt
+ if ((ongf == (f s)) && ongt ~ (/^[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9], [0-9][0-9]:[0-9][0-9] UTC$/))
+ ongtimetext = ongt
}
- close(ongtimefile)
+ close (ongtimefile)
if ("alt" in argtab)
- alt=htmlescape(argtab["alt"],"less","bb")
- else
- {
- for(i=0; i<alttabsize; ++i)
- {
- if(f>=alttabn[i] && alttabn[i]>=lastalt)
- {
- alt=htmlescape(alttab[i],"less","bb")
- lastalt=alttabn[i]
+ alt = htmlescape(argtab["alt"], "less", "bb")
+ else {
+ for(i=0; i<alttabsize; ++i) {
+ if ((f >= alttabn[i]) && (alttabn[i] >= lastalt)) {
+ alt = htmlescape(alttab[i], "less", "bb")
+ lastalt = alttabn[i]
}
}
}
- if(argtab["number"]!="")
- numberformat=argtab["number"]
- else
- {
+ if (argtab["number"] != "")
+ numberformat = argtab["number"]
+ else {
# if (sf!="")
- numberformat="%u%s"
+ numberformat = "%u%s"
# else
- # numberformat="%u"
- }
-
- framedir= (argtab["framedir"]!="" ? argtab["framedir"] : "/aftertime/"argtab["story"]"/")
- # if(sf!="")
- # {
- title=htmlescape(sprintf(argtab["title"(e>0 ? "-"e : "")],f,s2),"less","bb")
- frame=framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f,s)
- if (system("[ -f " framepath frame" ]")!=0)
- {
- frame= framedir sprintf(argtab["frame"],f,s)
- title=htmlescape(sprintf(argtab["title"],f,s2),"less","bb")
- noenh=1
- }
- otherviewerurl=sprintf(argtab["otherviewerurl"], f+int(argtab["othervieweroffset"]),s2)
- # }
- # else
- # {
- # s=""
- # title=htmlescape(sprintf(argtab["title"(e>0 ? "-"e : "")],f),"less","bb")
- # frame= framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f)
- # if (system("[ -f " framepath frame" ]")!=0)
- # {
- # frame= framedir sprintf(argtab["frame"],f)
- # title=htmlescape(sprintf(argtab["title"],f,s),"less","bb")
- # noenh=1
- # }
- # otherviewerurl=sprintf(argtab["otherviewerurl"], f+int(argtab["othervieweroffset"]))
- # }
-
- dynamicframe="/aftertime/frame?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="f s
-
- if((f>last || f<first || (this_sf!="" && s>this_sf)) && argtab["cfrt"]!="")
- frame= framedir argtab["cfrt"]
-
- border= int(argtab["border"])
- if(argtab["width"]!="")
- width= int(argtab["width"]) + 2*border
- else
- width="100%"
- max_enhance=int(argtab["enhance"])
+ # numberformat = "%u"
+ }
- if (this_sf=="")
+ if (s != "")
{
- next_f= f+1
- next_s= ""
+ if(argtab[s] != "")
+ s2 = argtab[s]
+ else
+ s2 = s
}
- else if(s=="")
- {
- next_f=f
- next_s="a"
+
+ framedir = (argtab["framedir"]!="" ? argtab["framedir"] : "/aftertime/"argtab["story"]"/")
+ title = htmlescape(sprintf(argtab["title"(e>0 ? "-"e : "")], f, s2),"less","bb")
+ if (cfrt && (argtab["cfrt"] != "")) {
+ frame = framedir argtab["cfrt"]
+ dynamicframe = frame
}
- else if(s>=this_sf)
- {
- next_f= f+1
- next_s= ""
+ else {
+ frame = framedir sprintf(argtab["frame"(e>0 ? "-"e : "")],f,s)
+ if (system("[ -f " framepath frame" ]") !=0 ) {
+ frame = framedir sprintf(argtab["frame"],f,s)
+ title = htmlescape(sprintf(argtab["title"],f,s2),"less","bb")
+ noenh = 1
+ }
+ dynamicframe = "/aftertime/frame?story=" argtab["story"] ((max_enhance>0)?("&e=" e):"") "&f=" f s
}
+ otherviewerurl = sprintf(argtab["otherviewerurl"], f+int(argtab["othervieweroffset"]), s2)
+
+ border = int(argtab["border"])
+ if (argtab["width"] != "")
+ width = int(argtab["width"]) + 2*border
else
- {
+ width = "100%"
+ max_enhance = int(argtab["enhance"])
+
+ loop = ""
+ if ((state ~ /^[35]$/) && (argtab["loop"] != "") && (f == last) && ((last_sf == "") || (s == last_sf))) {
+ loop = 1
+ if (argtab["loop"] ~ /[a-zA-Z]$/) {
+ next_f = int(substr(argtab["loop"],1,length(argtab["loop"])-1))
+ next_ss = substr(argtab["loop"], length(argtab["loop"]))
+ }
+ else {
+ next_f = int(argtab["loop"])
+ next_s = ""
+ }
+ }
+ else if (this_sf == "") {
+ next_f = f+1
+ next_s = ""
+ }
+ else if (s == "") {
+ next_f = f
+ next_s = "a"
+ }
+ else if (s >= this_sf) {
+ next_f = f+1
+ next_s = ""
+ }
+ else {
next_f = f
next_s = num2ch[ch2num[s]+1]
}
- if(this_sf!="" && s!="")
- {
+ if ((this_sf != "") && (s != "")) {
prev_f = f
prev_s = num2ch[ch2num[s]-1]
}
- else if(prev_sf!="")
- {
+ else if (prev_sf != "") {
prev_f = f-1
prev_s = prev_sf
}
- else
- {
+ else {
prev_f = f-1
prev_s = ""
}
- if(prev_s!=""){
- if(argtab[prev_s]!=""){
- prev_s2=argtab[prev_s]
- }
+ if (prev_s != "") {
+ if (argtab[prev_s] != "")
+ prev_s2 = argtab[prev_s]
else
- {
- prev_s2=prev_s
- }
+ prev_s2 = prev_s
}
else
prev_s2 = ""
- if (next_s!="")
- {
- if(argtab[next_s]!=""){
- next_s2=argtab[next_s]
- }
+ if (next_s != "") {
+ if (argtab[next_s] != "")
+ next_s2 = argtab[next_s]
else
- {
- next_s2=next_s
- }
+ next_s2 = next_s
}
else
next_s2 = ""
print "<link rel=\"stylesheet\" href=\"/css/botm.css\">"
print "<link rel=\"index\" href=\"/aftertime/\">"
print "<link rel=\"start\" href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="first"\">"
- if(f>first)
- {
+ if ((f > first) || ((this_sf != "") && (s != ""))) {
print "<link rel=\"prev\" href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="prev_f prev_s"\">"
}
- if(f<last)
- {
+ if ((f < last) || ((this_sf != "") && (s < this_sf)) || loop) {
print "<link rel=\"next\" href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="next_f next_s"\">"
print "<link rel=\"prefetch\" href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="next_f next_s"\">"
}
if(onlyframe!="")
print "<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="f s"\">"
print "<img src=\""((ongoing>0 && state <2 && f==last)?dynamicframe:frame)"\" alt=\""title"\" title=\""alt"\" border=\""border"\">"
- if(onlyframe!="")
+ if (onlyframe != "")
print "</a>"
print "</td></tr>"
- if(ongoing==1)
- {
- # print "<tr width=\""width"\" align=\"right\"><td colspan=\"4\" width=\"100%\">"
- if(state<3)
- {
- # ongtime=int(argtab["ongtime"])
- # dt = (3600*ongtime - ( int(substr(thistime2,5,2)) + 60*int(substr(thistime2,3,2)) + 3600*( int(substr(thistime2,1,2))%int(argtab["ongtime"]) ) ))%(ongtime*3600)
- # ss=(dt>0 ? sprintf("%02u",dt%60) : "NG")
- # mm=sprintf("%02u",int(dt/60)%60)
- # hh=sprintf("%02u",int(dt/3600))
- dt=nextong-thistime4
- if (dt<-5)
- {
- ss="EE"
- mm="EE"
- hh="EE"
- }
- else if (dt>0)
- {
- ss=sprintf("%02u",dt%60)
- mm=sprintf("%02u",int(dt/60)%60)
- if ((dt/3600)>99)
- hh="EE"
- else
- hh=sprintf("%02u",int(dt/3600))
- }
- else {
- ss="NG"
- mm="00"
- hh="00"
- }
- }
+ if (state ~ /^[35]$/) {
+ if (argtab["last"] == "")
+ showtime = 1
+ else if (last < int(argtab["last"]))
+ showtime = 1
else
- {
+ showtime = ""
+ }
+ else if (state ~ /^[12]$/)
+ showtime = 1
+ else
+ showtime = ""
+
+ if (showtime) {
+ # print "<tr width=\""width"\" align=\"right\"><td colspan=\"4\" width=\"100%\">"
+ dt = nextong - thistime4
+ if (dt < -5) {
ss="EE"
mm="EE"
hh="EE"
}
+ else if (dt > 0) {
+ ss=sprintf("%02u",dt%60)
+ mm=sprintf("%02u",int(dt/60)%60)
+ if ((dt/3600)>99)
+ hh="EE"
+ else
+ hh=sprintf("%02u",int(dt/3600))
+ }
+ else {
+ ss = "NG"
+ mm = "00"
+ hh = "00"
+ }
# hh=nextong" "thistime4
- timecolor=(state>1?"br":"ni")
+ timecolor = ((state == 1)? "ni" : ((state == 2) ? "br" : "cz"))
print "<tr width=\""width"\" align=\"right\"><td colspan=\"4\" width=\"100%\"><tt><b class=\""timecolor"\">"hh"</b>:<b class=\""timecolor"\">"mm"</b>:<b class=\""timecolor"\">"ss"</b></tt></td></tr>"
}
- if(onlyframe=="")
- {
- if(max_enhance>0)
- {
+ if (onlyframe == "") {
+ if (max_enhance > 0) {
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\">["
- for(i=0;i<=max_enhance;++i)
- {
- if(i!=0)
+ for (i=0; i<= max_enhance; ++i) {
+ if (i != 0)
print "|"
# if(sf!="")
enhancedframe = framedir sprintf(argtab["frame"(i>0?"-"i:"")],f,s)
# else
# enhancedframe = framedir sprintf(argtab["frame"(i>0?"-"i:"")],f)
-
- if (system("[ -f " framepath enhancedframe" ]")==0)
- {
- if(i==e)
+ if (system("[ -f " framepath enhancedframe" ]") == 0) {
+ if (i == e)
print"<b>"argtab["enhance-"i]"</b>"
else
print"<a href=\"/aftertime/viewer?story="argtab["story"]"&e="i"&f="f s((b>0)?("&b="b):"")"\">"argtab["enhance-"i]"</a>"
print "<tr width=\""width"\" align=\"center\">"
print "<td width=\"25%\"><a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="first"\">|< "sprintf(numberformat,first,"")"</a></td>"
- print "<td width=\"25%\">"(f>first?"<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="prev_f prev_s"\">< "sprintf(numberformat,prev_f,prev_s2)"</a>":"")"</td>"
- print "<td width=\"25%\">"(f<last?"<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="next_f next_s"\">"sprintf(numberformat,next_f,next_s2)" ></a>":"")"</td>"
+ print "<td width=\"25%\">"(((f > first) || ((this_sf != "") && (s != "")))?"<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="prev_f prev_s"\">< "sprintf(numberformat,prev_f,prev_s2)"</a>":"")"</td>"
+ print "<td width=\"25%\">"(((f < last) || ((this_sf != "") && (s < this_sf)) || loop)?"<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="next_f next_s"\">"sprintf(numberformat,next_f,next_s2)" ></a>":"")"</td>"
print "<td width=\"25%\"><a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="last"\">"sprintf(numberformat,last,"")" >|</a></td>"
print "</tr>"
- if(ongtimetext!="")
- {
- if(argtab["ID"]!="")
- {
+ if (ongtimetext != "") {
+ if (argtab["ID"] != "") {
print "<tr width=\""width"\" align=\"right\"><td colspan=\"4\" width=\"100%\"><a href=\""postlink"&p="int(argtab["ID"])"#p"int(argtab["ID"])"\">"ongtimetext"</a></td></tr>"
}
# else if (argtab["otherviewerurl"]!="")
print "<tr width=\""width"\" align=\"right\"><td colspan=\"4\" width=\"100%\">"ongtimetext"</td></tr>"
}
- if(argtab["HTML"]!="" && b==0)
- {
+ if (argtab["HTML"]!="" && b==0) {
print "<tr width=\""width"\"><td colspan=\"4\" width=\"100%\">"argtab["HTML"]"</td></tr>"
}
- for(i=-1; i<=n+1; ++i)
- {
+ for (i=-1; i<=n+1; ++i) {
# print "<!-- ######## "i"######## -->"
if(i<0)
- noticepost=noticepath argtab["story"]"-i"
+ noticepost = noticepath argtab["story"] "-i"
else
- noticepost=noticepath argtab["story"]"-"sprintf("%04u%s",f,s)"-"sprintf("%02u",i)
+ noticepost = noticepath argtab["story"] "-" sprintf("%04u%s",f,s) "-" sprintf("%02u",i)
split("", noticetab, ":")
- for(j=0;(getline line < noticepost)>0;++j)
- {
+ for (j=0; (getline line < noticepost)>0; ++j) {
gsub(/[\r\n]/,"",line)
- eq=index(line,"=")
- noticetab[substr(line, 1, eq-1)]=substr(line, eq+1)
+ eq = index(line,"=")
+ noticetab[substr(line, 1, eq-1)] = substr(line, eq+1)
}
- close(noticepost)
- if(j==0)
- {
- if(i<=0)
+ close (noticepost)
+ if (j == 0) {
+ if (i <= 0)
continue;
else
break;
}
- if(i>=0)
- {
- nposttime=noticetab["y"]noticetab["m"]noticetab["d"]noticetab["h"]
+ if (i >= 0) {
+ nposttime = noticetab["y"] noticetab["m"] noticetab["d"] noticetab["h"]
if ((thistime<nposttime) && (i>0))
break;
}
- if(i<=n)
- {
- if(i>=0)
+ if (i <= n) {
+ if (i >= 0)
print "<tr width=\""width"\"><td colspan=\"4\" width=\"100%\"><i>"noticetab["subject_h"]"</i> "(noticetab["ID"]!=""?" (<a href=\"/ott/view?p="noticetab["ID"]"#p"noticetab["ID"]"\">OTT time travel</a>)":"")"</td></tr>"
print"<tr width=\""width"\"><td colspan=\"4\" width=\"100%\">"((noticetab["HTML"]!="")?noticetab["HTML"]:noticetab["BBHTML"])"</td></tr>"
}
- else
- {
+ else {
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\"><a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="f s"&n="i"\">"noticetab["subject_h"]"</a></td></tr>"
}
}
- if(b>0)
- {
- if (argtab["BBHTML"]!="")
- {
- bbtext=argtab["BBHTML"]
+ if (b > 0) {
+ if (argtab["BBHTML"] != "") {
+ bbtext = argtab["BBHTML"]
}
- else if (argtab["text"]!="")
- {
- bbtext=htmlescape(argtab["text"],"less","bb")
+ else if (argtab["text"] != "") {
+ bbtext = htmlescape(argtab["text"],"less","bb")
gsub(/ /,"\\ ",bbtext)
gsub(/ /," \\ ",bbtext)
}
print"<code>[url="botcastleurl"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="f s"][img]"botcastleurl frame"[/img][/url]"(bbtext!=""?"<br>"bbtext:"")(b>1 && alt!=""?"[spoiler]"alt"[/spoiler]":"")
print"</code></td></tr>"
- ongbotdefined=""
- ongbotfile= datapath argtab["story"] "/" ((argtab["pleaseongbot"]!="")?argtab["pleaseongbot"]:"pleaseongbot")
- if (system("[ -f " ongbotfile " ]")==0)
- ongbotdefined=1
+ ongbotdefined = ""
+ ongbotfile = datapath argtab["story"] "/" ((argtab["pleaseongbot"]!="")?argtab["pleaseongbot"]:"pleaseongbot")
+ if (system("[ -f " ongbotfile " ]") == 0)
+ ongbotdefined = 1
- if(ongbotdefined && ongoing>0 && state>0 && state<4 && f==last && b==(alt!=""?2:1))
- {
+ if (ongbotdefined && ongoing>0 && state>0 && state<4 && f==last && b==(alt!=""?2:1)) {
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\">"
print "<form method=\"post\" action=\"/aftertime/pleaseongthis\">"
print "[<input type=\"submit\" class=\"hl\" value=\"ONG this for me\">]"
print "<input type=\"hidden\" name=\"story\" value=\""argtab["story"]"\">"
- if(e>0 && noenh=="")
+ if (e>0 && noenh=="")
print "<input type=\"hidden\" name=\"e\" value=\""e"\">"
print "</form></td></tr>"
}
- if(b==1 && alt!="")
+ if (b==1 && alt!="")
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\">[<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="f s"&b=2\">spoiler</a>]</td></tr>"
}
else
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\">[<a href=\"/aftertime/viewer?story="argtab["story"](max_enhance>0?"&e="e:"")"&f="f s"&b=1\">bbcode</a>]</td></tr>"
- if(argtab["otherviewerurl"]!="")
+ if (argtab["otherviewerurl"]!="")
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\">[<a href=\""otherviewerurl"\">"argtab["otherviewertext"]"</a>]</td></tr>"
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\"><form method=\"get\" action=\"/aftertime/viewer\">Go to frame:"
print "<input type=\"hidden\" name=\"story\" value=\""argtab["story"]"\">"
- if(max_enhance>0)
+ if (max_enhance>0)
print "<input type=\"hidden\" name=\"e\" value=\""e"\">"
print "<input class=\"pt\" type=\"text\" name=\"f\" size=\"4\">"
print "<input class=\"pk\" type=\"submit\" value=\"GO\">"
- if(ongtimetext!="" && ongoing==0)
- {
+ if (ongtimetext!="" && ongoing==0) {
# print ongoing
# print"<form method=\"get\" action=\"/aftertime/viewer\">"
# print "<input type=\"hidden\" name=\"story\" value=\""argtab["story"]"\">"
print"</form></td></tr>"
print "<tr width=\""width"\" align=\"center\"><td colspan=\"4\" width=\"100%\"><form method=\"get\" action=\"/aftertime/viewer\">Go to story:<select class=\"pk\" name=\"story\">"
- for(i=0; i<stories; ++i)
+ for (i=0; i<stories; ++i)
print "<option value=\""storytab[i]"\""(storytab[i]==argtab["story"]?" selected":"")">"storyname[i]"</option>"
print "</select> <input class=\"pk\" type=\"submit\" value=\"GO\"></form></td></tr>"