Exemple #1
0
def second_menu(sub, sub2):
    try:
        arg = ModelSetting.to_dict()
        arg['sub'] = sub
        job_id = '%s_%s' % (package_name, sub)
        if sub == 'download':
            if sub2 == 'setting':
                arg['scheduler'] = str(scheduler.is_include(job_id))
                arg['is_running'] = str(scheduler.is_running(job_id))
                return render_template('{package_name}_{sub}_{sub2}.html'.format(package_name=package_name, sub=sub, sub2=sub2), arg=arg)
            elif sub2 == 'list':
                return render_template('{package_name}_{sub}_{sub2}.html'.format(package_name=package_name, sub=sub, sub2=sub2), arg=arg)
        elif sub == 'subcat':
            logger.debug('SUB %s %s %s', package_name, sub, sub2)
            if sub2 == 'setting':
                arg['scheduler'] = str(scheduler.is_include(job_id))
                arg['is_running'] = str(scheduler.is_running(job_id))
                return render_template('{package_name}_{sub}_{sub2}.html'.format(package_name=package_name, sub=sub, sub2=sub2), arg=arg)
            elif sub2 == 'list':
                logger.debug('SUB %s %s %s', package_name, sub, sub2)
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
        return render_template('sample.html', title='%s - %s' % (package_name, sub))
    except Exception as e:
        logger.error('Exception:%s', e)
        logger.error(traceback.format_exc())
Exemple #2
0
    def process_ajax(self, sub, req):
        try:
            if sub == 'web_list':
                return jsonify(ModelPeriodicItem.web_list(request))
            elif sub == 'command':
                ret = {}
                command = req.form['command']
                if command == 'kill':
                    ret = self.kill(req.form['arg1'])
                elif command == 'remove_no_append_data':
                    ret = ModelPeriodicItem.remove_no_append_data()
                elif command == 'get_tasks':
                    section_list = PlexDBHandle.library_sections()
                    #logger.debug(d(section_list))
                    tasks = self.get_jobs()
                    for idx, task in enumerate(tasks):
                        for section in section_list:
                            if str(task['섹션ID']) ==  str(section['id']):
                                task['section_title'] = section['name']
                                break
                    ret = {'data' : tasks}
                elif command == 'task_sched':
                    idx = int(req.form['arg1'])
                    flag = (req.form['arg2'] == 'true')
                    job_id = f'{self.P.package_name}_periodic_{idx}'
                    ret = {'ret':'success'}
                    if flag and scheduler.is_include(job_id):
                        ret['msg'] = '이미 스케쥴러에 등록되어 있습니다.'
                    elif flag and scheduler.is_include(job_id) == False:
                        result = self.sched_add(idx)
                    elif flag == False and scheduler.is_include(job_id):
                        result = scheduler.remove_job(job_id)
                        ret['msg'] = '스케쥴링 취소'
                    elif flag == False and scheduler.is_include(job_id) == False:
                        ret['msg'] = '등록되어 있지 않습니다.'

                elif command == 'all_sched_add':
                    tasks = self.get_jobs()
                    for idx, item in enumerate(tasks):
                        if item.get('스케쥴링', '등록') == '등록':
                            self.sched_add(idx, item=item)
                    ret = {'ret' : 'success', 'msg' : 'Success'}
                elif command == 'all_sched_remove':
                    tasks = self.get_jobs()
                    for idx, item in enumerate(tasks):
                        if scheduler.is_include(item['job_id']):
                            scheduler.remove_job(item['job_id'])
                    ret = {'ret' : 'success', 'msg' : 'Success'}
                elif command == 'task_execute':
                    result = self.one_execute(int(req.form['arg1']))
                    ret = {'ret' : 'success', 'data':result}
                return jsonify(ret)
        except Exception as e: 
            P.logger.error(f'Exception:{str(e)}')
            P.logger.error(traceback.format_exc())
            return jsonify({'ret':'danger', 'msg':str(e)})
