Beispiel #1
0
def test_add_metadata(config, test_folder):
    import time
    media_file = test_folder.join('mystation', 'myshow', 'myepisode.pm3')
    station = config.stations['dlf']
    show = Show(station, 'me', 'Me', 2)
    recorder = Recorder()
    recorder.start_time = time.time()
    recorder._copy_file_to_destination(
        os.path.join(os.path.dirname(__file__), 'testfile.mp3'),
        str(media_file))
    recorder._add_metadata(show, str(media_file))
    try:
        # Python 2.x
        from mutagen.mp3 import MP3
    except ImportError:
        # Python 3.x
        from mutagenx.mp3 import MP3

    audio = MP3(str(media_file))
    #assert 'tit' == audio['TIT2'].text[0]
    assert 'Podcast' == audio['TCON'].text[0]
    assert 'Deutschlandfunk' == audio['TPE1'].text[0]
    assert 'Deutschlandfunk' == audio['TCOP'].text[0]
    assert 'Me' == audio['TALB'].text[0]
    assert 'http://example.org/dlf' == audio['TCOM'].text[0]
    assert u'2000' == audio['TLEN'].text[0]
Beispiel #2
0
def test_copy_file_to_destination(config, test_folder):
    source_file = test_folder.join('output.mp3')
    source_file.write('')
    source = str(source_file)
    target = str(test_folder.join('mystation', 'myshow', 'myepisode.pm3'))
    recorder = Recorder()
    recorder._copy_file_to_destination(source, target)
    assert os.path.exists(target)
    assert os.path.isfile(target)
Beispiel #3
0
def test_write_file(test_folder, config, monkeypatch):
    def mockreturn(path):
        return open(os.path.join(os.path.dirname(__file__), 'testfile.mp3'),
                    'r')

    import capturadio
    monkeypatch.setattr(capturadio, 'urlopen', mockreturn)

    recorder = Recorder()
    recorder.start_time = time.time()

    folder = test_folder.mkdir('casts')
    file_name = os.path.join(str(folder), 'output.mp3')
    stream_url = 'http://example.org/stream.mp3'
    recorder._write_stream_to_file(stream_url, file_name, 2)
    assert os.path.exists(file_name)
Beispiel #4
0
def show_capture(*args):
    """Usage:
    recorder show capture [--duration=<duration>] [options]

Capture a show.

Options:
    --duration,-d=<duration> Set the duration, overrides show setting

Examples:
    1. Capture an episode of the show 'nighttalk'
        recorder show capture nighttalk

    2. Capture an episode of the show 'nighttalk', but only 35 minutes
        recorder show capture nighttalk -d 35m

    """
    config = Configuration()
    if len(config.stations) == 0:
        print('No stations defined, add stations at first!')
        sys.exit(0)

    if len(config.shows) == 0:
        print('No shows defined, add shows at first!')
        sys.exit(0)
    args = args[0]
    if args['<show>'] in config.shows:
        show = config.shows[args['<show>']]
        try:
            recorder = Recorder()
            episode = recorder.capture(config, show)
            db = database.open('episodes_db')
            db[episode.slug] = episode
            db.close()
        except Exception as e:
            logging.error('Unable to capture recording: {}'.format(e))
    else:
        print('Unknown show %r' % args['<show>'])
Beispiel #5
0
def show_capture(*args):
    """Usage:
    recorder show capture [--duration=<duration>] [options]

Capture a show.

Options:
    --duration,-d=<duration> Set the duration, overrides show setting

Examples:
    1. Capture an episode of the show 'nighttalk'
        recorder show capture nighttalk

    2. Capture an episode of the show 'nighttalk', but only 35 minutes
        recorder show capture nighttalk -d 35m

    """

    config = Configuration()
    if len(config.stations) == 0:
        print('No stations defined, add stations at first!')
        sys.exit(0)

    if len(config.shows) == 0:
        print('No shows defined, add shows at first!')
        sys.exit(0)
    args = args[0]
    if args['<show>'] in config.shows:
        show = config.shows[args['<show>']]
        try:
            recorder = Recorder()
            recorder.capture(show)
        except Exception as e:
            print('Unable to capture recording: %s' % e)
    else:
        print('Unknown show %r' % args['<show>'])