/usr/share/epic5/lice5/lice/lice.wget is in epic5-script-lice 1:5.3.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | #
# IRC Script Program. For use with ircii-EPIC5 clients.
# Copyright (C) 2000 SrfRoG (cag@codehack.com)
#
# ---------------------------------------------------------------------------
# All code by SrfRoG, unless specified. Visit https://lice.muppetz.com
# ---------------------------------------------------------------------------
# Updated for EPIC5 by tjh
IF (word(2 $loadinfo()) != [pf]) {
LOAD -pf $word(1 $loadinfo());
RETURN;
};
PACKAGE LiCe;
# The following functions attempt to retrieve a textual document from a
# website. CAUTION: I use hook numeric 668, don't steal it!
# The WGET_STATUS hook is produced here.
# This is the hook routine when there's a failure. Do not change it.
ALIAS _proc.wget_error (sock,status) {
^ON #^DCC_RAW 668 -;
//DCC CLOSE RAW $sock;
@ unlink($wget.file);
HOOK WGET_STATUS $wget.file ERROR $status;
purge wget;
};
# This is the hook routine when the fetch operation is completed (successful?).
ALIAS _proc.wget_close (sock) {
^ON #^DCC_RAW 668 -;
//DCC CLOSE RAW $sock;
HOOK WGET_STATUS $wget.file DONE $wget.size;
purge wget;
};
# This is the workhorse routine. Just feed it a nice URL and a path
# to save the remote file locally. Redirects arent supported.
ALIAS _proc.wget_main (url,file) {
IF (!strlen($file) || !match(http://% $url) || match(http://%:%@% $url)) {
XECHO -B Method not supported.;
RETURN;
};
@ :temp = rest(7 $url);
@ :host = mid(0 $index(/ $temp) $temp);
@ :temp = rest(${strlen($host)+7} $url);
@ :path = strlen($temp) ? temp : [/];
@ :temp = split(: $host);
IF (numwords($temp) == 2) {
@ :host = word(0 $temp);
@ :port = word(1 $temp);
}{
@ :port = 80;
};
@ :temp = rindex(/ $path) + 1;
@ :sock = connect($host $port);
WAIT =$sock;
# Turn on full line buffering
@dccctl(SET $dccctl(DESCMATCH $host) FULL_LINE_BUFFER 1);
UNLESS (sock) {
HOOK WGET_STATUS $wget.file ERROR $host\:$port Connection Failed;
RETURN;
};
^ASSIGN wget.fd -2;
^ASSIGN wget.file $file;
^ASSIGN wget.size 0;
^ON #^DCC_RAW 668 "$sock % D HTTP/%.% *" {
UNLESS ([$4]==[200]) {_proc.wget_error $0 $chop(1 $4-)};
};
^ON #^DCC_RAW 668 "$sock % D Content-Type: *" {
UNLESS (rmatch($4 text/%)) {_proc.wget_error $0 Unsupported Mime-type: $chop(1 $4)};
};
^ON #^DCC_RAW 668 "$sock % D $chr(13)" {
IF (wget.fd == -2) {
@ wget.fd = open($wget.file W);
IF (wget.fd == -1) {_proc.wget_error $0 open() Call Failed};
};
};
^ON #^DCC_RAW 668 "$sock % D *" {
IF (wget.fd < 0) {RETURN};
@ wget.size += write($wget.fd $3-);
};
^ON #^DCC_RAW 668 "$sock % C" {_proc.wget_close $0};
//DCC RAW $sock $host GET $path HTTP/1.0;
//DCC RAW $sock $host Host: ${host}:${port};
//DCC RAW $sock $host Accept: text/*;
//DCC RAW $sock $host Accept-Language: en;
//DCC RAW $sock $host User-Agent: LiCe/$id.v wget;
//DCC RAW $sock $host Pragma: no-cache;
//DCC RAW $sock $host Cache-Control: no-cache$chr(10 10);
};
#tjh/14
|