1190: "Time"

This forum is for the individual discussion thread that goes with each new comic.

Moderators: Moderators General, Prelates, Magistrates

User avatar
TheMinim
Posts: 939
Joined: Sun Apr 28, 2013 8:47 pm UTC
Location: In The Present
Contact:

Re: 1190: "Time"

Postby TheMinim » Wed Aug 20, 2014 6:24 am UTC

ergman wrote:I don't really have anything to say. But I like talking here!


^This.

Edit: Um, Mome? Just chat. Don't worry, feed squirpies. Relax. And, above all, Wait For It.
Last edited by TheMinim on Wed Aug 20, 2014 5:52 pm UTC, edited 1 time in total.
Titled TheMinimastic as of NP 1610.
Hi Blitzers! And non-blitzers!
Official owner of NewPage 1572, and official co-owner of NewPage 2087 along with NoMouse.

User avatar
BlitzGirl
Posts: 9071
Joined: Mon Sep 20, 2010 11:48 am UTC
Location: Out of the basement for Yip 6! Schizoblitz: 115/2672 NP
Contact:

Re: 1190: "Time"

Postby BlitzGirl » Wed Aug 20, 2014 6:30 am UTC

Company is always molpish. :)

Neil_Boekend wrote:
GLR wrote:Sunday

Did we miss a few there?

I think we're on track. So far:

Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf. Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday I would like some brunch. Maybe waffles.
Knight Temporal of the One True Comic
BlitzGirl the Pink, Mopey Molpy Mome
Spoiler:
Image
Image
Image<Profile
~.Image~.FAQ->Image

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 7:29 am UTC

I panicked

when
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf. Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when I awake with my post-Hugo-win hangover, I'll conclude that I must have partied for a full week. Maybe two.
Last edited by ggh on Wed Aug 20, 2014 7:37 am UTC, edited 1 time in total.
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
balthasar_s
Posts: 2366
Joined: Mon Nov 28, 2011 3:20 pm UTC
Location: secret base on the Moon
Contact:

WHAT HAPPENS IN SPAAACE, STAYS IN SPAAACE.

Postby balthasar_s » Wed Aug 20, 2014 7:37 am UTC

You already know that if nobody sees the latest ONG the next one won't appear and bothasar_p won't make a post either.
After some problems at the beginning, the ONGs continue uninterrupted.
But do you know that there were frames that were seen in time just by one user? Do you know who it was?
Spoiler:
Googlebot.
Without Googlebot we wouldn't be at f=171 now.
BSTA
Good luck, my blitzing friends!
BTTBAA:1023 # Mustard? Use the mirror! Blitzing? Also use the mirror! And here's why. # OTT facebug copy
that's a robot so it doesn't countImage
This text was autogenerated:
swimming unit detector active

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 7:38 am UTC

Really? Googlebot? Is that legal?

Wait. How does that even work?
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
BlitzGirl
Posts: 9071
Joined: Mon Sep 20, 2010 11:48 am UTC
Location: Out of the basement for Yip 6! Schizoblitz: 115/2672 NP
Contact:

Re: 1190: "Time"

Postby BlitzGirl » Wed Aug 20, 2014 7:47 am UTC

Googlebot is the best lurker of all Time.

you're
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf. Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're awakened from coma, you are in for a seriously yappocised schedule.
Knight Temporal of the One True Comic
BlitzGirl the Pink, Mopey Molpy Mome
Spoiler:
Image
Image
Image<Profile
~.Image~.FAQ->Image

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 8:44 am UTC

GeneratONG:
Image
Last edited by ggh on Mon Nov 24, 2014 9:00 am UTC, edited 1 time in total.
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
Eternal Density
Posts: 5574
Joined: Thu Oct 02, 2008 12:37 am UTC
Contact:

THIS IS A CH*RPING GHOLPY. IT IS MADE OF OTTERS AND WOOLPY.

Postby Eternal Density » Wed Aug 20, 2014 8:57 am UTC

There's a new OtherComic.
I didn't find it especially treeish, but others may.
Play the game of Time! castle.chirpingmustard.com Hotdog Vending Supplier But what is this?
In the Marvel vs. DC film-making war, we're all winners.

User avatar
Sustainabilizer
Posts: 609
Joined: Thu Dec 26, 2013 7:24 pm UTC
Location: The Sustainable University

Re: 1190: "Time"

Postby Sustainabilizer » Wed Aug 20, 2014 9:11 am UTC

HEARONG
hearing
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf. Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing them, then your time machine finally works. Congratulations!
Confused about the OTT? See the Wiki!
Want more 1190: Time? Check out TimeAfterTime!
There is a MIRROR of the OTT, just in case.
Thanks for participating in my Scientific Conference and OTTer Meetup!
Image
Help for addams completed successfully. Thanks!

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 9:38 am UTC

this,
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf. Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, you're doing it wrong.
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
balthasar_s
Posts: 2366
Joined: Mon Nov 28, 2011 3:20 pm UTC
Location: secret base on the Moon
Contact:

NOW I AM BECOME CASTRAFTLE, THE CORINNER OF MOLPHINS

Postby balthasar_s » Wed Aug 20, 2014 9:43 am UTC

ggh wrote:Really? Googlebot? Is that legal?
Wait. How does that even work?
If there is mustard and you can't see the frames, they shouldn't ONG in silence. They will wait for it you instead.
But how is it done?
There is a file "ongstate" Its contents now are:
2 171
The second number is the frame, the first number is the state:
0 - not started yet,
1 - latest ong not seen yet
2 - latest ong already seen
3 - t** e** (not implemented yet)

When someone sees the latest frame, the number is changed from 1 to 2. the frame doesn't know who downloads it. it will treat the googlebot the same as anybody else. Every 4 hours an ong bot molpies up. (the rate can change if there are not enough frames prepared) If the value is 2, the next frame is made availabe, the frame number increases, and the value goes back to 1. Otherwise nothing happens. This way the frames won't ONG in silence.

But it doesn't protect from another situation: the ONGs are seen but not posted. New frames appear but the OTT doesn't see them. That's why 5 minutes before ONGtime bothasar_p molpies up. If the frame was seen (ongstate=2) but not posted, bothasar_p will make a post. Otherwise nothing happens.

BlitzGirl wrote:Googlebot is the best lurker of all Time.
Usually, googlebot downloads the latest frame during the first hour. Sometimes in the first few minutes. Once, googlebot downloaded a frame 14 seconds after it appeared!
Googlebot regullarly reads the OTT (why?) On the OTT there are the ONGs posted with a link to the frame view page. Googlebot goes there and sees a link to the latest frame. Googlebot downloads the latest frame.

If you are really interested how everything works:
Spoiler:
viewpage.c

Code: Select all

// view the page //

#define TIMEFRAME 4
#define ONG_STATE_PATH "/eizm/mem/ong1/ongstate"

#include <cgi.h>
#include <time.h>
#include <stdio.h>
#include <string.h>

s_cgi *cgi;

