Files
gommi/lib/system/__pycache__/logic.cpython-310.pyc

130 lines
13 KiB
Plaintext
Raw Normal View History

2022-04-21 19:23:01 +09:00
o
<00><>_b&O<00>@s2ddlZddlZddlZddlmZddlZddlZddlZddlZddlm Z m
Z
m Z m Z m Z mZmZddlmZmZmZmZddlmZmZddlmZmZmZmZmZmZmZddl m!Z!ddlmZdd l"m#Z#dd
lmZmZdd l$m%Z%d d l&m'Z'ddl(Z(e)<29>*d<0E>dZ+ee+<2B>Z,Gdd<10>de-<2D>Z.dS)<11>N)<01>datetime)<07> Blueprint<6E>request<73>Response<73> send_file<6C>render_template<74>redirect<63>jsonify)<04>
login_user<EFBFBD> logout_user<65> current_user<65>login_required)<02>
get_logger<EFBFBD> set_level)<07>app<70>db<64> scheduler<65>version<6F> path_app_root<6F> path_data<74>USERS<52><01>Util)r)<01>User)rr)<01>Job<6F><00><01> ModelSetting<6E>.c@sLeZdZdZidd<03>dd<05>dd<07>dd <09>d
d <09>d d <0C>d d <0C>dd<0F>dd<11>dd<13>dd<15>dd<17>dd <0C>dd<15>dd<1B>dd <0C>dd <0C>idd<1F>d d <0C>d!d <0C>d"d<15>d#d <0C>d$d%<25>d&d <0C>d'd(<28>d)d <0C>d*d<15>d+d <0C>d,d <0C>d-d<15>d.d<15>d/d <0C>d0d<15>d1d2<64><01>id3d <0C>d4d<15>d5d<15>d6d <0C>d7d <0C>d8d <0C>d9d <0C>d:d;<3B>d<d<15>d=d><3E>d?d@<40>dAd <0C>dBd <0C>dCd <0C>dDd <0C>dEd<15>dFd <0C><01>d d dd d dd d d dd d d ddG<64><0E>Zd%d%d%d%dH<64>ZddddddddI<64>ZdJZedKdL<64><00>Z edMdN<64><00>Z
edOdP<64><00>Z edQdR<64><00>Z edSdT<64><00>Z edUdV<64><00>ZedWdX<64><00>ZedYdZ<64><00>Zed[d\<5C><00>Zed]d^<5E><00>Zed_d`<60><00>Z edadb<64><00>Zedcdd<64><00>Zededf<64><00>Zedgdh<64><00>ZdJS)i<> SystemLogicrZ
db_version<EFBFBD>1<>port<72>7771<37>ddnszhttp://localhost:7771<37>id<69>sjva<76>pw<70>system_start_time<6D><00>repeat<61>auto_restart_hour<75>12<31>theme<6D>Default<6C> log_level<65>10Z use_login<69>False<73> link_jsonuL[{"type":"link","title":"위키","url":"https://sjva.me/wiki/public/start"}]Zplugin_dev_pathZplugin_tving_level2<6C> web_titlez GOMMI AgentZmy_ipZ
wavve_guidZ
trans_type<EFBFBD>0Ztrans_google_api_keyZtrans_papago_keyZauth_use_apikey<65> auth_apikey<65> hide_menu<6E>TrueZselenium_remote_urlZselenium_remote_default_optionz--no-sandbox
--disable-gpuZselenium_binary_default_optionZnotify_telegram_useZnotify_telegram_tokenZnotify_telegram_chat_idZ$notify_telegram_disable_notificationZnotify_discord_useZnotify_discord_webhookZnotify_advaned_useZnotify_advaned_policyu~# 각 플러그인 설정 설명에 명시되어 있는 ID = 형식
# DEFAULT 부터 주석(#) 제거 후 작성
# DEFAULT = Ztelegram_bot_tokenZtelegram_bot_auto_startZtelegram_resendZtelegram_resend_chat_idZsjva_me_user_id<69> auth_status<75>sjva_idZsite_daum_intervalz 0 4 */3 * *Zsite_daum_auto_startZsite_daum_cookiezfTIARA=gaXEIPluo-wWAFlwZN6l8gN3yzhkoo_piP.Kymhuy.6QBt4Q6.cRtxbKDaWpWajcyteRHzrlTVpJRxLjwLoMvyYLVi_7xJ1LZsite_daum_testu나쁜 녀석들Zsite_daum_proxyZ site_wavve_idZ site_wavve_pwZsite_wavve_credentialZsite_wavve_use_proxyZsite_wavve_proxy_url)Z site_tving_idZ site_tving_pwZsite_tving_login_typeZsite_tving_tokenZsite_tving_deviceidZsite_tving_use_proxyZsite_tving_proxy_urlZsite_tving_uuid<69>memoZtool_crypt_use_user_keyZtool_crypt_user_keyZtool_crypt_encrypt_wordZtool_crypt_decrypt_wordZuse_beta)Zuse_category_vodZuse_category_file_processZuse_category_plexZuse_category_tool)Zuse_plugin_ffmpegZuse_plugin_ktvZuse_plugin_fileprocess_movieZuse_plugin_plexZuse_plugin_gdrive_scanZuse_plugin_rcloneZuse_plugin_daum_tvNc
CsXz t<00><01>t<00><02>WdSty+}zt<04>d|<00>t<04>t<06><07><00>WYd}~dSd}~ww)N<> Exception:%s)r<00>db_init<69>init<69> Exception<6F>logger<65>error<6F> traceback<63>
format_exc)<01> exception<6F>rC<00>>/Volumes/WD/Users/Work/python/gommi-server/lib/system/logic.py<70> plugin_load<61>s <08><02>zSystemLogic.plugin_loadc
Cs<>z<>t<00>dtj<03>t<05><01><06><00><07><00>d}tj <09>
<EFBFBD>D]:\}}tj<03>t<05>j|d<03><01><07>dkrP|dkr.d}|dks6|dkrBd <09> d
d <0B>t d <0C>D<00><01>}tj<03> t||<02><02>tj<03><0E>qtj<0F>
<EFBFBD>D](\}}tj<03>t<05>j|d<03><01><07>dkr~|}|durpd }tj<03> t||<03><02>tj<03><0E>qVtj<10>
<EFBFBD>D](\}}tj<03>t<05>j|d<03><01><07>dkr<>|}|dur<>d }tj<03> t||<03><02>tj<03><0E>q<>WdSty<>}zt<00>d|<04>t<00>t<13><14><00>WYd}~dSd}~ww)Nzsetting count : %sF<73><01>keyrr!Tr8r4r(css"<00>|] }t<00>tjtj<00>VqdS)N)<05>random<6F>choice<63>string<6E>ascii_uppercase<73>digits)<02>.0<EFBFBD>_rCrCrD<00> <genexpr><3E>s
<02><10>
<EFBFBD>z&SystemLogic.db_init.<locals>.<genexpr><3E>
r6r:)r><00>debugr<00>session<6F>queryr<00> filter_by<62>countr<00>
db_default<EFBFBD>items<6D>join<69>range<67>add<64>commit<69> db_default2<74> db_default3r=r?r@rA)Zis_firstrG<00>value<75>tmprBrCrCrDr;<00>sN<04>
<08>
<02>
<02>
<02><06> <08><02>zSystemLogic.db_initc
Cs4zytjdddkst<02>d<04>dkr,tj<05>t<07>jdd<06><01> <09><00>
<EFBFBD>}t <0B> <0C><00> d<07>|_tj<05><0F>tj<05>t<07>jdd<06><01> <09><00>
<EFBFBD>}ttjdd<00>|_tj<05><0F>tj<05>t<07>jdd<06><01>
<EFBFBD>j}tj<05>t<07>jd d<06><01>
<EFBFBD>j}t||d
<EFBFBD>t|<t<02><13>t<02><14>t<02><15>WdSty<>}zt<17>d |<03>t<17>t<19><1A><00>WYd}~dSd}~ww) N<>configr)rr'r(rF<00>%Y-%m-%d %H:%M:%Sr$r&<00><01> passwd_hashr:)rr`r<00>get_setting_valuerrRrSrrT<00>with_for_update<74>firstr<00>now<6F>strftimer^r[<00>strrr<00>set_restart_scheduler<65>set_scheduler_check_scheduler<65>get_recent_versionr=r>r?r@rA)<04>item<65>username<6D>passwdrBrCrCrDr<<00>s@<02> <02>
<04><02>

