ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오랜만의 포스팅.. 택배추적 스크립트
    IRC-Script 2008. 7. 29. 13:55
    반응형

    핸드폰 고리를 주문한게 오늘 우체국 택배로 온다.
    기다림에 지쳐서 IRC에서 검색할수 있도록 택배추적 기능을 만들었다.

    혹시나 가져다 쓰실분은 아래부터 복사하시면 된다.

    ; ------------------------------------------------------------
    ; | Made by Xeriars                                                               |
    ; | (변경해서 쓰는건 니맘대로지만 이 부분은 지우지 말아주세요.)  |
    ; ------------------------------------------------------------

    on *:text:*:#: {
      if ($1 == @택배추적 || $1 == -택배추적 || $1 == !택배추적) {
        if (!$2) { msg $chan 택배 회사를 입력하여 주십시요. | halt }
        if (!$3) { msg $chan 운송장 번호를 입력하여 주십시요. | halt }
        if ($len($3) != 13) { msg $chan 운송장번호가 13자리가 아닙니다. 다시 확인해주십시요. | halt }
        if ($len($3) !isnum) { msg $chan 운송장번호가 잘못되었습니다. | halt }
        unset %deli.*
        set %deli.chan $gettok(%Zodbot.data,3,32)
        set %deli.count 1
        if ($2 == 우체국) {
          if ($exists(tmp_epost.txt)) { remove tmp_epost.txt }
          if ($exists(epost.txt)) { remove epost.txt }
          set %deli.id $3
          sockclose epost
          sockopen epost service.epost.go.kr 80
        }
        halt
      }
    }
    on *:sockopen:epost*: {
      sockwrite -nt $sockname GET /trace.RetrieveRegiPrclDeliv.postal?sid1= $+ %deli.id HTTP/1.1
      sockwrite -nt $sockname User-Agent: Mozilla/4.0
      sockwrite -nt $sockname Host: service.epost.go.kr
      sockwrite -nt $sockname Connection: Close
      sockwrite -nt $sockname $crlf
    }
    on *:sockread:epost: {
      sockread %tmp
      set %deli.error 배달정보를 찾지 못했습니다.<br><br>
      set %deli.sender <td bgcolor="#FFFFFF" width="300" height="20" align=left>
      set %deli.receiver <td bgcolor="#FFFFFF" align="left">
      set %deli.word <tr bgcolor="#FFFFFF">
      set %deli.worde <input type=hidden name=pcode value=
      set %deli.end <td bgcolor="#FFFFFF" colspan=3 align='center'>
      set %deli.eof 우체국콜센터(1588-1300번)

      if (%deli.error isin %tmp) {
        msg %deli.chan 배달정보를 찾지 못했습니다. 정보가 아직 입력되지 않았거나 처리 중입니다.
        sockclose $sockname
        unset %deli.*
      }
      if (%deli.eof isin %tmp) {
        set %deli.date1 $gettok($read(tmp_epost.txt,1),1,47)
        var %i 0
        var %j 0
        while (%i < $lines(tmp_epost.txt)) {
          inc %i
          if ($mid($read(tmp_epost.txt,1),1,1) == $chr(47)) {
            write epost.txt $chr(91) $+ $gettok($read(tmp_epost.txt,%i),1,47) $+ $chr(93) $+ $gettok($deltok($read(tmp_epost.txt,%i),1,62),1,47) ( $+ $gettok($deltok($read(tmp_epost.txt,%i),1,62),2,47) $+ , $gettok($read(tmp_epost.txt,%i),2,47) $+ )
          }
        }
        while (%j < $lines(epost.txt)) {
          inc %j
          if (%j isnum 1-4) { set %deli.result1 %deli.result1 $+ → $+ $read(epost.txt,%j) }
          elseif (%j > 4 && %j < 9) { set %deli.result2 %deli.result2 $+ → $+ $read(epost.txt,%j) }
          elseif (%j >= 9) { set %deli.result3 %deli.result3 $+ → $+ $read(epost.txt,%j) }
        }
        msg %deli.chan 발송인 : %deli.rs / 수취인 : %deli.rr / 수령인 : $remove(%deli.rrr,$chr(40),$chr(41),수령인,$chr(58),님,$chr(9),$chr(32))
        msg %deli.chan $mid(%deli.result1,3)
        if (%deli.result2) { msg %deli.chan $mid(%deli.result2,3) }
        if (%deli.result3) { msg %deli.chan $mid(%deli.result3,3) }
        sockclose $sockname
        unset %deli.*
      }
      if (%deli.sender isin %tmp) { set %deli.rs $remove(%tmp,%deli.sender,&nbsp;,</td>,$chr(9)) }
      if (%deli.receiver isin %tmp) { set %deli.rr $remove(%tmp,%deli.receiver,&nbsp;,</td>,$chr(9)) }
      if (%deli.end isin %tmp) {
        set %deli.count 1
        set %deli.rrr $remove(%tmp,%deli.end,</td>,$chr(9))
      }
      if (%deli.worde isin %tmp) { set %deli.count 1 | write tmp_epost.txt $remove(%deli.tmp1,$asctime(yyyy) $+ $chr(46),//,///,$chr(32)) | unset %deli.tmp1 }
      if (%deli.count == 7) {
        if ($remove(%tmp,$chr(32))) {
          set %deli.tmp1 %deli.tmp1 $+ / $+ $remove(%tmp,<td align='center'>,&nbsp;,<font color='red'>,<tr>,<td bgcolor=#FFFFFF colspan=3 align='center'>,<td rowspan=2 align='center'>,<font color='red' >,<b>,</b>,</font>,</td>,</tr>,&nbsp;,$chr(9),$chr(40),$chr(41),</td>,</a>,<a href="javascript:goPostDetail,$chr(34))
        }
      }
      if (%deli.word isin %tmp) { set %deli.count 7 }
    }

    반응형

    댓글 1

Copyright 2006-2021. Xeriars.com All rights reserved .