Exemple #3
0
 def process_menu(self, sub, req):
     arg = P.ModelSetting.to_dict()
     arg['sub'] = self.name
     arg['sub2'] = sub
     try:
         if sub == 'movie':
             arg['library_list'] = PlexDBHandle.library_sections(
                 section_type=1)
         elif sub == 'show':
             arg['library_list'] = PlexDBHandle.library_sections(
                 section_type=2)
         elif sub == 'music':
             arg['library_list'] = PlexDBHandle.library_sections(
                 section_type=8)
         elif sub == 'cache':
             arg['scheduler'] = str(
                 scheduler.is_include(
                     self.sub_list[sub].get_scheduler_name()))
             arg['is_running'] = str(
                 scheduler.is_running(
                     self.sub_list[sub].get_scheduler_name()))
         return render_template(f'{package_name}_{name}_{sub}.html',
                                arg=arg)
     except Exception as e:
         logger.error(f'Exception:{str(e)}')
         logger.error(traceback.format_exc())
         return render_template('sample.html',
                                title=f"{package_name}/{name}/{sub}")
Exemple #4
0
def first_menu(sub):
    logger.debug('DETAIL %s %s', package_name, sub)
    if sub == 'setting':
        arg = ModelSetting.to_dict()
        arg['package_name'] = package_name
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        from system.model import ModelSetting as SystemModelSetting
        ddns = SystemModelSetting.get('ddns')
        arg['rss_api'] = '%s/%s/api/rss' % (ddns, package_name)
        if SystemModelSetting.get_bool('auth_use_apikey'):
            arg['rss_api'] += '?apikey=%s' % SystemModelSetting.get(
                'auth_apikey')

        return render_template('%s_setting.html' % package_name,
                               sub=sub,
                               arg=arg)
    elif sub == 'list':
        arg = {'package_name': package_name}
        arg['is_torrent_info_installed'] = False
        try:
            import torrent_info
            arg['is_torrent_info_installed'] = True
        except Exception as e:
            pass
        return render_template('%s_list.html' % package_name, arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))
 def process_menu(self, sub, req):
     arg = P.ModelSetting.to_dict()
     arg['sub'] = self.name
     if sub == 'setting':
         arg['scheduler'] = str(
             scheduler.is_include(self.get_scheduler_name()))
         arg['is_running'] = str(
             scheduler.is_running(self.get_scheduler_name()))
         arg['rss_api'] = '%s/%s/api/%s/rss' % (
             SystemModelSetting.get('ddns'), package_name, self.name)
         arg['rss_api'] = Util.make_apikey(arg['rss_api'])
         return render_template(
             '{package_name}_{module_name}_{sub}.html'.format(
                 package_name=package_name, module_name=self.name, sub=sub),
             arg=arg)
     elif sub == 'list':
         arg['is_torrent_info_installed'] = False
         try:
             import torrent_info
             arg['is_torrent_info_installed'] = True
         except:
             pass
         arg['ddns'] = SystemModelSetting.get('ddns')
         arg['show_log'] = ModelSetting.get_bool('show_log')
         arg['show_poster'] = ModelSetting.get('show_poster')
         return render_template(
             '{package_name}_{module_name}_{sub}.html'.format(
                 package_name=package_name, module_name=self.name, sub=sub),
             arg=arg)
     return render_template('sample.html',
                            title='%s - %s' % (package_name, sub))
Exemple #6
0
    def one_execute():
        try:
            if scheduler.is_include(package_name):
                if scheduler.is_running(package_name):
                    ret = 'is_running'
                else:
                    scheduler.execute_job(package_name)
                    ret = 'scheduler'
            else:

                def func():
                    time.sleep(2)
                    Logic.scheduler_function()
                    Logic.job_thread = None

                if Logic.job_thread is None:
                    Logic.job_thread = threading.Thread(target=func, args=())
                    Logic.job_thread.start()
                    ret = 'thread'
                else:
                    ret = 'is_running'
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
            ret = 'fail'
        return ret