<04><02>
 <08><02>zSystemLogic.initc
Cs<>z&ddl}tjdd<00>d<04>}t<03>d<05>tjddkrd}|<00>|<01>jt_WdStyF}zt <09>
d|<02>t <09>
t <0B> <0C><00>WYd}~d Sd}~ww)
Nr<00>DEFINE<4E>MAIN_SERVER_URLz/versionr#z https://dev.soju6jan.com/versionTr:F) <0A>requestsrr`r<00>get<65>textr<00>recent_versionr=r>r?r@rA)rr<00>urlrBrCrCrDrl<00>s <08><02>zSystemLogic.get_recent_versioncCsddl}|<00><01>dS)Nr)<02>system<65>restart)rwrCrCrDrxs zSystemLogic.restartc
Cs|i}ddl}|<01><00>|d<|<01><01>|d<ddl}|j|d<t|d<tj|d<t|d<dtjd d
tjd d r8d nd f|d
<ddl }tjd d|d<d|d<d|d<d|d<tjd d
dkr<>z=ddl
}ddl m }t d<16>d|<04><0E>|d<|<04><0F>}d|j|ddd<1A>|j|ddd<1A>|j|ddd<1A>|df|d<Wn ty<>Ynwz@ddl}|<01> <09>dkr<>tj<13>t<06>}|d}nd}|<04>|<08>}d |j|ddd<1A>|j|ddd<1A>|j|ddd<1A>|d|f|d<Wnty<>} zWYd} ~ nd} ~ wwz)t<04>d!<21>}t<17>|d"<22>}
t<17><19>|
} d#|t| <0B><01>d$<24>dtjd d%f|d&<W|St<11>y=} z t| <09>|d&<WYd} ~ |Sd} ~ ww)'Nr<00>platform<72> processor<6F>python_versionrruru%s. 비동기 작업 : %sr`<00> running_type<70>
use_celeryu사용u 미사용<EC82AC> auth_desc<73>authz not supported<65> cpu_percent<6E>memoryZdisk<73>termuxr<00>herez%s %%u5전체 : %s 사용량 : %s 남은량 : %s (%s%%)<29>B)<01>suffix<69>r<00><00>Windows<77>/uI전체 : %s 사용량 : %s 남은량 : %s (%s%%) - 드라이브 (%s)r'rau*시작 : %s 경과 : %s 재시작 : %srr)<00>time)ryrz<00>sysrrrurrr`rw<00>psutil<69>framework.utilr<00>printr<74>Zvirtual_memoryZ
sizeof_fmtr=<00>os<6F>path<74>
splitdrive<EFBFBD>
disk_usagerdr<00>strptimergri<00>split) <0C>inforyr<>rwr<>rr_<00>s<>rootrBZ tmp_datetime<6D> timedeltarCrCrD<00>get_info
s<>  

 
<EFBFBD> <0E> <02>  

