From 55c8f04f6feba33ad89604832950b5f9823e4c19 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marcus=20Wikstr=C3=B6m?= Date: Tue, 9 Feb 2010 15:25:59 +0200 Subject: [PATCH] added a ton of comics---fixed --- debian/comic-widget/DEBIAN/control | 89 -- debian/comic-widget/DEBIAN/md5sums | 16 - .../opt/comic-widget/images/down0-48x48.png | Bin 363 -> 0 bytes .../opt/comic-widget/images/down1-48x48.png | Bin 2214 -> 0 bytes .../opt/comic-widget/images/icon2-64x64.png | Bin 7089 -> 0 bytes .../opt/comic-widget/images/next0-48x48.png | Bin 373 -> 0 bytes .../opt/comic-widget/images/next1-48x48.png | Bin 2261 -> 0 bytes .../opt/comic-widget/images/prev0-48x48.png | Bin 379 -> 0 bytes .../opt/comic-widget/images/prev1-48x48.png | Bin 2273 -> 0 bytes .../opt/comic-widget/images/switch0-48x48.png | Bin 490 -> 0 bytes .../opt/comic-widget/images/switch1-48x48.png | Bin 2377 -> 0 bytes .../opt/comic-widget/images/up0-48x48.png | Bin 356 -> 0 bytes .../opt/comic-widget/images/up1-48x48.png | Bin 2199 -> 0 bytes .../usr/lib/hildon-desktop/comicwidget.py | 1546 -------------------- .../applications/hildon-home/comicwidget.desktop | 7 - .../usr/share/doc/comic-widget/changelog.Debian.gz | Bin 157 -> 0 bytes .../usr/share/doc/comic-widget/changelog.gz | Bin 150 -> 0 bytes .../usr/share/doc/comic-widget/copyright | 35 - debian/files | 1 - 19 files changed, 1694 deletions(-) delete mode 100644 build-stamp delete mode 100644 configure-stamp delete mode 100644 debian/comic-widget/DEBIAN/control delete mode 100644 debian/comic-widget/DEBIAN/md5sums delete mode 100644 debian/comic-widget/opt/comic-widget/images/down0-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/down1-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/icon2-64x64.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/next0-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/next1-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/prev0-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/prev1-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/switch0-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/switch1-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/up0-48x48.png delete mode 100644 debian/comic-widget/opt/comic-widget/images/up1-48x48.png delete mode 100644 debian/comic-widget/usr/lib/hildon-desktop/comicwidget.py delete mode 100644 debian/comic-widget/usr/share/applications/hildon-home/comicwidget.desktop delete mode 100644 debian/comic-widget/usr/share/doc/comic-widget/changelog.Debian.gz delete mode 100644 debian/comic-widget/usr/share/doc/comic-widget/changelog.gz delete mode 100644 debian/comic-widget/usr/share/doc/comic-widget/copyright delete mode 100644 debian/files diff --git a/build-stamp b/build-stamp deleted file mode 100644 index e69de29..0000000 diff --git a/configure-stamp b/configure-stamp deleted file mode 100644 index e69de29..0000000 diff --git a/debian/comic-widget/DEBIAN/control b/debian/comic-widget/DEBIAN/control deleted file mode 100644 index 199e37e..0000000 --- a/debian/comic-widget/DEBIAN/control +++ /dev/null @@ -1,89 +0,0 @@ -Package: comic-widget -Version: 0.4.2-1 -Section: user/desktop -Priority: extra -Architecture: all -Depends: python2.5, python-osso, python-gtk2, python-hildon, python-hildondesktop, python2.5-cairo, hildon-desktop-python-loader -Installed-Size: 188 -Maintainer: Marcus Wikstrom -Description: A widget that displays comics taken from the web. -Bugtracker: XSBC-Bugtracker: http://bugs.maemo.org -Maemo-Icon-26: - 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 - n/y/2/wfjUewq/FSuIsAAAAASUVORK5CYII= diff --git a/debian/comic-widget/DEBIAN/md5sums b/debian/comic-widget/DEBIAN/md5sums deleted file mode 100644 index d0e47ab..0000000 --- a/debian/comic-widget/DEBIAN/md5sums +++ /dev/null @@ -1,16 +0,0 @@ -c28d59639f88131ef87f127b9e2cfc6e opt/comic-widget/images/down0-48x48.png -e004317e4394f6f2d48b540d4f7e84fd opt/comic-widget/images/next0-48x48.png -0adaa4f81bc84b3c6900f127beb44230 opt/comic-widget/images/switch1-48x48.png -f6b005dadeccf8db681b2d03ca4d7b3a opt/comic-widget/images/switch0-48x48.png -8a54a3d037c715f5d54749878f31e078 opt/comic-widget/images/next1-48x48.png -6e48bf459aeaa31ff060ab123b00275f opt/comic-widget/images/icon2-64x64.png -633c091fd88a0bdcf3631922b8612e77 opt/comic-widget/images/prev0-48x48.png -fac68439af81c0bdbf0be4d191b87356 opt/comic-widget/images/prev1-48x48.png -e41c46ecd717669b42714da7f4302787 opt/comic-widget/images/up1-48x48.png -539495adcf9f6642984e58652f66f4d5 opt/comic-widget/images/down1-48x48.png -31d4efbb16e33e2f9a0c3d14618ea491 opt/comic-widget/images/up0-48x48.png -753fd2919b3f976a83848fe839b4f1eb usr/share/doc/comic-widget/copyright -3800c03fdc0bc323c60c15f91a4aefe5 usr/share/doc/comic-widget/changelog.gz -d9373f3997a760beebe30ba6580ce390 usr/share/doc/comic-widget/changelog.Debian.gz -ba851eb99ca1eac1245319e4393cde62 usr/share/applications/hildon-home/comicwidget.desktop -cff7c871cee332fcf03102ffd8f6c30c usr/lib/hildon-desktop/comicwidget.py diff --git a/debian/comic-widget/opt/comic-widget/images/down0-48x48.png b/debian/comic-widget/opt/comic-widget/images/down0-48x48.png deleted file mode 100644 index e9e4e2b6b195b985660a6564d88e505e64f6f6aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Y)RhkEMBZ?9Q%F*ypjUVN=Ca7ApDt?k%0nCc?>88J_;LNm8ixKIOp|*$)_lCl zC|Ah1?7-$PKPE8rTQD0x2ra6KXmFQl{3$M&_}H1*<`ILAS1&*RhYs5fI)?iuGW6eI rT)phL`MERK(zaccpWOihC)o4%SnHN;dRy56^bv!ntDnm{r-UW|zh8hA diff --git a/debian/comic-widget/opt/comic-widget/images/down1-48x48.png b/debian/comic-widget/opt/comic-widget/images/down1-48x48.png deleted file mode 100644 index c81bdf3fd8eecffc6a0a8bc598cba2f219762217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2214 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 bee3;VvC00000NkvXXu0mjf7aRcz diff --git a/debian/comic-widget/opt/comic-widget/images/next0-48x48.png b/debian/comic-widget/opt/comic-widget/images/next0-48x48.png deleted file mode 100644 index d24913a85916915a0595479b5c6ec102ba2a8519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Y)RhkE-u zu(-RI4jpq!QsfAeJK%IgU+$pVZu!LL43o_{HH8#f1e`b&Sr}Gq?aNvl{d|_|gFBYW zT_>`;HJrAqF6#LEsUyiEHPglLu4!b8wu9J1o(V2Hm}j~32wpHrTEW2ZBHCkDW83`+ zcm8J|nDu1g)H9MF7&j<1#g#UMQCdrcwOK`rxZ7~LK@OrC!FY&_6!44$rjF6*2U Fng9iKf1dyV diff --git a/debian/comic-widget/opt/comic-widget/images/next1-48x48.png b/debian/comic-widget/opt/comic-widget/images/next1-48x48.png deleted file mode 100644 index 792bd5df042cd370b3aeda9053a3ddc9fe45f7da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2261 zcmV;`2rBo9P)Px#24YJ`L;wH)aR9X!d;S{$000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igH0 z2@4@WF2Ml+000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000OuNkl~LWlvoizj5jJMdZ(?@ z(xien;!R0X2~9(6l5@^@v9q%?^X~5?xBlR8&hOoQcW39%GtbN(;y3RozQ>0`;{crdPY-V2#RP<^7B(3ec5l~ftwE1e!rfgfI0AjD$ zz}ylbIadS190}sZ_c*^Yo}kR}*O`u3XZpSzCmQSbgKg5JYe5B|_C>-wV<>4{?K`^^ zT_dJXRt>0aY}Rx|D3kT*WK3@3rTODd=W6>~d#w-1{WvRFBJ1F(rm(b(8Pr>UdsNKln+HW#OV=dg^- z@fcfCC@P@B8Aox3hA4^F((c7ulfA>vki;%F7EFYMh7x@)&(RKUeeF7#FIBauUJaVo3`; zLi4%|+SeI>x}uWp(CcpiA5;>fBF+bOIyd4mu^#_UEth#6s# z*@Pn&Qe1Nxgp7yMXc>0#X3QUe)*7gRT10P9bjku^YmH&rJYhEW3}6YfSTuLx=oCMF zLUHYe?5Kza@)0=`LO`Ox^@Qmh7=10BCqSO7e9)6`n5$|a(dYc>wTJlK`{!`|mK0fR zTOAglLwL`)I?3a(fX-O6mZv{Ng??e|Q1c|I-S%ul>rS z&>%e|C6BX_0Ebh|M79%hztIFKsb~%b(PUrTU4HdjT>0n%{&i~$>puq7P&zB^!pg){ zBY%WOE~E!|2_tqCBE}F~y0gIeTzchO{Ndvt;EQjL4zeIE^;wn4nP`DuX^m(i_S4Y6 z_a8QajIl;g8blf>M3V+K_HhzI0i_+(>+fH_hZmkc@%2O)egv)cXMIf2gpejKn^1gg z{tzNGftx^D7et2O?1GCgz<$878Rw?WHa+We@uj^nInv(8i&XpkfCi zHaqy%#|0cOn82=~@plv3uxq=KZYgQB0~1Xi-9`BAi+Ay}r%zm97uMIA))1Cw9EzTY z?=ZSxmMC@VGNDC>6&{R%`g#55|Hai$euyt`pUXIr7%9tGDe!H;sRRb&OYM|Zky2Cp zeEPTt=sB%xwl-`MZz59uVdZKWg=($E)I3>7(iZ96TDDk)LG6~yI|(%AN+h5zf5`17r)fq+4lV!fH=sJ|Ix*nx&@F zj)RWw8b|xAGlMfMaH_!7zdeJ0-#hBUvsY_k#Zl@$)W%w=6DFgLMZFB}FfG84eKiKS zl|G8h5)Y+;Qw84m>_@oq|04(kQ6zTdY&wOrhSIhPuWYSJs4++JjHDT$2ROrNyyfFf zJz`~m69xYA`Lnon{|Jr4m@=&yn_yL8GON8&#>Oh7H?~;%p2Ys|13V>FDFU>XUpPJm z-u(NI@y&yy9v_LzoxzJjXi?eAjZkYx*|yf&uFmX5Gz+}dhC%Kt1K9${r@)*4cn-H8 zZWgdipo`L=iS0%$EfO;C7B$fenuE=z+)?l(>fQF)8L)zYPlN!ut zb*$q!OD)PZ99OFlj|k*BK5JrVA!}OtXGl$~bOn^I`i2w4Mwz4#ROCxVB!cK^YI#FY z`+Ac~STk34O{UVWjK1rCpJ9dAC*J|Y>NapiEx4o^von|EvGX(Z={X@Ha`lkZ6EcjZ z7tKvna@KbHG2b1;EbG)JTmkoMC*}n}+{Z5%B_B5o%EVjC(=DovrD|0JUwO@GM00000NkvXXu0mjfq$fGX diff --git a/debian/comic-widget/opt/comic-widget/images/prev0-48x48.png b/debian/comic-widget/opt/comic-widget/images/prev0-48x48.png deleted file mode 100644 index 7d349a736e71e8f57086e75f0d2fd166aba4b565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Y)RhkEj#);q}3i4dTQQ~erh>u!FSz)^*fTMDcCb@ zU&Wh#@RRj}sGak41M2u=R-L}s^o0MwPS@S;a~<53otStI7clkxuVFgt)RNaNrg-Rj zY-z`o+E_`YwFRr3mYAivc6>Q?o-goI+DV?kZ!fYU%bY;&dgNZo%yP%Pc9+7NeLx>F Nc)I$ztaD0e0stWqhpGSo diff --git a/debian/comic-widget/opt/comic-widget/images/prev1-48x48.png b/debian/comic-widget/opt/comic-widget/images/prev1-48x48.png deleted file mode 100644 index ed1b355e45c2b1eb601db8c40eb6addcc5d601c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2273 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 diff --git a/debian/comic-widget/opt/comic-widget/images/up0-48x48.png b/debian/comic-widget/opt/comic-widget/images/up0-48x48.png deleted file mode 100644 index 39932d66872b80ca3b5881769dcf0aaabd230ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Y)RhkE+`s;HQTJ`ocliW9iuTA>=qR~+#yl(x$lzsmdKI;Vst08fU0y8r+H diff --git a/debian/comic-widget/opt/comic-widget/images/up1-48x48.png b/debian/comic-widget/opt/comic-widget/images/up1-48x48.png deleted file mode 100644 index d3536ca4302ae2dac384693549050cb33a75d728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2199 zcmV;I2x#|-P)Px#24YJ`L;wH)aR9X!d;S{$000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igH0 z3mGTUJ-~?o000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000N_NklaObUJI0TV7iR8rpXcf7?)o@Yb^0aV`n~Xf{JEI1UkL!ycYFkZ z>y7vjkPh#!*MuN&dmz6`ax_KnGX1^u{9P zL;>PlQEaQrs?x{&62v~sr5OQO*=}e>zH*lBgjh>cVcATcepLg@OdMnSolpY6G=rse zxkvO}<6_OK`}l&!?yXu)>T9$c>O9Gc>mVRrvOaE+JVhLOBz+u zWH*LgdB-)SzIDq!o}fCQG6zEq7h8h_#pk94eCNa=P&Ckkni?1mA7+*&__1pYmV$>F zVSKYQi_HMm$b2r-l4TNlgbOt@cRe?kX)Lxwss_SzmvQSTB_jfo&1{b@4?aG8S6VU& zZMY(bd=3ciI+`&T*;ktBZq`Cf-?0Nni)lqxR}4+_KDN#G#^;iW`SwHR_>J%uP2YYV|n{ zo-jW$s%vfTlLsixu$k6rv%ax{K($ERWw9i>9s>hEwH00`L{}sxrGn4af>|Xgr4lj0 zX`Q81oJqo#DbtgS86lXXhYje9if`75DMV5%Sh^Bs4I~h+eB&`B;e(Hx2ObNAa)oZD zgoWw_C?GpmbTPA%WKhySCprv#NBy1CUdmc8-@U=RZ~g-S@b>+$;?ED-tYAZnvf`-9 zwUEc8kYN=Sa76Iizj}YX7J)b_i_rvmkbAAfW!gNW0K9zX2Jign^J4vb_n*UupSD>U zV5!@*XKN%toG4gpA%5rA?`z5TwOc%g#^JkPyma>l_uhDT1ipLspT}Q5YdM(GO1A24 zl+!%5tKn#`{^n0*@4bFG^-3op8G3;iZ$HA%Uw?SD#Csy(?LT}Ce|^{{s&RH^N-95j zeV$(q<<`v5jA%5N8O#VXLnG1r+RV_#Kf>tOB&_x4uiSn7)WyT|)Gy!s4BvWQK9-;n z%?$LpTbpzCXYe)kcdhm7X4c2Q_S+9MVm_B9XL@33?_Kk^9^q%Nefp)TkjGDecm8-A zfBU>`?dYl5*?nO~p;>6P&E1V14vn~0THLqs{nDMAe{1mo&{ zv^h^+SAQq05QAw`K$`-FyO_C~#dG4t+mGf|uC6{G!>8`xG z*?zzO=ezR<;s3tiJUD#+h1-wtlka}=U$SbzFMjY5Zaw>?uc38|caP}n3S~9=b!)EN z*oeDDO9MhcYe=T*nx`3Fxb+3zdiBBogc|%x1K$1qNBH_PPr8L27{Y})tP$XWv5sa2 z{`hwvE-g%E&@j>=N1`I0X^#(#T}j}nuJQak*bB{aCKav{@P%w)rI1L5o|p!eQyLoO zLQ)Iz;E(>Dqo4}TH*W)*=(4Q3A~iZvB|+{oRnJQMaL{M1xjE6>STZF0}N zD;Ey*N{_JIo5fsWG!X5Z_H3{<@A>zTaUiJj7MGr9?u3VIPV zu9HSrHZ50+R9#T{y~sAyxpn4ROSCa{YAm!0QZ4SUTV&`=)K0QfTKZzmo;vphTu9y# z&neJ<({AoRbFjkm}X;d7O z=L*Am&rao@nCVPl8@x6!I0Z-Iij?VAh*pSza@w*`g*;Tg*}K9cVk+lG&unHiO-$z| zJD4qJLdtwkT*}*4ECpG@_M{LC(-~^nos?-V!%t|w%!daUyVmUh$J2n$@nGhnjar!h{F}i-&9U`s1zj&Zwnkqu*J+w zEW|j)B(_bJ1C9Zw&Kz?_~Q>Pl{8b$q$`KhI(eec6USLxf;b0%o;zM)G)p$b Z{S(=Q98Rw|0%`yN002ovPDHLkV1in+ACLe5 diff --git a/debian/comic-widget/usr/lib/hildon-desktop/comicwidget.py b/debian/comic-widget/usr/lib/hildon-desktop/comicwidget.py deleted file mode 100644 index 3d3f6af..0000000 --- a/debian/comic-widget/usr/lib/hildon-desktop/comicwidget.py +++ /dev/null @@ -1,1546 +0,0 @@ -import gobject -import hildon -import hildondesktop -import gtk -import csv -import urllib2 -import string -import os -import osso -import cairo -import datetime -import shutil -import sys -import socket - -socket.setdefaulttimeout(30) - -supports_alpha = False - -# LOGGING! -# sys.stdout = open('/home/user/.comic-widget/output_log.txt', 'a') -# sys.stderr = open('/home/user/.comic-widget/error_log.txt', 'a') -# print "Start logging!" - -# constants. dbfile is the location of the csv -# comiccache is the location of the images -APP_VERSION = "0.4.2" - -basedbdir = "/opt/comic-widget/db/" -imagedir = "/opt/comic-widget/images/" -dbdir = "/home/user/.comic-widget/" -activecomics = dbdir + "activecomics.cfg" -comiccache = "/home/user/MyDocs/.comics/" -defaultcomics = ['xkcd','wulff','sinfest'] -comics = { - "9_chickweed_lanecomicscom":{"name":"9 Chickweed Lane","link":"http://comics.com/9_chickweed_lane/","start":"2010-02-01","dbfile":dbdir + "comicdb.9chickweedlane.csv"}, - "agnescomicscom":{"name":"Agnes","link":"http://comics.com/agnes/","start":"2010-02-01","dbfile":dbdir + "comicdb.agnes.csv"}, - "andy_cappcomicscom":{"name":"Andy Capp","link":"http://comics.com/andy_capp/","start":"2010-02-01","dbfile":dbdir + "comicdb.andycapp.csv"}, - "alley_oopcomicscom":{"name":"Alley Oop","link":"http://comics.com/alley_oop/","start":"2010-02-01","dbfile":dbdir + "comicdb.alleyoop.csv"}, - "arlonjaniscomicscom":{"name":"Arlo and Janis","link":'http://comics.com/arlo&janis/',"start":"2010-02-01","dbfile":dbdir + "comicdb.arlonjanis.csv"}, - "bccomicscom":{"name":"B.C.","link":"http://comics.com/bc/","start":"2010-02-01","dbfile":dbdir + "comicdb.bc.csv"}, - "ballard_streetcomicscom":{"name":"Ballard Street","link":"http://comics.com/ballard_street/","start":"2010-02-01","dbfile":dbdir + "comicdb.ballardstreet.csv"}, - "babyblues":{"name":"Baby Blues","link":"http://www.babyblues.com/","start":"01/19/2010","dbfile":dbdir + "comicdb.babyblues.csv"}, - "bencomicscom":{"name":"Ben","link":'http://comics.com/ben/',"start":"2010-02-01","dbfile":dbdir + "comicdb.ben.csv"}, - "bettycomicscom":{"name":"Betty","link":"http://comics.com/betty/","start":"2010-02-01","dbfile":dbdir + "comicdb.betty.csv"}, - "big_natecomicscom":{"name":"Big Nate","link":"http://comics.com/big_nate/","start":"2010-02-01","dbfile":dbdir + "comicdb.bignate.csv"}, - "brevitycomicscom":{"name":"Brevity","link":"http://comics.com/brevity/","start":"2010-02-01","dbfile":dbdir + "comicdb.brevity.csv"}, - "candorvillecomicscom":{"name":"Candorville","link":"http://comics.com/candorville/","start":"2010-02-01","dbfile":dbdir + "comicdb.candorville.csv"}, - "cheap_thrillscomicscom":{"name":"Cheap Thrills","link":"http://comics.com/cheap_thrills/","start":"2010-02-01","dbfile":dbdir + "comicdb.cheapthrills.csv"}, - "committedcomicscom":{"name":"Committed","link":"http://comics.com/committed/","start":"2010-02-01","dbfile":dbdir + "comicdb.committed.csv"}, - "cownboycomicscom":{"name":"Cow and Boy","link":'http://comics.com/cow&boy/',"start":"2010-02-01","dbfile":dbdir + "comicdb.cownboy.csv"}, - "cyanide":{"name":"Cyanide and Happiness","link":"http://explosm.com/","start":"1920","dbfile":dbdir + "comicdb.cyanide.csv"}, - "daddyshomecomicscom":{"name":"Daddy's Home","link":"http://comics.com/daddys_home/","start":"2010-02-01","dbfile":dbdir + "comicdb.daddyshome.csv"}, - "dilbert":{"name":"Dilbert","link":"http://dilbert.com/","start":"2010-01-01","dbfile":dbdir + "comicdb.dilbert.csv"}, - "dog_eat_dougcomicscom":{"name":"Dog eat Doug","link":"http://comics.com/dog_eat_doug/","start":"2010-02-01","dbfile":dbdir + "comicdb.dogeatdoug.csv"}, - "drabblecomicscom":{"name":"Drabble","link":"http://comics.com/drabble/","start":"2010-02-01","dbfile":dbdir + "comicdb.drabble.csv"}, - "f_minuscomicscom":{"name":"F Minus","link":"http://comics.com/f_minus/","start":"2010-02-01","dbfile":dbdir + "comicdb.f_minus.csv"}, - "family_treecomicscom":{"name":"Family Tree","link":"http://comics.com/family_tree/","start":"2010-02-01","dbfile":dbdir + "comicdb.familytree.csv"}, - "farcuscomicscom":{"name":"Farcus","link":'http://comics.com/farcus/',"start":"2010-02-01","dbfile":dbdir + "comicdb.farcus.csv"}, - "fat_catscomicscom":{"name":"Fat Cats","link":'http://comics.com/fat_cats_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.fatcats.csv"}, - "ferdnandcomicscom":{"name":"Ferd'nand","link":'http://comics.com/ferdnand/',"start":"2010-02-01","dbfile":dbdir + "comicdb.ferdnand.csv"}, - "flight_deckcomicscom":{"name":"Flight Deck","link":'http://comics.com/flight_deck/',"start":"2010-02-01","dbfile":dbdir + "comicdb.flightdeck.csv"}, - "flonfriendscomicscom":{"name":"Flo and Friends","link":'http://comics.com/flo&friends/',"start":"2010-02-01","dbfile":dbdir + "comicdb.flonfriends.csv"}, - "fort_knoxcomicscom":{"name":"Fort Knox","link":'http://comics.com/fort_knox/',"start":"2010-02-01","dbfile":dbdir + "comicdb.fortknox.csv"}, - "franknernestcomicscom":{"name":"Frank and Ernest","link":'http://comics.com/frank&ernest/',"start":"2010-02-01","dbfile":dbdir + "comicdb.franknernest.csv"}, - "frazzcomicscom":{"name":"Frazz","link":"http://comics.com/frazz/","start":"2010-02-01","dbfile":dbdir + "comicdb.frazz.csv"}, - "free_rangecomicscom":{"name":"Free Range","link":'http://comics.com/free_range/',"start":"2010-02-01","dbfile":dbdir + "comicdb.freerange.csv"}, - "geechcomicscom":{"name":"Geech","link":'http://comics.com/geech_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.geech.csv"}, - "getfuzzycomicscom":{"name":"Get Fuzzy","link":"http://comics.com/get_fuzzy/","start":"2010-02-01","dbfile":dbdir + "comicdb.getfuzzy.csv"}, - "girlsnsportscomicscom":{"name":"Girls and Sports","link":'http://comics.com/girls&sports/',"start":"2010-02-01","dbfile":dbdir + "comicdb.gitlsnsports.csv"}, - "graffiticomicscom":{"name":"Graffiti","link":'http://comics.com/graffiti/',"start":"2010-02-01","dbfile":dbdir + "comicdb.graffiti.csv"}, - "grand_avenuecomicscom":{"name":"Grand Avenue","link":'http://comics.com/grand_avenue/',"start":"2010-02-01","dbfile":dbdir + "comicdb.grandavenue.csv"}, - "heathcliffcomicscom":{"name":"Heathcliff","link":'http://comics.com/heathcliff/',"start":"2010-02-01","dbfile":dbdir + "comicdb.heathcliff.csv"}, - "herb_and_jamaalcomicscom":{"name":"Herb and Jamaal","link":'http://comics.com/herb_and_jamaal/',"start":"2010-02-01","dbfile":dbdir + "comicdb.herbandjamaal.csv"}, - "hermancomicscom":{"name":"Herman","link":'http://comics.com/herman/',"start":"2010-02-01","dbfile":dbdir + "comicdb.herman.csv"}, - "home_and_awaycomicscom":{"name":"Home and Away","link":'http://comics.com/home_and_away/',"start":"2010-02-01","dbfile":dbdir + "comicdb.homeandaway.csv"}, - "its_all_about_youcomicscom":{"name":"It's All About You","link":'http://comics.com/its_all_about_you/',"start":"2010-02-01","dbfile":dbdir + "comicdb.itsallaboutyou.csv"}, - "janes_worldcomicscom":{"name":"Jane's World","link":'http://comics.com/janes_world/',"start":"2010-02-01","dbfile":dbdir + "comicdb.janesworld.csv"}, - "jump_startcomicscom":{"name":"Jump Start","link":'http://comics.com/jump_start/',"start":"2010-02-01","dbfile":dbdir + "comicdb.jumpstart.csv"}, - "kit_n_carlylecomicscom":{"name":"Kit 'n' Carlyle","link":'http://comics.com/kit_n_carlyle/',"start":"2010-02-01","dbfile":dbdir + "comicdb.kitncarlyle.csv"}, - "lil_abnercomicscom":{"name":"Li'l Abner","link":'http://comics.com/lil_abner_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.lilabner.csv"}, - "liberty_meadowscomicscom":{"name":"Liberty Meadows","link":'http://comics.com/liberty_meadows/',"start":"2010-02-01","dbfile":dbdir + "comicdb.libertymeadows.csv"}, - "little_dog_lostcomicscom":{"name":"Little Dog Lost","link":'http://comics.com/little_dog_lost/',"start":"2010-02-01","dbfile":dbdir + "comicdb.littledoglost.csv"}, - "lolacomicscom":{"name":"Lola","link":'http://comics.com/lola/',"start":"2010-02-01","dbfile":dbdir + "comicdb.lola.csv"}, - "luanncomicscom":{"name":"Luann","link":'http://comics.com/luann/',"start":"2010-02-01","dbfile":dbdir + "comicdb.luann.csv"}, - "marmadukecomicscom":{"name":"Marmaduke","link":'http://comics.com/marmaduke/',"start":"2010-02-01","dbfile":dbdir + "comicdb.marmaduke.csv"}, - "megcomicscom":{"name":"Meg","link":'http://comics.com/meg_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.meg.csv"}, - "minimum_securitycomicscom":{"name":"Minimum Security","link":'http://comics.com/minimum_security/',"start":"2010-02-01","dbfile":dbdir + "comicdb.minimumsecurity.csv"}, - "moderately_confusedcomicscom":{"name":"Moderately Confused","link":'http://comics.com/moderately_confused/',"start":"2010-02-01","dbfile":dbdir + "comicdb.moderatelyconfused.csv"}, - "mommacomicscom":{"name":"Momma","link":'http://comics.com/momma/',"start":"2010-02-01","dbfile":dbdir + "comicdb.momma.csv"}, - "motleycomicscom":{"name":"Motley","link":'http://comics.com/motley_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.motley.csv"}, - "nancycomicscom":{"name":"Nancy","link":'http://comics.com/nancy/',"start":"2010-02-01","dbfile":dbdir + "comicdb.nancy.csv"}, - "natural_selectioncomicscom":{"name":"Natural Selection","link":'http://comics.com/natural_selection/',"start":"2010-02-01","dbfile":dbdir + "comicdb.naturalselection.csv"}, - "nest_headscomicscom":{"name":"Nest Heads","link":'http://comics.com/nest_heads/',"start":"2010-02-01","dbfile":dbdir + "comicdb.nestheads.csv"}, - "off_the_markcomicscom":{"name":"Off the mark","link":"http://comics.com/off_the_mark/","start":"2010-02-01","dbfile":dbdir + "comicdb.offthemark.csv"}, - "on_a_claire_daycomicscom":{"name":"On A Claire Day","link":'http://comics.com/on_a_claire_day/',"start":"2010-02-01","dbfile":dbdir + "comicdb.onaclaireday.csv"}, - "one_big_happycomicscom":{"name":"One Big Happy","link":'http://comics.com/one_big_happy_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.onebighappy.csv"}, - "over_the_hedgecomicscom":{"name":"Over the Hedge","link":'http://comics.com/over_the_hedge/',"start":"2010-02-01","dbfile":dbdir + "comicdb.overthehedge.csv"}, - "pc_and_pixelcomicscom":{"name":"PC and Pixel","link":'http://comics.com/pc_and_pixel/',"start":"2010-02-01","dbfile":dbdir + "comicdb.pcandpixel.csv"}, - "peanutscomicscom":{"name":"Peanuts","link":"http://comics.com/peanuts/","start":"2010-02-01","dbfile":dbdir + "comicdb.peanuts.csv"}, - "pearls_before_swinecomicscom":{"name":"Pearls Before Swine","link":'http://comics.com/pearls_before_swine/',"start":"2010-02-01","dbfile":dbdir + "comicdb.pearlsbeforeswine.csv"}, - "phd":{"name":"PHD Comics","link":"http://www.phdcomics.com/","start":1240,"dbfile":dbdir + "comicdb.phd.csv"}, - "picklescomicscom":{"name":"Pickles","link":'http://comics.com/pickles/',"start":"2010-02-01","dbfile":dbdir + "comicdb.pickles.csv"}, - "prickly_citycomicscom":{"name":"Prickly City","link":'http://comics.com/prickly_city/',"start":"2010-02-01","dbfile":dbdir + "comicdb.pricklycity.csv"}, - "raising_duncancomicscom":{"name":"Raising Duncan","link":'http://comics.com/raising_duncan_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.raisingduncan.csv"}, - "reality_checkcomicscom":{"name":"Reality Check","link":'http://comics.com/reality_check/',"start":"2010-02-01","dbfile":dbdir + "comicdb.realitycheck.csv"}, - "rednrovercomicscom":{"name":"Red and Rover","link":'http://comics.com/red&rover/',"start":"2010-02-01","dbfile":dbdir + "comicdb.rednrover.csv"}, - "rip_haywirecomicscom":{"name":"Rip Haywire","link":'http://comics.com/rip_haywire/',"start":"2010-02-01","dbfile":dbdir + "comicdb.riphaywire.csv"}, - "ripleys_believe_it_or_notcomicscom":{"name":"Ripley's Believe it or not","link":'http://comics.com/ripleys_believe_it_or_not/',"start":"2010-02-01","dbfile":dbdir + "comicdb.ripleysbelieveitornot.csv"}, - "rose_is_rosecomicscom":{"name":"Rose Is Rose","link":'http://comics.com/rose_is_rose/',"start":"2010-02-01","dbfile":dbdir + "comicdb.roseisrose.csv"}, - "rubescomicscom":{"name":"Rubes","link":'http://comics.com/rubes/',"start":"2010-02-01","dbfile":dbdir + "comicdb.rubes.csv"}, - "rudy_parkcomicscom":{"name":"Rudy Park","link":'http://comics.com/rudy_park/',"start":"2010-02-01","dbfile":dbdir + "comicdb.rudypark.csv"}, - "scary_garycomicscom":{"name":"Scary Gary","link":'http://comics.com/scary_gary/',"start":"2010-02-01","dbfile":dbdir + "comicdb.scarygary.csv"}, - "shirley_and_soncomicscom":{"name":"Shirley and Son","link":'http://comics.com/shirley_and_son_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.shirleyandson.csv"}, - "sinfest":{"name":"Sinfest","link":"http://sinfest.com/","start":3400,"dbfile":dbdir + "comicdb.sinfest.csv"}, - "soup_to_nutzcomicscom":{"name":"Soup to Nutz","link":'http://comics.com/soup_to_nutz/',"start":"2010-02-01","dbfile":dbdir + "comicdb.souptonutz.csv"}, - "speed_bumpcomicscom":{"name":"Speed Bump","link":'http://comics.com/speed_bump/',"start":"2010-02-01","dbfile":dbdir + "comicdb.speedbump.csv"}, - "spot_the_frogcomicscom":{"name":"Spot the Frog","link":'http://comics.com/spot_the_frog/',"start":"2010-02-01","dbfile":dbdir + "comicdb.spotthefrog.csv"}, - "state_of_the_unioncomicscom":{"name":"State of the Union","link":'http://comics.com/state_of_the_union/',"start":"2010-02-01","dbfile":dbdir + "comicdb.stateoftheunion.csv"}, - "strange_brewcomicscom":{"name":"Strange Brew","link":'http://comics.com/strange_brew/',"start":"2010-02-01","dbfile":dbdir + "comicdb.strangebrew.csv"}, - "tarzancomicscom":{"name":"Tarzan","link":'http://comics.com/tarzan_classics/',"start":"2010-02-01","dbfile":dbdir + "comicdb.tarzan.csv"}, - "thats_lifecomicscom":{"name":"That's Life","link":'http://comics.com/thats_life/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thatslife.csv"}, - "barncomicscom":{"name":"The Barn","link":'http://comics.com/the_barn/',"start":"2010-02-01","dbfile":dbdir + "comicdb.the_barn.csv"}, - "born_losercomicscom":{"name":"The Born Loser","link":'http://comics.com/the_born_loser/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thebornloser.csv"}, - "bucketscomicscom":{"name":"The Buckets","link":'http://comics.com/the_buckets/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thebuckets.csv"}, - "dinette_setcomicscom":{"name":"The Dinette Set","link":'http://comics.com/the_dinette_set/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thedinetteset.csv"}, - "grizzwellscomicscom":{"name":"The Grizzwells","link":'http://comics.com/the_grizzwells/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thegrizzwells.csv"}, - "humble_stumblecomicscom":{"name":"The Humble Stumble","link":'http://comics.com/the_humble_stumble/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thehumblestumble.csv"}, - "knight_lifecomicscom":{"name":"The Knight Life","link":'http://comics.com/the_knight_life/',"start":"2010-02-01","dbfile":dbdir + "comicdb.theknightlife.csv"}, - "meaning_of_lilacomicscom":{"name":"The Meaning of Lila","link":'http://comics.com/the_meaning_of_lila/',"start":"2010-02-01","dbfile":dbdir + "comicdb.themeaningoflila.csv"}, - "other_coastcomicscom":{"name":"The Other Coast","link":'http://comics.com/the_other_coast/',"start":"2010-02-01","dbfile":dbdir + "comicdb.theothercoast.csv"}, - "sunshine_clubcomicscom":{"name":"The Sunshine Club","link":'http://comics.com/the_sunshine_club/',"start":"2010-02-01","dbfile":dbdir + "comicdb.thesunshineclub.csv"}, - "unstrange_phenomenacomicscom":{"name":"Unstrange Phenomena","link":'http://comics.com/unstrange_phenomena/',"start":"2010-02-01","dbfile":dbdir + "comicdb.unstrangephenomena.csv"}, - "watch_your_headcomicscom":{"name":"Watch Your Head","link":'http://comics.com/watch_your_head/',"start":"2010-02-01","dbfile":dbdir + "comicdb.watchyourhead.csv"}, - "wizard_of_idcomicscom":{"name":"Wizard of Id","link":'http://comics.com/wizard_of_id/',"start":"2010-02-01","dbfile":dbdir + "comicdb.wizardofid.csv"}, - "working_dazecomicscom":{"name":"Working Daze","link":'http://comics.com/working_daze/',"start":"2010-02-01","dbfile":dbdir + "comicdb.workingdaze.csv"}, - "working_it_outcomicscom":{"name":"Working It Out","link":'http://comics.com/working_it_out/',"start":"2010-02-01","dbfile":dbdir + "comicdb.workingitout.csv"}, - "wulff":{"name":"Wulffmorgenthaler","link":"http://wulffmorgenthaler.com/","start":"edd3411b-96ca-4d93-bd5f-0cf1deb67c8a","dbfile":dbdir + "comicdb.wulff.csv"}, - "xkcd":{"name":"xkcd","link":"http://xkcd.org/","start":666,"dbfile":dbdir + "comicdb.xkcd.csv"}, - "zack_hillcomicscom":{"name":"Zack Hill","link":'http://comics.com/zack_hill/',"start":"2010-02-01","dbfile":dbdir + "comicdb.zackhill.csv"}, - - "amazing_spidermanckdm":{"name":"The Amazing Spider-Man","link":'http://content.comicskingdom.net/Spiderman/',"start":"20100209","dbfile":dbdir + "comicdb.spiderman.csv"}, - "apartment_3-gckdm":{"name":"Apartment 3-G","link":'http://content.comicskingdom.net/Apartment_3-G/',"start":"20100209","dbfile":dbdir + "comicdb.partment3g.csv"}, - "arcticckdm":{"name":"Arctic Circle","link":'http://content.comicskingdom.net/Arctic/',"start":"20100209","dbfile":dbdir + "comicdb.arctic.csv"}, - "barney_googleckdm":{"name":"Barney Google and Snuffy Smith","link":'http://content.comicskingdom.net/Barney_Google/',"start":"20100209","dbfile":dbdir + "comicdb.barneygoogle.csv"}, - "beetle_baileyckdm":{"name":"Beetle Bailey","link":'http://content.comicskingdom.net/Beetle_Bailey/',"start":"20100209","dbfile":dbdir + "comicdb.beetlebailey.csv"}, - "better_halfckdm":{"name":"Better Half","link":'http://content.comicskingdom.net/Better_Half/',"start":"20100209","dbfile":dbdir + "comicdb.betterhalf.csv"}, - "between_friendsckdm":{"name":"Between Friends","link":'http://content.comicskingdom.net/Between_Friends/',"start":"20100209","dbfile":dbdir + "comicdb.betweenfriends.csv"}, - "bizarrockdm":{"name":"Bizarro","link":'http://content.comicskingdom.net/Bizarro/',"start":"20100209","dbfile":dbdir + "comicdb.bizarro.csv"}, - "blondieckdm":{"name":"Blondie","link":'http://content.comicskingdom.net/Blondie/',"start":"20100209","dbfile":dbdir + "comicdb.blondie.csv"}, - "edisonckdm":{"name":"Edison Lee","link":'http://content.comicskingdom.net/Edison/',"start":"20100209","dbfile":dbdir + "comicdb.edison.csv"}, - "bucklesckdm":{"name":"Buckles","link":'http://content.comicskingdom.net/Buckles/',"start":"20100209","dbfile":dbdir + "comicdb.buckles.csv"}, - "crankshaftckdm":{"name":"Crankshaft","link":'http://content.comicskingdom.net/Crankshaft/',"start":"20100209","dbfile":dbdir + "comicdb.crankshaft.csv"}, - "crockckdm":{"name":"Crock","link":'http://content.comicskingdom.net/Crock/',"start":"20100209","dbfile":dbdir + "comicdb.crock.csv"}, - "curtisckdm":{"name":"Curtis","link":'http://content.comicskingdom.net/Curtis/',"start":"20100209","dbfile":dbdir + "comicdb.curtis.csv"}, - "deflockedckdm":{"name":"DeFlocked","link":'http://content.comicskingdom.net/Deflocked/',"start":"20100209","dbfile":dbdir + "comicdb.deflocked.csv"}, - "dennis_the_menaceckdm":{"name":"Dennis The Menace","link":'http://content.comicskingdom.net/Dennis_The_Menace/',"start":"20100209","dbfile":dbdir + "comicdb.dennisthemenace.csv"}, - "dustinckdm":{"name":"Dustin","link":'http://content.comicskingdom.net/Dustin/',"start":"20100209","dbfile":dbdir + "comicdb.dustin.csv"}, - "edge_cityckdm":{"name":"Edge City","link":'http://content.comicskingdom.net/Edge_City/',"start":"20100209","dbfile":dbdir + "comicdb.edgecity.csv"}, - "family_circusckdm":{"name":"Family Circus","link":'http://content.comicskingdom.net/Family_Circus/',"start":"20100209","dbfile":dbdir + "comicdb.familycircus.csv"}, - "flashckdm":{"name":"Flash Gordon","link":'http://content.comicskingdom.net/Flash/',"start":"20100209","dbfile":dbdir + "comicdb.flash.csv"}, - "funky_winkerbeanckdm":{"name":"Funky Winkerbean","link":'http://content.comicskingdom.net/Funky_Winkerbean/',"start":"20100209","dbfile":dbdir + "comicdb.funkywinkerbean.csv"}, - "grin_and_bear_itckdm":{"name":"Grin and Bear It","link":'http://content.comicskingdom.net/Grin_and_Bear_It/',"start":"20100209","dbfile":dbdir + "comicdb.frinandbearit.csv"}, - "hagar_the_horribleckdm":{"name":"Hagar The Horrible","link":'http://content.comicskingdom.net/Hagar_The_Horrible/',"start":"20100209","dbfile":dbdir + "comicdb.hagarthehorrible.csv"}, - "hazelckdm":{"name":"Hazel","link":'http://content.comicskingdom.net/Hazel/',"start":"20100209","dbfile":dbdir + "comicdb.hazel.csv"}, - "heavensckdm":{"name":"Heaven's Love Thrift Shop","link":'http://content.comicskingdom.net/Heavens/',"start":"20100209","dbfile":dbdir + "comicdb.heavens.csv"}, - "henryckdm":{"name":"Henry","link":'http://content.comicskingdom.net/Henry/',"start":"20100209","dbfile":dbdir + "comicdb.henry.csv"}, - "hi_and_loisckdm":{"name":"Hi and Lois","link":'http://content.comicskingdom.net/Hi_and_Lois/',"start":"20100209","dbfile":dbdir + "comicdb.hiandlois.csv"}, - "judge_parkerckdm":{"name":"Judge Parker","link":'http://content.comicskingdom.net/Judge_Parker/',"start":"20100209","dbfile":dbdir + "comicdb.judgeparker.csv"}, - "katzenjammer_kidsckdm":{"name":"Katzenjammer Kids","link":'http://content.comicskingdom.net/Katzenjammer_Kids/',"start":"20100209","dbfile":dbdir + "comicdb.katzenjammerkids.csv"}, - "lockhornsckdm":{"name":"Lockhorns","link":'http://content.comicskingdom.net/Lockhorns/',"start":"20100209","dbfile":dbdir + "comicdb.lockhorns.csv"}, - "mallard_fillmoreckdm":{"name":"Mallard Fillmore","link":'http://content.comicskingdom.net/Mallard_Fillmore/',"start":"20100209","dbfile":dbdir + "comicdb.mallardfillmore.csv"}, - "mandrakeckdm":{"name":"Mandrake","link":'http://content.comicskingdom.net/Mandrake/',"start":"20100209","dbfile":dbdir + "comicdb.mandrake.csv"}, - "mark_trailckdm":{"name":"Mark Trail","link":'http://content.comicskingdom.net/Mark_Trail/',"start":"20100209","dbfile":dbdir + "comicdb.marktrail.csv"}, - "marvinckdm":{"name":"Marvin","link":'http://content.comicskingdom.net/Marvin/',"start":"20100209","dbfile":dbdir + "comicdb.marvin.csv"}, - "mary_worthckdm":{"name":"Mary Worth","link":'http://content.comicskingdom.net/Mary_Worth/',"start":"20100209","dbfile":dbdir + "comicdb.maryworth.csv"}, - "mooseckdm":{"name":"Moose and Molly","link":'http://content.comicskingdom.net/Moose/',"start":"20100209","dbfile":dbdir + "comicdb.moose.csv"}, - "mgooseckdm":{"name":"Mother Goose and Grimm","link":'http://content.comicskingdom.net/Mgoose/',"start":"20100209","dbfile":dbdir + "comicdb.mgoose.csv"}, - "muttsckdm":{"name":"Mutts","link":'http://content.comicskingdom.net/Mutts/',"start":"20100209","dbfile":dbdir + "comicdb.mutts.csv"}, - "my_cageckdm":{"name":"My Cage","link":'http://content.comicskingdom.net/My_Cage/',"start":"20100209","dbfile":dbdir + "comicdb.mycage.csv"}, - "ollieckdm":{"name":"Ollie and Quentin","link":'http://content.comicskingdom.net/Ollie/',"start":"20100209","dbfile":dbdir + "comicdb.ollie.csv"}, - "on_the_fast_trackckdm":{"name":"On The Fastrack","link":'http://content.comicskingdom.net/Fast_Track/',"start":"20100209","dbfile":dbdir + "comicdb.fastrack.csv"}, - "pajamackdm":{"name":"Pajama Diaries","link":'http://content.comicskingdom.net/Pajama/',"start":"20100209","dbfile":dbdir + "comicdb.pajama.csv"}, - "pardon_my_planetckdm":{"name":"Pardon My Planet","link":'http://content.comicskingdom.net/Pardon_My_Planet/',"start":"20100209","dbfile":dbdir + "comicdb.pardonmyplanet.csv"}, - "phantomckdm":{"name":"The Phantom","link":'http://content.comicskingdom.net/Phantom/',"start":"20100209","dbfile":dbdir + "comicdb.phantom.csv"}, - "piranhackdm":{"name":"the Piranha Club","link":'http://content.comicskingdom.net/Piranha/',"start":"20100209","dbfile":dbdir + "comicdb.piranha.csv"}, - "popeyeckdm":{"name":"Popeye","link":'http://content.comicskingdom.net/Popeye/',"start":"20100209","dbfile":dbdir + "comicdb.popeye.csv"}, - "prince_valiantckdm":{"name":"Prince Valiant","link":'http://content.comicskingdom.net/Prince_Valiant/',"start":"20100209","dbfile":dbdir + "comicdb.prince_valiant.csv"}, - "prosnconsckdm":{"name":"Pros and Cons","link":'http://content.comicskingdom.net/Lawyer/',"start":"20100209","dbfile":dbdir + "comicdb.prosncons.csv"}, - "retailckdm":{"name":"Retail","link":'http://content.comicskingdom.net/Retail/',"start":"20100209","dbfile":dbdir + "comicdb.retail.csv"}, - "rex_morganckdm":{"name":"Rex Morgan","link":'http://content.comicskingdom.net/Rex_Morgan/',"start":"20100209","dbfile":dbdir + "comicdb.rexmorgan.csv"}, - "rhymes_with_orangeckdm":{"name":"Rhymes with Orange","link":'http://content.comicskingdom.net/Rhymes_with_Orange/',"start":"20100209","dbfile":dbdir + "comicdb.rhymeswithorange.csv"}, - "safe_havensckdm":{"name":"Safe Havens","link":'http://content.comicskingdom.net/Safe_Havens/',"start":"20100209","dbfile":dbdir + "comicdb.safehavens.csv"}, - "sallyforthckdm":{"name":"Sally Forth","link":'http://content.comicskingdom.net/Sally_Forth/',"start":"20100209","dbfile":dbdir + "comicdb.sallyforth.csv"}, - "samckdm":{"name":"Sam and Silo","link":'http://content.comicskingdom.net/Sam/',"start":"20100209","dbfile":dbdir + "comicdb.sam.csv"}, - "shermans_lagoonckdm":{"name":"Sherman's Lagoon","link":'http://content.comicskingdom.net/Shermans_Lagoon/',"start":"20100209","dbfile":dbdir + "comicdb.shermanslagoon.csv"}, - "shoeckdm":{"name":"Shoe","link":'http://content.comicskingdom.net/Shoe/',"start":"20100209","dbfile":dbdir + "comicdb.shoe.csv"}, - "six_chixckdm":{"name":"Six Chix","link":'http://content.comicskingdom.net/6Chix/',"start":"20100209","dbfile":dbdir + "comicdb.6chix.csv"}, - "slylockckdm":{"name":"Slylock Fox","link":'http://content.comicskingdom.net/Slylock/',"start":"20100209","dbfile":dbdir + "comicdb.slylock.csv"}, - "tigerckdm":{"name":"Tiger","link":'http://content.comicskingdom.net/Tiger/',"start":"20100209","dbfile":dbdir + "comicdb.tiger.csv"}, - "tinas_grooveckdm":{"name":"Tina's Groove","link":'http://content.comicskingdom.net/Tinas_Groove/',"start":"20100209","dbfile":dbdir + "comicdb.tinasgroove.csv"}, - "toddckdm":{"name":"Todd the Dinosaur","link":'http://content.comicskingdom.net/Todd/',"start":"20100209","dbfile":dbdir + "comicdb.todd.csv"}, - "zippy_the_pinheadckdm":{"name":"Zippy the Pinhead","link":'http://content.comicskingdom.net/Zippy_the_Pinhead/',"start":"20100209","dbfile":dbdir + "comicdb.zippythepinhead.csv"}, - "zitsckdm":{"name":"Zits","link":'http://content.comicskingdom.net/Zits/',"start":"20100209","dbfile":dbdir + "comicdb.zits.csv"}, - - - - } -defaults = {'width':480,'height':230} -#defaults = {'width':480,'height':240} -sizefile = "/home/user/.comic-widget/size.cfg" -previous = False -next = False - - -# handling of the comics -class ComicDb(): - def __init__(self, comic): - self.comic = comic - self.start = comics[self.comic]["start"] - self.dbfile = comics[self.comic]["dbfile"] - - #if db file exist, read it - # if os.path.isfile(self.dbfile) == True: - # dbf = open(self.dbfile, 'r') - # if not, create it. - dbf = self.get_dbfile() - dbr = csv.DictReader(dbf) - self.db = [] - for row in dbr: - self.db.insert(0,row) - dbf.close() - if len(self.db) == 0: - self.refresh() - self.currentcomic = 0 - - - - def get_dbfile(self): - #if db file exist, read it - print "fetching " + self.dbfile - if os.path.isfile(self.dbfile) == True: - print "found " + self.dbfile - dbf = open(self.dbfile, 'r') - return dbf - # if not, copy it. - else: - print "file " + self.dbfile + " not found" - if not os.path.exists(dbdir): - print "path not found: " + dbdir - try: - os.makedirs(dbdir) - except: - print "comic db creation failed on mkdir" - exit() - try: - shutil.copyfile(basedbdir + "comicdb." + self.comic + ".csv", dbdir + "comicdb." + self.comic + ".csv") - except: - print "comic db creation failed on copy" - print "creating new..." - dbf = open(self.dbfile, 'w') - dbf.write('comic,id,link,url,filename,title\n') - dbf.close() - - if os.path.isfile(self.dbfile) == True: - dbf = open(self.dbfile, 'r') - return dbf - else: - print "comic db creation failed after copy" - - - def get_comic(self): - # print str(self.currentcomic) - if self.currentcomic < 0: - self.currentcomic = 0 - if len(self.db) > 0: - fetchid = self.db[self.currentcomic]['id'] - else: - fetchid = comics[self.comic]['start'] - self.fetch_newer(self.comic, fetchid) - self.refresh() - if len(self.db) < (self.currentcomic + 1): - self.currentcomic = len(self.db) - 1 - if len(self.db) > 0: - fetchid = self.db[self.currentcomic]['id'] - else: - print "Empty db" - fetchid = comics[self.comic]['start'] - self.fetch_earlier(self.comic, fetchid) - self.refresh() - self.currentcomic = len(self.db) - 1 - - dbrow = self.db[self.currentcomic] - filename = comiccache + self.comic + "/" + dbrow['filename'] - print filename + "\n" - - if os.path.isfile(filename): - print "found, returning " + filename + "\n" - return filename - else: - #fetch file - print filename + " not found\nretrieving " + dbrow['url'] + "\n" - if not os.path.exists(comiccache + self.comic + "/"): - print "create dir " + comiccache + self.comic + "/" - try: - os.makedirs(comiccache + self.comic + "/") - print "created dir" - except: - print "comic db creation failed on mkdir" - try: - f = open(filename, "wb") - print "writing to " + filename - req = urllib2.Request(dbrow['url']) - req.add_header('Referer', dbrow['link']) - tmpimg = urllib2.urlopen(req) - f.write(tmpimg.read()) - tmpimg = None - f.close() - -# urllib.urlretrieve(dbrow['url'], filename) - except: - if os.path.isfile(filename): - os.remove(filename) - print "success\n" - return filename - - def get_current_row(self): - return self.db[self.currentcomic] - - def get_link(self): - print str(self.currentcomic) - if self.currentcomic < 0: - self.refresh() - self.currentcomic = 0 - if len(self.db) < (self.currentcomic + 1): - self.currentcomic -= 1 - return self.db[self.currentcomic]['link'] - - - - def insert_row(self, irow): - dbf = open(self.dbfile, 'a') - dbw = csv.writer(dbf) - dbw.writerow(irow) - dbf.close() - - def insert_row_first(self, irow): - dbf = open(self.dbfile, 'w') - dbf.write('comic,id,link,url,filename,title\n') - dbw = csv.writer(dbf) - dbw.writerow(irow) - dbf.close() - dbf = open(self.dbfile, 'a') - dbw = csv.DictWriter(dbf, ['comic','id','link','url','filename','title']) - tmpdb = self.db - tmpdb.reverse() - for row in tmpdb: - dbw.writerow(row) - dbf.close() - - def refresh(self): - # if len(self.db) < 1: - # self.currentcomic = -1 - # self.fetch_latest_std(self.comic, self.start) - # elif self.currentcomic == 0 or self.currentcomic < 0: - # self.fetch_latest_std(self.comic, self.db[0]['id']) - # elif self.currentcomic == (len(self.db) - 1): - # self.fetch_earlier(self.comic, self.db[self.currentcomic]['id']) - dbf = open(self.dbfile, 'r') - dbr = csv.DictReader(dbf) - self.db = [] - for row in dbr: - self.db.insert(0,row) - dbf.close() - if len(self.db) == 0: - self.fetch_earlier(self.comic, self.start) - dbf = open(self.dbfile, 'r') - dbr = csv.DictReader(dbf) - self.db = [] - for row in dbr: - self.db.insert(0,row) - dbf.close() - - -# fetch earlier - def fetch_earlier(self, comic, earliest): - print "fetch before, " + comic + " earliest" - if comic == "cyanide" or comic == "wulff" or comic == "babyblues" or comic[-9:] == "comicscom": - print "getting get_prev_id..." - comicid = self.get_prev_id(comic,earliest) - if not comicid: - print "already at first comic" - return - print "got " + comicid + " as the one before current..." - elif len(str(earliest)) == 10: - # date id. - dt = string.split(earliest, "-") - d = datetime.date(int(dt[0]),int(dt[1]),int(dt[2])) - earlier = d - datetime.timedelta( 1 ) - comicid = earlier.isoformat() - elif comic[-4:] == 'ckdm': - # comics kingdom. Easiest...? - d = datetime.date(int(earliest[:4]),int(earliest[4:6]),int(earliest[6:8])) - earlier = d - datetime.timedelta( 1 ) - comicid = str(earlier.strftime("%Y%m%d")) - - - else: - comicid = int(earliest) - 1 - - irow = self.get_irow(comic, comicid) - if irow and irow[0] == "skip": - print "problem with this one, fetching " + str(irow[2]) + " instead." - irow = self.get_irow(comic, irow[2]) - - if irow and len(irow) > 3: - print "got irow: " - print irow - print "\ninserting...\n" - self.insert_row_first([irow[0],irow[1],irow[2],irow[3],irow[4],irow[5]]) - else: - print "No comic found at " + comicid - - - - - - def fetch_newer(self, comic, newest): - if comic == "cyanide" or comic == "wulff" or comic == "babyblues" or comic[-9:] == "comicscom": - comicid = self.get_next_id(comic,newest) - if not comicid: - print "already at last comic" - return - elif len(newest) == 10: - # date id. - dt = string.split(newest, "-") - d = datetime.date(int(dt[0]),int(dt[1]),int(dt[2])) - newest = d + datetime.timedelta( 1 ) - comicid = newest.isoformat() - elif comic[-4:] == 'ckdm': - # comics kingdom. Easiest...? - d = datetime.date(int(newest[:4]),int(newest[4:6]),int(newest[6:8])) - earlier = d + datetime.timedelta( 1 ) - comicid = str(earlier.strftime("%Y%m%d")) - else: - comicid = int(newest) + 1 - - irow = self.get_irow(comic, comicid) - if irow and irow[0] == "skip": - print "problem with this one, fetching " + str(irow[1]) + " instead." - irow = self.get_irow(comic, irow[1]) - - if irow and len(irow) > 3: - print "got irow: " - print irow - print "\ninserting...\n" - self.insert_row([irow[0],irow[1],irow[2],irow[3],irow[4],irow[5]]) - else: - print "No comic found at " + str(comicid) - - - - - def fetch_latest_std(self, comic, latest): - print "fetching new after " + str(comic) + " " + str(latest) - next = False - dateid = False - if comic == 'cyanide': - next = self.get_next_id(comic, latest) - if not next: - return - else: - comicid = next - else: - if len(str(latest)) == 10: - # date id. - dateid = True - dt = string.split(latest, "-") - d = datetime.date(int(dt[0]),int(dt[1]),int(dt[2])) - newer = d + datetime.timedelta( 1 ) - comicid = newer.isoformat() - else: - comicid = int(latest) + 1 - - if len(self.db) > 0: - lasturl = self.db[0]['url'] - else: - lasturl = "http" - while True: - irow = self.get_irow(comic, comicid) - if irow: - print "got irow: " + str(irow) - if str(irow[0]) == 'skip': - print "skipping this one..." - next = int(irow[1]) - else: - if irow[3] == lasturl: - print "Looping the same, break break break!" - break - lasturl = irow[3] - print "inserting..." - self.insert_row([irow[0],irow[1],irow[2],irow[3],irow[4],irow[5]]) - if len(irow) > 6: - next = irow[6] - if not next: - break - if dateid: - dt = string.split(comicid, "-") - d = datetime.date(int(dt[0]),int(dt[1]),int(dt[2])) - newer = d + datetime.timedelta( 1 ) - comicid = newer.isoformat() - elif next: - comicid = next - else: - comicid += 1 - else: - break - - - - - def get_next_id(self, comic, number): - if comic == 'babyblues': - link = "http://www.babyblues.com/archive/index.php?formname=getstrip&GoToDay=" + str(number) - print "link: " + link - try: - f = urllib2.urlopen(link) - hcode = f.code - except: - hcode = 404 - print "got hcode = " + str(hcode) + "\n" - if (hcode != 200): - return False - else: - print "checking next Babyblues date.." - s = f.read() - f.close() - # title: - splt = string.split(s, 'nextStripLink', 1) - if len(splt) < 2: - print "no 'prev' found" - return False - else: - next = splt[1][48:58] - print "got next: " + next - - return next - - if comic == 'cyanide': - link = "http://www.explosm.net/comics/" + str(number) + "/" - print "link: " + link - try: - f = urllib2.urlopen(link) - hcode = f.code - except: - hcode = 404 - print "got hcode = " + str(hcode) + "\n" - if (hcode != 200): - return False - else: - # print "Cyanide & Happiness is unreliable, so we need to track next and prev" - s = f.read() - f.close() - # title: - splt = string.split(s, 'Previous | Next >', 1) - if len(splt) < 2: - print "no 'next' found" - return False - else: - print "got next: " + splt[0] - return splt[0] - if comic == 'wulff': - link = "http://wulffmorgenthaler.com/default.aspx?id=" + number - print "link: " + link - try: - f = urllib2.urlopen(link) - hcode = f.code - except: - hcode = 404 - print "got hcode = " + str(hcode) + "\n" - if (hcode != 200): - return False - else: - s = f.read() - f.close() - # title: - splt = string.split(s, ' | < Previous', 1) - if len(splt) < 2 or len(splt[0]) > 5: - print "no 'next' found" - return False - else: - print "got previous: " + splt[0] - return splt[0] - elif comic == 'wulff': - link = "http://wulffmorgenthaler.com/default.aspx?id=" + number - print "link: " + link - try: - f = urllib2.urlopen(link) - hcode = f.code - except: - hcode = 404 - print "got hcode = " + str(hcode) + "\n" - if (hcode != 200): - return False - else: - s = f.read() - f.close() - # title: - splt = string.split(s, ' today: - print "Fetching the future! Break break break!" - return False - else: - return False - - print "link: " + link - try: - f = urllib2.urlopen(link) - hcode = f.code - except: - hcode = 404 - print "got hcode = " + str(hcode) + "\n" - if (hcode != 200): - return False - else: - # Build db entry. - # they look like: comic,id,link,url,filename,title - # We already have comic, number/id and link - - if comic == 'xkcd': - s = f.read() - f.close() - # This should be done with regex but... - splt = string.split(s, 'png" title="', 1) - splt = string.split(splt[1], '" alt="', 1) - title = splt[0] - splt = string.split(splt[1], "

