[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.136.19.41: ~ $
#! /usr/bin/env python

# DAH should be three DOTs.
# Space between DOTs and DAHs should be one DOT.
# Space between two letters should be one DAH.
# Space between two words should be DOT DAH DAH.

import sys, math, audiodev

DOT = 30
DAH = 3 * DOT
OCTAVE = 2                              # 1 == 441 Hz, 2 == 882 Hz, ...

morsetab = {
        'A': '.-',              'a': '.-',
        'B': '-...',            'b': '-...',
        'C': '-.-.',            'c': '-.-.',
        'D': '-..',             'd': '-..',
        'E': '.',               'e': '.',
        'F': '..-.',            'f': '..-.',
        'G': '--.',             'g': '--.',
        'H': '....',            'h': '....',
        'I': '..',              'i': '..',
        'J': '.---',            'j': '.---',
        'K': '-.-',             'k': '-.-',
        'L': '.-..',            'l': '.-..',
        'M': '--',              'm': '--',
        'N': '-.',              'n': '-.',
        'O': '---',             'o': '---',
        'P': '.--.',            'p': '.--.',
        'Q': '--.-',            'q': '--.-',
        'R': '.-.',             'r': '.-.',
        'S': '...',             's': '...',
        'T': '-',               't': '-',
        'U': '..-',             'u': '..-',
        'V': '...-',            'v': '...-',
        'W': '.--',             'w': '.--',
        'X': '-..-',            'x': '-..-',
        'Y': '-.--',            'y': '-.--',
        'Z': '--..',            'z': '--..',
        '0': '-----',           ',': '--..--',
        '1': '.----',           '.': '.-.-.-',
        '2': '..---',           '?': '..--..',
        '3': '...--',           ';': '-.-.-.',
        '4': '....-',           ':': '---...',
        '5': '.....',           "'": '.----.',
        '6': '-....',           '-': '-....-',
        '7': '--...',           '/': '-..-.',
        '8': '---..',           '(': '-.--.-',
        '9': '----.',           ')': '-.--.-',
        ' ': ' ',               '_': '..--.-',
}

nowave = '\0' * 200

# If we play at 44.1 kHz (which we do), then if we produce one sine
# wave in 100 samples, we get a tone of 441 Hz.  If we produce two
# sine waves in these 100 samples, we get a tone of 882 Hz.  882 Hz
# appears to be a nice one for playing morse code.
def mkwave(octave):
    sinewave = ''
    for i in range(100):
        val = int(math.sin(math.pi * i * octave / 50.0) * 30000)
        sinewave += chr((val >> 8) & 255) + chr(val & 255)
    return sinewave

defaultwave = mkwave(OCTAVE)

def main():
    import getopt
    try:
        opts, args = getopt.getopt(sys.argv[1:], 'o:p:')
    except getopt.error:
        sys.stderr.write('Usage ' + sys.argv[0] +
                         ' [ -o outfile ] [ -p octave ] [ words ] ...\n')
        sys.exit(1)
    dev = None
    wave = defaultwave
    for o, a in opts:
        if o == '-o':
            import aifc
            dev = aifc.open(a, 'w')
            dev.setframerate(44100)
            dev.setsampwidth(2)
            dev.setnchannels(1)
        if o == '-p':
            wave = mkwave(int(a))
    if not dev:
        import audiodev
        dev = audiodev.AudioDev()
        dev.setoutrate(44100)
        dev.setsampwidth(2)
        dev.setnchannels(1)
        dev.close = dev.stop
        dev.writeframesraw = dev.writeframes
    if args:
        source = [' '.join(args)]
    else:
        source = iter(sys.stdin.readline, '')
    for line in source:
        mline = morse(line)
        play(mline, dev, wave)
        if hasattr(dev, 'wait'):
            dev.wait()
    dev.close()

# Convert a string to morse code with \001 between the characters in
# the string.
def morse(line):
    res = ''
    for c in line:
        try:
            res += morsetab[c] + '\001'
        except KeyError:
            pass
    return res

# Play a line of morse code.
def play(line, dev, wave):
    for c in line:
        if c == '.':
            sine(dev, DOT, wave)
        elif c == '-':
            sine(dev, DAH, wave)
        else:                   # space
            pause(dev, DAH + DOT)
        pause(dev, DOT)

def sine(dev, length, wave):
    for i in range(length):
        dev.writeframesraw(wave)

def pause(dev, length):
    for i in range(length):
        dev.writeframesraw(nowave)

if __name__ == '__main__':
    main()

Filemanager

Name Type Size Permission Actions
.beer.pyo.40009 File 703 B 0644
.eqfix.pyo.40009 File 4.52 KB 0644
.fact.pyo.40009 File 1.14 KB 0644
.find-uname.pyo.40009 File 1.47 KB 0644
.from.pyo.40009 File 749 B 0644
.lpwatch.pyo.40009 File 2.54 KB 0644
.makedir.pyo.40009 File 732 B 0644
.markov.pyo.40009 File 3.93 KB 0644
.mboxconvert.pyo.40009 File 3.17 KB 0644
.morse.pyo.40009 File 4.33 KB 0644
.newslist.pyo.40009 File 7.55 KB 0644
.pi.pyo.40009 File 921 B 0644
.pp.pyo.40009 File 2.28 KB 0644
.primes.pyo.40009 File 921 B 0644
.queens.pyo.40009 File 2.95 KB 0644
.script.pyo.40009 File 1.21 KB 0644
.unbirthday.pyo.40009 File 2.93 KB 0644
.update.pyo.40009 File 2.69 KB 0644
README File 1009 B 0644
beer.py File 459 B 0755
beer.pyc File 703 B 0644
beer.pyo File 703 B 0644
eqfix.py File 6.16 KB 0755
eqfix.pyc File 4.52 KB 0644
eqfix.pyo File 4.52 KB 0644
fact.py File 1.11 KB 0755
fact.pyc File 1.14 KB 0644
fact.pyo File 1.14 KB 0644
find-uname.py File 1.18 KB 0755
find-uname.pyc File 1.47 KB 0644
find-uname.pyo File 1.47 KB 0644
from.py File 874 B 0755
from.pyc File 749 B 0644
from.pyo File 749 B 0644
lpwatch.py File 2.77 KB 0755
lpwatch.pyc File 2.54 KB 0644
lpwatch.pyo File 2.54 KB 0644
makedir.py File 510 B 0755
makedir.pyc File 732 B 0644
makedir.pyo File 732 B 0644
markov.py File 3.51 KB 0755
markov.pyc File 3.93 KB 0644
markov.pyo File 3.93 KB 0644
mboxconvert.py File 3.11 KB 0755
mboxconvert.pyc File 3.17 KB 0644
mboxconvert.pyo File 3.17 KB 0644
morse.py File 4.21 KB 0755
morse.pyc File 4.33 KB 0644
morse.pyo File 4.33 KB 0644
newslist.doc File 2.36 KB 0755
newslist.py File 11.17 KB 0755
newslist.pyc File 7.55 KB 0644
newslist.pyo File 7.55 KB 0644
pi.py File 888 B 0755
pi.pyc File 921 B 0644
pi.pyo File 921 B 0644
pp.py File 3.73 KB 0755
pp.pyc File 2.28 KB 0644
pp.pyo File 2.28 KB 0644
primes.py File 603 B 0755
primes.pyc File 921 B 0644
primes.pyo File 921 B 0644
queens.py File 2.19 KB 0755
queens.pyc File 2.95 KB 0644
queens.pyo File 2.95 KB 0644
script.py File 962 B 0755
script.pyc File 1.21 KB 0644
script.pyo File 1.21 KB 0644
unbirthday.py File 3.07 KB 0755
unbirthday.pyc File 2.93 KB 0644
unbirthday.pyo File 2.93 KB 0644
update.py File 2.69 KB 0755
update.pyc File 2.69 KB 0644
update.pyo File 2.69 KB 0644