Exemple #7
0
def detail(sub):
    logger.debug('DETAIL %s %s', package_name, sub)
    if sub == 'setting':
        setting_list = db.session.query(ModelSetting).all()
        arg = Util.db_list_to_dict(setting_list)
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        arg['path_rclone'] = Logic.path_rclone
        arg['default_rclone_setting'] = Logic.default_rclone_setting
        return render_template('rclone_setting.html', sub=sub, arg=arg)
    elif sub == 'status':
        return render_template('rclone_status.html')
    elif sub == 'list':
        return render_template('rclone_list.html')
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    elif sub == 'mount':
        return redirect('/%s/mount_setting' % package_name)
    elif sub == 'mount_setting':
        arg = {}
        arg['option'] = '--allow-other --fast-list --drive-skip-gdocs --poll-interval=1m --buffer-size=32M --vfs-read-chunk-size=32M --vfs-read-chunk-size-limit 2048M --vfs-cache-mode writes --dir-cache-time=1m --log-level INFO'
        #if platform.system() != 'Windows':
        #    arg['option'] += ' --daemon'
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'serve_setting':
        arg = {}
        arg['option'] = '--user sjva --pass sjva --fast-list --drive-skip-gdocs --poll-interval=1m --buffer-size=32M --vfs-read-chunk-size=32M --vfs-read-chunk-size-limit 2048M --vfs-cache-mode writes --dir-cache-time=1m --log-level INFO'
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    else:
        return blueprint.send_static_file(sub)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))
Exemple #8
0
        def process_menu(self, sub, req):
            arg = P.ModelSetting.to_dict()
            arg['sub'] = self.name
            for key, value in list(arg.items()):
                if key.startswith(self.name):
                    arg[key.replace(self.name + '_', '')] = value
                    del arg[key]
            if sub in ['setting', 'request', 'queue', 'list']:
                if sub == 'setting':
                    job_id = '%s_%s' % (self.P.package_name, self.name)
                    arg['scheduler'] = str(scheduler.is_include(job_id))
                    arg['is_running'] = str(scheduler.is_running(job_id))
                elif sub == 'request':
                    if sub == 'request' and req.args.get(
                            'content_code') is not None:
                        arg['current_code'] = req.args.get('content_code')

                return render_template(
                    '{package_name}_{module_name}_{sub}.html'.format(
                        package_name=P.package_name,
                        module_name='toki',
                        sub=sub),
                    arg=arg)
            return render_template('sample.html',
                                   title='%s - %s' % (P.package_name, sub))
Exemple #9
0
 def job_function(self):
     try:
         #if self.count > 1:
         #    logger.debug(hm.check('JOB START %s' % self.job_id))
         #    logger.debug(hm.getHeap())
         self.is_running = True
         self.start_time = datetime.now(timezone('Asia/Seoul'))
         #import gipc
         #from multiprocessing import Process
         if self.args is None:
             self.thread = threading.Thread(target=self.target_function, args=())
             #self.thread = Process(target=multiprocessing_target, args=(self.job_id,))
             #self.thread = gipc.start_process(target=multiprocessing_target, args=(self.job_id,), daemon=True)
             #self.target_function()
         else:
             self.thread = threading.Thread(target=self.target_function, args=(self.args,))
             #self.thread = Process(target=multiprocessing_target, args=(self.job_id,))
             #self.thread = gipc.start_process(target=multiprocessing_target, args=(self.job_id,), daemon=True)
             #self.target_function(self.args)
         self.thread.daemon = True
         self.thread.start()
         self.thread.join()
         self.end_time = datetime.now(timezone('Asia/Seoul'))
         self.running_timedelta = self.end_time - self.start_time
         self.status = 'success'
         if not scheduler.is_include(self.job_id):
             scheduler.remove_job_instance(self.job_id)
         self.count += 1
     except Exception as exception: 
         self.status = 'exception'
         logger.error('Exception:%s', exception)
         logger.error(traceback.format_exc())
     finally:
         self.is_running = False
Exemple #10
0
 def get_jobs(cls):
     config = LogicPMBase.load_config()
     data = config.get('라이브러리 주기적 스캔 목록', None)
     if data is None or type(data) != type([]):
         return []
     for idx, item in enumerate(data):
         item['job_id'] = f'{package_name}_periodic_{idx}'
         item['설명'] = item.get('설명', f"섹션: {item['섹션ID']}")
         item['is_include_scheduler'] = str(scheduler.is_include(item['job_id']))
     return data
 def process_menu(self, sub, req):
     arg = P.ModelSetting.to_dict()
     arg['sub'] = self.name
     if sub == 'setting':
         job_id = '%s_%s' % (self.P.package_name, self.name)
         arg['scheduler'] = str(scheduler.is_include(job_id))
         arg['is_running'] = str(scheduler.is_running(job_id))
     return render_template(
         '{package_name}_{module_name}_{sub}.html'.format(
             package_name=P.package_name, module_name=self.name, sub=sub),
         arg=arg)
