;ò 1ºù?c@szdZdZdZdGHdkZdkZdkZdkZdkZdkZdk Z dfd„ƒYZ e de de d hd gd d d gdgdd ƒZydkZeie_Wnej oZdGHnXdZdZdZdZddf\ZZdddfZdGHd„Zd„ZdGHd„Zd„Zd„Zd GHd!„Z d"„Z!d#„Z"d$„Z#d%GHdS(&sw by Oskar Flordal ### LICENSE ######################################################## This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ################################################################### s Oskar Flordals0.1stidigtNsVarcBstZdZd„ZRS(s4 Helper class for keeping runtime variables cKs ||_dS(N(skwssselfs__dict__(sselfskws((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys__init__(s(s__name__s __module__s__doc__s__init__(((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pysVar$s sshownsutimesbibslyricsartistss availFortunessselectedFortunesssourcesno cached lyrics foundis400iiiii@iNstidigt2cCsTtitiƒƒidƒ\}} |iƒ}|iddƒ}| i ƒ} y.d|| GHt i || |d| fSWnt j o}dGHnXd}| idd ƒd }yti||ƒiƒ} Wn/t j o#}d GHd g|d| fSnXd } xZtd t| ƒƒD]C} | | iƒi|iddƒiƒƒdjo | } Pq q W| | idƒ}d } xZtd t|ƒƒD]C} || iƒi|iddƒiƒƒdjo | } Pq–q–W| d jodGHd g|d| fSn| GHy5tid|| diddƒd ƒiƒ} Wn/t j o#}d GHd g|d| fSnXd } xBtd t| ƒƒD]+} | | idƒdjo | } PqqWxBt| t| ƒƒD]+} | | idƒdjo | } PqÕqÕWd }xBt| t| ƒƒD]+} | | idƒdjo | }Pq q W| | d|d!}x|tt|ƒƒD]h} || iddƒ|| <|| iddƒ|| <|| iddƒ|| <|| i ƒ|| sPrint the Lyricsspagead2.googlesyndication.coms color=#ccccccis
ss s ssaving: sKLJKLJKLJKLJKLs)/home/oskar/karamba/xmmslyrics/xmmslyr.pysws file openeds9#Don't touch if you don't know what you are doing dict=%ss and closed("sxmmssget_playlist_titlesget_playlist_posssplitsartiststunesrstripsreplaces artistsearchslstripsVARsbibs ExceptionsesBASEURLsSONGsurllibsurlopens readlinesstxtsnrsrangeslensxslowersfindstempsnr2slyricsrowsopensfileswritesclose(sestempsartistsSONGsBASEURLslyrics artistsearchsfilesnr2sxsnrstxtstunesrow((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys find_songHsŽ$   ! 2 2  5     cCsôdGHtitiƒƒidƒ\} } | iƒ} | iƒ} d}d| i ddƒ}d}d| i ddƒ}d } ||||| GHti||||| ƒ} | iƒ}| iƒd }xAtd t|ƒƒD]*}||id ƒd jo |}qåqåWy5tid ||idƒdidƒd ƒ} Wn/tj o#} dGHdg| d| fSnX| iƒ}d}d}g}x<|idƒd jo%|i|ƒ||}|d}q›Wx¹tt|ƒƒD]¥}||i ddƒ||<||i ddƒ||<||i ddƒ||<||i ddƒ||<||i ddƒ||<||iƒ||<||GHqêWd| | GH|ti | | is
s s s's's"ssaving: scachedlyrics.pysws=#Don't touch if you don't know what you are doing dict=%s($sxmmssget_playlist_titlesget_playlist_posssplitsartiststunesrstripslstripsBASEURLsreplacesARTISTsALBUMsSONGsEXTRAsurllibsurlopensurls readlinesstxtsclosesnrsrangeslensxsfinds ExceptionseslyricrawslyricsappendsrowsVARsbibsopensfileswrite(slyricsfileslyricrawstxtsrowsARTISTsnrsALBUMsSONGstunesesartistsurlsEXTRAsBASEURLsx((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys find_song2Äs`$     5      stidigt3cCsCdGHt|ƒdGHti|ti|dƒƒdGHt|ƒdS(Nsinitsinit2s BACKGROUND(s_updateswidgetskarambasattachClickAreas getThemeTexts widgetUpdated(swidget((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys initWidgetIs  cCsWtƒ\t_t_dt_tidgjo"tƒ\t_t_dt_ndS(Nssing365s not foundsleo(s find_songsVARslyricsartistssources find_song2(((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pysgetSong^s  cCsRtitjptiƒtidjo$tiƒt_tƒt|ƒndS(Ni€8(sVARsutimesNonestimesgetSongs_updateswidget(swidget((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys widgetUpdatedgs*stidigt4cCsndGHtio[tio)t|ƒt|ƒtƒt|ƒn t|ƒti |ƒti t_ndS(Nsmeter( sVARslyricsshowns _hide_lyricswidgets_updatesgetSongs _show_lyricskarambas redrawWidget(swidgetsmetersbutton((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys meterClickedos      cCs3ti|ti|dƒtiƒti|ƒdS(NsARTIST(skarambas changeTextswidgets getThemeTextsVARsartists redrawWidget(swidget((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys_updates  cCsõtdd}ti|ttddƒ}tt i ƒ}ti |t d|tƒti||t d|tƒti|ƒti|tdtdt d|tdit i ƒƒ}ti||dƒti||tŒ|t _|t _dS( Niisimages/details_bg.pngiiis i (sCHAR_HsbgHeightskarambas createImageswidgets LYRIC_BG_Xs LYRIC_BG_YsbgWslensVARslyricsnrliness resizeWidgets WIDGETWIDTHs LINEHEIGHTs resizeImages redrawWidgets createTextsjoinslyricWschangeTextSizeschangeTextColors LYRIC_COLOR(swidgetsnrlinessbgHeightslyricWsbgW((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys _show_lyricˆs  # cCs`ti|tiƒti|tiƒti|tiƒti|tiƒt t_t_dS(N( skarambas hideImageswidgetsVARsbgWshideTextslyricWs deleteImages deleteTextsNone(swidget((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys _hide_lyricžs stidigt6($s__doc__s __author__s __version__skarambasrandomsrestimesurllibsoss xmms.controlsxmmssVarsFalsesNonesVARsxmmslyrsdictsbibs ExceptionsesCHAR_HsLYRICMAXLENGTHs WIDGETWIDTHs LINEHEIGHTs LYRIC_BG_Xs LYRIC_BG_Ys LYRIC_COLORs find_songs find_song2s initWidgetsgetSongs widgetUpdateds meterClickeds_updates _show_lyrics _hide_lyric(s_updatesrandoms initWidgetsxmmssVars LINEHEIGHTs widgetUpdatedsCHAR_Hs meterClickedsurllibsres __version__sgetSongs _show_lyrics __author__s LYRIC_BG_Xs WIDGETWIDTHs find_songsVARses LYRIC_COLORs find_song2skarambas LYRIC_BG_Ysxmmslyrstimesoss _hide_lyricsLYRICMAXLENGTH((s,/home/oskar/karamba/xmmslyrics/xmmslyrics.pys?sB$ *   | b#