&=d7TZddlZddlZddlZddlZddlmZmZmZmZm Z ddl m Z ddl m Z mZmZmZddlmZ ddlZddlZn#e$r edwxYwejZeZdZd ZGd d eZd ZGd dejZ Gdde!Z"Gdde"Z#Gdde"Z$Gdde"Z%Gdde%Z&dZ'dZ(e(Z)e(Z* d.dZ+d/dZ, d0d Z- d1d!Z.d2d"Z/ d3d%Z0d4d&Z1d5d'Z2 d6d)Z3 d7d*Z4gd+Z5d,Z6d-Z7dS)8N)UINotImportable NoPackageNoBugsNoReport QuertBTSError)launch_browser)display_reportewrite spawn_editorsystem)VERSIONz?Please install the python3-urwid package to use this interface.ctj}|t|d|S)Ng?)max_wait)urwid raw_displayScreenregister_palettepaletteset_input_timeouts)uis 7/usr/lib/python3/dist-packages/reportbug/ui/urwid_ui.pyinitialize_urwid_uir7sF   ! ! # #B   3''' IcdSNrrrnullfuncr@sDrceZdZdS) buttonpushN)__name__ __module__ __qualname__rrrr r EsDrr c*t|jrr exitcode)buttons r button_pressr(Is V_ % %%rceZdZdZdS)SelectableTextcdS)NFr)selfchs r valid_charzSelectableText.valid_charNsurN)r!r"r#r.rrrr*r*Ms#rr*cBeZdZ d dZd dZdZdZd Zd Zdd Z dS)dialogNc ||_d|_|sx|rIt|}|dt j|gx|_}d|_n-t jt jdx|_}|sd}|sd}t j|d|_ |rCt j t j |t jg|j _ |j }t j |d d }t j|d d }t j|d }|r/t j|}t j d|f|_ t j|ddt jt jt j dddfg}t j|t jt j dd}t j |d|}t j|d|}t j|d}||_dS)NF) edit_textrTtoprelativePfooter) focus_part)z fixed left)z fixed rightr:)z fixed topr )z fixed bottomr bodytitlefixedr )border shadow)r8centermiddler>)r; scrollmoder* set_edit_posrListBoxFillerDividerFrameframePileTextheaderPaddingAttrWrapColumnsview) r,messager;widthheightr< long_messageboxws r__init__zdialog.__init__Ss   H H$|<<<  ####(=##7#77 D"&#(< #G#GG D %$E &%F[(;;;  > % EJw,?,?,1MOO,=!>!>DJ  J M!.0B C C L,.A B B N1f % %  4 AAz7E"233AH M1w5>%,uzRaGbGbdi:j:jlt+u+uvw x x K%.O1L1Lh"W"W X X X M!Xu - - LHf - - N1h ' ' rrFc(g}|D]\}}|dkr*tj|}tj|d}n7tj||j}||_tj|dd}|||rtj|}||pdtj tj|d|_ tj |j tt|d|j_dStj|ddd d |_ |j |pdtjtj|j gd |j_dS) N--- scrolllabel selectablefocusr r rA) focus_item)rrKrNButtonr(r&appendrE set_focusrHbuttons BoxAdapterminlenrIr8GridFlowrJrG) r,rddefaultverticallinamer&brUs r add_buttonszdialog.add_buttonsse %  ND(5  Jt$$N1m44Lt'899% N1lG<< IIaLLLL  9-##C MM',Q ' ' ' ;u~c<'H'HIIDL % 0s3r77B?O?O P PDJ    >"b!QAADL L " "7B(*****X99990***+++0(((,------rr0ceZdZddZdS) displayboxNcD|r||_nt|_|j}|j|d}|j|j|||jdS)NTrq)rrrrrPrsstartrtstop)r,rr}r~s rshowzdisplaybox.shows  ,DGG)++DGw$$&&!!$d!33   D&)))  rr)r!r"r#rrrrrrs(      rrc eZdZ ddZdZdS) textentryNFr1ctj|||_tj|jg}tj|dd}|s>tjdd|ftjg}tj|}t |||||||j ddS)N)r3 multiliner[ focustextr=r r;) rEditeditrErNrJrGrFr0rWrIrc)r,textrRrSrr<r3r;s rrWztextentry.__init__sJiHHH }di[))~dL+>> &:D15=??CDDD<%%DdD%??? V$$$$$rc8||jfSr)r get_edit_textrs rr{ztextentry.on_exits002222r)NNFr1r1r!r"r#rWr{rrrrrs=@E%' % % % %33333rrc eZdZ ddZdZdS) listdialogFNr1r^cg}g|_|D]x\} } |j| | r,tjd|| ftj| gd} tj| dd} || ytj|} tj| d} t||||| ||j ddS)Nr=r:r[r\)rSrRr;r<r;) itemsrbrrOrKrNrEr0rWrIrc) r,rwidgets has_defaultrRrSr< buttonwidthrkrVlabellbs rrWzlistdialog.__init__s  !  JQ J  a  :MG[!#<#(:e#4#4#678::q,88A IIaLLLL ]2   ^B - -d6R#  % % % V$$$$$rc|r|dfS|jD]>}t|dr,|r||fcS?|dfS)z#Print the tag of the item selected.N get_state)rhasattrr get_label)r,r&is rr{zlistdialog.on_exitsj  "T> ! / /Aq+&& /1;;== /....~r)FNNr1r^rrrrrrs=?C46%%%%&rrceZdZdZdS)checklistdialogc|r|gfSg}|jD]=}|r'||>||fS)z{ Mimic dialog(1)'s --checklist exit. Put each checked item in double quotes with a trailing space. )rrrbr)r,r&rkrs rr{zchecklistdialog.on_exitsa  R<   ) )A{{}} ) !++--(((|rN)r!r"r#r{rrrrrs#     rrcV|r|t|z}d|vr |d}nd}d|vr |d}nd}tjd|}d|D}d|}t d||pt }||dS)Nr<r1rz +c^g|]*}tjdd|+S\s+r?resubstrip.0xs r z#display_message..12 = = =bfVS!$$**,, = = =r rTr<)tuplersplitjoinrrrrrQr|kwargsr<rchunksrUs rdisplay_messager!s (E$KK'&w v~~ D\ Xgw ' 'F = =f = = =Fkk&!!''))G RgU5Eg F F FCHHRLLLLLrc|r|t|z}d|vr |d}nd}d|vr |d}nd}tjd|}d|D}d|}t d||pt }|dg||dS) Nr<r1rz +c^g|]*}tjdd|+Srrrs rrz long_message..HrrrrOKr) rrrrrr0rrnrrs rrTrT8s (E$KK'&w v~~ D\ XeW % %F = =f = = =Fkk&!!''))G '1A' B B BCOOYK   HHRLLLLLrFc tjtj}||dd}t d|d|pt } |si}g} d} t|D]Z\} } | r| } | } | | | | | f[| | | d| |}|S)Nreplace)errorsr1r5)rTrSr<T)rj)locale nl_langinfoCODESETencodedecoder0r enumerateisupperlowerrbgetrnr)msgokhelp allow_numbersnowraprr<locsafe_msgrUrdriroptionresults rselect_optionsrTs  V^ , ,Czz#iz0077y7IIH (3C' ) ) )C GGr]];; 6 >>   $G\\^^F00&9::::OOGWtO444 XXb\\F MrTctd|t}|ddgdt|z ||}|S)Nr1r)YesT)NoFr )ri)r0rrnintr)ryeshelpnohelprirrrUrs ryes_norjsP #W 5 5 5COO]M2AG .sM???$2VTN6&G2CEEEJB ???rr5)rSr<rc|Srr)rrs r label_buttonzmenu..label_buttons rrYrZrr[r\r^)rSr<r)listr isinstancedictcopyrbrsortrrrrnrrrKrN RadioButtonr&rr)parrrrir<any_okorderextrasmultiplerroklabel cancellabel quitlabelolistkeyroptsrrrUrchosenrrlistrmr\ropts ` rmenurs f  #GGUU+'4  ,,..  E % %'>>LL#ws|!4555 7==??++G LLNNN! % % V$$$$GG7==??++G LLNNN D((   ( KKT!:!:; < < < < KK ' ' ' 'G????6=???c73C$)+++  ? OOgq\K+<'_. / / / / OOgq\K+<= > > >" A::4 G E " "  U?? 4  Aq-00ADD!%fd)C)CFV]L]___AAJq,88A4y!!!! S'*: b 2 2 2C; '1 R'89b/JKKKK '1 R'89::: E((  FAs1v  !XXb\\NFF zz Mrc(t||||S)N)r<rri)r)rr<rris r get_filenamers" fE % ' ' ''rc 0t||||||ddS)NTF)r<r r rr)r)r rrr<r r s rselect_multiplers* WfEv / / //rnoc ddlm} |} | st} | j|} t d|| d|| | ||||||} | st d||| dStdd d d }d } | \}}|d}t|||j | |}d} |r|dkrn5|dkrdS|dkr|St| |||fdS)Nrdebbugsz4Retrieving report #%d from %s bug tracking system...rl)r<r)mirrors http_proxyarchivedzBug report #%d not found.rzMore details (launch browser)zSubmit more informationQuit)odmqOdmqr )r<rrr%r(rr') reportbugr rSYSTEMSr get_reportrTrrsubjectrget_report_url)numberbtsr!r"timeoutscreen queryonlyr<r#mbox_reader_cmdr rsysinfoinforvalidbuginfobodiesr;rs r show_reportr;sl"!!!!! B # " "oc"GJGFO5RAAAA   fgsG)3h  H HD 0&"MMMMT<.&:::G E F &ay 4go"7 S S S  Q#XX  #XX2 #XXNw--c68DDEEE F Frc 2#ddlm}|j|}|d}|st d|ddS|}|st }t |tr/|}| r|dz }td|j|d|||nBtd |j|dd d |D||d} | ||||| ||| \}}}nW#t$rJ}| td |ddt|d}t|d}~wwxYw |s*| t|t t"|dkrd|fz}nd|fz}g} |D]\}}| d|fi#|D]#}d}|jdkrd}|j|z#|j<$t-t/| j#fdt1#|D| dd}|rd}d} nd}d} t3t5d| d|||d||  }!d}|!dkr3|!d krd}n)|!d!krt6||!|d}nt;|!|||||"}"|"r|"}n{n@#t $r3| tt=d#|$t wxYw|r!t ||jj st6|S)%Nrrbtsrootz8%s bug tracking system has no web URL; bypassing query. rlz (source)z1Querying %s bug tracking system for reports on %s)rr<z.Querying %s bug tracking system for reports %sr?c,g|]}t|Srstrrs rrz$handle_bts_query..Bs!:!:!:Q#a&&!:!:!:r)r!versionr"r#sourcezUnable to connect to z BTS (error: "z"); r z%d bug reports foundz%d bug report foundrYr1donez [RESOLVED]c>g|]}t||fSrr?)rr buglist_tmps rrz$handle_bts_query..fs()v)v)vq3q66;q>*B)v)v)vr)reverseExitzNew bugr$TzPSelect a bug to read (and possibly report more information) or report a new bug:zRead bug)rr<rirrrrr)r3z No record of this package found.)r<)!r*r r+rr rrr@rr get_reports Exceptionrrreprrrrrbpendingr-bug_numrmapsortedrrrr,r;rT debianbts Bugreport)$packager0r1r!r"r3r2r<r#rBrAmboxbuglistr4 latest_firstr r5rootrpkgnamercountsectitle hierarchyrerrmsgtbugsbugrCprrr6resrEs$ @rhandle_bts_queryr`&s5"!!!!!oc"G ;;y ! !D Jv    B # " "'3 Q  # { "GK,V4gU , , , , , H,V4!:!:'!:!:!:;;% Q Q Q QF$'.':': Wc7G!HV(;(E(E$)) $$$ x    BI&///SWXYSZSZSZSZ[F###$ >8  NN8 $ $ $  qyy1UH<0E8;G& y y Dqz*** BBCD{f,,-/2{T/AK ,,S)v)v)v)vFS^htLuLuLu)v)v)vwwxxxx 1 A #$  ' "  4 r '(A(2,7*3 55566 !88rzz!%&")!3!3D'!B!B1!E%dC*&-DDDC!$- 0  x   7uEEEEj):)DEE Ms&!D E AEEEJ44=K1))r;black light graystandout)r>ra dark blue)r@whitera)r[ra dark cyan)r\rerdbold)rrbrd)r<zdark redrb)rZrerfcdS)NTrrrr initializeris 4rc>tjSr)sysstdinisattyrrr can_inputrns 9    r)NFFNN)TFN)NNFFr1N)NNFNr) NNFNNFFNrrN)NFr1)NNN)NFr1rN) Nr1FNr1rFNFNNF)8rrkrrreportbug.exceptionsrrrrrreportbug.urlutilsrtext_uir r r r r*rurwid.raw_displayr ImportErrorrlrmISATTY log_messagerrrIr r(rr*objectr0rrrrrrT final_messagedisplay_failurerrrrrrrrr;r`rrirnrrrrys4 .----- ]LLLL]]] /[ \ \\]                 &&&UZ ~-~-~-~-~-V~-~-~-B        33333333$>     j    .0 DI"&,OT"    BG    ####AFEI7;____F'''' ////JL/3% % % % PFHFJEI8=mmmm`   s AA