示例#1
0
文件: home.py 项目: qwerdy/MyFlexget
def start():
    if sess.mysched:
        abort(409)

    creds = db_get_settings("myepisode")
    settings = db_get_settings("flexget")
    sched = db_get_settings("schedule")

    username = creds["username"] if "username" in creds else ""
    password = creds["password"] if "password" in creds else ""

    sess.myep = Myepisodes(username, password)
    if sess.myep.logged_in():
        if not "hour" in sched or not "minute" in sched:
            flash("Missing scheduler settings", "error")
        elif not settings:
            flash("Missing flexget settings", "error")
        else:
            sess.mysched = BackgroundScheduler()
            sess.mysched.start()
            sess.mysched.add_job(generateyml, "cron", hour=sched["hour"], minute=sched["minute"])
            flash("Schedule added!")
    else:
        flash("Myepisodes failed login! Check credentials!", "error")
    return redirect("")
示例#2
0
文件: putio.py 项目: qwerdy/MyFlexget
def runscript():
    settings = db_get_settings('putio')
    if not 'log_file' in settings:
        output = None
    output = open(settings['log_file'], 'a')
    subprocess.Popen([_script], stdout=output, stderr=output, close_fds=True)

    return redirect('/putio')
示例#3
0
文件: putio.py 项目: qwerdy/MyFlexget
def delete_dlownload(file_id):
    settings = db_get_settings('putio')
    if not 'token' in settings:
        return redirect('/putio')
    client = Client(settings['token'])
    response = client.File.delete(file_id)
    if response:
        flash('Deleted put.io download with id: ' + file_id)
    return redirect('/putio')
示例#4
0
文件: putio.py 项目: qwerdy/MyFlexget
def settings():
    if request.method == 'POST':
        token = request.form.get('token', '')
        mqtt_server = request.form.get('mqtt_server', '')
        work_dir = request.form.get('work_dir', '')
        show_dir = request.form.get('show_dir', '')
        movie_dir = request.form.get('movie_dir', '')
        generic_dir = request.form.get('generic_dir', '')
        music_dir = request.form.get('music_dir', '')
        log_file = request.form.get('log_file', '')

        #Nasty !!!!
        #CHANGING VARIABLES IN SCRIPT FILE
        #Should use db instead, but would brake the way the script is called from flexget !?
        last = False
        for line in fileinput.input(_script, inplace=True):
            if not last:
                if 'TOKEN =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % token, line)
                elif 'MQTT_SERVER =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % mqtt_server, line)
                elif 'WORK_DIR =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % work_dir, line)
                elif 'SHOW_DIR =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % show_dir, line)
                elif 'MOVIE_DIR =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % movie_dir, line)
                elif 'GENERIC_DIR =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % generic_dir, line)
                elif 'MUSIC_DIR =' in line:
                    line = re.sub(r"'.*'$", "'%s'" % music_dir, line)
                elif 'LOG_FILE =' in line:
                    last = True
                    line = re.sub(r"'.*'$", "'%s'" % log_file, line)
            sys.stdout.write(line)
        fileinput.close()

        flash('Put.io settings updated!')

        settings = dict(token=token,
                        mqtt_server=mqtt_server,
                        work_dir=work_dir,
                        show_dir=show_dir,
                        movie_dir=movie_dir,
                        generic_dir=generic_dir,
                        music_dir=music_dir,
                        log_file=log_file
                        )
        db_set_settings('putio', settings, clean=True)
    else:  # GET
        settings = db_get_settings('putio')
        if request.args.get('mqtt_test') and mqtt_server in settings:
            publish.single('myflexget/test', 'Test MQTT from MyFlexget', hostname=settings['mqtt_server'])

    return render_template('putio_settings.html', settings=settings)