Image URL (for hotlinking/embedding): ", 1) - splt = string.split(splt[1], "

", 1) - url = splt[0] - - - elif comic == 'sinfest': - s = f.read() - f.close() - splt = string.split(s, 'height="107"', 1) - splt = string.split(splt[1], '', 1)
-				url = splt[0]
-				if len(url) < 49:
-					print ', 1) - title = splt[0] - - elif comic == 'dilbert': - s = f.read() - f.close() - splt = string.split(s, 'input type="hidden" name="PrintPath" value="', 1) - splt = string.split(splt[1], '" />', 1) - url = "http://dilbert.com" + splt[0] - if len(url) < 50: - print "Fake 404! Break break break!" - return False - title = "" - - elif comic == 'phd': - s = f.read() - f.close() - # title: - splt = string.split(s, 'PHD Comics: ', 1) - splt = string.split(splt[1], '', 1) - title = splt[0]; - splt = string.split(splt[1], '', 1) - url = splt[0] - if len(url) < 49: - print "Fake 404! Break break break!" - return False - - elif comic == 'cyanide': - s = f.read() - f.close() - # title: - splt = string.split(s, ' First
| < ', 1) - prev = splt[0]; - print "got prev: " + prev - splt = string.split(s, 'Previous | Next >', 1) - if len(splt[0]) > 10: - next = False - else: - next = splt[0] - print "got next: " + next - - splt = string.split(s, '', 1) - if len(splt) < 2: - print "no comic?" - return False - splt = string.split(splt[1], ' by ', 1) - url = "http://www.explosm" + splt[0] - splt2 = string.rsplit(url, "/", 1) - filename = splt2[1] - irow = [comic,number,link,url,filename,title,next,prev] - return irow - - - elif comic == 'babyblues': - # babyblues is type .gif - s = f.read() - f.close() - splt = string.split(s, 'http://est.rbma.com/content/Baby_Blues?date=', 1) - flnm = splt[1][:8] - # check filename... - datesplt = string.split(number, "/") - flncheck = datesplt[2] + datesplt[0] + datesplt[1] - if not flnm == flncheck: - print "incorrect filename, end of line. Break break break!" - return False - url = 'http://est.rbma.com/content/Baby_Blues?date=' + flnm - title = number + " (2 weeks delay)" - filename = flnm + ".gif" - irow = [comic,number,link,url,filename,title] - return irow - - - elif comic == 'wulff': - # wulf is type .gif - s = f.read() - f.close() - splt = string.split(s, ' 22: - titl = titl[:19] + "..." - self.label.set_markup(self.get_markup()) - self.e_goweb.add(self.label) - self.e_goweb.show_all() - - elif func == 'prev': - self.db.currentcomic += 1 - self.imgvpos = 0 - self.e_open.remove(self.comic_image) - self.comic_image = self.get_resized_pixmap(self.db.get_comic(), self.imgvpos) - self.e_open.add(self.comic_image) - self.e_open.show_all() - self.e_goweb.remove(self.label) - titl = str(self.db.db[self.db.currentcomic]['title']) - if len(titl) > 22: - titl = titl[:19] + "..." - self.label.set_markup(self.get_markup()) - self.e_goweb.add(self.label) - self.e_goweb.show_all() - - elif func == 'switch': - self.active_comics = self.get_active_comics() - print "closing log" - #sys.stdout.close() - #sys.stdout = sys.__stdout__ - #sys.stderr.close() - #sys.stderr = sys.__stderr__ - print "active comics: " + str(self.active_comics) - self.keypointer = (self.keypointer + 1) % len(self.active_comics) - self.imgvpos = 0 - self.db = [] - print "switching to " + self.active_comics[self.keypointer] - self.comicname = comics[self.active_comics[self.keypointer]]['name'] - self.db = ComicDb(self.active_comics[self.keypointer]) - self.e_open.remove(self.comic_image) - self.comic_image = self.get_resized_pixmap(self.db.get_comic(), self.imgvpos) - self.e_goweb.remove(self.label) - titl = str(self.db.db[self.db.currentcomic]['title']) - if len(titl) > 22: - titl = titl[:19] + "..." - self.label.set_markup(self.get_markup()) - self.e_goweb.add(self.label) - self.e_goweb.show_all() - self.e_open.add(self.comic_image) - self.e_open.show_all() - - else: - return False - self.draw(widget, "0") - - # this one only switches to pressed button image - def button_press(self, widget, event): - if not event.type == gtk.gdk.BUTTON_PRESS: - return False - self.draw(widget, "1") - - # this one cancels a button press when pointer is moved out from it after press. - def button_out(self, widget, event): - if not event.type == gtk.gdk.BUTTON_PRESS: - return False - self.draw(widget, "0") - - # no fancy cairo stuff here. simply launches url in browser. - def view_comic(self, widget, event): - if not event.type == gtk.gdk.BUTTON_RELEASE: - return False - link = self.db.get_link() - self.osso_rpc.rpc_run_with_defaults("osso_browser", "open_new_window", (link,)) - - - - # this function modifies the image to fit the widget and then returns it. - - def get_resized_pixmap(self, filename, vpos): - print "vpos: " + str(vpos) - - width = int(self.sizes['width']) - height = int(self.sizes['height']) - picwidth = width - 2 - maxheight = height - 48 - - pixbuf = gtk.gdk.pixbuf_new_from_file(filename) - parent_buf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, pixbuf.get_has_alpha(), 8, width, maxheight) - parent_buf.fill(0xffffffff) - retimg = gtk.Image() - # get correct width/height - new_height = 1 - new_width = picwidth - new_height = int((float(picwidth) / pixbuf.get_width()) * pixbuf.get_height()) - scaled_buf = pixbuf.scale_simple(new_width,new_height,gtk.gdk.INTERP_BILINEAR) - print "scaled height: " + str(scaled_buf.get_height()) - if scaled_buf.get_height() > maxheight: - if scaled_buf.get_height() - (vpos + maxheight) < 0: - vpos = scaled_buf.get_height() - maxheight - scaled_buf.copy_area(0,vpos,picwidth,maxheight,parent_buf,1,0) - # parent_buf.composite(scaled_buf, 0, 0, 478, maxheight, 0, 0, 478, maxheight, gtk.gdk.INTERP_BILINEAR, 0) - self.imgvpos = vpos - else: - tmpy = maxheight - scaled_buf.get_height() - if tmpy > 0: - tmpy = tmpy / 2 - - scaled_buf.copy_area(0,0,picwidth,scaled_buf.get_height(),parent_buf,1,tmpy) - self.imgvpos = 0 -# test = parent_buf.render_pixmap_and_mask(0) -# parent_buf.add_alpha(True,chr(255),chr(255),chr(255)) - retimg.set_from_pixbuf(parent_buf) - print retimg.get_pixel_size() - print "vpos after fixing image: " + str(self.imgvpos) - return retimg - - def screen_changed(self, widget, old_screen=None): - global supports_alpha - - # To check if the display supports alpha channels, get the colormap - screen = self.get_screen() - colormap = screen.get_rgba_colormap() - if colormap == None: - print 'Your screen does not support alpha channels!' - colormap = screen.get_rgb_colormap() - supports_alpha = False - else: - # print 'Your screen supports alpha channels!' - supports_alpha = True - - # Now we have a colormap appropriate for the screen, use it - self.set_colormap(colormap) - - return False - - - def get_active_comics(self): - print "get list" - - if os.path.isfile(activecomics) == True: - print "found " + activecomics - dbf = open(activecomics, 'r') - dbr = csv.reader(dbf) - try: - active = dbr.next() - except: - active = [] - dbf.close() - return active - # if not, copy it. - else: - print "file " + activecomics + " not found" - if not os.path.exists(dbdir): - print "path not found: " + dbdir - try: - os.makedirs(dbdir) - except: - print "settings dir creation failed. Exiting." - exit() - try: -# dbf = file(activecomics, 'w') -# dbf.close() - dbf = open(activecomics, 'w') - except: - print "error storing settings" - exit() - dbw = csv.writer(dbf) - dbw.writerow(defaultcomics) - dbf.close() - ret = defaultcomics - return ret - - - def get_markup(self): - if len(self.comicname + " " + str(self.db.db[self.db.currentcomic]['id'])) < 20: - return ' ' + self.comicname + ' ' + str(self.db.db[self.db.currentcomic]['id']) + '\n ' + str(self.db.db[self.db.currentcomic]['title']) + '' - else: - return ' ' + self.comicname + '' + '\n ' + str(self.db.db[self.db.currentcomic]['title']) + '' - - - #check if settings file exists - - #if not, write defaults - -# ************************* OPTION DIALOGS ******************************** - - def show_options(self, widget): - print "loading options dialog" - dialog = gtk.Dialog("Comic Widget", None, gtk.DIALOG_DESTROY_WITH_PARENT) - - about_button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL) - about_button.set_text("About", "See Author, Copyright and License information") - about_button.set_alignment(0,0,0,0) - about_button.connect("clicked", self.show_about) - - comics_button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL) - comics_button.set_text("Comics", "Choose which comics to view") - comics_button.set_alignment(0,0,0,0) - comics_button.connect("clicked", self.show_comics) - - # size_button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL) - # size_button.set_text("Change size", "Change the size of the widget") - # size_button.set_alignment(0,0,0,0) - # size_button.connect("clicked", self.show_size) - - print "adding buttons to dialog, starting with comics" - dialog.vbox.pack_start(comics_button, True, True, 0) - print "adding about button" - dialog.vbox.pack_start(about_button, True, True, 0) - # dialog.vbox.pack_start(size_button, True, True, 0) - print "show!" - dialog.show_all() - dialog.run() - dialog.destroy() - - def show_about(self, widget): - print "in about dialog" - dialog = gtk.AboutDialog() - dialog.set_title("About") - dialog.set_name("Comic widget") - dialog.set_version(APP_VERSION) - dialog.set_copyright("Copyright 2010 Marcus Wikstrom") - dialog.set_authors(["Marcus Wikstrom \nLogo by Martin Wikstrom\n\nSpecial thanks to all the great python developers on t.m.o who share their code, and the helpful wizards on #maemo."]) - dialog.set_logo(gtk.gdk.pixbuf_new_from_file("/opt/comic-widget/images/icon2-64x64.png")) - dialog.set_comments("Silly rabbit, tricks are for kids.") - dialog.set_license("""This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License. .""") - dialog.set_wrap_license(True) - dialog.show_all() - dialog.run() - dialog.destroy() - - def show_comics(self, widget, data = None): - print "in comics dialog! yay!" - dialog = gtk.Dialog("Choose comics", None, gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_NO_SEPARATOR) - comiclist = comics.keys() - comiclist.sort() - buttonlist = {} - self.connlist = {} - self.liststore = gtk.ListStore(str,str,bool) - for comicid in comiclist: - active = False - for acomic in self.active_comics: - if acomic == comicid: - active = True - break - if active: - self.liststore.append(["* " + comics[comicid]['name'],comicid, active]) - else: - self.liststore.append([" " + comics[comicid]['name'],comicid, active]) - self.treeview = hildon.GtkTreeView(gtk.HILDON_UI_MODE_EDIT) - self.treeview.set_model(self.liststore) - self.treeview.set_reorderable(True) - tvcolumn = gtk.TreeViewColumn('Column 0') - self.treeview.append_column(tvcolumn) - cell = gtk.CellRendererText() - tvcolumn.pack_start(cell, True) - tvcolumn.add_attribute(cell, 'text', 0) - - ts = hildon.PannableArea() - - ts.set_size_request(-1, 280) - ts.add(self.treeview) - selection = self.treeview.get_selection() - - dialog.vbox.pack_start(ts,True,True,0) - dialog.show_all() - selection.connect("changed", self.pick_comic, comiclist) - dialog.run() - dialog.destroy() - - def pick_comic(self, widget, data): - selected = widget.get_selected() - if selected == None: - return False - - print selected[0].get_value(selected[1],0) + ", " + selected[0].get_value(selected[1],1) + ", " + str(selected[0].get_value(selected[1],2)) - if selected[0].get_value(selected[1],2): - self.remove_comic(selected[0].get_value(selected[1],1)) - splt = selected[0].get_value(selected[1],0)[1:] - selected[0].set_value(selected[1],0," " + splt) - selected[0].set_value(selected[1],2,False) - else: - self.add_comic(selected[0].get_value(selected[1],1)) - splt = selected[0].get_value(selected[1],0)[1:] - selected[0].set_value(selected[1],0,"*" + splt) - selected[0].set_value(selected[1],2,True) - - - def add_comic(self, comicid): - if os.path.isfile(activecomics) == True: - print "added " + comicid + " to " + str(self.active_comics) - try: - found = self.active_comics.index(comicid) - except: - self.active_comics.append(comicid) - dbf = open(activecomics, 'w') - dbw = csv.writer(dbf) - dbw.writerow(self.active_comics) - dbf.close() - - def remove_comic(self, comicid): - if os.path.isfile(activecomics) == True: - print "removing " + comicid + " from " + str(self.active_comics) - try: - del self.active_comics[self.active_comics.index(comicid)] - except: - pass - dbf = open(activecomics, 'w') - dbw = csv.writer(dbf) - dbw.writerow(self.active_comics) - dbf.close() - - - def get_size_settings(self): - # defaults = {'width':480,'height':230} - # options: w 798 700 600 500 480 400 - # options: h 420 360 310 270 240 200 - print "checking to see if config file is available" - if os.path.isfile(sizefile) == True: - print "found " + sizefile - dbf = open(sizefile, 'r') - dbr = csv.reader(dbf) - try: - cfg = dbr.next() - except: - dbf.close() - print "empty config file" - return defaults - dbf.close() - - sizes = {'width':int(cfg[0]),'height':int(cfg[1])} - if sizes['width'] > 798: - sizes['width'] = 798 - if sizes['width'] < 400: - sizes['width'] = 400 - if sizes['height'] > 420: - sizes['height'] = 420 - if sizes['height'] < 200: - sizes['height'] = 200 - - return sizes - - - # if not, copy it. - else: - print "no config file" - return defaults - -hd_plugin_type = ComicHomePlugin - - -if __name__ == "__main__": - import gobject - gobject.type_register(hd_plugin_type) - obj = gobject.new(hd_plugin_type, plugin_id="plugin_id") - obj.show_all() - gtk.main() diff --git a/debian/comic-widget/usr/share/applications/hildon-home/comicwidget.desktop b/debian/comic-widget/usr/share/applications/hildon-home/comicwidget.desktop deleted file mode 100644 index 24c77eb..0000000 --- a/debian/comic-widget/usr/share/applications/hildon-home/comicwidget.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Name=Comic Widget - -Comment=Simple Comic widget -Type=python -X-Path=comicwidget.py - diff --git a/debian/comic-widget/usr/share/doc/comic-widget/changelog.Debian.gz b/debian/comic-widget/usr/share/doc/comic-widget/changelog.Debian.gz deleted file mode 100644 index be2bd44e1a313ad4ba212ecd865d7fa44ca96fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmV;O0Al|iiwFo%R&h%L17m1mZf9j|Z)YwOLc7Y@{$kbG1dv{V>xRC62V%?{yB9F<=Q5 zVWkLll(7FbHO)DmeY7Rv?WUAt@VI!gbPuZ&t-1lPLVL&)9yCBpC811rFr7Bo$p-rY Lv2);nhX4Qo5^6*6 diff --git a/debian/comic-widget/usr/share/doc/comic-widget/changelog.gz b/debian/comic-widget/usr/share/doc/comic-widget/changelog.gz deleted file mode 100644 index 45003b74adacf014a87d4036ef058289d3062a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmV;H0BQdpiwFo%R&h%L17m1mZf9j|Z)X4%i@OfOAQ(n>p5hxd3IW8ydWn;pn~8Ia ze;U$K5-ugay?Dlxb8PU=^6EY#Wo)D{LUXl6%Kb3Y86}Ri*za`?l`&um6=9_ab(FCG zH8ssSo_(|>;q9iBWAM0mvUCrt6Ro-duR?ps6CN}`OC_O9cQBnc*vSU_0kL!7fQJA8 E0HG~Ge*gdg diff --git a/debian/comic-widget/usr/share/doc/comic-widget/copyright b/debian/comic-widget/usr/share/doc/comic-widget/copyright deleted file mode 100644 index f274add..0000000 --- a/debian/comic-widget/usr/share/doc/comic-widget/copyright +++ /dev/null @@ -1,35 +0,0 @@ -This package was py2debianized(0.5.3) by Marcus Wikstrom on -Tue, 09 Feb 2010 14:34:24 +0000. - -It was downloaded from - -Upstream Author: Marcus Wikstrom - -Copyright: 2010 by Marcus Wikstrom - -License: - - - This package 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 package 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. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -On Debian systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. - - -The Debian packaging is (C) 2010, Marcus Wikstrom and -is licensed under the GPL, see above. - -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. diff --git a/debian/files b/debian/files deleted file mode 100644 index ec9bdf4..0000000 --- a/debian/files +++ /dev/null @@ -1 +0,0 @@ -comic-widget_0.4.2-1_all.deb user/desktop extra -- 1.7.9.5