3 ms·
Part 2/2 /*```````````title```````````*/ <MODE1>\">[^<]+ if(z){ z=0; for(x=2;x<yyleng;x++) putc(yytext[x],yyout); fwrite("',",1,2,yyout)
by 1vuio0pswjnm7 2y ago
Part 2/2
/*```````````title```````````*/
<MODE1>\">[^<]+ if(z){
z=0;
for(x=2;x<yyleng;x++)
putc(yytext[x],yyout);
fwrite("',",1,2,yyout);
}
<MODE1>class=\"subline\" w++;
/*```````````score```````````*/
<MODE1>id=\"score_[0-9]+\">[^ ]+ {
for(x=y+12;x<yyleng;x++)
putc(yytext[x],yyout);
putc(44,yyout);
}
/*```````````user``````````` */
<MODE1>id=[^\"]+\"[ ]class=\"hnuser\" {
putc(39,yyout);
for(x=3;x<yyleng-16;x++)
putc(yytext[x],yyout);
fwrite("',",1,2,yyout);
}
/*```````````time```````````*/
<MODE1>class=\"age\"[ ]title=\"[^ ]+ {
if(!w)fwrite("0,'pg',",1,7,yyout);
y=0;for(x=19;x<yyleng;x++)
{yytext[y]=yytext[x];y++;}
yytext[yyleng]=0;
strptime(yytext,"%Y-%m-%dT%H:%M:%S UTC %Y",&t);
printf("%ld,",mktime(&t));
if(!w)fwrite("0);\n",1,4,yyout);
}
/*```````````comments```````````*/
<MODE1>class=\"hnpast\">past<\/a>[ ][ ] fwrite("0);\n",1,4,yyout);
<MODE1>item\?id=[0-9]+\">discuss fwrite("0);\n",1,4,yyout);
<MODE1>item\?id=[0-9]+\">[0-9]+ {
for(x=8;x<yyleng;x++)
if(yytext[x]==62)break;
for(x=x+1;x<yyleng-6;x++)
putc(yytext[x],yyout);
fwrite(") ON CONFLICT(id) DO UPDATE SET ",1,32,yyout);
fwrite("status=excluded.status,score=exc",1,32,yyout);
fwrite("luded.score,comments=excluded.co",1,32,yyout);
fwrite("mments,title=excluded.title;\n",1,29,stdout);
}
.|\n
%%
int main(int argc, char *argv[]){
if(argv)
if(argc==1)
{
fwrite("PRAGMA foreign_keys=OFF;\n",1,25,stdout);
fwrite("BEGIN TRANSACTION;\n",1,19,stdout);
fwrite("CREATE TABLE IF NOT EXISTS t1(id",1,32,stdout);
fwrite(" INTEGER PRIMARY KEY,status TEXT",1,32,stdout);
fwrite(",url TEXT,title TEXT,score INTEG",1,32,stdout);
fwrite("ER,user TEXT,time INTEGER,commen",1,32,stdout);
fwrite("ts INTEGER);\n",1,13,stdout);
}
yylex();
if(argc==1)fwrite("COMMIT;\n",1,8,stdout);
exit(0);}
/*
non-indented lines: 12-14,16,22,28,29,30,36,38,56,61,66,71,76,81,88,94,96,102,109,119-121,131,132
*/
- 1vuio0pswjnm7 2y agoFix: There can be [dead] stories with no title. <MODE1>\">[^<]* if(z){ z=0; if(yyleng==2)fwrite("[no title]",1,10,yyout); for(x=2;x<yyleng;x++) putc(yytext[x],yyout); fwrite("',",1,2,yyout); }