示例#5
0
文件: putio.py 项目: qwerdy/MyFlexget
def _get_pickles():
    queue = []
    settings = db_get_settings('putio')
    if not 'work_dir' in settings:
        return queue

    files = os.listdir(settings['work_dir'])
    for f in sorted(files):
        if f.endswith('.putio.pickle'):
            queue.append(f)
    return queue
示例#6
0
def index():
    if request.method == 'POST':
        email = request.form.get('email', '')
        rss = request.form.get('rss', '')
        flexget = request.form.get('flexget', '')
        path = request.form.get('path', '')
        dq = request.form.get('dq', '')
        hq = request.form.get('hq', '')
        limit = request.form.get('limit', '')
        mqtt_server = request.form.get('mqtt_server', '')
        script_exec = request.form.get('script_exec', '')

        settings = request.form
        if rss and flexget and path and dq:
            errors = check_settings(flexget, path, script_exec)
            if errors:
                for error in errors:
                    flash(error, 'error')
            else:
                values = {'email': email,
                          'rss': rss,
                          'flexget': flexget,
                          'path': path,
                          'dq': dq,
                          'hq': hq,
                          'limit': limit,
                          'mqtt_server': mqtt_server,
                          'script_exec': script_exec,
                          }
                db_set_settings('flexget', values, clean=True)
                flash('Flexget settings updated!')
                settings = db_get_settings('flexget')
        else:
            flash('ERROR! Missing data!', 'error')
    else:  # GET
        settings = db_get_settings('flexget')
        if request.args.get('mqtt_test') and 'mqtt_server' in settings:
            publish.single('myflexget/test', 'Test MQTT from MyFlexget', hostname=settings['mqtt_server'])

    return render_template('settings_flexget.html', settings=settings)
示例#7
0
def schedule():
    if request.method == 'POST':
        try:
            start = value_in_range(int(request.form.get('start', '')), 0, 23)
            end = value_in_range(int(request.form.get('end', '')), start+1, 23)
            hour = value_in_range(int(request.form.get('hour', '')), 0, 23)
            minute = value_in_range(int(request.form.get('minute', '')), 0, 59)
        except ValueError:
            flash('ERROR! Invalid data!', 'error')
            settings = request.form
        else:
            values = {'start': start,
                      'end': end,
                      'hour': hour,
                      'minute': minute,
                      }
            db_set_settings('schedule', values, clean=True)
            flash('Schedule settings updated!')
            settings = db_get_settings('schedule')
    else:  # GET
        settings = db_get_settings('schedule')
    return render_template('settings_schedule.html', settings=settings)
示例#8
0
def myepisode():
    if request.method == 'POST':
        username = request.form.get('username', '')
        password = request.form.get('password', '')
        if username and password:
            values = {'username': username,
                      'password': password,
                      }
            db_set_settings('myepisode', values, clean=True)
            flash('Myepisode settings updated!')
        else:
            flash('ERROR! Missing data!', 'error')

    settings = db_get_settings('myepisode')
    return render_template('settings_myepisode.html', settings=settings)
示例#9
0
文件: putio.py 项目: qwerdy/MyFlexget
def queue(pickle = False):
    if request.method == 'POST' and pickle:
        settings = db_get_settings('putio')

        newName = request.form.get('newName', '')

        if pickle and newName != pickle and 'work_dir' in settings:
            ret = os.rename(os.path.join(settings['work_dir'], pickle), os.path.join(settings['work_dir'], newName))
            if ret:
                flash('Renamed pickle to: ' + newName)
            else:
                flash('Failed to rename pickle')
            pickle = False
        else:
            flash('Weirdness')
    return render_template('putio_queue.html', queue=_get_pickles(), pickle=pickle)
示例#10
0
文件: putio.py 项目: qwerdy/MyFlexget
def rmpidfile():
    settings = db_get_settings('putio')
    if not 'work_dir' in settings:
        return False

    pidfile = os.path.join(settings['work_dir'], 'putio_flexget.pid')

    if not os.path.isfile(pidfile):
        flash('Delete failed: pidfile does not exist')
    try:
        os.unlink(pidfile)
    except Exception:
        flash('Delete failed: failed to delete: '+ pidfile)
    else:
        flash('Deleted pidfile: ' + pidfile)

    return redirect('/putio')