def detail(sub):
    if sub == 'setting':
        setting_list = db.session.query(ModelSetting).all()
        arg = Util.db_list_to_dict(setting_list)
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))
Exemple #13
0
 def set_restart_scheduler():
     name = '%s_restart' % (package_name)
     if scheduler.is_include(name):
         scheduler.remove_job(name)
     interval = ModelSetting.get('auto_restart_hour')
     if interval != '0':
         if len(interval.split(' ')) == 1:
             interval = '%s' % (int(interval) * 60)
         job_instance = Job(package_name, name, interval,
                            SystemLogic.restart, u"자동 재시작", True)
         scheduler.add_job_instance(job_instance, run=False)
Exemple #14
0
 def scheduler_start():
     try:
         if not scheduler.is_include(package_name):
             interval = 60 * 24
             job = Job(package_name, package_name, interval,
                       Logic.scheduler_function, [u'Telegram Receiver'],
                       False)
             scheduler.add_job_instance(job)
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
Exemple #15
0
 def process_menu(self, sub, req):
     arg = P.ModelSetting.to_dict()
     arg['sub'] = self.name
     if sub in ['setting', 'queue', 'list', 'request']:
         if sub == 'request' and req.args.get('content_code') is not None:
             arg['ani365_current_code'] = req.args.get('content_code')
         if sub == 'setting':
             job_id = '%s_%s' % (self.P.package_name, self.name)
             arg['scheduler'] = str(scheduler.is_include(job_id))
             arg['is_running'] = str(scheduler.is_running(job_id))
         return render_template('{package_name}_{module_name}_{sub}.html'.format(package_name=P.package_name, module_name=self.name, sub=sub), arg=arg)
     return render_template('sample.html', title='%s - %s' % (P.package_name, sub))
Exemple #16
0
 def process_menu(self, sub, req):
     try:
         arg = P.ModelSetting.to_dict()
         arg['sub'] = self.name
         if sub == 'setting':
             arg['scheduler'] = str(scheduler.is_include(self.get_scheduler_name()))
             arg['is_running'] = str(scheduler.is_running(self.get_scheduler_name()))
             arg['path_app_root'] = path_app_root
         return render_template(f'{package_name}_{name}_{sub}.html', arg=arg)
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
         return render_template('sample.html', title=f"{package_name}/{name}/{sub}")
Exemple #17
0
 def job_list():
     try:
         db_list = db.session.query(ModelCommand).filter().all()
         db_list = [x.as_dict() for x in db_list]
         from .logic_normal import LogicNormal
         for item in db_list:
             item['is_include'] = str(scheduler.is_include('command_%s' % item['id']))
             item['is_running'] = str(scheduler.is_running('command_%s' % item['id']))
             item['process_id'] = LogicNormal.process_list[item['id']].pid if item['id'] in LogicNormal.process_list and LogicNormal.process_list[item['id']] is not None else None
         return db_list
     except Exception as exception:
         logger.error('Exception:%s', exception)
         logger.error(traceback.format_exc())
Exemple #18
0
def first_menu(sub):
    if sub == 'setting':
        arg = ModelSetting.to_dict()
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        return render_template('%s_setting.html' % package_name, arg=arg)
    elif sub == 'list':
        arg = ModelSetting.to_dict()
        return render_template('%s_list.html' % package_name, arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))
Exemple #19
0
 def process_menu(self, sub, req):
     # 각 메뉴들이 호출될때 필요한 값들을 arg에 넘겨주어야함
     arg = P.ModelSetting.to_dict()
     arg['sub'] = self.name
     P.logger.debug('sub:%s', sub)
     if sub == 'setting':  # 설정페이지의 경우 스케쥴러 포함여부와 실행상태 전달
         job_id = '%s_%s' % (self.P.package_name, self.name)
         arg['scheduler'] = str(scheduler.is_include(job_id))
         arg['is_running'] = str(scheduler.is_running(job_id))
     return render_template(
         '{package_name}_{module_name}_{sub}.html'.format(
             package_name=P.package_name, module_name=self.name, sub=sub),
         arg=arg)
