/* $Id: page.c,v 1.9 2002/07/22 19:02:00 in2 Exp $ */
#include "bbs.h"

#define hpressanykey(a) {move(22, 0); prints(a); pressanykey();}
static void
filt_railway(char *fpath)
{
    char            buf[256], tmppath[32];
    FILE           *fp = fopen(fpath, "w"), *tp;

    snprintf(tmppath, sizeof(tmppath), "%s.railway", fpath);
    if (!fp || !(tp = fopen(tmppath, "r")))
	return;

    while (fgets(buf, 255, tp)) {
	if (strstr(buf, "INLINE"))
	    continue;
	if (strstr(buf, "LINK"))
	    break;
	fprintf(fp, "%s", buf);
    }
    fclose(fp);
    fclose(tp);
    unlink(tmppath);
}

int
main_railway()
{
    fileheader_t    mhdr;
    char            genbuf[200];
    int             from, to, time_go, time_reach;
    char            tt[2], type[2];
    char            command[256], buf[8];
    char           *addr[] = {
	"��", "�K��", "�C��", "����", "����", "�n��", "�Q�s", "�x�_", "�U��",
	"�O��", "��L", "�s��", "�a�q", "���", "���c", "���c", "�H��", "����",
	"��f", "�s��", "�˥_", "�s��", "���s", "�T��", "�˫n", "�y��", "�״I",
	"�ͤ�", "�j�s", "���s", "�s��", "�ըF��", "�s�H", "�q�]", "�b��",
	"��n", "�j��", "�O����", "�M��", "�F��", "�s��", "�j�{", "�l��",
	"�]��", "�n��", "���r", "�T�q", "�ӿ�", "���w", "�Z��", "�׭�", "��l",
	"�x��", "�Q��", "���\\", "����", "���", "���L", "�ùt", "���Y",
	"�Ф�", "�G��", "�L��", "�ۺh", "�椻", "��n", "���t", "�j�L",
	"����", "�Ÿq", "���W", "�n�t", "���", "�s��", "�h��", "�L����",
	"����", "�ުL", "����", "�s��", "�ñd", "�x�n", "�O�w", "���w",
	"�j��", "����", "���s", "���Y", "����", "����", "����", "��s",
	"�E����", "�̪F", NULL, NULL
    };

    setutmpmode(RAIL_WAY);
    clear();
    move(0, 25);
    prints("\033[1;37;45m �����d�ߨt�� \033[1;44;33m�@��:Heat\033[m");
    move(1, 0);
    outs("\033[1;33m\n"
	 " 1.��    16.���c     31.�s��     46.���r     61.��    76.�L����   91.����\n"
	 " 2.�K��    17.�H��     32.�ըF��   47.�T�q     62.�G��    77.����     92.��s\n"
	 " 3.�C��    18.����     33.�s�H     48.�ӿ�     63.�L��    78.�ުL     93.�E����\n"
	 " 4.����    19.��f     34.�q�]     49.���w     64.�ۺh    79.����     94.�̪F\n"
       " 5.����    20.�s��     35.�b��     50.�Z��     65.�椻    80.�s��\n"
       " 6.�n��    21.�˥_     36.��n     51.�׭�     66.��n    81.�ñd\n"
       " 7.�Q�s    22.�s��     37.�j��     52.��l     67.���t    82.�x�n\n"
       " 8.�x�_    23.���s     38.�O����   53.�x��     68.�j�L    83.�O�w\n"
       " 9.�U��    24.�T��     39.�M��     54.�Q��     69.����    84.���w\n"
      "10.�O��    25.�˫n     40.�F��     55.���\\     70.�Ÿq    85.�j��\n"
       "11.��L    26.�y��     41.�s��     56.����     71.���W    86.����\n"
       "12.�s��    27.�״I     42.�j�{     57.���     72.�n�t    87.���s\n"
       "13.�a�q    28.�ͤ�     43.�l��     58.���L     73.���    88.���Y\n"
       "14.���    29.�j�s     44.�]��     59.�ùt     74.�s��    89.����\n"
	 "15.���c    30.���s     45.�n��     60.���Y     75.�h��    90.����\033[m");

    getdata(17, 0, "\033[1;35m�A�T�w�n�j�M��?[y/n]:\033[m", buf, 2, LCECHO);
    if (buf[0] != 'y' && buf[0] != 'Y')
	return 0;
    while (1)
	if (getdata(18, 0, "\033[1;35m�п�J�_��(1-94):\033[m", buf, 3, LCECHO) &&
	    (from = atoi(buf)) >= 1 && from <= 94)
	    break;
    while (1)
	if (getdata(18, 40, "\033[1;35m�п�J�ت��a(1-94):\033[m",
		    buf, 3, LCECHO) &&
	    (to = atoi(buf)) >= 1 && to <= 94)
	    break;
    while (1)
	if (getdata(19, 0, "\033[1;35m�п�J�ɶ��Ϭq(0-23) ��:\033[m",
		    buf, 3, LCECHO) &&
	    (time_go = atoi(buf)) >= 0 && time_go <= 23)
	    break;
    while (1)
	if (getdata(19, 40, "\033[1;35m��:\033[m", buf, 3, LCECHO) &&
	    (time_reach = atoi(buf)) >= 0 && time_reach <= 23)
	    break;
    while (1)
	if (getdata(20, 0, "\033[1;35m�Q�d�� 1:�︹�֨�  2:���q����\033[m",
		    type, 2, LCECHO) && (type[0] == '1' || type[0] == '2'))
	    break;
    while (1)
	if (getdata(21, 0, "\033[1;35m���d�� 1:�X�o�ɶ�  2:��F�ɶ�\033[m",
		    tt, sizeof(tt), LCECHO) &&
	    (tt[0] == '1' || tt[0] == '2'))
	    break;
    sethomepath(genbuf, cuser.userid);
    stampfile(genbuf, &mhdr);
    strlcpy(mhdr.owner, "Ptt�j�M��", sizeof(mhdr.owner));
    strncpy(mhdr.title, "�����ɨ�j�M���G", TTLEN);

    snprintf(command, sizeof(command), "echo \"from-station=%s&to-station=%s"
	    "&from-time=%02d00&to-time=%02d00&tt=%s&type=%s\" | "
	    "lynx -dump -post_data "
	    "\"http://www.railway.gov.tw/cgi-bin/timetk.cgi\" > %s.railway",
	    addr[from - 1], addr[to - 1], time_go, time_reach,
	    (tt[0] == '1') ? "start" : "arriv",
	    (type[0] == '1') ? "fast" : "slow", genbuf);

    system(command);
    filt_railway(genbuf);
    sethomedir(genbuf, cuser.userid);
    if (append_record(genbuf, &mhdr, sizeof(mhdr)) == -1)
	return -1;
    hpressanykey("\033[1;31m�ڭ̷|��j�M���G�ܧִN�H���A��  ^_^\033[m");
    return 0;
}