示例#11
0
文件: putio.py 项目: qwerdy/MyFlexget
def delete_pickle(pickle):
    settings = db_get_settings('putio')
    if not 'work_dir' in settings:
        flash('Delete failed: No work_dir in settings')
        return redirect('/putio')

    if not pickle.endswith('.putio.pickle'):
        flash('Delete failed: Not a putio pickle file')
        return redirect('/putio')

    pickle_file = os.path.join(settings['work_dir'], pickle)

    if not os.path.isfile(pickle_file):
        flash('Delete failed: Not a valid file')
        return redirect('/putio')

    try:
        os.unlink(pickle_file)
    except Exception:
        flash('Delete failed: unlink failed')
        return redirect('/putio')
    else:
        flash('Deleted pickle file: ' + pickle)
        return redirect('/putio')
示例#12
0
文件: putio.py 项目: qwerdy/MyFlexget
def index():
    if request.method == 'POST':
        url = request.form.get('url', '')
        title = request.form.get('title', '')
        showname = request.form.get('name', '')
        season = request.form.get('season', '')
        episode = request.form.get('episode', '')
        button = request.form.get('submit', '')
        mqtt = request.form.get('mqtt', False)
        redirect_to_log = request.form.get('redirect_to_log', False)

        is_episode = False

        settings = db_get_settings('putio')
        if not 'log_file' in settings:
            output = None
        output = open(settings['log_file'], 'a')

        if url and showname and season and episode:
            is_episode = True
            args = [_script, url, '--showname', showname, '--season', season, '--episode', episode]

            if mqtt:
                args.append('--mqtt')

            subprocess.Popen(args, stdout=output, stderr=output, close_fds=True)
        elif url:
            if button == 'Generic':
                args = [_script, url]

                if mqtt:
                    args.append('--mqtt')

                subprocess.Popen(args, stdout=output, stderr=output, close_fds=True)
            elif button == 'Music':
                args = [_script, url, '--music']

                if mqtt:
                    args.append('--mqtt')

                subprocess.Popen(args, stdout=output, stderr=output, close_fds=True)
            else: # Movie
                title = title if title else 'auto'
                args = [_script, url, '--moviename', title]

                if mqtt:
                    args.append('--mqtt')

                subprocess.Popen(args, stdout=output, stderr=output, close_fds=True)
        else:
            flash('Failed to start download')
            output.close()
            return render_template('putio_generic.html')

        output.close()
        if redirect_to_log:
            return redirect('/logs/putio.log')

        if is_episode:
            return redirect('/putio/episode')
        return redirect('/putio')
    else:  # GET
        return render_template('putio_generic.html', queue=_get_pickles(), pidfile=_pidfile_exist())
示例#13
0
文件: putio.py 项目: qwerdy/MyFlexget
def _pidfile_exist():
    settings = db_get_settings('putio')
    if not 'work_dir' in settings:
        return False

    return os.path.isfile(os.path.join(settings['work_dir'], 'putio_flexget.pid'))
示例#14
0
文件: putio.py 项目: qwerdy/MyFlexget
def _get_files():
    settings = db_get_settings('putio')
    if not 'token' in settings:
        return
    client = Client(settings['token'])
    return client.File.list()
示例#15
0
文件: putio.py 项目: qwerdy/MyFlexget
def _get_transfers():
    settings = db_get_settings('putio')
    if not 'token' in settings:
        return
    client = Client(settings['token'])
    return client.Transfer.list()
示例#16
0
文件: putio.py 项目: qwerdy/MyFlexget
def clean():
    settings = db_get_settings('putio')
    if 'token' in settings:
        client = Client(settings['token'])
        client.Transfer.clean()
    return redirect('/putio')