view lib/dcc @ 7137:59c9be91adcd

<oerjan> mkx bin/slashlearn//sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "$verb \xc2\xab$key\xc2\xbb"
author HackBot
date Sun, 06 Mar 2016 16:48:02 +0000
parents 859f9b4339e6
children
line wrap: on
line source

#!/bin/bash

# Configuration:

# IP of the host, must be in the stupid long integer form
DCC_IP="1077849409"

# Port range
DCC_PORT_MIN="10000"
DCC_PORT_RANGE="100"

# Library:

# Get a DCC port
dcc_port() {
    echo $(( DCC_PORT_MIN + (RANDOM % DCC_PORT_RANGE) ))
}

# Start a DCC chat to $1
dcc_chat() {
    DCC_PORT=`dcc_port`
    (
        sleep 1
        echo -e 'PRIVMSG '$1' :\x01DCC CHAT chat '$DCC_IP' '$DCC_PORT'\x01' |
            socat STDIN UNIX-SENDTO:$IRC_SOCK
    ) &
    socat -T30 - TCP4-LISTEN:$DCC_PORT,crnl
}

# Start a DCC SEND of $2 to $1
dcc_send() {
    DCC_PORT=`dcc_port`
    (
        sleep 1
        echo -e 'PRIVMSG '$1' :\x01DCC SEND '$2' '$DCC_IP' '$DCC_PORT'\x01' |
            socat STDIN UNIX-SENDTO:$IRC_SOCK
    ) &
    socat -T30 - TCP4-LISTEN:$DCC_PORT
}