<0E> <08><02>
    <0C><10><08><02>zSystemLogic.get_infoc
Cs(zs|j<00><01>D]\}}t<02>d||<02>tj<05>t<07>j|d<02><01> <09><00>
<EFBFBD>}||_ qtj<05> <0C>tj<06> <0A>}t<0E>|<04>t_ttj<05>t<07>jdd<02><01>
<EFBFBD>j tj<05>t<07>jdd<02><01>
<EFBFBD>j d<05>ttj<05>t<07>jdd<02><01>
<EFBFBD>j <t<10><14>tttj<05>t<07>jdd<02><01>
<EFBFBD>j <0B><01>WdSty<>}zt<02>d|<05>t<02>t<19><1A><00>WYd}~d Sd}~ww)
NzKey:%s Value:%srFr$r&rbr.Tr:F)<1B>formrWr>rQrrRrSrrTrerfr^r[<00>allrZdb_list_to_dictrZ setting_listrrrjr<00>intr=r?r@rA)<06>reqrGr^<00>entity<74>listsrBrCrCrD<00>setting_save_systemTsR
<04><02>

 
<04><04><02><02> 
<04><02><04>  <08><02>zSystemLogic.setting_save_systemc
Cs<>z9tt<01>d<01>t<01>d<02>d<03>tt<01>d<01><t<04><05>tttj <09>
t<01>j dd<05><01> <0C>j <0A><01>ddlm}|jdd <09>|<00><11>WdStyY}zt<13>d
|<01>t<13>t<15><16><00>WYd}~d Sd}~ww) Nr$r&rbr.rFr)<01>SystemLogicSiteT)<01>forcer:F)rrrsrrrjrr<>rrRrSrTrfr^<00>
logic_siter<EFBFBD>Zget_daum_cookiesZcreate_tving_instancer=r>r?r@rA)r<>rBrCrCrD<00>setting_save_after~s0<10>
<04><02><04>   <08><02>zSystemLogic.setting_save_afterc
Cs|ztj<01>tdddd|<00>}tj<01>tddd<05>}t<00>|<02>WdSty=}zt<06>d|<03>t<06>t<08> <09><00>WYd}~dSd}~ww)N<>static<69>cssr,z%s_bootstrap.min.csszbootstrap.min.cssr:F)
r<EFBFBD>r<>rXr<00>remover=r>r?r@rA)r,<00>source<63>targetrBrCrCrD<00> change_theme<6D>s <04> <08><02>zSystemLogic.change_themec
Cs|ztj<01>t<03>j|d<01><01><05>}|durWdS|jWSty=}zt<08> d|<02>t<08> t
<EFBFBD> <0B><00>t<08> d|<00>WYd}~dSd}~ww)NrFr:zerror key : %sF) rrRrSrrTrfr^r=r>r?r@rA)rGr<>rBrCrCrDrd<00>s  <08><02>zSystemLogic.get_setting_valuecCszdt}t<01>|<00>rt<01>|<00>t<04>d<02>}|dkr;t|<01>d<04><01>dkr(dt|<01>d}t t||t
j dd <09>}tj |d
d <0B>dSdS) Nz
%s_restartr*r3<00> rz%s<><u자동 재시작TF<54><01>run) <0A> package_namer<00>
is_include<EFBFBD>
remove_jobrrs<00>lenr<6E>r<>rrrx<00>add_job_instance)<03>name<6D>interval<61> job_instancerCrCrDrj<00>s"