int main (int argc, char *argv[])
{
   time_t now;
   struct tm *nowS;
   unsigned char h,m,s;
   unsigned long d;
   char *value;
   char *bb;
   unsigned short cgiFrame, ongFrame;
   unsigned char ongState;
   FILE *file;
   char alttext[256];
   
   cgi=cgiInit();
   
   now=time(NULL);
   nowS=localtime(&now);
   d=TIMEFRAME*3600-(nowS->tm_sec+60*nowS->tm_min+3600*(nowS->tm_hour%TIMEFRAME));
   s=(unsigned char)(d%60);
   m=(unsigned char)((d/60)%60);
   h=(unsigned char)(d/3600);
   
   file=fopen(ONG_STATE_PATH,"rt");
   if(file!=NULL)
   {
      fscanf(file,"%hhu %hu",&ongState,&ongFrame);
      fclose(file);
   }
   else
      ongFrame=0;
   
   value=cgiGetValue(cgi,"f");
   if(value!=NULL)
      sscanf(value,"%hu",&cgiFrame);
   else
      cgiFrame=ongFrame;
   bb=cgiGetValue(cgi,"b");
   
   if(cgiFrame>ongFrame)
   {
      strcpy(alttext,"You aren't supposed to see this frame now.");
      printf("Status: 404 Not Found (Wait for it.)\n");
   }
   else if(cgiFrame>28)
      strcpy(alttext,"I'd highly recommend following the first commandment.");
   else
      strcpy(alttext,"I'd highly recommend following the first commandment. It may not look very related now. BUT IT WILL.");
   
   printf("Content-type: text/html\n\n");
   
   puts("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"\">\n");
   puts("<html lang=\"en\"><head>\n");
   puts("<title>ONGoing &bull; Bicycles on the Moon</title>\n");
   puts("<meta http-equiv=\"Content-type\" content=\"text/html; charset=iso-8859-2\">\n");
   puts("<link rel=\"icon\" type=\"image/png\" href=\"/img/favicon.png\">\n");
   puts("<link rel=\"stylesheet\" href=\"/css/botm.css\">\n");
   puts("</head><body><center>\n");
   puts("<a href=\"/\"><img src=\"/img/botmlogo2.png\" alt=\"1190.bicyclesonthemoon.dnsd.info\" border=\"0\"></a><br>\n");
   printf("<H1>%hu</H1>\n",cgiFrame);
   puts("<table cellspacing=\"0\" cellpadding=\"0\"><tr><td colspan=\"4\" width=\"414\">\n");
   if(value!=NULL)
      printf("<img src=\"/ongoing.png?f=%hu\" alt=\"the frame, a png file\" title=\"%s\" border=\"2\"><br>\n",cgiFrame,alttext);
   else
      printf("<a href=\"/ongoing.htm?f=%hu\"><img src=\"/ongoing.png\" alt=\"the frame, a png file\" title=\"%s\" border=\"2\"></a><br>\n",ongFrame,alttext);
   puts("</td><tr align=\"right\"><td colspan=\"4\" width=\"414\">");
   printf("%2hhu:%02hhu:%02hhu\n",h,m,s);
   puts("</td></tr>\n");
   if(value!=NULL)
   {
      puts("<tr align=\"center\"><td width=\"104\"><a href=\"/ongoing.htm?f=0\">| &lt; 0</a></td>\n");
      if(cgiFrame>0)
         printf("<td width=\"103\"><a href=\"/ongoing.htm?f=%hu\">&lt; %hu</a>\n",cgiFrame-1,cgiFrame-1);
      else
         puts("<td width=\"103\"></td>\n");
      if(cgiFrame<ongFrame)
         printf("<td width=\"103\"><a href=\"/ongoing.htm?f=%hu\">%hu &gt;</a>\n",cgiFrame+1,cgiFrame+1);
      else
         puts("<td  width=\"103\"></td>\n");
      printf("<td width=\"104\"><a href=\"/ongoing.htm?f=%hu\">%hu &gt;|</a></tr>\n",ongFrame,ongFrame);
      if(cgiFrame<=ongFrame)
      {
         if(bb!=NULL)
            printf("<tr><td colspan=\"4\"><code>[url=http://1190.bicyclesonthemoon.dnsd.info/ongoing.htm?f=%hu][img]http://1190.bicyclesonthemoon.dnsd.info/ongoing/bftf-%04hu.png[/img][/url]</code></td></tr>\n",cgiFrame,cgiFrame);
         else
            printf("<tr align=\"center\"><td colspan=\"4\"><a href=\"/ongoing.htm?f=%hu&amp;b=1\">[bbcode]</a></td></tr>\n",cgiFrame);
      }
   }
   
   puts("</table>\n");
   puts("<a href=\"/\">1190.bicyclesonthemoon.dnsd.info</a>\n");
   puts("</center></body></html>\n");
   
   return 0;
}

view.c

Code: Select all

// view the frame //

#define ONG_STATE_PATH "/eizm/mem/ong1/ongstate"
#define CFRT_PATH      "/ongoing/cfrt.png"
#define FRAME_PRINTF   "/ongoing/bftf-%04hu.png"


#include <cgi.h>
#include <stdio.h>
#include <sys/stat.h>

s_cgi *cgi;

int main (int argc, char *argv[]);
// int sendfile(char *path);

int main (int argc, char *argv[])
{
   FILE *file;
   char *value;
   char framePath[256];
   unsigned short cgiFrame, ongFrame;
   unsigned char ongState;
   
   cgi=cgiInit();
   
   file=fopen(ONG_STATE_PATH,"rt");
   if(file==NULL)
   {
      cgiRedirect(CFRT_PATH);
      return 1;
   }
   fscanf(file,"%hhu %hu",&ongState,&ongFrame);
   fclose(file);
   
   value=cgiGetValue(cgi,"f");
   if(value!=NULL)
      sscanf(value,"%hu",&cgiFrame);
   else
      cgiFrame=ongFrame;
   
   if(ongState==0||cgiFrame>ongFrame)
   {
      cgiRedirect(CFRT_PATH);
      return 0;
   }
   if(cgiFrame==ongFrame&&ongState==1)
   {
      file=fopen(ONG_STATE_PATH,"wt");
      if(file!=NULL)
      {
         fprintf(file,"2 %hu",ongFrame);
         fclose(file);
      }
   }
   
   sprintf(framePath,FRAME_PRINTF,cgiFrame);
   cgiRedirect(framePath);
   return 0;
   // return sendfile(framePath);
}

/*int sendfile(char *path)
{
   unsigned long p,i;
   unsigned short q;
   FILE *file;
   struct stat st;
   unsigned char buf[1024];
   
   file=fopen(path,"rb");
   if(file==NULL)
      return 1;
   fstat(fileno(file),&st);
   p=st.st_size/1024;
   q=st.st_size%1024;
   
   printf("Content-Length: %lu\n",(unsigned long)(st.st_size));
   printf("Content-type: image/png\n\n");
   
   for(i=0;i<p;++i)
   {
      fread(buf,1,1024,file);
      fwrite(buf,1,1024,stdout);
   }
   if(q!=0)
   {
      fread(buf,1,q,file);
      fwrite(buf,1,q,stdout);
   }
   fclose(file);
   return 0;
}*/

ong.c

Code: Select all

// ong //

#define ONG_STATE_PATH "/eizm/mem/ong1/ongstate"
#define MAX_FRAME      310  // na razie tyle
#define FRAME_PRINTF   "/eizm/data/ong1/%hu.png"
#define ONGED_PRINTF   "/eizm/www/time/ongoing/bftf-%04hu.png"
#define CP_PATH        "/bin/cp"

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>

pid_t sub;
int r;