Exemple #20
0
def first_menu(sub):
    logger.debug('DETAIL %s %s', package_name, sub)
    if sub == 'setting':
        arg = ModelSetting.to_dict()
        arg['package_name'] = package_name
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        return render_template('{package_name}_{sub}.html'.format(
            package_name=package_name, sub=sub),
                               arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))
Exemple #21
0
    def set_scheduler_check_scheduler():
        try:
            name = 'scheduler_check'
            if scheduler.is_include(name):
                scheduler.remove_job(name)

            job_instance = Job(package_name, name, 2,
                               scheduler.first_run_check_thread_function,
                               u"Scheduler Check", True)
            scheduler.add_job_instance(job_instance, run=False)
        except Exception as exception:
            logger.error('Exception:%s', exception)
            logger.error(traceback.format_exc())
            return False
Exemple #22
0
 def sched_add(self, idx, item=None):
     try:
         if item is None:
             item = self.get_jobs()[idx]
         if scheduler.is_include(item['job_id']):
             logger.debug(f"{item['섹션ID']} include scheduler!")
             return
         job = Job(self.P.package_name, item['job_id'], item['주기'], self.job_function, item['설명'], False, args=idx)
         scheduler.add_job_instance(job)
         return True
     except Exception as e: 
         P.logger.error(f'Exception:{str(e)}')
         P.logger.error(traceback.format_exc())   
     return False
Exemple #23
0
 def schedule_running():
     try:
         job_id_list = [
             'gallery-dl_normal', 'gallery-dl_data', 'gallery-dl_hitomi'
         ]
         for job_id in job_id_list:
             if scheduler.is_include(job_id):
                 if scheduler.is_running(job_id):
                     return True
         return False
     except Exception as e:
         logger.error('[gallery-dl] Exception:%s', e)
         logger.error(traceback.format_exc())
         ret = 'fail'
Exemple #24
0
 def scheduler_function():
     try:
         logger.debug('rclone scheduler_function')
         if not scheduler.is_include(package_name):
             logger.debug('not in scheduler')
             return
         if Logic.running_status:
             logger.debug('Logic.running_status is TRUE!!!!')
             return
         else:
             logger.debug('Logic.running_status is FALSE!!!!')
         job_list = db.session.query(ModelRcloneJob).filter_by(is_scheduling=True).with_for_update().all()
         Logic.running_status = True
         for job in job_list:
             Logic.execute(job)
             if not scheduler.is_include(package_name):
                 logger.debug('scheduler is stopped by user button')
                 break
         Logic.current_process = None   
     except Exception as exception: 
         logger.error('Exception:%s', exception)
         logger.error(traceback.format_exc())
     finally:
         Logic.running_status = False
Exemple #25
0
def detail(sub): 
    if sub == 'setting':
        setting_list = db.session.query(ModelSetting).all()
        arg = Util.db_list_to_dict(setting_list)
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub in ['request', 'queue', 'list']:
        setting_list = db.session.query(ModelSetting).all()
        arg = Util.db_list_to_dict(setting_list)
        arg['current_code'] = LogicAni24.current_data['code'] if LogicAni24.current_data is not None else None
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html', title='%s - %s' % (package_name, sub))
Exemple #26
0
 def scheduler_switch(id, switch):
     try:
         job = ModelCommand.get_job_by_id(id)
         s_id = 'command_%s' % id
         if switch:
             job_instance = Job(package_name, s_id, job.schedule_info, LogicNormal.execute_thread_function_by_scheduler, u"%s %s : %s" % (package_name, job.id, job.description), True, args=job.id)
             scheduler.add_job_instance(job_instance)
         else:
             if scheduler.is_include(s_id):
                 scheduler.remove_job(s_id)
         return 'success'
     except Exception as exception:
         logger.error('Exception:%s', exception)
         logger.error(traceback.format_exc())
         return 'fail'
Exemple #27
0
def first_menu(sub):
    arg = ModelSetting.to_dict()
    arg['package_name'] = package_name
    if sub == 'setting':
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'view':
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'manage':
        return render_template('/manage/%s_%s.html' % (package_name, sub),
                               arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))
