コード例 #1
0
    def get_url(cls, source_id, quality, mode, retry=True):
        try:
            proxy = None
            if ModelSetting.get_bool('wavve_use_proxy'):
                proxy = ModelSetting.get('wavve_proxy_url')
            try:
                data = Wavve.streaming('live',
                                       source_id,
                                       quality,
                                       cls.login_data,
                                       proxy=proxy)
                surl = None
                if data is not None:
                    surl = data['playurl']
                if surl is None:
                    raise Exception('no url')
            except:
                if retry:
                    logger.debug('RETRY')
                    cls.login_data = Wavve.do_login(
                        ModelSetting.get('wavve_id'),
                        ModelSetting.get('wavve_pw'))
                    ModelSetting.set('wavve_credential', cls.login_data)
                    return cls.get_url(source_id, quality, mode, retry=False)

            if ModelSetting.get('wavve_streaming_type') == '2':
                return 'redirect', surl
            return 'return_after_read', surl
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
コード例 #2
0
 def prepare(cls, source_id, source_pw, arg):
     cls.login_data = None
     if ModelSetting.get('wavve_credential') == '':
         if source_id != '' and source_pw != '':
             cls.login_data = Wavve.do_login(source_id, source_pw)
             ModelSetting.set('wavve_credential', cls.login_data)
     else:
         cls.login_data = ModelSetting.get('wavve_credential')
コード例 #3
0
ファイル: logic_basic.py プロジェクト: taeminlee/wavve
 def login():
     try:
         credential = Wavve.do_login(ModelSetting.get('id'),
                                     ModelSetting.get('pw'))
         logger.info('Wavve Credential : %s', credential)
         if credential is None:
             return False
         db.session.query(ModelSetting).filter_by(
             key='credential').with_for_update().first().value = credential
         db.session.commit()
         return True
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
コード例 #4
0
ファイル: logic_basic.py プロジェクト: wnd2da/wavve
 def login(force=False):
     try:
         if ModelSetting.get('credential') == '' or force:
             credential = Wavve.do_login(ModelSetting.get('id'),
                                         ModelSetting.get('pw'))
             logger.info('Wavve Credential : %s', credential)
             if credential is None:
                 return False
             ModelSetting.set('credential', credential)
             db.session.commit()
         else:
             pass
         return True
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
コード例 #5
0
ファイル: plugin.py プロジェクト: taeminlee/wavve
def ajax(sub):
    logger.debug('Wavve AJAX sub:%s', sub)
    try:     
        if sub == 'setting_save':
            try:
                ret = Logic.setting_save(request)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())
                return jsonify('fail')
        elif sub == 'scheduler':
            try:
                go = request.form['scheduler']
                logger.debug('scheduler :%s', go)
                if go == 'true':
                    Logic.scheduler_start()
                else:
                    Logic.scheduler_stop()
                return jsonify(go)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())
                return jsonify('fail')
        elif sub == 'login':
            try:
                ret = Wavve.do_login(request.form['id'], request.form['pw'], json_return=True)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())
                return jsonify('fail')

        #########################################################
        # 기본
        #########################################################
        # 프로그램에서도 사용
        elif sub == 'analyze':
            url = request.form['url']
            quality = None
            if 'quality' in request.form:
                quality = request.form['quality']
            ret = LogicBasic.analyze(url, quality=quality)
            return jsonify(ret)
        elif sub == 'episode_download_url':
            logger.debug(request.form)
            url = request.form['url']
            filename = request.form['filename']
            logger.debug('download %s %s', url, filename)
            ret = LogicBasic.download_url(url, filename)
            return jsonify(ret)
       

        #########################################################
        # 자동
        #########################################################
        elif sub == 'auto_list':
            try:
                ret = LogicRecent.get_list(request)
                logger.debug('len list :%s', len(ret))
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
        elif sub == 'add_condition_list':
            try:
                ret = LogicRecent.add_condition_list(request)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())
        elif sub == 'reset_db':
            try:
                ret = LogicRecent.reset_db()
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())  


        #########################################################
        # 프로그램
        #########################################################
        # more버튼
        elif sub == 'program_page':
            try:
                code = request.form['code']
                page = request.form['page']
                ret = LogicBasic.analyze_program_page(code, page)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())  
        # 화질확인
        elif sub == 'get_contents':
            try:
                code = request.form['code']
                ret = Wavve.vod_contents_contentid(code)
                ret = Wavve.streaming(ret['type'], ret['contentid'], '2160p', ModelSetting.get('credential'))
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())  
        elif sub == 'download_program':
            try:
                ret = LogicProgram.download_program(request)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())  
        elif sub == 'download_program_check':
            try:
                ret = LogicProgram.download_program_check(request)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())
        elif sub == 'program_auto_command':
            try:
                ret = LogicProgram.program_auto_command(request)
                return jsonify(ret)
            except Exception as e: 
                logger.error('Exception:%s', e)
                logger.error(traceback.format_exc())
    except Exception as e: 
        logger.error('Exception:%s', e)
        logger.error(traceback.format_exc())