int main (int argc, char *argv[])
{
   FILE *file;
   unsigned short ongFrame;
   unsigned char ongState;
   char framePath[64];
   char ongedPath[64];
   
   file=fopen(ONG_STATE_PATH,"rt");
   if(file!=NULL)
   {
      fscanf(file,"%hhu %hu",&ongState,&ongFrame);
      fclose(file);
   }
   else
   {
      ongState=0;
      ongFrame=0;
   }
   
   if(ongState==2&&ongFrame<MAX_FRAME)
   {
      ++ongFrame;
      sprintf(framePath,FRAME_PRINTF,ongFrame);
      sprintf(ongedPath,ONGED_PRINTF,ongFrame);
      
      sub=fork();
      if(!sub)
      {
         r=execl(CP_PATH,CP_PATH,framePath,ongedPath,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      if(r)
         return r;
      file=fopen(ONG_STATE_PATH,"wt");
      if(file!=NULL)
      {
         fprintf(file,"1 %hu",ongFrame);
         fclose(file);
      }
   }
   
   return 0;
}

bot4.c (bothasar_p when ONGing)

Code: Select all

//ONG the bftf.

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/wait.h>

#define OK              0
#define POST_MSTD     256
#define INDELIVERABLE 512
#define NOPOSTS         3
#define STOP_MSTD       4
#define NAME_MSTD       5
#define DOWN_MSTD       6
#define PREP_MSTD       7
#define LAST_MSTD       8
#define ONGD_MSTD       9

#define LINE_LIMIT 16000

#define USERAGENT "bothasar_p (http://1190.bicyclesonthemoon.dnsd.info/ott/; Time thread post bot)"

#define OTT_ADDRESS "http://forums.xkcd.com/viewtopic.php?f=7&t=101043&start="

#define LAST_PATH "/eizm/mem/ong1/lasttime"
#define LOG_PATH "/eizm/log/ong1/bot4.log"
#define STOP_PATH "/eizm/tmp/ong1/bot4stop"
#define NAME_PATH "/eizm/mem/ottmirror/name"
#define TEMPFILE_PATH "/eizm/tmp/ong1/bot3temp"
#define TEMPFILE2_PATH "/eizm/tmp/ong1/bot3temp2"
#define POSTDATA_PATH "/eizm/tmp/ong1/bot3post"
#define COOKIE_PATH "/eizm/tmp/ong1/bot3cook"
#define ONG_STATE_PATH "/eizm/mem/ong1/ongstate"
#define FORCEMEME_PATH "/eizm/mem/ong1/forcememe"

#define WGET_PATH "/usr/bin/wget"
#define MAWK_PATH "/usr/bin/mawk"
#define RM_PATH "/bin/rm"
#define PERL_PATH "/usr/bin/perl"
#define AWK_LATEST "/eizm/pro/ong1/findlatest.awk"
#define AWK_RELATED "/eizm/pro/ong1/related.awk"
#define AWK_POST "/eizm/pro/ong1/post.awk"
#define AWK_MOME "/eizm/pro/ong1/mome.awk"
#define PERL_MOME "/eizm/pro/ong1/mome.pl"

int main(int argc,char *argv[]);
int longline(const char *in,const char *out, unsigned long limit);
void end(int m);

unsigned char logopen=0;
FILE *file;
FILE *stopfile;
pid_t sub;
int r;

int main(int argc,char *argv[])
{
   time_t t;
   
   int yarg;
   unsigned char text=0;
   unsigned char force=0;
   unsigned char newlog=0;
   unsigned char nopost=0;
   unsigned long start=0x06666666; // this is a coincidence. It's the largest number that won't overflow the 32bit integer.
   unsigned long last=0xffffffff;
   unsigned long page;
   unsigned long posts;
   
   unsigned short frame=65523;
   unsigned short lastframe=0;
   unsigned char ongstate=0;
   unsigned char pope=0;
   
   char name[256];
   char mome[256];
   char pass[256];
   char argp1[256];
   char argp2[256];
   char argp3[256];
   char argp4[256];
   char argp5[256];
   char URL    [256];
   
   time(&t);
   opterr=0;
   
   while((yarg = getopt(argc,argv,"tnfp")) != -1)
   {
      switch(yarg)
      {
      case 't':
         text=1;
         break;
      case 'n':
         newlog=1;
         break;
      case 'f':
         force=1;
         break;
      case 'p':
         nopost=1;
         break;
      default:
         
         break;
      }
   }
   
   if(!text)
   {
      if(freopen(LOG_PATH,newlog?"wt":"at",stdout)!=NULL)
         logopen=1;
   }
   setvbuf(stdout, NULL, _IONBF, 0);
   dup2(fileno(stdout),fileno(stderr));
   printf("\n%s",ctime(&t));
   
   stopfile=fopen(STOP_PATH,"wt");
   if (stopfile==NULL)
      end(STOP_MSTD);
   if (lockf(fileno(stopfile),F_TLOCK,0)!=0)
      end(STOP_MSTD);   
   fprintf(stopfile,"%hu.FULL STOPFULL STOP\n",0);
      
   if((file=fopen(LAST_PATH,"rt"))!=NULL)
   {
      fscanf(file,"%lu %hu",&start,&lastframe);
      fclose(file);
   }
   printf("start with page %lu, last frame was %hu",start,lastframe);
   
   file=fopen(ONG_STATE_PATH,"rt");
   if(file!=NULL)
   {
      fscanf(file,"%hhu %hu",&ongstate,&frame);
      fclose(file);
   }
   else
      end(LAST_MSTD);
   printf(", current frame is %hu",frame);
   
   file=fopen(NAME_PATH,"rt");
   if(file==NULL)
      end(NAME_MSTD);
   if(fgets(argp1,255,file)!=NULL)
      sscanf(argp1,"%s",name);
   else
      end(NAME_MSTD);
   if(fgets(argp1,255,file)!=NULL)
      sscanf(argp1,"%s",pass);
   else
      end(NAME_MSTD);
   fclose(file);
   
   if(force==0)
   {
      if(ongstate!=2)
         end(INDELIVERABLE);
      if(frame<=lastframe)
         end(ONGD_MSTD);      
      for(page=start;page<=last;++page)
      {
         if(page!=start)
            sleep(3);
         printf("\n%lu",page);
         sprintf(URL,"%s%lu",OTT_ADDRESS,(page-1)*40);
      
         // download the newpage
         printf(" download");
         sub=fork();
         if(!sub)
         {
            r=execl(WGET_PATH,WGET_PATH, "-q","-t", "3","-U", USERAGENT, "-O", TEMPFILE_PATH,URL, (char *)0);
            exit(r);
         }
         waitpid(sub,&r,0);
         if(r)
         {
            printf(" %d ",r);
            end(DOWN_MSTD);
         }
         printf(" OK, prepare");
         r=longline(TEMPFILE_PATH,TEMPFILE2_PATH,LINE_LIMIT);
         if(r)
            end(PREP_MSTD);
         printf(".");
         
         // what's the last page and how many posts are there?
         sprintf(argp1,"outfile=%s",TEMPFILE_PATH);
         sub=fork();
         if(!sub)
         {
            r=execl(MAWK_PATH,MAWK_PATH,"-f",AWK_LATEST,"-v",argp1,TEMPFILE2_PATH,(char *)0);
            exit(r);
         }
         waitpid(sub,&r,0);
         if(r)
            end(LAST_MSTD);
         printf(".");
         
         if((file=fopen(TEMPFILE_PATH,"rt"))!=NULL)
         {
            fscanf(file,"%lu %lu",&last,&posts);
            if(posts%40==0)
               pope=1;
            else
               pope=0;
            fclose(file);
         }
         else
            end(LAST_MSTD);
         if(page>last)
            page=last;
         printf(".OK match");
         
         sprintf(argp1,"frame=%hu",frame);
         sub=fork();
         if(!sub)
         {
            r=execl(MAWK_PATH,MAWK_PATH,"-f",AWK_RELATED,"-v",argp1,TEMPFILE2_PATH,(char *)0);
            exit(r);
         }
         waitpid(sub,&r,0);
         if(r)
         {
            if((file=fopen(LAST_PATH,"wt"))!=NULL)
            {
               fprintf(file,"%lu %hu",last,frame);
               fclose(file);
            }
            else
               end(STOP_MSTD);
            end(ONGD_MSTD);
         }
         else
         {
            if((file=fopen(LAST_PATH,"wt"))!=NULL)
            {
               fprintf(file,"%lu %hu",page,frame);
               fclose(file);
            }
            else
               end(STOP_MSTD);
         }
         printf(" nothing found.");
      }
   }   
   
   printf("\nGet mome.");
   
   file=fopen(FORCEMEME_PATH,"rt");
   if(file==NULL)
   {
      sub=fork();
      if(!sub)
      {
         freopen(TEMPFILE_PATH,"wt",stdout);
         r=execl(PERL_PATH,PERL_PATH,PERL_MOME,"-lc","150","-n","67",(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      if(r==0)
      {
         sprintf(argp1,"outfile=%s",TEMPFILE2_PATH);
         sub=fork();
         if(!sub)
         {
            r=execl(MAWK_PATH,MAWK_PATH,"-f",AWK_MOME,"-v",argp1,TEMPFILE_PATH,(char *)0);
            exit(r);
         }
         waitpid(sub,&r,0);
         if(r==0)
         {
            file=fopen(TEMPFILE2_PATH,"rt");
            if(file!=NULL)
            {
               fscanf(file,"%s",mome);
               fclose(file);
            }
            else
               sprintf(mome,"%s","Ong.");
         }
         else
            sprintf(mome,"%s","Ong.");
      }
      else
         sprintf(mome,"%s","Ong.");
   }
   else
   {
      fscanf(file,"%s",mome);
      fclose(file);
      sub=fork();
      if(!sub)
      {
         r=execl(RM_PATH,RM_PATH,"-f",FORCEMEME_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      if(r)
         sprintf(mome,"%s","Ong.");
   }

   printf(" %s OK.\ncreate post file",mome);
   
   file=fopen(POSTDATA_PATH,"wt");
   if(file != NULL)
   {
      fprintf(file,"username=%s\n",name);
      fprintf(file,"password=%s\n",pass);
      fprintf(file,"subject=bftf-%04hu\n",frame);
      fprintf(file,"addbbcode20=%s\n","100");
      fprintf(file,"message=%s%s%hu%s%04hu%s%s%s",
         mome,
         "%0A%5Burl%3Dhttp%3A%2F%2F1190.bicyclesonthemoon.dnsd.info%2Fongoing.htm%3Ff%3D",
         frame,
         "%5D%5Bimg%5Dhttp%3A%2F%2F1190.bicyclesonthemoon.dnsd.info%2Fongoing%2Fbftf-",
         frame,
         ".png%5B%2Fimg%5D%5B%2Furl%5D%5Bspoiler%5DI%27d%20highly%20recommend%20following%20the%20first%20commandment.%5B%2Fspoiler%5D",
         pope?"Wow%2C%20pope!%0AI%27m%20a%20popebot!%0A%40%5Bb%5DOldpixbot%5B%2Fb%5D%2C%20what%20do%20bots%20usually%20do%20when%20they%20are%20pope%3F":"",
         "%5Bsize%3D85%5D%5Bright%5D--%20posted%20by%20newpixbothasar_p%5B%2Fright%5D%5B%2Fsize%5D"
      );
      fclose(file);
   }
   else
      end(POST_MSTD);
   printf(" OK\nsend post");
   
   sprintf(argp1 ,"postfile=%s",TEMPFILE2_PATH);
   sprintf(argp2,"cookiefile=%s",COOKIE_PATH);
   sprintf(argp3,"tempfile=%s",TEMPFILE_PATH);
   sprintf(argp4,"name=%s",name);
   sprintf(argp5,"pass=%s",pass);
   
   if(!nopost)
   {
      sub=fork();
      if(!sub)
      {
         r=execl(MAWK_PATH,MAWK_PATH,"-f",AWK_POST,"-v",argp1,"-v",argp2,"-v",argp3,POSTDATA_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      if(r)
         end(r);
   }
   printf(" OK");
   end(OK);
   return 0;
}

int longline(const char *in,const char *out, unsigned long limit)
{
   FILE *infile;
   FILE *outfile;
   unsigned char tag;
   unsigned long counter=0;
   char ch;
   
   outfile=fopen(out,"wt");
   if(outfile==NULL)
      return 1;
   infile=fopen(in,"rt");
   if(infile==NULL)
   {
      fclose(outfile);
      return 1;
   }
   
   while(!feof(infile))
   {
      ch=(char)(fgetc(infile));
      fputc(ch,outfile);
      ++counter;
      switch(ch)
      {
      case '<':
         tag=1;
         break;
      case '>':
         tag=0;
         if(counter>=limit)
         {
            fputc('\n',outfile);
            counter=0;
         }
         break;
      case ' ':
         if((!tag) && (counter>= limit))
         if(counter>=limit)
         {
            fputc('\n',outfile);
            counter=0;
         }
         break;
      case '\r':
      case '\n':
         counter=0;
         break;
      default:
         break;
      }
      
   }
   return 0;
}


void end(int m)
{
   switch(m)
   {
   case INDELIVERABLE:
      printf("\nCan't ONG this yet.\n");
      break;
   case NAME_MSTD:
      printf("\nName and password fail.\n");
      break;
   case DOWN_MSTD:
      printf("\nDownload fail.\n");
      break;
   case PREP_MSTD:
      printf("\nNewpage prepare fail.\n");
      break;
   case LAST_MSTD:
      printf("\nRemember last time fail.\n");
      break;
   case ONGD_MSTD:
      printf("\nAlready ONGed\n");
      break;
   case POST_MSTD:
      printf("\nPost fail.\n");
      break;
   case STOP_MSTD:
      printf("\nFULL STOPFULL STOP\n");
      break;
   
   
   case OK:
      printf("\nONGED\n");
      break;
   default:
      printf("\nCh*rping m*stard!\n");
   }
   if(logopen)
      fclose(stdout);
   if(m != STOP_MSTD)
   {
      sub=fork();
      if(!sub)
      {
         r=execl(RM_PATH,RM_PATH,"-f",COOKIE_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      sub=fork();
      if(!sub)
      {
         r=execl(RM_PATH,RM_PATH,"-f",POSTDATA_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      sub=fork();
      if(!sub)
      {
         r=execl(RM_PATH,RM_PATH,"-f",TEMPFILE_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      sub=fork();
      if(!sub)
      {
         r=execl(RM_PATH,RM_PATH,"-f",TEMPFILE2_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      
      lockf(fileno(stopfile),F_ULOCK,0);
      fclose(stopfile);
      
      sub=fork();
      if(!sub)
      {
         r=execl(RM_PATH,RM_PATH,"-f",STOP_PATH,(char *)0);
         exit(r);
      }
      waitpid(sub,&r,0);
      
   }
   exit(m);
}

ETA:
bot4.c wrote:

Code: Select all

#include <time.h>
#include <sys/wait.h>
It's ALL RELATED!
Last edited by balthasar_s on Wed Aug 20, 2014 9:59 am UTC, edited 1 time in total.
BSTA
Good luck, my blitzing friends!
BTTBAA:1023 # Mustard? Use the mirror! Blitzing? Also use the mirror! And here's why. # OTT facebug copy
that's a robot so it doesn't countImage
This text was autogenerated:
swimming unit detector active

User avatar
BlitzGirl
Posts: 9071
Joined: Mon Sep 20, 2010 11:48 am UTC
Location: Out of the basement for Yip 6! Schizoblitz: 115/2672 NP
Contact:

Re: 1190: "Time"

Postby BlitzGirl » Wed Aug 20, 2014 9:51 am UTC

balthasar_s wrote:Googlebot regularly reads the OTT (why?)

Who wouldn't want to read the OTT regularly?
Knight Temporal of the One True Comic
BlitzGirl the Pink, Mopey Molpy Mome
Spoiler:
Image
Image
Image<Profile
~.Image~.FAQ->Image

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 10:00 am UTC

Thanks for the explanation balthaprof! I guess I didn't realize that bots follow links - I thought that they just followed the requests of others. Really, I never really thought about it much. The whole internet is a mystery to me.
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
balthasar_s
Posts: 2366
Joined: Mon Nov 28, 2011 3:20 pm UTC
Location: secret base on the Moon
Contact:

IF :AZULE:ING IN THE TOWER IS SANDISH, THEN I'M ROSETTA.

Postby balthasar_s » Wed Aug 20, 2014 10:05 am UTC

ggh wrote:I guess I didn't realize that bots follow links - I thought that they just followed the requests of others.
Google wouldn't work if googlebot didn't follow links. And I'm sure that googlebot WAS following requests. The request was to follow links :D
BSTA
Good luck, my blitzing friends!
BTTBAA:1023 # Mustard? Use the mirror! Blitzing? Also use the mirror! And here's why. # OTT facebug copy
that's a robot so it doesn't countImage
This text was autogenerated:
swimming unit detector active

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 11:18 am UTC

it

it!!!
Is this what we've been waiting for?!!??
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
SilentTimer
Posts: 1093
Joined: Fri Nov 08, 2013 8:40 pm UTC
Location: secret base on the Moon

BFTF #172

Postby SilentTimer » Wed Aug 20, 2014 11:29 am UTC

it
Is this the it we've been … ninja'd!

balthasar_s wrote:Googlebot regularly reads the OTT (why?)
Who wouldn't want to … ninja'd!

But now: GeneratONG a map …
Image
Spoiler:
I'd highly recommend following the first commandment.

Nexpixbot? I saw you passing by. Come in and join the Hugo party!
ETA:
Prediction:
Spoiler:
Map of the Mediterranean. Or of the moon.

ETA:
means
Spoiler:
The meaning of it! Now we'll learn it. Now we'll learn everything!
Last edited by SilentTimer on Mon Nov 24, 2014 10:05 am UTC, edited 3 times in total.
Image Did you like 1190: Time?
Then you will like its sequel: t1i. [Discussion] [Making Of]
ucim wrote:I consider it to be canon.

503? Images don't work? Other mustard? Visit the ЯOЯЯIM!

Randalspeed to Rakhal, thunk, and all Blitzers!

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 11:53 am UTC

Spoiler:
means

We're going to find out what it means!



Haha! ninja'd! That's funny!
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
SBN
Saved
Posts: 2231
Joined: Tue Mar 26, 2013 7:15 pm UTC
Location: No longer in the home of the raptorcats, now in the home of the raptorcats.

Re: 1190: "Time"

Postby SBN » Wed Aug 20, 2014 12:12 pm UTC

pelrigg wrote:And (semi-)thanks for linking me to Q040. I just spent more ticks of the ONG-clock over there than I expected to. {Now I'll have to go back and keep playing... Like I said "semi-thanks".} [But, I'm up to one grapevine tile, with the Flutterby boost and a little over 12300 points. For me this is not bad, seeing how I don't do too well on games like this and I'm more just shuffling tiles without a plan.]

If you haven't, you might want to read The Tale of 守炉部二十七 (Morobu-Niju-Nana), starting here:
introduction

Neil_Boekend wrote:Did we miss a few there?

I have to admit I haven't figured out the schedule, but I also decided I was enjoying the way other OTTers were posting them too much to want to try.
I know bothasar_p's schedule, so I use that as a way to be sure. If bothasar_p has posted a frame, I know there will be a new one shortly, so I'll post that one. (Is that cheating?)

TheMinim wrote:
ergman wrote:I don't really have anything to say. But I like talking here!


^This.

Is that a decree?
astrotter wrote:It is not particularly clear to me at this time that we are not overanalyzing this...

Randalspeed thunk, iskinner, and other blitzers! Notes from the before-was improve the after-when.
Some Ways to Time
NetWeasel wrote:I want to put that in my sig... BUT I CAN'T!!!!

User avatar
balthasar_s
Posts: 2366
Joined: Mon Nov 28, 2011 3:20 pm UTC
Location: secret base on the Moon
Contact:

NI NI NI VITSSÅGEN BLITZYCLE

Postby balthasar_s » Wed Aug 20, 2014 1:08 pm UTC

SBN wrote:I know bothasar_p's schedule, so I use that as a way to be sure. If bothasar_p has posted a frame, I know there will be a new one shortly, so I'll post that one. (Is that cheating?)
No, it would be cheating if you posted the new one before it appears. (It's possible because the URL is predictable)

he's
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's making Time 2 instead of me.


SBN wrote:
TheMinim wrote:^This.

Is that a decree?

No, "that" is not a decree. "This" is a decree :D
BSTA
Good luck, my blitzing friends!
BTTBAA:1023 # Mustard? Use the mirror! Blitzing? Also use the mirror! And here's why. # OTT facebug copy
that's a robot so it doesn't countImage
This text was autogenerated:
swimming unit detector active

User avatar
macraw83
Posts: 623
Joined: Wed Mar 27, 2013 7:06 pm UTC
Location: Present (L:13)

Re: NI NI NI VITSSÅGEN BLITZYCLE

Postby macraw83 » Wed Aug 20, 2014 1:44 pm UTC

COMPLETELY
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY missed his objectives and must be stopped. This speech was supposed to be timed perfectly so its ending corresponds with the start of Time 2.


Treeish botsplanations! I've bookmarked the post so I can come back and look through the code later.

I find it exceedingly molpish that we haven't missed a speakONG since before the start of the last NP.
In a comically tragic turn of events, Addams didn't die. You can help her here.

Does the basement ever end?

Good luck to all the Blitzers out there!

Blitzgirl wrote:suddenly all the following pagepopes become goated from that point onward, mustarding up those who are trying to blitz

User avatar
balthasar_s
Posts: 2366
Joined: Mon Nov 28, 2011 3:20 pm UTC
Location: secret base on the Moon
Contact:

BLITZYCLES? IN *MY* Q04B?

Postby balthasar_s » Wed Aug 20, 2014 1:56 pm UTC

macraw83 wrote:Treeish botsplanations! I've bookmarked the post so I can come back and look through the code later.
I'll just add that from bothasar_p's code I only posted bot4.c
There is also:
  • findlatest.awk (get the latest page number and the number of posts - reused from the mirror)
  • related.awk (check if the frame was already posted on the newpage)
  • post.awk (send the post - reused from the mirror)
  • mome.pl (mrob27's AUTOMOME, modified to look for the ott-snowclones.txt somewhere else
  • mome.awk (ONGification of AUTOMOME-generated text)
If someone is interested I can post these too.
BSTA
Good luck, my blitzing friends!
BTTBAA:1023 # Mustard? Use the mirror! Blitzing? Also use the mirror! And here's why. # OTT facebug copy
that's a robot so it doesn't countImage
This text was autogenerated:
swimming unit detector active

User avatar
macraw83
Posts: 623
Joined: Wed Mar 27, 2013 7:06 pm UTC
Location: Present (L:13)

ONG IT FROM ORBIT. IT'S THE ONLY WAY TO BE SURE.

Postby macraw83 » Wed Aug 20, 2014 2:35 pm UTC

Not very detailed ONGdeed...

Image

balthasar_s wrote:I'll just add that from bothasar_p's code I only posted bot4.c
There is also:
  • findlatest.awk (get the latest page number and the number of posts - reused from the mirror)
  • related.awk (check if the frame was already posted on the newpage)
  • post.awk (send the post - reused from the mirror)
  • mome.pl (mrob27's AUTOMOME, modified to look for the ott-snowclones.txt somewhere else
  • mome.awk (ONGification of AUTOMOME-generated text)
If someone is interested I can post these too.

That would be awesomeful, if you don't mind posting your code publicly (though I could totally understand any hesitation in doing so).
In a comically tragic turn of events, Addams didn't die. You can help her here.

Does the basement ever end?

Good luck to all the Blitzers out there!

Blitzgirl wrote:suddenly all the following pagepopes become goated from that point onward, mustarding up those who are trying to blitz

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: NI NI NI VITSSÅGEN BLITZYCLE

Postby ggh » Wed Aug 20, 2014 2:42 pm UTC

macraw83 wrote:COMPLETELY

Capital letters! Just like RUN! Does this mean the **d is near?

ignored

Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY ignored my directive and there's nothing I can do to save him from the velociraptors. May God have mercy on his soul.
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
balthasar_s
Posts: 2366
Joined: Mon Nov 28, 2011 3:20 pm UTC
Location: secret base on the Moon
Contact:

Re: ONG IT FROM ORBIT. IT'S THE ONLY WAY TO BE SURE.

Postby balthasar_s » Wed Aug 20, 2014 3:02 pm UTC

macraw83 wrote:Not very detailed ONGdeed...

This map shows your position more precisely than any other map. Unfortunately, anything else than you is shown VERY unprecisely and undetailed . . .

balthasar_s wrote:If someone is interested I can post these too.

That would be awesomeful, if you don't mind posting your code publicly (though I could totally understand any hesitation in doing so).


Spoiler:
findlatest.awk (get the latest page number and the number of posts - reused from the mirror)

Code: Select all

BEGIN {
   a=1;
};
{
   if (posts== "")
   {
      for(i=1;i<=NF;i++)
      {
         if(tolower($i) ~ /posts/)
            posts=$(i-1)
      }
   }
   else    if (tolower($0) ~ /page/)
   {
      gsub(/<[^>]*>/," ",$0)
      for(i=1;i<=NF;i++)
      {
         if((tolower($i) ~ /page/) && (tolower($(i+2)) ~ /of/))
         {
            print $(i+3) " " posts >outfile
            a=0;
            exit a;
         }
      }
   }
};
END {
   exit a
}


related.awk (check if the frame was already posted on the newpage)

Code: Select all

BEGIN{
   related=0;
   regexp=sprintf("(ongoing\\.((png)|(htm))\\?f=0*%lu)|(bftf-%04lu)",frame,frame)
   printf(" \"" regexp "\"")
};
{
   if ($0 ~ regexp)
   {
      related=1;
      printf(" - already ONGed.");
      exit related;
   }
};
END{
   exit related;
}


post.awk (send the post - reused from the mirror)

Code: Select all

BEGIN{
   FS="="
   fora="http://forums.xkcd.com"
   useragent="\"bothasar_p (http://1190.bicyclesonthemoon.dnsd.info/ott/; Time thread post bot)\""
};
{
   argtab[$1]=$2
};
END{
   if(system("wget -q -t 3 --save-cookies=" cookiefile " -U " useragent " -O " tempfile " " fora "/ucp.php?mode=login"))
   {
      print "Pre-login fail."
      exit 1
   }
   while((getline cookie < cookiefile)>0)
   {
      if(cookie ~ /_sid/)
      {
         split(cookie,arr,"_sid[ \t]*")
         SID=arr[2]
      }
   }
   close(cookiefile)
   print "username=" argtab["username"] "&password=" argtab["password"] "&sid=" SID "&login=Login" > postfile
   close(postfile)
   if(system("wget -q -t 3 --save-cookies=" cookiefile " --post-file=" postfile " -U " useragent " -O " tempfile " \"" fora "/ucp.php?mode=login\""))
   {
      print "Login fail."
      exit 1
   }
   
   while((getline temp < tempfile)>0)
   {
      if (temp ~ /<div class=.error/)
      {
         print temp
         print "LOGIN IMPOSSIBLE!"
         exit 2
      }
   }
   close(tempfile)
   
   if(system("wget -q -t 3 --load-cookies=" cookiefile " --save-cookies=" cookiefile " -U " useragent " -O " tempfile " \"" fora "/posting.php?mode=reply&f=7&t=101043\""))
   {
      print "Postreply fail."
      exit 1
   }
   
   while((getline temp < tempfile)>0)
   {
      if(temp ~ /name=.form_token/)
      {
         split(temp,arr,"(value=\")|(\" ?/>)")
         argtab["form_token"]=arr[2]
      }
      if(temp ~ /name=.creation_time/)
      {
         split(temp,arr,"(value=\")|(\" ?/>)")
         argtab["creation_time"]=arr[2]
      }
      if (tolower(temp) ~ /<h2>information/)
      {
         print "Unexpected h2: information\n"
         getline temp < tempfile
         print temp
         exit 1
      }
   }
   close(tempfile)
   
   printf ("subject=%s",argtab["subject"])>postfile
   if("&addbbcode20" in argtab)
      printf ("&addbbcode20=%s",argtab["addbbcode20"])>>postfile
   printf ("&message=%s",argtab["message"])>>postfile
   printf ("&post=%s","Submit")>>postfile
   if("disable_bbcode" in argtab)
      printf ("&disable_bbcode=%s",argtab["disable_bbcode"])>>postfile
   if("disable_smilies" in argtab)
      printf ("&disable_smilies=%s",argtab["disable_smilies"])>>postfile
   if("disable_magic_url" in argtab)
      printf ("&disable_magic_url=%s",argtab["disable_magic_url"])>>postfile
   if("attach_sig" in argtab)
      printf ("&attach_sig=%s",argtab["attach_sig"])>>postfile
   if("notify" in argtab)
      printf ("&notify=%s",argtab["notify"])>>postfile
   printf ("&creation_time=%s",argtab["creation_time"])>>postfile
   printf ("&form_token=%s",argtab["form_token"])>>postfile
   close(postfile)
   
   if(system("wget -q -t 3 --load-cookies=" cookiefile " --save-cookies=" cookiefile " --post-file=" postfile " -U " useragent " -O " tempfile " \""fora "/posting.php?mode=reply&f=7&t=101043\""))
   {
      print "Submit fail."
      exit 1
   }
   
   while((getline temp < tempfile)>0)
   {
      if (temp ~ /<p class=.error/)
      {
         print temp
         print "POST IMPOSSIBLE!"
         exit 2
      }
      if (tolower(temp) ~ /<h2>information/)
      {
         success=1
      }
   }
   close(tempfile)
   
   if (success!=1)
   {
      print "Sent back to preview!"
      exit INDELIVERABLE
   }
   
   while((getline cookie < cookiefile)>0)
   {
      if(cookie ~ /_sid/)
      {
         split(cookie,arr,"_sid[ \t]*")
         SID=arr[2]
         break
      }
   }
   close(cookiefile)
   if(system("wget -q -t 3 -U " useragent " -O " tempfile " \"" fora "/ucp.php?mode=logout&sid=" SID"\""))
   {
      print "Logout fail."
   }
   
 
}


mome.pl (mrob27's AUTOMOME, modified to look for the ott-snowclones.txt somewhere else)
Mrob's AUTOMOME: http://mrob.com/time/automome/ - version 20140807
Line 371 changed from

Code: Select all

if (!(-f "$dir/$fn")) { $dir = "$hd/data/memes"; }
to

Code: Select all

if (!(-f "$dir/$fn")) { $dir = "/eizm/mem/ong1"; }
Of course i made come changes to the ott-snowclones.txt file

mome.awk (ONGification of AUTOMOME-generated text)

Code: Select all

BEGIN{
   printf("")>outfile
   for(i=0;i<256;++i)
   {
      ch=sprintf("%c",i)
      hex=sprintf("%02X",i);
      ch2hex[ch]=hex
   }
}
{
   if(sub(/[AEIOUY]-N-G/,"[b]O-N-G[/b]",$0)>0)
   {
      print urlencode($0 " -- [url=http://mrob.com/time/automome]mome[/url]") > outfile
      exit
   }
   if(sub(/O+N+G+/,"[b]&[/b]",$0)>0)
   {
      print urlencode($0 " -- [url=http://mrob.com/time/automome]mome[/url]") > outfile
      exit
   }
   if(sub(/DON'T/,"D[b]ON'G[/b]T",$0)>0)
   {
      print urlencode($0 " -- [url=http://mrob.com/time/automome]mome[/url]") > outfile
      exit
   }
   if(sub(/[AEIOUY]NG/,"[b]ONG[/b]",$0)>0)
   {
      if($0!~/TH\[b\]ONG/)
      {
         print urlencode($0 " -- [url=http://mrob.com/time/automome]mome[/url]") > outfile
         exit
      }
   }
   if(sub(/ON /,"[b]ONG[/b] ",$0)>0)
   {
      print urlencode($0 " -- [url=http://mrob.com/time/automome]mome[/url]") > outfile
      exit
   }
   if(sub(/O\.?$/,"[b]ONG[/b] ",$0)>0)
   {
      print urlencode($0 " -- [url=http://mrob.com/time/automome]mome[/url]") > outfile
      exit
   }
};
function urlencode(name,   len,iii,escaped,ch)
{
   len=length(name)
   escaped=""
   for(iii=1;iii<=len;++iii)
   {
      ch=substr(name,iii,1);
      if (ch ~ /[a-z]|[A-Z]|[0-9]/)
         escaped = escaped ch
      else
         escaped = escaped "%" ch2hex[ch]
   }
   return escaped
};
Last edited by balthasar_s on Wed Aug 20, 2014 4:08 pm UTC, edited 1 time in total.
BSTA
Good luck, my blitzing friends!
BTTBAA:1023 # Mustard? Use the mirror! Blitzing? Also use the mirror! And here's why. # OTT facebug copy
that's a robot so it doesn't countImage
This text was autogenerated:
swimming unit detector active

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 3:56 pm UTC

my

Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY ignored my impassioned pleas, the heartless, artless ch*rper.


ETA: I gotta coma, but here's a link to BlitzGirl's guide to the Hugo Speech ONGs for your ONGing convenience. ("For Your ONGing Convenience" has never made it onto an official VHF album, though it has been on many setlists, and is quite a popular track on several of the VHF bootlegs, including the legendary Hailstorm at the Corn Palace show.
Last edited by ggh on Wed Aug 20, 2014 4:20 pm UTC, edited 2 times in total.
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
macraw83
Posts: 623
Joined: Wed Mar 27, 2013 7:06 pm UTC
Location: Present (L:13)

Re: 1190: "Time"

Postby macraw83 » Wed Aug 20, 2014 4:16 pm UTC

ggh wrote:my

Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY ignored my impassioned pleas, the heartless, artless ch*rper.


ETA: I gotta coma, but here's a link to BlitzGirl's guide to the Hugo Speech ONGs for your ONGing convenience. ("For Your ONGing Convenience" has never made it onto an official VHF album, though it has been on many setlists, and is quite a popular track on several of the VHF bootlegs, including the legendary Hailstorm at the Corn Palace show.

Your link has an extraneous apostrophe in the "start" parameter, causing it to go to NP3 (essentially, it makes "start" be 82). And if BG's post is somehow moved to a different page, that method of link will no longer work. Here's a permalink that'll always take you to that post (also the one I have bookmarked): (link)
In a comically tragic turn of events, Addams didn't die. You can help her here.

Does the basement ever end?

Good luck to all the Blitzers out there!

Blitzgirl wrote:suddenly all the following pagepopes become goated from that point onward, mustarding up those who are trying to blitz

User avatar
ggh
Posts: 1952
Joined: Fri Feb 03, 2012 6:45 am UTC
Location: Wellington, New Zealand

Re: 1190: "Time"

Postby ggh » Wed Aug 20, 2014 4:22 pm UTC

Thanks, I changed the link to yours.

Dunno how that apostrophe snuck in there. Generally I click on the subject of the post and copy that address. How do you get the more direct address?
Requested a magnet? I'm sorry I'm so super-slow, but you will get it
Agatha the Awesomeful

In a Comically Tragic Turn of Events Addams Didn't Die. Please help. (Wait, does that sound like I want you to kill addams?)

User avatar
ergman
Posts: 1213
Joined: Wed Jun 29, 2011 1:24 am UTC
Location: Canada
Contact:

hope beyond pope

Postby ergman » Wed Aug 20, 2014 4:27 pm UTC

I certainly hope something happens on saturday at 3:30 am. GLR has done stranger things.
I made my avatar, Buffygirl hatted it, Yappo smileyed it and ggh taroted it!
I've changed, witnessing this thing so beautiful

Good luck on blitzing, katakissa, username5243, musthavebeenmykarma, iskinner, thunk, GnomeAnne, and quantized ! Keep the signposts coming, we love em in the now!

User avatar
mscha
Posts: 6899
Joined: Tue Mar 26, 2013 10:21 pm UTC
Location: NL
Contact:

Time After Time: t1i-1414

Postby mscha » Wed Aug 20, 2014 4:30 pm UTC

SCONGIEST...
Image
Spoiler:
The end.
-- posted by newpixbot

User avatar
ergman
Posts: 1213
Joined: Wed Jun 29, 2011 1:24 am UTC
Location: Canada
Contact:

Re: 1190: "Time"

Postby ergman » Wed Aug 20, 2014 4:40 pm UTC

! new!?

its NEWpixbot, anyway.
I made my avatar, Buffygirl hatted it, Yappo smileyed it and ggh taroted it!
I've changed, witnessing this thing so beautiful

Good luck on blitzing, katakissa, username5243, musthavebeenmykarma, iskinner, thunk, GnomeAnne, and quantized ! Keep the signposts coming, we love em in the now!

User avatar
SilentTimer
Posts: 1093
Joined: Fri Nov 08, 2013 8:40 pm UTC
Location: secret base on the Moon

Re: 1190: "Time"

Postby SilentTimer » Wed Aug 20, 2014 4:46 pm UTC

ergman wrote:! new!?

its NEWpixbot, anyway.

Yes. I just had to summon him, so he can join the Hugo party.
Last edited by SilentTimer on Sun Aug 31, 2014 3:58 pm UTC, edited 1 time in total.
Image Did you like 1190: Time?
Then you will like its sequel: t1i. [Discussion] [Making Of]
ucim wrote:I consider it to be canon.

503? Images don't work? Other mustard? Visit the ЯOЯЯIM!

Randalspeed to Rakhal, thunk, and all Blitzers!

User avatar
SBN
Saved
Posts: 2231
Joined: Tue Mar 26, 2013 7:15 pm UTC
Location: No longer in the home of the raptorcats, now in the home of the raptorcats.

Re: 1190: "Time"

Postby SBN » Wed Aug 20, 2014 4:57 pm UTC

instructions.

Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY ignored my instructions. Now he'll need to start over and do it right.
astrotter wrote:It is not particularly clear to me at this time that we are not overanalyzing this...

Randalspeed thunk, iskinner, and other blitzers! Notes from the before-was improve the after-when.
Some Ways to Time
NetWeasel wrote:I want to put that in my sig... BUT I CAN'T!!!!

User avatar
macraw83
Posts: 623
Joined: Wed Mar 27, 2013 7:06 pm UTC
Location: Present (L:13)

Re: 1190: "Time"

Postby macraw83 » Wed Aug 20, 2014 5:00 pm UTC

ggh wrote:Dunno how that apostrophe snuck in there. Generally I click on the subject of the post and copy that address. How do you get the more direct address?

By using some simple URLmancy.

Spoiler:
Each of the "x=(number)" items in the URL, separated by ampersands, is a parameter. "f=" is forum, where 7 is for Individual Comic Threads. "t=" is the thread number, "p=" is the post number, and "start=" tells the forum which post number (within the thread) you want to have showing. Most (if not all) of the auto-generated links in the forum have "f=" and "t=" to select a thread, and "start=" to select a page from that thread, but if you use only "p=" the forum is smart enough to serve up the thread page that the requested post is on. When you click on a post title, it merely appends "#p(number)" to the URL, which tells your browser where to scroll to on the page. You can take this number, delete everything after "viewtopic.php?", and replace it with "p=(number)" to make a permalink to that post, regardless of how it moves due to first-post bumping or moderator deletions.


ETA: a NEWpix, summoned by NEWpixbot??? Awesomeful!

SilentTimer wrote:Yes. I just had to summon him, so he can join the Hugo party.
Will he be staying long, or was this just a one-off? I suppose we may just have to
Spoiler:
Last edited by macraw83 on Wed Aug 20, 2014 5:03 pm UTC, edited 2 times in total.
In a comically tragic turn of events, Addams didn't die. You can help her here.

Does the basement ever end?

Good luck to all the Blitzers out there!

Blitzgirl wrote:suddenly all the following pagepopes become goated from that point onward, mustarding up those who are trying to blitz

User avatar
mscha
Posts: 6899
Joined: Tue Mar 26, 2013 10:21 pm UTC
Location: NL
Contact:

Time Randomly Revisited - np870

Postby mscha » Wed Aug 20, 2014 5:00 pm UTC

RESTRONG...
Image
Spoiler:
Wait for it.
OTT Time Travel

AUTOMOME wrote:DIAL K FOR KEYBOARD

-- posted by randompixbot

User avatar
BlitzGirl
Posts: 9071
Joined: Mon Sep 20, 2010 11:48 am UTC
Location: Out of the basement for Yip 6! Schizoblitz: 115/2672 NP
Contact:

Re: 1190: "Time"

Postby BlitzGirl » Wed Aug 20, 2014 5:14 pm UTC

Interesting URLmancy explanation, macraw! I've never paid much attention to that before.

ggh wrote: I gotta coma, but here's a link to BlitzGirl's guide to the Hugo Speech ONGs for your ONGing convenience. ("For Your ONGing Convenience" has never made it onto an official VHF album, though it has been on many setlists, and is quite a popular track on several of the VHF bootlegs, including the legendary Hailstorm at the Corn Palace show.

The speech ONGtimes are also available on the wiki page, in an expandable table: http://xkcd-time.wikia.com/wiki/Hugo_Aw ... esentation

newpixbot wrote:
Spoiler:
Image

A newpix! A new newpix! Is the story ContinuONG? :D
I see Beanette, Amtoo, Brokenbean, Ms. Frizzle, Cuegan, Rosetta, LaPetite, and Beanbeard.

WE TRIED TO REMOVE EVERYBODY FROM THE BASIN. WE FAILED. (YOU'RE) WELCOME
Image
Knight Temporal of the One True Comic
BlitzGirl the Pink, Mopey Molpy Mome
Spoiler:
Image
Image
Image<Profile
~.Image~.FAQ->Image

User avatar
Earthling on Mars
Morning
Posts: 669
Joined: Sat Apr 06, 2013 6:35 pm UTC
Location: Somewhere in the Solar System

Re: 1190: "Time"

Postby Earthling on Mars » Wed Aug 20, 2014 5:47 pm UTC

macraw83 wrote:
ggh wrote:Dunno how that apostrophe snuck in there. Generally I click on the subject of the post and copy that address. How do you get the more direct address?

By using some simple URLmancy.

Spoiler:
Each of the "x=(number)" items in the URL, separated by ampersands, is a parameter. "f=" is forum, where 7 is for Individual Comic Threads. "t=" is the thread number, "p=" is the post number, and "start=" tells the forum which post number (within the thread) you want to have showing. Most (if not all) of the auto-generated links in the forum have "f=" and "t=" to select a thread, and "start=" to select a page from that thread, but if you use only "p=" the forum is smart enough to serve up the thread page that the requested post is on. When you click on a post title, it merely appends "#p(number)" to the URL, which tells your browser where to scroll to on the page. You can take this number, delete everything after "viewtopic.php?", and replace it with "p=(number)" to make a permalink to that post, regardless of how it moves due to first-post bumping or moderator deletions.

Or click on the icon just below the title and copy that address.
Image

Hey, a newpix!

redundant
Spoiler:
posticon.png
posticon.png (1.8 KiB) Viewed 14328 times

User avatar
TheMinim
Posts: 939
Joined: Sun Apr 28, 2013 8:47 pm UTC
Location: In The Present
Contact:

Re: NI NI NI VITSSÅGEN BLITZYCLE

Postby TheMinim » Wed Aug 20, 2014 5:54 pm UTC

balthasar_s wrote:
SBN wrote:
TheMinim wrote:^This.

Is that a decree?

No, "that" is not a decree. "This" is a decree :D


Didn't notice. Have amended post. :lol: :D (It's because I've not been Pope for a long Time!)
Titled TheMinimastic as of NP 1610.
Hi Blitzers! And non-blitzers!
Official owner of NewPage 1572, and official co-owner of NewPage 2087 along with NoMouse.

User avatar
ergman
Posts: 1213
Joined: Wed Jun 29, 2011 1:24 am UTC
Location: Canada
Contact:

Re: 1190: "Time"

Postby ergman » Wed Aug 20, 2014 5:55 pm UTC

decree preemptively followed!
I made my avatar, Buffygirl hatted it, Yappo smileyed it and ggh taroted it!
I've changed, witnessing this thing so beautiful

Good luck on blitzing, katakissa, username5243, musthavebeenmykarma, iskinner, thunk, GnomeAnne, and quantized ! Keep the signposts coming, we love em in the now!

User avatar
ucim
Posts: 6786
Joined: Fri Sep 28, 2012 3:23 pm UTC
Location: The One True Thread

Re: 1190: "Time"

Postby ucim » Wed Aug 20, 2014 6:11 pm UTC

Thank
Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY ignored my instructions. Thank you for returning the maps though; they needed updating.
Jose
Order of the Sillies, Honoris Causam - bestowed by charlie_grumbles on NP 859 * OTTscar winner: Wordsmith - bestowed by yappobiscuts and the OTT on NP 1832 * Ecclesiastical Calendar of the Order of the Holy Contradiction * Heartfelt thanks from addams and from me - you really made a difference.

User avatar
SBN
Saved
Posts: 2231
Joined: Tue Mar 26, 2013 7:15 pm UTC
Location: No longer in the home of the raptorcats, now in the home of the raptorcats.

Re: 1190: "Time"

Postby SBN » Wed Aug 20, 2014 6:12 pm UTC

Thank

Spoiler:
Thank you so much. This is truly an honor. I'm sorry I can't be there in person, but Cory has been kind enough to accept on my behalf.
Since "Time" was an animation which was published online at one frame per hour, I've asked Cory to read these remarks at one word per hour. If it's still Sunday when you're hearing this, it means he's COMPLETELY ignored my instructions. Thank goodness the OTT is here to take up the slack.



Edit, to fix tag m*stard.
astrotter wrote:It is not particularly clear to me at this time that we are not overanalyzing this...

Randalspeed thunk, iskinner, and other blitzers! Notes from the before-was improve the after-when.
Some Ways to Time
NetWeasel wrote:I want to put that in my sig... BUT I CAN'T!!!!


Return to “Individual XKCD Comic Threads”

Who is online

Users browsing this forum: speising and 21 guests