Exemple #28
0
def second_menu(sub, sub2):
    try:
        arg = ModelSetting.to_dict()
        arg['package_name']  = package_name
        if sub == 'direct':
            if sub2 == 'setting':
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
            elif sub2 in ['request']:
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
        elif sub == 'rss':
            if sub2 == 'setting':
                arg['sub']  = sub
                arg['scheduler'] = str(scheduler.is_include('%s_%s' % (package_name, sub)))
                arg['is_running'] = str(scheduler.is_running('%s_%s' % (package_name, sub)))
                from system.model import ModelSetting as SystemModelSetting
                ddns = SystemModelSetting.get('ddns')
                arg['rss_api'] = '%s/%s/api/%s' % (ddns, package_name, sub)
                if SystemModelSetting.get_bool('auth_use_apikey'):
                    arg['rss_api'] += '?apikey=%s' % SystemModelSetting.get('auth_apikey')
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
            elif sub2 in ['job', 'list']:
                arg['is_available_normal_download'] = False
                try:
                    import downloader
                    arg['is_available_normal_download'] = downloader.Logic.is_available_normal_download()
                except:
                    pass
                if sub2 == 'list':
                    arg['jobs'] = ModelOffcloud2Job.get_list(by_dict=True)
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
        elif sub == 'cache':
            if sub2 == 'setting':
                arg['sub'] = sub
                from system.model import ModelSetting as SystemModelSetting
                ddns = SystemModelSetting.get('ddns')
                arg['rss_api'] = '%s/%s/api/%s' % (ddns, package_name, sub)
                if SystemModelSetting.get_bool('auth_use_apikey'):
                    arg['rss_api'] += '?apikey=%s' % SystemModelSetting.get('auth_apikey')
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
            elif sub2 == 'list':
                arg['type'] = ['KTV', 'KTV_ETC', 'MOVIE', 'MOVIE_ETC', 'MUSIC', 'SHOW', 'ANI', 'PROGRAM', 'JAV_CENSORED_DMM', 'JAV_CENSORED_JAVDB', 'JAV_CENSORED_ETC', 'JAV_UNCENSORED', 'AV_WEST', 'AV_EAST', 'ETC']
                return render_template('%s_%s_%s.html' % (package_name, sub, sub2), arg=arg)
        return render_template('sample.html', title='%s - %s - %s' % (package_name, sub, sub2))
    except Exception as e: 
        logger.error('Exception:%s', e)
        logger.error(traceback.format_exc())
Exemple #29
0
def first_menu(sub): 
    logger.debug('DETAIL %s %s', package_name, sub)
    if sub == 'setting':
        arg = ModelSetting.to_dict()
        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        arg['tracker_list'] = ModelSetting.get('tracker_list').replace('\n', ', ')
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub in ['transmission', 'downloadstation', 'qbittorrent', 'aria2']:
        return redirect('/%s/%s/status' % (package_name, sub))
    elif sub in ['request', 'list', 'watch']:
        arg = ModelSetting.to_dict()
        arg['sub'] = sub
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html', title='%s - %s' % (package_name, sub))
Exemple #30
0
def first_menu(sub):
    arg = ModelSetting.to_dict()
    arg['package_name'] = package_name
    if sub == 'setting':

        arg['scheduler'] = str(scheduler.is_include(package_name))
        arg['is_running'] = str(scheduler.is_running(package_name))
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'rss':
        try:
            import downloader
            arg['default_download_program'], arg[
                'default_download_path'] = downloader.Logic.get_default_value(
                )
            arg['default_download_path'] = arg[
                'default_download_path'].replace('\\', '\\\\')
        except:
            arg['default_download_program'] = '0'
            arg['default_download_path'] = ''
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'list':
        arg['is_torrent_info_installed'] = False
        try:
            import torrent_info
            arg['is_torrent_info_installed'] = True
        except Exception as e:
            pass
        arg['is_offcloud_installed'] = False
        try:
            import offcloud2
            arg['is_offcloud_installed'] = True
        except Exception as e:
            pass
        try:
            arg['rss_id'] = request.args.get('rss_id')
        except Exception as e:
            pass
        if arg['rss_id'] is None:
            arg['rss_id'] = 'all'
        arg['rss_list'] = ModelRss.get_list(by_dict=True)
        return render_template('%s_%s.html' % (package_name, sub), arg=arg)
    elif sub == 'log':
        return render_template('log.html', package=package_name)
    return render_template('sample.html',
                           title='%s - %s' % (package_name, sub))