<04><04>z!SystemLogic.set_restart_schedulerc
Cs<>z d}t<00>|<00>r t<00>|<00>tt|dtjdd<04>}tj|dd<06>WdSty@}zt<08> d|<02>t<08> t
<EFBFBD> <0B><00>WYd}~dSd}~ww)NZscheduler_checkr<6B>zScheduler CheckTFr<46>r:) rr<>r<>rr<>Zfirst_run_check_thread_functionr<6E>r=r>r?r@rA)r<>r<>rBrCrCrDrk<00>s&

<04> <08><02>z)SystemLogic.set_scheduler_check_schedulerc
Cs<>z<>i}|<00><00><00>d<01>}|sd|d<d|d<|WS|ddkrut|<02>dkru|d d
kr-d |d <tj<04>t<06>j|d d <0C><01><08><00> <09>}|durPd |d<d|d |d<|WS|ddkrZ|dnd|_
tj<04> <0B>d|d<d|d |df|d<|WS|ddkr<>|d dkr<>ddl m}|<04> |d<00>dur<>|<04>|d|d<00>d|d<d|d<00>d|d<00><00>|d<|WSd |d<d|d<|WSty<>}zt<10>d|<05>t<10>t<12><13><00>d |d<t|<05>|d<|WYd}~Sd}~ww)Nr<4E><00>success<73>retzEmpty..<2E>logr<00>setr<74>r<00>token<65>uniquerF<00>failz %s not existr<74>ZEMPTYr(z%s - %sZset2<74>kliveruKLive 설정 값 변경 : z - z wrong commandr:)<15>stripr<70>r<>rrRrSrrTrerfr^r[r<>rsr<>r=r>r?r@rAri)<06> command_textr<74>r_r<>ZKLiveModelSettingrBrCrCrD<00> command_run<75>sZ   
<04><02>
     <08><02>zSystemLogic.command_runc
Cs<>z"t<00>|<00>}tj<03>t<05>jdd<02><01><07><00><08>}||_ tj<03>
<EFBFBD>t <0B> <0C>WdSt yB}zt<0E>d|<03>t<0E>t<10><11><00>WYd}~dSd}~ww)Nr1rFTr:F)<12>json<6F>loadsrrRrSrrTrerfr^r[r<00>apply_menu_linkr=r>r?r@rA)<04> link_data_str<74>datar<61>rBrCrCrD<00> link_save s$

<04><02>
 <08><02>zSystemLogic.link_savec
Cs<>zMt<00>d<01>}t<02>|<00>}ddlm}|<02>}|D]
}|ddkr q!qg|d<|D]#}i}|d|d<|ddkrC|d|d<|d |d<|d<00>|<06>q'Wd
Stym}zt<08> d |<07>t<08> t
<EFBFBD> <0B><00>WYd}~d Sd}~ww) Nr1r)<01> get_menu_map<61>type<70>link<6E>list<73>titler<65>rvTr:F) rrdr<>r<>Zframework.menur<75><00>appendr=r>r?r@rA)r<>r<>r<>Zmenu_mapZ link_categoryrmr<>rBrCrCrDr<>3s0

  <02>     <08><02>zSystemLogic.apply_menu_link)<18>__name__<5F>
__module__<EFBFBD> __qualname__<5F>pointrVr\r]ru<00> staticmethodrEr;r<rlrxr<>r<>r<>r<>rdrjrkr<>r<>r<>rCrCrCrDr5sJ<02><02><02><02><02><02> <02>
<02> <02> <02><02><02><02><02><02><02><04><02><02><02><02><02><02><02><02> <02>"<02>#<02>$<02>%<02>&<02>'<02>(<02>)<06>+<02>,<02>-<02>.<02>0<02>1<02>2<02>4<02>5<02>6<02>7<02>8<02>9<02>:<02>;<02><<02>=<04>><08>Q<06><06>


,
$


I
)





0
r)/r<>r@<00>loggingrrJrHr<>rr<00>flaskrrrrrrr <00> flask_loginr
r r r <00>framework.loggerrr<00> frameworkrrrrrrrr<>rZframework.userrZ framework.jobr<00>modelrrwr<>r<>r<>r><00>objectrrCrCrCrD<00><module>s, $ $