#!/usr/local/bin/descartes

? ::sys <PrintResultOff>;

? <include generator>;

? <include "newsheadline">;
? <include "Nanato">;
? <include "Mikachan">;

// proxỹ`FbN
<proxy #proxy>
	(::sys <getenv #p http_proxy> | <is #p "">)
	::sys <split #p1 #p "/">
	( <eq #p1 ()> <is #proxy "">
	 |
	  ::sys <car #p2 #p1>
	  <is "http:" #p2> ::sys <cadr #proxy #p1>
	 |
	  <is #proxy #p>
	 )
	;

// WWW擾łwb_`FbN
<checkheader #h>
	::sys <splitline #h2 #h>
	::sys <car #h3 #h2>
	::sys <split #c1 #h3>
	::sys <cadr #code #c1>
	(<eq #code 200>
         | <print #h3><quit>
	)
	;

// html̎擾ƕ̂蕪
<http #http>
  ::sys <httpget #h #b  #http <proxy _>>
  ::sys <iconv #bu #b>
  ::sys <htmltags #b1 #bu "body" "/body">
  ::sys <erasetags #b2 #b1 "script" "/script">
  ::sys <splittags #b3 #b2 '/div'>
  ::sys <splittags #b4 #b3 'br'>
  ::sys <splittags #b5 #b4 '/dl'>
  ::sys <splittags #b6 #b5 'p'>
  ::sys <splittags #b7 #b6 '/a'>
  ::sys <erasealltags #s1 #b7>
  ::sys <trim #s2 #s1>
  ::sys <flatten #s3 #s2>
  ::sys <grepv #l1 #s3 "=">
   ::generator <combination #l2 #l1 10>
  ::sys <flatten #lout #l2>
   <getstr #lout2 #lout>
<printlistnl #lout2>
   <b #lout2 PRINT>
  ;


// http:͂ꂽAWWW擾
<checkhttp #line>
	::sys <syntax #line "http:">
	<http #line >
	;

// j[X̕\
<newsflag off>;

<setnewsflag #val>
	<setVar newsflag #val>
	;

// Z蒷镶r
<getstr () ()>;
<getstr (#l1 :#l) (#l1 :#rest)>
	::sys <isAtom #l1>
	::sys <strlen #len #l1>
	<compare #len > 20>
	<compare #len < 200>
	<getstr #l #rest>
	;
<getstr #l (#l1 :#rest)>
	<getstr #l #rest>
	;

// b񃊃Xĝ1so
// bLN^̌Ăяo
<b #inputlist #noprflg>
	<foreach (#x #inputlist) 
		[<noteq #noprflg NOTPRINT> <print #x>]
		<print>

		::sys <strlen #xlen #x> 
		<#sec1 = #xlen / 30 + 1>
		::sys <sleep #sec1>

		<#rnd = ::sys <random _ > % 6>
		::sys <switch #rnd
			0 (::"Nanato" <Eliza #nl1 #x>)
			1 (::"Mikachan" <Eliza #il1 #x>)
			2 (::"Mikachan" <Eliza #il1 #x>  ::sys <sleep 3> 
			   ::"Nanato" <Eliza #nl1 #x>)
			3 (::"Nanato" <Eliza #nl1 #x> ::sys <sleep 3> 
			   ::"Mikachan" <Eliza #il1 #x>)
			4 (::"Mikachan" <Eliza #il1 #x>  ::sys <sleep 3> 
			   ::"Nanato" <Eliza #nl1 #il1>)
			5 (::"Nanato" <Eliza #nl1 #x> ::sys <sleep 3> 
			   ::"Mikachan" <Eliza #il1 #nl1>)
		>

		[<newsflag on> ::newsheadline<displaynews> <setVar newsflag off>]

		::sys <sleep 3>

	>
	;

// b̓
?  <print "~J : ...Ȃ">
   <print "iig : ...">
   <print>
  {
   <printf ' : ' >
   ::sys <getline #line0>
   ::sys <erasealltags #line #line0>
   ( <is #line "">
   | <checkhttp #line>
   | <b (#line) NOTPRINT>
   )
  }
  ;
